Axis: further reading

#

# Recommended Reading

Here are things you can read to understand and use Axis better. Remember, you also have access to all the source if you really want to find out how things work (or why they don't).

## Axis installation, use and internals

1. Web Services with JAX-RPC and Apache Axis.
   by Pankaj Kumar. Starting with a 10000 ft. view of Web Services, prior technologies, current and emerging standards, it quickly gets into the nitty-gritties of using JAX-RPC and Apache Axis for writing and executing programs. Has a nice coverage of different invocation styles - generated stubs, dynamic proxy and dynamic invocation interface. A good place to start if you are new to Web Services and Axis.
   The author also maintains a Web Services Resource Page.
2. Apache Axis SOAP for Java
   Dennis Sosnoski covers Axis. This is another good introductory guide.
3. Enabling SOAPMonitor in Axis 1.0.
   Dennis Sosnoski on how to turn the SOAP monitor on and off, and use it to log your application.
4. Axis in JRrun
   Macromedia authored coverage of using Axis from inside JRun.
5. Ask the magic eight ball
   Example of using an Axis service with various caller platforms/languages.
6. Configure Axis Web Services
   Kevin Jones talks a bit about configuring axis, showing how to return handwritten WSDL from the ?wsdl query.
7. Different WSDL Styles in Axis
   Kevin Jones looks at the document and wrapped styles of WSDL2Java bindings.
8. Web Services Security with Axis
   This sample chapter from J2EE Security for Servlets, EJBs and Web Services book explains use of username/password based authentication, SSL and Servlet security mechanisms for securing the transport and WS-Security for securing the messages with Apache Axis. To illustrate use of handlers for enforcing security, it describes the implementation of a bare-bones WS-Security mechanism using VeriSign's TSIK and JAX-RPC handlers. You can also view or download the complete sources discussed in the chapter.

## Specifications

1. SOAP Version 1.1
   Remember that SOAP1.1 is not an official W3C standard.
2. SOAP Version 1.2 Part 0: Primer
   This and the follow-on sections cover what the W3C think SOAP is and how it should be used.
3. Web Services Description Language (WSDL) 1.1
4. RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1
   This is HTTP. You really do need to understand the basics of how this works, to work out why your web service doesn't :)
5. SOAP with Attachments API for Java (SAAJ)
   SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note.
6. Java API for XML-Based RPC (JAX-RPC)
   The public API for Web Services in Java. JAX-RPC enables Java technology developers to develop SOAP based interoperable and portable web services. JAX-RPC provides the core API for developing and deploying web services on the Java platform.
7. XML Schema Part 0: Primer
   The W3C XML Schema, (WXS) is one of the two sets of datatype SOAP supports, the other being the SOAP Section 5 datatypes that predate WXS. Complicated as it is, it is useful to have a vague understanding of this specification.
8. Java API for XML Messaging (JAXM)
   JAXM enables applications to send and receive document oriented XML messages using a pure Java API. JAXM implements Simple Object Access Protocol (SOAP) 1.1 with Attachments messaging so that developers can focus on building, sending, receiving, and decomposing messages for their applications instead of programming low level XML communications routines.

## Explanations, articles and presentations

1. A Gentle Introduction to SOAP
   Sam Ruby tries not to scare people.
2. A Busy Developer's Guide to WSDL 1.1
   Quick intro to WSDL by the eponymous Sam Ruby.
3. Axis - an open source web service toolkit for Java
   by Mark Volkmann, Partner, Object Computing, Inc. A very good introduction to SOAP and Axis. Highly Recommended.
4. When Web Services Go Bad
   Steve Loughran tries to scare people. A painful demonstration how deployment and system management are trouble spots in a production service, followed by an espousal of a deployment-centric development process. Remember, it doesn't have to be that bad.
5. JavaOne 2002, Web Services Today and Tomorrow
   (Java Developer connection login required)
6. The Java Web Services Tutorial: Java API for XML-based RPC
   This is part of Sun's guide to their Java Web Services Developer Pack. The examples are all based on their JWSDP, but as Axis also implements JAX-RPC, they may all port to Axis.
7. Using Web Services Effectively.
   Blissfully ignoring issues such as versioning, robustness and security and all the other details a production Web Service needs, instead pushing EJB as the only way to process requests, this is Sun's guide to using web services in Java. It also assumes Java is at both ends, so manages to skirt round the interop problem.
8. Making Web Services that Work
   A practical but suspiciously code free paper on how to get web services into production. As well as coverage of topics such as interop, versioning, security, this (57 page) paper looks at the deployment problem, advocating a fully automated deployment process in which configuration problems are treated as defects for which automated test cases and regresssion testing are appropriate. Happyaxis.jsp is the canonical example of this. The author, Steve Loughran also looks a bit at what the component model of a federated web service world would really be like.

## Interoperability

1. To infinity and beyond - the quest for SOAP interoperability
   Sam Ruby explains why Interop matters so much.
2. The Wondrous Curse of Interoperability
   Steve Loughran on interop challenges (especially between .NET and Axis), and how to test for them.

## Advanced topics

1. Requirements for and Evaluation of RMI Protocols for Scientific Computing
2. Architectural Styles and the Design of Network-based Software Architectures
   The theoretical basis of the REST architecture
3. Investigating the Limits of SOAP Performance for Scientific Computing
4. Architectural Principles of the World Wide Web
   The W3C architects say how things should be done.

## Books

1. Beginning Java Web Services
   Meeraj Kunnumpurath et al, Wrox Press, September 2002.
   An introductory book, with the early chapters focusing on Axis.
   The sample chapter shows how to install Axis with Tomcat 4.0: we do not believe that their approach is the best. It is easier to drop jaxrpc.jar and saaj.jar into the CATALINA_HOME/common/lib dir than it is to add all axis jars to the classpath by hand. The book is based on Axis Beta-3.
2. Java development with Ant
   by Erik Hatcher and Steve Loughran, Manning Press, July 2002.
   A book on Ant development which covers Web Service development with Axis, along with other topics relevant to Java developers using Ant. The Web Service chapter, chapter 15, is free to download, and was the birthplace of happyaxis.jar.
   The book is based on Axis Beta-2; the web site contains updated documentation where appropriate.
3. AXIS: Next Generation Java SOAP
   by Romin Irani and S Jeelani Bashna, Wrox Press, May 2002.
   The first nothing-but-Axis book.
   It is based on Beta-1. This is a reasonable book, despite is apparent thinness and relative age. If it has a major weakness it believes everything works as intended, which regular Axis users will know is not quite true yet. Maybe they didn't want to fault missing features and other gotchas, assuming they would be fixed by the time the product shipped, but the effective result is that you can get into minor trouble working from this book, trying to use bits that aren't there, or just don't work (yet).
4. Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI
   Steve Graham et al, December 2001.
   Covering very early versions of Axis along with other aspects of Web Service technologies. One of the authors, Glen Daniels, is an Axis committer and active contributor, so the quality of the Axis coverage is high. Good explanations of SOAP, UDDI, and the like.
5. J2EE Security for Servlets, EJBs and Web Services
   Pankaj Kumar, Prentice Hall, September 2003.
   A book on using Java security APIs, tools and mechanisms for building secure enterprise applications. The chapter on Web Services Security uses Axis-1.1RC1 for illustrations. Besides Web Services, it covers security aspects of Java RMI, Servlet and JSP based Web Applications and EJBs.

Authors, publishers: we welcome additions to this section of any books which have some explicit coverage of Axis. Free paper/pdf copies and other forms of bribery accepted.

## External Sites covering Web Services

1. IBM developerWorks Web Services corner
   There are lots of interesting articles on Web Services here, many of which are Axis related. There is also a listing of "all current open standards and specifications that define the Web services family of protocols", though Soap with Attachments is mysteriously absent.
2. MSDN Web Services
   These are the microsoft pages; little Axis coverage but plenty on Web Service specifications.
3. WebServices.xml.com The O'Reilly site is always up to date, interesting and useful. It doesn't advocate a single technology (REST, SOAP, RDF...), or a single product. As such, it retains its independence and value.