Web Service Handler Architecture


Published on

  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • Modular Message-based Handlers Leveraging Message Oriented Middleware
  • Introduce web service and handlers and talk briefly about what I am going to do ? A Web service supports direct interactions with other software agents using XML based messages exchanged via internet-based protocols.
  • SAO defines criteria to build distributed systems .SAO is an abstraction. Previously it was tried to be realized with other technologies such as Distributed Objects. SOA started to evolve almost 30 years ago Web service is very promising technology to realize soa
  • Reusable logic is divided into services Logic that potentially be reused is represented by separate services. There is no theoretical limit to scope of logic a service can represent. Services share a formal contract In order to services to interact, they need not share anything but a formal contract that defines the terms of information exchange and any supplemental service description information Services are loosely coupled This means that the server requester has no knowledge of the technical details of the providers implementation, such as programming language, deployment platform and so forth. Services abstract underlying logic The only part of the service that visible to the outside world is what is exposed via the service description. The nature and form of underlying logic is invisible and irrelevant to other services Services are composable Services may compose other services. This allows logic to be represented at different levels of granularity and promotes reusability and the creation of abstraction layers. Services are autonomous The logic governed by a service resides within an explicit boundary. The service has complete autonomy within this boundary and is not dependent on other services for it to execute this governance. Services are stateless Services should not be required manage state information, as that can impede their ability to remain loosely coupled. Services should be designed to maximize statelessness even if that means deferring state management elsewhere. Services are discoverable Services should allow their descriptions to be discovered by and understood by humans and service requestors that may be able to make use of their logic.
  • OASIS web service security Argonne : WS-Topic Publish Subscribe Notification, WS-Base Notification Combining these two technology will provide very good environment to integrate systems
  • It has different names in different environment. It is called as a “handler” in axis while the name of it is “filter” Web Service Enhancement. Incremental addition to functionalities. Handlers are incremental editions to the web services. They are very helpful because they add new functionalities to the web services without resulting in any modification in web services. For example, security, reliability, logging. Most of the web services specifications are a good candidate for being handler. Shared memory Current architecture either in axis or wse is a shared memory architecture. They communicate passing MessageContext object from one handler to another. The MessageContext consists of soap message and properties which is shared states between handlers. Invoked in sequence to process messages Handlers are invoked in sequence. The process of handler is in reverse order of client in service part. Static The handler sequence is predefined. It can not be changed on the fly. It is set by wsdd file during the deployment Request or response chain Several handlers can come together to build chains and it can be either request path or response path. A Chain also has similarities to the Chain of Responsibility design pattern in which a request flows along a sequence of Handlers until it is processed. Although an Axis Chain may process a request in stages over a succession of Handlers, it has the same advantages as Chain of Responsibility: flexibility and the ease with which new function can be added. Back to message processing -- a message is processed by passing through the appropriate Chains. A message context is used to pass the message and associated environment through the sequence of Handlers. The model is that Axis Chains are constructed offline by having Handlers added to them one at a time. Then they are turned online and message contexts start to flow through the Chains. Multiple message contexts may flow through a single Chain concurrently. Handlers are never added to a Chain once it goes online. If a Handler needs to be added or removed, the Chain must be 'cloned', the modifications made to the clone, and then the clone made online and the old Chain retired when it is no longer in use. Message contexts that were using the old Chain continue to use it until they are finished. This means that Chains do not need to cope with the addition and removal of Handlers while the Chains are processing message contexts -- an important simplification.
  • Mainly XSUL is build to solve performance and scalability problem caused by a bottleneck handler. Our approach is base on providing a flexible and simple handler framework which not only looks at performance and scalability. It provides architecture which takes handler from shared memory to distributed memory while shared memory approach is also utilized in some situations. Since we are going to use naradabrokering as a queuing mechanism, we do not have to have a contract. The handler can run as a intermediary which looks at the header does it jobs and returns the soap naradabrokering. Handlers can be updated without interrupting the other handlers and end point because they are decoupled by naradabrokering. In XSUL each handler has to have a contract with other handlers. I believe an itinerary routing need to be utilized for interaction among the handler. In dynamic handler invocation, the situation worsen. Lets say, we have H1,H2 and H3 distributed on the system. We will use H1 and H2 for one message and H1 and H3 for another message. H1 has to know both how to access H2 and H3. In our case, naradabrokering in the middle will cope with this problem either they deployed as a web service or an intermediary. Each handler does not need to know how to contact with the other handlers. Therefore, we can add or remove a handler on the fly and this provides dynamic handler invocation. In the middle naradabrokering provides a communication environment with its helpful fanctionalities. Since we distribute handlers, the interaction between them needs reliability in order to be sure that targeted handler get the message. Among distributed handlers, security may be needed and this can be provided by naradabrokering, MOM.
  • Messaging applications use a messaging client API to communicate with each other through a messaging system. When an application is communicating in this fashion, it is acting as either a producer or a consumer. Producers and consumers are loosely coupled in that they are not directly tied to each other; instead, they are abstractly connected to each other through virtual channels called publish and subscribe channels or point to point channels. Producer does not need to know which applications are receiving a message, or in some cases even how many are receiving it. Likewise the consumer does not need to know which applications are sending the data. It only knows that it receives a message and act upon it In the publish/subscriber model, multiple consumers may register an interest with, or subscribe to, a topic. A producer sends a message on that channel by publishing on that topic. Each subscriber receives a copy of that message. In the point-to-point model, only one consumer may receive a message that is sent to a queue. P2p may queue may have multiple consumers listening for the purpose of load balancing or “hot backup” however only one receiver may consume each individual message. Industry efforts are underway to standardize hierarchical topic trees using XML syntax in the WS-Notification family of specifications. Communication : communication is achieved by using network protocols, which are classified by ISO/OSI reference model. Coordination : The advantage of MOM supports asynchronous communication naturally. another strength is to support group communication by distributing same message to multiple receive. Reliability : implements message queues that stores messages on persistent storage. Scalability : Does not support access transparency very well, This disables migration and replication transparency. Thus, it complicates scalability Access transparency demands the way a component access the services of another component is independent of whether it is local or remote. Heterogeneity However, XML base messaging and SOAP are big improvements in the data heterogeneity. Does not support data heterogeneity very well, requires marshalling. Strongly coupled complexity is n^2
  • WSBPEL:Web Services Business Process Execution Language a composition is created by describing how to use the functionality provided by the collection of composed Web Services. Work Flow models these compositions as specifications of the execution sequence of the functionality provided by the composed Web Services. Execution orders are specified by defining the flow of control and data between In our code example, the activities cannot be performed in any order, but there is a sequencing constraint between them: the processing of the purchase order by the supplier must precede the acceptance of the shipping request by the shipper; the money can be received at any time. Parallel processing.Two or more tasks are performed concurrently Automatic matching is to manage whether work flow will wait suspended or delayed results. Work manager is a centralized task giver.
  • Handlers are very critical in a flexible web service architecture How to flexibly and simply implement handler. First leverage queuing system.
  • What is the scalability in distributed systems General concepts Simplicity: The reason of HTTP and email success. They are very simple and user friendly. Scalability: scalability is another important requirements of distributed systems. A simplistic view of distributed systems could identify two types of entities; clients and service. In this naïve universe, there is little need for distributed computing infrastructure. Alas, you can not use this model to build highly scalable distributed systems. Current handler architecture may not answer high load request. Performance always important issue in a computer program. It can be done either better hardware or improving architecture. Acceptable performance required. Need acceptable response time. Customer buy an item online. In order to pay, credit card approval required if this service can not be provided on time. Reusability : We would not want to create a new software for every simple task. Since handlers will be deployed as a web services. It will be easier to use them with many different services.
  • Client wants to use service readily.( Security, reliability) As I said earlier simplicity is the key requirement. We can not expect that every user knows how to implement specifications which is required to access web services. Such as; Reliability. The problem is getting worse if the client programming language is not supported one. Such as perl. Dynamic handler invocation. We may need dynamic handler invocation. A handler should be added or removed to the chain on the fly. For example, we may want to process a digitally signed message by selecting the handler from the handler pool. Scaling up to handle increased message volume. A service should answer a high message volume. Handlers should not be a bottleneck in the chain. Slowness of one handler can cause total system performance degradation. Necessity of More resources CPU and Memory. Some handler are very power hungry. Such as, XML Transformers. If you dealt with the XSLT transformation, you should realize that it requires very important CPU power and memory space. Reusability Handlers can and should be able to use several services and clients. In current architecture, this is not possible. Each service client pair has one handler which belongs to them. Client without implementing for example security or reliability handler. It can connect to the handler which is already deployed on the network Simpler Architecture : The system can work even multiple core systems which will be very popular. For being successful software architecture, it should have user friendly. If the architecture is made simpler, the deployment Dynamic handler invocation: Scale up More resources: XSLT transformation is very CPU and memory oriented process. By providing a separate CPU and memory to transformation process we can increase response time. Convoy effect: The delay may results from IO or CPU or some other resources. If the handlers are autonomous and do not effect each other, this delay can be solved by bypassing constraints.
  • Message base handler allows us to deploy a handler similar to intermediaries and web services. Handler can be deployed into different machine with a different container. A handler can be deployed within a same container either with another handler or service as it is seen in the figure. Handler can be either request path or response path Metadata needed. Mehmet research and mine.
  • Hybrid approach can be utilized in some specific situations. Hybrid approach is the approach of using old style handler structure with the message style handlers. The decision of whether a handler will be shared memory style or message style will be given according to the some criteria such as performance and nature of handler.
  • Are QoS requirements met for our system if we distribute handler? Is performance reasonable when we use messaging? Performance versus modularity and simplicity What happens if an error occurs during execution ? Should we start all over again ? Testing results fro performance, if message base performance is unacceptable we will use old style or within same machine of service Fault tolerance: Current handlers create a fault SOAP sends it all the way back to the client. Should we imitate this architecture ? Or can we continue processing from some handlers. If A handler fails in a process can we continue to the execution. In other words should we use mustunderstand tag for our handlers ? Distributing handlers needs authentication and other security related issues between handlers
  • Methods in MessageContext allow you to manage a set of message properties, which enable handlers in a handler chain to share processing-related state Both context objects extend MessageContext, which holds properties that the handlers can use to communicate with each other. A standard property MessageContext.MESSAGE_OUTBOUND_PROPERTY holds a Boolean that is used to determine the direction of a message. For example, during a request, the property would be Boolean.TRUE when seen by a client handler and Boolean.FALSE when seen by a server handler. Is the intermediaries able to process SOAP to route message from one handler to another. Does SOAP include this information ? Or is SOAP is just payload and. SOAP message trasported by another mechanism such as naradabrokering ? Naming is another issue in dynamic work flow mechanism.
  • Audit stores the messages. It may add extra information to the received xml document such as time stamp and contextual info. look at the list which I created
  • Web Service Handler Architecture

    1. 1. Web Service Handler Architecture Beytullah Yildiz [email_address]
    2. 2. Outline <ul><li>Introduction </li></ul><ul><li>Background </li></ul><ul><li>Research </li></ul><ul><ul><li>Statement </li></ul></ul><ul><ul><li>Motivation </li></ul></ul><ul><ul><li>Architecture </li></ul></ul><ul><ul><li>Issues </li></ul></ul><ul><li>Milestones </li></ul><ul><li>References </li></ul>
    3. 3. Introduction <ul><li>Web service is define by W3C as: “ A Web service is a software application identified by a URI, whose interfaces and bindings are capable of being defined, described, and discovered as XML artifacts.” </li></ul><ul><li>Handler is an incremental addition to Web Service functionalities </li></ul><ul><li>A new approach to Web Service Handler Architecture </li></ul>
    4. 4. Distributed Systems <ul><li>Creation of distributed systems has been studied for a long time </li></ul><ul><li>Derived from the need for integrating geographically distributed components </li></ul><ul><li>Service Oriented Architecture was proposed for seamless and loosely coupled interactions </li></ul><ul><li>Previous Distributed System Technologies </li></ul><ul><ul><li>CORBA, DCOM </li></ul></ul><ul><li>Web Services started after mid-2000 </li></ul><ul><ul><li>SOAP Version 1.1 Release </li></ul></ul>
    5. 5. Web Services <ul><li>Client-Server Architecture </li></ul><ul><li>SOAP Messaging </li></ul><ul><li>Transportation </li></ul><ul><ul><li>Mainly HTTP </li></ul></ul><ul><ul><li>Others such as SMTP and FTP </li></ul></ul><ul><li>Service Oriented Architecture </li></ul><ul><ul><li>Reusable </li></ul></ul><ul><ul><li>Services share a formal contract </li></ul></ul><ul><ul><li>Loosely coupled </li></ul></ul><ul><ul><li>Services abstract underlying capability </li></ul></ul><ul><ul><li>Composable </li></ul></ul><ul><ul><li>Autonomous </li></ul></ul><ul><ul><li>Discoverable </li></ul></ul>
    6. 6. Web Service Standardization <ul><li>Very important for integration </li></ul><ul><ul><li>China cart wheel distance and language standardization </li></ul></ul><ul><li>Around 60 specifications </li></ul><ul><ul><li>UDDI,SOAP,WSDL </li></ul></ul><ul><ul><li>WS-Addressing, WS-ReliableMessaging, WS-Reliability, WS-Security,WS-Eventing,WS-Notification,WS-Context, WS-Resource Framework </li></ul></ul><ul><li>Many groups are involved </li></ul><ul><ul><li>Commercial Companies; Microsoft, IBM, Sun, SAP, BAE, TIBCO, Systinet and etc </li></ul></ul><ul><ul><li>Organizations; OASIS, GGF </li></ul></ul><ul><li>Some specifications are competing </li></ul><ul><ul><li>WS-ReliableMessaging and WS-Reliability </li></ul></ul><ul><ul><li>WS-Notification and WS-Eventing </li></ul></ul>
    7. 7. Web Service Handler I <ul><li>Also known as “filter” </li></ul><ul><li>Incremental addition of capabilities </li></ul><ul><li>Request or response chain </li></ul><ul><li>Apache Axis, Web Service Enhancement </li></ul><ul><li>An example for current handler framework: Apache Axis </li></ul><ul><ul><li>Sequential invocation </li></ul></ul><ul><ul><li>Shared memory usage, not concurrent processing </li></ul></ul><ul><ul><li>Static deployment </li></ul></ul><ul><ul><li>Communication via MessageContext object </li></ul></ul><ul><ul><li>Weak asynchronous messaging support </li></ul></ul><ul><ul><li>Mainly synchronous request/response communication paradigm </li></ul></ul>
    8. 8. Web Service Handler II <ul><li>XSUL deploys a handler as a web service </li></ul><ul><ul><li>Distributed for getting better performance and scalability </li></ul></ul><ul><ul><li>Have a contract (WSDL) for each handler deployment </li></ul></ul><ul><ul><li>Need to address dynamic handler deployment </li></ul></ul><ul><ul><ul><li>addHandler(new handler()); </li></ul></ul></ul><ul><ul><li>May need to have a mechanism such as message queuing to cope with </li></ul></ul><ul><ul><ul><li>High volume input and output for each handler </li></ul></ul></ul><ul><ul><ul><li>Synchronization of concurrent processing ; automatic matching may be needed </li></ul></ul></ul><ul><ul><ul><li>Reliability and security for every interaction between handlers; may be very costly </li></ul></ul></ul>
    9. 9. Message Oriented Middleware <ul><li>Supports communication between distributed system components by facilitating message exchange. </li></ul><ul><li>Producer and consumer roles </li></ul><ul><li>Supports loosely coupled communication </li></ul><ul><li>Supports Publish/Subscribe and/or point to point communication </li></ul><ul><li>Supports asynchronous messaging </li></ul><ul><li>Supports reliable messaging </li></ul><ul><li>Glues together stand-alone applications and components </li></ul><ul><li>Each application may evolve independently from the others </li></ul>
    10. 10. Work flow <ul><li>Known as flow composition, orchestration and choreography </li></ul><ul><ul><li>Very simple configuration file </li></ul></ul><ul><ul><li>Several specification for Web Service work flow : WSFL, WSBPEL, WS-Choreography </li></ul></ul><ul><li>Provides execution sequence of the functionalities </li></ul><ul><li>Automates integration </li></ul><ul><li>Supports parallel processing </li></ul><ul><li>Supports optimization </li></ul><ul><li>Supports logging and tracking </li></ul><ul><li>Privacy and Security </li></ul>
    11. 11. Proposal Statement <ul><li>Handler is very critical in a flexible and simple Web Service architecture </li></ul><ul><li>A message-based handler approach significantly </li></ul><ul><ul><li>improves </li></ul></ul><ul><ul><ul><li>modularity </li></ul></ul></ul><ul><ul><ul><li>Simplicity </li></ul></ul></ul><ul><ul><ul><li>Quality of Services </li></ul></ul></ul><ul><ul><li>by leveraging </li></ul></ul><ul><ul><ul><li>A message Queuing mechanism </li></ul></ul></ul><ul><ul><ul><li>A Work-flow mechanism </li></ul></ul></ul>
    12. 12. Motivation I <ul><li>Simplicity </li></ul><ul><ul><li>Very important criteria in distributed systems </li></ul></ul><ul><ul><li>Having only one notion; messaging </li></ul></ul><ul><ul><li>Making life easier for clients </li></ul></ul><ul><li>Interoperability </li></ul><ul><ul><li>“ Integration has replaced security as the highest priority in IT planning for 2004” Integration Standard Trends (IDC) report </li></ul></ul><ul><ul><li>Improving interoperability by messaging </li></ul></ul><ul><li>Scalability </li></ul><ul><ul><li>Handling high volume of input and output messages </li></ul></ul><ul><ul><li>Coping with convoy effect of insufficient handler within the chain </li></ul></ul>
    13. 13. Motivation II <ul><li>Performance </li></ul><ul><ul><li>Reasonable response time </li></ul></ul><ul><li>Necessity of more resources </li></ul><ul><ul><li>CPU and Memory </li></ul></ul><ul><li>Availability </li></ul><ul><ul><li>Handlers are replicable </li></ul></ul><ul><li>Reusability </li></ul><ul><ul><li>Distributed handler can also be used </li></ul></ul><ul><ul><ul><li>By many services </li></ul></ul></ul><ul><ul><ul><li>By many clients </li></ul></ul></ul><ul><li>Dynamic handler invocation </li></ul>
    14. 14. Message-based Handler I <ul><li>More natural for Web Service Architecture </li></ul><ul><li>Modular </li></ul><ul><li>Can work as a local and distributed component </li></ul><ul><li>A handler can be deployable in both Request and Response path </li></ul><ul><li>Supports dynamic handler </li></ul><ul><li>Can deal with high volume input and output </li></ul>
    15. 15. Message-based Handler II <ul><li>Supports four deployment types </li></ul><ul><ul><li>One virtual machine (process) </li></ul></ul><ul><ul><li>Several virtual machines in one physical machine </li></ul></ul><ul><ul><li>Distributed over LAN </li></ul></ul><ul><ul><li>Distributed over WAN </li></ul></ul><ul><li>Hybrid approach may be utilized </li></ul><ul><li>Easy to use </li></ul><ul><li>Able to leverage proven systems </li></ul><ul><ul><li>Message Queue </li></ul></ul><ul><ul><li>Work flow mechanism </li></ul></ul>
    16. 16. Local Deployment <ul><li>Same CPU and Memory space </li></ul><ul><li>Supports synchronous Request/response paradigm </li></ul><ul><li>Communicate via messaging </li></ul><ul><li>Configuration file versus work-flow mechanism </li></ul>
    17. 17. Distribution of Handlers <ul><li>Either one or many physical machines </li></ul><ul><li>Utilize one-way asynchronous messaging </li></ul><ul><li>Utilizes different resources, CPU and Memory </li></ul><ul><li>Can be deployed either alone or together with other components </li></ul><ul><li>May result in additional cost because of </li></ul><ul><ul><li>Network latency </li></ul></ul><ul><ul><li>Flow Management </li></ul></ul><ul><li>The nature of the distributed deployment needs to be investigated: Standalone application, Intermediary </li></ul>
    18. 18. Hybrid Approach <ul><li>Leverages both </li></ul><ul><ul><li>Handlers staying in same memory space with services </li></ul></ul><ul><ul><li>Message-based Handlers </li></ul></ul><ul><li>Decision is required about handler deployment approach </li></ul><ul><ul><li>Performance versus modularity and simplicity </li></ul></ul>
    19. 19. Queue and Work Flow <ul><li>Message queue addition </li></ul><ul><ul><li>Supports high volume message and prevents message drops </li></ul></ul><ul><ul><li>Provides reliable communication between handlers </li></ul></ul><ul><ul><li>Supports asynchronous communication between handlers </li></ul></ul><ul><ul><li>Copes with memory utilization problems </li></ul></ul><ul><ul><li>Copes with synchronization related issues especially in case of voluminous inputs and outputs </li></ul></ul><ul><ul><li>Supports for different queuing type; priority, time and produce ordering </li></ul></ul><ul><ul><li>May support batching </li></ul></ul><ul><ul><li>May support flow control </li></ul></ul><ul><li>Work Flow </li></ul><ul><ul><li>Supports concurrent processing </li></ul></ul><ul><ul><li>Provides automatic integration </li></ul></ul><ul><ul><li>Optimizes overall deployment </li></ul></ul>
    20. 20. Overall Architecture
    21. 21. Research Issues I <ul><li>Quality of Services </li></ul><ul><ul><li>Performance </li></ul></ul><ul><ul><ul><li>Is performance reasonable when </li></ul></ul></ul><ul><ul><ul><ul><li>we use messaging? </li></ul></ul></ul></ul><ul><ul><ul><ul><li>we distribute the handler? </li></ul></ul></ul></ul><ul><ul><li>Fault Tolerance </li></ul></ul><ul><ul><ul><li>Can message-base deployment tolerate the faults? </li></ul></ul></ul><ul><ul><ul><li>Can mustUnderstand be utilized ? </li></ul></ul></ul><ul><ul><li>Security </li></ul></ul><ul><ul><ul><li>Is overall system secure if we distribute handlers over the network? </li></ul></ul></ul>
    22. 22. Research Issues II <ul><li>Nature of Message </li></ul><ul><ul><li>How can a state be passed between handlers? </li></ul></ul><ul><ul><li>Metadata may be needed, WS-Context </li></ul></ul><ul><ul><li>Is SOAP Data Model ? </li></ul></ul><ul><ul><li>Is SOAP explicit communication media ? </li></ul></ul><ul><li>Work Flow </li></ul><ul><ul><li>Naming for handlers </li></ul></ul><ul><ul><li>Privacy and security </li></ul></ul><ul><ul><li>Concurrent processing </li></ul></ul>
    23. 23. Research issues III <ul><li>Is handler appropriate for distribution? </li></ul><ul><ul><li>Nature of handler; Reliability, Security </li></ul></ul><ul><li>Decision about possible handlers </li></ul><ul><ul><li>Three type of specifications </li></ul></ul><ul><ul><ul><li>Affecting only header: WS-Context </li></ul></ul></ul><ul><ul><ul><li>Affecting only body: WS-Trust </li></ul></ul></ul><ul><ul><ul><li>Affecting both : WS-ReliableMessaging, WS-Reliability, WS-Eventing WS-Notification </li></ul></ul></ul><ul><ul><li>Transformers </li></ul></ul><ul><ul><ul><li>Federation, Mediation </li></ul></ul></ul><ul><ul><li>Audit , logging </li></ul></ul>
    24. 24. Milestones <ul><li>Selection of targeted handlers </li></ul><ul><li>Deployment for </li></ul><ul><ul><li>implemented </li></ul></ul><ul><ul><ul><li>WS-ReliableMesaging </li></ul></ul></ul><ul><ul><ul><li>WS-Reliability </li></ul></ul></ul><ul><ul><ul><li>WS-Eventing </li></ul></ul></ul><ul><ul><ul><li>WS-Notification </li></ul></ul></ul><ul><ul><ul><li>Loggers </li></ul></ul></ul><ul><ul><li>others </li></ul></ul><ul><li>Testing </li></ul><ul><ul><li>Getting local deployment results </li></ul></ul><ul><ul><li>Getting distributed results. </li></ul></ul><ul><ul><li>Measuring message queuing contribution </li></ul></ul>
    25. 25. References <ul><li>Service Oriented Architecture, Thomas Erl </li></ul><ul><li>Enterprise Service Bus, David A. Chappell </li></ul><ul><li>Developing Java Web Services, Ramesh Nagappan, Robert Skoczylas, Rima Patel Sriganesh </li></ul><ul><li>Java Web Service Architecture, James McGovern, Sameer Tyagi, Michael E. Stevens, Sunil Mathew </li></ul><ul><li>http://www.naradabrokering.org/ </li></ul><ul><li>http://www.informit.com </li></ul><ul><li>http:// ws.apache.org/axis/java/index.html </li></ul>