If the website or mobile app you are developing or managing has data that needs to be updated in the user’s interface as it changes (e.g. real-time stock quotes or ever changing social news feed) ORTC is the reliable, easy, unbelievably fast, “works everywhere” solution.

Leveraging the HTML5 WebSockets standard, ORTC allows a bidirectional permanent link between the server and the connected user, allowing a web application to broadcast (push) data to a single user or to every connected user when needed, instead of waiting for the user’s browser to request it (as old-generation web applications do).

However if HTML5 WebSockets are not available because the user has an old browser then ORTC will automatically fallback to the best method available to deliver and receive the real-time messages (e.g. AJAX long-polling HTTP calls) so the development team can code as if all users have modern browsers like Google Chrome or Safari.

Below is a table of the currently ORTC supported transports, by browser:

Browser

WebSockets

Streaming

Polling

IE 6, 7

no

no

jsonp-polling

IE 8, 9 (cookies=no)

no

xdr-streaming

xdr-polling

IE 8, 9 (cookies=yes)

no

iframe-htmlfile

iframe-xhr-polling

IE 10

rfc6455

xhr-streaming

xhr-polling

Chrome 6-13

hixie-76

xhr-streaming

xhr-polling

Chrome 14+

hybi-10 / rfc6455

xhr-streaming

xhr-polling

Firefox <10

no

xhr-streaming

xhr-polling

Firefox 10+

hybi-10 / rfc6455

xhr-streaming

xhr-polling

Safari 5

hixie-76

xhr-streaming

xhr-polling

Opera 10.70+

no

iframe-eventsource

iframe-xhr-polling

ORTC works on browsers through the addition of a JavaScript file. Once the file is added to a webpage, a plethora of methods are available to connect/disconnect to a server, subscribe/unsubscribe channels and to send and/or receive messages through those channels.

A simple JavaScript ORTC application would look like this:

This simple application when connected to the ORTC server will subscribe the PING-CHANNEL and upon reception of a message will send a new message at the PONG-CHANNEL containing the timestamp, it’s session id and the PONG string. Every user subscribing the PONG-CHANNEL will receive it even if they are using IE 6!

One of the ways you can see ORTC is as a way to integrate a Massive Many-to-Many Messaging System into your applications, using a Publish-Subscribe (Pub/Sub) model or pattern.

Systems (be it a browser or a client/server/mobile application) can subscribe to channels or publish to them. Anyone subscribing the channels to which information is being broadcasted will receive that information.

On the example below, you can see an ORTC serving as a hub to a set of different systems and applications. The user browser, on the right is acting as both a publisher and a subscriber, thus having the ability to send and receive data. The same is true for the Desktop Application (top) and the WebSocket Server (lower left). The database server (left) may only publish (send) data and the Server Application (bottom) is only gathering information.

Taking advantage of the amazing traffic-driven automatic scalability of ORTC, these low-latency applications will be able to scale to millions of simultaneous users and can range from simple real-time activity streams like user comments, to complex collaborative applications like multiplayer games, never forgetting the increasingly important notifications of new e-commerce product promotions or new content becoming available.

With a coherent set of API’s (JavaScript, C#, Java, PHP, iOS, Android, ActionScript, Windows Phone, Node.JS and Lua), ORTC provides a layer of abstraction that protects your application from the ever-changing array of real time server providers, thus freeing you from using a single vendor technology or even protocol.

We take security very seriously and it was one of the main concerns of ORTC since day one. A good communication system is only as good as its security and content injection is a real issue with internet-based systems.
Users need to feel the information they are sending or receiving is secure. Companies need to make sure no one is tapping into their information and violating their visitors’ privacy.

Data goes through our security layer, which allows or denies access to information channels. Even if your provider doesn't offer a security layer, you can always be sure ORTC will be there to protect you, your data and your users.

Security is provided on a channel-base. This means that a user may have read-only access to a channel (will only receive data), may read and write to a channel (both send and receive data) or no access at all (no data from this channel will be received by the user and he/she won’t be able to use the channel to broadcast data).

On top of this, you can use SSL (Secure Socket Layer) to further guarantee you user’s or company privacy.

Along with security, scalability quickly became a concern, especially because ORTC provides the means to broadcast information to thousands of users using much less bandwidth and web server resources. Nonetheless, the ORTC servers must be able to respond reliably and promptly to requests made. This is achieved through the high-scalability architecture or ORTC.

ORTC scales both vertically and horizontally. By scaling vertically, ORTC is able to use the resources of a single server to open up internal processes and split the workload among them, instead of using a single thread doing all the work, thus wasting processing power. The limits of a server depend solely on the hardware and not on the software. The better the server, the greater the number of connections it will handle.

Of course, every server – even the most powerful one – has its limitations. When servers reach their limit, it is necessary to add more hardware to the equation. ORTC allows you to do just that by allowing horizontal scalability. By using its Load Balancer, ORTC distributes load between two or more servers, vastly increasing the processing power and, therefore, the throughput of the whole ORTC system. With this, ORTC allows up to an unlimited number of concurrent users.

On top of this model, ORTC can be hosted in our elastic cloud (this is, actually, the default hosting solution) where it will scale automatically according to your website or mobile app traffic. Other hosting models are available:

Cloud - This is the default and most cost-effective hosting solution. ORTC provides an elastic cloud that can preemptively switch new servers on in order to provide the best response and performance for your applications. This is a shared server environment, although your own application is always shielded from others and you cannot access data that doesn’t belong to you (and vice-versa).

Private Cloud - The same as the default Cloud solution, except the servers are maintained and used only by you and your application.

In-House - You will be provided a server (appliance) which can be hosted in your facilities or data center. The management and software maintenance is provided by us.

All this is however not limited to the web applications running in a browser since ORTC brings the same benefits to the development of native mobile applications for iOS (iPhones/iPads), Android and Windows Phone devices, providing the hands-on solution for real time web and platform integrations with maximum ROI for businesses and minimum coding effort for developers.