As we approach the atomic limit of silicon, and hence the upper bounds of Moore’s Law, our insatiable appetite for computing power and petabyte-scale applications will be increasingly met by a horizontal scaling of computer power: ever-larger server-farms.
The platforms are already being developed to handle this situation; Amazon Web Services products such as EC2, S3 and SimpleDB provide an important infrastructure on which to develop scalable applications.
Although the problem has already been partly addressed at the platform level, little attention has yet been given to how applications can easily scale across these expandable infrastructures.
For this reason, the W3C have been developing a protocol that allows applications to easily adapt to these new environments. The System EXchange (SEX) specification “defines an interface between two local systems - operating in the same physical environment - such that the first system may transfer details of itself to the second, with enough information that the second system can replicate and modify the first.“.
Employing this protocol therefore allows applications to easily be replicated across horizontally scaling environments, with any minor updates automatically mutated into the applications as necessary to adapt to the change in resources.
The protocol itself consists of a series of XML messages and related specifications.
The first of these defines a distributed set of XML registries (Blueprint Application Registries, or BARs) that allow SEX-compatible systems to be registered and their availability displayed.
A series of pre-transfer negotiation messages is defined in a second specification, that allows one system to query the status of another system and negotiate a suitable means for exchange. This prevents possible complications, where a system may already be regularly transferring data to a second system, and does not possess the ability (or have the authority) to co-ordinate exchange with more than one system simultaneously.
In commercial environments, these complicated negotiation messages can be replaced with a simpler, more formal ‘handshake’ protocol, where a simple micro-payment is logged in exchange for the system’s resources.
The final specification defines the exchange protocol itself. This consists of a three-part XML message; the header, core data, and footer.
The header contains metadata describing the application, together with a typical XML digital signature, which guarantees the provenance of the application, and prevents viruses from being distributed to the receiving application. The main data section contains the binary code of the application itself, and the final payload section notifies the receiving application that transfer is complete and that the exchange can be terminated.
The W3C believe that once this protocol is commonly adopted by web developers - who may have no prior knowledge of such technologies - that this new ‘Sementic Web’ will forge a bright path for Web 3.0.
Further details can be found on the W3C site.