My post on the Oracle SOA blog shows you a detailed, step-by-step approach of using the Oracle SOA Suite to integrate with cloud applications, taking the Oracle RightNow Cloud Service as an example. It shows how you can take care of specific SaaS API considerations (security, polymorphic operations etc) and achieve a consistent integration strategy for your organization, whether it is A2A, B2B, cloud or mobile integration.
Visit the Oracle booth #608 at Cloud Connect next week (April 3 and April 4) to learn about how you can use Oracle SOA Suite to provide a comprehensive cloud integration solution. I will be at the booth on April 3rd starting at noon. Looking forward to see you there!
Update Nov-2012: The session pages now have the slide pdf documents for download. Simply click on each session link below to get started.
I have 4 sessions at Oracle OpenWorld 2012.
I will join my colleague Ravi Sankaran (outstanding architect and advisor to the Fusion applications development team) to talk about the approaches in customizing and extending Oracle Fusion Applications with Oracle SOA Suite. CON8719
When: Monday, Oct 1, 4:45 PM – 5:45 PM
Where: Palace Hotel – Twin Peaks North
As part of the “Birds of a Feather” session, I will join Dave Berry and Sundar Shenbagam to discuss usage scenarios for integrating managed file transfer with Oracle SOA Suite, Oracle B2B applications, Oracle Healthcare applications, and Oracle Fusion Applications. BOF8326
When: Monday, Oct 1, 6:15 PM – 7:00 PM
Where: Marriott Marquis – Golden Gate C3
I will be joined by Geeta Pyne (Director, Middleware at BMC Software) to address cloud integration challenges and how Oracle SOA Suite can help with a consistent approach to integration, whether on-premises or cloud. I am quite excited about this session as we will tackle the hype and myth of “simple” cloud integrations and share real-life application integration experiences. Don’t miss this one! CON8968
When: Tuesday, Oct 2, 11:45 AM – 12:45 PM
Where: Moscone West – 3003
I will be joined by Ravi Sankaran to provide a high level view of the Oracle Fusion Applications integration strategy and showing the best practice integration design patterns. You will learn how to discover integration assets, invoke web services and use cloud data integration. The session is not just limited to SaaS deployments, but will be useful for on-premises customers as well. CON8685
When: Tuesday, Oct 2, 1:15 PM – 2:15 PM
Where: Palace Hotel – Telegraph
I will also be at the SOA Customer Advisory Board on Thursday, in case you are attending. See you at OpenWorld!
One of the joys of working in product development, especially in my earlier customer success advocate role, is the satisfaction received when helping resolve customers needs with your products!
A few months back, a key telecom customer needed to describe the semantic Enterprise Business Object (EBO) structure in a hierarchical/indented model to a flat spreadsheet so that designers can perform application mapping for the Process Integration Packs (a.k.a. PIP, basically pre-packaged integration accelerators for specific business process flows). I pointed them to a not-well publicised (and highly underestimated tool) called the XSL Mapping Analyzer (a.k.a XMAN).
Below is an email from the customer describing how useful they found the tool, in fact just one of the utilities! Thanks to the OCS Team (Balaji S G and Kurt) and KT (Sungwoo Yu) for this valuable feedback!
Side note: XMAN is actually a set of utilities my team built to parse XSL and EBO XSDs into various formats for semantic analysis of attribute level mapping; including HTML, CSV, flattened CSV and XML. It’s real power is in providing tactical SOA governance if you are using AIA canonicals, as it can help flag functional interoperability issues across projects using the same EBO, thereby encouraging service reuse and providing the ROI on your SOA. To learn more about XMAN usage, see my earlier blog post and OOW 2009 session.
— Email below published verbatim with prior owner’s permission —
I’m glad to share my experience with Rajesh’ blog
Specially, I use to visit and learn a best practices using aia from that popular blog.
I’d like to briefly introduce my situation.
I’m working at telecom Project aims to build next generation BSS/OSS for 35 mil subscribers utilized by Oracle RODOD(Siebel,BRM,OSM, OPH and etc) .
I’m in charge of Integration team.
As we try to fit OOTB PIPs with our business, we need to analysis OOTB PIPs and design extension of PIPs.
These days our team cooperation with OCS for Communication PIP extension design on AIA Technical Document Design.
Although we cannot totally understand what existing input/output message and mapping in complex process integrations, we have to provide explain how prebuilt aia integration build interoperability with Siebel, BRM.
Basically, we can refer PIP implementation documents. However, if we closely looked at message level input/output and mapping details for reviewing service detail communication with edge application. It had been challenge.
At that time, I concerned that below so that I requested the OCS guidance
For we describe edge ABM structure or complex EBMs on spreadsheet, how can we describe different level elements on spreadsheet automatically?
Why we need to describe on spreadsheet, most of edge application function designer is not familiar with complex related xsd and different level of structure specially ebo.
So, when designed for extension of pips, Edge application function designer is unable to consider EBO structure.
If AIA team share used each operation EBM by spreadsheet, they will be easy to approach understanding EBO
Do you have any idea for that?
1. How to automatically convert message structure xsd to table. (It could be different structure distinguished by indentation)
2. If we describe different level elements distinguish using XPath, How we automatically extract XPath of all nodes from EBM.
Thanks to OCS(Balaji, Kurt) helps
We can utilize AIA Development Tools such as XMAN, XSD Flatter and generated XMAN reports RV11.1.
Particularly, XSD Flatter is right to solve above two problems.
For instance, I’m going to explain how I can extract element tree on spreadsheet from SalesOrderEBM.xsd
cd $AIA_Installed Directory/DeveloperTools/XSDFlattener/bin/
xsd2csv.sh -inputSchemaURL $AIA_Metadata_Directory /AIAComponents/EnterpriseObjectLibrary/Industry/Communications/EBO/SalesOrder/V2/SalesOrderEBO.xsd -rootElement ProcessSalesOrderEBM
As converted, I’ve got a csv file with x-path, cardinality, annotation and element tree with display hierarchy using indentation, and then reformatted below.
Even, I can convert ABM of Siebel Integration Object Message as well.
xsd2csv.sh -inputSchemaURL $AIA_Metadata_Directory /AIAComponents/ApplicationObjectLibrary/Siebel/V1/schemas/SWIOrderIO.xsd -rootElement ListOfSWIOrderIO
In addition, I aware generated RV11.1 XMAN report already provided whole EBM csv information by support.oracle.com
Also I can generate csv report from all of EBM using eol2csv.
eol2csv.sh -inputDir $AIA_Metadata_Directory /AIAComponents/ApplicationObjectLibrary/Siebel/V1/schemas -outputDir ~/eoloutput/AIAComponents/ApplicationObjectLibrary/Siebel/V1/schemas
As described in the paper, these services are used by customers/partners to extend and integrate with Oracle Fusion Applications, whether in on-premise or SaaS mode. This post describes the keyword in detail by addressing five frequently asked questions.
Q1. What does the EXTERNAL keyword imply for integration scenarios and SaaS deployments?
To understand this, let’s look at the Fusion Applications deployment topology below Note: this shows only SOA Composite services, but is also applicable for ADF Services.
The topology splits visibility to web and service resources into two categories – internal and external. This is achieved by fronting all HTTP requests through two different Oracle HTTP Servers (OHS), one for internal traffic routed between Fusion Applications servers, and another for external sources, which has only a small subset of the routing rules to prevent unauthorized access by external systems. This approach facilitates unhindered access within the Fusion Applications domain and acts as a firewall to restrict access to external systems.
In the example shown above, internal clients (i.e. those deployed in the same Fusion Applications domain) would have access to all composite services - A, B, and C and any service endpoints that they provide. In contrast, all other external clients are restricted to accessing only services provided through composites A and B.
Another characteristic of services that are exposed externally is that they also enforce a more stringent Oracle Web Services Manager (OWSM) policy using SSL or WS-Security message protection. By contrast, services NOT marked as EXTERNAL are protected using the OWSM Global Policy Attachments (GPA) feature, which in the case of Fusion Apps do not enforce message protection and rely only on username token or SAML identity propagation.
As you may have guessed by now, services tagged with the EXTERNAL keyword in OER, are the only ones provisioned with routing rules on the External OHS and protected with a stringent message protected OWSM policy. This is what makes them suitable for application integration use cases; even more so in the cloud where deploying custom services to the SaaS WebLogic Server domain may not be possible.
Q2. The service I want is not marked as EXTERNAL. Can I just tag it with the keyword for my integration project?
As explained above, making a service “EXTERNAL” is more than just tagging the keyword in OER. The service also needs to be secured using a message protection enabled local OWSM policy and requires modification of the OHS routing rules to allow service URI access to the external world. For Oracle-shipped services, this is done by the Provisioning framework. For custom services, this can be possible in on-premise and hosted installations, but may not be possible in the SaaS mode.
Most likely, if an Oracle-shipped service has not been marked as EXTERNAL, it is due to specific functional and/or security reasons, which is usually not addressable at the customer site.
Q3. If I can’t change non-EXTERNAL services, why document them in OER?
While it is true that non-EXTERNAL services cannot be consumed by external clients, they can still be consumed by internal clients, such as custom implemented composites that are deployed in the Fusion Applications SOA domain in on-premise or hosted deployments. Moreover, apart from service invocations, many composite services also have capabilities for layered customizations for BPEL processes and Oracle Business Rules. The OER entries for these non-EXTERNAL services therefore serve as API documentation.
Q4. Are EXTERNAL services the same as “Public” services?
The two terms — “EXTERNAL” and “Public” — are frequently used interchangeably, however, they are not synonymous! “EXTERNAL” refers to service visibility in the topology, while “Public” basically amounts to the level of API support provided by Oracle. In fact, there is no attribute called “Public”, instead it is referenced by the Compatibility attribute value of Supported.
While most EXTERNAL services tend to be Public, there are exceptions. For instance, mobile-enabled services accessed by iPad or iPhone apps (external to Fusion Applications) will be tagged as EXTERNAL. However, if the only intended supported client is the pre-certified mobile app, then the service may be marked with a Compatibility value of Not Supported to effectively make it “Private”.
The Fusion Applications OER white paper also lists the various combinations of the Keyword and Compatibility tags and their implications for service use in integration projects.
Q5. How do I find all available EXTERNAL services?
Using the cloud hosted OER instance. Simply search for EXTERNAL and limit the Asset Type to ADF Service or Composite Service to filter the results.
IMPORTANT NOTE: This is a simple text search and will result in services that have the word EXTERNAL in any metadata, including descriptions. Therefore, you may get false positives. To confirm the service accessibility, always check the Keyword value on the Taxonomy tab of the service detail page as shown in the screenshot at the top of this post.
Hopefully this post has addressed most of the questions about the EXTERNAL keyword usage. If you still have some, feel free to sound off in the comments.