Title: SOAP Routing: The Missing Link
1SOAP Routing The Missing Link
- Rohit Khare
- 16 May 2002
- OReilly Emerging Technology ConfUC Irvine
KnowNow, Inc.
2Our Vision
- The future of software development requires
integratingnetwork services that are very far
away and owned by strangers
3Three Elements of Our Vision
- The abstract unit of software is a network
service - Prior levels of abstractions were subroutines,
libraries, processes, objects, - In this view, the only way to understand software
is to watch its message traffic - Latency is an absolute limit of system
architecture - Just as real architects grapple with gravity,
so with the speed of light - London will always be 30ms from New York,
regardless of Moores Law - Decentralization means crossing agency boundaries
- The essential complication above and beyond
distributed (parallel) computing is extending a
system to achieve consensus between several
separate agencies - Every computing and communication device is owned
by someone.
4How Our Vision is Emerging Today
- The technological shift from a component model to
a service model of software is already underway - SOAP and Web Services technologies make it easy
to write new protocols - The Internet is inexorably shifting to
higher-latency, decentralized connectivity - Ad-hoc, peer-to-peer networking, mainly wireless,
is being deployed at every scale from one meter
(handhelds) to billions of meters (space probes) - Enterprise Application Integration (EAI) is only
now reaching outside the firewall to business
partners - The next revolution in productivity requires
reengineering processes end-to-end
5So Whats This Talk About?
- There is a missing link between the near-future
predicted by todays Web Services hype and
realizing the true potential of our vision - It is a new architectural style for software
integration we call Application-Layer
Internetworking (ALIN) - ALIN applies networking concepts to software
engineering - The primary way that developers will use ALIN is
an unheralded implication of SOAP 1.2 Routing - so this talk is about a new style and a new
device
6Talk Overview
- Whats really new about Web Services
- What a SOAP Router is
- What a SOAP Router can do for you
- How an SOAP Router works
- ALIN in theory
- ALIN in practice
7Web Services are NOT New
- There is nothing new under the sun in distributed
(or parallel , or grid, ) computing - These are all efforts to lash many systems
together to act as one - SOAP today is a distributed computing technology
- Sprinkling angle-bracket pixie dust over plain
ol client/server RPC - Sure, it works across the public Internet, but
only by treating it as a very slow LAN - Trade rags already lament the gap at this
boundary real security, reliability, and
performance problems reveal the fallacy of
assuming TCP/IP just works
8Web Services ARE new
- Decentralization does pose brand-new challenges
- Latency
- Services are no longer mere milliseconds away.
- We need middleware for seconds up to weeks
- Agency
- Services can be owned by other organizations
- We need middleware for translating semantics
- Because SOAP messages are self-contained, they
can be stored, analyzed, and replayed at will
9SOAP is Simpler Than You Think
- Starts w/point-to-point, synchronous invocations
- just as Web page servers are accessed today
- Main virtue is that it is not DCOM, IIOP, or RMI
- Encapsulates the messy details of cross-platform,
cross-language binding using standard marshalling
formats - Getting started requires very little
re-education. - On the other hand, straight RPC message exchange
patterns (MEPs) dont inherently reduce the tight
coupling between client and server semantics.
10SOAP is Cooler Than You Think
- The vastly underestimated power of SOAP is that
its model is genuinely asynchronous - Today, we use it as a form of XML RPC
- Underneath, thats merely a pair 1-way messages
- Furthermore, SOAP Actors are not hosts
- An actor is a much more general concept than a
fixed service provider machine and port - One actor may be a proxy for many others
- Ideally, actors represent actual business models
11What is SOAP Routing?
- Today, the canonical Web Services diagram
directly connects SOAP endpoints - There will also be a complementary technology
that sits in the middle - Store-and-forward reliable messaging
- Filtering, transformation, analysis of flows
- Intelligent active proxy chaining of actors
12What Good is SOAP Routing? 1/2
- Internet-scale Middleware
- Just as distributed objects needed
message-oriented-middleware (MOM) - decentralized services will need mediators
- Wrappers SOAP brokers to legacy systems
- Monitors SOAP transaction correlation audit
- Queues decouples SOAP provider from requestor
- Pub/Sub decouples SOAP actors entirely
- The difference is coping with firewalls and other
kinds of agency boundaries
13What Good is SOAP Routing? 2/2
- Add new ilities without modifying either end.
- Security Router can authenticate and authorize
- Reliability Router can store-and-forward msgs
- Availability Router can redirect to live servers
- Scalability Router can redistribute messages
- Interoperability Router can transform msgs
- Interactivity Router can update msgs in-flight
- Routing lets us reason about a network of
services -- not just pipelines, but graphs
14How SOAP Routing Works 1/2
- Consider a simple Bank ATM service
- In the old world, you would have fine-grained
account objects and setUserName() functions - As Web Services, you have more flexible
XML-document services like getStatement() - A client-side ATM program can easily call it
directly today by composing a SOAP message and
POSTing it to the Bank server
15How SOAP Routing Works 2/2
- First, it provides simple middleware
- Recall how CGI scripts directly invoked scripts.
- Later, Application Servers emerged to
encapsulate the effort of storing state c - By passing the message through a SOAP router
- It can enforce the Banks security policy
- It can store a copy of the message for audit logs
- It can redirect requests across a server farm
- This is exactly what Web proxies do today
16How SOAP Routing Helps 1/2
- Second, it affords flexibility of connections
- What if you wanted to change banks?
- The router can filter the captured message stream
so that messages from the new bank look like
the old bank - What if you wanted to change currencies?
- This is equivalent to routing through another
actor - The router can transform messages with plugin
scripts today, XML schemas tomorrow - What if you wanted to know if cash is running
out? - The router can analyze messages for trends
17How SOAP Routing Helps 2/2
- Third, it allows 3rd 4th-party extensions
- What if you wanted to check on your bonds, too?
- The router can multicast the balance inquiry to
the Bank service and a Broker service - What if you wanted to buy more bonds?
- The router can monitor the joint transaction of a
money transfer to the broker and the purchase of
the bonds - What if you wanted your limit kids access?
- The router can delegate access control rights
18ALIN in theory 1/3
- ALIN is NOT merely Actor intermediation (piping)
- Actor chains today are like UUCP !path
addressing its source-routing only - Its the ability to infer semantic chains,
decouple political control, etc. - SOAP Routers directly address the twin novel
challenges of decentralized service integration - Latency
- by decomposing every communication into a
one-way, asynchronous message, routers force us
to confront extreme latency, rather than hiding
it - Agency
- by introducing a trusted 3rd-party between the
original endpoints, routers allow us to represent
the interests of many other 4th-party agencies
19ALIN in theory 2/3
- The Internet itself is a result of addressing
high latency and diverse agency at Layer 3 - IP Routers store-and-forward packets across
autonomous systems, each containing many LANs - IP-format packets are a generic interchange for
LANs - Consequently, Internet-scale services must
- Scale Across Time Interfaces must be stable for
decades - Scale Across Space Protocols must handle gt100ms
delays - Scale Across Organizations Namespaces must
peer - This is merely an application-layer router for
TPs
20ALIN in theory 3/3
- This architectural style builds on REST C2
- Beyond merely transferring representation, now we
can mediate them - Can connect any graph, not just a strict lattice
- It generalizes other MOM styles
- Queues, sync/async, 1-1, N-N, transactional
- Pub/Sub, address-based and content-based
- The most contentious aspect of ALIN for MOM folks
is best-effort it is still difficult to sell
TCP over IP - If your bottom turtle is already transactional,
it rules out scalability and perf - The very definition of agency boundary is that
transactions cant span them!
21ALIN in practice
- Lots of ink is being spilled on missing
infrastructure for Web Services - Major software platform vendors are only
beginning to market RPC-style Web Services - Existing middleware products are having
difficulty outside the firewall - JMS, for example, is single-vendor,
single-language - High-performance EAI tools often assume multicast
IP - Early Internet-scale messaging startups include
KnowNow, Bang, Kenamea, SonicXQ, Grand Central,
and others - Microsoft has outlined its WS-Routing proposal
- IBM has Business Rule Beans and MQ Event Broker
in WS5.0
22Distributed vs. Decentralized
- We already have lots of techniques for
decomposing systems to run on many distributed
processors acting as one - The genuinely novel potential of Web Services is
decentralization - Marketplaces, rather than central brokers
- Routing is a new technique for integrating
services provided by 3rd and 4th parties
23A Parting Thought
- The dirty little secret is that the 7-Layer ISO
Network model is insufficient to model
decentralized computing. - Its really all about integration at Layer 8 9
Political
Economic
You Are Here
Application
Presentation
Session
Transport
Network
Link
Physical