JXTA & Web Services Gateway
JXTA & Web Services Gateway
The JXTA & Web Services Gateway project makes the interoperability between P2P JXTA and Web Services a reality. it connects Web Services and JXTA P2P environment. It also takes the advantages of both Web Services and JXTA.
Web Services are network accessible programs, expose functionality by receiving/sending
SOAP messages over HTTP/HTTPS, and describe this interface as WSDL descriptions. And JXTA Services are running on JXTA P2P platform and communicate by JXTA open protocol. Although their concepts have a significant amount of overlap, their current manifestations remain very different. It is very possible that the two will take complements in each to converge producing a single hybrid solution. In this current stage, we think a JXTA & Web Services Gateway is needed for the reason to make
applications in both network environment to be able to talk to each other
in SOAP easily.
JXTA doesn't define the "format" in which peers talk to each other, SOAP is an XML-based communication protocol and encoding format for inter-application communication. We adopt SOAP as the format of message sent between peers, that is, peers in JXTA can communicate by using SOAP/JXTA.
Axis is essentially a SOAP engine -- a framework for constructing SOAP processors such as clients, servers, gateways, Axis is a great framework for Web Services with agility, it is easy to make Axis be able to send SOAP message over different application protocols instead of HTTP/HTTPS. (For more information, please refer to Writing JXTA Transport on Axis).
We create a language for JXTA services description, called JSDL (JXTA Service Description Language). It is originally from WSDL (Web Service Description Language), we just make little modification to WSDL to suit the feature of JXTA. SO, people can use JSDL to describe and advertise their JXTA services. (For more information, please refer to JXTA Services Description Language).
For Services deployed in JXTA or Web Services Environment to be able to find each other & communicate, we have to do the Gateway Implementation. The Gateway does two major things: The first one is Service Advertising between JXTA & Web Services environment. And the second is communication protocol transformation, peers in JXTA & Web Services environment can communicate by using SOAP/JXTA & SOAP/HTTP through this Gateway. (For more information, please refer to Gateway Implementation).
We provide tools for JXTA services development & deployment, like those that Axis provides for Web Services. For example, we have to develop JSDL2Java that takes a JXTA Service description file as input and generate client side stubs & server side skeleton for JXTA services invocation & development/deployment. (For more information, please refer to Services Development & Deployment tools).
There are so many good standards for Web Services (You can find most of them at OASIS, W3C), including Web Services Description, Web Services Security, Web Services Management, Web Services Choreography & Orchestration. Some people call them Web Services Protocol Stack.
For JXTA, some people are designing the same functions that "Web Services Protocol Stack" provides into JXTA protocol stack.
Since we adopt SOAP as the encoding format for inter-peer communication for JXTA, we think that maybe we can just simply adopt or extend these good Web Services Standards into JXTA, for example, we can adopt WS-Security related standards for security issues and WS-Management related for JXTA peer management.
This is just our concept, we need more time to think this over!