WebSphere Service Registry and Repository Handbook

groupertomatoInternet και Εφαρμογές Web

30 Ιουλ 2012 (πριν από 5 χρόνια και 2 μήνες)

4.860 εμφανίσεις


ibm.com/redbooks
WebSphere Service
Registry and Repository
Handbook
Chris Dudley
Laurent Rieu
Martin Smithson
Tapan Verma
Byron Braswell
Best practices
Sample integration scenarios
SOA governance
Front cover
WebSphere Service Registry and Repository
Handbook
March 2007
International Technical Support Organization
SG24-7386-00
© Copyright International Business Machines Corporation 2007. All rights reserved.
Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP
Schedule Contract with IBM Corp.
First Edition (March 2007)
This edition applies to Version 6, Release 0, Modification 0.1 of IBM WebSphere Service Registry
and Repository (product number 5724-N72).
Note: Before using this information and the product it supports, read the information in
“Notices” on page xv.
© Copyright IBM Corp. 2007. All rights reserved.
iii
Contents
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xv
Trademarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
The team that wrote this redbook. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii
Become a published author . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi
Comments welcome. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xxi
Part 1. SOA overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 1. Introduction to SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Service-oriented architecture - a business view . . . . . . . . . . . . . . . . . . . . . 4
1.1.1 What is a “service” in service-oriented architecture? . . . . . . . . . . . . . 5
1.1.2 The SOA Foundation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.1.3 SOA lifecycle. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 SOA reference architecture model . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.5 Supporting elements of the SOA reference architecture. . . . . . . . . . 14
1.2 Service-oriented architecture - an IT view. . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1 Definition of a service-oriented architecture . . . . . . . . . . . . . . . . . . . 18
1.2.2 SOA terms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.3 Drivers for SOA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.4 What is a service?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.2.5 Web services and SOA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.2.6 Core technologies of Web services. . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2.7 Enterprise Service Bus and SOA . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2.8 Definition of an Enterprise Service Bus. . . . . . . . . . . . . . . . . . . . . . . 30
1.2.9 Enterprise requirements for an ESB. . . . . . . . . . . . . . . . . . . . . . . . . 32
1.2.10 Service registry and repository in an SOA . . . . . . . . . . . . . . . . . . . 34
1.3 SOA governance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.1 What is SOA governance? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.3.2 SOA governance in practice. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3.3 Aspects of SOA governance. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
1.4 SOA summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Part 2. WSRR concepts and architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Chapter 2. Concepts and architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.1 Overview of WebSphere Service Registry and Repository. . . . . . . . . . . . 54
2.1.1 What is WebSphere Service Registry and Repository? . . . . . . . . . . 55
iv
WebSphere Service Registry and Repository Handbook
2.1.2 The limits of WebSphere Service Registry and Repository . . . . . . . 59
2.2 Architecture of WebSphere Service Registry and Repository. . . . . . . . . . 66
2.2.1 Overview of main components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
2.2.2 Information model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
2.2.3 Interfaces and APIs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
2.2.4 Governance enablers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Chapter 3. Information model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.2 Service description entities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.2.1 Physical documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.2.2 Logical derivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.2.3 GenericObject. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.3 Service description metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3.1 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3.2 Relationships. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
3.3.3 Classifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
3.3.4 Classifications in WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.4 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
3.5 Document types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
3.5.1 XML Schema Definition (XSD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.5.2 Web Services Description Language service definitions . . . . . . . . . 94
3.5.3 Service Component Architecture (SCA) modules. . . . . . . . . . . . . . . 96
3.5.4 XML metadata files. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.5.5 Service Policy (WS-Policy) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
3.6 XPath. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7 Service Data Objects (SDO). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.7.1 Data objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.7.2 Data graphs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
3.8 BaseObject . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
3.9 Query. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
3.9.1 Types of query . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
3.9.2 Searching and querying . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.9.3 More query examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
3.9.4 Limitations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Chapter 4. Interfaces and APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.1 Java API (EJB) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.1.1 Creating a Java client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
4.1.2 Creating content in WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.1.3 Retrieving content from WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
4.1.4 Updating content in WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4.1.5 Deleting content from WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Contents
v
4.1.6 Querying content in WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
4.2 Web services API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2.1 Creating a Web services client . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
4.2.2 Ontology Web service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.2.3 SOAP API. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.3 Web user interface (Web UI). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
4.3.1 Web user interface layout. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.3.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.3.3 View queries and navigation trees . . . . . . . . . . . . . . . . . . . . . . . . . 150
4.3.4 Collection views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
4.3.5 Detail views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
4.4 Command Line Interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
4.5 Admin (JMX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
Chapter 5. SOA governance enablers . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
5.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2 Lifecycles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
5.2.1 State machine terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
5.2.2 Lifecycle definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
5.2.3 WSRR default lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
5.2.4 GovernanceRecords. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
5.3 WSRR security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.3.1 J2EE security roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.3.2 User defined roles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
5.3.3 Permissions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
5.3.4 Extensible Access Control Markup Language (XACML). . . . . . . . . 196
5.4 WSRR plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197
5.4.1 Validators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
5.4.2 Notifiers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.4.3 Packaging plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
5.4.4 Configuring plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
5.5 Impact analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
5.5.1 Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
5.5.2 Specifying modelled dependency relationships . . . . . . . . . . . . . . . 218
5.5.3 Specifying user defined dependency relationships. . . . . . . . . . . . . 243
Part 3. Planning and installing WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Chapter 6. Possible topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
6.1 WSRR requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
6.1.1 Supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
6.1.2 Supported databases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
6.1.3 Prerequisite software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
6.1.4 Topology selection criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
vi
WebSphere Service Registry and Repository Handbook
6.2 Database topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.2.1 Local database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.2.2 Remote database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
6.3 WebSphere Application Server topologies . . . . . . . . . . . . . . . . . . . . . . . 251
6.3.1 Standalone server. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
6.3.2 Distributed server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Chapter 7. Installing and deploying. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
7.1 Install WebSphere Application Server V6.0 . . . . . . . . . . . . . . . . . . . . . . 254
7.2 Install WebSphere Application Server V6.0 refresh pack 2 (V6.0.2). . . . 254
7.3 Install WebSphere Application Server V6.0.2 fix pack 11 (V6.0.2.11) . . 255
7.4 Install DB2 Universal Database Enterprise Server Edition . . . . . . . . . . . 256
7.5 Install WebSphere Service Registry and Repository. . . . . . . . . . . . . . . . 258
7.6 Deploy WebSphere Service Registry and Repository. . . . . . . . . . . . . . . 265
7.6.1 Security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
7.7 Installing WSRR with a remote database . . . . . . . . . . . . . . . . . . . . . . . . 275
7.8 Installing WSRR using the WebSphere Application Server Network
Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
7.9 Upgrading WSRR to a new fixpack. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.9.1 Upgrade from previous version. . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.9.2 Direct Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
7.10 Installation troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
Chapter 8. Administering WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
8.1 Administration overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
8.1.1 Administrative scripting (wsadmin) . . . . . . . . . . . . . . . . . . . . . . . . . 282
8.1.2 Administrative (JMX) interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
8.1.3 Command line administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
8.1.4 Configuration data. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
8.2 WSRR configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
8.2.1 Supported configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284
8.3 Security considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.4 Administering WSRR using wsadmin . . . . . . . . . . . . . . . . . . . . . . . . . . . 285
8.4.1 Setting up wsadmin for managing WSRR. . . . . . . . . . . . . . . . . . . . 285
8.4.2 Locating the WSRR MBean with wsadmin . . . . . . . . . . . . . . . . . . . 286
8.4.3 Discovering WSRR MBean operations using wsadmin . . . . . . . . . 286
8.4.4 Discovering WSRR MBean notifications using wsadmin . . . . . . . . 289
8.4.5 Invoking operations on WSRR MBean using wsadmin. . . . . . . . . . 289
8.4.6 Troubleshooting WSRR administration with wsadmin . . . . . . . . . . 291
8.5 Administering WSRR using JMX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
8.5.1 Using ServiceRegistryRepositoryProxy.java JMX client. . . . . . . . . 293
8.5.2 Invoking WSRR MBean operations with the Java JMX client. . . . . 295
8.5.3 Exception handling with the Java JMX client . . . . . . . . . . . . . . . . . 296
Contents
vii
8.6 Administering WSRR using the CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
8.6.1 Configuring scripting environment. . . . . . . . . . . . . . . . . . . . . . . . . . 299
8.6.2 Scripting elements and objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
8.6.3 Sample scripts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
8.7 Ontology administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
8.7.1 Creating an ontology system. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
8.7.2 Removing an ontology system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
8.8 Access control administration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
8.8.1 Overview of access control within WSRR. . . . . . . . . . . . . . . . . . . . 309
8.8.2 Administering the WSRR access control policy . . . . . . . . . . . . . . . 310
8.9 Import/Export. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
8.9.1 Export . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
8.9.2 Import . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
8.9.3 Import and export with the CLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
8.9.4 Processing import / export files. . . . . . . . . . . . . . . . . . . . . . . . . . . . 316
8.10 Environment promotion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
8.10.1 Promotion mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
8.10.2 Sample script for promotion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
8.11 Administration scripts (wsadmin). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
8.11.1 Scripts for managing configuration . . . . . . . . . . . . . . . . . . . . . . . . 322
8.11.2 Scripts for managing ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . 322
8.11.3 Scripts for import and export of WSRR entities. . . . . . . . . . . . . . . 322
8.11.4 Scripts for managing access control policy. . . . . . . . . . . . . . . . . . 322
8.11.5 Scripts for managing lifecycles . . . . . . . . . . . . . . . . . . . . . . . . . . . 323
Part 4. Using WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Chapter 9. Getting started with WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . 327
9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
9.2 Navigating the Web UI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
9.2.1 Quick search. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
9.2.2 Unified Service Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
9.2.3 Service Documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.2.4 Service Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.2.5 Queries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.2.6 Classification systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.2.7 My Service Registry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
9.2.8 Administration. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
9.3 Publishing documents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
9.4 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
9.4.1 Adding a new custom property . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
9.4.2 Editing a property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340
9.4.3 Deleting a custom property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
viii
WebSphere Service Registry and Repository Handbook
9.5 Relationships. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
9.5.1 Creating a new relationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
9.5.2 Editing an existing relationship . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
9.5.3 Deleting a relationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
9.6 Classifying objects. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
9.6.1 Loading an OWL file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358
9.6.2 Browsing classifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359
9.6.3 Removing a classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
9.6.4 Classifying an entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
9.7 Searching the registry. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
9.8 Deleting artefacts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
9.9 Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
9.9.1 Defining a concept template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
9.9.2 Classifying a complex type as a template. . . . . . . . . . . . . . . . . . . . 371
9.9.3 Viewing templates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372
9.9.4 Creating a concept from a template . . . . . . . . . . . . . . . . . . . . . . . . 374
9.9.5 Viewing the details of a concept . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
9.9.6 Deleting a concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
Chapter 10. Customizing the Web UI. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
10.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
10.2 View query definitions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382
10.2.1 Using alternative views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
10.2.2 Querying by property. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
10.2.3 Querying by relationship. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386
10.2.4 Querying by classification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
10.3 Navigation trees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
10.4 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
10.4.1 A skeleton perspective definition. . . . . . . . . . . . . . . . . . . . . . . . . . 395
10.4.2 Adding name, title and roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
10.4.3 The navigation tree and weight. . . . . . . . . . . . . . . . . . . . . . . . . . . 397
10.4.4 Collection and detail view mappings. . . . . . . . . . . . . . . . . . . . . . . 398
10.4.5 Perspective resources. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400
10.5 Collection views. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
10.5.1 Collection view areas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
10.5.2 A skeleton collection view. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 402
10.5.3 Adding name, title and description . . . . . . . . . . . . . . . . . . . . . . . . 403
10.5.4 Collection view columns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 404
10.5.5 Collection view buttons. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
10.5.6 Collection view button action values. . . . . . . . . . . . . . . . . . . . . . . 410
10.5.7 Adding collection view resources . . . . . . . . . . . . . . . . . . . . . . . . . 410
10.6 Managing UI customization configurations . . . . . . . . . . . . . . . . . . . . . . 411
10.6.1 Manage configurations with MBean operations . . . . . . . . . . . . . . 412
Contents
ix
Chapter 11. Using the WSRR Eclipse plug-in. . . . . . . . . . . . . . . . . . . . . . 415
11.1 WSRR Eclipse user interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
11.2 Installing the Eclipse user interface. . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
11.3 Configuring the Eclipse user interface. . . . . . . . . . . . . . . . . . . . . . . . . . 428
11.4 Searching for objects in WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431
11.5 Importing documents into your local workspace. . . . . . . . . . . . . . . . . . 435
11.6 Publishing documents to WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 438
11.7 Adding properties to objects in WSRR . . . . . . . . . . . . . . . . . . . . . . . . . 440
11.8 Defining relationships between objects in WSRR. . . . . . . . . . . . . . . . . 442
11.9 Creating concepts for objects in WSRR . . . . . . . . . . . . . . . . . . . . . . . . 445
11.10 Creating concepts using local documents. . . . . . . . . . . . . . . . . . . . . . 448
Chapter 12. Scenarios description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 453
12.1 Services description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454
12.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
12.3 Solution overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
Chapter 13. Configuring governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
13.1 Configuring security. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
13.1.1 Modifying the J2EE security role mappings . . . . . . . . . . . . . . . . . 463
13.1.2 Removing the AllAuthenticatedUsers principal from the WSRR
Administrator role . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
13.1.3 Adding roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
13.1.4 Adding permissions to roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
13.1.5 Mapping users to roles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
13.2 Using lifecycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 476
13.2.1 Making an object governable . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
13.2.2 Transitioning the lifecycle state of a governed object. . . . . . . . . . 479
13.2.3 Removing governance from an object . . . . . . . . . . . . . . . . . . . . . 481
13.3 Developing custom plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 482
13.3.1 Developing a custom validator . . . . . . . . . . . . . . . . . . . . . . . . . . . 483
13.3.2 Developing a customer notifier . . . . . . . . . . . . . . . . . . . . . . . . . . . 486
13.3.3 Deploying custom plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 491
13.3.4 Configuring custom plugins. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494
13.4 Performing impact analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499
13.4.1 Analyzing dependencies between physical document objects. . . 500
13.4.2 Analyzing dependencies between physical document objects and
derived objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 504
13.4.3 Analyzing dependencies between derived objects. . . . . . . . . . . . 507
Chapter 14. Integrating WSRR with WebSphere ESB . . . . . . . . . . . . . . . 511
14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
14.2 WebSphere ESB overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 512
14.2.1 Key terms in WebSphere Enterprise Service Bus. . . . . . . . . . . . . 514
x
WebSphere Service Registry and Repository Handbook
14.3 Structure of WebSphere Enterprise Service Bus . . . . . . . . . . . . . . . . . 515
14.3.1 Mediations, service consumers, and service providers. . . . . . . . . 515
14.3.2 Mediation modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516
14.3.3 Mediation flow components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
14.3.4 Mediation flows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518
14.3.5 Mediation primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 520
14.4 Related technologies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
14.4.1 Service message objects . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
14.5 Endpoint Lookup mediation primitive . . . . . . . . . . . . . . . . . . . . . . . . . . 525
14.5.1 Match policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 527
14.5.2 Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
14.5.3 Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528
14.5.4 Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
14.5.5 SOAP/HTTP example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
14.5.6 SOAP/JMS example. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 534
14.5.7 SCA default binding example . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
14.5.8 Dynamic endpoint selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
14.6 Managing access from WESB to WSRR. . . . . . . . . . . . . . . . . . . . . . . . 536
14.6.1 Registry definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
14.6.2 General properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538
14.6.3 Connection properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
14.6.4 Connecting to a secure WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . 541
14.7 Integration scenario. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
14.7.1 Interaction between WESB and WSRR . . . . . . . . . . . . . . . . . . . . 544
14.7.2 Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
14.7.3 Setup. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
14.7.4 Installation of sample Web services . . . . . . . . . . . . . . . . . . . . . . . 546
14.7.5 Publish the ItemPrice service to WSRR . . . . . . . . . . . . . . . . . . . . 555
14.7.6 Configure WSRR definition in WESB . . . . . . . . . . . . . . . . . . . . . . 568
14.7.7 Scenario 1: Dynamically fetch the service endpoint . . . . . . . . . . . 574
14.7.8 Scenario 1 testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
14.7.9 Publish ItemPriceDiscounted service metadata in WSRR . . . . . . 590
14.7.10 Scenario 2: Fetch endpoint based on custom property. . . . . . . . 597
14.7.11 Scenario 2 testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 609
14.7.12 Scenario 3: Use the Lookup primitive to get both endpoints. . . . 612
14.7.13 Scenario 3 testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 620
Chapter 15. Integrating WSRR with ITCAM for SOA . . . . . . . . . . . . . . . . 625
15.1 SOA management and WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 626
15.1.1 Introduction to SOA management. . . . . . . . . . . . . . . . . . . . . . . . . 626
15.1.2 Managing the SOA Foundation architectural layers . . . . . . . . . . . 629
15.1.3 The role of a service registry and repository in SOA management631
15.2 IBM Tivoli IT Service Management. . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Contents
xi
15.3 IBM Tivoli solutions for SOA management . . . . . . . . . . . . . . . . . . . . . . 633
15.3.1 IBM Tivoli Composite Application Manager . . . . . . . . . . . . . . . . . 634
15.3.2 IBM Tivoli Enterprise Monitoring framework. . . . . . . . . . . . . . . . . 636
15.4 IBM Tivoli Composite Application Manager for SOA. . . . . . . . . . . . . . . 640
15.4.1 Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 641
15.4.2 Product features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
15.4.3 Product components. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
15.5 WSRR and ITCAM for SOA integration scenarios . . . . . . . . . . . . . . . . 654
15.6 Discovery and display of service information . . . . . . . . . . . . . . . . . . . . 654
15.6.1 Discovery of services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 655
15.6.2 Displaying of service information . . . . . . . . . . . . . . . . . . . . . . . . . 663
15.7 Service status information forwarding. . . . . . . . . . . . . . . . . . . . . . . . . . 677
15.7.1 Detection and processing of service related situations. . . . . . . . . 678
15.7.2 Propagation, capture and processing of situation events. . . . . . . 687
15.7.3 Use of service status information . . . . . . . . . . . . . . . . . . . . . . . . . 690
15.8 Discovery and display of service information: working example. . . . . . 692
15.8.1 Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692
15.8.2 Assumptions and prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . . . 692
15.8.3 Logical architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 694
15.8.4 Operational architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 697
15.8.5 Monitoring services using ITCAM for SOA . . . . . . . . . . . . . . . . . . 698
15.8.6 Understanding WSRR Discovery Library Adapter . . . . . . . . . . . . 702
15.8.7 Installing WSRR Discovery Library Adapter . . . . . . . . . . . . . . . . . 705
15.8.8 Configuring WSRR Discovery Library Adapter. . . . . . . . . . . . . . . 708
15.8.9 Using WSRR Discovery Library Adapter. . . . . . . . . . . . . . . . . . . . 714
15.8.10 Reconciling service information using ITCAM for SOA. . . . . . . . 719
15.9 Forwarding service status information - working example . . . . . . . . . . 727
15.9.1 Understanding ITCAM for SOA Event Handler. . . . . . . . . . . . . . . 728
15.9.2 Installing ITCAM for SOA Event Handler . . . . . . . . . . . . . . . . . . . 729
15.9.3 Configuring ITCAM for SOA Event Handler . . . . . . . . . . . . . . . . . 731
15.9.4 Configuring Tivoli Enterprise Monitoring Framework to send events to
the Event Handler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 746
15.9.5 Triggering situations and forwarding service status information. . 754
15.9.6 Using service status information in ESB infrastructure. . . . . . . . . 770
Chapter 16. Integrating WSRR with WMB. . . . . . . . . . . . . . . . . . . . . . . . . 771
16.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
16.2 About WebSphere Message Broker . . . . . . . . . . . . . . . . . . . . . . . . . . . 772
16.2.1 Application integration and WebSphere Message Broker. . . . . . . 772
16.2.2 WebSphere Message Broker overview. . . . . . . . . . . . . . . . . . . . . 773
16.2.3 Capabilities of WebSphere Message Broker . . . . . . . . . . . . . . . . 774
16.2.4 Components of WebSphere Message Broker. . . . . . . . . . . . . . . . 776
16.3 Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
xii
WebSphere Service Registry and Repository Handbook
16.3.1 Download the SupportPac . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
16.3.2 Prerequisites. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 779
16.3.3 Install the SupportPac. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 780
16.4 WebSphere Message Broker Client for WSRR. . . . . . . . . . . . . . . . . . . 786
16.4.1 WSRR nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
16.4.2 WMB Client cache for WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . 787
16.4.3 Client runtime access to WSRR . . . . . . . . . . . . . . . . . . . . . . . . . . 788
16.4.4 WMB Client and WSRR deployment. . . . . . . . . . . . . . . . . . . . . . . 789
16.5 WSRR nodes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
16.5.1 Introducing the nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 790
16.5.2 SRGetVirtualService node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 791
16.5.3 SRProcessVirtualService node. . . . . . . . . . . . . . . . . . . . . . . . . . . 793
16.5.4 SRDispatchVirtualService node . . . . . . . . . . . . . . . . . . . . . . . . . . 794
16.5.5 SRRetrieveITService node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 795
16.5.6 SRRetrieveEntity node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
16.6 WMB Client Cache for WSRR. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
16.6.1 Cache logical topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 800
16.6.2 Cache loading strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 801
16.6.3 Setting cache load strategy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
16.6.4 Cached items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 802
16.6.5 Cache synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
16.7 WMB Client support for SOA patterns. . . . . . . . . . . . . . . . . . . . . . . . . . 803
16.7.1 Transcoder pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803
16.7.2 Router pattern. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806
16.8 Setting up your environment for the patterns . . . . . . . . . . . . . . . . . . . . 809
16.8.1 Configuring WMB for the patterns. . . . . . . . . . . . . . . . . . . . . . . . . 810
16.8.2 Configuring WSRR for the patterns. . . . . . . . . . . . . . . . . . . . . . . . 810
16.8.3 Configure the test client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
16.8.4 Run the tests. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 813
16.8.5 Test message flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 818
16.8.6 Optional: Importing the test scenario into WMB toolkit. . . . . . . . . 823
Chapter 17. Integrating WSRR with CICS. . . . . . . . . . . . . . . . . . . . . . . . . 825
17.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 826
17.2 What is CICS?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
17.2.1 CICS product portfolio. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
17.2.2 CICS Transaction Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 827
17.2.3 CICS tools. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
17.2.4 CICS connectors. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 828
17.2.5 CICS TXSeries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 829
17.2.6 Why interoperate CICS and WebSphere? . . . . . . . . . . . . . . . . . . 829
17.2.7 CICS and WebSphere in an SOA. . . . . . . . . . . . . . . . . . . . . . . . . 831
17.3 Installation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
Contents
xiii
17.3.1 Software requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 831
17.3.2 Downloading and installing the CICS SupportPac . . . . . . . . . . . . 832
17.4 Publishing WSDL files from z/OS batch to WSRR . . . . . . . . . . . . . . . . 834
17.4.1 Running DFHWS2SR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 835
17.4.2 Job control statements for DFHWS2SR . . . . . . . . . . . . . . . . . . . . 837
17.5 Publishing WSDL files from CICS to WSRR. . . . . . . . . . . . . . . . . . . . . 842
17.5.1 Running the CWSP transaction . . . . . . . . . . . . . . . . . . . . . . . . . . 843
17.6 Retrieving WSDL files from WSRR using z/OS batch. . . . . . . . . . . . . . 847
17.6.1 Running DFHSR2WS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 848
17.6.2 Job control statements for DFHSR2WS . . . . . . . . . . . . . . . . . . . . 850
17.7 Security considerations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 854
17.7.1 Configuring SSL between the z/OS batch utilities and WSRR . . . 854
17.7.2 Configuring SSL between CICS and WSRR. . . . . . . . . . . . . . . . . 855
Part 5. Appendixes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 857
Appendix A. IBM product descriptions. . . . . . . . . . . . . . . . . . . . . . . . . . . 859
IBM products used to model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 860
IBM products used to assemble. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 862
IBM products used to deploy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 866
IBM products used to manage. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869
IBM Tivoli Composite Application Manager family products. . . . . . . . . . . 872
Appendix B. Additional material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
Locating the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
Using the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 877
System requirements for downloading the Web material . . . . . . . . . . . . . 878
How to use the Web material . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 878
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879
Abbreviations and acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 883
Related publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
Other publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 887
Online resources and product documentation . . . . . . . . . . . . . . . . . . . . . . . . 888
How to get IBM Redbooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
Help from IBM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 890
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891
xiv
WebSphere Service Registry and Repository Handbook
© Copyright IBM Corp. 2007. All rights reserved.
xv
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in other countries. Consult
your local IBM representative for information on the products and services currently available in your area.
Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product, program, or service that
does not infringe any IBM intellectual property right may be used instead. However, it is the user's
responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document.
The furnishing of this document does not give you any license to these patents. You can send license
inquiries, in writing, to:
IBM Director of Licensing, IBM Corporation, North Castle Drive, Armonk, NY 10504-1785 U.S.A.
The following paragraph does not apply to the United Kingdom or any other country where such
provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION
PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR
IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT,
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer
of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made
to the information herein; these changes will be incorporated in new editions of the publication. IBM may
make improvements and/or changes in the product(s) and/or the program(s) described in this publication at
any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any
manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the
materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without
incurring any obligation to you.
Information concerning non-IBM products was obtained from the suppliers of those products, their published
announcements or other publicly available sources. IBM has not tested those products and cannot confirm
the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on
the capabilities of non-IBM products should be addressed to the suppliers of those products.
This information contains examples of data and reports used in daily business operations. To illustrate them
as completely as possible, the examples include the names of individuals, companies, brands, and products.
All of these names are fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrate programming
techniques on various operating platforms. You may copy, modify, and distribute these sample programs in
any form without payment to IBM, for the purposes of developing, using, marketing or distributing application
programs conforming to the application programming interface for the operating platform for which the
sample programs are written. These examples have not been thoroughly tested under all conditions. IBM,
therefore, cannot guarantee or imply reliability, serviceability, or function of these programs.
xvi
WebSphere Service Registry and Repository Handbook
Trademarks
The following terms are trademarks of the International Business Machines Corporation in the United States,
other countries, or both:
alphaWorks®
developerWorks®
i5/OS®
z/OS®
z/VSE™
zSeries®
z9™
AIX®
Candle®
ClearCase®
CICS®
DataPower®
Domino®
DB2 Universal Database™
DB2®
IBM®
IMS™
MQSeries®
NetView®
OMEGAMON Monitoring Agent®
OMEGAMON®
OS/2®
Passport Advantage®
Rational®
Redbooks™
Redbooks (logo) ™
RACF®
REXX™
SupportPac™
System z™
Tivoli Enterprise™
Tivoli Enterprise Console®
Tivoli®
TXSeries®
WebSphere®
The following terms are trademarks of other companies:
Oracle, JD Edwards, PeopleSoft, Siebel, and TopLink are registered trademarks of Oracle Corporation
and/or its affiliates.
SAP NetWeaver, SAP, and SAP logos are trademarks or registered trademarks of SAP AG in Germany and
in several other countries.
Oracle, PeopleSoft, and Siebel are registered trademarks of Oracle Corporation and/or its affiliates.
ITIL is a registered trademark, and a registered community trademark of the Office of Government
Commerce, and is registered in the U.S. Patent and Trademark Office.
DataStage, are trademarks or registered trademarks of Ascential Software Corporation in the United States,
other countries, or both.
Enterprise JavaBeans, EJB, Java, Java Naming and Directory Interface, JavaBeans, JavaServer,
JavaServer Pages, JDBC, JDK, JMX, JRE, JSP, JVM, J2EE, J2SE, Solaris, Sun, Sun Microsystems, and all
Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or
both.
Active Directory, Expression, Microsoft, Visio, Windows Server, Windows, and the Windows logo are
trademarks of Microsoft Corporation in the United States, other countries, or both.
Intel, Intel logo, Intel Inside logo, and Intel Centrino logo are trademarks or registered trademarks of Intel
Corporation or its subsidiaries in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product, or service names may be trademarks or service marks of others.
© Copyright IBM Corp. 2007. All rights reserved.
xvii
Preface
Service-oriented architecture offers the promise of business agility and resilience
through reuse, loose coupling, flexibility, interoperability, integration and
governance. These are realized by separating service descriptions from their
implementations, and using this descriptive metadata across the service
lifecycle. Standards-based service metadata artefacts, such as Web Service
Description Language (WSDL), XML schema, policy or Service Component
Architecture (SCA) documents, capture the technical details of what a service
can do, how it can be invoked, or what it expects other services to do. Semantic
annotations and other metadata can be associated with these artefacts to offer
insight to potential users of the service about how and when it can be used, and
what purposes it serves.
A service registry and repository handles the management of service
descriptions and serves as the system of record for this information throughout
the complete lifecycle of a service.
IBM® WebSphere Service Registry and Repository is the master metadata
repository for service interaction endpoint descriptions. Because WebSphere
Service Registry and Repository is the integration point of service metadata, it
establishes a central point for finding and managing service metadata. Once
service metadata is placed in WebSphere Service Registry and Repository,
visibility is controlled, versions are managed, proposed changes are analyzed
and communicated, and usage is monitored.
This IBM Redbook discusses the architecture and functions of IBM WebSphere
Service Registry and Repository along with sample integration scenarios that
can be used as examples for implementing WebSphere Service Registry and
Repository in a customer service-oriented architecture environment.
The team that wrote this redbook
This redbook was produced by a team of specialists from around the world
working at the International Technical Support Organization, Raleigh Center.
xviii
WebSphere Service Registry and Repository Handbook
The team Chris, Martin, Laurent, Tapan, Byron
Byron Braswell is a is a Networking Professional at the ITSO, Raleigh Center.
He received a Bachelor of Science degree in Physics and a Master of Computer
Science degree in Computering Sciences from Texas A&M University. He writes
extensively in the areas of networking, application integration middleware, and
personal computer software. Before joining the ITSO, Byron worked in IBM
Learning Services Development in networking education development.
Chris Dudley is a Software Engineer working in the Application Integration
Middleware area for IBM Software Group in the U.K. After he received his degree
in Civil Engineering in 1999, he joined IBM Software Group and worked on
several IBM products including IBM WebSphere® MQ and IBM WebSphere
Message Broker. He worked in IBM Emerging Technology Services before
joining the IBM WebSphere Service Registry and Repository development team
at its inception in late 2005, where he has worked ever since.
Laurent Rieu is an IT Architect working for the SOA Advanced Technology team
(formerly known as Enterprise Integration Solutions) within IBM Software Group.
As part of this worldwide team Laurent is acting as an EMEA Lead Solution
Architect and is helping to drive and enhance IBM software strategy around
service-oriented architecture through customer engagements, field-based
development, asset harvesting, and thought leadership. He has eight years of
experience in the IT industry and has been working at IBM for seven years in
various industries, such as insurance, telecommunications, distribution, public
sector, and utilities. Before joining IBM Software Group, Laurent worked for IBM
Global Business Services. His areas of expertise are service-oriented
architecture, business integration, Patterns, Web services, and J2EE™ platform.
Preface
xix
Before joining IBM, he worked for one year as Technical Support for Société
Générale in New York City, USA. He graduated (MS) from Ecole Supérieure
d’Electricité in 1998.
Martin Smithson is a Senior IT Specialist working on the WebSphere Service
Registry and Repository product at IBM laboratory in Hursley, England. He has
11 years of experience working in the IT industry, five of which he spent working
as a technical consultant for the EMEA IBM Software Services for WebSphere
team. His areas of expertise include the architecture, design, and development of
J2EE applications; he is also an expert on IBM WebSphere Application Server.
He has authored several developerWorks® articles and co-authored several
Redbooks™: WebSphere Application Server V6 System Management and
Configuration Handbook, SG24-6451, WebSphere Application Server V6.1:
System Management and Configuration, SG24-7304, and CCF Connectors and
Database Connections Using WebSphere Advanced Edition Connecting
Enterprise Information Systems to the Web, SG24-5514. Martin also developed
the IBM Client Application Tool for JMS that is available for download from IBM
alphaWorks® Web site.
Tapan Verma is an Advisory IT Specialist at IBM Software Services for
WebSphere in India. He has more than 10 years of experience in the IT Industry,
five of those years working with IBM Software Group in India on WebSphere
consultancy, designing, integration, installation, configuration, and
troubleshooting. His areas of expertise include WebSphere Application Server,
WebSphere Process Server and WebSphere Enterprise Service Bus. He has
product certifications on WebSphere Application Server, WebSphere Process
Server, WebSphere Studio Application Developer and DB2®. He also conducts
training and workshops about WebSphere and related topics.
Thanks to the following people for their contributions to this project:
Carla Sadtler
Margaret Ticknor
Linda Robinson
Carolyn Sneed
Tamikia Barrow
ITSO, Raleigh Center
Mark Allman
IBM United Kingdom, Software Group, WebSphere ESB Development
Janet S. Andersen, Rohit I. Badlaney
IBM RTP, Software Group, ITCAM for SOA Development
Tom Bailey, Tim Baldwin, Rob Breeds, Steven Gallacher, Ian Heritage, Chris
Jenkins, Kevin Marsh, Jamie Orchard, Mike Ricketts, Phil Rowley, Andrew
xx
WebSphere Service Registry and Repository Handbook
Rutherford, Dave Seager, Ian Shore, Philip Taunton, Gary Whittingham, Stephen
Willoughby
IBM United Kingdom, Software Group, WebSphere Service Registry and
Repository Development
Duncan Clark, John Colgrave, Barbara McKee
IBM United Kingdom, Software Group, Service Registry Chief Architect
Kim Clark
IBM United Kingdom, Software Group, WebSphere SOA Foundation Product
Specialist
Mark Cocker, Daniel Millwood, Peter Seddon
IBM United Kingdom, Software Group, IBM CICS® Development
David Currie
IBM United Kingdom, Software Group, Senior IT Specialist, Pan-IOT Software
Lab Services Software Development Engineer
Arnauld Desprets, Michael Ellis, Bobby Woolf
IBM Software Services for WebSphere
Lisbeth Dineen
IBM Pittsburgh, Software Group, WebSphere Process Integration Technical
Enablement and Support Planning
Raymond Ellis, Subhash Kumar, Bob Patten
IBM United States, Software Group, SOA Advanced Technology US Design
Center
Guy Hochstetler
IBM USA, Software Group, Consulting I/T Specialist
David D. H. Lin
IBM Austin, Software Group, Tivoli Argus Lead Architect
Sunil Murthy
IBM San Jose, Software Group, Product Management, WSRR
Simon Rachman
IBM United Kingdom, Software Group, Service Registry Development Manager
Rosalind Radcliffe
IBM RTP, Software Group, SOA Management Architect
Preface
xxi
Become a published author
Join us for a two- to six-week residency program! Help write an IBM Redbook
dealing with specific products or solutions, while getting hands-on experience
with leading-edge technologies. You'll have the opportunity to team with IBM
technical professionals, Business Partners, and Clients.
Your efforts will help increase product acceptance and customer satisfaction. As
a bonus, you will develop a network of contacts in IBM development labs, and
increase your productivity and marketability.
Find out more about the residency program, browse the residency index, and
apply online at:
ibm.com/redbooks/residencies.html
Comments welcome
Your comments are important to us!
We want our Redbooks to be as helpful as possible. Send us your comments
about this or other Redbooks in one of the following ways:
￿ Use the online Contact us review redbook form found at:
ibm.com/redbooks
￿ Send your comments in an email to:
redbooks@us.ibm.com
￿ Mail your comments to:
IBM Corporation, International Technical Support Organization
Dept. HYTD Mail Station P099
2455 South Road
Poughkeepsie, NY 12601-5400
xxii
WebSphere Service Registry and Repository Handbook
© Copyright IBM Corp. 2007. All rights reserved.
1
Part 1
SOA overview
Part 1
2
WebSphere Service Registry and Repository Handbook
© Copyright IBM Corp. 2007. All rights reserved.
3
Chapter 1.
Introduction to SOA
Service-oriented architecture (SOA) is an approach to defining integration
architectures that are based on the concept of a
service
. Applications collaborate
by invoking each other’s services, and services can be composed into larger
sequences to implement business processes.
This chapter introduces service-oriented architecture from a business
perspective and from an IT perspective in the following sections:
￿ 1.1, “Service-oriented architecture - a business view” on page 4
￿ 1.2, “Service-oriented architecture - an IT view” on page 18
￿ 1.3, “SOA governance” on page 40
1
4
WebSphere Service Registry and Repository Handbook
1.1 Service-oriented architecture - a business view
The primary goal of service-oriented architecture (SOA) is to align the business
world with the world of information technology (IT) in a way that makes both more
effective. SOA is about the business results that can be achieved from having
better alignment between the business and IT.
SOA starts from the premise that all businesses have a business design. A
business design describes how that business works – the processes that it
performs; the organizational structure of the people and finances within that
business; the business’ near-term and long-term goals and objectives; the
economic and market influences that affect how that business achieves its goals;
the rules and policies that condition how the business operates.
Most businesses have a written form of their high level business plan – the high
level definition that states the business’ purpose. Few businesses, however, have
a written form of their business design. Many of those who have documented
their business design have trouble keeping their design up to date with what they
actually practice. Business processes evolve as businesses respond to shifts in
the marketplace, regulations, or product innovations; this evolution usually
happens without reflecting those changes in the formal design of the business.
However, even if the business design has not been documented, or even if what
is documented is now obsolete, there is nonetheless a business design in effect.
A fundamental premise of SOA is that if the business design can be transcribed
and maintained there is a potential for leveraging that captured design
information.
Even if the business design is not used to communicate between the business
and IT organizations, it can nonetheless be a valuable tool to help businesses
understand what they are doing and how. Beyond that, however, the business
design becomes an essential tool in communicating requirements between the
business and the IT organization. The business can identify those elements of
the design that should be automated and what within that design should be
performed by people, creating a blueprint of the information systems that are
created to support that automation.
By deriving the information system design from the business design you can
more easily drive changes into the information system at the rate and pace of
change in the business design. Furthermore, the information system can be used
as a catalyst for change in the business design. It is from this correspondence
that SOA delivers on the promise of more flexible businesses through more
flexible IT.
Chapter 1. Introduction to SOA
5
This correspondence is represented as the SOA Lifecycle, in which the business
process is modeled, assembled, deployed and monitored in an iterative manner.
This transforms the information system from being one of merely a “cost of doing
business” to a fundamental tool for enabling a business to be more competitive,
profitable and responsive to changes in the marketplace.
To achieve this synergism between the business and IT domains we need to
employ a number of capabilities:
￿ A formalism and language for capturing the business design
￿ A methodology for translating the business design into a set of information
system artefacts to implement that design
￿ An infrastructure for hosting those implementation artefacts that is as flexible
to changes in its marketplace as the business itself needs to be
￿ A place for retaining the correlation between the business design and the
information system that can be used to identify and fix failures in executing on
the goals and constraints of the business design
￿ A means by which we can manage the system to ensure those goals are met.
These capabilities improve the flow of the business process through SOA
Lifecycle iterations.
1.1.1 What is a “service” in service-oriented architecture?
We refer to the practice of deriving an information system design from a business
design as service-oriented architecture. The business process and the tasks
from which it is composed can be collectively thought of roughly as services.
Thus, the business design is essentially a composition of services and the
policies and conditions that must be applied to their use which form the
information system design.
However, there remains the question of “what is a service?” Is it a function within
an application? Are all application functions services? Does SOA include system
services? Coming up with a single, mathematically precise definition that applies
universally to all situations can be hugely complicated. In practice, such precision
is not necessary to achieving value and success from SOA.
An underlying premise in the application of SOA to information technology is the
principle of loose coupling – that is, avoiding or at least encapsulating temporal,
technological and organizational constraints in the information system design.
This same principle applies also to the definition of service – the rules used to
define services in one context may not be applicable in another. What is
important is that whatever definition we arrive at, it should originate from the
primary concerns and constraints of that context. As a generalization, a
service
is
6
WebSphere Service Registry and Repository Handbook
a repeatable task within a business process. So, if you can identify your
business processes, and within that, the set of tasks that you perform within the
process, then you can claim that the tasks are services and the business process
is a
composition of services
.
However, note that certain tasks can be decomposed into business processes in
their own right. The order-entry process includes, amongst other things, a task to
confirm availability of the items being ordered. The confirm-availability task is
itself a business process that includes, for example, the tasks of checking the
on-hand inventory, verifying the supply pipeline, and possibly creating a
background request and determining its availability. Thus, business processes
are themselves services; there is a principle of recursive decomposition implied
in the term service. If taken far enough we could easily claim that everything is a
service. This, obviously, is not useful – at some point treating everything as a
service would yield an incredibly inefficient over-generalization of the problem
space. You should exercise this principle of recursive decomposition only to the
extent that you legitimately need flexibility within your business design.
From this definition of service, service-orientation is a way of integrating your
business as a set of linked services. If you can define the services in each of your
vertical and horizontal lines-of-business, you can begin to link those LOBs by
composing their services into larger business processes. Likewise, you can
decompose the main services of your LOBs into a set of more basic services that
can then be easily recomposed either to change LOB processes, or to interlink
your LOBs at a lower level of their capabilities. Similarly, you can use the same
principles of composition to create links with your business partners to both
automate those relationships and to gain more efficiency from them. One
consequence of service orientation is flexibility: you gain the ability to iteratively
optimize your business design, unhampered by inflexible IT structures.
A
service-oriented architecture
, then, is an architectural style for creating an
Enterprise IT Architecture that exploits the principles of service-orientation
to achieve a tighter relationship between the business and the information
systems that support the business.
1.1.2 The SOA Foundation
What should be clear is that SOA is not just about technology. IBM views SOA as
a holistic relationship between the business and the IT organization. SOA
encompasses the tools and methodologies for capturing business design, and
using that design information to help improve the business. It also encompasses
the tools, programming model and techniques for implementing the business
design in information systems. It encompasses the middleware infrastructure for
hosting that implementation. SOA encompasses the management of that
implementation to ensure availability to the business, and to ensure efficient use
Chapter 1. Introduction to SOA
7
of resources in the execution of that implementation. It encompasses the
establishment of who has authority and the processes that are used to control
changes in the business design and its implementation in the information system.
And ultimately, SOA accelerates the time-to-value for these benefits.
The SOA Foundation is a comprehensive architecture and set of offerings,
technologies, and practices that address all of these things about SOA. To avoid
the connotation that SOA is only about technology we deliberately choose not to
use the term SOA “Platform”.
1.1.3 SOA lifecycle
The SOA lifecycle (see Figure 1-1) begins with modeling your business
(capturing your business design) including the key performance indicators of
your business goals and objectives, translating that model into an information
system design, deploying that information system, managing that deployment,
and using the results coming out of that environment to identify ways to refine the
business design. It is a premise of the lifecycle that feedback is cycled to and
from phases in iterative steps of refinement and that the model may actually be
built using reverse-engineering techniques or other means to facilitate the needs
of the business.
Figure 1-1 SOA lifecycle
8
WebSphere Service Registry and Repository Handbook
The lifecycle is then layered on a backdrop of a set of governance processes that
ensure that compliance and operational polices are enforced, and that change
occurs in a controlled fashion and with appropriate authority as envisioned by the
business design.
Model
Modeling is the process of capturing your business design from an
understanding of business requirements and objectives and translating that into
a specification of business processes, goals and assumptions – creating an
encoded model of your business.
Capturing your business design using a rigorous approach offers the potential to
gain better insight into your business, by, for example using tools to reason about
the design and its supporting rationale. In particular, we can use the model to
simulate how your business processes will actually run. A sophisticated modeling
approach lets you perform “what-if” scenarios that reflect your understanding of
the actual number of process instances, contacts, quantities, incoming traffic,
and so on, that you may experience in your business. The process can then be
simulated using those parameters to predict the effect that process will have on
your business and on your IT systems. If you do not achieve the intended results
then you can change your process definition to try to improve your results. You
can go on to refine your processes as you have modeled them to optimize your
business performance even before ever investing in an implementation of those
processes.
Your model will also capture key performance indicators – business metrics that
are important measurements of your business. This could include, for example, a
measure of the new accounts that you have opened in a given month. These key
performance indicators are input to the assembly of your application and later,
when the application is in production, collected and reported back to you. You will
be able to use that information to determine how well your business is
performing. You can use the correlation between your business design in your
actual implementation in the information system to determine whether
bottlenecks in your performance are due to limitations in your business design or
limitations in the information system that automates your design.
For more information, go to the following Web site:
http://www.ibm.com/developerworks/webservices/library/ws-soa-design1
Assemble
You can use your business design to communicate with the IT organization – to
assemble the information system artefacts that will implement the business
design. The enterprise architect working with the business analyst can begin to
convert the business design into a set of business process definitions and
Chapter 1. Introduction to SOA
9
activities deriving the required services from the activity definitions. They can
work with the software architect to flesh out the design of the services.
During the process of resolving a design and implementation of your modeled
business processes and services, you should search your existing asset
inventories – your existing programs – to find application components that
already meet your needs. Some application components will fit perfectly; some
will have to be re-factored; and some will have to be augmented to meet the
requirements of the design. These existing assets should be rendered as
services for assembly into composite applications.
It is also possible that some of your existing applications are so heavily bound
into a tight relationship with presentation and data logic and other business
functions that you simply cannot extract any re-usable componentry from those
programs. In these cases you will have to decide whether and how to rewrite
these functions as new services, and how to migrate the processes that depend
on those old programs.
Any new services required by the business design will have to be created.
Software developers should use the SOA programming model to create these
new services.
Final assembly includes applying the set of policies and conditions to control how
your applications operate in your production environment. This might include, for
example, business and government regulations, but can also include critical
operational characteristics such as packaging, localization constraints, resource
dependency, integrity control, and access protection.
For more information, go to the following Web sites:
http://www.ibm.com/developerworks/websphere/library/techarticles/051
1_flurry/0511_flurry.html
http://www.ibm.com/developerworks/webservices/library/ws-soa-enter4/
index.html
Deploy
The deploy phase of the lifecycle includes a combination of creating the hosting
environment for your applications and the actual deployment of those
applications. This includes resolving the application’s resource dependencies,
operational conditions, capacity requirements, and integrity and access
constraints.
A number of concerns are relevant to construction of the hosting environment –
including the presence of the already existing hosting infrastructure supporting
existing applications and pre-existing services. Beyond that, you need to
10
WebSphere Service Registry and Repository Handbook
consider appropriate platform offerings for hosting your user interaction logic,
business process flows, business-services, access services, and information
logic.
You need to consider the techniques you will employ for ensuring availability,
reliability, integrity, efficiency, and service ability.
For more information, go to the following Web sites:
http://www.ibm.com/developerworks/webservices/library/ws-soa-enter1/
http://www.ibm.com/developerworks/webservices/library/ws-enter5/inde
x.html
http://www.ibm.com/developerworks/library/ws-soa-enter6/index.html
Manage
Turning now to the manage phase of the lifecycle, you need to consider how to
maintain the operational environment and the policies expressed in the assembly
of the SOA applications deployed to that environment. This includes monitoring
performance of service requests and timeliness of service responses;
maintaining problem logs to detect failures in various system components;
detecting and localizing those failures; routing work around them; recovering
work affected by those failures; correcting problems; and restoring the
operational state of the system.
The manage phase also includes managing the business model – tuning the
operational environment to meet the business objectives expressed in the
business design, and measuring success or failure to meet those objectives.
SOA is distinguished from other styles of enterprise architecture by its correlation
between the business design and the software that implements that design, and
its use of policy to express the operational requirements of the business services
and processes that codify the business design. The manage phase of the
lifecycle is directly responsible for ensuring those policies are being enforced,
and for relating issues with that enforcement back to the business design.
Managing the system also involves performing routine maintenance,
administering and securing applications, resources and users, and predicting
future capacity growth to ensure that resources are available when the demands
of the business call for it.
For more information, go to the following Web sites:
http://www.ibm.com/developerworks/webservices/library/ws-sla4/
Chapter 1. Introduction to SOA
11
http://www.ibm.com/software/tivoli/products/composite-application-mg
r-soa/
http://www.ibm.com/software/tivoli/solutions/application-management/
http://www.ibm.com/software/tivoli/products/prov-mgr/
http://www.ibm.com/software/tivoli/products/identity-mgr/
Lifecycle flow
Progression through the lifecycle is not entirely linear. In fact, changes to key
performance information in the Model phase often need to be fed directly in to
the Management phase to update the operational environment. Constraints in
the Deploy phase, such as limiting assumptions about where resources are
located in the system, may condition some of the Assembly phase decisions.
And, occasionally, information technology constraints established in the
Assembly phase will limit the business design created during the Model phase –
for example, the cost of wide-area wireless communication with remote hand
held devices may be prohibitive to deploying a field force to rural locations and
therefore needs to be reflected back into the business design.
1.1.4 SOA reference architecture model
The SOA reference architecture model attempts to decompose the functional
underpinnings of your application design. Notice white space between
architecture elements in Figure 1-2 on page 12. This is intended to imply our
emphasis on maintaining a clean separation of concerns. The separation
enables us to focus attention on the special skills that are required for each
section of the overall architecture – enabling you to optimize your resources to
the skills required for a given topic. This specialization avoids the situation that
everyone on the team needs to understand everything about the entire system to
be effective at anything they do in part of it. This should lower the cost of training,
enable more efficient implementations, and enable the construction of tools
optimized for specific skill sets.
The reference architecture model attempts to be comprehensive – spanning all
of the requirements of the SOA Foundation. The parts in light-green in Figure 1-2
on page 12 are the parts in which you will deploy application software to capture
the domain logic specific to your business design. These are the boxes labeled
Interaction Services, Process Services, Information Services, Partner
Services, Business Application Services and Access Services.
The other parts of the architecture exist to assist the rest of the SOA lifecycle.
You use these other parts in the modeling of your business design, construction
12
WebSphere Service Registry and Repository Handbook
and assembly of your software, deployment of your applications, and
management of your operational system and the business design you have
implemented. You may even customize these other parts with metadata or
software you write to control or optimize those environments, but generally not
with logic that is specific to your business design.
Figure 1-2 SOA reference architecture model
Interaction Services
Interaction services are about the presentation logic of the business design –
components that support the interaction between applications and end-users.
Also we recognize that interactions with the external world are not limited to just
interactions with humans. In some cases, interaction logic orchestrates the
interface to industrial robots, vehicles, sensors, RFID devices, environmental
control systems, process control equipment, and so on.
Process Services
Process services include various forms of compositional logic – the most notable
of which are business process flows and business state machines (finite-state
machines for business composition). We consider both kinds of composition
mechanisms, plus other forms such as business rules and decision tree
processing, as well as more ad-hoc forms of composition, to be equally valid
approaches to choreographing service composition.
Integrated
environment
for design
and creation
of solution
assets
Enable collaboration
between people,
processes & information
Security
Policy
IT
Monitoring
Optimizes throughput,
availability and performance
Development
Services
Interaction Services
Information Services
Partner Services
Business App Services
Access Services
ESB
IT Service
Management
Infrastructure Services
Orchestrate and
automate business
processes
Build on a robust,
scaleable, and secure
services environment
Manages diverse
data and content in a
unified manner
Connect with trading
partners
Facilitate interactions
with existing information
and application assets
Process Services
Business Innovation & Optimization Services
Provide for better decision-making
With real-time business information
Enables interconnectivity between services
Chapter 1. Introduction to SOA
13
For more information about this topic, see the following Web sites:
http://www.ibm.com/developerworks/webservices/library/ws-choreograph
y/index.html
http://www.ibm.com/developerworks/library/ws-soa-progmodel3/
Business Application Services
Business application services implement your core business logic. These are
service components created specifically as services within a business model and
that represent the basic building blocks of your business design – services that
are not decomposable within the business model, but that can be composed to
form higher level services.
Information Services
Information services contain the data logic of your business design. This logic
exists at two levels. On the surface, information services provide access to the
persistent data of your business. This can include query statements for retrieving
the information you care about or referential integrity checks on the information
manipulated by these services. These data services are available to the business
application as services – often constructed with specific domain model
semantics so that they appear for all intents and purposes as business
application services.
For more information, go to the following Web site:
http://www.ibm.com/developerworks/webservices/library/ws-soa-ims2/in
dex.html
Access Services
Access services are dedicated to integrating existing applications and functions
into the service-oriented architecture. This includes simple wrapping of those
functions and rendering them as services (in the case where the existing function
is a good match with the semantic requirements of the business model in which it
will be used), or in more complex cases augmenting the logic of the existing
function to better meet the needs of the business design. In the latter case, the
access service may in fact invoke multiple current functions to achieve the
semantic requirements of the service. In other architectures we have often
referred to these access services as adapters.
For more information, go to the following Web site:
http://www.ibm.com/developerworks/webservices/library/ws-buildebay/
14
WebSphere Service Registry and Repository Handbook
Partner Services
Partner services capture the semantics of partner interoperability that have a
direct representation in the business design. This can, for example, include the
policies and constraints that other businesses must conform to work with your
business – including business vertical requirements such as the need to conform
to specific industry message and interchange standards like EDIFACT, SWIFT,
RosettaNet, and so on. It can involve the business logic of managing how
partners are selected, and which ones are used as a preference over others in
particular circumstances.
1.1.5 Supporting elements of the SOA reference architecture
The remaining portions of the reference architecture are directly relevant to the
SOA Foundation, and in fact may even be aspects that you can contribute code
to or customize to meet your needs, but generally will not contain functional
aspects of the business design and the application logic that goes directly to
implementing that business design. In general, these areas of the functional
architecture have more to do with the exploitation of information technology as a
means for implementing the business design. They in effect represent
information technology concerns within the overall architecture. See Figure 1-3.
Figure 1-3 SOA reference architecture model with registry and repository
Integrated
environment
for design
and creation
of solution
assets
Enable collaboration
between people,
processes & information
Security
Policy
IT
Monitoring
Optimizes throughput,
availability and performance
Development
Services
Interaction Services
Information Services
Partner Services
Business App Services
Access Services
ESB
IT Service
Management
Infrastructure Services
Registry/Repository
Orchestrate and
automate business
processes
Build on a robust,
scaleable, and secure
services environment
Manages diverse
data and content in a
unified manner
Connect with trading
partners
Facilitate interactions
with existing information
and application assets
Process Services
Business Innovation & Optimization Services
Provide for better decision-making
With real-time business information
Enables interconnectivity between services
Chapter 1. Introduction to SOA
15
Enterprise Service Bus
The Enterprise Service Bus (ESB) is a silent partner in the SOA reference
architecture. Its presence in the architecture is transparent to the services of your
SOA application. However, the presence of an ESB is fundamental to simplifying
the task of invoking services – making the use of services wherever they are
needed, independent of the details of locating those services and transporting
service requests across the network to invoke those services wherever they
reside within your enterprise.
Access services (see “Access Services” on page 13) that wrap existing
applications may exist wherever that application has been deployed – on different
servers, in different departments, in different data centers. The enterprise service
bus simplifies the task of incorporating these disparate systems so that you can
exploit them in your business design.
See 1.2.7, “Enterprise Service Bus and SOA” on page 28 for additional
information.
For more information, go to the following Web sites:
http://www.ibm.com/developerworks/websphere/library/techarticles/050
9_flurry1/0509_flurry1.html
http://www.ibm.com/developerworks/websphere/techjournal/0509_reinitz
/0509_reinitz.html
http://www.ibm.com/developerworks/webservices/library/ws-esbia/index
.html
http://www.ibm.com/developerworks/library/ws-soa-progmodel4/
Registry/Repository
Like the Enterprise Service Bus, service registry and repository is a silent partner
in the SOA reference architecture. Note the highlighted Registry/Repository
function in Figure 1-3 on page 14. Even though Figure 1-3 on page 14 makes it
appear that the service registry and repository function is part of the Enterprise
Service Bus, it is not. The service registry and repository function is a separate
entity from the Enterprise Service Bus.
A service registry and repository handles the management of service
descriptions and serves as the system of record for this information throughout
the complete lifecycle of a service. The service registry and repository is used to
find, publish, manage and subscribe to services with the assurance that the
underlying policies associated with correct usages of these services are enforced