Service Oriented Architecture and Web...
Transcript of Service Oriented Architecture and Web...
![Page 1: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/1.jpg)
All Contents © 2004 Burton Group. All rights reserved.
Service Oriented Architecture and Web Services
Chris HaddadSenior Consultant
February 17, 2004
![Page 2: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/2.jpg)
2Introduction
Burton Group’s Mission Burton Group is an enterprise IT research and advisory service company specializing in the in-depth analysis of emerging infrastructure technologies.
Our mission is to provide vendor-neutral strategic planning and technology evaluation services that empower IT professionals, enabling them to make strategic decisions regarding network technology in support of business objectives.
![Page 3: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/3.jpg)
3SOA and Web Services
Thesis• Web services generate measurable ROI
• Simpler, cheaper integration
• Web services can deliver even more valuable benefits• Requires adoption of service oriented architecture (SOA)
• SOA is a mind-set• A design philosophy, principles, and best practices
• Companies that adopt Web services and SOA early will gain a strategic advantage
• IT systems that support adaptable, flexible business models
![Page 4: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/4.jpg)
4SOA and Web Services
Agenda• Strategic context• Defining Service Oriented Architecture (SOA)• Introduce the Network Application Platform• Detail Web Services infrastructure and framework• Demonstrate Web Services clients and services
• Apache Axis and Ant• .IIS/WSE and VS.NET
![Page 5: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/5.jpg)
5Strategic Context: Goal
Business Goals• Reduce costs and complexity• Increase efficiency and consistency of business process
execution• Improve manageability• Gain regulatory compliance• Increase revenue• Open new markets
![Page 6: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/6.jpg)
6Strategic Context: Goal
Technology Goals• Increase sharing, reuse, composition, orchestration,
and interoperability of services and resources• Create the potential for composition, re-composition in
the face of dynamic business conditions • Reduce work duplication among distributed
development teams• Streamline deployment and maintenance of service
code• Lessen platform and tool vendor lock-in• Allow seamless evolution of applications
![Page 7: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/7.jpg)
7Strategic Context: Goal
Enabling business processes to span boundaries
Goals:• Enable ad hoc integration of
processes• Support all constituencies
• Employees, partners, suppliers, and customers
• Maintain quality of service• Security, reliability, availability,
scalability, performance, etc.
![Page 8: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/8.jpg)
8Strategic Context: Challenges
Physical and logical boundaries• Stovepipe application systems
• Systems weren’t designed for integration
• Vendor, language, and OS lock-in strategies• Platforms don’t support federation of services• Security, transactions, reliability, data management, etc.
• We need a “platform-independent” application platform• A set of infrastructure services available to all applications regardless
of vendor, language, or OS
![Page 9: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/9.jpg)
9Strategic Context: Challenges
What is an application platform?• Used to build and deploy applications• Defined by its APIs and protocols• Examples:
• .NET, COM• Java, J2EE, LAMP• CICS/COBOL
• Frameworks supply access to OS and infrastructure services
• Each platform supplies a unique set of infrastructure services
• Tightly integrated inside; but hard to integrate with other platforms
Applications
Proc
essin
g
Netw
orkin
g
Stor
age
Secu
rity
Frameworks
Application Platform
APIs & Protocols
OS & Infrastructure
![Page 10: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/10.jpg)
10Strategic Context: Challenges
Proliferation created an integration nightmare
Proc
ess
Netw
ork
Stor
age
Secu
rity
OS & InfrastructureFrameworks
APIs & Protocols
Java/J2EE
Applications
Proc
ess
Netw
ork
Stor
age
Secu
rity
OS & InfrastructureFrameworks
APIs & Protocols
Linux/Perl
Applications
Proc
ess
Netw
ork
Stor
age
Secu
rity
OS & InfrastructureFrameworks
APIs & Protocols
CICS/COBOL
ApplicationsPr
oces
s
Netw
ork
Stor
age
Secu
rityOS & Infrastructure
FrameworksAPIs & Protocols
Windows/.NET
Applications
![Page 11: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/11.jpg)
11Strategic Context: Challenges
How do you turn this physically disjointed thing...
© Copyright 2004 Burton Group
![Page 12: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/12.jpg)
12Strategic Context: Challenges
ORACLEDBMS
VB ADO ODBCOracleODBCDriver
Java JDO JDBCOracleJDBCDriver
LAMP SQLExec
OracleDatabase
Driver
AnyApp SOAP
... and platform specific access methods...
![Page 13: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/13.jpg)
13Strategic Context: Challenges
… in the face of complexity• Mix ‘n match integration makes QoS more difficult• One service may be used in multiple applications• Operational semantics (security, reliability, transactions,
synchronicity, etc.) may be different in each app
![Page 14: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/14.jpg)
14Strategic Context: Solution
… into this logically holistic Network Application Platform?
![Page 15: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/15.jpg)
15Strategic Context: Solution
Solution Components• Service Oriented Architecture
• Service design practices
• Network Application Platform• Web Services Framework• Infrastructure Services Model• Web Services Infrastructure
• Application Services
![Page 16: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/16.jpg)
16Service Oriented ArchitectureWhat is SOA?
• SOA is a design style, depending on consistent, wide-ranging implementation of appropriate:
• Philosophy:• Maximize service reuse, sharing, and interoperability
• Principles:• Service based interactions• Standard service contract: WSDL• Standard service-brokering environment: UDDI• Standard service-binding environment: SOAP
• Best practices:• Loosely coupled services• Coarse-grained service interfaces• Standards-based service infrastructure
![Page 17: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/17.jpg)
17SOA Philosophy
What is a service?
• Reusable functionality exposed and invoked through published programmatic interface
• Programmatic interface is service-descriptive “contract”
![Page 18: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/18.jpg)
18SOA Philosophy
NAP Service Bus enables bindings between clientsand shared, reusable services
![Page 19: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/19.jpg)
19SOA Philosophy
Service-brokering environment enables registration,finding, and binding within NAP Service Bus and ISM
![Page 20: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/20.jpg)
20SOA Principles
What are SOA design principles?
• Design functionality as accessible and reusable services.• Expose service functionality through programmatic interfaces.• Maintain an abstraction layer between service interfaces and
implementations.• Describe service interfaces using metadata in standard service
contracts.• Register and find service contracts using standard service
registries.• Generate communication code automatically from service
contracts.• Bind services using standard protocols.
![Page 21: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/21.jpg)
21SOA Best PracticesBest practice: Loosely coupled services
• Create new functionality with service sharing, reuse, and standards-based interoperability in mind.
• Abstract service external interface from internal implementation.
• Define service interfaces through standard service description languages, especially WSDL.
• Expose service functionality through standard document-oriented approaches, especially SOAP Document/Literal style interfaces.
• Wrap or encapsulate existing services, applications, operating platforms, and other resources with service-oriented interfaces.
• Use standard, agreed-upon data/document schemas.• Create self-describing XML-based messages/documents.
![Page 22: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/22.jpg)
22SOA Best Practices
Best practice: Coarse-grained service interfaces
• Define service contracts that abstract the native object model and interfaces from a broad swath of functionality.
• Define “chunky” interactions that package several function callsand responses into fewer, but larger, messages.
• Define service contracts that correspond to the granularity of activities and subprocesses within end-to-end business processes.
• Use model-driven development to decouple service specification from service contract definition
![Page 23: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/23.jpg)
23SOA Best Practices
Interactiveclient
Web servicesclient
Interactiveserver
Add ItemAdd ItemAdd Item
Submit Order
Create Order
Interactiveserver
BusinessInterface
Submit Order
Interface Granularity
![Page 24: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/24.jpg)
24SOA Best PracticesBest practice: Standards-based service infrastructures
• Register and categorize service contracts in UDDI registries.• Enable endpoints to use late-binding approaches to service-
contract retrieval and consumption.• Rely on stateless, asynchronous, messaging-based
interactions among service endpoints.• Implement a data mapping/transformation middleware layer• Implement Web services management (WSM) infrastructures
to ensure performance, reliability, availability, operational management, lifecycle management, and security.
• Integrate WSM infrastructures with existing identity, access management, policy management, and security environments
![Page 25: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/25.jpg)
25Service Oriented ArchitectureHow does SOA relate to traditional middleware frameworks?
• SOA design principles may be used to either loosely or tightly couple services to each other
• …whereas traditional distributed object-computing environments—CORBA, DCOM, DCE, etc.—tightly couple services to various platforms and/or each other
• SOA best practice involves developing abstract service contracts:
• Abstract from service’s internal platform implementation• Expose selected metadata describing message/document
schemas and flow patterns that characterize external interface• Schemas and flows don’t correspond directly to service platform’s
internal configuration, logic, state, behavior, and interfaces• Abstract service contracts enable loose coupling and
coarse-grained service interfaces• …which are key to SOA value proposition.
![Page 26: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/26.jpg)
26Network Application Platform
Service Oriented Computing
![Page 27: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/27.jpg)
27Network Application Platform
NAP ISM exposes all infrastructure functionalitythrough standard service contracts
Infrastructure Services Model
![Page 28: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/28.jpg)
28Web Services
A Web Service:• An application that exposes its functionality through a
“Web API”• Built using the Web Services Framework
Web Services Framework:• A new type of middleware technology • For application-to-application communication• Based on XML, SOAP, WSDL, UDDI• Pervasive Web Infrastructure (TCP/IP, HTTP, DNS)
![Page 29: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/29.jpg)
29
Web Service Framework: Foundational Standards
Application Protocol
Data Definition (XML, XML Schema)
Transport Protocol (SMTP, HTTP, Other)
Messaging (SOAP)
Interface Discovery and Description (UDDI, WSDL)
Start out with SOA basics . . .
Web Services: WSF
![Page 30: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/30.jpg)
30Web Services: WSF
SOAP: XML messaging protocol• Standard message format
• SOAP envelope containing• Header (directives)• Body (payload)
• Message format defined by XML Schema• Independent of transport protocol
• HTTP, SMTP, FTP, Jabber, JMS, etc.
• Standard processing rules
• A standard way to exchange XML messages
![Page 31: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/31.jpg)
31Web Services: WSF
• Strip off transport• Process SOAP envelope• Process SOAP headers• Process SOAP body• Map XML to language
Invoke application
Transport Packet
SOAP Envelope
SOAP Headerdirectives
SOAP Body
payload
SOAP Message Processing
![Page 32: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/32.jpg)
32Web Services: WSF
WSDL: Describes a Web service• What it does• How to communicate with it• Where to find it
• Defines the Web service contract• Client uses WSDL to construct an interface to the SOAP service
![Page 33: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/33.jpg)
33Web Services: WSF
What:Operation: Submit Order
Input message: OrderOutput message: Confirmation
How:Binding: SOAP over HTTP
Use: Document/Literal
Where:Service: OrderService
Location: http://my.org/orders
WSDL Structures
![Page 34: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/34.jpg)
34Java API for WSDL
JWSDL • API to manipulate WSDL
• Used by SOAP runtime and tools • Used with DII
• Most SOAP tools provide WSDL compilers and generators
• wsdl2java• Java2wsdl
• Open source WSDL API• WSDL4J
![Page 35: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/35.jpg)
35Web Services: WSF
UDDI: A registry service for Web services• Categorized listing• Service types• Service implementations
• Helps you find a Web service and its description (WSDL)
![Page 36: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/36.jpg)
36Web Services: WSF
businessEntity
bindingTemplate
tModel
businessService
tModeltModelkeyed
Reference
tModeltModelkeyed
Reference
Service
WSDL
UDDI Data Model
tModeltModelkeyed
Reference
![Page 37: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/37.jpg)
37
Client and service interactions
Web Services: WSF
UDDIRegistry
WSDL
WebService
SOAPClient
Points to description
Points to serviceDescribesServiceFinds
Service
Communicates withXML Messages
![Page 38: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/38.jpg)
38
Web Service Specification Composition
Application Protocol
Web Services: WSF
Messaging (SOAP, WS-Addressing, WS-Reference, WS-Security)
Data Definition (XML, XML Schema)
Description (WSDL, WS-Policy, WS-PolicyAttachments)
Quality Of Service (WS-ReliableMessaging, WS-Transaction, WS-Authorization)
Service Composition(WSRP, WS-Notification, WS-Eventing)
Layer advanced semantics . . .
![Page 39: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/39.jpg)
39Web Services: WSF
Web Services Framework Operational Semantic Categories
By mapping business requirements
![Page 40: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/40.jpg)
40Java WSP support for JAX* and WS-*
NNNNNNH2NNNWS-Policy
NNNNYNQ1NYNWS-RP
NNNNH1Q2NNNNWS-CAF
NNNNNQ2H2NNNWS-Coord/Txn
NQ1NNH1NNNNNWS-Reliability
NQ1NNNQ2H2Q1NNWS-RM
NQ1NNNQ1H2NNNWS-Addressing
partialYNNNNNYNNWS-Routing/Referral
partialYNNQ1YYNYNWS-Security
YYNNQ1NNYNYWS-Attachments (DIME)
YYYYQ1YYYYYSwA (MIME)
NNYYQ1NYY‘04N ?WSEE 1.0
NYNNQ1NNNNYJWSDL 1.0
NNYYQ1NH2NNNJAXR 1.0
partialYYNNNNYNNJAXM 1.1
partial1.01.11.11.01.01.01.01.01.0JAX-RPC
N1.11.21.21.11.11.11.11.11.1SAAJ
NQ204NNQ1NH2NNNUDDI 3.0
previewYNYQ1Q1H2NYYSOAP 1.2
WMSystinetSunNovellOracleIONAIBMCapeBEAAxis
![Page 41: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/41.jpg)
41SOA and Web ServicesHow does SOA relate to the Web services framework (WSF)?
• WSF defines standards for a NAP that is platform- and language-independent:
• XML: standard data and metadata syntax• SOAP: standard middleware protocol• WSDL: standard service-contract schema• UDDI: standard service registry
• WSF-based NAP supports ubiquitous, any-to-any interoperability among services, applications, and other distributed resources:
• Java, .NET, LAMP, etc.• WSF is preferred NAP environment, enabling (but not
guaranteeing) loosely coupled interoperability
![Page 42: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/42.jpg)
42SOA and Web ServicesWSF-based NAPs realize SOA promise, but not magic bullet
• WSF stack still immature, incomplete, evolving:• Lack universally implemented XML/SOAP-based standards for
identity, reliability, transactions, events, pub/sub, and other important services
• Legacy applications and platforms must be migrated or wrapped to support WSF
• Integration brokers and middleware platforms often necessary to mediate between WSF environments and legacy environments
• Tight coupling “worst practices” may inadvertently be used in WSF-based development:
• …such as generating WSDL service definitions automatically from platform-specific object models, thereby “burning” platform artifacts (e.g., methods and APIs) into WSDL portTypes
![Page 43: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/43.jpg)
43Web Services Infrastructure
Physical and logical components
![Page 44: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/44.jpg)
44Web Services Platform
Web services management extensions
Web services platform (tools)• Development• Deployment • Management
What is a Web Services Platform?• Tools
• Generate WSDL and proxies• Administer services• Monitor traffic
• Run-time• SOAP Message processing• Service agent invocation
• Management Extensions• Monitoring• Service Provisioning• Security
Web services platform (runtime)
![Page 45: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/45.jpg)
45Web Services Platform Tools
WSDL-based code generators
WSDL
Web ServiceClientService
TemplateSOAPProxy
WSDL generated from class or template generated
from WSDL
SOAP clientproxy generated
from WSDL
Java, C++,VB, C#, etc.
Java, C++,VB, C#, etc.
![Page 46: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/46.jpg)
46Web Services Platform: Runtime
Client
Corporate applicationDesktop application
Wireless deviceWeb portal
etc.
Java Application Server
WSDL
SOAPProxy
Web Services Runtime Server
Web services runtime server
Code generated by WS tools
SOAPMessageProcessor
WebService
The application that implements
the service
WS Container
SOAP and WSDL
processing
Application code
DB
Legacy
DeploymentDescriptor(WSDD)
![Page 47: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/47.jpg)
47Web Services Platform
Logical component view
![Page 48: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/48.jpg)
48Web Services Platform
Extension Points
![Page 49: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/49.jpg)
49Axis Architecture
Axis Components – Detail View
Administration
Service Dispatch
MSG
Message processing
Handlers
SecurityManagement
Transform
SerializationFramework
DeserializerSerializer
Java Object Configuration Repository
Type Mapping
Flows
FaultResponse
Request
ServiceConfiguration
Transport
HTTP
Web Service
SMTP
BEEP
JMS
ToolsAdminClient
Java2WSDL
WSDL2Java
SOAPMonitor
COMEJBRPC
Security
![Page 50: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/50.jpg)
50Axis Architecture
Transport Responsibilities• Interface to network protocol• Accept SOAP requests• Create Message Context• Send SOAP Response
SOAP Request
SOAP Response
MessageContext
TransportListener(http)
![Page 51: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/51.jpg)
51
Axis Engine
SOAP Request
SOAP Response
MessageContext
TransportListener(http)
Axis Architecture
Message Processing Responsibilities• Identification of SOAP node’s role and initialize blocks• Map SOAP message to Java objects • Invoke interceptors (chains and handlers)• Process SOAP header directives• Hand-off to service dispatcher
Chain (request)
Handler Handler
Chain (response)
Handler
![Page 52: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/52.jpg)
52Axis Architecture
SOAP Response
SOAP Request
Request flow
Response flow
Fault Flow
Pivot Handler(provider)
TransportListener(http)
Message Flows• Assignment of processing blocks for SOAP request
separated from SOAP response• Exception processing channel defined by Fault Flow
Axis Architecture
![Page 53: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/53.jpg)
53Axis Architecture
SOAP Request
SOAP Response
Request flow
Response flow
Fault Flow
Transport Chains
Global Configuration
Chains
LocalService Chains
TransportListener(http) Pivot Handler
(provider)
Processing Scope• Localize execution of handlers and chains• Header fault check (MU) Identification of SOAP node
Axis Architecture
![Page 54: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/54.jpg)
54
Axis Engine
Chain (request)
Handler Handler
Axis ArchitectureSerialization Framework Capabilities• Mapping Java types to/from XML determined by
• literal schema or section 5 encoding style. Document and rpc conventions.• JAX-RPC compliant
• Typical mappings• primitive data types (int, char, float, etc.) • Generic arrays and Java beans• custom serialization
Chain (response)
Handler
MessageContext
SOAP Request
SOAP Response
TransportListener(http)
SerializationFramework
Best Practice Tips:•Use doc/literal•Avoid collections•Use MSG-style to bypass body serialization
![Page 55: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/55.jpg)
55
Axis Engine
ServiceEndpoint
ServiceProvider
(rpc)
SerializationFramework
Axis Architecture
Service Dispatching Responsibilities• Load web service agent• Format endpoint call• Execute business logic• Serialize return value as SOAP message
MessageContext
SOAP Request
SOAP Response
TransportListener(http)
Chain (request)
Handler Handler
Chain (response)
Handler
![Page 56: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/56.jpg)
56Axis ArchitectureAxis Registry Deployment Descriptor (WSDD) Key Elements
• Service Descriptor• SOAP URI• Dispatcher type• Service Java class• WSDL File• Type mappings and handlers
• Handler Descriptor• Logical name• Handler Java class• Configuration parameters
• Type Mapping• XML QName• Java serialization class• Factories
<deployment><handler>
<parameters></handler><service>
<typemapping/></service>
</deployment>
![Page 57: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/57.jpg)
57Java Web Services Standards
Standard APIs and Component Model• Java APIs for SOAP• J2EE Container/Component Model• Java API for WSDL• Java API for UDDI• J2EE 1.4
![Page 58: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/58.jpg)
58
JAX-RPC: RMI-style API• Application interacts via native Java objects• Standard Java to/from XML mappings• Proxy automatically generates SOAP messages• WSDL-aware
SAAJ: Low-level API• Application works with SOAP envelope• Attachments
Java APIs for SOAP
![Page 59: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/59.jpg)
59Enterprise Web Services
WSEE• New container/component model for JAX-RPC in J2EE• Port component
• Can run in Web or EJB container• Implemented as a Java Class in Web container• Implemented as Stateless Session Bean in EJB container• Standard deployment descriptor
![Page 60: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/60.jpg)
60Java API for XML Registries
JAXR • Supports both ebXML reg/rep and UDDI• Uses ebXML data model• Higher-level business abstraction
![Page 61: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/61.jpg)
61J2EE 1.4
Integrated Web Services Support• J2EE 1.4 specification requires:
• JAX-RPC• SAAJ• WSEE• JAXR
![Page 62: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/62.jpg)
62Building a Web Service
Application Service Components
![Page 63: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/63.jpg)
63
• Build a new service • Start with code
• Follow procedure for an existing application• Start or follow-up with WSDL
• WSDL compiler generates application skeleton• Fill in appropriate application code
• Best Practices• How to encapsulate an application
• Expose it directly• Build a façade, adapter, or wrapper
• Decision criteria:• Does it have an existing API?• What’s the interface granularity?
• Methods• Data Objects
Interoperability Tips
Don’t expose Java-centric objects to SOAP clients
(i.e. turn maps into arrays)
Polymorphism and inheritance can be
dangerous
Building a Web Service
![Page 64: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/64.jpg)
64Building a Web Service
Design Checklist• Infrastructure Handlers
• Security• Session Management• Transformation• Reliability
• Mapping Types• XML QName to Java classes• Serializers
• Exceptions• Service Agent Code• WSDL Generation
![Page 65: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/65.jpg)
65Building a Web Service: Exceptions
Server exception maps to SOAP fault• faultcode = identifies cause of the fault• faultstring = exception message• faultactor = who generated the fault• detail = fully qualified exception name• Client runtime might be able to rethrow the exception
• if it can’t, it should throw a generic exception e.g., java.lang.RuntimeException
![Page 66: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/66.jpg)
66Building a Web Service: Type mapping
Mapping Java language types to/from XML• Determined by
• literal schema • encoding style
Typical mappings• primitive data types (int, char, float, etc.)• JavaBeans patterns mapping
• public fields or fields with getters/setters
• generic Java types (List, HashMap, etc.)• custom serialization
![Page 67: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/67.jpg)
67Building a Web Service: Collections
Often require custom serializers
Java Collection .NET CollectionXML Container
Serializer Deserializer
![Page 68: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/68.jpg)
68Building Web Service Clients
Practical design• Building a Client
• Proxy code generation from WSDL or DII• Supporting complex types
![Page 69: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/69.jpg)
69Building a Web Service Client
Development Checklist• Find WSDL file• Generate client interface• Write the client code
• Use the interface to invoke operations on the remote service
![Page 70: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/70.jpg)
70Building a Web Service Client
Client API Choices• Compiled Stub
• Compile time binding• Service interface and proxy specifics defined at compile time
• Dynamic Proxy• Runtime binding• Service interface and protocol specifics defined at compile time
• Dynamic Invocation Interface (DII)• Runtime discovery• Service interface and protocol specifics determined at runtime
![Page 71: Service Oriented Architecture and Web Servicespeople.apache.org/~haddadc/presentations/AJUG20040217.pdf · Service Oriented Architecture and Web Services ... • Requires adoption](https://reader038.fdocuments.in/reader038/viewer/2022102921/5b77dc777f8b9a4c438e0652/html5/thumbnails/71.jpg)
71
Compiling a Client Proxy
Building a Web Service Client
Order ServiceSubmit OrderGet Order StatusList BackordersGet Customer HistoryGet Order History
Operation: Submit OrderInput message: OrderOutput message: ConfirmationUse: SOAP over HTTPLocation: http://my.org/orders
WSDL
GenerateCode
GenerateWSDL
ClientSubmitOrder
SOAPClientProxy
SOAP message<Order>
SOAP message<Confirmation>