introduction to webservices

24
Introduction to WebServices -Gagandeep Singh

Upload: gagandeep-singh

Post on 27-Jan-2017

298 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Introduction to webservices

Introduction to WebServices

-Gagandeep Singh

Page 2: Introduction to webservices

What are Web ServicesWeb services are client and server applications that communicate over the World Wide Web’s (WWW) Hypertext Transfer Protocol (HTTP).

As described by the World Wide Web Consortium (W3C), web services provide a standard means of interoperating between software applications running on a variety of platforms and frameworks. Web services are characterized by their great interoperability and extensibility, as well as their machine-processable descriptions, thanks to the use of XML.

Web services can be combined in a loosely coupled way to achieve complex operations. Programs providing simple services can interact with each other to deliver sophisticated added-value services.

Page 3: Introduction to webservices

Service Oriented Architecture (SOA)

A service-oriented architecture is essentially a collection of services. These services communicate with each other. The communication can involve either simple data passing or it could involve two or more services coordinating some activity.

Some means of connecting services to each other is needed.

Service-oriented architectures are not a new thing. The first service-oriented architecture for many people in the past was with the use DCOM or Object Request Brokers (ORBs) based on the CORBA specification.

Page 4: Introduction to webservices

ServiceIf a service-oriented architecture is to be effective, we need a clear understanding of the term service. A service is a function that is well-defined, self-contained, and does not depend on the context or state of other services

Services are what you connect together using Web Services. A service is the endpoint of a connection. Also, a service has some type of underlying computer system that supports the connection offered. This section provides information on the specification of services.

“a service is a type of API, usually over HTTP” You may have an API, but not expose it to anybody external.

“a service is a proxy of your internal logic, which is exposed to the outside world” Think of the analogy of “views” in database systems.

Page 5: Introduction to webservices

ConnectionsThe technology of Web Services is the most likely connection technology of service-oriented architectures. The following figure illustrates a basic service-oriented architecture. It shows a service consumer at the right sending a service request message to a service provider at the left. The service provider returns a response message to the service consumer. The request and subsequent response connections are defined in some way that is understandable to both the service consumer and service provider.

Page 6: Introduction to webservices

Introduction to Service Oriented Computing-Context of WebServices: Distributed Information Systems

Layers of an information system

Presentation layerCommunication interface to external entities Graphical user interface for human users or non graphical user interface for other programs

Application logic layerImplements operations requested by clientsthrough the presentation layer

Resource management layerDeals with different data sources of aninformation system

Distributed systems are split up into partsRun simultaneously on multiple computersCommunicate over a network

Client

Resource Management Layer

Application Logic Layer

Presentation layer

Page 7: Introduction to webservices

Machine to machine communication-Getting applications to talk to each other

Client

Resource Management Layer

Application Logic Layer

Presentation layer

Client

Resource Management Layer

Application Logic Layer

Presentation layer

Application Logic Layer

Page 8: Introduction to webservices

Example: Yield management in the airline industry requires close system interaction in order to retrieve the most current prices

Windows Server 2008 UNIX System

Travel Information and Booking Application

(programmed in Java)

Flight Information and Booking Application(programmed in C)

Seamless Interaction

Mismatch in operating system, language, platform, etc.Service-oriented computing is an emergent paradigm that helps to overcome these mismatches

Page 9: Introduction to webservices

Windows Server 2008 UNIX System

Travel Information and Booking Application

(programmed in Java)

Flight Information and Booking Application(programmed in C)

Request

Response

Page 10: Introduction to webservices

Service Vs WebServiceServices are business functions which an enterprise offers to its business Partners

A possible implementation of Services are Web Services

However, other concepts may also be used to implement a Service, e.g., ebXML, document-centric approaches using EDI messages, etc.

Page 11: Introduction to webservices

Important terms in SOA(Web) Services are self-contained modules that can be described, published, located, orchestrated, and programmed using XML-based technologies over a Network.

Service providers are organizations that provide the service implementations, supply their service descriptions, and provide related technical and business Support.

Service clients are end-users and organizations that use some service.

Service aggregators are organizations that consolidate multiple services into a new, single orchestrated service offering that is commonly known as business process.

A service-oriented architecture (SOA) is a logical way of designing a software system to provide services to either end-user applications or to other services distributed in a network, via published and discoverable interfaces.

Page 12: Introduction to webservices

Types of Web ServicesOn the conceptual level, a service is a software component provided through a network-accessible endpoint. The service consumer and provider use messages to exchange invocation request and response information in the form of self-containing documents that make very few assumptions about the technological capabilities of the receiver.

On a technical level, web services can be implemented in various ways. The two types of web services discussed in this section can be distinguished as “big” web services (SOAP) and “RESTful” web services.

Page 13: Introduction to webservices

SOAP provides the envelope for sending Web Services messages over the Internet/Internet. It is part of the set of standards specified by the W3C. SOAP is an alternative to Representational State Transfer (REST) and JavaScript Object Notation (JSON).

The SOAP envelope contains two parts:

An optional header providing information on authentication, encoding of data, or how a recipient of a SOAP message should process the message.The body that contains the message. These messages can be defined using the WSDL specification.

SOAP commonly uses HTTP, but other protocols such as Simple Mail Transfer Protocol (SMTP) may by used. SOAP can be used to exchange complete documents or to call a remote procedure.

NOTE: SOAP at one time stood for Simple Object Access Protocol. Starting with SOAP Version 1.2, the letters in the acronym have no particular meaning.

Simple Object Access Protocol(SOAP)

Page 14: Introduction to webservices

SOAPSOAP was originally part of the specification that included the Web Services Description Language (WSDL) and Universal Description, Discovery, and Integration (UDDI). It is used now without WSDL and UDDI. Instead of the discovery process, SOAP messages are hard-coded or generated without the use of a repository. The interaction is illustrated in the figure below.

Page 15: Introduction to webservices

“Big” Web Services(SOAP Based)Big web services use XML messages that follow the Simple Object Access Protocol (SOAP) standard, an XML language defining a message architecture and message formats. Such systems often contain a machine-readable description of the operations offered by the service, written in the Web Services Description Language (WSDL), an XML language for defining interfaces syntactically.

The SOAP message format and the WSDL interface definition language have gained widespread adoption. Many development tools, such as NetBeans IDE, can reduce the complexity of developing web service applications.

Page 16: Introduction to webservices

Representational State Transfer (REST)Representational State Transfer (REST) is a style of architecture based on a set of principles that describe how networked resources are defined and addressed. These principles were first described in 2000 by Roy Fielding as part of his doctoral dissertation. REST is an alternative to SOAP and JavaScript Object Notation (JSON).It is important to note that REST is a style of software architecture as opposed to a set of standards. As a result, such applications or architectures are sometimes referred to as RESTful or REST-style applications or architectures. REST has proved to be a popular choice for implementing Web Services. It is one of the options for Amazon Web ServicesAn application or architecture considered RESTful or REST-style is characterized by:State and functionality are divided into distributed resources.Every resource is uniquely addressable using a uniform and minimal set of commands (typically using HTTP commands of GET, POST, PUT, or DELETE over the Internet)The protocol is client/server, stateless, layered, and supports caching

This is essentially the architecture of the Internet and helps to explain the popularity and ease-of-use for REST

Page 17: Introduction to webservices

RESTRepresentation State Transfer (REST) appeals to developers because it has a simpler style that makes it easier to use than SOAP. It also less verbose so that less volume is sent when communicating.

Page 18: Introduction to webservices

RESTful Web ServicesIn Java EE 6, JAX-RS provides the functionality for Representational State Transfer (RESTful) web services. REST is well suited for basic, ad hoc integration scenarios. RESTful web services, often better integrated with HTTP than SOAP-based services are, do not require XML messages or WSDL service–API definitions.

Project Jersey is the production-ready reference implementation for the JAX-RS specification. Jersey implements support for the annotations defined in the JAX-RS specification, making it easy for developers to build RESTful web services with Java and the Java Virtual Machine (JVM).

Because RESTful web services use existing well-known W3C and Internet Engineering Task Force (IETF) standards (HTTP, XML, URI, MIME) and have a lightweight infrastructure that allows services to be built with minimal tooling, developing RESTful web services is inexpensive and thus has a very low barrier for adoption. You can use a development tool such as NetBeans IDE to further reduce the complexity of developing RESTful web services.

Page 19: Introduction to webservices

JavaScript Object Notation (JSON)JavaScript Object Notation (JSON) uses name/value pairs. This is similar to the tags used by XML. An example from the figure below shows, at the left, the XML tag of "<state>" with the value of "MN." The pairs for JSON are at the right. It similarly shows the name "state" is paired with the value "MN." The name/value pairs do not need to be in a specific order. Also, like XML, JSON provides resilience to changes and avoids the brittleness of fixed record formats.

Page 20: Introduction to webservices

While both SOAP and REST use XML for interchange, JavaScript Object Notation (JSON) uses a subset of JavaScript. This is illustrated in the figure below.

Page 21: Introduction to webservices

Characteristics of Web ServicesWS semantically encapsulate discrete functionalityA Web Service is a self contained software module that performs a single task (e.g. weather forecast by passing the zip-code as parameter)

WS share a contractIn order to allow interaction of services, a formal contract must be established, that defines the exact terms of an information exchange between a service client and a service provider

WS abstract underlying program logicA service exposes a certain functionality to a client. How that functionality is achieved (e.g., which program language is used, or which database is used) remains invisible to the caller)

WS are loosely coupled software modulesA service interface is defined in a neutral manner, independent of the underlying platform, operating system, or programming language Due to their neutral interfaces, services are not hard-wired. Thus, a service may be easily exchanged by another service, without much implementation effort

Page 22: Introduction to webservices

WS are reusableA service may be reused by multiple applications

WS can be dynamically found and included in applicationsA WS provides programmable access. Thus, a WS may be embedded in a remotely located application, i.e., a service may be composed.Unlike Web Sites, Web Services are not targeted at human users They are called by and exchange data with other software modules and applications.

WS are described in terms of a standard description languageWeb Service Description Language (WSDL) and Web Application Description Language (WADL) describe functional service characteristicsFunctional requirements: Requirements of the functionality which must be provided (Functions, Data, Behaviour, etc.) Non-functional requirements: Requirements of the circumstances under which the functionality must be provided (e.g., reliability, performance, etc.)

WS are distributed over the Internet WS make use of existing ubiquitous transport Internet protocols like HTTPBy relying on the same well-understood transport mechanism as Web Content, Web Services may leverage existing infrastructures and may cross corporate firewalls.

Page 23: Introduction to webservices

Operations in a Web Service Architecture

PublishA service description needs to be published such that

the service requestor can find it it is accessible

FindThe service requestor retrieves the service description

directly by querying a service registry

BindThe service requestor invokes or instantiates the interaction with the

service by using binding details in the service description to locate, contact,

and invoke the service.

Page 24: Introduction to webservices

Standards in use

Service

Service Provider

Service Requestor

WSDL WSDL

SOAP

UDDI

Find

Bind

Publish

Note, that finding and publishing a service is also realized using SOAP calls