Introduction to Web Services, and Key Components
-Jatin Singhal
Outline
1)What are Web services?2)What are they Good for?3)What to look out for?4)Where are they being used?5)Key Components- XSD and WSDL
Web Services Evolution
Web Services are an Architectural Evolution.
What are Web Services
Main Frame
IBM
Main Frame
Data Base
2 Tier
Data Base
3 Tier
Web Server
Web
Internet
Web Server
N Tier
Internet
ApplicationServer Web Server
Internet
ApplicationServer
ApplicationServer
Web Server
Web EvolutionWhat are Web Services
XML
ProgrammabilityConnectivity
HTML
Presentation
TCP/IPTechnology
Innovation
FTP, E-mail, GopherWeb Pages
Browse the Web
Program the Web
Web Services
Web Evolution
Definition
Web service is a software system designed to support interoperable machine-to-machine interaction over a network- Standard W3C Definition.
A Web Service is a URL-addressable software resource that performs functions (or a function).
Web Services communicate using standard protocol known as SOAP (Simple Object Access Protocol).
A Web Service is located by its listing in a Universal Discovery, Description and Integration (UDDI) directory.
Web Service-Basic Architecture
Characteristics•A Web Service is accessible over the Web.
•Web Services communicate using platform-independent and language-neutral Web protocols.
•A Web Service provides an interface that can be called from another program.
•A Web Service is registered and can be located through a Web Service Registry.
•Web Services support loosely coupled connections between systems.
Web Service Environment
Development
Deployment
Directory
Infrastructure
Web Service Landscape
Development and Assembly Environment
Development and Assembly Environment
Service Infrastructure ServicesService Infrastructure Services
Provisioning
BillingAuthorizationIdentity Authentication
Discovery
Auditing
User Session Management
StateManagement
Transaction Management .NETJ2EE
Description
Web Services Deployment
Runtime
Component Deployment
SOAP Description
Security
Ap
pli
ca
tio
n S
erv
er
Ap
pli
ca
tio
n S
erv
er
Web Services Deployment
Runtime
Component Deployment
SOAP Description
Security
.NE
T
Se
rve
r
Directo
ry S
ervices Dir
ecto
ry
Ser
vice
s
UDDI Services
Development and Assembly Environment
Development and Assembly Environment
.NETJ2EE
Development Environment
•Design and Code Web Services
•Expose Existing Resources as Web Services
•Develop new applications from Web Services
•Create Web Services interfaces from existing applications.
Deployment Environment
Web Services Deployment
Runtime
Component Deployment
SOAP Description
Security
.NETJ2EE
Web Services Deployment
Runtime
SOAP Description
Security
Ap
plic
ati
on
Ser
ver
Ap
plic
ati
on
Ser
ver
Component Deployment .NE
T S
erve
r.N
ET
Ser
ver
•Runtime
•Security
•WSDL / XML Schema Support
•SOAP Support
•Component Deployment
•Management
Directory Environment
.NETJ2EE
Web Services Deployment
Runtime
Component Deployment
Security
Web Services Deployment
Runtime
Component Deployment
SOAP Description
Security
.NE
T S
erv
er
Direc
tory
Servic
es
Dir
ecto
ry
Ser
vic
es
UDDI Services
SOAP DescriptionAp
pli
ca
tio
n S
erv
er
• Locate Web Services
• Publish Web Services
• Understand the characteristics of Web Services (capability, security, cost, etc.)
Infrastructure Service
Web Services Deployment Web Services Deployment
Direc
tory
Servic
es
Dir
ecto
ry
Ser
vic
esUDDI Services
Service Infrastructure ServicesService Infrastructure Services
Provisioning
BillingAuthorizationIdentity Authentication
Discovery
Auditing
User Session Management
StateManagement
Transaction Management .NETJ2EE
Description
Component Deployment Component Deployment .NE
T S
erve
r.N
ET
Ser
ver
Ap
plic
ati
on
Ser
ver
Ap
plic
ati
on
Ser
ver
DescriptionSOAP
Runtime Security
DescriptionSOAP
SecurityRuntime
• Separate Business Logic from System Functions
• Bundle Common Functionality across Web Services
• Security (Authentication, Authorization)
• Provide consistency among services
What are they good for?In a lot of organizations, the data and logic of one application are basically useless to other applications. When an application and its data are isolated from other applications, we often say that they are in “silos.”
Web Services are better at sharing data and functions. The result is that the “silos” come down, and previously isolated systems can talk to each other.
Web Services are especially good at providing access through different interfaces.
A Web Service can have a dedicated client application, but it can also be readily accessed through browsers, wireless devices, voice-activated interfaces, and so on.
Adding new access methods is much simpler than with a traditional application.
What are they good for?One of the more important innovations in Web Services is “machine-to-machine communications.”
This means that a Web Service can ask another Web Service to do something, and that Web Service can ask another Web Service to do something, and so on.
In the future, many Web Services will really just be aggregations of other Web Services.
Future applications will be assembled from a diverse group of web services, aggregating functionality.
Reusability is extended to the execution level, versus reusability from just the design and construction level.
What to look out for?
Web services standards for features such transactions are currently nonexistent or still in their infancy compared to more mature distributed computing open standards such as CORBA.
Web services may suffer from poor performance compared to other distributed computing approaches such as RMI, CORBA, or DCOM.
This is a common trade-off when choosing text-based formats. XML explicitly does not count among its design goals either conciseness of encoding or efficiency of parsing.By utilizing HTTP, web services can evade existing firewall security measures whose rules are intended to block or audit communication between programs on either side of the firewall.
WSDL (Web Services Description Language)
As communications protocols and message formats are standardized in the web community, it becomes increasingly possible and important to be able to describe the communications in some structured way. WSDL addresses this need by defining an XML grammar for describing network services as collections of communication endpoints capable of exchanging messages. WSDL service definitions provide documentation for distributed systems and serve as a recipe for automating the details involved in applications communication.
Elements in a WSDL Document
Types– a container for data type definitions using some type system (such as XSD).Message– an abstract, typed definition of the data being communicated.Operation– an abstract description of an action supported by the service.Port Type–an abstract set of operations supported by one or more endpoints.Binding– a concrete protocol and data format specification for a particular port type.Port– a single endpoint defined as a combination of a binding and a network address.Service– a collection of related endpoints.
That seems enough for today!!!