Especially coming so soon after the 11gR1 release, the updated content in this book, including areas such as exception handling, testing, security and operational automation, will surely
Trang 2Oracle SOA Suite 11g R1
Trang 3Oracle SOA Suite 11g R1 Developer's Guide
Copyright © 2010 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, nor Packt Publishing, and its dealers and 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 of 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: June 2010
Trang 5First and foremost, let me say what an honor it is to participate in the great work that Antony Reynolds and Matt Wright are doing through this Oracle SOA Suite Developer Guide The original edition of the book provided SOA developers with practical tips, code examples, and under-the-covers knowledge of Oracle SOA Suite and has received extremely positive feedback from our developer community This edition carries forward all of those benefits, but is completely updated for the 11gR1 release of Oracle SOA Suite, which brings with it not only new features and APIs, but also some very significant architectural changes
The original edition filled a very important need for the developer community, going beyond basic documentation to provide best practices and tips and tricks for Oracle SOA Suite developers Antony and Matt were just the right people to create such content, each having many years hands-on experience of enabling Oracle SOA Suite implementations for customers and partners, as well as a close working relationship with Oracle's SOA engineering and product management teams
However, I believe this update for the 11gR1 release will be even more valuable
to the developer community
With 11gR1, Oracle invested a tremendous amount of engineering work to not just integrate, but unify the components that make up the Oracle SOA Suite This was done across many areas - adapters, service bus, routing, process orchestration, business rules, B2B / partner integration, business activity monitoring, and complex event processing To achieve this unified experience, new micro-kernel based run-time architecture was created, called the Service Infrastructure, and new standards such as SCA (Service Component Architecture) were implemented These advances bring great benefits to customers around ease-of-use, manageability and scalability; however, there is naturally a learning curve with the new features and also new architectural factors that come into play For example, architects and developers will now consider not just how to decompose their requirements into Services and Processes, but also determine what level of granularity their SOA Composites should be at
Trang 6and Matt have also added critically valuable new content on advanced SOA
architecture considerations I believe that this alone will make this book uniquely useful for Oracle SOA Suite developers
Especially coming so soon after the 11gR1 release, the updated content in this
book, including areas such as exception handling, testing, security and operational automation, will surely be invaluable to anyone working with Oracle SOA Suite But even more difficult to find is the information that Matt and Antony have from working with customer implementations around edge cases, design patterns,
and how these products best fit into the full development lifecycle This kind of information comes only from real-world project experience, such as Antony and Matt have
I believe that this book will help developers realize their goals with the Oracle SOA Suite, helping them increase productivity, avoid common pitfalls, and improve ROI through more scalable, agile, and re-usable implementations On behalf of the Oracle SOA Engineering and Product Management team, as well as all the customers and partners who have asked for this book, we heartily thank Antony and Matt for the investment of their time and energy and hope that this updated edition help you achieve your goals with the Oracle SOA Suite
David Shaffer
Vice President, Product Management
Oracle Integration
david.shaffer@oracle.com
Trang 7About the Authors
Antony Reynolds has worked in the IT industry for more than 25 years,
after getting a job to maintain yield calculations for a zinc smelter while still an undergraduate After graduating from the University of Bristol with a degree in Mathematics and Computer Science he worked first for a software house, IPL
in Bath, England, before joining the travel reservations system Galileo as a
development team lead
At Galileo, he was involved in the development and maintenance of workstation products before joining the architecture group Galileo gave him the opportunity
to work in Colorado and Illinois where he developed a love for the Rockies and Chicago style deep pan pizza
He joined Oracle in 1998 as a sales consultant and has worked with a number of customers in that time, including a large retail bank's Internet banking project, for which he served as the chief design authority and security architect
After the publication of his previous book, the SOA Suite 10g Developers Guide,
Antony changed roles within Oracle, taking a position in the global customer
support organization As part of this change of position he moved from a small village outside Bristol, England to a small town outside Colorado Springs, Colorado
He is now acclimatized to living at 7,500ft and has learnt to survive on less oxygen.Within support, Antony deals with customers who have problems with large
complex SOA deployments, often working as an advisor to other support analysts Antony also has a role in training support analysts in SOA principles and details of the Oracle SOA Suite
Outside of work Antony helps with scouting at church, which gives him the
opportunity to spend time with his two eldest sons His wife and four children make sure that he also spends time with them, playing games, watching movies, and acting as an auxiliary taxi service Antony is a slow but steady runner and can often
be seen jogging up and down the trails in the shadow of the Rocky Mountains
Trang 8I would like to thank my wife Rowan, and my four very patient children, who have put up with my staying at home on family trips and working late nights in my basement office My colleagues in support have often volunteered to be reviewers
of material and have been the unwitting guinea pigs of new explanations The reviewers have provided invaluable advice and assistance, challenging me to explain myself better and expand more on key points
Matt has been a constant source of enthusiasm and energy and with Prasad and Swapna at Packt has helped keep me to some sort of schedule
Finally, thank you to the development team at Oracle under Amlan Debnath, who have enhanced and improved the SOA Suite product significantly in this release
I would particularly like to mention Clemens Utschig, who has expanded my
understanding of SOA Suite internals and without whom Chapter 15 in particular would be much less complete
Trang 9customers enable enterprise agility and operational excellence through the adoption
of emerging technologies such as Service-Oriented Architecture (SOA), Business Process Management (BPM), and Cloud Computing
With over 20 years experience in building enterprise scale distributed systems, Matt first became involved with SOA shortly after the initial submission of SOAP 1.1 to the W3C in 2000, and has worked with some of the early adopters of BPEL since its initial release in 2002 Since then, he has been engaged in some of the earliest SOA-based implementations across EMEA and APAC
Prior to Rubicon Red, Matt held various senior roles within Oracle, most recently
as Director of Product Management for Oracle Fusion Middleware in APAC, where
he was responsible for working with organizations to educate and enable them in realizing the full business benefits of SOA in solving complex business problems
As a recognized authority on SOA, Matt is a regular speaker and instructor at private and public events He also enjoys writing and publishes his own blog (http://blog.rubiconred.com) Matt holds a B.Sc (Eng) in Computer Science from Imperial College, University of London
Trang 10Well, this is the book that Antony and I originally intended to write, when we first put pen to paper (or finger to keypad) back in May 2007 At this point the 11gR1 version of the Oracle SOA Suite was still in the initial stages of development, with
the goal being to time the publication of the book with the release of 11gR1 Then in
early 2008 Oracle announced the acquisition of BEA, which it finalized in July; at this point future timings around the release of 11gR1 were very much up in the air
By this stage a significant amount of the book was already written, and we had received some really positive feedback from the initial reviews With this in mind, Antony and I took the decision to retarget the book for the current 10gR3 release and bring in the Oracle Service Bus (formally known as the BEA Aqualogic Service Bus).The first version of the book was published in March 2009, almost two years after our original start date, and much to the relief of anyone closely connected with Antony
or I Then in July, Oracle announced the release of the Oracle SOA Suite 11gR1, Antony and I blinked and then decided to write the 11gR1 version of the book, in many ways it was unfinished business!
So while this edition has been produced significantly quicker, it's still almost three years since we began this journey; a journey that we would not have been able to complete without the support of many others First, I would like to express my gratitude to everyone at Oracle who played a part; in particular to David Shaffer, Demed L'Her, Prasen Palvankar, Heidi Buelow, Manoj Das, Neil Wyse, Ralf Mueller, Mohamed Ashfar, Andy Gale and all the members of the SOA Development Team
I would also like to express my deep appreciation to everyone who has reviewed this book, the original reviewers: Phil McLaughlin, Jason Jones and James Oliver Also the reviewers who helped with this edition: Bill Hicks, Normann Hajo, Manoj Neelapu, Hans Forbrich, Shu Xuan Nie, Marc Kelderman and John Deeb Their invaluable feedback and advice not only helped to validate the overall accuracy of the content, but more importantly ensure its clarity and readability
Trang 11I would like to thank the team at Packt Publishing for all their support; especially James Lumsden, Swapna Verlekar, and Prasad Rai.
A special mention must go to John Deeb, for his continual encouragement, input and above all support in ensuring that I found time to write the book I couldn't ask for a more supportive friend and business partner
Finally, I would like to say a very, very special thank you to my wife Natasha and
my children Elliot and Kimberley, who for the past three years have been incredibly patient and supportive in allowing me to spend far too many evenings and
weekends stuck away in my office writing these books
Trang 12About the Reviewers
John Deeb is a director at Rubicon Red, an independent consulting firm helping customers enable enterprise agility and operational excellence through the adoption
of emerging technologies such as Service-Oriented Architecture (SOA), Business Process Management (BPM), and Cloud Computing
Prior to Rubicon Red, John held senior product management positions at Oracle and TIBCO Software His areas of focus include enterprise integration, business process management, and business activity monitoring John has worked with organizations
to educate and enable them in realizing the full business benefits of BPM and SOA in solving complex business problems
John holds a Bachelors degree in Cognitive Science from the University of Queensland and a Masters degree in IT from the Queensland University of Technology He is a regular speaker on middleware vision, strategy, and architecture
Hans Forbrich is a well-known member of the Oracle Community He started with Oracle products in 1984 and has kept abreast of nearly all of Oracle's Core Technologies As ACE Director, Hans has been invited to be present at Oracle Open World and various Oracle User Group meetings around the world His company, Forbrich Computer Consulting Ltd., is well established in western Canada Hans specializes in delivering Oracle University training through Oracle University and partners such as Exit Certified
Although his special interests include Oracle Spatial, OracleVM, and Oracle
Enterprise Linux, Hans has been particularly excited about the advances in Oracle SOA, Oracle Web Logic, and Oracle Grid Control
Hans has been technical reviewer for a number of Packt books, including Mastering
Oracle Scheduler in Oracle 11g Databases, Oracle 10g/11g Data and Database Management Utilities, and Oracle VM Manager 2.1.2.
I wish to thank my wife Susanne, and the Edmonton Opera, for their
patience while I worked on these reviews as well as on my own book
Trang 13specializing in Oracles' Middleware products.
Over the last 11 years at Oracle, Bill has held various positions within Sales
Consulting and Support
His current focus is on Service-oriented Architecture and Cloud Computing and how the varied Oracle Middleware product offerings can be utilized to deliver flexible, cost effective, and complete business solutions
Marc Kelderman is working for Oracle Netherlands as a solution architect He started his career at Oracle in 1995 working in consulting His broad knowledge of Oracle products and IT technology helped making the projects he is involved to be successful Since 2005, he is implementing and has designed projects based on Oracle SOA technology From that period he started to share his solutions to a broader audience via his blog (http://orasoa.blogspot.com) Marc is often called for
as a speaker at seminars
I would like to thank Matt and Antony for giving me the
opportunity to review their book Good work!
Manoj Neelapu has around nine years of experience in Java/J2EE/SOA
technologies He started his career as contractor engineer for Hindustan Aeronautics Limited (Helicopter Division) and later worked for BEA Systems as Developer Relations Engineer handling level3/4 support Before joining Oracle, he had
experience working with open-source technologies at Sudhari
As a Principal Engineer in Oracle, Manoj has expertise in various components of Oracle Fusion Middleware stack, including Oracle Service Bus, Financial Service Bus, JCA Adapters, and Oracle WebLogic Integration He currently works for SOA product lines as part of the engineering team Among other activities, he actively participates on Oracle Technology Network evangelizing, trouble-shooting, and solving customer issues
Trang 14He has more than eight years of experience in the IT industry that includes SOA technologies such as BPEL, ESB, SOAP, XML, Enterprise Java technologies, Eclipse plugins, and other areas such as C++ cross-platform development.
Since 2007, he has been working as part of the Oracle Global Customer
Support team and focuses on helping customers solve their Middleware/SOA integration problems
Before joining Oracle, he worked for IBM China in their Software Development Lab for four years as a staff software engineer She participated in several complex products involving IBM Lotus Workplace, Websphere, and the Eclipse platform before joining the Australia Bureau of Meteorology Research Center where she was responsible for the implementation of the Automated Thunderstorm Interactive Forecast System for Aviation and Defense
He holds an M.Sc in Computer Science from Beijing University of Aeronautics and Astronautics
When not reviewing SOA books ShuXuan enjoys swimming, dancing, and visiting new places
Hajo Normann is SOA/BPM architect at HP Enterprise Services since 2005 He helps motivating, designing, and implementing integration solutions using Oracle SOA Suite and BPA Suite (a BPM-ready version of ARIS from IDS Scheer) and works
on SOA/BPM principles, design guidelines, and best practices
Since 2007, Hajo is the Oracle ACE Director Since 2008, he leads together with Torsten Winterberg from OPITZ Consulting, the special interest group "DOAG SIG SOA" Hajo is a co-founder of the "Masons-of-SOA", an inter-company network, consisting of architects of Oracle Germany, Opitz Consulting, SOPERA, and HP
ES - with the mission to spread SOA knowledge and support projects/initiatives across companies The masons meet regularly for thought exchange, have written a
multi-article series on Yet Unshackled SOA Topics, have contributed to Thomas Erl's book SOA Design Patterns and are giving whole day advanced SOA workshops
on conferences
Websites: http://hajonormann.wordpress.com/, http://soacommunity.com/
Trang 16Table of Contents
Part 1: Getting Started
Service-oriented architecture in short 11
Trang 17Business to Business – B2B 24
Trang 18Chapter 3: Service-enabling Existing Systems 77
Configuring file locations through additional header properties 104
Trang 19Dependencies on other services 113
Reducing coupling in stateful services 115 Service abstraction tools in SOA Suite 119
Using the Mediator for virtualization 136
Chapter 5: Using BPEL to Build Composite Services
Trang 20Using the expression builder 156
Processing tasks with the worklist application 184
Trang 21Calling a business rule from BPEL 211
How EDN differs from traditional messaging 233
EDN publishing patterns with SOA Suite 250
Publishing an event on a synchronous message response 251Publishing an event on a synchronous message request and reply 252
Publishing an event on an asynchronous message request and reply 253
Monitoring event processing in Enterprise Manager 254
How BAM differs from traditional business intelligence 257
Trang 22Deliver 262
Part 2: Putting it All Together
Trang 23Mediator as a proxy for an external reference 312
Using XML Schema to define business objects 322
Using WSDL to define business services 337
Using XML Schema and the WSDL within SOA Suite 342
Importing the WSDL document into the Service Bus 354
Trang 24Schema versioning 358
Chapter 12: Building Entity Services Using Service
Generating the primary key using an Oracle Sequence 375
Using the ListingSDO in an SOA composite 386
Trang 25Deleting a Service Data Object 395
Putting validation in the underlying service 423
Returning validation failures in synchronous services 425
Trang 26Chapter 14: Error Handling 431
Using the fault management framework 446
Using the fault management framework in Mediator 447
Human intervention in Fusion Middleware Control Console 459
Handling faults within the Service Bus 461
Trang 27Adding a service error handler 469
Relationship of infrastructure to service engines 475
Threading and message delivery in SOA Suite 476
Trang 28Response message with WS-Addressing 497
Using correlation sets for multiple process interactions 499
Managing multiple participants in a workflow 525
Defining an external reference for the Task Query Service 538
Trang 29Ordering the data 550
Using business rules to implement auction 562
Using a global variable to reference the resultset 567
Trang 30Part 3: Other Considerations
Enabling web service endpoint and WSDL location alteration 600
Trang 31Unit testing 628
Security and management challenges in the SOA environment 631
Creating a new policy to perform authentication and authorization 644
Applying a policy through the Service Bus Console 652
Trang 32to a continually evolving business environment.
This is the vision of a standards-based Service-Oriented Architecture (SOA),
where the IT infrastructure is continuously adapted to keep up with the pace
of business change
Oracle is at the forefront of this vision, with the Oracle SOA Suite providing the most comprehensive, proven, and integrated tool kit for building SOA based applications This is no idle boast Oracle Fusion Applications (the re-implementation of
Oracle's E-Business Suite, Siebel, PeopleSoft and JD Edwards Enterprise as a single application) is probably the largest composite application being built today and it has the Oracle SOA platform at its core
Developers and Architects using the Oracle SOA Suite, whether working on
integration projects, building new bespoke applications or specializing in large implementations of Oracle Applications will need a book that provides a "hands on" guide on how best to harness and apply this technology, this book will enable them
to do just that
Trang 33What this book covers
Part 1: Getting Started
This section provides an initial introduction to the Oracle SOA Suite and its various components, and gives the reader a fast paced hands-on introduction to each of the key components in turn
Chapter 1: Introduction to Oracle SOA Suite: Gives an initial introduction to the Oracle
SOA Suite and its various components
Chapter 2: Writing Your First Composite: Provides a hands-on introduction to writing
your first SOA composite We then look at how we can expose this as a proxy service via the Oracle Service Bus
Chapter 3: Service-enabling Existing Systems: Looks at a number of key technology
adapters, and how we can use them to service-enable existing systems
Chapter 4: Loosely Coupling Services: Describes how we can use the Mediator to loosely
couple services within a composite and Oracle Service Bus to loosely couple services within the Enterprise
Chapter 5: Using BPEL to Build Composite Services and Business Processes: Covers how
to use BPEL to assemble services to build composite services and long-running business processes
Chapter 6: Adding in Human Workflow: Looks at how human tasks can be managed
through workflow activities embedded within a BPEL process
Chapter 7: Using Business Rules to Define Decision Points: Covers the new Rules Editor
in 11gR1, including Decision Tables and how we can incorporate rules as decision
points within a BPEL Process
Chapter 8: Using Business Events: Introduces the Event Delivery Network (EDN),
a key new component in Oracle SOA Suite 11g that provides a declarative way to
generate and consume business events within your SOA infrastructure
Chapter 9: Building Real-time Dashboards: Looks at how Business Activity Monitoring
(BAM) can be used to give business users a real-time view into how business
processes are performing
Trang 34Part 2: Putting it All Together
This section uses the example of an online auction site (oBay) to illustrate
how to use the various components of the SOA Suite to implement a real-world SOA-based solution
Chapter 10: oBay Introduction: Provides a blueprint for our SOA architecture,
highlighting some of the key design considerations and describes how this fits into our architecture for oBay
Chapter 11: Designing the Service Contract: Gives guidance on how to design XML
schemas and service contracts for improved agility, reuse, and interoperability
Chapter 12: Building Entity Services Using Service Data Objects (SDOs): Details how
to use ADF-Business Components to implement Service Data Objects (SDOs) and embed them as Entity Variables within a BPEL Process
Chapter 13: Building Validation into Services: Examines how we can implement
validation within a service using XSD validation, Schematron, and Business Rules,
as well as within the service
Chapter 14: Error Handling: Examines strategies for handling system and business
errors, with detailed coverage of the Composite Fault Management Framework
Chapter 15: Advanced SOA Suite Architecture: Covers advanced SOA Architecture,
including message delivery to asynchronous / synchronous composites, transaction handling, and clustering considerations
Chapter 16: Message Interaction Patterns: Covers complex messaging interactions,
including multiple requests and responses, timeouts, and message correlation (both system and business)
Chapter 17: Workflow Patterns: Looks at how to implement workflows involving
complex chains of approval and how to use the Workflow Service API
Chapter 18: Using Business Rules to Implement Services: Looks at the Rules Engine's
inferencing capabilities, and how we can use them to implement types of
business services
Part 3: Other Considerations
This final section covers other considerations such as the packaging, deployment, testing, security, and administration of SOA applications
Chapter 19: Packaging and Deployment: Examines how to package up SOA applications
for deployment into environments such as test and production
Trang 35Chapter 20: Testing Composite Applications: Looks at how to create, deploy, and run
test cases that automate the testing of composite applications
Chapter 21: Defining Security and Management Policies: Details how to use policies to
secure and administer SOA applications
What you need for this book
1 Oracle WebLogic Server 11gR1 (10.3.3) + Coherence + OEPE - Package Installer
http://www.oracle.com/technology/software/products/ias/htdocs/wls_main.html
wls1033_oepe111150_win32.exe
2 Repository Creation Utility (11.1.1.3.0)
http://www.oracle.com/technology/software/products/middleware/htdocs/
ofm_osb_generic_11.1.1.3.0_disk1_1of1.zip
4 Oracle JDeveloper 11g (11.1.1.3.0) Studio Edition
http://www.oracle.com/technology/software/products/jdev/htdocs/soft11.html
jdevstudio11113install.exe
5 XE Universal database version 10.2.0.1 or 10g database version 10.2.0.4+ or 11g database version 11.1.0.7+.
Trang 366 Enterprise Manager requires Firefox 3 or IE 7.
Firefox 3 - get it from http://portableapps.com if you want
it to co-exist peacefully with your Firefox 2 installation (keep
Firefox 2 if you use Rules Author in 10g R3.) Firefox 2 and IE 6 do not work in 11g.
Who this book is for
The primary purpose of the book is to provide developers and technical architects with a practical guide to using and applying the Oracle SOA Suite in the delivery of real world SOA-based applications
It is assumed that the reader already has a basic understanding of the concepts of
SOA, as well as some of the key standards in this space, including web services (SOAP, WSDL), XML Schemas, and XSLT (and XPath)
Conventions
In this book, you will find a number of styles of text that distinguish between
different kinds of information Here are some examples of these styles, and an explanation of their meaning
There are three styles for code Code words in text are shown as follows:
"Each schema can reference definitions in other schema's by making use of
the xsd:import directive."
A block of code will be set as follows:
Trang 37When we wish to draw your attention to a particular part of a code block, the
relevant lines or items will be made bold:
New terms and important words are introduced in a bold-type font Words that you
see on the screen, in menus or dialog boxes for example, appear in our text like this:
"The deployed test suites will appear in the EM console in the composite Unit Tests
tab, as shown in the following screenshot"
Warnings or important notes appear in a box like this
Reader feedback
Feedback from our readers is always welcome Let us know what you think about this book, what you liked or may have disliked Reader feedback is important for us
to develop titles that you really get the most out of
To send us general feedback, simply drop an email to feedback@packtpub.com, making sure to mention the book title in the subject of your message
If there is a book that you need and would like to see us publish, please
send us a note in the SUGGEST A TITLE form on www.packtpub.com
or email suggest@packtpub.com
If there is a topic that you have expertise in and you are interested in either writing
or contributing to a book, see our author guide on www.packtpub.com/authors
Customer support
Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase
Trang 38Downloading the example code for this book
You can download the example code files for all Packt books you have
purchased from your account at http://www.PacktPub.com If you
purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files emailed directly to you
Errata
Although we have taken every care to ensure the accuracy of our contents, mistakes
do happen If you find a mistake in one of our books—maybe a mistake in text or code—we would be grateful if you would report this to us By doing this you can save other readers from frustration, and help to improve subsequent versions of this book If you find any errata, report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the Submit Errata link, and entering the
details of your errata Once your errata have been verified, your submission will be accepted and the errata added to the list of existing errata The existing errata can be viewed by selecting your title from http://www.packtpub.com/support
Piracy
Piracy of copyright material on the Internet is an ongoing problem across all media
At Packt, we take the protection of our copyright and licenses very seriously If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or website name immediately so that we can pursue a remedy
Please contact us at copyright@packtpub.com with a link to the suspected
Trang 40Part 1
Getting Started
Introduction to Oracle SOA Suite Writing Your First Composite Service-enabling Existing Systems Loosely-coupling Services
Using BPEL to Build Composite Services and Business Processes Adding in Human Workflow
Using Business Rules to Define Decision Points
Using Business Events Building Real-time Dashboards