Sunday, June 19, 2011

Web Service Stack

Whenever we talking about Web Service, we heard "Web Service Stack". What does it mean. Its an internal architecture/implementation of Web Services. This implementation is Comprises of protocols.Those protocols are stack over each other. Yes, but maintain a sequence. This protocol stack is used to define, locate, implement, and make Web services interact with each other.
There are four Web Service protocols:


1. Transport Protocol/Transport Layer : The Transport layer is the first component in the stack and is responsible for moving XML messages between applications. The Transport protocol most commonly used is the standard HTTP protocol. Other commonly used Web protocols are SMTP and FTP.

2. Messaging Protocol/XML Messaging : The messaging layer in the protocol stack is based on an XML model. XML is widely used in Web Services applications and is the foundation for all web services. XML is just one of the standards enabling web services to map between technology domains. You will find many resources on the Web that describe XML messaging. For more information, refer to the World Wide Web Consortium (W3C) site on Messaging listed in the link list below.

The XML Messaging specification is a broadly-defined umbrella under which a number of more specific protocols are defined. SOAP is one of the more popular standards, and is one of the most significant standards in communicating web services over the network. XML provides a means for communicating over the Web using an XML document that both requests and responds to information between two disparate systems. SOAP allows the sender and the receiver of XML documents to support a common data transfer protocol for effective networked communication.

3. Description Protocol/WSDL Layer : This layer represents a way of specifying a public interface for a web service. It contains information on available functions, on data types for XML messaging, binding information about the transport protocol, and the location of the specific web service.

Any client application that wants to know about a service, what data it expects to receive, whether or not it delivers any results, and the supported transport, uses WSDL to find that information. When you create a Web Service, it must be described and advertised to its potential customers before it can be used. WSDL provides a common format for describing and publishing that web service information. Typically, WSDL is used with SOAP, and the WSDL specification includes a SOAP binding.

4. Discovery Protocol/UDDI Layer : This layer represents a way to publish and find web services over the Web. You can think of this layer as the White and Yellow Pages of your phonebook. The White pages of web services provides general information about a specific company, for instance, their business name, description, and address. The Yellow Pages includes the classification of data for the services offered, for instance, industry type and products.

The protocol you use to publish your web services is known as UDDI. The UDDI Business Registry allows anyone to search existing UDDI data and enables you to register your company and its services. With RAD Studio, your data automatically gets published to the registry, or a distributed directory for business and web services.

Sunday, June 12, 2011

SOA and Web Service

SOA and Web Service are two different things. SOA stands for "Service Oriented Architecture". SOA is an software architecture. SOA is used to create a distributed system. SOA can be used to enable Software as a Service(SAAS). SOA uses the find-bind-execute paradigm. In this paradigm, service providers register their service in a public registry. This registry is used by consumers to find services that match certain criteria. If the registry has such a service, it provides the consumer with a contract and an endpoint address for that service. One thing is that, Services are the building blocks of SOA.

Web Services are the preferred standard-based way to realize SOA architecture. Web services are software systems designed to support interoperable machine-to-machine interaction over a network. This interoperability is gained through a set of XML-based open standards, such as WSDL, SOAP, and UDDI. These standards provide a common approach for defining, publishing, and using web services.

Java API for XML(JAX):
1. Java API for XML Processing(JAXP) 1.2 - This API lets you process XML documents by invoking a SAX or DOM parser in your application. JAXP 1.2 supports W3C XML Schema.

2.Java API for XML-based RPC (JAX-RPC) 1.1 - This is an API for building and deploying SOAP+WSDL web services clients and endpoints.

3.Java APIs for XML Registries (JAXR) 1.0.4 - This is a Java API for accessing different kinds of XML registries. It provides you with a single set of APIs to access a variety of XML registries, including UDDI and the ebXML Registry. You don't need to worry about the nitty-gritty details of each registry's information model.

4.SOAP with Attachments API for Java (SAAJ) 1.2 - This API lets you produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note.

5.JSR 109: Web services for J2EE 1.0 - JSR 109 defines deployment requirements for web services clients and endpoints by leveraging the JAX-RPC programming model. In addition, it defines standard deployment descriptors using the XML Schema, thereby providing a uniform method of deploying web services onto application servers through a wide range of tools.

6.JAX-WS 2.0 (JSR 224) -

7.JAXB - the Java Architecture for XML Binding.

8.StAX - the Streaming API for XML.

Sun's new version of web service stack is JAX-WS.

The difference between JAX-RPC and JAX-WS web service stack.