Microsoft Windows Azure

The Windows Azure platform is a cloud computing technology which was introduced by Microsoft and is the foundation for running applications and storing data in the cloud. Due to the competitive business demands these days there is a great need to provide efficient operational services to customers. Therefore,  cloud computing has played a vital role in the market which gives developers the flexibility to develop applications more rapidly. This is one of the reason why Microsoft decided to place itself in the cloud computing marketplace as its competitors Google, Oracle and Amazon.

Windows Azure simplifies maintaining and operating applications by providing on-demand compute and storage to host, scale, and manage web and connected applications.It is a flexible platform that supports multiple languages and integrates with your existing on-premises environment. Microsoft is trying to manage the entire cloud life cycle development in a way which it already did with the development of local applications using .Net tools. The real challenge many organizations will face is how cloud based solutions is going to handle enterprise data, where the right tools will be required to ensure data integrity is maintained.

The overall cost of Windows Azure is still much higher than a Linux based solution. Microsoft has based Azure on three pricing models according to the organizations requirements. First is the consumption-based, whereby a customer pays for what they use; second is subscription-based, where customers can avail the service over a certain period of time; and finally volume licensing for enterprise customers that want to take existing Microsoft licenses into the cloud. With these pricing models Microsoft is giving its customers the option to select which criteria best fits their business model.

Further information about Windows Azure can found at: http://www.microsoft.com/windowsazure/windowsazure/

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) is  a collection of services which communicate with each other. The primary goal of SOA is to achieve loose coupling among interacting software agents and allow services and their corresponding consumers communicate with each other by passing data in a well-defined, shared format, or by coordinating an activity between two or more services.

At the core of the SOA is the need to be able to manage services as first order deliverables. It is the service that we have constantly emphasized that is the key to communication between the provider and consumer. So we need a Service Architecture that ensures that services don’t get reduced to the status of interfaces, rather they have an identity of their own, and can be managed individually and in sets.

Within an organization and other organizations who are in a partner venture, code for existing business applications, expose it as web services, and then reuse it to meet new business requirements. The ability to reuse functionality that already exists outside or inside an enterprise instead of reproducing can result in a huge savings in application development cost and time. The benefit grows dramatically as more and more business services get built, and incorporated into different applications.

Web services has been playing a vital role to implement service-oriented architecture solutions. They make functional building-blocks accessible over standard internet protocols independent of platforms and programming languages. These services can represent either new applications or just wrappers around existing legacy systems to make them network-enabled.

Loosely-coupled services are typically more flexible than more tightly-coupled applications. In a tightly-coupled architecture, the different components of an application are tightly bound to each other, sharing semantics, libraries, and often sharing state. This makes it difficult to evolve the application to keep up with changing business requirements. The loosely-coupled, document-based, asynchronous nature of services in an SOA allows applications to be flexible, and easy to evolve with changing requirements.

Other approaches that integrate various business resources such as legacy systems, business partner applications, and department-specific solutions are expensive because they tend to tie these components together in a customized way. Customized solutions are costly to build because they require extensive analysis, development time, and effort. They’re also costly to maintain and extend because they’re typically tightly-coupled, so that changes in one component of the integrated solution require changes in other components. A standards-based approach such as a web services-based SOA should result in less costly solutions because the integration of clients and services doesn’t require the in-depth analysis and unique code of customized solutions.

The initiation of Service Oriented Architecture and web services has allowed businesses to cut down on cost and provide greater flexibility. It enables businesses to leverage existing investments by allowing them to reuse existing applications, and promises interoperability between applications and technologies. SOA is the separation of the service interface from its implementation. Such services are consumed by clients that are not concerned with how these services will execute their requests.

Figure 2: A Service-Oriented Architecture

Business Process Management (BPM)

Business Process Management (BPM) is a method which promotes business efficiency and effectiveness along with ensuring that the processes are in line to achieve the business objective. Many organizations strive to accomplish business practices where overall operational cost could be minimized along with improved customer service, product quality and on time delivery speed.  BPM gives an organization the ability to define, execute, manage and refine processes.

It is one of the initial technology that caters ongoing collaboration between IT and business users to jointly develop applications that effectively integrate people, process and information. Process modeling is a vital component for business applications as the process flow define how the business processes will be carried out. These processes can be categorized in different ways such as duration, complexity, volume, industry etc. Like the Software Development Life Cycle (SDLC),  Business process management also has a life cycle consisting of 5 phases: Model, Automate, Manage, Monitor, and Optimize.

BPM Process Life Cycle:

Model

The first phase of BPM is to create a model. In the Model Phase, a high-level diagram of the processes is created which is a representation of an entity. Initially, the idea is to gather just enough detail to understand conceptually how the process works without going into detail about its implementation.

Automate

In the Automate Phase, the model is expanded to create the specific set of  rules needed to run the processes. Details about the model is specified in this phase.

Execute

The Execute Phase of BPM consists of interpreting the instructions created in the Automate Phase to manage the flow of work from the beginning of the process until its completion. In BPM software, the workflow engine is responsible for creating tasks and automatically directing them to the right people or systems based on the process rules much like the way a GPS system provides you with step-by-step driving instructions to your destination.

Monitor

The Monitor Phase is where process performance is measured along with its time duration.

Optimize

During the Optimize Phase, both IT and business users strive to optimize the processes in order to achieve the business goal. Optimization include such things as enhancing the data collection forms, removing (or possibly adding) tasks, automating steps that were previously completed manually, or modifying the reports generated.

The type of process determines the relevance of one process technology over another. Each process technology is positioned in the exhibit above according to processes they are most suited to manage. The 5 steps of business process management could be considered as part of a continuous cycle. Once potential process changes are identified, the cycle begins again and the best suggestions are eventually implemented. In this way, you are able to make continual and incremental improvements to the process.

Business Process Management Cycle

Dilbert