Title: XML Working Group: Web Services Initiative
1XML Working GroupWeb Services Initiative
Madhu Siddalingaiah June 19, 2002
2Goal Understand Web Services Potential
- Proposal at March, 2002 AIC meeting to consider
new initiative on Web Services technology - Chairs wanted more information before making a
decision - AIC authorized preparation of demo and
educational presentation - Present at XML WG, AIC and then maybe CIO Council
- Todays agenda Implementer-level issues
- Architecture of Web Services
- USITC prototype HTS Web Service
- Development process
- Demo
3About the Presenter
- Java XML consultant
- Started with Java in 1995
- Clients include Fairchild Space Defense, Blue
Cross/Blue Shield, Sun Microsystems - Published author
- XML and Web Services Unleashed, 2002, Sams
Publishing - Numerous articles for JavaWorld, Internet.com,
Network World - Presented papers at conferences all over the
world - JavaOne, SIGs conferences in Munich, London, New
York, Evolve conference in Sydney
4What Are Web Services?
- A web service is a software component
- Exposes a business function/service/data
- Can be accessed by another application over
Internet - Messages are exchanged using a standard XML
format
Application Server (J2EE or .NET)
lthtmlgt
Business logic
Web Application
Business
ltxmlgt
Web Service
lthtmlgt
ltxmlgt
Agency
5Advantages of Web Services
- Cross-platform, cross-language support
- Java, .NET, PHP, Perl, Python
- Based on industry standards (W3C)
- Catches the XML wave
- XML, SOAP, WSDL
- Supported by many vendors
- Unlike CORBA
- Relatively easy to implement
- Simpler plumbing
- Service publication and lookup
- Conduct business without prior relationship
- Zero latency enterprise
- Loosely coupled
- Low demands on network quality
- Based on stateless request/response model
6Challenges to Web Services Implementation
- Complete set of tools and specifications not yet
available - Sun's web services recently released MS .NET not
fully delivered - Few established 3rd-party tools
- Security payment specs still being worked
- Lack of standardized schemas for vertical
industries - Efforts under way
- Education of business executives and IT staff
- Understand where W-S fits in to the big picture
- Identify good W-S opportunities
- Shortage of programmers knowledgeable in
distributed systems - The FUD of war Microsoft and Sun
- Constant threat of balkanization of standards
7Web Services Protocols
- XML http//www.w3.org
- Web services messages are formatted using XML
- SOAP http//www.w3.org/2000/xp/Group
- Simple Object Access Protocol
- Defines the standard format for XML messages
- Functionally similar to RPC, CORBA, RMI
- WSDL http//www.w3.org/2002/ws/desc
- Web Services Description Language
- Describes a web services as a collection of ports
and operations - XML interface document similar to CORBA IDL or
RMI/EJB remote interface - UDDI http//www.uddi.org
- Universal Description, Discovery and Integration
- Provides a searchable registry of web services
- Similar, but broader in scope compared with CORBA
or JNDI registry
8SOAP
- Standard packaging structure for transporting XML
documents - DOC style
- Send XML and receive XML documents
- RPC style
- Like a remote method call
- Defines encoding and binding standards
- Provides a simple structure for describing RPC
operations - Works well with HTTP, SMTP, etc.
request
SOAP CLIENT
SOAP SERVICE
response
9WSDL
- XML document for describing web services
- Input and output data structures
- Includes or refers to XML Schema type information
- Method signatures
- Protocol bindings (HTTP, SMTP etc.)
- Location of the service
- Document can be stored in UDDI registry
- Or served from same server
- Typically generated by a tool
- xrpcc in Java Web Services Developer Pack
10UDDI
- A registry of WSDL documents
- Like an electronic Yellow Pages
- Web Service developer publishes WSDL to UDDI
server - Web Service clients can query the UDDI server for
suitable service definitions - Accessible by humans and computers
- UDDI is not yet mature
- Standards and implementation is experimental
- How is trust established?
11Getting Started with Web Services
- Start out small with an internal project that
provides value - Web service for read-only access
- Find a partner that will use your service!
- Validate interoperability business value
- Provide XML and Web services training to
development team - Identify business functions available as existing
software components EJB or COM - Turn a Web application into a Web service
- Candidates for web services
- Free services
- Non-sensitive data
- Real time access to authoritative information
- Wherever machine to machine communication is
valuable
12Harmonized Tariff Schedule (HTSUS)
- Official lists of duty rates (tariffs)
- Applicable to goods imported into the United
States - Applies to 20,000 or so line items in HTSUS
classification - Okra, steel, transistors, etc.
- Information published in three ways by USITC
- Hardcopy
- PDF format (downloadable from USITC Website)
- Unofficial browser accessible Web form
- Application is a good candidate for Web service
- Data is free, authoritative, non-sensitive
- Builds on existing web/database app
- Data will be consumed by customs brokers business
apps
13Current vs. Web Service Workflow
Corporate importers
HTSUS hardcopy manually re-keyed
Data tape
Walmart
General Motors
Customs
USITC
Brokers
Customs
USITC
Corporate importers
ltxmlgt
Walmart
Web service
ltxmlgt
General Motors
ltxmlgt
Brokers
14Prototype Architecture
- J2EE server
- Java Web services developer pack (JWSDP)
- http//java.sun.com/webservices
- Includes Tomcat server
- Exposes two methods
- getProductList(String description)
- Generic query for products matching description
- getProductDetail(String productCode, String
beginDate) - Returns tariff data for specific product
JWSDP/Tomcat
JDBC
Web service
ltxmlgt
IIS/ASP
ODBC
Web form
lthtmlgt
15Development Process
Java Interface
Configuration File
xrpcc
Could start with WSDL
WSDL
Server Skeletons
Client Stubs
Deploy to J2EE Server
Service Implementation
SOAP Library
Can be used to build static client
16WSDL for HTS
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltdefinitions name"HTS_Service"
targetNamespace"http//usitc.gov/hts/wsdl" ... gt - ltmessage name"getProductDetail"gt
- ltpart nameproductCode" type"xsdstring"/gt
- ltpart namebeginDate" type"xsdstring"/gt
- lt/messagegt
- ltmessage name"getProductDetailResponse"gt
- ltpart name"result" type"xsdstring"/gt
- lt/messagegt
- ...
- ltportType name"HTSInterface"gt
- ltoperation name"getProductDetail"gt
- ltinput message"tnsgetProductDetail"/gt
- ltoutput message"tnsgetProductDetailResponse"/
gt - lt/operationgt
- lt/portTypegt
- ltbinding name"HTSInterfaceBinding"
type"tnsHTSInterface"gt - ltoperation name"getProductDetail"gt
- ltinputgtltsoapbody encodingStyle"..."
use"encoded" namespace"http//usitc.gov/hts/wsdl
"/gtlt/inputgt
Some details Left out!
URL of service
17XML Schema for HTS Detail Response
Some details Left out!
- lt?xml version"1.0" encoding"UTF-8"?gt
- ltxsschema xmlnsxs"http//www.w3.org/2001/XMLSch
ema" gt - ltxselement name"HTS_DETAIL"gt
- ltxscomplexTypegt
- ltxssequencegt
- ltxselement name"BRIEF_DESCRIPTION"/gt
- ltxselement name"QUANTITY_1_CODE"/gt
- ltxselement name"QUANTITY_2_CODE"/gt
- ltxselement name"MFN_RATE_TYPE_CODE"/gt
- ltxselement name"WTO_BINDING_CODE"/gt
- ltxselement name"MFN_AD_VAL_RATE"/gt
-
- ltxselement name"NAFTA_CANADA_IND"/gt
- ltxselement name"NAFTA_MEXICO_IND"/gt
- ltxselement name"MEXICO_AD_VAL_RATE"/gt
- ltxselement name"MEXICO_SPECIFIC_RATE"/gt
-
- ltxselement name"BEGIN_EFFECT_DATE"/gt
- ltxselement name"END_EFFECTIVE_DATE"/gt
18References
- World Wide Web Consortium
- Source of specifications
- http//www.w3.org
- Case studies
- http//www.microsoft.com/net/use/casestudies.asp
- http//www-3.ibm.com/software/solutions/webservice
s/casestudies - http//dcb.sun.com/practices/webservices
- Xmethods
- Great list of interesting Web services
- http//www.xmethods.com
- Soapclient.com
- Dynamic web client for Web services