Transcript Document
INTRODUCTION
• A WEB SERVICE is an application that accepts requests from
other systems across the Internet or an Intranet, mediated by
lightweight, vendor-neutral communications technologies
• The XML standards which a web services system is built upon
allows for an implementation-neutral approach to performing
business collaborations.
• This talk is about Java and XML technology approach for
implementing a web services architecture
WEB SERVICES
OVERVIEW
•
There have been many barriers to two or more businesses
collaborating in electronic transactions
•
Major challenges in building a web service
1. Build client-tier connectivity
2. Implement the web service
3. Connect to back-end systems
•
Java 2 Platform, Enterprise Edition (J2EE) can be used to
achieve these goals
WEB SERVICES
WEB SERVICES DEVELOPMENT MODEL WITH J2EE
Relies on two technologies
• XML technologies
» XML is a data format that represents data in
a serialized form that can be transported over
the network from one endpoint to another
• Java technology
» Developers have the APIs necessary to build
a web service using J2EE
» Ex : the Java API for XML Parsing (JAXP)
WEB SERVICES
WEB SERVICES
CLIENT TIER CONNECTIVITY
Client Tier Connectivity refers to how consumers
of web services access your system.
WEB SERVICES
Types of clients
WEB SERVICES
Business Partner Connectivity
• Business partners could be using a variety of programming
languages, middleware, and hardware
• When a business partner calls your system, the web service
request arrives in the form of an XML document
• When a business partner issues a request to a web service,
the recipient of the XML document is a Java servlet
WEB SERVICES
Processing a business partner request
WEB SERVICES
• To Achieve this level of business partner connectivity,
there must be a way to
– Publish
– Describe
– Locate
– Call a web service
WEB SERVICES
Universal Description, Discovery, and Integration
(UDDI)
• Project aimed towards providers and seekers of web
services
• Members of the UDDI Project operate a web service called
the UDDI Business Registry (UBR), which is global,
public directory of businesses and services.
• Web service providers can register and describe their
services in the UBR. Users can query the UBR to discover
web services and to locate information needed to
interoperate with the services.
WEB SERVICES
How UDDI Works
1.
SW companies, standards
bodies, and programmers
populate the registry with
descriptions of different types
of services
4.
2.
UDDI Business Registry
Businesses
populate
the registry
with
descriptions of
the services
they support
Business
Registrations
Segrvice Type
Reistrations
3. UBR assigns a programmatically
unique identifier to each service
and business registration
WEB SERVICES
Marketplaces, search
engines, and business
apps query the registry to
discover services at other
companies
5.
Business uses this
data to facilitate
easier integration
with each other over
the Web
Registry Data
White
Pages
• Businesses register public
information
about themselves
Yellow
Pages
Green
Pages
• Standards bodies, Programmers,
Businesses register information
about their Service Types
WEB SERVICES
Service Type
Registrations
• White Pages
– Business Name, Text Description , Contact info-names, phone numbers,
fax numbers, web sites…
– Known Identifiers
• list of identifiers that a business may be known by - DUNS, Thomas,
other
• Yellow Pages
– Business categories
• 3 standard taxonomies
– Industry: NAICS (Industry codes - US Govt.)
– Product/Services: UN/SPSC (ECMA)
– Location: Geographical taxonomy
• Implemented as name-value pairs to allow any valid taxonomy
identifier to be attached to the business white page
• Green Pages
– New set of information businesses use to describe how to “do ecommerce” with them
WEB SERVICES
Service Type Registration
• Pointer to the namespace where service type is described
– What programmers read to understand how to use the service
• Identifier for who published the service
• Identifier for the service type registration
– called a tModelKey
– Used as a signature by web sites that implement those services
WEB SERVICES
Business Registration
• XML document
• Created by end-user company
(or on their behalf)
• Can have multiple service
listings
• Can have multiple taxonomy
listings
businessEntity
businessKey
name
URL
description
contacts
businessServices
identifierBag
categoryBag
keyedReference
keyedReference
tModelKey
tModelKey
keyName
keyName
keyValue
keyValue
WEB SERVICES
Contact
Contact
Phone
Phone
Address
Address
Email
Email
businessService
businessService
serviceKey
Key
tModelKey
Name
Name
Description
Description
BindingTemplates
BindingTemplates
keyedReference
keyedReference
tModelKey
tModelKey
keyName
keyName
keyValue
keyValue
Example of a Registration
Peter Smythe
872-6891
4281 King’s Blvd, Sydney, NSW
[email protected]
businessEntity
TB993…
Harbour Metals
www.harbourmetals.co.au
“Serving Inner Sydney Harbour for …
businessService
businessService
23T701e54683nf…
Key
Online catalog
Name
“Website where you can …
Description
BindingTemplates
BindingTemplates
contacts
businessServices
identifierBag
categoryBag
keyedReference
EE123…
NAICS
02417
keyedReference
DFE-2B…
DUNS
45231
BindingTemplate
5E2D412E5-44EE-…
http://www.sydneynet/harbour…
tModelInstanceDetails
tModelInstanceInfo
4453D6FC-223C-3ED0…
http://www.rosetta.net/catalogPIP
tModelKeys
WEB SERVICES
WEB SERVICES
UDDI at Work
1.
SydneyNet.com
UDDI Registry
Harbour Metals creates
online website with
local ASP
4.
Consumers and
businesses discover
Harbour Metals and do
business with it
2.
ASP registers
Harbour Metals with UBR
3.
Marketplaces and search engines
query UBR, cache Harbour Metals
data, and bind to its services
WEB SERVICES
JAXR
• Java APIs for XML Registries (JAXR)
• JAXR is a convenience API which provides a Java API to
perform the various publishing, querying, and editing tasks
these registries support.
WEB SERVICES
WSDL (Web Services Description Language)
• For a business to discover a service it wants to use, it needs
to understand the call syntax and semantics prior to
actually making a call.
• WSDL is an XML document which describes the
interface, semantics, and administrative info of a call to
the web service
• Java API for WSDL (JWSDL) will provide an API for
manipulating WSDL documents without interacting with
the XML documents directly.
WEB SERVICES
WEB SERVICES
WSDL 1.1
WSDL 1.1 Document Structure
• A WSDL document describes
– What the service can do
– Where it resides
– How to invoke it
• WSDL are like IDL but lot more
flexible and extensible
• Defines binding for SOAP1.1,
HTTP GET/POST and MIME
• WSDL descriptions can be made
available from an UDDI registry
WEB SERVICES
WSDL
Document
[Types]
{Messages}
{PortTypes}
{Bindings}
{Services}
WEB SERVICES
Simple Object Access Protocol (SOAP)
• After business partner looks up your WSDL description
using UDDI, it can call one or more operations on your
web service using the Simple Object Access Protocol
(SOAP)).
– specification for performing business method requests
as XML documents
– can support a variety of lower level protocols such as
HTTP(S) or SMTP
– lightweight and very easy-to-understand technology
– easy to implement
WEB SERVICES
• SOAP specifies
– how to represent various pieces of administrative info
– how to encode parameters.
• A SOAP envelope surrounds the optional header and the
body and is most commonly transported as an HTTP POST
action to an http server, although other forms of transport
(such as SMTP) are also possible.
• SOAP supports both message-passing and RPC call
semantics. This is a sample SOAP call as it appears on-thewire.
WEB SERVICES
SOAP 1.1
SOAP 1.1 Message Structure
•XML based protocol for exchange of
information
–Encoding rules for datatype
instances
SOAP
Envelope
Header
Entries
–Convention for representing RPC
invocations
•Designed for loosely-coupled
distributed computing
[Header
Element]
Body
Element
•Used with XML Schema
•Transport independent
•SOAP with Attachments allow
arbitrary data to be packaged.
WEB SERVICES
[Fault
Element]
JAX/RPC
• To aid developers in building XML-based requests such as SOAP
requests, the Java APIs for XML based RPC (JAX/RPC) is used.
• JAX/RPC is used for sending and receiving (including marshalling and
unmarshalling) method calls using XML-based protocols such as
SOAP, or others such as XMLP (XML Protocol).
• JAX/RPC isolates you from the specifics of these protocols, enabling
rapid application development. There is no longer any need for
developers to interact directly with XML
WEB SERVICES
JAXM (Java API for XML Messaging )
• Specification for interacting with XML messaging
standards ( eg SOAP messaging , ebXML messaging)
• This allows developers to focus on interacting with the
payload and not worry about the other message details.
• The difference between JAXM and JAX/RPC is
analogous to the difference between message-oriented
middleware (MOM) and remote procedure calls
(RPCs).
WEB SERVICES
WEB SERVICES
Implementing Web Services
• Before building web service , first challenge
– building an interface layer to
• translate the incoming XML data into a format suitable for
processing by our business service
• translating the results of the business service into an XML
format to return to the client.
• Java API for XML Processing (JAXP)can be used
• Business layer
– Once incoming XML data has been translated into Java objects, the
data is ready to be sent to an EJB business layer for processing.
– EJB technology is a standard for building business components in
Java.
– Using EJB components, you can gain high-end services from the
container, such as security, transactions, persistence, connection
pooling, load-balancing, and failure recovery services.
WEB SERVICES
An EJB business layer
WEB SERVICES
Performing Back-End Integration
• Last challenge
– connecting to back-end systems, such as databases, legacy
systems, and other business partners.
• Database Connectivity
The JDBC API
SQL/J
• Legacy system Connectivity
Connecting to existing systems has historically been one
of the most challenging and burdensome tasks of creating
any enterprise deployment.
Most enterprises comprise a mix of existing systems such
as SAP R/3, Siebel, i2, and custom systems. Integration
has been a manual task, because there are very few
adapters available for existing systems
WEB SERVICES
• Business Partner Connectivity
The final type of back-end system that we might connect to
is another business partner's web service.
This business partner system exposes itself using the same
universally agreed-upon XML standards that we would use
when publishing our own web service.
Namely, UDDI as a web service registry, WSDL for
describing the web service, and SOAP and ebXML for
performing business transactions.
WEB SERVICES
Using the JAX* APIs to invoke a business web service
WEB SERVICES
REFERENCES
• ServerSide.com Web Site – White paper
http://www.theserverside.com/resources/article.jsp?l=WebServicesDev-Guide
• UDDI.org
http://www.uddi.org/whitepapers.html
• Cocoon: A Framework for Web Services , Pankaj Kumar,Web Services
Architect,HP Middleware
WEB SERVICES