WS/XSUL2: Web and XML Services Utility Library (Version 2)
WS/XSUL v2 (a.k.a. XSOAP4) is a very modular Java library to construct web services that uses XML
with a strong support for XML Schemas and WSDL 1.1 doc/literal bindings.
Why do you need XSUL?
WS/XSUL 2.0: is designed to be the easiest way to create and access Web Services
(regardless of location or protocol as long as they are described in WSDL and use XML Infoset)
This project has a specific goal to enable easy creation
of Web Services for LEAD: Linked Environments for Atmospheric Discovery
which is a project that is creating an integrated, scalable cyberinfrastructure
for mesoscale meteorology research and education.
To get started programming quickly with XSUL2 read
step-by-step programming guide.
[2005/8/31] Presentation about WS/XSUL2 [PDF 480KB] with an emphasis on new capabilities
such as seamless support for asynchronous operations
(client API is the same for RPC and asynchronous invocation), support for pluggable correlators to allows WS
client to receive response, including using WS-MsgBox, description of future work on scalability
and load balancing for XSUL3.
Some of XSUL2 highlights:
Superior doc/literal and XML Schemas support using industry standard Apache XmlBeans 1.0
"WSDL first" programming model with minimal amount of code generated
(just Java interface for each Port Type, the rest is done by runtime
- no need for skeletons or stubs/Call classes)
No need to learn special APIs to create services: XSUL services are just POJO
that use classes generated by XmlBeans from WSDL/XML Schemas and implement
interface generated from WSDL PortType (following best of IoC design principles
no knowledge of WS/XSUL APIs is needed to implement services)
Transparent SOAP 1.1 and SOAP 1.2 support
Very simple to use API to make your services accessible over network endpoint that supports SOAP 1.1/1.2 and has WSDL 1.1 URL (http://host:port/service?wsdl)
Built around widely praised WSIF API to allow invoking Web Services without
writing code (improved DynamicInvoker) and to allow transparent access to multi-protocol Web Services
described in WSDL
A small footprint version of WS/XSUL can be easily assembled for applets - easy to
choose required functionality from huge choice of fine grained module
Designed to work smoothly with firewalls including support for asynchronous messaging
For advanced programmers:
supports WS-Star programming model with easy to write handlers driven by WSDL metadata
(included is message level message signing and verification, WS-SecureConversation, capabilities)
Designed from ground up for "plain old" XML (Infoset) over HTTP [work
in-progress: needs better WSDL integration]
Easy to use asynchronous messaging API with WS-Addressing built-in [work in-progress]
- Do you want to write services that are 100% compliant with XML Schemas?
XmlBeans 1.0 used in WS/XSUL provide the best support for XML Schemas in Java.
- Do you want to write services logic that is independent from SOAP toolkit?
XSUL is very un-intrusive and in services implemented in XSUL
(including Java interfaces) do not need to use any of XSUL classes
- service implementation only needs data binding code (such as XmlBeans).
- Do you need to extract just a class (or two) to provide some aspect Web
Services functionality already in SOAP toolkit?
XSUL is very modular
and easy to take as little or as much as you may need.
- Do you need to use Web Services or XML Services from applets?
Fine grained modularity
of XSUL is ideal to assemble small footprint JAR files to deploy in applets and web start based applications.
- Do you need to receive messages and subscribe for events even from behind of firewall?
XSUL provide WS-MsgBox
and there is as well WS-Eventing/WS-Notification
implementation based on XSUL.
Step-by-step programming guide
Use one of our samples and follow
step-by-step instructions from the programming guide.
The guide will get you started writing your own Web Services in very short time ;-)
"Programming With WS/XSUL: Very Brief Guide" available as
Adobe Acrobat Presentation [PDF 70KB]
Power Point slides [PPT 300KB]
WS/XSUL was designed and implemented in
Indiana University Extreme! Lab
(under guidance of Dennis Gannon).
- Aleksander Slominski:
overall architecture, design, and implementation
- Liang Fang:
security (message signatures, secure conversations and capabilities tokens):
design and implementation
For more information
send question to
xgws-user mailing list
and report a bug.
Performance optimizations, better support for asynchronous messaging in API, support for WSDL fault, ...