A Web service represents a piece of business functionality that can be accessed using standard Internet protocols. Web services are defined using an XML document that describes the messages that the service accepts and generates. The XML for a Web service conforms to the WSDL standard. Because the interface of a Web service is separate from its implementation, users and providers of Web services can use any platform and programming language that is capable of producing and consuming the messages defined in the Web service interface.
Web services are important because they allow business applications to exchange information via ubiquitous Web protocols, including HTTP, SOAP, and MIME. Since almost any business supports one or more of these protocols for connecting to the Internet and other businesses, this in turn enables almost any business with an IT infrastructure to expose they systems as Web services - and use Web services of other businesses. Because the data format for exchanging messages is XML, true heterogeneous, Internet-wide business-to-business applications can be realized.
The Novell exteNd Web Services SDK is an environment for building and accessing Web services in Java. Novell exteNd WSSDK provides a SOAP 1.1 compliant runtime and has compilers to convert from Java to WSDL and vise versa. Novell exteNd WSSDK brings the ease of use of Java to Web Services development, and completely shields the programmer from the fact that XML messages are exchanged under the covers. However, Novell exteNd WSSDK also allow users to exchange "raw" XML documents if required by the application. Novell exteNd WSSDK has low footprint, high performance and is built using a very flexible architecture.
The Novell exteNd Web Services SDK philosophy is to bring the RMI programming model to Web services. This model is familiar to Java programmers, and a Web service is most appropriately accessed using a stub that hides the underlying transport and message protocols and simply exposes a typed interface that clients can invoke. In a similar manner, the server side implementation of a Web service should only require developers to implement the methods of a remote interface. In Novell exteNd WSSDK, the server is a J2EE servlet to support security and provide a proven deployment environment.
The picture below provides a technical overview of the Novell exteNd Web Services SDK architecture. For an exhaustive list of Novell exteNd Web Services SDK features, please consult the data sheet.
In the above picture, Web services are described using either WSDL or RMI, which serves as a contract between the server and its client applications. The WSDL document and other information about a service or business may alternatively be retrieved from an Internet registry such a UDDI or ebXML. Client programs that use Novell exteNd WSSDK can call the server using the RMI programming model - Novell exteNd Web Services SDK takes care of converting the SOAP requests and responses into Java parameters and return values. The SOAP messages are transmitted via HTTP(S).
Due to the heterogeneous aspects of WSDL and SOAP described above, the server could be implemented in some other programming language and using another SOAP implementation. Web services that are implemented using Novell exteNd WSSDK are servlets. The application programmer is only required to provide the business methods of the Java Remote Interface. Again, Novell exteNd WSSDK takes care of converting SOAP requests into a server side method invocation, and converting the return values into a SOAP response. The server can optionally delegate to a variety of backend systems.
For packaging and deployment, Novell exteNd WSSDK relies on standard J2EE WAR files, which means that Web services can be deployed into any J2EE compliant servlet container. This also allows Web services implemented using Novell exteNd WSSDK to take advantage of the security facilities of the servlet environment. Since a WAR file can contain multiple Web services on distrinct end-points (URL's), this approach is different from (and has significant advantages to) a router based approach, where a single system servlet on a designated end-point delegates to all Web services deployed in the system.
The Novell exteNd Web Services SDK has three main components:
The runtime is a SOAP 1.1 compliant engine that allows client and server applications to exchange SOAP messages using the HTTP protocol. The runtime supports basic types and certain built-in complex types such as arrays and collection classes. Furthermore, the runtime system supports an advanced type mapping functionality that allows users to add new mappings between XML types and Java types.
The Novell exteNd Web Services SDK has four compilers to support development of Web services:
wsdl2java - This compiler translates WSDL documents into RMI. The compiler fully supports the WSDL specification and passes SOAP binding information to the rmi2soap compiler.
xsd2java - This compiler translates XML Scheme into Java Beans. The compiler supports common XML Schema types, including the full UDDI schema.
rmi2soap - This compiler creates stubs and skeletons for an RMI interface. Client applications use the stubs to invoke (remote) Web services, while server applications use the skeletons to implement the server.
rmi2wsdl - This compiler translates RMI into a WSDL document. This compiler is typically used when a developer wishes to publish the WSDL for a certain Java implementation of a server.
The Novell exteNd Web Services SDK compilers are fully integrated with the type mapping functionality such that users can add complex data type mappings and ensure that the compilers generate the correct types for these.
The Novell exteNd Web Services SDK platform also supports a number of tools to help developing and debugging Web services, including:
A lightweight web server for testing Web services.
A TCP tunnel for visual analysis of SOAP messages.
The Java->RMI wizard, which is a graphical tool for converting a regular Java class or interface into RMI.
A send tool, which allows you to send arbitrary data to a URL and displays the response.
Copyright © 2003, 2004 Novell, Inc. All rights reserved. Copyright © 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.