![]() |
|
Published 2008-07-25 Printer-friendly version
Orbited is an implementation of Comet, and in programming terms Comet is a web application model where the client, via Javascript, keeps an open connection back to the server. This allows the server to push data back to the client without having to first wait for a request.
Michael Carter and Jacob Rus presented Orbited in the form of a dialog over the confusion between Comet/Orbited and standard TCP socket communication. In essence Orbited is a TCP layer that works over port 80; normal socket communications are often blocked by firewalls/routers. Orbited is also a safe transport layer which can recover from dropped packets.
Currently Orbited is a separate server which runs alongside your web server. In a typical Orbited scenario when the browser requests a page from the web server, the web server communicates with the Orbited server; from that point on the Orbited server communicates directly with the browser via an event handler.
Orbited can be used to present data such as IRC or email (e.g. Google mail) to the browser. One of the topics Carter and Rus argued in their unusually-structured presentation was whether to handle protocols on the server or on the client. In the case of IRC, one choice is to convert IRC to something like JSON for ease of handling in the browser; the other is to push the raw IRC data out to the browser and use Javascript to convert the IRC stream into something displayable. The latter is a more efficient approach since it lightens the server load and leverages computing power on the browser machines.
At present Orbited is a only available as a separate server. In part this is because web servers generally spawn a new thread for each client. If you kept all those connections open you could run out of processes. Also Orbited is written in Python to enable rapid development, but Python can't use multiple CPUs because it has a global interpreter lock. If you wanted the current Orbited server to integrate with a web server you'd have to have multiple instances each with its own IP address or port. A multi-threaded integrated sever is in testing but isn't expected to be completed until after the Python version has settled down.
Also available is the js.io library which provides client-level protocol handling. Protocols currently supported or in development include AMQP, IMAP, IRC, LDAP, SMTP, SSH, Stomp, telnet and XMPP. A multi-player browser-base game built on Orbited is available at unicommand.com.
Copyright © 1999-2009 by CoveComm Inc. All Rights Reserved. Reproduction in any form without the express written consent of CoveComm Inc., except as described in the subscription agreement, is prohibited.
Clarion Magazine ISSN 1718-9942
One year: $169
(includes all back issues since '99)
Renewals from $119
Two years: $269
Renewals from $219