Home Infolets - Internet Innovations Explored Search

XML Tuple Space

  Posted on Wednesday November 21, @05:53PM Pacific
Infrastructure The concept of a tuple space was first described in 1982 in a programming language called Linda. The basic idea is that you can have many active programs distributed over physically dispersed machines, unaware of each other's existence, and yet still able to communicate. They communicate to each other by releasing data (a tuple) into tuple space. Programs read, write, and take tuples (entries) from tuple space that are of interest to them. In general, a tuple is simply a list of values, such as (12, 7, 48) or ("ra", "gg", "mo", "pp") or ("Dave", 33, 125.7). A tuple-space is a public repository or buffer that can contain tuples. The tuple-space serves as an associative memory, in that tuples in the tuple-space can be accessed by matching some or all the elements of the tuples to values or types presented in a template, which is simply a tuple set up for this matching. Client programs can register to be notified of changes in a tuple-space.

Sun Microsystems brought this concept to Java via JavaSpaces. IBM has introduced a similar concept via TSpaces. PyBrenda is a tuple space implementation using 100% pure Python. There are many other tuple space implementations in many other languages in various states of development.

Recently, I came across a couple of interesting tuple space implementations that take advantage of XML.

Rogue Wave Software has an alpha version of Ruple. Ruple provides a foundation for applications to collaborate transparently and independently by selectively and securely sharing documents over the existing Internet infrastructure and technology. By leveraging a simple, SOAP-based interface for reading and writing documents to and from the space, implementing reads based on content instead of physical address, and building on document-level security. In order to support a loose coupling of applications using a shared space, the objects that applications operate on have to be self-describing, subject to associative query, and viewable in different environments. Documents or document fragments encoded as XML meet these requirements. Documents are accessed and modified using a simple set of atomic verbs. Verbs that access existing documents in Ruple require a query to be specified using a subset of the XML Query Language (XQL). Ruple is initially available in the form of two demos: an "authenticated user" demo and an "anonymous user" demo, hosted on the Rogue Wave Web site. A downloadable Java jar file and Java applet are also available for writing your own Java or JavaScript Ruple applications that talk to the space hosted at Rogue Wave.

The Crudlet Project is another interesting approach. Crudlet is an event based architecture for connecting XML based interface structures to Jini service layers. The Crudlet Architecture can be used simply as a traditional application server engine that links a database to a web front end. It could also be used for something as sophisticated as a fully distributed exchange system that utilizes auto generated Java servlets and an ensemble of Jini services to provide content sharing and middleware messaging. The Java package org.crudlet.* provides a collection of events, expressed as XML tags, that map to the JavaSpaces interface. Put simply, data is moved is moved back and forth between the XML based front end and the Jini back end through a series of events. Each event executes the business logic contained on the JavaBean for each component as it is passed backward to the JavaSpace. The information is then returned, along with an error structure to the user interface. Crudlet's purity of separation of powers between the front end design layer (XSL/XML) the business logic layer (JavaBeans), the backend messaging layer (JavaSpace and agents) and database layer (JDBC) can provide advantages over other application server architectures.

 

  Related Links
  • Other articles on Infrastructure
  •   Recent Stories

    The Fine Print: Infolets posters grant Infolets an independent copyright on their postings, and retain their own copyright. Posters retain full responsibility for their postings.
    ( Reply )

    Re: XML Tuple Space

    by Aaron on Tuesday November 27, @09:07PM
    Trying to make up for the lack of posts all at once, bro?
    [ Reply to this ]

    Re: XML Tuple Space

    by Jack Hughes on Wednesday November 13, @12:31PM
    The Crudlet URL is http://www.crudlet.com/.
    [ Reply to this ]
    The Fine Print: Infolets posters grant Infolets an independent copyright on their postings, and retain their own copyright. Posters retain full responsibility for their postings.
    ( Reply )

    Copyright © Infolets 2000 - 2011. Infolets is a project of David Rubin