{"id":2354,"date":"2012-06-25T22:34:50","date_gmt":"2012-06-26T03:34:50","guid":{"rendered":"http:\/\/jianmingli.com\/wp\/?p=2354"},"modified":"2014-07-23T08:27:57","modified_gmt":"2014-07-23T13:27:57","slug":"oracle-11g-soa-suite","status":"publish","type":"post","link":"https:\/\/jianmingli.com\/wp\/?p=2354","title":{"rendered":"Oracle 11g SOA Suite"},"content":{"rendered":"<span id=\"SOA_Overview\"><h2>SOA Overview<\/h2><\/span>\n<p>* SOA is BAD (Business Agility through Decoupling)<\/p>\n<span id=\"SOA_Architectural_Principles\"><h3>SOA Architectural Principles<\/h3><\/span>\n<p>* Interop across platforms via open standards (ws-*)<br \/>\n* Loose coupling via contracts (e.g. WSDLs)<br \/>\n* Service encapsulation<br \/>\n* Service autonomy<br \/>\n* Service reusability<br \/>\n* Service discoverability<\/p>\n<span id=\"Service_Characteristics\"><h3>Service Characteristics<\/h3><\/span>\n<p>* Granularity<br \/>\n* Atomicity<br \/>\n* Idempotency<br \/>\n* Statelessness<br \/>\n* Composibility<br \/>\n* Event awareness<\/p>\n<span id=\"Service_Layerings\"><h3>Service Layerings<\/h3><\/span>\n<p>* GUI layer<br \/>\n* Business process layer<br \/>\n* Service and event layer<br \/>\n* Service implementation layer<\/p>\n<span id=\"ESB\"><h3>ESB<\/h3><\/span>\n<p>* Sits between service consumers and service providers (decoupling)<br \/>\n* May provide (OSB)<br \/>\n&#8211; Endpoint virutalization<br \/>\n&#8211; Routing<br \/>\n&#8211; Transformation<br \/>\n&#8211; Validation<br \/>\n&#8211; Auditing<br \/>\n&#8211; Messaging<br \/>\n&#8211; Synch\/Asynch adaptation<br \/>\n&#8211; Composition<\/p>\n<span id=\"Governance\"><h3>Governance<\/h3><\/span>\n<p>* Publish service<br \/>\n* Service life cycle management<\/p>\n<span id=\"Events_and_EDA\"><h3>Events and EDA<\/h3><\/span>\n<p>* EDA: Event Driven Architecture<br \/>\n* Implementations<br \/>\n&#8211; JMS<br \/>\n&#8211; BPEL sensors<br \/>\n&#8211; ESB routing rules<\/p>\n<span id=\"BAM\"><h3>BAM<\/h3><\/span>\n<p>BAM: Business Activity Monitoring<\/p>\n<span id=\"CEP\"><h3>CEP<\/h3><\/span>\n<p>CEP: Complex Event Processing<br \/>\n* Aggregate simple events to derive meaningful patterns (BI)<\/p>\n<span id=\"SCA\"><h2>SCA<\/h2><\/span>\n<p>* First published in 2007<br \/>\n* Help simplify assembly and deployment of compostie applications.<\/p>\n<span id=\"Web_Cernter\"><h2>Web Cernter<\/h2><\/span>\n<p>* Oracle homegrown portal product<br \/>\n* Based on ADF<br \/>\n* Supports WSRP (both publishing and consuming protlets)<br \/>\n* Provide UI level integration for<br \/>\n&#8211; content management<br \/>\n&#8211; task management\/workflow<br \/>\n&#8211; search<br \/>\n&#8211; communication(email, chat, VoIP, etc)<\/p>\n<span id=\"vs_ADF_Workflow\"><h3>vs ADF Workflow<\/h3><\/span>\n<p>* ADF workflow<br \/>\n&#8211; uses Oracle proprietary format so not suited for enterprise integrations<br \/>\n&#8211;  integrated at design time (from ADF libs)<br \/>\n* WebCenter Portlets<br \/>\n&#8211; based on industry standards so good for cross enterprise integrations<br \/>\n&#8211; integration happens at run time (slight performance hit but easy to change)<\/p>\n<span id=\"ADF\"><h2>ADF<\/h2><\/span>\n<p>* ADF is a Oracle homegrown MVC application framework for developing enterprise Java\/J2EE applications<br \/>\n* JSR-227 (in process)<br \/>\n* Supports multiple UIs<br \/>\n&#8211; web app<br \/>\n&#8211; desktop app<br \/>\n&#8211; web services<br \/>\n* ADF apps run on J2EE app server, mainly WebLogic<br \/>\n* Uses JDev as IDE<br \/>\n* Components<br \/>\n&#8211; ADF BC<br \/>\n&#8211; ADF Faces<br \/>\n&#8211; ADF Model<br \/>\n&#8211; ADF Controller (extenstion to JSF controller)<br \/>\n* FMW applications are built on ADF including:<br \/>\n&#8211; WebCenter<br \/>\n&#8211; Oracle Apps<br \/>\n&#8211; BI EE<br \/>\n&#8211; BAM Studio<br \/>\n&#8211; EM<br \/>\n&#8211; SOA human tasks<br \/>\n* Also support<br \/>\n&#8211; task flows<br \/>\n* ADF applications can be bundled into library (jar) files and reused<\/p>\n<span id=\"Special_Features_Used_in_SOA_Suite\"><h3>Special Features Used in SOA Suite<\/h3><\/span>\n<p>* Rase events onto the EDN (Event Delivery Network) from ADF BC<br \/>\n* UI for human tasks in BPM Worklist application<br \/>\n* UI for BAM data control<br \/>\n* Integration of BPEL entity variables with ADF BC via SDO binding<\/p>\n<span id=\"ADF_Architecture\"><h3>ADF Architecture<\/h3><\/span>\n<p>* Two parts implemented in separate JDev projects in a single application<br \/>\n&#8211; Model<br \/>\n&#8211; ViewController<br \/>\n* Decouples UI from business components <\/p>\n<span id=\"Model\"><h4>Model<\/h4><\/span>\n<p>* Contains business objects<\/p>\n<span id=\"ViewController\"><h4>ViewController<\/h4><\/span>\n<p>* Renders UI<br \/>\n* Injects data to UI from model via data bindings<\/p>\n<span id=\"Key_Oracle_Acquisitions_for_SOA_11g\"><h2>Key Oracle Acquisitions for SOA 11g<\/h2><\/span>\n<p>* <a href=\"http:\/\/www.oracle.com\/us\/corporate\/Acquisitions\/index.html\">http:\/\/www.oracle.com\/us\/corporate\/Acquisitions\/index.html<\/a><br \/>\nAmberPoint (2010): SOA Management and Governance, Business txn management<br \/>\nGoldenGate (2009): Real-time data integration and HA<br \/>\nSun (2009): Java, Solaris<br \/>\nClearApp (2008): Management of composite SOA apps<br \/>\nBEA (2008): WebLogic (app server), AquaLogic SB (ESB), Enterprise Repository, BPM Studio (BPMN), Tuxedo (Txn Management), Portals<br \/>\nHyperion(2007): Corporate performance management<br \/>\nSunopsis (2006): ELT<br \/>\nOblix (2005): I&#038;AM<br \/>\nThor (2005): I&#038;AM<br \/>\nPeopleSoft (2005): BAM<br \/>\nSiebel (2005): BI<br \/>\nCollaxa (2004): BPEL<\/p>\n<span id=\"Fusion_Middleware_FMW\"><h2>Fusion Middleware (FMW)<\/h2><\/span>\n<span id=\"Various_Suites\"><h3>Various Suites<\/h3><\/span>\n<p>* SOA Suite<br \/>\n* BPM Suite<br \/>\n* EDA Suite<br \/>\n* SOA Governance Suite<br \/>\n* BPA Suite<br \/>\n* Data Integration Suite<\/p>\n<span id=\"SOA_Suite\"><h2>SOA Suite<\/h2><\/span>\n<p>* SCA container: a run time engine that executes composite service applications (SCA apps stringed together by WSDLs)<\/p>\n<span id=\"Key_Components\"><h3>Key Components<\/h3><\/span>\n<p>* BPEL Process Mgr<br \/>\n* Rules Engine<br \/>\n* Human Workflow Service<br \/>\n* Spring-based Java Beans<br \/>\n* Mediator<br \/>\n* BPMN<br \/>\n* OSB<br \/>\n* BAM<br \/>\n* CEP<\/p>\n<span id=\"Adapters\"><h3>Adapters<\/h3><\/span>\n<p>* DB<br \/>\n* File\/FTP<br \/>\n* Q<br \/>\n* EJB<br \/>\n* Sockets<br \/>\n* Oracle App<br \/>\n* BAM<br \/>\n* ADF-BC<br \/>\n* B2B<\/p>\n<span id=\"FWM_Infrastructure\"><h2>FWM Infrastructure<\/h2><\/span>\n<span id=\"WebLogic_11g\"><h3>WebLogic 11g<\/h3><\/span>\n<p>* EM Control Console<br \/>\n* Admin Console<\/p>\n<span id=\"User_Messaging_Service_UMS\"><h3>User Messaging Service (UMS)<\/h3><\/span>\n<p>* Supports email, IM, SMS, VoIP<\/p>\n<span id=\"Meta_Data_Service_MDS\"><h3>Meta Data Service (MDS)<\/h3><\/span>\n<span id=\"JDev_11g\"><h3>JDev 11g<\/h3><\/span>\n<p>* IDE<br \/>\n&#8211; Integrated DE<br \/>\n&#8211; Integration DE<br \/>\n* Two OSB IDEs<br \/>\n&#8211; Web based<br \/>\n&#8211; Eclipse based<\/p>\n<span id=\"Others\"><h2>Others<\/h2><\/span>\n<span id=\"SOA_Governance\"><h3>SOA Governance<\/h3><\/span>\n<p>* Enterprise Repository<br \/>\n&#8211; UDDI<br \/>\n&#8211; Policies<\/p>\n<span id=\"BPA\"><h3>BPA<\/h3><\/span>\n<p>* Business Process Analyst<\/p>\n<span id=\"CEP_1\"><h3>CEP<\/h3><\/span>\n<p>* Complex Event Processing<br \/>\n* Subscribes to event streams<br \/>\n* Executes Oracle CQL (continuous query language) to search for<br \/>\n&#8211; aggregates<br \/>\n&#8211; patterns<br \/>\n&#8211; exceptions<br \/>\nin real time event streams<\/p>\n<span id=\"ODI\"><h3>ODI<\/h3><\/span>\n<p>* Oracle Data Integrator<br \/>\n* Together with GoldenGate<br \/>\n* Provides data integration platform<\/p>\n<span id=\"AIA\"><h3>AIA<\/h3><\/span>\n<p>* A framework for integrating various products and modules from Oracle Applicationis<br \/>\n* Build on top of SOA Suite<\/p>\n<span id=\"Oracle_I038AM\"><h3>Oracle I&#038;AM<\/h3><\/span>\n<span id=\"OPSS\"><h3>OPSS<\/h3><\/span>\n<p>* Oracle Platform Security Service<br \/>\n* An abstraction layer that implements a security and I&#038;AM API<br \/>\n* Can run on any J2EE containers<br \/>\n* Provides security to FMW<br \/>\n&#8211; WebLogic Server<br \/>\n&#8211; SOA Suite<br \/>\n&#8211; WebCenter<br \/>\n&#8211; ADF<br \/>\n&#8211; Oracle Entitlements Server<\/p>\n<span id=\"Universal_Content_Manager\"><h3>Universal Content Manager<\/h3><\/span>\n<p>* Comes with SiteBuilder<\/p>\n<span id=\"OSB\"><h2>OSB<\/h2><\/span>\n<span id=\"OSB_vs_Oracle_ESB_Mediator\"><h3>OSB vs Oracle ESB (Mediator)<\/h3><\/span>\n<p>* Mediator<br \/>\n&#8211; 10g ESB is now called mediator<br \/>\n&#8211; Handles components in the same SOA composite apllications<br \/>\n&#8211; Does not support variables<br \/>\nOSB<br \/>\n&#8211; From BEA AquaLogic<br \/>\n&#8211; Handles components across enterprise<br \/>\n&#8211; Supports variables<br \/>\n&#8211; Better VETRO support (VETRO: validate, enrichment, transform, route, operate)<br \/>\n&#8211; Can implement composite services (mediator can not)<br \/>\n&#8211; More suitable for short-timed interactions (BPEL for long-running processes)<\/p>\n<span id=\"Overview\"><h3>Overview<\/h3><\/span>\n<p>* Services exposed by OSB are called Proxies<br \/>\n* Can receive messages from<br \/>\n&#8211; HTTP(S)<br \/>\n&#8211; email<br \/>\n&#8211; JMS<br \/>\n&#8211; RMI<br \/>\n&#8211; FTP<br \/>\n&#8211; File<br \/>\n&#8211; Java on the Bus<br \/>\n* Can return responses via same protocols mentioned above<br \/>\n* Has native support to<br \/>\n&#8211; Tuxedo<br \/>\n&#8211; Oracle Data Services Integrator<br \/>\n&#8211; SOA Suite<br \/>\n* OSB has its own security framework based on WS-Policy<br \/>\n&#8211; Based on WS-SecurityPolicy (WSSP) 1.2<br \/>\n&#8211; Can be used to virtualize services and implement security policies (OWSM is preferred though)<br \/>\n* Supports throttling (queue up requests)<br \/>\n* Supports split-join (join up requests)<\/p>\n<span id=\"Glossary\"><h2>Glossary<\/h2><\/span>\n<p>AIA: Application Integration Architecture<br \/>\nPIP: Process Integration Packs<br \/>\nOPSS: Oracle Platform Security Service<br \/>\nVETRO: validate, enrichment, transform, route, operate<\/p>\n<span id=\"References\"><h2>References<\/h2><\/span>\n<p>* Oracle SOA Suite 11g Handbook, By: Lucas Jellema. Publisher: Oracle Press. Pub. Date: August 27, 2010<br \/>\n* <a href=\"http:\/\/wiki.oracle.com\/page\/Oracle+11g+SOA+Suite+Handbook\">Oracle 11g SOA Suite Handbook &#8211; Oracle Wiki<\/a><br \/>\n* <a href=\"http:\/\/www.rgoarchitects.com\/Files\/SOADefined.pdf\">http:\/\/www.rgoarchitects.com\/Files\/SOADefined.pdf<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>SOA Overview * SOA is BAD (Business Agility through Decoupling) SOA Architectural Principles * Interop across platforms via open standards (ws-*) * Loose coupling via contracts (e.g. WSDLs) * Service encapsulation * Service autonomy * Service reusability * Service discoverability &hellip; <a href=\"https:\/\/jianmingli.com\/wp\/?p=2354\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[100],"tags":[],"class_list":["post-2354","post","type-post","status-publish","format-standard","hentry","category-soa11g"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8cRUO-BY","_links":{"self":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2354"}],"version-history":[{"count":16,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2354\/revisions"}],"predecessor-version":[{"id":4839,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=\/wp\/v2\/posts\/2354\/revisions\/4839"}],"wp:attachment":[{"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2354"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2354"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jianmingli.com\/wp\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}