Web Services Slides

advertisement
Web services
Implementing a service-oriented
architecture
Web services
1
SOA
Service-Oriented Architecture
• Nodes in a network make resources available to
other participants in the network as services
• Accessed in a standardized way
• Loosely coupled services
• Platform independent
• Programming language independent
• Web services makes SOA happen!
Web services
2
SOA terms
• Service
– Business function
– Accepts requests, produces responses
• Provider
– Function which performs a service in response to a request from
a consumer
• Consumer
– Function which consumes the result of a service supplied by a
provider
• Discovery
– Ability to identify services
– Using a repository / registry
• Binding
– Relationship between provider and consumer is dynamic
• Established at runtime
Web services
3
Web services
The idea
• Technology that
allows applications to
communicate
• Web services are
– Platform independent
– Programming
language independent
– Send XML messages
– Can use many
transport protocols
– Uses open standards
Web services
– Developed by
technical people
– Aggregated into
solving business
problems by business
people
4
Web services standards
Open standards defined by
– W3C http://www.w3.org
– OASIS http://www.oasis-open.org
• Supported by any major company
– Microsoft
– Sun Microsystems
– IBM
– Oracle
– and many others
Web services
5
Web services, technologies
• SOAP
– Simple Object Access Protocol
• WSDL
– Web Service Description Language
• UDDI
– Universal Description, Discovery, and Integration
• XML
– eXtensible Markup Language
– Used by all web service technologies
Web services
6
XML
•
Language to describe data to be
exchanged on the web
Example XML document
– And many other things
– Programs exchange XML
documents
– XML documents are processed by
programs
•
Mark up language
– XML tags structures information
•
Element
– <tag>…</tag>
– An element may have many subelements
<persons>
<person>
<name>Anders</name>
<city>Roskilde</city>
</person>
<person>
<name>Peter</name>
<city>Sorø</city>
</person>
</persons>
• Nested elements
– An element has exactly 1 superelement
• Except the root element, which
has 0 super-elements
Web services
7
Structure in XML documents
• Well-formed
• Valid
– All start-tags must have
a matching end-tag
• <person>…</persons>
– Tags must be properly
nested
• <persons>
• <person>…</person>
• </persons>
– Well-formed
– Conforms to an XML
schema
• A set of “grammar
rules”
• Specifies which tags
are allowed, etc.
– Only 1 outer tag
• Called the root element
Web services
8
SOAP
• XML is fine for data exchange, but it’s not enough
– We need distinction between the header and the body of the
message
• Like in HTTP
• A SOAP message in an XML document consisting of
–
–
–
–
Envelope (mandatory)
Headers (optional)
Body (mandatory)
Example
• http://java.sun.com/developer/technicalArticles/WebServices/soa2/
WSProtocols.html
– Attachments (images and other binary content)
Web services
9
SOAP
Simple Object Access Protocol
• SOAP messages can be transported using any
transport protocol
–
–
–
–
HTTP
SMTP
Others
SOAP messages are tunneled through firewalls
• SOAP messages can be produced and
consumed using any programming language
– Sender and receiver can be written in different
programming language
– Sender and receiver need not know what
programming language the other part was written in
Web services
10
WSDL
Web Services Description Language
• Clients use a WSDL file to learn how to call a
web service
• WSDL file is an XML document describing the
public interface to a web service
– Message formats
• Operations
– Methods which can be called on the web service
– Parameters and return types to the methods
– Protocol bindings
• Protocol used for transportation
– Examples
• http://java.sun.com/developer/technicalArticles/WebServices/
soa2/WSProtocols.html
Web services
11
UDDI
Universal Description, Discovery, and Integration
• An UDDI registry is like a phone book (yellow pages)
– Web service producers register
•
•
•
•
Details of the business providing the service
Informal description of the functionality of the service
Location of the WSDL file
Information allowing users to register for information about updates to
the service
– Web service consumers search the registry for useful services
• UDDI uses XML for registration
• Several organizations run public UDDI registries
– IBM
– Microsoft
– Others
• Private UDDI registries
– Most UDDI registries are found inside companies
Web services
12
Legacy system services
• Legacy / existing systems can be re-used
by wrapping them as web services.
• Existing system can be used inside and
outside the company.
Web services
13
Web service security
• Integrity
– SOAP messages are not tampered with
• Confidentiality
– SOAP message can only be seen by intended
recipients
• Authentication
– Web service can only be called by authenticated
clients
• Underlying technologies
– Secure Socket Layer (SSL)
– And many others
Web services
14
WS-BPEL
Web Services Business Process Execution Language
• Business processes means calling more
web services in a specific sequence.
• BPEL coordinates web services
– Web services are components
– BPEL defines a sequence (work flow) of calls
to web services
Web services
15
JAX-RPC / JAX-WS
Java API for XML-based RPC
•
RPC
– Remote Procedure Call
– Calling a method on a remote object
•
JAX-RPC
– Using web services to call remote methods from a Java
program
•
How it works
1. Java program invokes a method on a stub
2. Stub invokes routines in the JAX-RPC runtime system (RS)
3. RS converts the remote method invocation into a SOAP
message
4. RS transmits the message as an HTTP request
•
•
JAX-RPC is part of Java Enterprise Edition (J2EE)
JAX-WS is the new version of JAX-RPC
Web services
16
JAX-RPC data types
• Primitive types
– Works well
– As primitive types or wrapper classes
• Integer ~ int
• Collections
– Arrays [ ] work
– List, etc. work.
• Custom types (your own classes)
– Must be XML serializable
• No-arg constructor
• Get and set methods on all properties
• Exceptions
– Send as SOAP Faults (wrapped)
– Can be quite hard to understand on the client side
Web services
17
•
References
and further reading
Web services in general
Ed Ort Service-Oriented Architecture and Web
Services: Concepts, Technologies, and Tools,
Sun 2005
–
•
Misc. references
–
–
–
–
•
•
•
•
•
http://java.sun.com/developer/technicalArticles/W
ebServices/soa2/WSProtocols.html
http://en.wikipedia.org/wiki/SOAP_(protocol)
http://en.wikipedia.org/wiki/Webservices
http://www.w3.org/2002/ws/
http://www.w3schools.com/webservices/
(ASP.NET)
Martin Kalin Java Web Services, O’Reilly
2009
Bill Burke RESTful Java with JAX-RS, O’Reilly
2009
John Flanders RESTful .NET, O’Reilly 2008
Singh et al. Designing Web Services with the
J2EE 1.4 Platform, Addison Wesley 2004
Companies
–
–
–
http://www-01.ibm.com/software/solutions/soa/
http://www.oracle.com/technologies/soa/index.ht
ml
http://java.sun.com/webservices/
Web services
18
References, technologies
• XML
• UDDI
– http://en.wikipedia.org/wiki/XML
– http://www.w3schools.com/xml/
– http://www.w3.org/XML/
• SOAP
– http://en.wikipedia.org/wiki/UDDI
– http://www.uddi.org/
– http://uddi.microsoft.com/
• JAX-RPC / JAX-WS
– http://en.wikipedia.org/wiki/SOAP
_(protocol)
– http://www.w3.org/2000/xp/Group
/
– Englander Java and SOAP,
O’Reilly 2002
– http://en.wikipedia.org/wiki/JAXRPC
– http://en.wikipedia.org/wiki/JAXWS
• Web service catalogs
• WSDL
– http://www.remotemethods.com/
– http://www.webservicex.net/WS/
– http://en.wikipedia.org/wiki/Web_
Services_Description_Language
– http://www.w3.org/2002/ws/desc/
Web services
19
Download