System is a classic client-server application, see Figure below.
The central component of the server part is open source Red5 media server with built-in web server Apache Tomcat. Red5 handles media streams and provides Flash messages exchange between OM clients and the server via AMF0 / AMF3 protocol, also it receives and forwards media streams from VoIP server (if configured) and OM screen-sharing stream (if active).
System components are implemented as Java Spring Beans and can be customized by editing the appropriate XML file.
Data on system objects (users, groups, rooms, organizations, messages, logs, etc.) are stored in the database. All popular databases are supported "out-of-the-box" - DB2, Derby, MS SQL, MySQL, Oracle, PostgreSQL. CRUD data management operations are performed according to the JPA standard (using Apache OpenJPA).
Basic operations with system objects (user, group, event, file, record, etc.) can be performed using SOAP / REST web services implemented with Apache CXF. Integration with various third-party systems is done through web services.
Client part (front end) is on the last stage of porting to html5 / Apache Wicket web application technology. Flash / Flex / OpenLaszlo is used as late as in separate elements of the virtual room, gradually decreasing. Thus, the stack of technologies is simplifying.
Authorization and authentication is possible both with the use of the internal user base and with the use of external systems: 1) LDAP/ADS via Apache Directory LDAP API 2) Google/Facebook/VK and others via OAUTH.
Audio/Video streams are transferred under Red5 server via stack of protocols: RTMP, RTMPT for bypassing firewalls, RTMPS for secure connection.
VOD (Video On Demand) is used for viewing of meetings records and media files, and is implemented by means of HTML5 / Wicket.