My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members

Real-Time Component Framework

The Real-Time Component Framework (RTCF) is designed to make it easier to build modular Flash Media Server applications. Features include:

  • Broadcasting application.onXXXXX events.
  • Additional onXXXX events to facilitate authentication and authorization.
  • Role-based access controls for remote methods, shared objects, and streams.
  • Client-side proxy objects that represent server-side components.

Project Timeline

  • Project started: October 21, 2009
  • Early development phase: November, 2009.
  • First Milestone: November 2010 - used to build a proof of concept virtual studio.
  • Second Milestone: February 2011 - working virtual studio.

Introduction

Flash Media Server (ver 3.5) provides a simple server-side scripting environment based on the SpiderMonkey JavaScript 1.5 interpreter and a relatively simple API. It ships with a version of the original Macromedia Communication Components framework which is not used here. The following is a list of features the Real-Time Component Framework should implement - beginning with the simpler features.

Basic Framework Features

  1. Allow components to listen for application events: onConnect, onDisconnect, and so on. - done.
  2. Define a more complete set of application.onXXX events Application onXXX Events: onConnect, onAuthenticate, onAuthorize, onAuthorizedConnect, etc. - done.
  3. Route remote method calls to components via the Client and NetConnection objects. On the client use an API similar to mx.rpc.RemoteObject - done.
  4. Provide an efficient logging facility.
  5. name spaces|Component Name Spaces to separate and secure component assets like streams, remote method calls, and shared objects. - done.
  6. Manage the life cycle of application instances including delaying user authentication while components are configured. Includes managing server-side application states: startup, working, idle, shutting down, etc.
  7. Pluggable authentication modules. - done first round - like to do more.
  8. Recording and Playback of component and application history - to do.
  9. Manage users by role and support dynamic role escalation/descalation (user to presenter and back to user). Role-based access controls for the over-all application and individual components. - static roles done - role escalation etc still to do.

Advanced Framework Features

  1. User Presence and Message Routing between Instances.
  2. Allow in-instance break out sessions.
  3. Easy movement of component assets and history between application instances - even better would be real-time update of components shared across instances (aka multi-instance components).
  4. Multi-server session management and/or load balancing.
  5. Application state managment (Startup, Active, Inactive, etc.)

Base Components Required by Most Applications

  1. Client-Side Connection Manager
  2. Server-Side Authentication Manager
  3. Server-Side Access Control Manager
  4. Connection Monitor
  5. Text Chat
  6. Shared Cursor
  7. Layout Manager
  8. Presenter
  9. Room List
  10. User Preferences
  11. Discussion List - Text, Audio, Video
  12. Simple User List with Statuses
  13. User Grid with any number of columns
  14. Audio Conference
  15. Video Conference
  16. Shared Text Editor
  17. White Board
  18. Video Player

Infrastructure

  1. Shared Objects
  2. Shared Arrays
  3. Shared XML
  4. Server-side Event broadcast mechanism.

Sample Applications:

  1. Instant Messaging system with collaborative meeting areas.
  2. Digital Signage System
  3. Security System
Powered by Google Project Hosting