Thursday May 10, 2007
Today's Page Hits: 198
Thursday May 10, 2007
I'll be presenting a technical session (TS-8897) entitled Designing Service Collaborations: ‘Wire’-Centric Integration with Mark Hapner at the JavaOne 2007 conference on Thursday May 10, '07 at 10:55 am.at the Esplanade A/B Moscone South Tower - Room #304/306.
Abstract:
Integration design used to be focused on the design of middleware that connected applications. Today the “wire” design of the message exchanges between collaborating services is the core architectural element of integration. The Internet and the messaging standards it has driven allow integration wire design to be global, nonproprietary, and platform-independent. A service collaboration design formally captures the functional, infrastructure, and protocol layers of the message exchange wire that connects the services that implement one or more of the collaboration’s roles. This session presents an overview of collaboration wire design and walks through examples to illustrate how it is done in practice.
Details:
As noted in the abstract, the focus of integration design is shifting to design of the ‘wire’.
Just as in other areas of software design, it is a combination of
technology and art. When we, as developers and architects, were
learning how to design software with OO languages, many overly complex
designs were created as designers used every bell and whistle in the OO
kit in their designs. The same thing is beginning to happen with our
‘wire’ designs.
The art of ‘wire’ design is to simplify the
design at each level to the minimum needed to support the function of
the collaboration. The less protocol, infrastructure and functional
complexity a collaboration requires - the easier it is to bring it to
life.
A ‘wire’ design is meaningless if it doesn’t result in
actual service collaboration occurring. A collaboration may span
companies in a vertical market; companies participating in a particular
supply chain; users of a particular SaaS provider; or, simply an
internal set of collaborating services. Once it has been brought to
life, the hope is that its community of users will grow and that it
will evolve to meet the changing needs of this community. The design of
the ‘wire’ must take this requirement for growth and evolution into
account. It must also take into account the day-to-day requirement for
reliability - it is impossible to guarantee collaboration ‘consistency’
so the design must include basic support for ‘recovery’.
The
shift to ‘wire’ design goes hand-in-hand with the recognition that most
integrations today can’t rely on a central broker to establish the
collaboration in the sense that EAI middleware did for IT and VANs did
for EDI. The only infrastructure most ‘wire’ collaborations share is
the Internet TCP-IP infrastructure. The rest is implemented at each
endpoint and these endpoints are increasing operating as peers as they
weave their function out of functions they supply and functions they
access via ‘wire’ collaboration.
This session will help
developers and designers understand how to begin reasoning about
integration from a ‘wire’ perspective. It will help them decide how to
decompose an integration design into its ‘wire’ and ‘endpoint’ parts.
It will help them recognize that they ‘own’ the task of ‘wire’ design -
that they must define service collaborations down to the
bits-on-the-wire if they are to successfully deploy them. That there
are many choices at each level - to use/not-use the SOAP envelope; what
message elements should function as correlation values; how to design
duplicate-insensitive message exchanges; etc.
| | Join the TS-8897 Group Discussion |
| Session Details | |
| |
|
| |
|
| |
|
| |
|
| |
|
| | |
Like this write-up? Subscribe to receive more like it.
Disclaimer: The contents of this Weblog represent my personal opinion which may differ from the official views of my employer, Sun Microsystems, Inc. or any past employers.