Table Of ContentSOA Approach to Integration
XML, Web services, ESB, and BPEL in real-world
SOA projects
Matjaz B. Juric
Ramesh Loganathan
Poornachandra Sarang
Frank Jennings
BIRMINGHAM - MUMBAI
SOA Approach to Integration
XML, Web services, ESB, and BPEL in real-world SOA projects
Copyright © 2007 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval
system, or transmitted in any form or by any means, without the prior written
permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of
the information presented. However, the information contained in this book is sold
without warranty, either express or implied. Neither the authors, Packt Publishing,
nor its dealers or distributors will be held liable for any damages caused or alleged to
be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all the
companies and products mentioned in this book by the appropriate use of capitals.
However, Packt Publishing cannot guarantee the accuracy of this information.
First published: November 2007
Production Reference: 1211107
Published by Packt Publishing Ltd.
32 Lincoln Road
Olton
Birmingham, B27 6PA, UK.
ISBN 978-1-904811-17-6
www.packtpub.com
Cover Image by Vinayak Chittar (vinayak.chittar@gmail.com)
Credits
Authors Editorial Manager
Matjaz B. Juric Dipali Chittar
Ramesh Loganathan
Poornachandra Sarang Project Managers
Frank Jennings Patricia Weir
Abhijeet Deobhakta
Reviewers
Manish Verma Indexer
Clemens Utschig Bhushan Pangaonkar
Senior Acquisition Editor Proofreader
Louay Fatoohi Chris Smith
Development Editor Production Coordinator
Mithil Kulkarni Shantanu Zagade
Technical Editor Cover Designer
Ajay.S Shantanu Zagade
About the Authors
Matjaz B. Juric holds a Ph.D. in computer and information science. He is Associate
Professor at the University of Maribor and the director of Science Park project.
In addition to this book, he has authored/coauthored Business Process Execution
Language for Web Services (English and French editions), BPEL Cookbook: Best Practices
for SOA-based integration and composite applications development, Professional J2EE
EAI, Professional EJB, J2EE Design Patterns Applied, and .NET Serialization Handbook.
He has published chapters in More Java Gems (Cambridge University Press) and
in Technology Supporting Business Solutions (Nova Science Publishers). He has also
published in journals and magazines, such as SOA World Journal, Web Services Journal,
Java Developer’s Journal, Java Report, Java World, eai Journal, theserverside.com, OTN,
ACM journals, and presented at conferences such as OOPSLA, Java Development,
XML Europe, OOW, SCI, and others. He is a reviewer, program committee member,
and conference organizer.
Matjaz has been involved in several large-scale projects. He has been consultant
for several large companies on the SOA projects. In cooperation with IBM Java
Technology Centre, he worked on performance analysis and optimization of
RMI-IIOP, integral part of the Java platform. Matjaz is also a member of the BPEL
Advisory Board.
Matjaz is author of courses and consultant for the BPEL and SOA consulting
company BPELmentor.com. For more information, please visit
http://www.bpelmentor.com/.
My efforts in this book are dedicated to my family. Special thanks
to Ana and to my friends at the Packt Publishing and University
of Maribor.
Ramesh Loganathan has 16 years of Systems Engineering and R&D Management
experience in technology-intensive product development organizations, including
Sonic Software (Technical Director—India Dev Center), Pramati Technologies (VP,
Engineering), and Informix (Principal Engineer). Ramesh has full lifecycle experience
setting up and managing product development organizations and motivating
high-caliber engineering teams. He has strong Insight into Systems software,
Middleware Technology, Database internals, Internet Architectures, and
frameworks. Ramesh has led engineering efforts building software infrastructure
products at Pramati and Sonic Software. After a brief engagement with Sonic/
Progress, Ramesh is now VP-Middleware Technologies at Pramati, driving the
product direction and setting up a new Technology Consulting business around
Middleware Systems.
Ramesh has worked with several organizations in India and in the US including
IBM, Lever, Compaq, TCS, Informix, and Integra.
Ramesh is an accomplished Technologist and evangelist, regularly speaking at
workshops and seminars. He is active in Tech fora, JCP, and SPEC organizations. He
is a member of several Standards Expert groups including J2EE 1.4, and a founding
member of ebXMLIndia.org and hyd-eclipse.org. Ramesh is actively engaged with
academia and researchers and is an Adjunct Faculty member at IIIT-H teaching two
courses on Middleware systems.
Poornachandra Sarang, Ph.D. runs a Software Consulting and Training firm in
the name of ABCOM Information Systems (http://www.abcom.com) and is currently
an adjunct faculty in the Univ. Dept. of Computer Science at University of Mumbai.
Dr. Sarang has previously worked as a Visiting Professor of Computer Engineering
at University of Notre Dame, USA and has been a Consultant to Sun Microsystems
for several years. Dr. Sarang has spoken in number of prestigious international
conferences on Java/CORBA/XML/.NET organized by O’Reilly, SYS-CON, WROX,
SUN, Microsoft and others. He has authored several articles, research papers,
courseware and books.
Frank Jennings, works in the Information Products Group of Sun Microsystems
Inc. He has more than nine years of experience in Java, SOA, and System Design. He
is an Electronics Engineer from Madras University and has worked for several
open-source projects.
About the Reviewers
Manish Verma is VP, Delivery, at Fidelity National Information Service's software
development center in Chandigarh, India. Manish has 14 years of experience in all
the aspects of the software development lifecycle, and has designed integration
strategies for client organizations running disparate systems. Manish's integration
expertise is founded on his understanding of a host of technologies, including
various legacy systems, .NET, Java technology, and the latest middleware. Prior to
Fidelity National, Manish worked as a software architect and technical lead at Quark
Inc., Hewlett Packard, Endura Software, and The Williams Company.
Manish writes on technical topics on a regular basis. His current focus areas are
integration of disparate systems, and web services security, transactions, access
control, identity management, and provisioning.
You can contact Manish at mverma@fnisindia.com.
Clemens Utschig works within the Oracle SOA Product Management Team
at Oracle Headquarters, Redwood Shores, where his responsibilities include
cross-product integration as well as the growth of the developer community
on OTN.
Apart from technology, his focus is on project management and consulting aspects,
as they relate to SOA implementations.
As a native Austrian, his career started in Europe at the local consulting services
branch, working with customers on J2EE and SOA projects, where he also founded
the local Java community within Oracle Austria.
He is a frequent speaker at international conferences where he evangelizes
technology and the human factor as they relate to shifts in IT strategy.
Table of Contents
Preface 1
Chapter 1: Integration Architecture, Principles, and Patterns 5
Integration Challenges 6
Current Situation 8
Effective Information Systems 9
Replacing Existing Applications 9
Requirements and Strategies 11
Single Data Input 11
Information Access with Low Latency 12
Importance of a Centrally Managed Integration Project 13
Responsibility to Define Integration Architecture 14
Responsibility to Select Integration Infrastructure and Technologies 15
Development and Maintenance of Integration Documentation 15
Integration Architecture Steps and Approaches 16
Bottom-Up Approach 17
Top-Down Approach 21
Sound Integration Architecture Benefits 23
Types of Integration 24
Data-Level Integration 25
Application Integration 26
Business Process Integration 28
Presentation Integration 29
Business-to-Business Integration 29
Integration Infrastructure 30
Communication 31
Brokering and Routing 32
Transformation 33
Business Intelligence 33
Table of Contents
Transactions 34
Security 34
Lifecycle 34
Naming 35
Scalability 35
Management 35
Rules 36
Integration Technologies 36
Database Access Technologies 37
Message-Oriented Middleware 37
Remote Procedure Calls 39
Transaction Processing Monitors 40
Object Request Brokers 41
Application Servers 42
Web Services 43
Enterprise Service Buses 45
The Integration Process 46
Choosing the Steps and Defining the Milestones 46
Sound Practices 48
Iterative Development 48
Incremental Development 49
Prototyping 50
Reuse 50
Integration Process Activities and Phases 50
Integration Patterns 52
Summary 53
Chapter 2: Service- and Process-Oriented Architectures
for Integration 55
Defining Service-Oriented Architectures 57
Why SOA in the Integration Space? 60
Islands in the Enterprise IT Landscape 60
The Integration Problem 62
Custom Integration Application and Its Issues 63
Inverted View: Reusable Services, Simple Integration Processes 65
Enter SOA: A Services-Based Integration Architecture 65
Concepts and Principles of SOA 66
Paradigm Shift—from Self-Contained Applications towards "Services" 66
Service Orientation 67
Component-Based Services 68
The Internet Simplifies Remote Services 69
Consuming Services 71
Introducing SOA Architecture 71
[ ii ]
Table of Contents
Service Abstractions 72
Service Invocation and Service Implementation 73
Process Engines 73
Messaging Abstractions 73
Synchronous and Asynchronous Messages 74
Service Registries 74
Quality of Service 75
Communication Infrastructure 75
What is a "Bus"? 75
XML and Web Services: SOA Foundation 76
Using XML in Middleware 76
Middleware Mechanics for Services 76
XML-Based Mechanism to "Invoke" Services 77
Services over the Web via SOAP 79
Web Services—Protocols for SOA 79
Technology Agnostic System-to-System Interaction 81
Service Description—Using WSDL 83
Discovering the Services—UDDI 83
Containers to Host Web Services 84
Standards Foundation 84
Application Platforms (JAVA EE) Hosting Web Services 88
Using Services to Compose Business Processes 89
Simple Integration Applications 89
Simple Business Processes—Orchestrating the Services 90
Choreography—Multi-Party Business Process 91
SOA Security and Transactions 93
Security Challenges in a Services Environment 93
Simple Middleware Systems Security 94
Security in Java Infrastructure 95
Microsoft.NET Security 96
Web Services Security for Loosely Coupled Services 96
Emerging Web Services Security Standards 97
Transactions in SOA 98
Web Services Transaction—A Standard 99
Infrastructure Needed for SOA 99
Service Execution and Communications 100
Types of Component Services 101
Service Containers (Execution Engines) 101
Communication Infrastructure—Under the Covers 103
Communication "Bus"—At the Core 104
MOM 105
XML Backbone (XML, Transformations, and Persistence) 105
Reliability and Scalability 106
Managing a Distributed SOA Environment 106
Options for SOA Infrastructure 107
Web Services 108
[ iii ]