Adobe's Emerging Rich Media Ecosystem, Part 1: Developing Social Media Applications
There are three editions of Flash Media Server 3:
- Flash Media Interactive Server: The full-featured edition of the server.
- Flash Media Development Server: A development version of Flash Media Interactive Server. Supports all the same features but limits the number of connections.
- Flash Media Streaming Server: Supports the live-video and video-on-demand streaming services only. This server edition does not support server-side scripting or stream recording.
This article will focus on a rich media ecosystem wherein connected participants can form communities that become participatory through the functionality found in the first two of these servers. An ecosystem is a system whose members interact with each other symbiotically (usually with synergistic outcomes). It is a term that originated from biology and refers to self-sustaining systems.
A follow-up article will focus on Flash Media Streaming Server and topics such as the H.264 video codec. And, later, a third article will discuss a number of additional topics such as security and service level agreements (SLAs). The topics chosen for the final article in this series reflect the fact that your eventual success in any media ecosystem can depend as much on technical savvy as business acumen.
You'll need some familiarity with basic Adobe Flash technologies and products to follow these discussions. My recent article "Building Desktop Applications For The Web With Adobe Integrated Runtime" and the other references cited at the article's end provide this background.
All three editions of the server can host streaming media applications, but Flash Media Interactive Server and Flash Media Development Server also can host social media and other real-time communication applications. Users can capture live audio and video, upload them to the server, and share the live content with other clients. This feature allows you to capture live events in real time and stream them to a large audience or create live audio and video conferences. When clients send live video to the server, you can give them the option of recording the video and storing it on the server. Applications that use this feature include video blogging and other social media applications that build user communities.
Note: You will need to use a media encoder to capture and stream live video to Flash Media Server. However, because Flash Media Server is supported only on Windows, you may want to create your own client that captures and streams live video.)
Flash Media Interactive Server and Flash Media Development Server also provide access to remote shared objects that synchronize data among many users, and so are also ideal for developing online games.
You can use Server-Side ActionScript to connect to other systems, including Java Enterprise servers, web services, and Microsoft .NET servers. This connectivity allows applications to take advantage of services such as database authentication, real-time updates from web services, and email. In addition to these advanced techniques, social media applications also can take advantage of the many video development techniques described in the Appendix.
Social media or social networking (one example of social media) has a number of characteristics that make it fundamentally different from traditional media such as newspapers, television, books, and radio. Social media describes the online technologies and practices that people use to share opinions, insights, experiences, and perspectives with each other.
Social media is created by using web content such as blogs and wikis and created by individuals or a collaboration of individuals called a community. A community, in this context, is a group of people with common interests who connect with one another to learn, play, work, organize and socialize. (See "Social Media Goes Mainstream" in the References section for more on this subject.) Communities can be large or small, local or global, and public or restricted to members. And, as you will see, social media often uses much of the same technology exploited by the developers of state-of-the-art games.
Flash Media Server (all three editions) is a hub. Applications connect to this hub using Real-Time Messaging Protocol (RTMP)I'll discuss the RTMT protocol in the next article of this seriesand its variants and the server can send data to and receive data from many connected users. A user can capture live video or audio using a webcam or microphone that's attached to a computer running Adobe Flash Player and publish it to a server that streams it to thousands of users worldwide.
An application that runs on Flash Media Server has a client-server architecture. The client application is developed in Adobe Flash or Adobe Flex and runs in Flash Player, AIR, or Flash Lite 3. It can capture and display audio and video and handle user interaction. The server application runs on the server. It manages client connections, writes to the server's file system, and performs other tasks.
The client must initiate the connection to the server. Once connected, the client can communicate with the server and with other clients. More specifically, the client connects to an instance of the application running on the server. An example of an application instance is an online game with different rooms for various groups of users. In that case, each room is an instance.
Many instances of an application can run at the same time. Each application instance has its own unique name and provides unique resources to clients. Multiple clients can connect to the same application instance or to different instances.
Figure 1: Several clients connecting to multiple applications (sudoku and scrabble) and application instances (room 2, room 1, and room 2) running on Flash Media Server