WEB SERVICE AND SERVICE ORIENTED ARCHITECTURE

                                                1.Web service

Web service is a method of communications between two electronic devices over a network. It is a software function provided at a network address over the web with the service always on as in the concept of utility computing.
The W3C defines a Web service as:
a software system designed to support interoperable machine-to-machine interaction over anetwork. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description usingSOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.[1]


Service-oriented architecture (SOA) is a software design and software architecture design pattern based on discrete pieces of software providing application functionality as services to other applications. This is known as service-orientation. It is independent of any vendor, product or technology.[1]
A service is a self-contained unit of functionality, such as retrieving an online bank statement.[2] Services can be combined by other software applications to provide the complete functionality of a large software application.[3]SOA makes it easy for computers connected over a network to cooperate. Every computer can run an arbitrary number of services, and each service is built in a way that ensures that the service can exchange information with any other service in the network without human interaction and without the need to make changes to the underlying program itself.


Web service


A Web service is a method of communications between two electronic devices over a network. It is a software function provided at a network address over the web with the service always on as in the concept of utility computing.
The W3C defines a Web service as:
a software system designed to support interoperable machine-to-machine interaction over anetwork. It has an interface described in a machine-processable format (specifically WSDL). Other systems interact with the Web service in a manner prescribed by its description usingSOAP messages, typically conveyed using HTTP with an XML serialization in conjunction with other Web-related standards.[1]




Automated design methods[edit]

Automated tools can aid in the creation of a web service. For services using WSDL, it is possible to either automatically generate WSDL for existing classes (a bottom-up model) or to generate a class skeleton given existing WSDL (a top-down model).
·         A developer using a bottom-up model writes implementing classes first (in some programming language), and then uses a WSDL generating tool to expose methods from these classes as a web service. This is simpler to develop but may be harder to maintain if the original classes are subject to frequent change.[4]
·         A developer using a top-down model writes the WSDL document first and then uses a code generating tool to produce the class skeleton, to be completed as necessary. This model is generally considered more difficult but can produce cleaner designs and is generally more resistant to change. As long as the message formats between sender and receiver do not change, changes in the sender and receiver themselves do not affect the web service. The technique is also referred to as contract first since the WSDL (or contract between sender and receiver) is the starting point.[5]

                                   http://upload.wikimedia.org/wikipedia/commons/thumb/8/84/SOA_Detailed_Diagram.png/325px-SOA_Detailed_Diagram.png




Service-oriented architecture

 


Service-oriented architecture (SOA) is a software design and software architecture design pattern based on discrete pieces of software providing application functionality as services to other applications. This is known as service-orientation. It is independent of any vendor, product or technology.[1]

Principles[edit]

There are no industry standards relating to the exact composition of a service-oriented architecture, although many industry sources have published their own principles. Some of the principles published[10][11][12] include the following:
·         Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
·         Service loose coupling: Services maintain a relationship that minimizes dependencies and only requires that they maintain an awareness of each other.
·         Service abstraction: Beyond descriptions in the service contract, services hide logic from the outside world.
·         Service reusability: Logic is divided into services with the intention of promoting reuse.
·         Service autonomy: Services have control over the logic they encapsulate, from a Design-time and a Run-time perspective.
·         Service statelessness: Services minimize resource consumption by deferring the management of state information when necessary
·         Service discoverability: Services are supplemented with communicative meta data by which they can be effectively discovered and interpreted.
·         Service composability: Services are effective composition participants, regardless of the size and complexity of the composition.

Other SOA concepts[edit]

Architectures can operate independently of specific technologies and can therefore be implemented using a wide range of technologies, including:
·         SOAP, RPC
·         REST
·         DCOM
·         CORBA

Web Services Description Language


The Web Services Description Language (WSDL) is anXML-based interface description language that is used for describing the functionality offered by a web service. The acronym is also used for any specific WSDL description of a web service (also referred to as a WSDL file), which provides a machine-readable description of how the service can be called, what parameters it expects, and what data structures it returns. It thus serves a purpose that corresponds roughly to that of a method signature in a programming language.


WSDL 1.1 Term
WSDL 2.0 Term
Description
Service
Service
Contains a set of system functions that have been exposed to the Web-based protocols.
Port
Endpoint
Defines the address or connection point to a Web service. It is typically represented by a simple HTTP URL string.
Binding
Binding
Specifies the interface and defines the SOAP binding style (RPC/Document) and transport (SOAP Protocol). The binding section also defines the operations.
PortType
Interface
Defines a Web service, the operations that can be performed, and the messages that are used to perform the operation.
Operation
Operation
Defines the SOAP actions and the way the message is encoded, for example, "literal." An operation is like a method or function call in a traditional programming language.
Message
n/a
Typically, a message corresponds to an operation. The message contains the information needed to perform the operation. Each message is made up of one or more logical parts. Each part is associated with a message-typing attribute. The message name attribute provides a unique name among all messages. The part name attribute provides a unique name among all the parts of the enclosing message. Parts are a description of the logical content of a message. In RPC binding, a binding may reference the name of a part in order to specify binding-specific information about the part. A part may represent a parameter in the message; the bindings define the actual meaning of the part. Messages were removed in WSDL 2.0, in which XML schema types for defining bodies of inputs, outputs and faults are referred to simply and directly.
Types
Types
Describes the data. The XML Schema language (also known as XSD) is used (inline or referenced) for this purpose.






XML-RPC


XML-RPC is a remote procedure call (RPC) protocol which uses XML to encode its calls and HTTP as a transport mechanism.[1] "XML-RPC" also refers generically to the use of XML for remote procedure call, independently of the specific protocol. This article is about the protocol named "XML-RPC".

Usage[edit]

XML-RPC works by sending a HTTP request to a server implementing the protocol. The client in that case is typically software wanting to call a single method of a remote system. Multiple input parameters can be passed to the remote method, one return value is returned. The parameter types allow nesting of parameters into maps and lists, thus larger structures can be transported. Therefore XML-RPC can be used to transport objects or structures both as input and as output parameters.
Identification of clients for authorization purposes can be achieved using popular HTTP security methods. Basic access authentication is used for identification, HTTPS is used when identification (via certificates) and encrypted messages are needed. Both methods can be combined.
In comparison to REST, where resource representations (documents) are transferred, XML-RPC is designed to call methods.



Data types[edit]

Common datatypes are converted into their XML equivalents with example values shown below:
Name
Tag Example
Description
array
<array>
  <data>
    <value><i4>1404</i4></value>
    <value><string>Something here</string></value>
    <value><i4>1</i4></value>
  </data>
</array>
Array of values, storing no keys
base64
<base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64>
Base64-encoded binary data
boolean
<boolean>1</boolean>
Booleanlogical value (0 or 1)
date/time
<dateTime.iso8601>19980717T14:08:55</dateTime.iso8601>
Date and time in ISO 8601 format
double
<double>-12.53</double>
Double precisionfloating point number
integer
<int>42</int>
Whole number,integer
string
<string>Hello world!</string>
or
Hello world!
String of characters. Must followXML encoding.
struct
<struct>
  <member>
    <name>foo</name>
    <value><i4>1</i4></value>
  </member>
  <member>
    <name>bar</name>
    <value><i4>2</i4></value>
  </member>
</struct>
nil
<nil/>

 







SOAP



SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks. It relies on XML Information Set for its message format, and usually relies on other Application Layer protocols, most notably Hypertext Transfer Protocol (HTTP) or Simple Mail Transfer Protocol (SMTP), for message negotiation and transmission.

Characteristics


SOAP can form the foundation layer of a web services protocol stack, providing a basic messaging framework upon which web services can be built. This XML-based protocol consists of three parts: an envelope, which defines what is in the message and how to process it, a set of encoding rules for expressing instances of application-defined datatypes, and a convention for representing procedure calls and responses. SOAP has three major characteristics: extensibility (security and WS-routing are among the extensions under development), neutrality (SOAP can be used over any transport protocol such asHTTP, SMTP, TCP, UDP, or JMS), and independence (SOAP allows for any programming model).


Example message[edit]

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: 299
SOAPAction: "http://www.w3.org/2003/05/soap-envelope"
<!- ->
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
  </soap:Header>
  <soap:Body>
    <m:GetStockPrice xmlns:m="http://www.example.org/stock">
      <m:StockName>IBM</m:StockName>
    </m:GetStockPrice>
  </soap:Body>
</soap:Envelope>


Web Services, Service-Oriented Architectures, and Cloud Computing

This site will help you get started with a service-oriented architecture SOA) using Web Services and Cloud Computing. It features free articles, services, and product listings that can be used to develop a service-oriented architecture using Web Services and Cloud Computing.

Example Enterprise Service-Oriented Architecture with Cloud Computing

The following diagram is an example of a service-oriented architecture using Web Services. Click on the yellow boxes below to obtain more information on a subject.
More on Web ServicesMore on XML vocabularies used in Web ServicesMore on application serversMore on using databases with application serversMore on middle-tier databasesMore on Web Services adaptersMore on Cloud ComputingMore on ESBsEnterprise service-oriented architecture with cloud computing

Getting Started

We help prepare organizations for moving to a service-oriented architecture:
  • Consulting and customized working sessions on software architecture. This helps you quickly make fully informed decisions concerning your enterprise architecture. More...
  • Mentoring on technical issues. These sessions make it easier for managers and project leads to get up-to-speed on architectural considerations. More...
  • Speaking on topics related to advanced software architectures and how such architectures can be used in organizations. This is a great way to communicate the value of using various types of software architectures to larger groups. More...

No comments: