Thursday, August 25, 2016

#521 SOA CS Maximum Availability Architecture / DR Whitepaper now on OTN

Great summer reading available here

Friday, August 19, 2016

#520 ICS 16.3.3. New Administration features - Notifications, Logging levels & Logging in general


Here I set hourly reporting via email.

I wait an hour and quelle surprise -

Logging Levels

This is akin to the functionality available via the Fusion Middleware EM control.
Ok, it seems very techie, requiring an appreciation of the components and services listed,
but this is a tech feature, aimed at those doing troubleshooting etc. and not your Citizen Integrator.

Talking about logging, what are the log files available to you as an ICS user?

Let's investigate this via a simple example -

Here is the response -

I now look at the ICS Administration tab -

We see 2 sets of files to download -

Let's look at the Activity Stream -

Here I see the Request coming in to ICS -

I see my new contact, Jelllo Biafra.

Here I also see the request being passed out from ICS to Sales Cloud

We also see the response from Sales Cloud -

Let's now look at the Diagnostic logs -

Note the extra AdminServer folder.

Here you find the typical weblogic logfiles -

Thursday, August 18, 2016

#519 First steps in building an API on

I just signed up for a free account and got going.

Let's look at the first 3 activities in the Apiary workflow -

Here we decide on the domain space semantics and the architectural style to be used.
Then we can jump into the design, creating an API blueprint. Apiary provides you with an excellent editor for doing this.

Just amend the default API Blueprint accordingly.

 Here I change the Name and the Introduction.

As you can see, my api will allow one to create, retrieve, update and delete customers in the CustomersDB.

Here I define the Resource:

I then define the api as follows -

The Result -

Just a couple of points to note, the blueprint is divided into sections.
These are marked by the # symbol.

# is for metadata, such as the api name and definition

FORMAT: 1A entry just identifies the document as an API Blueprint.
Essentially adhering to version 1A of the specification.

Note HOST, this refers to the production URI of your API.

## is for Resources
I have defined 2 -

### is for actions of those Resources

Note the inclusion of the HTTP Method.

The action can include Request / Response definitions -

Let's look at the definition of Get a Customer based on custid -

I click on Get a Customer based on custid -

Before I can Try, I need to Publish.

Once published, I have access to a Mock Server, which I can use for sanity testing.

Here is  the expected Response -

Apiary will also generate the client code in a variety of languages - here is JavaScript -

Here is the full list -

Apart from the Mock Server - Apiary also has a Debugging Proxy, you can leverage -

The full API Blueprint Specification is here

BTW. Instead of using the API Blueprint to describe your API, you can also use Swagger.
Check out the Apiary doc here

Once the API has been designed, you can share it.
For example, you can invite folks to review it or even go the whole hog and create a team.

As an individualist anarchist, I just invited myself.
Note, one can giving view or edit rights.

I click on the link in the email and quelle surprise -

As the Irish were wont to say, now you're sucking diesel!

Tuesday, August 9, 2016

#517 Real-Time Integration Business Insight now available as a cloud service

That was quick...

Insight is now available as a service as part of SOA CS 16.3.3.

More details on

Just click here

Wednesday, July 27, 2016

#516 Introducing Real-time Integration Business Insight

Targeting business users, Insight allows one to monitor  business metrics from processes running on SOA Suite and Service Bus.

"We have this already with BAM" you might say. But wait and see what the deltas are.

From the docs -

Oracle Real-Time Integration Business Insight, used in conjunction with Oracle integration products such as Oracle SOA Suite and Oracle Service Bus, can dramatically simplify the process of modeling and extracting meaningful business metrics.

Insight makes use of business models as the basis for data analysis -

First, you create a model of the business. The model defines what characteristics stakeholders care about, and includes abstractions such as milestones and indicators. Milestones indicate progression through business activities such as “Problem Received”, “Ticket Created”, or “Problem Resolved”. Indicators represent metrics that are useful for tracking the business, for example “Total Resolution Cost”, “Country”, “Region”, or “Customer Status”.

So imagine if I had an OrderProcess SOA composite, I may have a business model for this that includes milestones such as Order  Approved, Order Rejected, Order Fulfilled.

The business analyst creates the model and then its milestones can be mapped to the relevant OrderProcess component e.g. OrderRejected mapped to the BPEL process invoke activity - EmailRejection2Customer.

Once the Model is activated, Insight gets the relevant info from the Oracle Integration Infrastructure.
The data is then rendered in Insight, providing the business users with the salient information they require.

So what about Dashboards for rendering the data? Again, from the docs -

These metrics are immediately available in pre-configured interactive dashboards, tables, reports, and timelines.
BAM is the underlying engine used by Insight, however Insight allows you to instrument the SOA or Service Bus process, without having to re-deploy the composites, as would be the case with the traditional BAM approach. Also, dashboards are already available OOTB.


So what is happening under the hood?

Here is a simple scenario -

1. I create a simple SOA Composite, a BPEL process - ProcessMyOrder.

2. I deploy this composite to my SOA server

3. I create a Model in Insight. This model will contain business relevant milestones, such as OrderArrived, LargeOrder, OrderApproved, OrderRejected, OrderCompleted.

4. I create a Connection in Insight to my SOA runtime environment.

5. Now I can go back to my Model and map the Milestones to process activities.

But first, let's look at the Milestone definition -

Note: The Milestone types.

Now all I need to do is click on Create Mapping.

I use the connection I just created and select my composite.

Clicking on the icon above, brings me to the BPEL process.

As the Milestone is OrderReceived, I map this to the On Exit event of Receive - receive input activity.

Very simple and succinct, isn't it?

Now I map the rest of my Milestones.

I save the model and see the following -

So let's add some indicators -

Now I specify the extraction criteria, i.e. mapping the Product Dimension to the product element from the BPEL process payload.

I also map the Unique Identifier - OrderNr.
Firstly I specify the Milestone to which it is attached.

Then I map the unique identifier to an element in the BPEL payload.

Ok, I am using the custNr as OrderNr here - I forgot to add such to my order xsd.

Now the model is complete -

Now I can activate -

Now I create a process instance via EM.

I click on the Dashboard tag in Insight and - quelle surprise

I can do drilldowns -

I enter a second, this time large, order.

The Insight UI reflect this -

Again, great stuff. A real bonus for SOA Suite on-prem and cloud service customers.