Home >
Union Platform - Interview with Colin Moock

Union is a development platform for creating multiuser applications. It includes the Union Server, a multiuser communications server, and Reactor, a framework for creating Adobe Flash client applications.
I recently had the opportunity to discuss the new Union Platform project with Colin Moock who is one of the creators of this new platform. Here are the questions that I asked of him.
What was the driving force behind the development of the Union Platform?
Derek Clayton and I have both been passionate about multiuser computing since we were kids playing early two-player games like Pong and Atari Combat. For years we've been convinced that all future computing activities should and will one day be multiuser on some level. Imagine Google Docs, Little Big Planet, Flickr, Facebook, or Wikipedia with no social interaction! We're developing Union because we want to live in the multiuser future today.
What was the biggest challenge that you faced when creating this platform?
Our primary focus with the Union Platform is data synchronization. In every multiuser application, groups of users must maintain spheres of awareness, presence, and influence. Those spheres dictate when and why each member of each group receives messages and updates from the system and from other users. Synchronizing all the data, objects, and messages efficiently and correctly is a complex problem, but even that isn't our biggest challenge. Our biggest challenge is building an intuitive API that encapsulates that complexity for developers in a simplified wrapper.
For example, we want Union developers to start with an idea, such as "I want to create a chat room and then join it." And then write this code:
var room:Room = roomManager.createRoom("chatRoom");
room.join();
And then think, "That was easy!"
We want Union developers to think "I need to share my username with everyone in this chat room." And then write this code:
clientManager.self().setAttribute("username", "Colin");
And then think, "That was easy!"
Queuing, privileges, multiuser data storage--we want it all to feel easy. We challenge ourselves every day to uphold that principle. For more "easy thinking" code examples, see "Your First Union Application".
What is your ultimate goal of this project and when would you say that the Union project is a success (1000 developers, 1000 customers, etc)?
Our goal for Union is more qualitative than quantitative. We'll be satisfied when we see the Union developer community clearly and consistently contributing innovation and growth to the field of multiuser-computing.
Quantitatively, we'd love to see 100,000 users engaged in a real-time, simultaneous activity. Something where all 100,000 users contribute to an outcome, and are aware of each other. We're working hard right now to reach that goal with phone-controlled stadium games for MegaPhone. As an even more ambitious goal, we often dream about powering a million-user realtime experience.
How does what you are doing with Union compare to Adobe initiatives like Adobe Flash Collaboration Service (CoCoMo)?
Not being AFCS experts, we're hesitant to draw up a list of comparisons, but here are some of the differences that stood out to us:
- AFCS has audio/video streaming capabilities built in. Union does not.
- AFCS is service based. To use it, developers must sign up for the AFCS service. Union, by contrast, is server software that you license and run anywhere you like. We'll have options for developers looking for out-of-the-box hosting (we're already partnering with (mt) MediaTemple, but we don't force you to use our service.
- AFCS focuses on Flex-based mutliuser application development. The AFCS tool set seems particularly targeted at business application development, such as web-meeting spaces. Union, by contrast, is a blank canvas, agnostic of framework, language, and content. Union can be used to create any kind of content with any language capable of opening either a TCP/IP socket connection or an HTTP connection. Developers can create Union applications in ActionScript 3.0 with Flash authoring, Flash Builder, the Flex framework, or any other tool that can compile ActionScript 3.0 programs. That said, we will also be offering a set of Flex components for common multiuser controls, such as a user list, a room list, a chat panel, and a connection bar.
We're actually very happy to see Adobe active in the multiuser-application development space. One company cannot build the multiuser future alone. We want more, not fewer, companies contributing ideas.
Do you plan to add voice or video streams to Union?
Our first release will focus on the data-synchronization problem domain. That's what we're passionate about, and it's where we think we can have the biggest impact on innovation. Hence, Union 1.0 will not include any built-in audio/video support. Products such as Adobe's Flash Media Server and the open-source Red5 project already do a good job of audio/video. We don't expect to reinvent that wheel any time soon, but we definitely want to explore integrating existing audio/video-sharing systems with Union. Combining the technologies in a usable way seems like a task worth undertaking.
The Union server supports modules, do you have any plans for a Union module marketplace?
We don't have any immediate plans for any commercial "Union component" or "Union module" marketplaces. But we'd love to see a community exchange for client-side and server-side components.
Do you currently have Union running for any customers in a production environment?
Yes. An extended version of Union currently powers MegaPhone, a platform for applications and games that run on big public screens and are controlled with a phone call.
"Wait...controlled with a what?" A phone call. Imagine going to a baseball game at a sports stadium and dialing a number on your phone to play a trivia game on the big screen. To answer the trivia questions, you press 1, 2, or 3 on your phone's keypad. That's MegaPhone. Here's another example: imagine next time you buy a sandwich at your favorite restaurant chain, you dial a number to play a racing game on a networked screen against other customers in other restaurants. Press 1 to go left, 3 to go right. Best scores of the day get a free sandwich voucher sent to their phone via SMS.
MegaPhone's current deployment focus is stadiums and nation-wide digital signage networks, so Union is already well tested under a demanding, real-world load. Through our company USER1 Subsystems, Derek and I are directly involved in the production of the MegaPhone platform and its applications, which lets us fold our findings back into Union.
Can you comment on the licensing model for Union?
We won't be making any public statements about pricing until Union 1.0 launches. Suffice to say, our primary mission is to make multiuser-application development accessible to the broadest possible range of developers, so rest assured that we will have some very exciting licensing terms. Expect free licenses for academics and artists.
If you had unlimited funding what would you do to change or enhance what you have done with the Union Platform?
Unlimited funding would mean more production resources. We'd put those to work in a few key areas: 1) more client SDKs in more languages (we love the idea of Python, Java, .NET, and Flash apps all interacting through a central Union server), 2) more components to allow for rapid application prototyping and development, and 3) most of all, we'd build new applications on our own platform.
What is the future of Union?
In the short term, we're working to finish up the final feature set for Union 1.0. The last remaining "big features" are persistence (saving data permanently) and "little s" security (user permissions and privileges based on roles such as "moderator," "room owner," and "administrator"). Longer term, we have plans for multiuser objects, more strongly typed data, and specialized clustering (for example, a single hub that aggregates feeds from many servers). But most importantly, the future of Union is what our community creates that we haven't thought of yet. Enabling innovation is truly one of our main motivations, and we'll work closely with the community to provide new tools as developer needs emerge.




Facebook Application Development
wiked application !!
looking foward to seeing more of this in action !
I'm a doctor who is also a flash developer and this is very exciting
I got chance to learn much with this article. I was wondering where could i learn coding with experts and found this good platform.
regards
CGI UTIL |
Bollywood Tour