Axis Requirements

Introduction

This is a summary of the Reqirements for Axis 2.0. Since OM is a major part of the the new Axis, it has a dedicated section

General Axis Requirements

* Enable Service isolation

OM

As mentioned before this section discusses OM in detail

Use Cases

Since usecases are again a vast section it is moved to a separate page See OM Use Cases Discussed in FrontPage/Architecture/OMUseCases

Axis summmits consensus on OM:

http://ws.apache.org/~hemapani/images/axiom.png

    "Introduce a XML info-set representation which uses streaming but records the events, occurred so far". 

The thing that does the above was called AXIOM (OM)

How the Discussion at the Summit goes

Minuts of the Summit discussion about OM

  1. We need to design a pull based Axis engine that do streaming (the start)
  2. Handlers want to access the the message, there are two cases
    • access the Headers
    • access the body
  3. There are two problems
    • Pull forget what read before
    • Handlers like to have easier infoset like (DOM like) interface.
  4. Proposal 1 - Save Headers as DOM elements, the body is accessed via the pull parser. If the handler read the body it is his responsibility to set it back. (TEAM feel this is not enough .. we need to help the users more.)
  5. Proposal 2 - Store the Headers in DOM element, if the body is accessed only, the complete body is converted to DOM. Later the pull event will generating travasaling the DOM. (if body not created the pull events read from the stream.) (TEAM feel the fact the complete body parsed when only the part of it may be need is not good)
  6. Proposal 3 - OM, OM is a representation of the SOAP Message.
    • provide access to the pull events
    • provide a easy to accessible infoset
    • Differed parsing as much as possible
    • cached the already read information in some form so that thy can be re produce in need.

Goals of OM

Open issues

  1. Does OM have Deserializers and Serializers inbuilt?
  2. Does OM implement w3c DOM interfaces or wrapped to support them
  3. What is PULL interface, is it StAX+, Typed pull parser interface.
  4. what is the OM XML infoset, DOM, JDOM like, our own

Issue outside the direct scope of OM, but relevant

MTOM/Attachments requirements

XML-Java binding requirements

See also comments in described in Jira issue [WWW]AXIS2: pluggable XML transformations (JavaBeans2XML, XSD with JaxMe/JAXB, Castor, XmlBeans, RelaxNG, ...)

Pluggability requirements

Performance requirements

See also Jira issue [WWW]AXIS2: performance improvements

Other requirements


OLD doc

if new one cover everything we can remove this

AXIOM Requirements

Open questions

wording

XML infoset interface (put a better name) - this is something like DOM, or JDOM that represent all the information in the XML file

Streaming Parsing - this is StAx+ - .. some pull parser interface, the "Typed pull parser interface" may do TypedXMLStream

Streaming Tree Walking - this is incremental XML Tree (like Python PullDom or XPP2 XmlPullNode) that has nodes is created on demand and deallocated when not needed

Things to decide

What OM Does?

What OM Does not do?

General requirements ("boil ocean" ...)

MTOM/Attachments requirements

XML-Java binding requirements

See also comments in described in Jira issue AXIS2: pluggable XML transformations (JavaBeans2XML, XSD with JaxMe/JAXB, Castor, XmlBeans, RelaxNG, ...)

Pluggability requirements

Performance requirements

See also Jira issue AXIS2: performance improvements

Other requirements