What are Web Services?
a piece of business logic, located somewhere on the Internet, that is accessible through standard-based Internet protocols such as HTTP or SMTP
Characteristics
XML based
Loosely Coupled
Coarse grained
Ability to be Synchronous or Asynchronous
Supports Remote Procedure Calls (RPCs)
Supports document exchange
Major Web Services Technologies
Simple Object Access Protocol (SOAP)
Web Service Description Language (WSDL)
Universal Description, Discovery, and Integration (UDDI)
Simple web service interaction
Why Java Web Services
Java ensures code portability
J2EE ensures scalability
APIs hide all the implementation details
Components are reusable
Development time is substantially reduced
Java Web Service Developer Pack
Free integrated toolkit that allows Java developers to build, test and deploy Web services
Web services standards WSDL, SOAP, UDDI
APIs provided
Java API for XML Messaging (JAXM)
Java API for XML Registries (JAXR) Java API for XML-based RPC (JAX-RPC)
Sample Scenario-Online Book store
JAX-RPC API for XML based RPC
RPC-based Web service is a collection of procedures that can be called by a remote client
Ties, the low-level classes that the server needs to communicate with a remote client
WSDL document used for creating stubs, the low-level classes that are needed by a client to communicate with a remote service.
Stubs can be static or dynamic.
Tools wscompile and wsdeploy
simplify our job
Service consists of
Interface:
Declares the service's remote procedures
Implementation class:
Implements the remote procedures.
Configuration files jaxrpc-ri.xml and web.xml contain all the parameters needed to deploy the service.
Client is a Java program which uses the stubs created from the WSDL document of the service
Configuration file config.xml contains the location of the WSDL document.
Service Interface
public interface BookIF {
public Book getPriceList();
public String orderBook(String BookName, int quantity);
}
Implementation class
public class BookImpl implements BookIF {
public Book getPriceList() { . . . }
public String orderBook(String BookName, int quantity) { . . . }
}
Client code
public class BookClient {
public static void main(String[] args) {
BookIF BookOrder = new BookServiceImpl().getBookIF();
Book priceList = BookOrder.getPriceList():
for (int i = 0; i <>JAXM API for XML Messaging
Provides a standard way to send XML documents over the Internet
Based on SOAP and SOAP with Attachments specifications
Messaging provider service, which does the behind-the-scenes work required to transport and route messages
Standalone client also possible for request-response type of messaging
Very useful when Enterprise work on shared schemas.(e.g.. Schema for order form in Online Book Store)
Advantages over JAX-RPC
One-way (asynchronous) messaging
Routing of a message to more than one party
Reliable messaging with guaranteed delivery
Steps
1.Setting up Connection with the end-point.
2.Creating the SOAP message and populate it.
3.Sending the message.
JAXR API for XML Registries
Provides a convenient way to
access standard business registries
Supports two standards ebXML and UDDI
Standards groups have developed
schemas for particular kinds of XML documents, and two businesses might for example, agree to use the schema which is stored in the registry.
Querying a registry-Useful methods
1.findOrganizations
which returns a list of organizations that meet the specified criteria
2.findServices
which returns a set of services offered by a specified organization
3. findServiceBindings
which returns the service bindings (information about how to access the service) that are supported by a specified service
Similar methods exist for Managing Registry Data.