| By Jesus Rodriguez, Javier Mariscal | Article Rating: |
|
| July 3, 2007 06:30 AM EDT | Reads: |
11,864 |
Best Practice
To design interoperable
non-HTTP hosted Web Services use transport protocols that are
vendor-agnostic such as TCP, UDP, etc. Similarly, use a transport
protocol that corresponds to the expected runtime behavior of the
service. It's also a good practice to test interoperability using the
components of the Web Service technology stack that interact with the
transport such as WCF transport channels or Apache WSIF bindings.
Versioning Strategy
Services are subject
to evolve during their lifetime. That evolution often forces changes on
the consumers that break the level of interoperability achieved by the
solution. Evolving enterprise consumers and services together is not
only a very expensive operation that requires massive levels of
coordination between both sides; but also violates the autonomy
principle of service orientation that says that services should be
deployed and modified/maintained independently of each other and the
systems that use them.
Best Practice
Define a versioning
strategy that considers the interoperability with the existing service
consumers. Keeping multiple active versions of the same services
maintains a level of interoperability that's not going to leverage the
features of the new version. Only implement non-breakable changes at
the service, data, and message contract level. Also consider using
multiple bindings when changes are required at the transport or
message-encoding level.
Stateful Services
A lot of the SOA
scenarios in real-world enterprises require stateful services
interactions. Those services can maintain the state between calls and
are mainly used for long-running operations. Achieving interoperability
with those services is always a challenge mainly because there's no
widely adopted standard for persisting the state of a service between
calls.
Best Practices
When implementing stateful
interoperable services; expose the state key using mechanisms that are
available to the potential consumers. Typical mechanisms include SOAP
headers or transport-specific headers. Also, depending on the scenario,
offer different ways for consumers to send the state information.
Governance Interoperability
SOA
governance is a key component of a successful SOA solution. However the
capabilities of a SOA governance framework are often limited to its
capacity for interoperating with multiple services. A successful SOA
governance solution requires interoperability between different SOA
components such as policies, contracts, or versions that are modeled
differently on different Web Services frameworks.
Best Practice
A good practice for
guaranteeing interoperability on a SOA governance solution is to have a
global representation of the different artifacts such as policies and
contracts globally stored on a SOA registry or repository. This
approach facilitates sharing global policies, contracts, or SLAs across
different business services. Also for some scenarios the global
representation needs to be translated to the specific technology
representation using some specific technology-specific adapter.
Creating the Interoperable Web Service - Lessons from the Internet
If you've made it this far you might be convinced that it's impossible
to create interoperable Web Services. However if we look at the
Internet we can find Web Services APIs such Amazon.com, eBay, or
Salesforce.com processing millions of requests a day from millions of
consumers using a heterogeneous set of technologies ranging from
scripts languages such as Perl or PHP to more established enterprises
development frameworks such as J2EE or .NET. How did they do it? The
following lists some of their secrets for achieving interoperability
across the world's largest and most heterogeneous network.
• Simple services, data, and message contracts:
Contracts exposed by successful Internet Web Services APIs are very
simple and hide the detail of very complex implementations. This
guarantees first-level interoperability with a variety of technologies.
• SOAP and REST APIs:
Going beyond the debate of whether to use SOAP or REST, the fact is
that both approaches can be applied to some scenarios. Supporting SOAP
and REST interfaces gives the service consumer the opportunity to
select the best approach for a particular scenario.
• Optional use of WS-* protocols:
The implementation of most WS-* protocols is an almost exclusive
privilege of .NET, J2EE, and C++. Other programming languages like Ruby
or Python are just starting down the path of supporting basic Web
Service interactions. The use of WS-* protocols should be an optional
capability for consumers that can support it and never a mandatory
requirement.
• Consumer-driven contracts (the Einstein approach):
Forcing a single set of contracts across all consumers is not always a
wise decision. That approach makes consumers dependent on aspects of
the contracts they might not be using. It also ties the evolution of
the consumer application to the evolution of the contract itself.
Having a more consumer-oriented contract approach on which consumers
interact with contracts that contain the specific elements that are
relevant to their scenario facilitates aspects like versioning, policy
control, etc. We often call this the Einstein approach to service
orientation in which every consumer has its own view of the universe
instead of a Newton approach in which all the consumers share a single
view.
• Versioning Strategy: Internet
Web Services APIs are subject to evolving given the dynamic nature of
the Internet. Keeping multiple versions of the Web Services doesn't
force clients to migrate to a new version that doesn't bring any value
to them.
Conclusion
This article has explored some of the
key challenges in achieving Web Services interoperability in real-world
SOA deployments. It detailed best practices and techniques architects
can apply to enhance the interoperability of an SOA solution. The
complexity of SOA standards is by far the key factor that affects the
interoperability of Web Services. Overcoming that complexity is an
exercise that involves best practices throughout the entire solution
lifecycle. Designing interoperable services facilitates their use in
other SOA solutions such as service orchestration, composition, or
governance.
Aligning the Path for Service Orchestration & Composition
Achieving
interoperability is a key requirement for service orchestration and
composition. During the last few years the industry has produced
several standards and technologies for service orchestration and
composition such as Web Services Business Process Execution Language
(WS-BPEL), Service Component Architecture (SCA), and the Web Services
Choreography Description Language (WS-CDL). All of those standards are
based on coordinated interactions between different Web Services
endpoints. However, Business Processes and Composite Services are only
as good as their capacity for interacting with different services
developed on different technologies. Implementing interoperable
services guarantees that those services can be used as part of
orchestrations, choreographies, or composite services to address more
complex scenarios.
Published July 3, 2007 Reads 11,864
Copyright © 2007 SYS-CON Media, Inc. — All Rights Reserved.
Syndicated stories and blog feeds, all rights reserved by the author.
More Stories By Jesus Rodriguez
Jesus Rodriguez is the Chief Software Architect at TwoConnect, Inc. (www.twoconnect.com), a Microsoft Gold Partner based in Miami, Florida. He is also a Microsoft BizTalk Server MVP and one of a few Architects worldwide to be a member of the .NET 3.0 Digerati team. As a member, Jesus has been selected to participate in a variety of Software Design Reviews with Microsoft’s Product Teams. Jesus is the Lead Architect for several BizTalk Server adapters including Web Services Enhancements 3.0, SalesForce.com, SonicMQ and the award winning Service Broker Enhancements. Jesus derived his extensive experience with business process integration and messaging through numerous implementations of loosely coupled systems founded on the principles of SOA. He is an active contributor to the .NET and J2EE communities, focusing on the interoperability aspects between those two platforms. His contributions include several articles for various publications including MSDN, Architecture Journal and Web Services Journal. Jesus is frequently seen leading sessions at TechEd, MVO Summit and the Microsoft Business Process and SOA Conference, as well as conducting Web Casts on varying Microsoft technologies. He is a prolific blogger on all subjects related to integration and has a true passion for technology. Contact Jesus at jrodriguez@twoconnect.com or through his blog at http://weblogs.asp.net/gsusx.
More Stories By Javier Mariscal
Javier Mariscal is the President and Founder of TwoConnect, Inc, a highly renowned consulting and systems integration company based in Miami, Florida with subsidiary offices in New York City, and San Francisco. After nearly 15 years, Javier is still mostly responsible for guaranteeing that TwoConnect’s innovative integration solutions deliver real and immediate results to its clients. As an author and frequent speaker on SOA and related technologies, Javier constantly reaffirms the need for “practical SOA” which focuses not on pushing a brand or a platform but on delivering immediate business rewards. Under his leadership, TwoConnect has been the first to market with multiple SOA related products and solutions such as the Web Services Enhancements 3.0 Adapter for Microsoft BizTalk Server and the SQL Server Service Broker Enhancements, both currently in production at companies worldwide. In 2006, TwoConnect announced a new line of products and services under its AdapterWorx brand, which has been hugely successful in accelerating its SOA solutions delivered. Following the success of AdapterWorx and a banner year in 2006 in general, Javier was nominated for Entrepreneur of the Year by Hispanic Business Magazine.
- The Top 150 Players in Cloud Computing
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- Industry Experts Discuss the State of Cloud Computing
- Cloud Expo New York Call for Papers Now Open
- Cloud Computing on Gartner's Top 10 List and SYS-CON Events' 2010 Calendar
- US Federal Government is Major Cloud Computing Innovator
- Google Wave
- Ulitzer.com Named Exclusive "New Media" Sponsor of Cloud Computing Conference & Expo
- Tactical Cloud Computing Panel at 1st Annual GovIT Expo
- Adaptivity & Cloud Computing: Exclusive Q&A with CEO Tony Bishop
- 4th International Cloud Expo: Photo Album
- The Top 150 Players in Cloud Computing
- SYS-CON.TV: Cloud Computing Expo Power Panel
- Commercial vs Federal Cloud Computing
- Why IBM’s Server Chief Got Busted
- 1st Annual GovIT Expo: Letter from the Technical Chair
- Industry Experts Discuss the State of Cloud Computing
- Deputy CIO of the CIA to Keynote 1st Annual GovIT Expo
- SOA World Power Panel on SYS-CON.TV
- CIA was Headed to an Enterprise Cloud All Along: Jill Tummler Singer
- Cloud Expo New York Call for Papers Now Open
- 1st Annual Government IT Conference & Expo: Themes & Topics
- Stock in Focus: Dragon Capital
- The i-Technology Right Stuff
- Who Are The All-Time Heroes of i-Technology?
- Get the Message
- Where Are RIA Technologies Headed in 2008?
- i-Technology Viewpoint: Is Web 2.0 the Global SOA?
- i-Technology Viewpoint: Thinking Outside the VC Box
- ESB Myth Busters: 10 Enterprise Service Bus Myths Debunked
- i-Technology Viewpoint: When to Leave Your First IT Job
- SOA Web Services Edge Conference Coverage on SYS-CON.TV
- Five Reasons Why Web 2.0 Matters
- SYS-CON.TV's "SOA Web Services" and "Enterprise Open Source" Programs To Air in December
- SOA World Conference & Expo SYS-CON.TV Power Panel Live From Times Square









Cloud computing is a game changer. The cloud ...




















