system architecture overview introduction ilinc is a suite of Web conferencing products designed to allow participants to interact and collaborate online in a number of different types of sessions, including training sessions, meetings, large conferences or one-on-one technical support sessions. The product includes a variety of tools and options to enable real-time collaboration, such as VoIP, video, application sharing, PowerPoint delivery, whiteboarding, polling, quizzing, testing and assessment, feedback, record and playback, and much more. This paper is intended to provide a technical overview of the system architecture of an ilinc system at a fairly high level. System Architechure and Overview ilinc s Web conferencing system architechture is client/server based. The client is a 2 MB C++ package that works in a lock-down environment and is non-invasive (installing to the TEMP directory if confused, not requiring registry rights, not writing any Windows system files, etc.). The client uses an ActiveX control to install itself automatically, but, failing that, can be installed with a few extra clicks by the participant (they manually click to download the auto-installation code). Our server is an ISAPI extension running on a Windows IIS server (all versions of IIS are supported). All connectivity is TCP/IP-based and the entire product can and will by default, work on port 80 (we can also run on any other port desired as long as IIS supports it). Our entire server process runs inside the IIS process as part of inetinfo.exe so all client server connectivity is handled directly by IIS. The product includes a Web-based frontend ilinc Communicaitons Center, where all administration, user management, event management, registrations, etc. are performed. The front-end is written in a combination of ASP, Perl, Javascript, and HTML. This front-end can be completely replaced with another by making calls to our Database Object or by implementing our Remote Join option, both of which are included in our free API. Typically, users begin a session in one of several ways: by logging into the Web-based front-end and clicking a join button; by receiving an e-mail invitation from the SMTP service on the Windows server and clicking on a link to join a session directly, bypassing the front-end; or, by clicking on a URL that has been sent to them in some fashing (IM, e-mail, or on a Web site, or on some other portal or LMS). In all cases, doing so the first time, causes the client installation process to automatically launch and run. The install is a onetime installation; thereafter it simply launches and connects to the server. Once installed, the client connects to the server suing HTTP. 01
The entire product works seamlessly through proxy servers and firewalls that allow either port 80 and/or 443. Some very restrictive firewalls or non-compliant proxy servers can cause client connectivity issues. But such problems are usually easily resolved with simple client configuration adjustments, such as forcing the product to use SSL, adjusting the client transport, or forcing the client software into a keep-alive mode. All such options are performed easily by end users and can be forced system-wide if necessary. ilinc development has also provided solutions to adjust the client/server communications to address unusual firewall or proxy server settings. Client/Server connectivity works as follows: the client always connects to the server using port 80. If audio and video is in use, it will also attempt a UDP transport connection on port 11730, but will automatically fail over to port 80 if that port is not open. The server completely and automatically switches audio, video and Diagram A 02
data traffic based on pre-set session settings which determine the appropriate communications standards. Multicasting of audio, video, and application sharing traffic is fully supported. We also have a complete distributed server architecture, allowing for the placement of remote leaf servers at key points on a network to reduce traffic between bandwidth challenged remote sites and the central conferencing servers. Leaf server licensing is free. Hardware and OS requirements for leaf servers are identical to our root server requirements. Full SSL and complete end-to-end AES encryption of all live session data is supported. Use of SSL is completely supported on the frontend. We use this SSL connection to download a secure AES key of 128 bits or more and use it to encrypt all data at the client. The encrypted packets are then set through the server (achieving maximum security and efficiency) and are not decrypted until they reach the receiving client. The client can also use a pure SSL encryption mechanism if desired. The server database an be a local Access database (which actually scales quite well) or a local or remote SQL database. Oracle solutions can also be provided on-demand. Various 3rd-party add-ons for system redundancy are possible. Essentially, any redundancy solution that is transparent to the software layer will work fine with ilinc. We frequently design warm standby solutions for customers who do not need high uptime, or highly redundant and automated failover solutions using off-the-shelf 3rd party solutions (such as BIGIP from F5, file system replication solutions from Microsoft or others, and built in MS-SQL database replication services). Diagram A shows one potential ilinc system architecture using server cascading to reduce network utilization across the network and to add scalability. Leaf-to-Root connectivity is shown as blue lines, client-to-leaf or Root connectivity is shown as violet lines. In this case, the session is set to internet audio, thus client/server connections average roughly 28.8 per user. ilinc supports a host of conferencing options, including VoIP, MPEG 4 video supporting USB Cameras, and data-only sessions supplemented with Telco services, provided by ilinc s own audio services or by a third party. Bandwidth requirements range from 15-20 Kbps per user for data only sessions, to 26 Kbps for VoIP and data sessions, to 40 Kbps 128 Kbps and higher when video is added. A variety of audio codecs and video settings to manage bandwidth and video quality (frame rates; bandwidth utilization) are included. Critically, all users run the same client software for all functionality, and all users will use roughly the same amount of bandwidth over time, regardless of their role (the exception being that application sharing hosts will send more data upstream). The product also includes the ability to throttle application sharing which is frequently considered to be a threat to existing nertwork infrastructures. 03
ilinc includes the ability to limit the amount of bandwidth that application sharing will use, thus limiting its overall impact on existing networks. The product is highly scalable, supporting thousands of concurrent users in single or multiple sessions. Each ilinc server supports up to 500 concurrent connections. Servers can be linked together to add capacity. Server requirements are very reasonable 500 users can run on a single processor P-lll server with 256 MB of RAM. Client system requirements vary depending upon conference type, but are also very reasonable. Video sessions require the higher requirements but generally speaking the system requirements for USB video cameras are higher than ilinc s system requirements. Any P-lll machine will run the ilinc clident sofware fine, and P-II machines are supported as well for audio only conferences. Learn more about ilinc s products and services: 1.800.767.9054 // www.ilinc.com 04
KEY FACTS: Implementation of an ilinc system is very straight forward this has been a core focus of the product for many years. Most customers require little or no assistance in implementing even the on-premise installed version. Our server installation is packaged and runs as a wizard, requiring minimal input. Post installation configurations and customizations are done with great ease in simple.ini or text files. Thorough system documentation is provided both online and in hard copy format. Client implementation is simple as well, as the client installs automatically the first time a user joins a session. Client upgrades are also handled automatically if a new client is available on the server, the install process will automatically install it on the fly with minimal end-user interaction. Various server monitoring, management and reporting tools are provided out-of-thebox. Third-party server monitoring tools are recommended for added functionality (such as 24x7 monitoring and automatic paging options). The product also includes extensive reporting and logging of system utilization: reports and logs showing service startup and shutdown, error reports, session start and end times, participant entry and exit times, along with user IDs, session names, IP addresses of participants, and more are all included in the base product. System-wide historical usage reports are also provided in a browser-based format. Ease-of-use has been a core focus of development efforts as well the product gets very high ratings in this area. Most users require little or no training in order to achieve basic online delivery skills. A variety of training solutions are available for those that need them, including online tutorials, help files, free live end-user training, and custom onsite workshops. ilinc systems can be customized in a number of ways. The entire front-end of the ilinc Communications Center can be branded and re-worded easily. Or, if desired, the frontend can be replaced with any other Web-based system, so long as that system can pass a properly formed URL to the ilinc server with a users ID and session number, along with other basic parameters. In this sense, the ilinc server can simply provide back-end conferencing services to any organization. Finally, system administrators have complete control over product features and options. An extensive feature configuration tool is provided, allowing system administrators to enable or disable a wide variety of product features, and even allowing lower-level administrators or session leaders to then choose from a pre-determined list of product features, allowing them to customize the online collaborative environment. 05