Pondering the Oracle Service Bus by René van Wijk

What we are going to do in this post, is present some real-life problems and show how to obtain the necessary data, analyze it, and make corrective actions. Oracle Service Bus architecture is centered around an Enterprise Service Bus. The bus provides message delivery services, based on standards including SOAP, HTTP and Java Messaging Service (JMS). It is typically designed for high-throughput, guaranteed message delivery to a variety of service producers and consumers. It supports XML as a native data type, while also offering alternatives for handling other data types. Oracle Service Bus is policy driven and enables us to establish loose coupling between service clients and business services, while maintaining a centralized point of security control and monitoring. It stores persistent policy, proxy service, and related resource configurations in metadata, that can be customized and propagated from development through staging to production environments required. The message-brokering engine accesses this configuration information from its metadata cache. freezecpuusage
Oracle Service Bus is an intermediary that processes incoming service request messages, determines routing logic, and transforms these messages for compatibility with other service consumers. It receives messages through a transport protocol such as HTTP(S), JMS, File, and FTP, and sends messages through the same or a different transport protocol. Service response messages follow the inverse path. Thne message processing by Oracle Service Bus is driven by metadata, specified in the message flow definition of a proxy service.
The processing of messages occurs in the following sequence of events:

  • Processing of the inbound transport
  • Message flow execution
  • Processing of the outbound transport

After a message is sent to an endpoint (either a business service or another proxy service), Oracle Service Bus processes the response message in a similar model as that described in the preceding sequence of events.
No response? How is that possible?
In this case the Oracle Service Bus came to a ‘stand-still’ for a particular interval. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

OSB unit testing, part 1 by Qualogy

First you need to implement the simple bpel process like this :
Testcase-execIn my current project, I inherited a lot of OSB components that have been developed by (former) team members, but they all lack unit tests. This is a situation I really dislike, since this makes it much harder to refactor or bug-fix the existing code base. So, for all newly created components (and components I have to bug-fix) I strive to add unit tests. Of course, the unit tests will be created using my favourite testing tool: soapUI ! Unit of test The unit test should be created for the service composition, which in OSB terms should be the proxy service combination with its business service. Now, since you do not want to rely on any other services, you should provide mock services for all services invoked from your Component-Under-Test. In a previous article, I wrote about mocking your services in soapUI. While this approach would also be valid here, creating a mock service (and certainly deploying it on a separate WebServer) does violate one of the core principles of unit testing: to make your unit tests as self-contained as possible, i.e. not depending on any external components. In this article, I will show you how to achieve this by simply providing a mock response inside your unit test. Scenario The scenario I implement for testing is a simple currency converter; the external request consists of a from and a to currency, and an amount (in currency from). The service will perform an exchange rate lookup using the WebServiceX CurrencyConverter and return a response to the caller consisting of both the source and target currencies and amounts. For the purpose of unit testing, I will implement a mock response for the exchange rate lookup. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

Using Split-Joins in OSB Services for parallel processing of messages. By Rutger Van Iperen

For-Each settingsThe Split-Join can be a very useful tool in your OSB services yet seems to be underestimated. When I did some asking around it turned out not many developers use this, even though I can come up with plenty of uses for the Split-Join. The Split-Join’s strength is in numbers, meaning it is the most powerful when you need to process a lot of pieces of similar data. For this example I used a simplified version of a project I am working on. In this project mobile devices are set to send data about rainfall to a database. The data is collected at a regular interfal creating a record and sent to the database per session which contains a large set of records. Instead of processing these records one at time I can process them concurrently and save a lot of processing (and waiting) time.

I created the XML Schema files and WSDL’s for the two services using JDeveloper and not Eclipse/OEPE because its design interface for these files is a lot more userfriendly (although this is of course personal preference). Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

OSB, Service Callouts and OQL – Part 1 by Vijay Kumar

Oracle Fusion Middleware customers use Oracle Service Bus (OSB) for virtualizing Service endpoints and implementing stateless service orchestrations. Behind the performance and speed of OSB, there are a couple of key design implementations that can affect application performance and behavior under heavy load. One of the heavily used feature in OSB is the Service Callout pipeline action for message enrichment and invoking multiple services as part of one single orchestration. Overuse of this feature, without understanding its internal implementation, can lead to serious problems.
This post will delve into OSB internals, the problem associated with usage of Service Callout under high loads, diagnosing it via thread dump and heap dump analysis using tools like ThreadLogic and OQL (Object Query Language) and resolving it. The first section in the series will mainly cover the threading model used internally by OSB for implementing Route Vs. Service Callouts.

OSB Pipeline actions for Service Invocations

A Proxy is the inbound portion of OSB that can handle the incoming request, transform/validate/enrich/manipulate the payload before invoking co-located or remote services. The execution logic is built using the proxy pipeline actions. For executing the remote (or even local) business service, OSB provides three forms of service invocations within a Proxy pipeline:

  • Route – invoke a single business service endpoint with (or without) a response. This happens entirely at end of a proxy service pipeline execution and bridges the request and response pipeline. The route can be treated as the logical destination to reach or final service invocation. There can be only one Route action (there can be choices of Route actions – but only one actual execution) in a given Proxy execution.
  • Publish – invoke a business service without waiting for result or response (like 1-way). The caller does not care much about the response. Just interested in sending out something (and ensuring it reaches the other side).
  • Service Callout – invoke one or more business service(s) as part of message augmentation or enrichment or validation but this is not the primary business service for a given Proxy, unlike the Route action. The service callouts can be equivalent to credit card validation, address verification while Route is equivalent to final order placement. There can be multiple Service Callouts inside a Proxy pipeline. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

OSB 11g – A Hands-on Tutorial by Sivakumar Gonugunta

I published a OSB11g tutorial considering the use case described in my earlier blog posts. The tutorial can be accessed from here as I am not sure on how to place it in OTN. I would like to know your valuable comments on this. The WSDLs and other material used in this tutorial can be downloaded from here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

OSB Threading and the HTTP Transport White Paper by Mike Muller

I have created a white paper explaining the OSB threading model with a focus on the HTTP transport.  I have heard from several customers who have experienced difficulty with tuning HTTP services with relation to the use of work managers.  This paper’s goal is to explain the threads involved in servicing a proxy and how work managers fit into that model.

OSBThreadingModelHTTPTransport_1.1

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum

Oracle Service Bus JMS Deployments Utility by Mike Muller

For proxy services utilizing the JMS transport, OSB receives messages from destinations by using an MDB. These MDBs get generated and deployed during activation of the service configuration. OSB creates a random, unique name for the J2EE application that gets deployed to WLS. The name starts with “_ALSB_” and ends in a unique series of digits. The EAR files are written to the sbgen subdirectory of the domain home directory. You will see these applications on the WLS console page for “Deployments”.

For various operational reasons, there are times when the application name for a given proxy service needs to be determined. Since the generated name of the application doesn’t reflect the name of the service, it becomes difficult to determine the relationship between the service and its EAR file. In fact, it can not be discerned from either the OSB or WLS consoles.Read the full article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum

Oracle Service Bus 11g: statistics projects and services with WLST – part 2 by Michel Schildmeijer

codeOSBstatsAs a follow-up on my earlier blogpost about how to list all your projects and services in your OSB domain, I’ve extended the script with some count statistics. Look at this screenshot below. I blacked out the names for the services.

In the example I have used I extended it with some statistic counts on some Proxy services. Now at this moment the script errors out on non monitored services, but that is because I did not implement a check if a service is monitored or not. Which should be done by checking if the value of isMonitoringEnabled in the CommonServiceConfigurationMBean is set to true.

Look below at some of the code. The first section is to get the list of projects and their proxy or business services (in my example I used proxy services). With a for loop on the getAllResourceStatistics method I filtered out the statistics I’d like to see: some counts about pipeline and SLA. Read the full article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum

Advanced OSB in 21 days” by EAIESB

EAIESB “Advanced OSB in 21 Days” provides developers, with step by step instructions to learn and use OSB components transports (File, FTP, JMS, Database, and Email), Java Callout, Service Callout, Dynamic Routing, Securing SOA and OSB proxy services and Exception handling in OSB using sbconsole. For more details visit our website.

Looking for additional SOA books or if you have published a book, please feel free to add it to our publications wiki!

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum

Enterprise Service Bus article part of Industrial SOA series

Everyone seems to need to use an enterprise service bus (ESB) nowadays, but there is so much confusion about its actual benefit and the various concepts this term entails. This uncertainity is revealed in statements like, "Help! My boss says we need an ESB," or "Why do I need an ESB at all? Can’t I achieve the same thing with BPEL or BPMN?" or even "We can do everything ourselves in language X." This article is an attempt to answer some of the most important questions surrounding this term using concrete examples, so that the areas of application that can be deemed "correct" for ESBs can be clarified:

  • What exactly is the definition of an ESB? Is it a product or an architecture pattern?
  • What are some practical uses for an ESB?
  • Do I need an ESB to build an SOA platform?
  • Which requirements do I need to satisfy?
  • Which criteria can I use to select the ESB that is most suitable for my needs?

Defining the ESB
An accepted definition for this term has yet to be firmly established that is most likely caused by a lack of industry standards, whereas standards like BPEL and BPMN 2.0 exist for process engines and other components. The term “Enterprise Service Bus” was coined by Gartner in 2002, and further introduced by the analyst Roy Schulte to describe a category of software products that he observed were available on the market at that time. Ten years later, there is still very little agreement on what exactly an ESB is or what it should deliver. There are different definitions depending on the manufacturer or source. Among other things, an ESB is defined as:

"A style of integration architecture that allows communication via a common communication bus that consists of a variety of point-to-point connections between providers and users of services."

"An infrastructure that a company uses for integrating services in the application landscape."
Read the full article here.

img

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit www.oracle.com/goto/emea/soa (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki Mix Forum