Showing posts from 2011

Understanding and Terminating the Enemy- Deadlocks

Concurrent programming is hard. And its even hard when you do it badly. Deadlocks are one of the classical enemies you must try to avoid when writing a concurrent program. Because if you face any deadlocks in your program its really hard to find and fix them. In this post i’m trying to explain what deadlocks are and I’ll explain how to debug a program to find and fix deadlocks. There are different definitions for deadlock personally i prefer the following definition since i feel its the perfect one. “A set of processes is deadlocked if each process in the set is waiting for an event that only another process in the set can cause (including itself)” [1] There are four necessary conditions to be there in a program if its leading to a deadlock. Which means if a program ended up in a deadlock state it that program will satisfy following four conditions. Mutual exclusion : The resources that must involve in the problem must only have mutually exclusive access. Which means o

WSO2 Enterprise Service Bus 4.0.0 Released!

The WSO2 ESB team is pleased to announce the release of version 4.0.0 of the Open Source Enterprise Service Bus (ESB). WSO2 ESB is a fast, lightweight and user friendly open source Enterprise Service Bus (ESB) distributed under the Apache Software License v2.0 . WSO2 ESB allows system administrators and developers to easily configure message routing, intermediation, transformation, logging, task scheduling, fail over routing and load balancing. It also supports transport switching, eventing, rule based mediation and priority based mediation for advanced integration requirements. The ESB runtime is designed to be completely asynchronous, non-blocking and streaming based on the Apache Synapse mediation engine. WSO2 ESB 4.0.0 is developed on top of the revolutionary WSO2 Carbon platform (Middleware a' la carte), an OSGi based framework that provides seamless modularity to your SOA via componentization. This release also contains many new features and a range of optional components (

Web Service Orchestration with an ESB

Web service orchestration can be thought as a process of combining and coordinating of different web services based on a predefined pattern to give a desired result. Web Service Orchestration is one of many features that comes with an ESB (see [1]). Even though Business process servers can be used for this kind of tasks , using a business process server for a simple service orchestration scenario will be a waste of time. So in this blog post i’ll explain how we can use an ESB for service orchestration which will be a much simpler task.. I’ll be using WSO2 ESB 3.0.1 for this. Let’s 1st come up with a scenario. There are consultants who can give us some advices on life when we are in need. So lets try to have a consulting service. But to consult a “Life guru” or the consultant 1st we need to get a ticket and then go to the “Life guru ” with that ticket. Following is the high level message flow for this scenario 1) Client invoke ESB proxy service with Parameters name and ag