HOME
SEARCH
BLOG
SCRIPTS
CONTACT
SEARCH
SEARCH
Disclaimer:
Authors have full rights over their works. Reproduction of any part of the content is prohibited without prior authorization.
×
BOOK ORACLE SOA SUITE 11GR1 DEVELOPERS GUIDE
DOWNLOAD
SUMMARY
Items Found:
676
Preface 1
Part 1: Getting Started
Chapter 1: Introduction to Oracle SOA Suite 11
Service-oriented architecture in short 11
Service 11
Orientation 12
Architecture 13
Why SOA is different 14
Terminology 15
Interoperability 15
Extension and evolution 15
Reuse in place 16
Service Component Architecture (SCA) 16
Component 17
Service 17
Reference 17
Wire 17
Composite.xml 17
Properties 18
SOA Suite components 18
Services and adapters 18
ESB – service abstraction layer 19
Oracle Service Bus and Oracle Mediator 20
Service orchestration – the BPEL process manager 21
Rules 22
Security and monitoring 22
Active monitoring – BAM 23
Business to Business – B2B 24
Complex Event Processing – CEP 24
Event delivery network 24
SOA Suite architecture 24
Top level 25
Component view 25
Implementation view 26
A recursive example 27
JDeveloper 27
Other components 27
Service repository and registry 28
BPA Suite 28
The BPM Suite 28
Portals and WebCenter 28
Enterprise manager SOA management pack 29
Summary 29
Chapter 2: Writing your First Composite 31
Installing SOA Suite 31
Writing your first BPEL process 32
Creating an application 34
Creating an SOA project 36
SOA project composite templates 37
Creating a BPEL process 38
Assigning values to variables 40
Deploying the process 42
Testing the BPEL process 45
Adding a Mediator 51
Using the Service Bus 54
Writing our first proxy service 55
Writing the Echo proxy service 56
Creating a Change Session 57
Creating a project 58
Creating the project folders 58
Creating service WSDL 60
Importing a WSDL 61
Creating our business service 64
Creating our proxy service 67
Creating message flow 69
Activating the Echo proxy service 70
Testing our proxy service 72
Summary 75
Chapter 3: Service-enabling Existing Systems 77
Types of systems 77
Web service interfaces 78
Technology interfaces 78
Application interfaces 80
Java Connector Architecture 80
Creating services from files 80
A payroll use case 81
Reading a payroll file 81
Starting the wizard 82
Naming the service 82
Identifying the operation 83
Defining the file location 85
Selecting specific files 86
Detecting that the file is available 88
Message format 89
Finishing the wizards 97
Throttling the file and FTP adapter 98
Creating a dummy message type 98
Adding an output message to the read operation 98
Using the modified interface 98
Writing a payroll file 99
Selecting the FTP connection 99
Choosing the operation 100
Selecting the file destination 100
Completing the FTP file writer service 102
Moving, copying, and deleting files 102
Generating an adapter 102
Modifying the port type 102
Modifying the binding 103
Configuring file locations through additional header properties 104
Adapter headers 105
Testing the file adapters 105
Creating services from databases 106
Writing to a database 106
Selecting the database schema 106
Identifying the operation type 107
Identifying tables to be operated on 108
Identifying the relationship between tables 109
Under the covers 110
Summary 110
Chapter 4: Loosely-coupling Services 111
Coupling 111
Number of input data items 112
Number of output data items 112
Dependencies on other services 113
Dependencies of other services on this service 113
Use of shared global data 114
Temporal dependencies 114
Reducing coupling in stateful services 115
Service abstraction tools in SOA Suite 119
Do you have a choice? 119
When to use the Mediator 120
When to use Oracle Service Bus 120
Oracle Service Bus design tools 121
Oracle Workshop for WebLogic 121
Oracle Service Bus Console 121
Service Bus overview 121
Service Bus message flow 122
Virtualizing service endpoints 122
Moving service location 123
Using Adapters in Service Bus 125
Selecting a service to call 126
Virtualizing service interfaces 128
Physical versus logical interfaces 128
Mapping service interfaces 130
Applying canonical form in the Service Bus 135
An important optimization 136
Using the Mediator for virtualization 136
Summary 138
Chapter 5: Using BPEL to Build Composite Services
and Business Processes 139
Basic structure of a BPEL process 140
Core BPEL process 140
Variables 141
Partner links 142
Messaging activities 142
Synchronous messaging 142
Asynchronous messaging 143
A simple composite service 144
Creating our StockQuote service 145
Importing StockService schema 146
Calling the external web services 148
Calling the web service 150
Assigning values to variables 153
Testing the process 154
Calling the exchange rate web service 154
Assigning constant values to variables 155
Using the expression builder 156
Asynchronous service 160
Using the wait activity 163
Improving the stock trade service 164
Creating the while loop 164
Checking the price 166
Using the switch activity 167
Summary 170
Chapter 6: Adding in Human Workflow 171
Workflow overview 171
Leave approval workflow 172
Defining the human task 173
Specifying task parameters 175
Specifying task assignment and routing policy 176
Invoking our human task from BPEL 180
Creating the user interface to process the task 181
Running the workflow process 183
Processing tasks with the worklist application 184
Improving the workflow 186
Dynamic task assignment 186
Assigning tasks to multiple users or groups 188
Cancelling or modifying a task 189
Withdrawing a task 189
Modifying a task 189
Difference between task owner and initiator 190
Requesting additional information about a task 190
Managing the assignment of tasks 191
Reassigning reportee tasks 191
Reassigning your own task 193
Delegating tasks 193
Escalating tasks 193
Using rules to automatically manage tasks 194
Setting up a sample rule 195
Summary 198
Chapter 7: Using Business Rules to Define Decision Points 199
Business rule concepts 200
XML facts 200
Decision services 201
Leave approval business rule 201
Creating a decision service 202
Implementing our business rules 204
Adding a rule to our ruleset 206
Creating the IF clause 207
Creating the Then clause 208
Calling a business rule from BPEL 211
Assigning facts 212
Using functions 213
Creating a function 214
Testing a function 219
Testing decision service functions 220
Invoking a function from within a rule 221
Using decision tables 222
Defining a bucket set 222
Creating a decision table 224
Conflict resolution 229
Summary 231
Chapter 8: Using Business Events 233
How EDN differs from traditional messaging 233
A sample use case 235
Event Delivery Network essentials 235
Events 235
Event publishers 238
Publishing an event using the Mediator component 238
Publishing an event using BPEL 240
Publishing an event using Java 243
Event subscribers 245
Consuming an event using Mediator 245
Consuming an event using BPEL 248
EDN publishing patterns with SOA Suite 250
Publishing an event on receipt of a message 251
Publishing an event on a synchronous message response 251
Publishing an event on a synchronous message request and reply 252
Publishing an event on an asynchronous response 252
Publishing an event on an asynchronous message request and reply 253
Publishing an event on an event 253
Monitoring event processing in Enterprise Manager 254
Summary 256
Chapter 9: Building Real-time Dashboards 257
How BAM differs from traditional business intelligence 257
Oracle BAM scenarios 258
BAM architecture 259
Logical view 259
Physical view 260
Acquire 260
Store 261
Process 261
Deliver 262
Steps in using BAM 263
User interface 263
Monitoring process state 264
Defining reports and data required 265
Defining data objects 265
A digression on populating data object fields 268
Instrumenting BPEL and SCA 269
Invoking the BAM adapter as a regular service 269
Invoking the BAM adapter through BPEL sensors 273
Testing the events 278
Creating a simple dashboard 278
Monitoring process status 279
Monitoring KPIs 282
Summary 283
Part 2: Putting it All Together
Chapter 10: oBay Introduction 287
oBay requirements 288
User registration 288
User login 288
Selling items 288
List a new item 289
Completing the sale 290
View account 291
Buying items 291
Search for items 292
Bidding on items 292
Defining our blueprint for SOA 294
Architecture goals 294
Typical SOA Architecture 295
Application services layer 297
Virtual services layer 297
Business services layer 299
Business process 302
User interface layer 303
One additional layer 304
Where the SOA Suite fits 306
Composite application 308
Composite granularity 308
Basic composite design pattern 311
Where to implement virtual services 312
Mediator as a proxy for a composite 312
Mediator as a proxy for an external reference 312
Using a composite as a virtual service 313
Service invocation between composite applications 314
oBay high-level architecture 316
oBay application services 316
Workflow services 316
External web services 317
oBay developed services 317
oBay internal virtual services 317
oBay business services 317
oBay business processes 318
oBay user interface 318
Summary 319
Chapter 11: Designing the Service Contract 321
Using XML Schema to define business objects 322
Modeling data in XML 322
Data decomposition 322
Data hierarchy 323
Data semantics 324
Using attributes for metadata 324
Schema guidelines 325
Element naming 325
Namespace considerations 327
Partitioning the canonical model 334
Single namespace 335
Multiple namespaces 336
Using WSDL to define business services 337
Use Document (literal) wrapped 338
Building your abstract WSDL document 338
WSDL namespace 338
Defining the 'wrapper'elements 339
Defining the 'message'elements 341
Defining the 'PortType'Element 342
Using XML Schema and the WSDL within SOA Suite 342
Sharing XML Schemas across composites 343
Defining an MDS connection 344
Importing schemas from MDS 345
Manually importing schemas 346
Deploying schemas to the SOA infrastructure 349
Importing the WSDL document into a composite 352
Sharing XML Schemas in the Service Bus 353
Importing the WSDL document into the Service Bus 354
Strategies for managing change 356
Major and minor versions 357
Service implementation versioning 357
Schema versioning 358
Changing schema location 359
Updating schema version attribute 359
Resisting changing the schema namespace 359
WSDL versioning 360
Incorporating changes to the canonical model 360
Changes to the physical contract 360
Updating the service endpoint 361
Including version identifiers in the WSDL definition 361
Managing the service lifecycle 362
Summary 363
Chapter 12: Building Entity Services Using Service
Data Objects (SDOs) 365
Service Data Objects 367
Oracle 11g R1 support for SDO 367
Oracle SOA Suite 11g SDO support 367
Implementing a Service Data Object 368
Overview of ADF Business Components 368
Creating our ListingSDO application 370
Creating our Listing Business Components 371
Defining Entity objects 372
Defining updatable View objects 373
Defining the application module 373
Testing the listing ADF-BC in JDeveloper 375
Generating the primary key using an Oracle Sequence 375
Creating the ADF extension class for EntityImpl 376
Updating default ADF base classes 377
Configuring Listing entity to use Oracle Sequence 378
Creating the ListingSDO service interface 379
Enabling master detail updates 380
Deploying the Service Data Object 381
Creating a service deployment profile 382
Setting Web Context Root 382
Registering SDO with SOA infrastructure 383
Registering the ListingSDO as an RMI service 383
Configuring global JDBC data source 384
Determining the SDO registry key 385
Using the ListingSDO in an SOA composite 386
Creating an ADF-BC Service Reference 386
Invoking the SDO from BPEL 387
Creating an entity variable 388
Creating a Listing entity 389
Binding to the Listing entity 391
Inserting a detail SDO into a master SDO 393
Updating a detail SDO 395
Deleting a detail SDO 395
Deleting a Service Data Object 395
Exposing the SDO as a business service 396
Summary 398
Chapter 13: Building Validation into Services 399
Validation within a composite 400
Using XML Schema validation 402
Strongly-typed services 402
Loosely-typed services 405
Combined approach 406
Schema validation within the Mediator 406
Using schema validation within BPEL PM 407
Using schema validation within the Service Bus 410
Validation of inbound documents 411
Validation of outbound documents 413
Using Schematron for validation 413
Overview of Schematron 414
Assertions 415
Rules 416
Patterns 417
Namespaces 417
Schema 418
Intermediate validation 418
Cross field validation 418
Date validation 420
Element present 420
Using Schematron within the Mediator 421
Using the Metadata Service to hold Schematron files 422
Returning Schematron errors 423
Using Schematron with the Service Bus 423
Putting validation in the underlying service 423
Using Business Rules for validation 424
Coding in validation 425
Returning validation failures in synchronous services 425
Defining faults 426
Custom fault codes 426
Validation failures in asynchronous services 427
Layered validation considerations 428
Dangers of over validation 428
Dangers of under validation 429
Negative coupling of validation 429
Summary 430
Chapter 14: Error Handling 431
Business faults 432
Defining faults in synchronous services 432
Defining faults in asynchronous services 433
Handling business faults in BPEL 434
Catching faults 435
Adding a catch branch 435
Throwing faults 438
Compensation 439
Defining compensation 440
Triggering a Compensation handler 440
Adding a Compensate activity 441
Returning faults 442
Asynchronous Considerations 443
Handling business faults in Mediators 443
Synchronous Mediators 444
System faults 445
Asynchronous Mediators 445
Using timeouts 446
Using the fault management framework 446
Using the fault management framework in BPEL 447
Using the fault management framework in Mediator 447
Defining a fault policies file 448
Defining a fault policy 449
Defining fault policy conditions 450
Specifying the
450
Specifying the
451
Defining fault policy actions 452
Retry action 453
Human intervention action 453
Abort action 454
Rethrow action 454
Replay scope action 455
Java action 456
Binding fault policies 457
Defining bindings on the composite 457
Binding resolution 458
Using MDS to hold fault policy files 458
Human intervention in Fusion Middleware Control Console 459
Handling faults within the Service Bus 461
Handling faults in synchronous proxy services 462
Raising an error 462
Defining an error handler 463
Handling unexpected faults 467
Returning a SOAP Fault 468
Adding a service error handler 469
Handling permanent faults 469
Handling transient faults 471
Handling faults in one-way proxy services 473
Summary 473
Chapter 15: Advanced SOA Suite Architecture 475
Relationship of infrastructure to service engines 475
Composite execution and suspension 476
BPEL dehydration events 476
Threading and message delivery in SOA Suite 476
One-way message delivery 477
Immediate execution of one-way messages in BPEL 478
Activation agent threads 479
Dispatcher threads 479
Transactions 481
BPEL transactions 481
BPEL component properties 481
BPEL partner link properties 482
BPEL activities 483
Transactions and thread wrinkles in BPEL 484
Reply handling 484
Oracle Service Bus (OSB) transactions 485
Transactional binding 485
Non-transactional binding 485
Comparison to EJB 486
Clustering 486
Load balancing 487
JMS considerations 487
Testing considerations 488
Adapter considerations 489
Metadata repository considerations 489
Database connections 489
Summary 490
Chapter 16: Message Interaction Patterns 491
Messaging within a composite 491
Processing of messages within the Mediator 493
Processing of messages within BPEL PM 493
Message addressing 494
Multi-protocol support 494
Message correlation 495
WS-Addressing 496
Request message with WS-Addressing 496
Response message with WS-Addressing 497
Using BPEL correlation sets 498
Using correlation sets for multiple process interactions 499
Defining a correlation set property 499
Defining correlation set 500
Using correlation sets 501
Defining property aliases 505
Message aggregation 507
Message routing 509
Correlating the callback 510
Specifying the reply to address 510
Creating a proxy process 511
Using the pick activity 511
Defining the correlation sets 513
Completing the aggregation 514
Scheduling services 515
Defining the schedule file 516
Using FlowN 517
Accessing branch-specific data in FlowN 518
Dynamic partner links 519
Defining a common interface 520
Defining a job partner link 521
Recycling the scheduling file 523
Summary 524
Chapter 17: Workflow Patterns 525
Managing multiple participants in a workflow 525
Using multiple assignment and routing policies 526
Determining the outcome by a group vote 526
Using multiple human tasks 529
Linking individual human tasks 530
Using the workflow API 531
Defining the order fulfillment human task 532
Specifying task parameters 532
Specifying the routing policy 534
Notification settings 535
Querying task instances 537
Defining an external reference for the Task Query Service 538
User authentication 539
Querying tasks 541
Flex fields 543
Populating flex fields 543
Accessing flex fields 544
Specifying the query predicate 545
Using flex fields in the query predicate 549
Ordering the data 550
Getting task details 551
Updating a task instance 552
Using the updateTask operation 552
Updating the task payload 553
Updating the task flex fields 554
Updating the task outcome 554
Summary 556
Chapter 18: Using Business Rules to Implement Services 557
How the rule engine works 557
Asserting facts 558
Executing the ruleset 558
Rule activation 558
Rule firing 559
Retrieving result 559
Session management 560
Debugging a ruleset 561
Debugging a decision service with a test function 561
Debugging a decision service within a composite 561
Using the print function to add additional logging 562
Using business rules to implement auction 562
Defining our XML facts 562
Defining the business rule 565
Configuring the decision function 566
Using a global variable to reference the resultset 567
Defining a global variable 568
Defining a rule to initialize a global variable 568
Writing our auction rules 571
Evaluating facts in date order 571
Checking for non-existent fact 571
Updating the bid status 573
Using inference 574
Processing the next valid bid 575
Using functions to manipulate XML facts 576
Asserting a winning bid 577
Retracting a losing bid 578
Rules to process a new winning bid 579
Validating the next bid 580
Rule to process a losing bid 581
Complete ruleset 582
Performance considerations 583
Managing state within the BPEL process 583
Summary 584
Part 3: Other Considerations
Chapter 19: Packaging and Deployment 587
The need for packaging 587
Problems with moving between environments 587
Types of interface 588
Web interfaces 588
Command-line interfaces 588
SOA Suite packaging 588
Oracle Service Bus 589
Oracle SOA composites 590
Deploying a SCA composite via the EM Console 590
Deploying a SCA composite using Ant 592
Revisions and milestones 598
The default revision 599
Enabling web service endpoint and WSDL location alteration 600
Enabling adapter configuration 602
XML schema locations 602
XSL imports 602
Composite configuration plan framework 603
Web services security 607
Oracle rules 608
Business activity monitoring 608
Commands 608
Selecting items 608
Using iCommand 609
Summary 610
Chapter 20: Testing Composite Applications 611
SOA Suite testing model 611
One-off testing 612
Testing composites 612
Testing the Service Bus 615
Automated testing 616
The composite test framework 616
Composite test suites 616
Injecting data into the test case 618
Data validation 620
Emulating components and references 622
Deploying and running test suites 623
Regression testing 625
System testing 626
Composite testing 627
Component testing 627
Unit testing 628
Performance testing 629
User interface testing 629
Summary 630
Chapter 21: Defining Security and Management Policies 631
Security and management challenges in the SOA environment 631
Evolution of security and management 632
Added complications of SOA environment 633
Security Impacts of SOA 634
Management and monitoring impacts of SOA 634
Securing services 636
Security outside the SOA Suite 636
Network security 636
Preventing message interception 636
Restricting access to services 637
Declarative security versus explicit security 637
Security as a facet 637
Security as a service 637
Security model 638
Policy enforcement points 639
Policies 639
Agents and gateways 640
Distinctive benefits of gateways and agents 641
The gateway dilemma 642
Service Bus model 642
Defining policies 643
Creating a new policy to perform authentication and authorization 644
Creating the authorization policy 645
Applying a policy through the Service Bus Console 652
Importing a policy 652
Applying OWSM policies in Service Bus 653
Final thoughts on security 654
Monitoring services 654
Monitoring service health in SOA Suite 655
System up-down status 655
System throughput view 655
Monitoring in the Service Bus 657
Creating an alert destination 658
Enabling service monitoring 659
Creating an alert rule 660
Monitoring the service 663
What makes a good SLA 663
Summary 664
Index 665