Upload
theodore-fitzgerald
View
220
Download
0
Tags:
Embed Size (px)
Citation preview
Using Web Services toBuild Mission Critical Integration Solutions
2
AgendaEric NewcomerCTO, IONA Technologies
– Introduction– Requirements for mission critical application integration– Web services standards update– Gap analysis
Peter CousinsTechnical Director, IONA Technologies
– Introduction to Artix– Building secure, reliable, transactional, multi-transport Web services– Use cases
3
Worldwide presence
Global HQ in Dublin, Ireland
US HQ in Massachusetts
Worldwide presence
Global HQ in Dublin, Ireland
US HQ in Massachusetts
Our vision extends beyond integration We improve our customers’ return on current assets While driving an architecture for future change Making their infrastructure technology and
vendor independent
Our vision extends beyond integration We improve our customers’ return on current assets While driving an architecture for future change Making their infrastructure technology and
vendor independent
Customers include world’s largest firms
80% of Global Telecom
70% of Financial Services in Global 100
Blue Chip Partners
Customers include world’s largest firms
80% of Global Telecom
70% of Financial Services in Global 100
Blue Chip Partners
SystemCostand
Complexity
System Life
IONA Drives Down the Cost and Complexity of Enterprise IT
TheIONA
Benefit
4
About Myself … CTO of IONA since May 2002 - responsible for Web services strategy
25 years experience in the computer industry, including more than 15 years at Digital Equipment Corporation/Compaq Computer
Author of Understanding Web Servicesand co-author of Principles of TransactionProcessing
Co-author and editor of the Structured Transaction Definition Language specification published by X/Open
Original member of the XML Protocols Working Group at W3C and current editor of Web Services Architecture Specification
Co-Author of the Web Services Composite Application Framework (WS-CAF) submitted to OASIS
5
“To succeed where others failed, enterprises will need more-flexible architectures to deal with rapid economic, market and technological changes. Web services will play a key role in this transformation”
How Web Services Will Change Enterprise Architectures
July 24 2002
Web Services Offer Great Promise
Web services are highly suitedto integration
Technology-agnostic interfaces and protocols for interoperability
Easy to learn and use Backed by a broadly accepted set of industry
standards (SOAP, WSDL, UDDI) Support integration both inside and
outside the organization
Still, Web services are relatively immature
Standards haven't caught up to therequirements of users
Security, reliability and availability are still only partially addressed
Promise of multi-protocol mappings unfulfilled
6
Heterogeneous applications and middleware platforms
Enterprise Features:
Scalability
Reliability
Performance
Desire for Flexibility:
Architecture
Tools
Mission-CriticalIntegration Requirements
Web Services are still a relatively immature technology
The standards haven't caught up to the needs of the user
Concerns for security, reliability and availability are only partially addressed through standards
A great deal of standards activity is ongoing and leaderless
The “Web Services Gap”
7
WHAT IS NEEDED ?
Reliable, secure, transactional, stateful,
multi-transportWeb Services
Ideal formission-critical
application integration
Heterogeneous applications and middleware platforms
Enterprise Features:
Scalability
Reliability
Performance
Desire for Flexibility:
Architecture
Tools
Mission-CriticalIntegration Requirements
Web Services are still a relatively immature technology
The standards haven't caught up to the needs of the user
Concerns for security, reliability and availability are only partially addressed through standards
A great deal of standards activity is in balance and leaderless
The “Web Services Gap”
8
Standards “Alphabet Soup”
SOAPMessage Payload
UDDILook-Up & Discovery
WSDLService Contract
XML Encryption, XKMS,XRML, WS-Security, SAML Security
Transactions WS-CAF, WS-T & WS-C
Management Web ServicesDistributed Management (WSDM)
Orchestration BPEL4WS
Reliable Messaging WS-Reliability,WS-ReliableMessaging
Others ?? Too many to list all Lots of activity Not enough progress
– Competing standards– Vendor agendas– Competing bodies – Slow pace
Competing Standards Bodies
9
What IONA is Doing About It
Extending our enterprise heritage to Web services Standards based integration
Extending standards for mission-critical integration Security, Transactions, Reliability
On October 20th, IONA introduced Artix The software industry’s first-ever Web services platform built for
mission critical application integration
Helps customers use Web services the way they really want to
How to Build Reliable, Secure, Enterprise Web Services Now
11
Topics to be Covered
Multi-transport Web services Reliable Web services
– Load balancing– Failover– Stateful
Secure Web services– Wire-level– Authentication
Transactional Web services
WSDL: The Enterprise Service Contract
13
WSDL could have been called…ESDL - Enterprise Service Definition Language
WSDL is the logical choice
as the service definition language
– XML Schema provides the type system
– Logical Contract is all applications
need to care about
– Physical Contract is extensible to
support any middleware binding
Logical contract
– Defines public interface
– Independent of transports,
data formats, and programming languages
Physical contract
– Defines binding to transport and wire-level data format
– Multiple physical contracts can be defined for each
logical contract
ESDL
PortType
Operation
Message
Part
XML Data Type
Binding
Port
Service
LogicalContract
PhysicalContract
14
Why WSDL?WSDL is Open and Extensible
Extensibility allows non-SOAP bindings Extensibility allows service policies to be defined in contracts too
SOAP bindings RPC or Document, encoded or literal over HTTP
Non-SOAP bindings Enterprise connectivity: MQ, Tuxedo, Tibco, CORBA, IIOP, HTTP/S Enterprise messaging: XML, Fixed Format, FML (Tuxedo), TibRvMsg, G2++
Service Policies Routing, Failover, Security, Transactions, etc.
Industry Support– Strong Developer Interest
– Strong multi-vendor support
– Thriving ISV tool market
– Thriving open source community
15
Creating Your WSDL (or rather ESDL)
Development Cycle
ServiceDesigner
Tibco HOSTCORBA MQ Tuxedo
TibRVMsg. Def. IDL
COBOLCopyBooks
MessageDefinition
TibRVMsg. Def.
Security – wire level and / or authentication
Routing –Add decision logic to the Web service
Transactions – work with MTS, OTS, MQ, Tuxedo transactions
Transports Bindings – SOAP over HTTP, IIOP, MQ, etc..
Code Generation Tools
wsdl2cpp wsdl2corbawsdl2java
+ClientProxy Code
Server StubCode
OR
Reliability – Failover, scalability, state management
16
Code Generation
• Tools for generating C++, CORBA and Java Web service proxies and stubs
– Quickly build new client and server Web
service applications
– Generated code hides transport details
– Classes/APIs for manipulating SOAP messages
• These server applications can be invoked by any Web services consumer
• Related spec: OMG WSDL - C++ Mappings
Code Generation Tools
wsdl2cpp Generates C++ proxies and stubs from WSDL contract
wsdl2corba Generates CORBA proxies and stubs from WSDL
contract
wsdl2java Generates Java proxies and stubs from WSDL contract
ClientProxy Code
Server StubsCode
OR
Multi-Transport Web Services
18
Multi-Transport Web ServicesDevelopment
Middleware transports are specified in Design Studio– One or more transport bindings
• HTTP/S, MQ, IIOP, Tuxedo, Tibco
– One or more ports for each transport binding• e.g. HTTP ports are URLs and IP addresses• e.g. MQ ports are queue names
– Binding information defined in the physical contract• Bindings are defined as WSDL extensors
Run-Time handles:– Synch/Asynch bridging
– Payload mapping
– Protocol bridging
Bindings only involve the physical contract– They can be added and removed without affecting application code
– Allows you to modify transport level configuration data at any time
Service
Port
Binding
XML Data Type
Part
Message
Operation
PortType
WSDL
LogicalContract
PhysicalContract
19
HTTP/S
TUXEDO
TIBCO
MQSeries
IIOP
HTTP/S
TUXEDO
TIBCO
MQSeries
IIOP
Web Service Requestors
.NET
Java
MQ
C++
SOAP
WebService
Java
MQ
C++
CORBA
Web Service Providers
TransportPlug-Ins
TransportPlug-Ins
Run-Time Services
ServiceRegistryServiceRegistry
TransactionManagementTransaction
Management
ServiceRoutingServiceRouting
ProtocolBridgingProtocolBridging
PayloadMappingPayloadMapping
SecuritySecuritySynch/Asynch
BridgingSynch/Asynch
Bridging
SOAP
FML
TIBRV
MQ
IIOP
Multi-Transport Web ServicesRun-Time View
AuthorizationAuthenticationAuthorizationAuthentication
Discovery andLoad
Balancing
Discovery andLoad
Balancing
20
WSDL Extensors
XML Schema declarations uniquely identify extensor schemas<?xml version="1.0" encoding=“UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mq="http://schemas.iona.com/transports/mq" xmlns:fixed="http://schemas.iona.com/bindings/fixed"
xmlns:tns="http://soapinterop.org/" xmlns:xsd1="http://soapinterop.org/xsd" targetNamespace="http://soapinterop.org/" >
21
WSDL Extensors
XML Schema declarations uniquely identify extensor schemas<?xml version="1.0" encoding=“UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mq="http://schemas.iona.com/transports/mq" xmlns:fixed="http://schemas.iona.com/bindings/fixed"
xmlns:tns="http://soapinterop.org/" xmlns:xsd1="http://soapinterop.org/xsd" targetNamespace="http://soapinterop.org/" >
WSDL is a standard XML document
These standard namespaces are
what make it WSDL
User defined namespaces help
manage complexity
22
WSDL Extensors
XML Schema declarations uniquely identify extensor schemas<?xml version="1.0" encoding=“UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mq="http://schemas.iona.com/transports/mq" xmlns:fixed="http://schemas.iona.com/bindings/fixed"
xmlns:tns="http://soapinterop.org/" xmlns:xsd1="http://soapinterop.org/xsd" targetNamespace="http://soapinterop.org/" >
23
WSDL Extensors
XML Schema declarations uniquely identify extensor schemas<?xml version="1.0" encoding=“UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:mq="http://schemas.iona.com/transports/mq" xmlns:fixed="http://schemas.iona.com/bindings/fixed"
xmlns:tns="http://soapinterop.org/" xmlns:xsd1="http://soapinterop.org/xsd" targetNamespace="http://soapinterop.org/" >
SOAP namespaces are referenced to
use SOAP-based Web services
Other namespaces can define alternate behavior, such as other transports
and bindings
24
WSDL Extensors
WSDL Bindings define how messages are encoded on the wire<binding name="SearchBinding" type="tns:CustomerService"> <soap:binding style="rpc“/>
<operation name="NameSearch"> <soap:operation soapAction="http://soapinterop.org/" style="rpc"/> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </input>
<output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </output> </operation>
</binding>
25
WSDL Extensors
Bindings define how messages are encoded on the wire<binding name="SearchBinding" type="tns:CustomerService"> <soap:binding style="rpc“/>
<operation name="NameSearch"> <soap:operation soapAction="http://soapinterop.org/" style="rpc"/> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </input>
<output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </output> </operation>
</binding>
26
WSDL Extensors
Bindings define how messages are encoded on the wire<binding name="SearchBinding" type="tns:CustomerService"> <soap:binding style="rpc“/>
<operation name="NameSearch"> <soap:operation soapAction="http://soapinterop.org/" style="rpc"/> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </input>
<output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://soapinterop.org/"/> </output> </operation>
</binding>
SOAP binding extensors allow specifying rules that govern the entire binding, such as rpc or document
style
Body extensors allow specifying
per-message rules, such as literal or
encoded use
Operation extensors allow specifying
per-operation rules, such as soapAction, or overriding style
27
WSDL Extensors
WSDL Ports define where and how messages are sent
<service name="SearchService"> <port name="SearchPort" binding="tns:SearchBinding">
<soap:address location=“http://my.host.com:9001/Search"/> </port></service>
port extensors allow specifying transport address information, as well as protocol
information (e.g., http)
28
What about Existing MQ Bindings?
• Not many existing MQ Services use SOAP, or even XML• Critical services not changing overnight• Existing Application protocol must be followed
01 CUSTOMER-SEARCH-RESULTS. 05 STATUS. 10 RESULT-CODE PIC 9(5). 10 MESSAGE PIC X(25). 05 RESULT-COUNT PIC 9(2). 05 CUSTOMER-RECORDS OCCURS 25 TIMES 10 FIRST-NAME PIC X(25). 10 LAST-NAME PIC X(25). 10 MIDDLE-INITIAL PIC X. 10 ADDRESS 15 STREET-ADDRESS PIC X(50). 15 CITY PIC X(25). 15 STATE PIC XX. 15 ZIP-CODE PIC X(5). 10 HOME-TELEPHONE PIC X(10). 10 ACCOUNT-TYPE PIC X. 88 PLATINUM VALUE 'P'. 88 GOLD VALUE 'G'. 88 STANDARD VALUE 'S'.
01 CUSTOMER-SEARCH. 05 FIRST_NAME PIC X(25). 05 LAST_NAME PIC X(25). 05 ZIP-CODE PIC X(5).
Example Request Example Reply
QMgr cssys1 QName request_q ReplyQ reply_q The messages should be non-persistent reply msg correlid will have request msg id
Example MQ Configuration
29
Fixed Format Binding <binding name="SearchFixedBinding" type="tns:CustomerService"> <fixed:binding/> <operation name="NameSearch"> <fixed:operation discriminator="discriminator"/> <input> <fixed:body> <fixed:field name="discriminator" fixedValue="01" bindingOnly="true"/> <fixed:field name="FirstName" size="25"/> <fixed:field name="LastName" size="25"/> </fixed:body> </input> <output> <fixed:body> <fixed:sequence name="return"> <fixed:sequence name="item" occurs="100"> <fixed:field name="FirstName" size="25"/> <fixed:field name="LastName" size="25"/> <fixed:field name="Street" size="25"/> <fixed:field name="City" size="25"/> <fixed:field name="State" size="25"/> <fixed:field name="ZIP" size="25"/> </fixed:sequence> </fixed:sequence> </fixed:body> </output> </operation></binding>
30
Fixed Format Binding <binding name="SearchFixedBinding" type="tns:CustomerService"> <fixed:binding/> <operation name="NameSearch"> <fixed:operation discriminator="discriminator"/> <input> <fixed:body> <fixed:field name="discriminator" fixedValue="01" bindingOnly="true"/> <fixed:field name="FirstName" size="25"/> <fixed:field name="LastName" size="25"/> </fixed:body> </input> <output> <fixed:body> <fixed:sequence name="return"> <fixed:sequence name="item" occurs="100"> <fixed:field name="FirstName" size="25"/> <fixed:field name="LastName" size="25"/> <fixed:field name="Street" size="25"/> <fixed:field name="City" size="25"/> <fixed:field name="State" size="25"/> <fixed:field name="ZIP" size="25"/> </fixed:sequence> </fixed:sequence> </fixed:body> </output> </operation></binding>
Fixed binding extensors allow specifying rules that govern the entire binding,
such character set
Fixed operation extensors optionally allow specifying a discriminator so that the
message type can be determined
Fixed body extensors define how each field is written to the buffer to
comply with the existing application protocol
31
MQ Port Extensor
<service name="SearchService"> <port name="SearchPort" binding="tns:SearchFixedBinding"> <mq:client QueueManager="MY_DEF_QM" QueueName="MY_FIRST_Q" AccessMode="send" ReplyQueueManager="MY_DEF_QM" ReplyQueueName="REPLY_Q" CorrelationStyle="messageId copy“ /> </port></service>
MQ ports are indicated by the mq port extensor, and often use fixed bindings, but any
Artix binding can be used, including SOAP
Message correlation for request/reply operations are handled using simple declarations on the port
mq ports addressing information is richer to
reflect the richness of the underlying middleware
(this is a simple example)
Building Reliable Web Services
33
Locator – WSDL-based Naming Service
Dynamic, high performance service registration
Automatic service lookup adapts to: Machine failures
New service instances
Site/server reconfiguration
Services automatically registered with the Locator upon start-up
Multiple instances of the same service can beregistered to support load balancing and failover
Related specification: WS-Addressing
34
(3) Invoke
(1) Publish
(2) Lookup
.NET, Web services application or IIS/JSP
Technical Need:– Fault-tolerant, reliable Web
service providers
Support in Artix:– Locator Service
• Service Discovery
• Multiple Servers – Same Service
• Load balancing, fault tolerance
Reliable Web ServicesFault Tolerant, Load Balanced Server Pools
Locator
Artix EnabledServer Pool
35
Reliable Web ServicesSession Management
Technical Need:– Stateful client / server interaction
– Context management
– Related specification: WS-CAF
Support in Artix:– Locator Service
• Service Discovery
• Session manager plug-in provides session context across calls and instance policies
(3) Invoke
(2) Lookup
.NET, Web services application or IIS/JSP
Locator
Artix Enabled Server
Session management interceptor plug-ins
(1) Publish
36
(1) Publish
(2) Lookup
Reliable Web ServicesScalable Infrastructure
Technical Need:– Scale to support 1000’s
of clients
– Configure servers independently
Support in Artix:– Locator Service can be
distributed and federated • Request not found local
– fetch upstream, cache locally
• Support for fan up and fan down configuration
(3) Invoke
.NET, Web services application or IIS/JSP
Locator can be federated like ‘DNS’ servers
Locators
Artix Enabled Server
37
(3) Invoke
(2) Lookup
Locator
(1) Publish
Technical Need:– Require 24 x 7 operations
– Locator Host fails or the Locator service is killed - system must recover without restarting the servers
Support in Artix:– Locator can recreate the
pre failure state from therunning endpoints
– Running servers will not need to be restarted
Reliable Web ServicesSystem Recovery
On restart of Locator, state rediscovery can be enabled, which recreates active state
.NET, Web services application or IIS/JSP
Artix Enabled Server
38
.NET or Axis Client Services
(3) Invoke
(2) Lookup
.NET, Web services application or IIS/JSP
(1) Publish
Technical Need:– Need session management,
failover and reliability with .NET or AXIS Web services
Support in Artix:– Locator Service
• Artix .NET plug-in and AXIS plug-in for managing the lookup & forward interaction Artix Enabled
Server
Locator
Secure Web Services
40
Technical Need:– HTTP wire level security
Support in Artix:– Support for wire level encryption
(SSL, HTTPS)
– Also, support for wire level security of other middleware transports (CORBA, Tuxedo, Tibco, MQ)
Secure Web ServicesWire Level Security
(3) Invoke
(1) Publish
(2) Lookup
Locator
.NET, Web services application or IIS/JSP
Artix Enabled Server
41
(3) Invoke
(1) Publish
(2) Lookup
Locator
Artix security plug-in
IONA Security Framework
Technical Need:– Access control and
authentication to secured services
Support in Artix:– IONA Security Framework (ISF)
is used for integration with standard access control systems (Netegrity, LDAP)
– No code changes to
the application
– Related Spec: WS-Security
Secure Web ServicesAuthentication
.NET, Web services application or IIS/JSP
Artix Enabled Secure Server
Netigrityor
LDAP
Transactional Web Services
43
Problem– But what about middleware that does not
support transactions like Web services
– Related specifications: WS-CAF, WS-T, WS-C
Solution– Artix Encompass can act as the
transaction coordinator• Any XA-Compliant resource can be
managed and listed in the transaction
• Artix supports full commit and rollback
– Artix ships an extended version of OTS which can also be placed subordinate to other TP monitors
Invoke
.NET, Web services application or IIS/JSP
ORACLE DB2MQ
(XA)
(XA)
(XA)
Transactional Web ServicesMaintaining Data Consistency
Product Information
45
Consolidates aging middleware
technologies that are
expensive to maintain and
support without business
interruption
Bridges middleware
technologies, eliminating
roadblocks that slow down
innovation
Creates Web services
applications with enterprise
features, that enable IT
assets to be re-used in
service oriented computing.
Exposes mainframe
transactions as high
performance Web services
with minimal risk
Middleware Interoperability
Enterprise Web Services Mainframe Web ServicesMiddleware Consolidation
Artix Platform
Adaptive Runtime Technology
Develo
pm
en
tTools
En
terp
rise
Man
ag
em
en
t
WSDL Service Contracts
Transport Plug-Ins Format Plug-Ins
PayloadMapping
ProtocolBridging Routing
SecurityPropagation
TransactionPropagation
ServiceRegistration
ServiceDiscovery WS - Security Transaction
ManagementSecurity
ManagementContract
Management
IIOPHTTP SSL Tuxedo Tibco MQ IIOPSOAP/XML FML TibRV MQ Custom
46
• Enterprise Web Services Platform
– Build sophisticated service-oriented architectures (SOA) using Web
services technology
– Extend beyond Web services, when necessary
• Security, Reliability, Session management,
• SOAP over multiple transports – MQ, IIOP, Tuxedo, Tibco
• Quickly create new Web service clients and servers
• “Web service enable” legacy systems
– And, incorporate them into the SOA
• Interoperate with systems created using 3rd party Web service toolkits
Summary
48
In Closing
Standards have a long way to go to address the concerns of mission-critical application integration
IONA is addressing this gap NOW
Using Artix developers can build secure, reliable, transactional and fully interoperable Web services that are ideal for mission-critical application integration
Open for questions and comments
49
For More InformationOn the Web:
www.iona.com/artix
Download the Service Oriented Integration - Strategy Brief from www.searchWebservices.com
Technical articles:http://www.iona.com/info/aboutus/IONAThink.htm
Emails: Eric.Newcomer @IONA.comPeter.Cousins @IONA.com
Phone:1-800-672-4948