1 learning about oracle service bus

36
Home (http://docs.oracle.com) / Middleware (../../index.html) / Oracle Service Bus (../index.html) Oracle® Fusion Middleware Developing Services with Oracle Service Bus () Table of Contents (toc.htm) Developing Services with Oracle Service Bus (toc.htm) Preface (GUIDF0FD764B73C24BA2A93804D1DBA1863B.htm#OSBDV101) What's New in This Guide (GUID30737A147CDD41FFB18CA940FDF4D98A.htm#OSBDV1910) Learning About Oracle Service Bus (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#OSBDV87888) Getting Started with the Oracle Service Bus Console (GUIDB7C638047527418F84BD0CB4CF069761.htm#OSBDV799) Getting Started with Oracle Service Bus in JDeveloper (GUID669A9F6FEE55499AAF33D2FF7DB651B4.htm#OSBDV87877) Setting up the Development Environment for JDeveloper (GUID23E430FE9A794891B09ABE84DFEA1DDA.htm#OSBDV1889) Developing Oracle Service Bus Applications in JDeveloper (GUID5C9994127BC74021882C5CCACD60A30E.htm#OSBDV87879) Creating and Configuring Project Resources (GUID1E8A757561F648A79760A0673D2CA767.htm#OSBDV2009) Creating and Configuring System Resources (GUIDAF48FF77297D48AD894A7882BA6C78E8.htm#OSBDV2080) Creating and Configuring Proxy Services (GUIDC7FA8DADE235437F87D83FE28BE98A6D.htm#OSBDV2101) Creating and Configuring Business Services (GUIDB932E48E8DDA4C3DB600CBE2C510CED6.htm#OSBDV2166) Improving Service Performance with SplitJoin (GUID6910F50FA6814A80809B4115B2548A0E.htm#OSBDV291) Working with WSDL Documents (GUID74E456BD7C5243ACA666DD07760CF81A.htm#OSBDV2234) Modeling Message Flow in Oracle Service Bus (GUIDFE2CAC5BE4DF49DEAD3C36EEAF750BFE.htm#OSBDV2351) Working with Pipelines in Oracle Service Bus Console (GUID2B8355A2CF244D6F9947B7F043FE61D3.htm#OSBDV2461) Working with Pipeline Actions in Oracle Service Bus Console (GUID97AB0C09A8CF48CDA173C2A568B8A2DE.htm#OSBDV2473) Working With Expression Editors in Oracle Service Bus Console (GUIDC9303BE4369D4D58B1CF894898B500F0.htm#OSBDV2512) Working with Pipelines in Oracle JDeveloper (GUIDCD929EBEF3AD4D2884F060F26E508123.htm#OSBDV88525) Working with Pipeline Actions in Oracle JDeveloper (GUIDAA189A965A4247D3A713F09E23AA7D95.htm#OSBDV88553) Working with Pipeline Templates (GUIDA576603C212B40FEB799FE689A77C280.htm#OSBDV88661) Transforming Data with XQuery (GUIDF1DC5B1AD85A4F3498EF757E086D328E.htm#OSBDV2266) Transforming Data with XSLT (GUID89ACD1B19A864799A3047E0D7F840DF7.htm#OSBDV89002) Mapping Data with CrossReferences (GUIDF1DED2BCB51346379FAF63F07FAB52A5.htm#OSBDV88275) Mapping Data with Domain Value Maps (GUID7EADE1E02383428D8C3738C8A1A4CD59.htm#OSBDV8901) Defining Data Structures with Message Format Language (GUID74D53E73CC214505A9E40DE1CE5C3FD6.htm#OSBDV764) Using Java Callouts and POJOs (GUID5C36B5F2503A49DA9770E5C51C225C4A.htm#OSBDV438) Using the JCA Transport and JCA Adapters (GUIDB2646D8DD53F469BBA79E007BC454C2C.htm#OSBDV910) Creating REST Services with Oracle Service Bus (GUIDC346DF7D041D4E10BE1C451F50719106.htm#OSBDV89235) Using the DSP Transport (GUID587DD60FB9714A9299C3EC079C2DA0CD.htm#OSBDV1229) Using the EJB Transport (GUIDD8E8F753AA0E449585127C52631F2C25.htm#OSBDV1009) Using HTTP and Poller Transports (GUIDE79C6BB4B1AF4541A5ECEF2A805B16DB.htm#OSBDV947) Using the JEJB Transport (GUID496F68699A434362A83C547FCB25C64C.htm#OSBDV1036) Using the JMS Transport (GUIDA0870927B8734F8D89A222DC4FC7500C.htm#OSBDV1037) Using the Local Transport (GUIDAB478B9F04714E6CBE97D01F471BA5FE.htm#OSBDV1075) Using the MQ Transport (GUID279E650625B14B5C808DDEA724657805.htm#OSBDV1117) Using the Oracle BPEL Process Manager Transport (GUID3FFFE287A44F44808984AE0749FDCEF5.htm#OSBDV1147) Using the SB Transport (GUID9AE877D3A6694787B189B1D8FB0FD3CC.htm#OSBDV997) Using the SOADIRECT Transport (GUID560C6AB95FA34EC28D5E7D27D16F4BFC.htm#OSBDV909) Using the Tuxedo Transport (GUID59E4A7ED110B4B1AAEAA8FA672101F35.htm#OSBDV1200) Using the WS Transport (GUID8F46EA5152F344119515155BCC90A467.htm#OSBDV1083) Learning About Custom Transport Providers (GUIDD44E245EE15A452C93690417ABD1D071.htm#OSBDV1237) Developing Custom Transport Providers (GUIDF3574BDEF0534015ACC24CE2473B39EA.htm#OSBDV1292) Developing Custom Transport Providers for JDeveloper (GUIDE686C261CF784E769C24BEE43014DBD4.htm#OSBDV1385) () () () 1 Learning About Oracle Service Bus This chapter provides an overview of Service Bus, its architecture and components, and how to use Service Bus to develop services. It also provides roadmaps for developing Service Bus applications and descriptions of different development approaches. This chapter includes the following topics: Oracle Service Bus Overview (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUID 7367E1011A244FC087E4DA2DD868B146) Service Bus Architectural Concepts (GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUID53531595DE504C2386F1090A5A665D18) Service Bus Components (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUID 182510BFD01F496B96E9D073B34E4722) Service Bus Messaging (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUID89F0E991 6B9948D1AA8440E641EBB28A) Using Work Managers with Service Bus (GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUIDC1A1D683DD97478BA8826DA609889435) Service Bus Security (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUID833C49DE 26744C1E9CC4E4A5C53BB626) Approaches for Designing Service Bus Services (GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUIDAF37B87C3D4B46488ED4FEB53814E9FC) Naming Guidelines for Service Bus Components (GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUID0E58E5E474144E6A9DBA5688A3901739) Viewing Service Bus Resources in a Web Browser (GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUID1366C5667692427FB23B68AF073B00C6) Accessibility Options (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUIDA1B34FF0 3F914ECEA46C41C77082AADB) Additional Resources (GUID2CFA406F66DF44F1894BCFD7EC66CEB1.htm#GUIDA1499779 89A74D5B844752776272190B) () () () (//docs.oracle.com/en/) Sign In (http://www.oracle.com/webapps/redirect/signon?nexturl=http://docs.oracle.com/middleware/1213/osb/develop/GUID2CFA406F66DF44F1894B CFD7EC66CEB1.htm#GUID2CFA406F66DF44F1894BCFD7EC66CEB1)

Upload: tushar-varshney

Post on 10-Feb-2017

559 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: 1 Learning About Oracle Service Bus

Home (http://docs.oracle.com) / Middleware (../../index.html) / Oracle Service Bus (../index.html)

Oracle® Fusion Middleware DevelopingServices with Oracle Service Bus

()

Table of Contents (toc.htm)Developing Services with Oracle Service Bus (toc.htm)Preface (GUID­F0FD764B­73C2­4BA2­A938­04D1DBA1863B.htm#OSBDV101)What's New in This Guide (GUID­30737A14­7CDD­41FF­B18C­A940FDF4D98A.htm#OSBDV1910)Learning About Oracle Service Bus (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#OSBDV87888)Getting Started with the Oracle Service Bus Console (GUID­B7C63804­7527­418F­84BD­0CB4CF069761.htm#OSBDV799)Getting Started with Oracle Service Bus in JDeveloper (GUID­669A9F6F­EE55­499A­AF33­D2FF7DB651B4.htm#OSBDV87877)Setting up the Development Environment for JDeveloper (GUID­23E430FE­9A79­4891­B09A­BE84DFEA1DDA.htm#OSBDV1889)Developing Oracle Service Bus Applications in JDeveloper (GUID­5C999412­7BC7­4021­882C­5CCACD60A30E.htm#OSBDV87879)Creating and Configuring Project Resources (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#OSBDV2009)Creating and Configuring System Resources (GUID­AF48FF77­297D­48AD­894A­7882BA6C78E8.htm#OSBDV2080)Creating and Configuring Proxy Services (GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D.htm#OSBDV2101)Creating and Configuring Business Services (GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6.htm#OSBDV2166)Improving Service Performance with Split­Join (GUID­6910F50F­A681­4A80­809B­4115B2548A0E.htm#OSBDV291)Working with WSDL Documents (GUID­74E456BD­7C52­43AC­A666­DD07760CF81A.htm#OSBDV2234)Modeling Message Flow in Oracle Service Bus (GUID­FE2CAC5B­E4DF­49DE­AD3C­36EEAF750BFE.htm#OSBDV2351)Working with Pipelines in Oracle Service Bus Console (GUID­2B8355A2­CF24­4D6F­9947­B7F043FE61D3.htm#OSBDV2461)Working with Pipeline Actions in Oracle Service Bus Console (GUID­97AB0C09­A8CF­48CD­A173­C2A568B8A2DE.htm#OSBDV2473)Working With Expression Editors in Oracle Service Bus Console (GUID­C9303BE4­369D­4D58­B1CF­894898B500F0.htm#OSBDV2512)Working with Pipelines in Oracle JDeveloper (GUID­CD929EBE­F3AD­4D28­84F0­60F26E508123.htm#OSBDV88525)Working with Pipeline Actions in Oracle JDeveloper (GUID­AA189A96­5A42­47D3­A713­F09E23AA7D95.htm#OSBDV88553)Working with Pipeline Templates (GUID­A576603C­212B­40FE­B799­FE689A77C280.htm#OSBDV88661)Transforming Data with XQuery (GUID­F1DC5B1A­D85A­4F34­98EF­757E086D328E.htm#OSBDV2266)Transforming Data with XSLT (GUID­89ACD1B1­9A86­4799­A304­7E0D7F840DF7.htm#OSBDV89002)Mapping Data with Cross­References (GUID­F1DED2BC­B513­4637­9FAF­63F07FAB52A5.htm#OSBDV88275)Mapping Data with Domain Value Maps (GUID­7EADE1E0­2383­428D­8C37­38C8A1A4CD59.htm#OSBDV8901)Defining Data Structures with Message Format Language (GUID­74D53E73­CC21­4505­A9E4­0DE1CE5C3FD6.htm#OSBDV764)Using Java Callouts and POJOs (GUID­5C36B5F2­503A­49DA­9770­E5C51C225C4A.htm#OSBDV438)Using the JCA Transport and JCA Adapters (GUID­B2646D8D­D53F­469B­BA79­E007BC454C2C.htm#OSBDV910)Creating REST Services with Oracle Service Bus (GUID­C346DF7D­041D­4E10­BE1C­451F50719106.htm#OSBDV89235)Using the DSP Transport (GUID­587DD60F­B971­4A92­99C3­EC079C2DA0CD.htm#OSBDV1229)Using the EJB Transport (GUID­D8E8F753­AA0E­4495­8512­7C52631F2C25.htm#OSBDV1009)Using HTTP and Poller Transports (GUID­E79C6BB4­B1AF­4541­A5EC­EF2A805B16DB.htm#OSBDV947)Using the JEJB Transport (GUID­496F6869­9A43­4362­A83C­547FCB25C64C.htm#OSBDV1036)Using the JMS Transport (GUID­A0870927­B873­4F8D­89A2­22DC4FC7500C.htm#OSBDV1037)Using the Local Transport (GUID­AB478B9F­0471­4E6C­BE97­D01F471BA5FE.htm#OSBDV1075)Using the MQ Transport (GUID­279E6506­25B1­4B5C­808D­DEA724657805.htm#OSBDV1117)Using the Oracle BPEL Process Manager Transport (GUID­3FFFE287­A44F­4480­8984­AE0749FDCEF5.htm#OSBDV1147)Using the SB Transport (GUID­9AE877D3­A669­4787­B189­B1D8FB0FD3CC.htm#OSBDV997)Using the SOA­DIRECT Transport (GUID­560C6AB9­5FA3­4EC2­8D5E­7D27D16F4BFC.htm#OSBDV909)Using the Tuxedo Transport (GUID­59E4A7ED­110B­4B1A­AEAA­8FA672101F35.htm#OSBDV1200)Using the WS Transport (GUID­8F46EA51­52F3­4411­9515­155BCC90A467.htm#OSBDV1083)Learning About Custom Transport Providers (GUID­D44E245E­E15A­452C­9369­0417ABD1D071.htm#OSBDV1237)Developing Custom Transport Providers (GUID­F3574BDE­F053­4015­ACC2­4CE2473B39EA.htm#OSBDV1292)Developing Custom Transport Providers for JDeveloper (GUID­E686C261­CF78­4E76­9C24­BEE43014DBD4.htm#OSBDV1385)

() () ()

1 Learning About Oracle ServiceBusThis chapter provides an overview of Service Bus, its architecture and components, andhow to use Service Bus to develop services. It also provides roadmaps for developingService Bus applications and descriptions of different development approaches.

This chapter includes the following topics:

Oracle Service Bus Overview (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­7367E101­1A24­4FC0­87E4­DA2DD868B146)

Service Bus Architectural Concepts (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­53531595­DE50­4C23­86F1­090A5A665D18)

Service Bus Components (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­182510BF­D01F­496B­96E9­D073B34E4722)

Service Bus Messaging (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­89F0E991­6B99­48D1­AA84­40E641EBB28A)

Using Work Managers with Service Bus (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­C1A1D683­DD97­478B­A882­6DA609889435)

Service Bus Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­833C49DE­2674­4C1E­9CC4­E4A5C53BB626)

Approaches for Designing Service Bus Services (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­AF37B87C­3D4B­4648­8ED4­FEB53814E9FC)

Naming Guidelines for Service Bus Components (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­0E58E5E4­7414­4E6A­9DBA­5688A3901739)

Viewing Service Bus Resources in a Web Browser (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­1366C566­7692­427F­B23B­68AF073B00C6)

Accessibility Options (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­A1B34FF0­3F91­4ECE­A46C­41C77082AADB)

Additional Resources (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­A1499779­89A7­4D5B­8447­52776272190B)

() ()()

(//docs.oracle.com/en/)

Sign In (http://www.oracle.com/webapps/redirect/signon?nexturl=http://docs.oracle.com/middleware/1213/osb/develop/GUID­2CFA406F­66DF­44F1­894B­

CFD7EC66CEB1.htm#GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1)

Page 2: 1 Learning About Oracle Service Bus

Developing Custom Transport Providers for JDeveloper (GUID­E686C261­CF78­4E76­9C24­BEE43014DBD4.htm#OSBDV1385)Packaging and Deploying a Custom Transport Provider (GUID­22AB451D­0A0F­4AE6­975C­191E6DA3D751.htm#OSBDV1465)Creating a Sample Socket Transport Provider (GUID­DBC25F49­2379­432B­BC29­7CB619FB4EEA.htm#OSBDV1430)Importing and Exporting Resources and Configurations (GUID­097674FB­B943­4124­B85B­B29BE8FCBF00.htm#OSBDV1969)Sharing Data Using the Metadata Services Repository (GUID­48D298FD­BAEE­43F4­AF62­A8A938AE6B75.htm#OSBDV88299)Working with UDDI Registries (GUID­FA2E58B2­64DF­4EE3­B5B6­EA03956AE625.htm#OSBDV392)Understanding Oracle Service Bus Security (GUID­138325F7­3B39­4738­B0FE­A0F9F5A5352D.htm#OSBDV1476)Oracle Service Bus Security FAQ (GUID­7313564A­F19B­4E95­8834­289E99D5E64E.htm#OSBDV1521)

Securing Business and Proxy Services (GUID­EBE2E5A7­973A­439E­888A­F592B77A02FA.htm#OSBDV87958)Configuring Message­Level Security for Web Services (GUID­7093431D­251A­4752­BE84­8D51A541ED9D.htm#OSBDV1624)Configuring Transport­Level Security (GUID­8F8E8838­A029­4F33­9DB9­82F746DC9516.htm#OSBDV1557)Securing Oracle Service Bus with Oracle Web Services Manager (GUID­1CE01E95­8B9B­4369­AAC9­28F4C5B6EF63.htm#OSBDV1681)Securing Oracle Service Bus Proxy and Business Services with WS­Policy (GUID­FBED8379­BD05­405C­A9A1­13FB071A053B.htm#OSBDV1599)Using SAML with Oracle Service Bus (GUID­F5FA877F­42F9­4405­AD54­6E8A0AD45064.htm#OSBDV1647)Configuring Custom Authentication (GUID­966DBF19­BFAD­4755­8F5A­D2CD12D9A933.htm#OSBDV1653)Defining Message­Level Security with .Net 2.0 (GUID­586AC331­9B0F­4C96­B3B0­70FA8089FA9B.htm#OSBDV1674)Debugging Oracle Service Bus Applications (GUID­3BB56D8B­F692­4791­A004­9345C2857056.htm#OSBDV2715)Using the Test Console (GUID­69FFAD84­BEFE­4348­8C8C­D76962616561.htm#OSBDV357)Deploying Oracle Service Bus Services (GUID­B7C64F39­EF51­4123­BCA1­6372D9E32F87.htm#OSBDV2941)Using the Oracle Service Bus Development Maven Plug­In (GUID­F7B8638E­1BE5­44A8­9590­F34E2489625C.htm#OSBDV88442)Message Context (GUID­71E8CE2C­660C­4D26­A308­FB46F0AAE820.htm#OSBDV2944)XPath Extension Functions (GUID­EDAB1104­6169­49D3­BFFD­C92718D7C577.htm#OSBDV88312)Oracle Service Bus APIs (GUID­AA6A4EAE­5F52­41B4­92A6­E0F3FACF5E2C.htm#OSBDV2771)Transport SDK Interfaces and Classes (GUID­83BFFD79­C8C9­459B­A96E­1F1B0A365132.htm#OSBDV2943)Transport SDK UML Sequence Diagrams (GUID­61B8F239­8FF0­4242­B00F­9A5B590C37A4.htm#OSBDV1698)XQuery­SQL Mapping Reference (GUID­D5F5738D­3533­4905­A89F­DFBD0E3C16F9.htm#OSBDV2757)Work Managers and Threading (GUID­7A9661AE­6FE5­4A92­A418­694A84D0B0BF.htm#OSBDV89426)

Download

1.1 Oracle Service Bus OverviewOracle Service Bus is a configuration­based, policy­driven enterprise service busdesigned for SOA life cycle management. It provides foundation capabilities for servicediscovery and intermediation, rapid service provisioning and deployment, and governance.Service Bus provides scalable and reliable service­oriented integration, servicemanagement, and traditional message brokering across heterogeneous environments. Itcombines intelligent message brokering with routing and transformation of messages,along with service monitoring and administration. Service Bus leverages industrystandards to connect services and support a high level of heterogeneity, connecting yourexisting middleware, applications, and data sources, and protecting existing investments.

Service Bus adheres to the SOA principles of building coarse­grained, loosely coupled,and standards­based services, creating a neutral container in which business functionscan connect service consumers and back­end business services, regardless of theunderlying infrastructure. The following figure illustrates the role of Service Bus as aservice intermediary in an enterprise IT SOA landscape.

Figure 1­1 Service Bus Intermediary

Description of "Figure 1­1 Service Bus Intermediary" (img_text/GUID­47DB9DC1­D0B3­48A4­8153­2870B63A174C.htm)() ()()

1.1.1 Functional AreasThe following diagram illustrates the primary functional areas of Service Bus, includingvirtualization, messaging, security, configuration, and runtime management.

Figure 1­2 Service Bus Functional Features

Page 3: 1 Learning About Oracle Service Bus

Description of "Figure 1­2 Service Bus Functional Features" (img_text/GUID­DFAF9B69­ED20­413F­B68A­86F7DF485FF8.htm)()()

1.1.2 Adaptive MessagingAdaptive messaging provides flexible message handling and manipulation between clientsand services. For example, a client sends a SOAP message over HTTP through ServiceBus, which in turn transforms the message and invokes a back­end EJB. Or a client sendsa REST/JSON message over HTTP, and Service Bus transforms the message andinvokes a back­end SOAP/XML service (or uses any of the available adapters). Adaptivemessaging also supports a variety of communication patterns such as request/response,synchronous and asynchronous, split­join, and publish/subscribe. It supports differentpatterns for inbound and outbound messages in a single message life cycle.

()()

1.1.3 Service SecurityService Bus ensures service security at all levels, based on Oracle Platform SecurityServices and Oracle Web Services Manager (OWSM) for web services. You can plug incustom or third­party security components. Built­in capabilities allow flexibility inimplementation by enabling security at the following levels:

Transport­level security, including SSL, basic authorization, and custom securitycredentials

Message­level security, including WS­Security, SAML, user ID and password, X509,signing and encryption, and custom security credentials

Console security, including single­sign­on and role­based access

Policy security

()()

1.1.4 Service Virtualization

Page 4: 1 Learning About Oracle Service Bus

Service virtualization provides agility through message manipulation and control. ServiceBus lets you flexibly control messages using validation, transformation, routing based onmessage content, parallel processing of multiple items in a message, alert triggering, anderror handling at different points in a message flow. For example, Service Bus providesthe following capabilities:

XQuery­based policies or callouts to external services for message routing.

Routing policies that apply to both point­to­point and one­to­many routing scenarios(publish). For publish, routing policies serve as subscription filters.

Routing table abstracted from pipelines, which enables modification of routes withouthaving to reconfigure pipelines.

Identity­based routing, to classify clients into user­defined groups and apply routingpolicies based on these groups.

Conditional routing, including dynamic content­based routing of messages and runtimeprotocol selection.

Database lookups, which can be used for message enrichment, routing decisions, orcustomizing the behavior of a pipeline.

Transformations using XQuery or XSLT maps.

()()

1.1.5 Configuration FrameworkThe Configuration Framework gives you full control over your Service Bus productionenvironment and its associated resources.The framework includes session management,the Test Console, and import/export tools. Service Bus configurations are managed insessions, which provide the unique ability to lock the current configuration while changesare being made. Service Bus can continue to receive and process requests for serviceswhile configuration changes are being made in a session. These changes do not affect theruntime configuration until you activate the current session. This way, ongoing changescan be made without disrupting services. Configuration and resource changes you makeare tracked, and you can undo or redo changes, resolve conflicts, maintain dependenciesamong resources, and test changes in the Test Console.

The built­in Test Console is a browser­based test environment used to validate resourcesas well as inline expressions used in pipelines or split­joins. Use the Test Console toconfigure the test object (such as a pipeline, business service, or XQuery expression),execute the test, and view test results. It allows message flow tracing when testing aservice, to examine the state of the message at specific trace points.

Service Bus allows the propagation of configuration data from environment to environmentby exporting and importing resources and projects. For example, you can transferconfigurations from a development domain to a test domain to a production domain. Theimport and export features let you maintain resource dependencies and preserveenvironment values between environments.

The Configuration Framework also includes a metadata­driven interface for servicediscovery, publishing, and synchronization using UDDI registries, including automaticimport and synchronization of services with UDDI.

()

Page 5: 1 Learning About Oracle Service Bus

()

1.1.6 Service ManagementService management includes a powerful set of runtime configuration tools for monitoring,alerting, and reporting. Service Bus is fully integrated with Fusion Middleware Control forSOA­wide service management. Service management lets you do the following:

Gather statistics about message invocations, errors, performance characteristics,messages passed, and SLA violations.

Send SLA and pipeline alerts as SNMP traps, enabling integration with third­partyenterprise system management solutions.

Log selected parts of messages for both systems operations and business auditingpurposes.

Search message reports by extracting key information from a message, which can thenbe used as a search index.

Integrate with widely adopted third­party reporting tools as well as custom enterprisesystem management frameworks.

Support open interfaces for operational and deployment customization, JMX monitoringinterfaces, and SNMP Alerts.

()()

1.2 Service Bus Architectural ConceptsService Bus is an intermediary that processes incoming service request messages,determines routing logic, and transforms those messages for compatibility with otherservice consumers. It receives messages through a transport protocol such as HTTP(S),JMS, File, or FTP, and sends messages through the same or a different transport protocol.Service response messages follow the inverse path. Message processing by Service Busis driven by metadata, specified in the message flow definition (pipeline).

Service Bus provides message delivery services based on standards including SOAP,HTTP, and Java Messaging Service (JMS). It supports XML as a native data type, whilealso offering alternatives for handling other data types. Service Bus lets you establishloose coupling between service clients and business services, while maintaining acentralized point of security control and monitoring. It stores persistent policy, service, andrelated resource configurations in metadata, which can be customized and propagatedfrom development through staging to production environments. The message­brokeringengine accesses this configuration information from its metadata cache.

() ()()

1.2.1 Message ProcessingMessages can contain data or status information about application processes, as well asinstructions for the recipient. Service Bus lets you route messages based on their contentsand perform transformations on that content. The processing happens through thetransport and binding layers of Service Bus.

Page 6: 1 Learning About Oracle Service Bus

The processing of messages through Service Bus occurs in the following sequence ofevents:

1. A client sends a message to Service Bus using a specific transport protocol.

2. A transport provider processes the inbound message, handling communication with theservice client endpoint and acting as the entry point for messages into Service Bus.

3. The binding layer packs and unpacks messages, handles message security, and handsmessages off to the pipeline.

4. The pipeline performs any transformation, validation, logging, and reporting, and thenroutes the message to an endpoint (either a business service or another proxy service).

5. Service Bus processes the response message in a similar manner as the above steps.

The following figure illustrates the flow of data through Service Bus, from inboundendpoint (proxy service) to outbound endpoint (in this case, a business service). Thetransports listed are a subset of those available through Service Bus.

Figure 1­3 Oracle Service Bus Message Processing

Description of "Figure 1­3 Oracle Service Bus Message Processing" (img_text/GUID­613D2B6D­E693­4EC0­8C53­2AAF384F1263.htm)

The following sections describe each layer involved in this message processing.

()()

1.2.2 Proxy Service Role in Message ProcessingProxy services are the interfaces that service consumers use to connect with managedback­end services. Proxy services are definitions of intermediary web services thatService Bus implements locally. The proxy service interface is defined in terms of WebServices Description Language (WSDL) or Web Application Definition Language (WADL)and the type of transport it uses.

()()

1.2.3 Transport Layer (Inbound)The inbound transport layer is the communication layer between client services (or serviceconsumers) and Service Bus. It is responsible for handling communication with the serviceclient endpoint and acts as the entry point for messages into Service Bus. The inboundtransport layer primarily deals with raw bytes of message data in the form of input/outputstreams. The transport layer provides support for compatible transport protocols, including

Page 7: 1 Learning About Oracle Service Bus

HTTP(S), JMS, FTP, File, email, and others. It is not involved in data processing but isresponsible for returning response messages to service consumers and handles metadatafor messages, including endpoint URIs, transport headers, and so on.

()()

1.2.4 Binding LayerThe binding layer for both inbound and outbound performs the following functions inmessage processing:

Packs and unpacks messages as necessary

Handles security for messages

Hands messages off to start the pipeline (request and response)

()()

1.2.5 Pipeline Role in Message ProcessingA pipeline defines the flow of request and response messages through Service Bus,including routing, transformations, validations, publishing, reporting and exceptionmanagement. It accepts messages from the binding layer of the proxy service, performsany transformations or validations, and then forwards the message to the binding layer ofthe outbound service, either a proxy or business service. Along the way, the pipeline canmake callouts to other services, Java objects, or POJOs.

()()

1.2.6 Transport Layer (Outbound)The outbound transport layer is responsible for the communication between externalservices (or service producers) and Service Bus. It is responsible for moving messagesfrom Service Bus to the business service or proxy service and for receiving the responsefrom the services. At the transport level, the message data are in raw bytes in the form ofinput/output streams. The outbound transport layer provides support for compatibletransport protocols, including HTTP(S), JMS, FTP, File, email, and others. It is notinvolved in data processing but handles metadata for messages, including endpoint URIs,transport headers, and so on.

()()

1.2.7 Business Service Role in Message ProcessingBusiness services are the interfaces that connect with service producers. The businessservice interface is defined in terms of Web Services Description Language (WSDL) orWeb Application Definition Language (WADL) and the type of transport it uses.

()()

1.3 Service Bus ComponentsService Bus routes message between external services (such as enterprise services anddatabases) and service clients (such as presentation applications or other businessservices). The service and flow components you create in a Service Bus project rely on

Page 8: 1 Learning About Oracle Service Bus

local and system resources in Service Bus to define additional information like user namesand passwords, keystore credentials, server connections, and transformations.

Service Bus resources are reusable definitions of entities that typically include metadatafor those entities. Resources can be used by multiple services and provide standardizeddefinitions or descriptions for use across an enterprise or department.

()()

1.3.1 Service ComponentsProxy services and business services define the endpoints in a Service Bus system. Theyinclude the binding and transport layers, and are the points at which Service Buscommunicates with external services, including producers and consumers.

()()

1.3.1.1 Proxy Services

Proxy services are Service Bus definitions of generic intermediary web services that arehosted locally on Service Bus. A proxy service communicates with external servicesthrough interfaces, which may or may not be identical to that of a service provider orservice consumer business service. Through pipelines, you can route messages from aproxy service to multiple business services using their configured independent interfaces.

A proxy service's configuration includes its interface (service type), the type andconfiguration of the transport it uses to connect with client services, security requirements,and service level agreement (SLA) alert rules. When a proxy service interfaces withmultiple business services, its associated pipeline is configured to route messages to theappropriate business service and map the message data into the format required by thebusiness service's interface.

For more information, see Creating and Configuring Proxy Services (GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D.htm#GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D).

()()

1.3.1.2 Business Services

Business services are Service Bus definitions of the enterprise services that exchangemessages during business processes. A business service's configuration includes itsinterface (service type), the type and configuration of transport it uses to connect withservice producers, security requirements, message handling, performance tuning, andSLA alert rules. A business service also specifies the endpoint URI, and can specifymultiple endpoints for load balancing and high availability. A business service definition issimilar to that of a proxy service, but with additional options for message handling,endpoint throttling, and result caching, which help improve performance.

You can create a service account to provide authentication when connecting to a businessservice. It acts as an alias resource for the required user name and password pair. Youcan also use Oracle WebLogic Server to directly manage security credentials for abusiness service requiring credential­level validation.

For more information, see Creating and Configuring Business Services (GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6.htm#GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6).

()()

1.3.2 Message Flows

Page 9: 1 Learning About Oracle Service Bus

A message flow defines how messages are routed, validated, and transformed betweenservices. The message flow is typically defined in a pipeline, but can also be defined in asplit­join for parallel processing.

()()

1.3.2.1 Pipelines

Pipelines define message routing and transformation logic, as well as message handlingoptions. This logic includes activities such as transformation, publishing, logging,reporting, alerts, and exception management. Each of these activities are configured asindividual actions within the message flow. Both JDeveloper and the Oracle Service BusConsole provide graphical modeling tools to help you model your pipelines.

The following primary elements are used to construct a pipeline:

A start node.

A pipeline pair, one for the request and one for the response. Each pipeline in a pairconsists of a sequence of stages that specify actions to perform during request orresponse processing.

A branch node, to branch based on the values in designated parts of the message ormessage context, or to branch based on the operation invoked.

A route node, to define the message destination. The default route node is an echonode that reflects the request as the response.

An error handler, which can be attached to any node or stage to handle potential errorsat that location.

At a minimum, a start node and route node are required. While an error handler is notrequired, it is recommended. If an instance fails and no error handler is defined, the erroris not recoverable. Pipeline elements can be combined in arbitrary ways to form a treestructure with the start node always (and only) occurring as the root of the tree and theroute nodes. The last nodes in a branch (leaf nodes) can be route nodes or echo nodes.

Since a pipeline can route messages to multiple business services, a pipeline can beconfigured with an interface that is independent of the business services it communicateswith. Using generic templates, the pipeline can be a configured to dynamically routemessages to appropriate business services based on content­based routing logic. Apipeline can also map message data into appropriate protocol formats required by theend­point business service, allowing for dynamic runtime protocol switching.

For more information, see Working with Oracle Service Bus Pipelines (GUID­039D0931­049A­4F0B­87AA­0C8EE4DFB6E5.htm)

()()

1.3.2.1.1 How Data Flows Through a Pipeline

In a pipeline, the request message starts at the start node and follows a path to a leafnode, executing actions in the request pipelines. If the leaf is a route node, a response isgenerated. If the leaf is an echo node, the request is also considered to be the response.The response follows the inverse path in the tree, skipping actions in the branch nodes butexecuting actions in response pipelines. A response is then sent from the top of the tree ifthe interface or operation was request/response; otherwise the response is discarded.

Page 10: 1 Learning About Oracle Service Bus

A set of transformations that affects context variables can be defined before the messageis sent to the selected endpoint or after the response is received. A web services calloutcan be an alternative to an XQuery or XSLT transformation to set the context variables.

()()

1.3.2.1.2 Message Context

The context of a pipeline is a set of XML variables that are shared across the request flowand response flow. New variables can be dynamically added or deleted to the context, andthese variables can be shared across multiple pipelines or used locally within one pipeline.Predefined context variables contain information about the message, transport headers,security principles, metadata for the current pipeline, and metadata for the primary routingand publishing services invoked by the pipeline.

The context can be read and modified by XQuery or XSLT expressions, and updated bytransformation and in­place update actions. The core of the context contains the variables$header , $body , and $attachments . These wrapper variables contain the SimpleObject Access Protocol (SOAP) header elements, SOAP body element, and MultipurposeInternet Mail Extensions (MIME) attachments, respectively. The context gives theimpression that all messages are SOAP messages, and non­SOAP messages aremapped to this paradigm.

()()

1.3.2.2 Split­Joins

The split­join message flow improves service performance by splitting a message payloadand processing multiple operations in a message simultaneously and then combining, orjoining, all results. A standard pipeline processes operations one after another.

The following primary elements are used to construct a message flow in a split­join:

A start node, which contains the request and response variables introspected from theWSDL operation.

A receive node, to receive incoming request messages.

A reply node, to send response messages.

A scope, which is a container that creates a context that influences the behavior of itsenclosed elements.

A parallel node, which is a placeholder for a fixed number of processing branches, eachwith its own scope.

The available elements can be combined in arbitrary ways to form a tree structure with thestart node always (and only) occurring as the root of the tree. The last node is always thereply.

For more information, see Improving Service Performance with Split­Join (GUID­6910F50F­A681­4A80­809B­4115B2548A0E.htm#GUID­6910F50F­A681­4A80­809B­4115B2548A0E).

()()

1.3.3 Transports, Adapters, and Bindings

Page 11: 1 Learning About Oracle Service Bus

Service Bus provides connectivity to external systems through a variety of transports,each of which is specific to a type of external system. Service Bus supports optimizeddatabase queries, and interoperability with web service integration technologies such as.NET, IBM MQ Series, IBM WebSphere, Apache Axis, and iWay adapters. The JCAtransport expands the list of supported technologies by letting you connect to externalsystems using Oracle JCA technology and applications adapters. Additionally, Service Bussupports the REST binding, allowing you to connect to RESTful services using the HTTPtransport.

You configure a transport's processing and connectivity information directly within a proxyor business service; you configure Oracle adapters using a configuration wizard specific toeach adapter.

For more information, see Working with JCA Adapters, Transports, and Bindings (GUID­ABAFDA2E­2194­4970­BCA0­9C642AE8613F.htm)

()()

1.3.3.1 Supported Transport Protocols

Service Bus supports the following transport protocols:

DSP (Oracle Data Service Integrator)

EJB/RMI

Email (POP/SMTP/IMAP)

File

(S)FTP

HTTP(S)

JCA

JEJB

JMS (including MQ using JMS, and JMS/XA)

Local (Oracle proprietary for inter­ESB communication)

MQ (WebSphere MQ)

SB (RMI support)

SOA­DIRECT (Oracle SOA Suite) and BPEL

Tuxedo (Oracle Tuxedo)

WS (Web Services Reliable Messaging

Service Bus also provides the Custom Transport SDK so you can create new transports toconnect with systems not covered above.

()()

1.3.3.2 Service Types

Service Bus supports a variety of service types ranging from conventional web services(using XML or SOAP bindings in WSDL files) to non­XML (generic) services. You selectand configure the service type when you create a business or proxy service. The availableservice types for a proxy or business service depend on the transport being used. ServiceBus supports request and response as well as one­way paradigms, for both the HTTP andthe JMS asynchronous transport protocols. If the underlying transport supports ordereddelivery of messages, Service Bus also extends the same support.

Page 12: 1 Learning About Oracle Service Bus

Not all service types can be used with all transport protocols. The following table showsthe service types and the transport protocols they support.

ServiceType Transport Protocols

WSDLBasedService

BPEL­10g, DSP, HTTP(S), JCA, JMS, Local, SB, SOA­DIRECT, WS

JMS request and JMS response are not supported if WS­Security isenabled.

Any SOAPService(non­WSDL)

HTTP(S), DSP, JMS, Local, SB

JMS request and JMS response are not supported if WS­Security isenabled.

Any XMLService(non­WSDL)

DSP, email, File, FTP, HTTP(S), JMS, Local, MQ, SB, SFTP, Tuxedo

HTTP GET is only supported for XML with no WSDL.

MessagingService

email, File, FTP, HTTP(S), JMS, Local, MQ, SFTP, Tuxedo

Business services using the email, File, FTP, or SFTP transportsupport one­way messaging services only; the response messagetype should be none .

The BPEL­10g, DSP, EJB, and SOA­DIRECT transports are only supported with businessservices.

()()

1.3.4 Transformation ResourcesIn addition to creating inline XQuery expressions directly in message flow actions, you canreference transformation maps that define more complex mappings between source anddestination services. When disparate message data types exist between source anddestination services, data mapping ensures service compatibility. Service Bus supportsdata mapping using XQuery and eXtensible Stylesheet Language Transformation (XSLT)standards, along with XPath expressions. You can also use cross reference tables anddomain value maps to map field values between services.

Messages can be transformed in the following ways:

Using XQuery or XSLT to reformat the message structure.

Manipulating message content by adding, removing, or replacing certain data elements.

Using cross reference or domain value map tables to map entities across systems.

()()

1.3.4.1 XQuery Mappings

Page 13: 1 Learning About Oracle Service Bus

The XQuery Mapper in JDeveloper is a graphical tool that lets you define mappings thattransform data between XML, non­XML, and Java data types so you can rapidly integrateheterogeneous applications. For example, XML data that is valid against one schema canbe converted to XML that is valid against a different schema. The data can be based onXML schemas, Web Service Definition Language (WSDL) files, and Message FormatLanguage (MFL) files. You can create an XQuery mapping in JDeveloper, and then uploadthe .xqy file generated by the mapper to an XQuery resource in the Oracle Service BusConsole. XQuery mappings are stored in XQuery resources in Service Bus, which can bereferenced from the expressions you create using the expression editors in a messageflow action.

The output of the XQuery Mapper is a query in the XQuery language, which is defined bythe World Wide Web Consortium (W3C). For more information about W3C and theXQuery language, see http://www.w3.org/XML/Query/ (http://www.w3.org/XML/Query/).

For more information, see Transforming Data with XQuery (GUID­F1DC5B1A­D85A­4F34­98EF­757E086D328E.htm#GUID­F1DC5B1A­D85A­4F34­98EF­757E086D328E) and "CreatingTransformations with the XQuery Mapper (../../soasuite/develop­soa/xquery­mapper­transforms.htm#SOASE88074)" in Developing SOA Applications with Oracle SOA Suite.

()()

1.3.4.2 XSLT Mappings

eXtensible Stylesheet Language Transformation (XSLT) maps describe XML­to­XMLmappings. The XSLT mapper in JDeveloper is a graphical tool that lets you definemappings between schema root elements, Web Services Description Language (WSDL)message parts, or WSDL messages. Schema root elements can come from XSD schemafiles or WSDL files. Only those WSDL messages that contain a single message part canbe mapped directly.

The XSLT Mapper in JDeveloper lets you define transformations that apply to the wholemessage body to convert messages from one XML schema to another, enabling datainterchange among applications that use different schemas. You can create an XSLTmapping in JDeveloper, and then upload the .xsl file generated by the mapper to anXSLT resource in the Oracle Service Bus Console. XSLT mappings are stored in XSLTresources in Service Bus, which can be referenced from the expressions you create usingthe expression editors in a message flow action.

For more information, see Transforming Data with XSLT (GUID­89ACD1B1­9A86­4799­A304­7E0D7F840DF7.htm#GUID­89ACD1B1­9A86­4799­A304­7E0D7F840DF7) and "CreatingTransformations with the XSLT Mapper (../../soasuite/develop­soa/xslt­mapper­transformations.htm#SOASE188)" in Developing SOA Applications with Oracle SOA Suite.

()()

1.3.4.3 Cross References

Cross reference tables map identifiers that represent equivalent objects across multipleapplications, associating like objects created in different external applications. They areused to manage the runtime correlation between the various applications that share datathrough Service Bus. For example, you can use cross references to map customeridentifiers for records that were created in multiple customer management systems. Crossreference values can be updated during runtime, allowing you to dynamically integratevalues between systems. Any cross reference data updated at runtime is persisted in thedatabase. Cross references can be used across Oracle SOA Suite components. InService Bus, you can create cross reference tables in both JDeveloper and the OracleService Bus Console.

Page 14: 1 Learning About Oracle Service Bus

Service Bus provides a set of XPath functions for looking up and modifying crossreference values. These functions are available to use in the expressions you create usingthe expression editors in a message flow action. For more information, see Mapping Datawith Cross­References (GUID­F1DED2BC­B513­4637­9FAF­63F07FAB52A5.htm#GUID­F1DED2BC­B513­4637­9FAF­63F07FAB52A5).

()()

1.3.4.4 Domain Value Maps

A domain value map associates terms used by different domains to describe the sameentity, providing the capability to map the terms across vocabularies or systems. Forexample, each domain might use different terminology for country codes, city codes,currency codes, and so on. You can enter these values in a map and look up those valuesat runtime to transform the data when passing it from one domain to another. Domainvalue maps are similar to cross references, but they are defined statically rather thandynamically. You create and populate domain value maps in the design time, and deploythem to the runtime. Domain value map data are not changed by runtime activities as it isfor cross references, but rather the domain value maps are used for lookups only.

Domain value maps can be used across Oracle SOA Suite components. In Service Bus,you can create domain value maps in both JDeveloper and the Oracle Service BusConsole. Service Bus provides a set of XPath functions for looking up domain value mapvalues. These functions are available to use in the expressions you create using theexpression editors in a message flow action. For more information, see Mapping Data withDomain Value Maps (GUID­7EADE1E0­2383­428D­8C37­38C8A1A4CD59.htm#GUID­7EADE1E0­2383­428D­8C37­38C8A1A4CD59).

()()

1.3.5 Transport and Adapter Related ResourcesSome transports rely on specific types of files, such as JavaScript and JAR files or MQconnections. The JCA transport requires the JCA file and any files it references, such as aWSDL file. This section describes the resources that are specific to certain transports.

()()

1.3.5.1 JCA Bindings

JCA binding resources in Service Bus let you create business and proxy services thatinteract with external services through Oracle SOA Suite JCA adapters. A JCA binding ismade up of a service WSDL document and a corresponding JCA file created in OracleJDeveloper. In JDeveloper, you can add a JCA adapter directly to a Service Bus projectusing the Service Bus Overview Editor by dragging and dropping the adapter type fromthe Components window to the editor's canvas. The proxy or business service isautomatically generated from the JCA adapter configuration, and is based on the JCAtransport. In the Oracle Service Bus Console, you need to upload the JCA file into a JCAbinding resource in order to create a business or proxy service based on that JCA adapter.You can also import the JCA file and its associated WSDL file using the import feature.

For more information, see Working with JCA Binding Resources (GUID­B2646D8D­D53F­469B­BA79­E007BC454C2C.htm#GUID­12B8E27D­5550­435E­BBAC­9C8C55CE8B09).

()()

1.3.5.2 JAR Files (Archives)

A JAR (Java Archive) is a zipped file that contains a set of Java classes. It is used to storecompiled Java classes and associated metadata that can constitute a program. A JARacts like a callable program library for Java code elements, so a single compilation link

Page 15: 1 Learning About Oracle Service Bus

provides access to multiple elements rather than requiring bindings for each elementindividually.

In JDeveloper, you can add JAR files to a project or component directly from the filesystem, but in the Oracle Service Bus Console, you need to upload each JAR file to addto a project into an archive resource. In Service Bus, JAR files are used the followingcomponents:

Java callout actions (in pipelines) that provide a Java exit mechanism

EJB­based business services

JEJB­based business and proxy services

Tuxedo­based proxy and business services

For more information, see Working with JAR Files (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­303C4A98­7589­4AFB­A42D­05F6838F4793).

()()

1.3.5.3 JavaScript Files

JavaScript files are used by the JCA Socket Adapter as a mechanism for handling thehandshake. XSLT and custom Java code are also supported handshake mechanisms. InJDeveloper, you can create a JavaScript file and then select the file when you configure aJCA socket adapter. You can also create the JavaScript when you configure the adapter.In the Oracle Service Bus Console, you can either upload an existing JavaScript file to aJavaScript resource, or you can create the text for the JavaScript in a text editor in theconsole. Alternatively, you can use the console's import feature to import the Socketadapter's JCA file and its dependencies, such as WSDL and JavaScript files.

Service Bus supports JavaScript handshake for both inbound and outbound socketadapters, and for one­way and request/response messaging. Request/responsehandshakes require a separate JavaScript file for the request and the response.

For more information, see Working with JavaScript Resources (GUID­B2646D8D­D53F­469B­BA79­E007BC454C2C.htm#GUID­6CFAF58F­02F3­4F63­AB0C­5A7E79E54116).

()()

1.3.5.4 MQ Connections

MQ connection resources provide the connection parameters required to connect to anMQ queue manager. They are used in proxy and business services configured to use theMQ transport, and can be shared and reused across multiple services. MQ proxy andbusiness services must connect to an MQ queue manager before they can access an MQqueue. Each MQ connection resource uses a connection pool, and every business orproxy service that connects to a queue manager using the same MQ connection resourcealso uses the same connection pool. Thus, multiple business and proxy services can usethe same queue manager and share a connection pool.

In order to create MQ connections in the Oracle Service Bus Console, you must install theWebSphere MQ client library to the Service Bus domain. This is described in How toCreate MQ Connections (GUID­279E6506­25B1­4B5C­808D­DEA724657805.htm#GUID­1D125C11­0805­4349­8434­53C31D13223A).

()()

1.3.6 Schema and Document Resources

Page 16: 1 Learning About Oracle Service Bus

Service Bus services rely on different document types to define information like messagestructures and web interfaces. These documents include XML schemas, MFL files, andXML files to describe data, and WSDL and WADL documents to describe interfaces.

Service Bus has a built­in type system that is available for use at design time. Whencreating an XQuery expression in a condition, in­place update action, or transformation,the variable can be declared to be of a given type in an editor to assist in easily creatingthe XQuery. The types can be the following:

XML schema types or elements

WSDL types or elements

MFL types

()()

1.3.6.1 XML Schemas

XML schemas are documents that define valid content for primitive or structured data inXML documents. XML schemas specify the structure of documents, the data type of eachelement and attribute contained in the document, and the rules that XML business datamust follow. XML schemas can import or include other XML schemas. Schemas are usedto add XML information to messages exchanged in Service Bus, and may be required forXQuery expressions, WSDL files, and so on.

For more information, see Working with XML Schemas (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­7E4EA620­967A­4C86­B453­75D5F3DB3788).

()()

1.3.6.2 XML Documents

XML document resources store XML files that can then be referenced when configuringproxy or business services. For example, you might use XML documents for TopLinkmapping files needed in JCA proxy or business services that communicate with JCA­compliant systems.

XML documents are a standard feature in JDeveloper. In the Oracle Service Bus Console,the easiest way to create XML documents is to use the import feature. For example, if youimport JCA resources (JCA file, along with its associated WSDL and mapping files),Service Bus automatically generates XML document resources out of mapping files andmaintains the dependencies among resource files. You can also create an XML documentresource, and upload the contents of an XML file to the resource.

For more information, see Working with XML Documents (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­5AF8067F­CE45­402E­AFC4­526F2E6777E5).

()()

1.3.6.3 WSDL Documents

A Web Service Definition Language (WSDL) interface defines a service interface for aSOAP or XML service. For web services, a WSDL document describes what the webservice's interface is, where it resides, and how to invoke it. Service Bus defines proxyand business services in terms of two WSDL entities:

The abstract WSDL interface, which defines the operations in that interface and thetypes of message parts in the operation signature.

Page 17: 1 Learning About Oracle Service Bus

The binding WSDL interface, which defines the binding of the message parts to themessage (packaging), and the binding of the message to the transport.

A WSDL file can also describe the concrete interface of the service (for example, thetransport URL).

You can base the definition of a proxy or business service on an existing WSDL file, whichautomatically configures portions of the service. WSDL files used as the basis for definingservices are stored as Service Bus resources. In JDeveloper, you can create WSDL filesusing the built­in WSDL editor. You can then import those WSDL files, and any schemasused by the file, into the Oracle Service Bus Console. The console can also be used toresolve the references in the WSDL files, ensuring all schemas and WSDL files are linkedcorrectly. Service Bus uses its own representation of the interface for messaging services.

For more information, see Working with WSDL Documents (GUID­74E456BD­7C52­43AC­A666­DD07760CF81A.htm#GUID­74E456BD­7C52­43AC­A666­DD07760CF81A).

()()

1.3.6.4 WADL Documents

A Web Application Definition Language (WADL) document is similar to a WSDL document,described above, but it is specifically used to described the interface for REST proxy orbusiness services. When you create a proxy or business service based on the RESTbinding in JDeveloper, the required WADL document is automatically generated from theWSDL document you specify for the binding. A WADL file can have dependencies on aWSDL file and on one or more XML schemas.

If you are using the Oracle Service Bus Console, you can create WADL documents byimporting them or by creating a WADL resource. For more information, see CreatingWADL Documents (GUID­C346DF7D­041D­4E10­BE1C­451F50719106.htm#GUID­3CF87394­9765­4F9A­A506­D2B31AD170D5).

()()

1.3.6.5 MFL Resources

Service Bus uses Message Format Language (MFL) to describe the structure of typednon­XML data. MFL is an Oracle proprietary language used to define the rules thattransform formatted binary data into XML data. MFL documents are used at runtime totransform an instance of a non­XML data record to an instance of an XML document (orthe other way around).

You create MFL documents using the Format Builder tool in JDeveloper. The FormatBuilder allows you to describe the layout and hierarchy of the non­XML data so it can betransformed to or from XML. Using the Format Builder, you define each field in themessage, including the type and size of data, the name of the field, any delimiters, and soon. You can also indicate whether the field is repeating, and whether it is optional orrequired.

For more information, see Defining Data Structures with Message Format Language (GUID­74D53E73­CC21­4505­A9E4­0DE1CE5C3FD6.htm#GUID­74D53E73­CC21­4505­A9E4­0DE1CE5C3FD6).

()()

1.3.7 Security Resources

Page 18: 1 Learning About Oracle Service Bus

Security information can be passed through proxy and business services using serviceaccounts, which define how the user name and password are obtained, or using servicekey providers, which define encryption credentials.

()()

1.3.7.1 Service Key Providers

Service Key Provider resources contain Public Key Infrastructure (PKI) credentials usedby proxy services for decrypting inbound SOAP messages and for outboundauthentication and digital signatures. PKI credentials are private keys paired withcertificates that can be used for digital signatures and encryption (for Web ServicesSecurity) and for outbound SSL authentication. The certificate contains the public key thatcorresponds to the private key.

Service Bus uses service key providers to supply the following types of credential­levelvalidation to proxy services.

SSL client authentication

Digital signature

Encryption

Web Services Security X509 token

For more information, see Working with Service Key Providers (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­4E5CD2DE­93D5­40EC­B4F3­A73DE2935DAF).

()()

1.3.7.2 Service Accounts

Service account resources provide user names and passwords that Service Bus uses forauthentication when connecting to a service or server. Service accounts are used by proxyand business services for outbound authentication or for authentication to a local orremote resource, such as an FTP server or a JMS server. You can configure a serviceaccount to use a specific user name and password pair, to use the user names andpasswords received from incoming requests, or to map user names and passwordsprovided by clients to user names and passwords you specify. One service account canbe used for multiple business and proxy services.

For more information, see Working with Service Accounts (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­B34F9F69­CC0E­4573­8072­7208A8953036).

()()

1.3.7.3 WS­Policy Resources

In previous versions, WS­Policy resources were used to store custom web service policiesso they could be referenced by multiple WSDL documents. Beginning in 12c, Oracle WebServices Manager (OWSM) policies replace WLS9 policies, so there is no longer anoption to create new services with WSDL­based WLS9 policies. While WS­Policyresources are still visible in imported projects, the associated web services should beupdated to use OWSM policies. However, you can still import and activate a project from aprevious version that uses WS­Policy resources.

()()

1.3.8 Alert Destinations

Page 19: 1 Learning About Oracle Service Bus

An alert destination resource defines a list of recipients that can receive alert notificationsfrom Service Bus. For example, when a service level agreement (SLA) or pipeline alert isgenerated, you can specify that notifications be sent to specific email addresses or JMSqueues, ensuring that only the relevant people receive the notifications. An alertdestination could include one or more of the following types of destinations: the ServiceBus reporting data stream, SNMP trap, alert log, email, JMS queue, or JMS topic. In thecase of email and JMS destinations, a destination resource could include a list of emailaddresses or JMS URIs, respectively.

For more information, see Working with Alert Destinations (GUID­1E8A7575­61F6­48A7­9760­A0673D2CA767.htm#GUID­23E48600­34E5­41CC­B193­C40E462B3862).

()()

1.3.9 Throttling Group ResourcesThrottling helps improve performance and stability by preventing message overload onhigh­traffic business services. To control the flow of messages to a business service andprevent backlogs, you can enable and configure message throttling for a business serviceor group of business services in your Service Bus applications. When messages arethrottled, the business service can only concurrently process the number of messages youspecify. When that capacity is reached, messages are stored in an in­memory queue untilthe business service is ready to process more messages.

For more information, see "Configuring Business Services for Message Throttling(../../osb/administer/GUID­24DF76EC­BB77­4AAA­8A6B­EF91518CFD1F.htm#OSBAG614)" inAdministering Oracle Service Bus.

()()

1.3.10 System ResourcesSystem resources are globally available resources that can be shared across all projectsin your Service Bus instance. They define server connections and authenticationinformation, and include the following:

JNDI Providers (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­D90D7DF0­09B2­444E­A88E­57126E4E1C79)

SMTP Servers (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­8CB37A2A­6558­4818­AB58­F87CFDC62C20)

Proxy Servers (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­7FD00636­7FEB­4880­99D5­2E9D505DA178)

UDDI Registries (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­30C8A260­6B49­4343­BBC4­93558CA97377)

In the Oracle Service Bus Console, system resources are stored in a separate projectnamed System. In JDeveloper, system resources are stored in the Application Resourcespanel under Service Bus System Resources.

()()

1.3.10.1 JNDI Providers

JNDI provider resources define the connection and authentication information needed toaccess JNDI­named objects. They describe the URL (or list of URLs in the case ofclustered deployments) of the JNDI providers used by Service Bus. For example, in abusiness service used to invoke an EJB, you include the name of a JNDI provider

Page 20: 1 Learning About Oracle Service Bus

resource in the endpoint URI. When the business service is invoked, Service Bus uses thedetails in the referenced JNDI provider resource to make the initial connection to the JNDIprovider.

If the JNDI provider is secured, then the JNDI provider resource also defines a user nameand password to gain access. JNDI providers offer a great deal of flexibility. If a JNDIconnection changes, you only need to modify the JNDI provider resource, and anythingthat references the JNDI provider automatically uses the updated configuration.

For more information, see Working with JNDI Provider Resources (GUID­AF48FF77­297D­48AD­894A­7882BA6C78E8.htm#GUID­0D4DD6D2­5065­4A16­945E­B26E17F18103).

()()

1.3.10.2 SMTP Servers

SMTP server resources define the address of SMTP servers corresponding to emaildestinations, port numbers, and, if required, authentication credentials. They describe theURL for the SMTP servers used by Service Bus. If the SMTP server is secured, the SMTPserver resource description also includes a user name and password to gain access.SMTP server resources are referenced when configuring alert destination resources andemail transport­based business services.

For more information, see Working with SMTP Server Resources (GUID­AF48FF77­297D­48AD­894A­7882BA6C78E8.htm#GUID­5B3384D0­18DC­4672­991F­BA99D84D0511).

()()

1.3.10.3 Proxy Servers

Proxy server resources define the connection and authentication information needed toaccess JNDI­named objects. They describe the URL for the proxy servers used by ServiceBus. If the proxy server is secured, the proxy server resource description also includes auser name and password to gain access. You can use a proxy server to proxy requestsfrom a client application, and you typically use a proxy server when Service Bus is behinda firewall. When you configure business services to route messages through a proxyserver, associate the proxy server resource with that business service. This instructsService Bus to connect to the business service through the configured proxy server.

You can configure multiple proxy servers for each proxy server resource. In this case,Service Bus can perform load balancing and offer fault tolerance among the configuredproxy servers.

For more information, see Working with Proxy Server Resources (GUID­AF48FF77­297D­48AD­894A­7882BA6C78E8.htm#GUID­5A1BC7A4­0BBD­4EDF­88B0­356216B8AF09).

()()

1.3.10.4 UDDI Registries

Universal Description, Discovery and Integration (UDDI) registries are used to share webservices. UDDI provides a framework in which to classify your business, its services, andthe technical details about the services you want to expose. A UDDI registry resourcestores information about a UDDI registry accessed by Service Bus for service discovery,publishing, and synchronization. After the UDDI registry resource is configured, you canpublish Service Bus proxy services to the associated registry, or import business servicesfrom the registry to be used by a proxy service. UDDI registry resources define the inquiry,publish, security, and subscription URLs, along with a user name and password to gainaccess to the registry.

For more information, see Working with UDDI Registries (GUID­FA2E58B2­64DF­4EE3­B5B6­EA03956AE625.htm#GUID­FA2E58B2­64DF­4EE3­B5B6­EA03956AE625).

Page 21: 1 Learning About Oracle Service Bus

()()

1.4 Service Bus MessagingThis section discusses the types of messaging supported by Service Bus, the messageformats, and the context variables that are passed through, and optionally modified by, thecomponents in a Service Bus project.

()()

1.4.1 Messaging ModelsService Bus accommodates multiple messaging paradigms and supports the followingtypes of communication:

Synchronous request/response

Asynchronous publish one­to­one

Asynchronous publish one­to­many

Asynchronous request/response (synchronous­to­asynchronous bridging)

In sync­async bridging, a synchronous client issues a request to an asynchronousprovider. For this pattern, you can publish a message to one JMS queue and configure asecond JMS queue for the response, with a timeout value for listening for the response.This type of service appears as a synchronous service to the service consumer. Usingasynchronous request/response messages has these advantages:

No blocking by the request thread, removing thread management issues that can occurwhen numerous blocking request/response invocations are made.

More reliable messaging.

()()

1.4.2 Message FormatsService Bus supports the following message formats:

Email with or without attachments

Java

JMS with headers

MFL (Message Format Language)

Raw Data (opaque non­XML data with no known schema)

Text

Page 22: 1 Learning About Oracle Service Bus

SOAP and SOAP with attachments (SOAP described or not described by a WSDLdocument)

XML and XML with attachments (XML described or not described by a WSDL documentor a schema)

()()

1.4.3 Message ContextAll messages sent to and received by a proxy service are defined internally by a set ofproperties that hold the message data and metadata related to that message. This set ofproperties is known as the message context and is implemented using context variables.The context is defined by an XML schema. Some context variables are predefined andothers are user defined.

Predefined context variables contain information about the message, transport headers,security principals, metadata for the current proxy service, and metadata for the primaryrouting and publishing services invoked by the proxy service. You typically use an XQueryexpression in a pipeline to manipulate context variables as a message moves throughService Bus. You can also modify context variables using transformation and in­placeupdate actions.

For a complete description of the message context and context variables used in themessage flow, see Message Context (GUID­71E8CE2C­660C­4D26­A308­FB46F0AAE820.htm#GUID­71E8CE2C­660C­4D26­A308­FB46F0AAE820).

()()

1.4.4 Content TypesTo support interoperability with heterogeneous endpoints, Service Bus lets serviceconfigurations control the content type, JMS type, and encoding used. It does not makeassumptions about what the external client or service needs, but instead uses theconfiguration of the proxy or business service. Service Bus derives the content type foroutbound messages from the service type and interface and uses the followingspecifications:

For XML or SOAP (with or without a WSDL file), the content type is text/XML.

For messaging services when the interface is MFL or binary, the content type isbinary/octet­stream.

For messaging services when the interface is text, the content type is text/plain.

For messaging services when the interface is XML, the content type is text/XML.

The content type can be overridden in the outbound context variable ($outbound ) forpipelines invoking a service, and in the inbound context variable ($inbound ) for a pipelineresponse. Additionally, there is a JMS type (byte or text) that can be configured when theservice is defined. Encoding is explicitly configured in the service definition for alloutbound messages.

()()

Page 23: 1 Learning About Oracle Service Bus

1.5 Using Work Managers with ServiceBusService Bus uses Oracle WebLogic Server Work Managers to optimize performance andto maintain service­level agreements. Work Managers prioritize work and allocate threadsbases on rules you define and based on runtime performance. When you create andconfigure a Work Manager, you define the maximum and minimum number of threads touse, server capacity, and request and response classes that express schedulingguidelines. One default Work Manager is provided, but you can create as many WorkManagers as you need to optimize your services. In Service Bus, you specify a WorkManager for a proxy service or business service in the Dispatch Policy property of thetransport configuration.

For more information about Work Managers, see "Using Work Managers to OptimizeScheduled Work" (http://www.oracle.com/pls/topic/lookup?ctx=fmw121300&id=CNFGD112) inAdministering Server Environments for Oracle WebLogic Server. For more informationabout Work Managers in Service Bus, see Using Work Managers with Service Bus (GUID­FE2CAC5B­E4DF­49DE­AD3C­36EEAF750BFE.htm#GUID­6C3D3C19­B92C­4358­8E51­2671D06589A6).

()()

1.6 Service Bus SecurityService Bus uses Oracle Platform Security Services (OPSS) and Oracle Web ServicesManager (OWSM) as the building blocks for higher­level security services includingauthentication, identity assertion, authorization, role mapping, auditing, and credentialmapping. In order to configure Service Bus access security, you must first configureOracle WebLogic Server security. Service Bus uses OWSM to provide a policy frameworkto manage and secure web services consistently across your organization.

()()

1.6.1 Service Bus Security FeaturesService Bus provides the following security features:

Integration with OWSM and OPSS

Authentication, encryption and decryption, and digital signatures as defined in the WebServices Security (WS­Security) specification

SSL to support traditional transport­level security for HTTP and JMS transport protocols

One­way and two­way certificate based authentication

HTTP basic authentication

Encryption and export of resources (such as service accounts, service key providers,UDDI registries, SMTP providers, and JNDI providers) that contain user names andpasswords

Service accounts and service key providers to define the user name, password, andcredential alias binding

Page 24: 1 Learning About Oracle Service Bus

Client­specified custom authentication credentials for both transport­level and message­level inbound requests

() ()()

1.6.2 Service Bus Service Security ModelA Service Bus service can be secured by security policies that apply to messages in itsinterface. A security policy can be specified for a service or for individual messagesassociated with the operations of a service. When a security policy is specified for aservice, the policy applies to all messages sent to that service.

You can secure Service Bus services using the following types of security:

Inbound security

Outbound security

Options for identity propagation

Administrative security

Supported standards and security providers

Figure 1­4 (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­98B671A4­4298­4E17­9362­33E3897A2D6B__BABEBFAJ) illustrates security features at different points in a message lifecycle.

Figure 1­4 Optimized Pluggable Security Layer

Page 25: 1 Learning About Oracle Service Bus

Description of "Figure 1­4 Optimized Pluggable Security Layer" (img_text/GUID­82EC667F­1F74­4212­AF42­4C93AB5D98E7.htm)()()

1.6.3 Oracle Web Services ManagerYou can secure your Service Bus services by attaching Oracle Web Services Manager(OWSM) policies. OWSM is a component of Oracle Enterprise Manager FusionMiddleware Control, a runtime framework that provides centralized management andgovernance of Oracle SOA Suite environments and applications. It provides capabilities tobuild, enforce, run, and monitor web service policies, such as security, reliable messaging,MTOM, and addressing policies. OWSM can be used by developers at design time and bysystem administrators in production environments. OWSM allows for policy­drivencentralized management of web services with local enforcement. OWSM provides a policyframework to manage and secure web services consistently across your organization.

()()

1.6.4 Oracle Platform Security ServicesOracle Platform Security Services (OPSS) provides a standards­based, portable,integrated, enterprise­grade security framework for Java Standard Edition (Java SE) andJava Enterprise Edition (Java EE) applications. OPSS provides an abstraction layer in theform of standards­based APIs that insulate developers from security and identitymanagement implementation details. Developers do not need to know the details ofcryptographic key management or interfaces with user repositories and other identitymanagement infrastructures.

()()

1.6.5 WS­Policies

Page 26: 1 Learning About Oracle Service Bus

Through OWSM, Service Bus security supports the Web Services Policy (WS­Policy)specification, a standards­based framework for defining a web service's securityconstraints and requirements using policies, each of which contains one or moreassertions. WS­Policy assertions specify a web service's requirements for digitalsignatures and encryption, along with the security algorithms and authenticationmechanisms that it requires.

You can include WS­Policy policies directly in a WSDL document or include them byreference. A WSDL document can import other WSDL documents that contain or refer toWS­Policy policies. The runtime environment recognizes both abstract and concrete WS­Policy statements. Abstract WS­Policy statements do not specify security tokens.Concrete WS­Policy statements specify the security tokens for authentication, encryption,and digital signatures. The Service Bus runtime environment determines which securitytoken types an abstract policy will accept.

For more information on WS­Policy specification, see the Web Services Policy Framework(WS­Policy) and Web Services Policy Attachment (WS­PolicyAttachment) which isavailable at http://specs.xmlsoap.org/ws/2004/09/policy/(http://specs.xmlsoap.org/ws/2004/09/policy/).

()()

1.6.6 Types of SecurityThe following sections discuss the security features available in the Service Bus securitymodel.

Inbound Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­CA9CA1CB­D6AB­48D8­841F­60034775EA8F)

Outbound Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­767AF4C3­7775­4296­BFD2­8C204FA5C95B)

Identity Propagation (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­28B05263­AF1F­4427­9718­DBDB6C3942F3)

User Management and Administrative Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­7ABE813C­3438­4178­A4C1­C8D0957D7DB1)

Transport­Level Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­4F663693­71A2­4F92­A580­93A28DDC5DD0)

Message­Level Security (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­080FA3A1­690A­4821­A200­331D6AECC850)

()()

1.6.6.1 Inbound Security

Inbound security ensures that proxy services handle only the requests that come fromauthorized clients, and that no unauthorized user has viewed or modified the data sentfrom the client. For outward­facing proxy services, which receive requests from serviceconsumers, strict security requirements such as two­way SSL over HTTPS are used. If aproxy service uses public key infrastructure (PKI) technology for digital signatures,encryption, or SSL authentication, you can create a service key provider to provide privatekeys paired with certificates.

()()

1.6.6.2 Outbound Security

Page 27: 1 Learning About Oracle Service Bus

Outbound security secures communication between a proxy service and a businessservice. Most of the tasks involve configuring proxy services to comply with the transport­level or message­level security requirements that business services specify. If a businessservice requires SSL authentication or PKI technology for digital signatures, a service keyprovider is required, which provides private keys paired with certificates.

()()

1.6.6.3 Identity Propagation

The options provided by Service Bus for identity propagation allow for decision makingwhen designing security, including how to propagate the identities that clients provide.Service Bus can be configured to authenticate the credentials provided by clients, performauthorization checks, pass credentials through as is, and map credentials.

()()

1.6.6.4 User Management and Administrative Security

Service Bus user management is based on WebLogic Server security, which supportstask­level authorization based on security policies associated with roles assigned tonamed groups or individual users. You use Fusion Middleware Control and the OracleWebLogic Server Administration Console to manage Service Bus users, groups, androles.

To give users access to functions, such as creating proxy services and other resources,you assign them to one or more of the predefined security roles with predefined accessprivileges. The access privileges for the Service Bus administrative security roles cannotbe changed but the conditions under which a user or group is in one of the roles can bechanged. By default, the first user created for an Service Bus domain is WebLogic Serveradministrator. This user has full access to all Service Bus objects and functions, and canexecute user management tasks to provide controlled access to Service Bus functions.

For more information, see "Defining Access Security for Oracle Service Bus(../../osb/administer/GUID­F6E57B1F­E1A3­4505­9204­DDC8681A3D3E.htm#OSBAG1176)" inAdministering Oracle Service Bus.

()()

1.6.6.5 Transport­Level Security

Service Bus supports transport­level confidentiality, message integrity, and clientauthentication for one­way requests or request/response transactions over HTTPS.HTTP(S) proxy services or business services can be configured to require basicauthentication, client certificate (two­way SSL) authentication, custom authentication, orno client authentication at all. Transport security for transports other than HTTP issupported in Service Bus as follows:

For the email and FTP transports, security is provided using credentials to connect to aFTP or email server.

For the file transport, security is provided using a login control to the machine on whichthe files are located.

()()

1.6.6.6 Message­Level Security

Page 28: 1 Learning About Oracle Service Bus

Service Bus supports OASIS Web Services Security (WSS) 1.0. WSS defines aframework for message confidentiality, integrity, and sender authentication for SOAPmessages. Using WSS, Service Bus provides support for securing messages using digitalsignatures, encryption, or both. Though it is not a substitute for transport­level security,WSS is ideal for end­to­end message confidentiality and integrity. WSS is more flexiblethan SSL since individual parts of the SOAP envelope can be signed, encrypted or both,while other parts are neither signed nor encrypted. This is a powerful feature whencombined with the ability of Service Bus to make routing decisions and performtransformations on the data based on the message content. Service Bus supports WSSover HTTP(S) and JMS.

For more information on the WSS specification, see the OASIS Web Services Security TCwhich is available athttp://www.oasis­open.org/committees/tc_home.php?wg_abbrev=wss

(http://www.oasis­open.org/committees/tc_home.php?wg_abbrev=wss).

()()

1.6.7 Custom Security CredentialsService Bus supports client­specified custom authentication credentials for both transport­level and message­level inbound requests. The custom authentication credentials can bein the form of tokens, or a user name and password token combination. Service Busaccepts and attempts to authenticate the following:

A custom token passed to a proxy service in an HTTP header, SOAP header (forSOAP­based proxy services) or in the payload (for non­SOAP proxy services).

A user name and password token passed in a SOAP header (for SOAP based proxyservices), or in the payload for non­SOAP proxy services.

For outbound requests, custom authentication is supported at the transport­level based ona custom authenticator Java class you create. The custom authentication mechanismswork alone or in concert with the message­level security for web services. For moreinformation on custom security credentials, see Configuring Custom Authentication (GUID­966DBF19­BFAD­4755­8F5A­D2CD12D9A933.htm#GUID­966DBF19­BFAD­4755­8F5A­D2CD12D9A933)..

()()

1.7 Approaches for Designing ServiceBus ServicesWhen creating Service Bus services, you have a choice of approaches, depending onwhether you use the Oracle Service Bus Console or JDeveloper. JDeveloper supportsboth approaches; the console supports the bottom­up approach.

Top­Down: With this approach, you analyze your processes and identify activities insupport of this process. You create a Service Bus application and project, and definethe Service Bus components through the Service Bus Overview Editor.

Bottom­Up: With this approach, you analyze existing applications and assets to identifythose that can be used as services. As you create a Service Bus application, you buildthe services on an as­needed basis. This approach works well when IT must react to achange.

Page 29: 1 Learning About Oracle Service Bus

() ()()

1.7.1 Service Bus Top­Down Roadmap

With this approach to developing Service Bus services, you can create all your primarycomponents at one time using the Service Bus Overview Editor. This includes proxy andbusiness services, pipelines, split­joins, and JCA adapters. The editor simplifies thecreation and configuration of project components, and provides a graphic view of theoverall structure of the data flow. Once you create and wire these components, you candefine the configuration options for each, and define message routing and transformationin pipelines and split­joins.

The following table outlines the steps and provides links for further information.

Table 1­1 Service Bus Development Roadmap ­ Top­Down Approach

Step Description More Information

1 Create the necessarysupporting resources, suchas service accounts, WSDLfiles, or XQuery maps.

Links for each type of resource are provided inOracle Service Bus Overview (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­7367E101­1A24­4FC0­87E4­DA2DD868B146).

2 Create any proxy services,pipelines, businessservices, and optionallysplit­joins.

Adding Service Bus Components (GUID­5C999412­7BC7­4021­882C­5CCACD60A30E.htm#GUID­DE47FFC7­D8E7­426E­AE48­DE94A295B973)

3 Wire the componentstogether.

Wiring Service Bus Components (GUID­5C999412­7BC7­4021­882C­5CCACD60A30E.htm#GUID­CDC45088­9E9F­44C2­9202­18993C3E543A)

4 Configure the proxyservices and theirtransports.

Configuring Proxy Services (GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D.htm#GUID­21253D8F­D0C4­48DF­9DE9­ACD2AC693EDC)

Working with JCA Adapters, Transports, andBindings (GUID­ABAFDA2E­2194­4970­BCA0­9C642AE8613F.htm)

5 Configure the pipelines andsplit­joins.

Working with Oracle Service Bus Pipelines(GUID­039D0931­049A­4F0B­87AA­0C8EE4DFB6E5.htm)

Improving Service Performance with Split­Join(GUID­6910F50F­A681­4A80­809B­4115B2548A0E.htm#GUID­6910F50F­A681­4A80­809B­4115B2548A0E)

6 Configure the businessservices and theirtransports.

Configuring Business Services (GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6.htm#GUID­10223AAB­5755­4F1E­80C1­6EF677FD36A4)

Working with JCA Adapters, Transports, andBindings (GUID­ABAFDA2E­2194­4970­BCA0­9C642AE8613F.htm)

Page 30: 1 Learning About Oracle Service Bus

7 Configure security for thebusiness and proxyservices.

Securing Business and Proxy Services (GUID­EBE2E5A7­973A­439E­888A­F592B77A02FA.htm#GUID­EBE2E5A7­973A­439E­888A­F592B77A02FA)

8 Test and debug theservices and resources.

Debugging Oracle Service Bus Applications(GUID­3BB56D8B­F692­4791­A004­9345C2857056.htm#GUID­3BB56D8B­F692­4791­A004­9345C2857056)

Using the Test Console (GUID­69FFAD84­BEFE­4348­8C8C­D76962616561.htm#GUID­69FFAD84­BEFE­4348­8C8C­D76962616561)

9 Deploy the service. Deploying Oracle Service Bus Services (GUID­B7C64F39­EF51­4123­BCA1­6372D9E32F87.htm#GUID­B7C64F39­EF51­4123­BCA1­6372D9E32F87)

10 Monitor and administer theruntime.

Administering Oracle Service Bus(http://www.oracle.com/pls/topic/lookup?ctx=fmw121300&id=OSBAG)

() ()()

1.7.2 Service Bus Bottom­Up Roadmap

With this approach to developing Service Bus services, you create and configure eachproject component individually. The flow of messages through the system is defined byreferences you create between project components, such as proxy services, businessservices, pipelines, split­joins. This approach does not use the Service Bus OverviewEditor, so you are not working with a graphical representation of the components.However, if you are working in JDeveloper, the components you create are added to theoverview file and appear in the Service Bus Overview Editor.

The following table outlines the steps and provides links for further information.

Table 1­2 Service Bus Development Roadmap ­ Bottom­Up Approach

Step Description More Information

1 Create the necessarysupporting resources, suchas service accounts, WSDLfiles, or XQuery maps.

Links for each type of resource are provided inOracle Service Bus Overview (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­7367E101­1A24­4FC0­87E4­DA2DD868B146).

2 Create a proxy service andpipeline. You can generatea proxy service when youcreate the pipeline.

Creating Proxy Services (GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D.htm#GUID­B728DAAE­700F­43D9­A197­0DBE3299E913)

Working with Oracle Service Bus Pipelines(GUID­039D0931­049A­4F0B­87AA­0C8EE4DFB6E5.htm)

Page 31: 1 Learning About Oracle Service Bus

3 Configure the proxy serviceand its transport.

Configuring Proxy Services (GUID­C7FA8DAD­E235­437F­87D8­3FE28BE98A6D.htm#GUID­21253D8F­D0C4­48DF­9DE9­ACD2AC693EDC)

Working with JCA Adapters, Transports, andBindings (GUID­ABAFDA2E­2194­4970­BCA0­9C642AE8613F.htm)

4 Define the message flow inthe pipeline.

Working with Oracle Service Bus Pipelines(GUID­039D0931­049A­4F0B­87AA­0C8EE4DFB6E5.htm)

5 Optionally, create andconfigure a split­join forparallel processing.

Working with Split­Joins in JDeveloper (GUID­6910F50F­A681­4A80­809B­4115B2548A0E.htm#GUID­67D3F509­DC10­46EB­82F2­BD76297B62D7)

6 Create and configure abusiness service.

Creating Business Services (GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6.htm#GUID­94CC564A­D105­4836­997B­B93F40192C67)

Configuring Business Services (GUID­B932E48E­8DDA­4C3D­B600­CBE2C510CED6.htm#GUID­10223AAB­5755­4F1E­80C1­6EF677FD36A4)

7 Configure security for theservices.

Securing Business and Proxy Services (GUID­EBE2E5A7­973A­439E­888A­F592B77A02FA.htm#GUID­EBE2E5A7­973A­439E­888A­F592B77A02FA)

8 Test and debug theservices and resources.

Debugging Oracle Service Bus Applications(GUID­3BB56D8B­F692­4791­A004­9345C2857056.htm#GUID­3BB56D8B­F692­4791­A004­9345C2857056)

Using the Test Console (GUID­69FFAD84­BEFE­4348­8C8C­D76962616561.htm#GUID­69FFAD84­BEFE­4348­8C8C­D76962616561)

9 Deploy the service. Deploying Oracle Service Bus Services (GUID­B7C64F39­EF51­4123­BCA1­6372D9E32F87.htm#GUID­B7C64F39­EF51­4123­BCA1­6372D9E32F87)

10 Monitor and administer theruntime.

Administering Oracle Service Bus(http://www.oracle.com/pls/topic/lookup?ctx=fmw121300&id=OSBAG)

()()

1.8 Naming Guidelines for Service BusComponents

When naming any directory or resource in a Service Bus project, the following charactersare allowed:

Page 32: 1 Learning About Oracle Service Bus

All Java identifier characters, including Java keywords, as described in the "Identifiers"and "Keywords" sections of the Java Language Specification athttp://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8(http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.8).

Blanks, periods, and hyphens within the names (not leading or trailing).

Characters such as / \ * : " < > ? | are not allowed.

()()

1.9 Viewing Service Bus Resources in aWeb BrowserYou can view some of the Service Bus resources described in this document in a standardweb browser using the URLs, described in the following sections:

WSDL Documents (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­ED2CC2A7­325B­426D­976A­B22A63EC0196)

WS Policies (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­F8DBE5AF­6781­447A­9187­171521E245E0)

Message Format Language (MFL) Resources (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­E44F0435­9362­45EF­8570­D48F3F0637C7)

Schema Resources (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­4583E8B2­A8C7­479E­A2B1­971AF45994F2)

Notes About Viewing Service Bus Resources in a Web Browser (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­1D572918­C41C­49DC­870C­D4EA81964AB6)

()()

1.9.1 WSDL Documents

URL to display a WSDL document:

http://host:port/sbresource?WSDL/project_path/wsdlname

URL to display the WSDL document for WSDL­based HTTP proxy services:

http://host:port/proxy_service_endpoint_URI?WSDL

URL to display the WSDL document for WSDL­based proxy services:

http://host:port/sbresource?PROXY/project_path/proxyname

URL to display the WSDL document for proxy services with Oracle Web ServicesManager policies attached:

http://host:port/sbresource?ORAPROXY/project_path/proxyname

Page 33: 1 Learning About Oracle Service Bus

URL to display the WSDL document for WSDL­based business services:

http://host:port/sbresource?BIZ/project_path/bizname

URL to display the WSDL document for WSDL­based business services with OracleWeb Services Manager policies attached:

http://host:port/sbresource?ORABIZ/project_path/bizname

()()

1.9.2 WS Policies

Use the following URL to display WS security policies:

http://host:port/sbresource?POLICY/project_path/policyname

()()

1.9.3 Message Format Language (MFL) Resources

Use the following URL to display an MFL file:

http://host:port/sbresource?MFL/project_path/mflname

()()

1.9.4 Schema Resources

Use the following URL to display an XML schema:

http://host:port/sbresource?SCHEMA/project_path/schemaname

()()

1.9.5 Notes About Viewing Service Bus Resourcesin a Web BrowserYou can also retrieve WSDL documents containing Oracle Web Services Manager policiesso the policies conform to supported WS­Policy and WS­Security Policy standards. Formore information, see Advertising WSDL Files to Support WS Standards (GUID­1CE01E95­8B9B­4369­AAC9­28F4C5B6EF63.htm#GUID­7B51BC34­1E32­493F­85D4­D0FD3172F60F)..

If you use special characters in your resource names, the URLs used to expose theresources in Service Bus must be encoded in UTF­8 in order to escape specialcharacters.

()()

1.10 Accessibility Options

Page 34: 1 Learning About Oracle Service Bus

Service Bus uses both JDeveloper and the Oracle Service Bus Console for development.The following sections describe accessibility options for both environments.

Setting Accessibility Options in JDeveloper (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­02A54D99­4496­419C­897E­D39053F48EA5)

Notes on Screen Reader Mode (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­CB8A7AD7­5AC6­4819­9CC7­1BC1990F8CD7)

How to Set Accessibility Options in the Oracle Service Bus Console (GUID­2CFA406F­66DF­44F1­894B­CFD7EC66CEB1.htm#GUID­B51F0772­3623­40C5­B681­3B7AEB4E9550)

()()

1.10.1 Setting Accessibility Options in JDeveloperJDeveloper provides accessibility options, such as support for screen readers, screenmagnifiers, and standard shortcut keys for keyboard navigation. You can also customizeJDeveloper for better readability, including the size and color of fonts and the color andshape of objects. For information and instructions on configuring accessibility inJDeveloper, see "Oracle JDeveloper Accessibility Information(http://www.oracle.com/pls/topic/lookup?ctx=fmw121300&id=OJDUG118)" in Developing Applicationswith Oracle JDeveloper.

()()

1.10.2 Notes on Screen Reader ModeWhen you log in to the Oracle Service Bus Console with the screen reader mode enabled,selecting the context menus from the Project Navigator requires extra steps. To accessthe context menus for projects and components in the Project Navigator, navigate to thecomponent using the Tab key, press Enter to select the component, and then pressCtrl+Alt+M to launch the menu. Use the up and down arrows to navigate the options inthe menu.

() () ()()

1.10.3 How to Set Accessibility Options in the OracleService Bus Console

Accessibility settings help you read all components of the application. You can setaccessibility options in the Oracle Service Bus Console for the current instance only. Theconsole presents the Accessibility menu on the login page, so you can configureaccessibility before you log in.

To set accessibility options:

1. Launch the Oracle Service Bus Console.

2. On the login page, click Accessibility in the top right corner.The Edit Accessibility Settings page appears, as shown below.

Figure 1­5 Edit Accessibility Settings Page

Page 35: 1 Learning About Oracle Service Bus

Description of "Figure 1­5 Edit Accessibility Settings Page" (img_text/GUID­C8DD8755­D2E2­441E­83FC­A127A5EC5B9D.htm)

Note:This page indicates that settings can also be changed using the Preferences optiononce you log in. Currently, you can only configure accessibility options from theAccessibility Settings page.

3. Select any of the following options:

Use screen reader.

Use high contrast colors.

Use large fonts.

4. Click Use for this session.

()()

1.11 Additional Resources

In addition to this developer's guide, Oracle also offers the following resources to help youlearn how you can best use Service Bus.

Understanding Oracle SOA Suite introduces you to Oracle SOA Suite and OracleService Bus, and provides you with a high­level understanding of what you canaccomplish with the suite.

Administering Oracle Service Bus Services provides information on how to monitorrunning services and update the runtime environment.

Oracle Service Bus samples provide additional learning tools to help you get startedwith Service Bus features athttp://www.oracle.com/technetwork/middleware/service­bus/learnmore/index.html

(http://www.oracle.com/technetwork/middleware/service­bus/learnmore/index.html).

The Oracle Fusion Middleware Documentation Library provides a complete list of ServiceBus documents.

About Oracle (http://www.oracle.com/corporate/index.html) Contact Us (http://www.oracle.com/us/corporate/contact/index.html) Legal Notices

Page 36: 1 Learning About Oracle Service Bus

(http://www.oracle.com/us/legal/index.html) Terms of Use (http://www.oracle.com/us/legal/terms/index.html) Your Privacy Rights (http://www.oracle.com/us/legal/privacy/index.html)Copyright © 2015, Oracle and/or its affiliates. All rights reserved.