During my undergraduate thesis I study one issue that is highly appraised nowadays, the web services and the java APIS that can implement them. The web services, are, like their name implies, services implemented using web technologies .Web services are for example simple currency transformation, weather forecast,retrieving a stock quote, finding the best price for a particular product on the net, saving a new meeting to a calendar, translating a passage of text to another language, or validating a credit card number.
The main purpose of this document is not only to serve as an introduction to web services by itself, but to also share information and sources of information with all netgeeners participants, in order to build a comprehensive and well-digested introductory documentation concerning Web Services. Towards this goal, I would appreciate any remarks, comments, fixes and additions from the netgeners community, in order to improve and give others the opportunity to both learn and teach on principles, concepts, methods, usage and implementation of Web Services.
So let me first begin by pointing out some basic things about web services..
What Web service is?
A Web service is simply an application that exposes a function that is accessible using standard Web technology and that adheres to Web services standards, methods and protocols. There is nothing really revolutionary or exceptional about Web Services, other than the stunningly simple and concise realization of data interchange through Web standards and technologies. We will develop the issue of these standards and technologies in the next chapters.
The principles behind web services are stunningly simple, and are nothing new in the world of distributed computing and the Internet:
- the web service provider defines a format for requests for its service and the response the service will generate
- a computer makes a request for the web services across the network
- the web service performs some action, and sends the response back
- The reason an application architect, designer and developer should be interested in the web services model is the incorporation of standard, open protocols both to the invocation of remote service methods as well to the transmission of application data.
What about the technologies?
The fundamental technologies that comprise the foundation of Web services platforms are SOAP, WSDL and UDDI.
Let us first begin with SOAP, the Simple Object Access Protocol.
Like every other distributed computing platform, the web services platform has settled on a standard, well-known protocol for communication between distributed components of a system. For example for CORBA, the protocol was IIOP for RMI, first JRMP and later IIOP; in Microsoft environments, DCOM. SOAP stands for Simple Object Access Protocol.
WSDL stands for Web Services Description Language and like the name implies it is used to facilitate the discovery of web services on a service provider, the declaration of the interface to these services, and the declarations of data types employed in the invocation of the service and the exchange of parameters and results. WSDL roughly answers these questions :
Once a service is discovered
· How does a service consumer know what the service offers?
· How does the service consumer know how to invoke the service?
· How can the service consumer differentiate between similar services offered by different service providers?
A UDDI registry contains information about businesses and the services they offer. UDDI also contains references to industry-specific specifications a service may support, such as taxonomies and identification systems. Consumers of services can search a registry for businesses, services, or service types, either programmatically or using a Web-based interface. A UDDI business registry uses standard industry taxonomies or classification schemes, such as D-U-N-S, SIC codes, and others, to categorize businesses and the services they offer. All APIs within the UDDI specification use XML, are wrapped in a SOAP envelope, and use HTTP as the transport.
What About the java APIS?
In this paragraph I only make a very short introduction of the JAVA APIS that are the foundation of web services within Java. These are the following
As the name implies, the Java API for XML Processing (JAXP) is an API provided by Sun designed to help you write programs for processing XML documents.
JAX-RPC is aimed at making it easier for applications or Web services to call other applications or Web services.
The Java API for XML Messaging enables applications to send and receive document-oriented XML messages
The Java API for XML Registries provides a uniform and standard Java API for accessing XML-based registries and repositories. An XML registry is an enabling infrastructure for building, deploying, and discovering Web services.
The Java Architecture for XML Binding provides an API and tools that automate the mapping between XML documents and Java objects.
These were some elementary aspects of the basics of web services
In the next chapter we will add extra information concerning the Java APIS, description of the technologies that web service use, the service orientated architecture so If you have any additional ideas any suggestions are welcoming. I am looking forward to your remarks!
Morgan Kaufmann - Java Web Services Architecture