Tuesday, November 17, 2009

Exception Handling

Service Oriented Architecture classified exceptions into two ways System Faults and Business Faults.

System Faults
System Faults are thrown when a runtime error occurs at system or infrastructure level. Unreachable services at runtime are one of the occurrences of the runtime error.

Business Faults
Business Faults are generally thrown when a conditional exception occurred while processing the business logic of a particular service. These exceptions are generally raised due to the business rule violations, passing invalid data to the services etc.

Exception handling in BPEL services
BPEL supports two levels of exception handlers with respect to the scope
  • Scope level
  • Process level
BPEL having a list of runtime exceptions as per the specifications. Following are the default fault handlers available in BPEL specifications.
BPEL's default Compensation handler
Default Termination handler
Exception handling in mediator components
Mediator components support runtime exceptions and they are categorized into groups -
  • All Exceptions
  • Data-related exceptions
  • Database or infrastructure exceptions
  • Recoverable/Retry-able errors

Sunday, November 1, 2009

SOA Governance Model Framework

For any successful SOA project Governance is mandatory. In General governance is the process of making appropriate decisions on behalf of the stakeholders.

What is SOA Governance refers to -'SOA Governance' manages the organization processes and policies to execute SOA smoothly. In addition, SOA governance also establishes behavioral rules and guidelines for the stakeholders who are participating in the SOA. Normally, these policies cover the organizations business, security, technology and compliance operating within the SOA sphere.

While designing the SOA Governance, Governance Model Framework helps us to identify the critical SOA concerns and also determine how best to establish governance for those concerns. Find the useful entities/artifacts of the SOA Governance Model Framework -

Wednesday, October 21, 2009

SOA Lifecycle

We can find a gap or an improper alignment between IT and business processes in traditional software development an approach which leads to huge gap. Analysis says due to this gap business-critical software services are not able to react quickly and efficiently to the business changes.

Service oriented architecture reduces this semantic gap through a new development model which align the business process services with software development. Let’s look into SOA Lifecyle and the relevant technology we use. Basically SOA Lifecycle divided into four phases:



Process Modeling -
Process Modeling is a critical phase where process analysts work with respective process managers to analyze and get the requirements. In this phase process analysts spent most of their time to define the Key Performance Indicators (KPI), Business Policies and Business rules.

We use Business Process Modeling notation (BPMN) to design business process models.

Process Implementation -
In this phase programmers implement basic services for the business processes and integrate them with the help of analysts. We use Business Process Execution Language(BPEL) to develop the business process. It is very important to preserve the SOA essence factors like 'Reusable Services', 'Loose Coupling','Integration of Services' etc.

Process Execution & Control-
In Process Execution and Control phase, we will execute the developed processes. When execution of process happens they will interact with various external services.

Process Control also important part in this phase where process managers involve in checking whether processes are executing properly and efficiently.

Process Monitoring and Optimization -
Monitoring and Optimization phase is also an important phase where process owners monitor the key performance indicators. Generally we go for Business Activity Monitor (BAM) in this phase to monitor the important parameters and KPI's.

If any service need to raise its optimization level, again the process or that particular service send back to the starting phase i.e. modeling to identify and improve its efficiency levels. All the processes follow similar phases which we discussed above and this happens iteratively without impacting the business.

Friday, October 16, 2009

Creating Simple Oracle BPEL Process

This article shows how to create, deploy and test a simple BPEL process on Oracle SOA suite 10g using JDeveloper.

1. Right click on the Applications on Application Navigation and enter the Application name in this case 'MyFirstBPELApplication'.



2. In Step 2 right click on the MyFirstBPELApplication and create a new Project. Enter the project name using proper naming conventions.



3. Once your project is ready, now create a BPEL project through BPEL Project Creation Wizard and name it as 'AddBPELProcess'.

Select the Asynchronous BPEL Process in the template select box.



4. Now our BPEL Service is ready, in our business logic we will add a variable with a constant value. Drag and drop the Assign activity onto the design area.




5. Double click on the Assign activity to configure our add operation. Select the Copy Operation option in Create select box to incorporate our business logic.



6. Now in operation wizard choose Expression as a Type at input variable side.




7. For our simplicity JDeveloper provided wide range of functions, now select Mathematical Functions option so that we can use the add operation in our process. In our bpel process we add a constant value (120) with the input value, so pass the constant value and input variable to the add function.




8. Once you done with the business logic now assign the output to the output variable and click on OK.




9. Your BPEL process is ready to deploy on the Oracle SOA Suite 10g. Make sure that your server is running and you are able to see the server instance under the ServerConnection.




10. If every thing is OK then you are able to see successful Build on the Ant console.




11. Now lets test our BPEL process in the Oracle BPEL Process Manager. Open the BPM and login using default login authentication. Find our BPEL instance under BPEL Process tab here it is AddBPELProcess.




12. Click on the AddBPELProcess instance to initiate the testing process. Pass the input value in the text box here it is 120 and click on the Post XML Message button.




13. Finally, lets check for the result under flow tab which shows the visual representation of the bpel process. Double click on the assign activity to check the output variable value.

See, it is 240 (120 (Constant) + 120 (input value))that means our first bpel process worked well!!!.




Hope, this article useful for the developers who just started learning Oracle SOA Suite. Do not hesitate to reach me for any queries on this workout.

Wednesday, October 14, 2009

What, Where and Why

What -
Lets start with 'What is SOA?' - Service Oriented Architecture is an architectural approach to develop ad-hoc services and connect them to form an information management system. SOA allows us to create distributed services and exposes themselves to other services with an predefined service contract.

So what is a Service here - Yes, A service is an independent software component having business logic and expose itself through self-describing interface.


Where -
Why we bother about SOA, because of its decoupling nature. As we know if any system coupled tightly with the services it is very difficult to modify without disturbing the other services.

The cost of maintenance raises as the count of services increasing in tightly coupled distributed system. In the maintenance cost perspective SOA gives you the feasibility to minimize the cost factor.


Why -
So where we can use this SOA? basically most of the SOA projects are integration based projects where we can use the loose coupling concept to integrate the services.

SOA perfectly fits in the area where we reuse and composite the services to create new business processes. When a business extending, modifying its services or switching to other service providers or consumers SOA is the best option.