" /> Davanum Srinivas' weblog: May 2006 Archives

« April 2006 | Main | June 2006 »

May 24, 2006

[ANN] Tungsten 1.0 - Web services platform

Axis2 based, works both stand-alone mode as well as servlet mode with a fully fleshed out AJAX based console and supporting all the latest standards in web services, available under do-whatever-you-want-with-it Apache Software License.

Interested? http://www.wso2.com/products/tungsten/

May 05, 2006

[ANN] [Axis2] Axis2 1.0 Released

After nearly two years of development, we are very proud to announce
the release of Apache Axis2 1.0!

Check out our official site: http://ws.apache.org/axis2

Apache Axis2 is a complete re-design and re-write of the widely used
Apache Axis SOAP stack to build on the lessons learnt from Apache Axis.

Apache Axis2 is more efficient, more modular and more XML-oriented
than the older version. It is carefully designed to support the easy
addition of plug-in "modules" that extend its functionality for
features such as security and reliability.

A module supporting WS-Security (Apache Rampart) is available
immediately and a module supporting WS-Reliable Messaging (Apache
Sandesha) will be available within days.

Apache Axis2 not only supports SOAP 1.1 and SOAP 1.2, but it also has
integrated support for the widely popular REST style of Web services:
the same business logic implementation can offer both a WS-* style
interface as well as a REST style interface simultaneously.

Apache Axis2 is built on Apache Axiom, a new high performant,
pull-based XML object model that was released two days ago.


- - Features -

Programming Model
- Improved, XML-centric client API including full WSDL and policy
support
- Support for any message exchange pattern
- Synchronous and asynchronous calls
- Archived service deployment model supporting full service
encapsulation with versioning support
- Archived module deployment model supporting controlled
extensibility with versioning support
- Hot deployment
- WS-Policy driven code generation extensions
- Flexible service lifecyle model
- Support for querying service's WSDL (using ?wsdl), schema (using
?xsd) and policies (using ?policy)

Supported Specifications
- SOAP 1.1 and 1.2
- Message Transmission Optimization Mechanism (MTOM), XML Optimized
Packaging (XOP) and SOAP with Attachments
- WSDL 1.1, including both SOAP and HTTP bindings
- WS-Addressing (submission and final)
- WS-Policy
- SAAJ 1.1

Transports
- HTTP
- SMTP
- JMS
- TCP

Supported Data Bindings
- Axis Data Binding (ADB)
- XMLBeans
- JibX
- JaxMe

Tools
- WSDL2Java: Generate Java stubs and skeletons from a WSDL document.
- Java2WSDL: Generate a WSDL document from a Java class.
- Eclipse Plugins
- Intellij Idea Plugins
- Web application for administering Apache Axis2

Extension Modules
- Apache Rampart: Supporting WS-Security (and soon WS-Policy)
- Apache Sandesha2: Supporting WS-Reliable Messaging

(Apache Axis2 comes built in with a module that supports WS-Addressing.)


Known Issues and Limitations
- Recursive schemas (A includes B which includes A) may cause problems
- JaxMe data binding support is experimental
- Axis2-595: Hot redeployment in Apache Tomcat has problems
- Axis2-666: AddressingSubmissionInHandler does not deserialize EPR
extensibility attributes and elements
- AXIS2-667: Operation dispatch based on message body has a known issue
- Axis Data Binding (ADB) does not cover all of XML Schema; its an
80-20 design point. Unsupported XML Schema features include:
- Simple content extension and restriction
- Complex content restriction
- ADB does not support xsi:type based deserialization at runtime
- No support yet for unwrapping of doc/lit WSDL files (in stub
generation)
- No support yet for rpc/encoded style WSDL documents (in stub
generation)


Thank you for your interest in Axis2.

- -The Axis2 Development Team

May 04, 2006

AXIOM - Thanks Elliotte

Elliotte,

Thanks for the feedback on AXIOM. We have enormous respect for your work and am i have been an avid follower of your Cafe Con Leche and Cafe Au Lait for years now. I personally tried to contact you way back in Oct, 2002 about Axis 1.0 Release and got promptly snubbed. The emails you sent me privately will remain private. No need to bring them up again :)

Let's switch to the topic of interest now.

- Duly noted and agreed to the subtle distinction on phrasing for XOP/MTOM in our announcement. Very few of us are native English speakers.
- "The Axiom API itself is too complex". Please see the Goals, Use cases and Requirements from our *OLD* wiki pages, we ask for too much from AXIOM w.r.t usage when developing web services.
- The specific example you picked, the need for using a factory is because we wanted to be able to plugin a link list implementation or a array backed implementation and hence we used a factory.
- I've created a bug report (WS-COMMONS-18) for the "use relative namespace URIs" issue.
- Please give us a pointer to the locations where you found "Incorrect white space handling, and some serious mistakes with encoding detection" and we will fix it. Easiest way is to open a JIRA issue here.

Now let me give u the spiel from our end:
- AXIOM operates at various levels. Our Nightmare scenario is having to build the whole tree from the incoming stream.
- AXIOM can give you an XMLStreamReader which is a composite of already built nodes as well as the original stream which is still unread. Xerces can't do that!.
- Please see the following bug report (AXIS2-533) for a detailed analysis of the speed comparison between DOM4J, JDOM, Xerces2 and AXIOM in our *NIGHTMARE* scenario. Some performance charts are here. Please click on all 3 sheets tabs at the bottom.
- Since we do so well in our *NIGHTMARE* scenario, obviously we do much better in the scenarios where we dont' need/have-to build the whole tree.
- We have build a SOAP1.1 object model, a SOAP1.2 object model, a DOM3 object model and a SAAJ object model on top of the underlying llom (Linked List) implementation with minimal overhead in terms of performance.
- We have integrated XmlBeans which is stax based as our databinding in Axis2, we also have our own native databinding called ADB. We have gotten AXIOM to work even with JaxMe using a SAX Bridge. There is support for JAXB 2.0 in the works. So as u can see AXIOM was built specifically to be able to work with existing data binding tools.
- If you look at the OMDataSource, you can plug-in your own data binding with zero effort and make it work seamlessly with AXIOM
- Guess what? You can build a Servlet endpoint for accepting SOAP messages with MTOM attachments using just AXIOM and nothing else.

Thanks for listening.