![]() | Java Programming JavaSpaces | Annotations![]() |
NavigateConcurrent Programming topic:() |
After J2EE, Sun had a vision about the next step of network computing: in a network environment, there would be many independent services and consumers. That isJavaSpaces. JavaSpaces would allow these services/consumers to interact dynamically with each other in a robust way. It can be viewed as an object repository that provides a distributed persistent object exchange mechanism (persistent can be in memory or disk) for Java objects. It can be used to store the system state and implement distributed algorithms. In a JavaSpace, all communication partners (peers) communicate by sharing state. It is an implementation of theTuple spaces idea.
JavaSpaces is used when someone wants to achieve scalability and availability and at the same time reducing the complexity of the overall system.
Processes perform simple operations to write new objects into aJavaSpace, take objects from aJavaSpace, or read (make a copy of) objects from theJavaSpace.
In conventional applications, objects are assembled from the database before presenting to the end user. In JavaSpace applications, we keep the ready made "end user" objects and store them in the JavaSpace. In JavaSpace applications the services are decoupled from each other; they communicate through objects that they write and read/take from the JavaSpace. Services search for objects that they want to take or read from the Space by using template object.
JavaSpaces technology is part of the JavaJini technology. The basic features of JINI are:
A minimal JINI network environment consists of:
The lookup service is described in the :Jini Lookup Service Specification (reggie). This service interface defines all operations that are possible on the lookup service. Clients locate services by requesting with a lookup server that implements a particular interface. Client asks the lookup server for all services that implement the particular service interface. The lookup service returns service objects for all registered services that implement the given interface. The client may invoke methods on that object in order to interact directly with the server.
Jini Discovery and Join Specification describes how does the client find the jini lookup service. There is a protocol to do that, jini comes with a set of API's that implement that protocol. TheJini Discovery Utility Specification defines a set of utility classes that are used to work with the protocol.
When a service registers with the lookup service, it receives a lease from the lookup service, described in theJini Distributed Leasing Specification.
![]() | To do: |
![]() | To do: |
![]() | To do: |
![]() | Java Programming JavaSpaces | Annotations![]() |