Performance by using patterns in service implementations by Maarten Smeets

clip_image001

 

Performance in service oriented environments is often an issue. This is usually caused by a combination of infrastructure, configuration and service efficiency. In this blog article I provide several suggestions to improve performance by using patterns in service implementations. The patterns are described globally since implementations can differ across specific use cases. Also I provide some suggestions on things to consider when implementing such a pattern. They are technology independent however the technology does of course play a role in the implementation options you have. This blog article was inspired by a session at AMIS by Lucas Jellema and additionally flavored by personal experience.
Patterns

Asynchronous services

Suppose a synchronous call is made and the system takes a while to process the information. In the mean time the end-user might be waiting for the processing to be completed while the end-user might not (immediately) be interested in the response. Why not make the process asynchronous?

Making a process asynchronous has some drawbacks. The result of the processing of the request will not be available immediately in the front- and back-end so you cannot use this information yet and often you do not know when (and if) the information will become available. If something goes wrong during processing, who will be informed to take measures? (How) does the back-end inform the front-end when it’s done? You can think of server push mechanisms.

Claim-check

This is of course a famous pattern. The claim-check pattern is often used when large objects are used such as large binary files, which you do not want to pull through your entire middleware layer. Often the data is labelled and saved somewhere. The middleware can get a reference to the data. This reference can be send to the place it needs to be and the data can be fetched and processed there.

Set processing

Service calls are expensive since they often traverse several layers of hard- and software. For example I need to fetch data on a lot of persons and I have a service to fetch me person information. I can call this service for every individual person. This can mean a Service Bus instance, a SOA composite instance, a SOA component instance,a database adapter instance, a database connection and fetching of a single item all the way back (not even talking about hard- and software load-balancers). Every instance and connection (e.g. HTTP, database) takes some time. If you can minimize the instances and connections, you obviously can gain a lot of performance. How to do this is more easy than it might seem. Just fetch more than one person in a single request. 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

BPM Process Patterns using BPMN by Dan Atwood

 

    Business analysts and developers new to BPM sometimes struggle with the art of discovering, modeling, understanding and explaining business processes. BPM Process patterns provide a time proven and simple technique to shorten the learning curve and improve productivity and quality of the processes designed.  The patterns described here were created using Oracle BPM’s BPMN process modeling tool.

        clip_image002Process patterns are example fragments of processes that show how to connect activities together to solve various and common workflow problems.  Like words that are combined to form sentences, these patterns are combined to form complete processes and illustrate some of the best thoughts on modeling business processes today.   Professor Wil van der Aalst’s Workflow Patterns article written in 2002 noted that processes have common and reusable patterns.  These process patterns are broken down into these six categories that gradually grow in complexity:

    1. Procedural Patterns

    2. Advanced Branching and Synchronization Patterns

    3. Structural Patterns

    4. Multiple Instance Patterns

    5. State Based Patterns

    6. Cancellation Patterns

          1. Procedural Patterns

            Sequence Pattern

            This is the most common and obvious of all the patterns. When business analysts begin to model the way things work today ("As-Is" process) usually much of the process looks like activities strung together in a series. Instances (individual items of work flowing through the process) step through the activities one by one. 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