Thursday, October 26, 2006

Beyond SOA - SOBA

SOA in practice can be applied at two levels. One is strategic where SOA is primarily applied to bring business-IT alignment. Another is operational, to bring interoperability and Standards - E.g Application Integration/Portal Integration.

But the real value of SOA can be achieved only when an organization's business processes can be modeled, implemented, monitored and optimized. This places a lot of emphasis on how well SOA gets implemented. And What is the process in which SOA initiatives are translated from requirements to executable code.

As the industry understands this case, lot of work has been happening on this front.

1. SAP, Oracle are revamping their packaged business applications into Service-Oriented Business Applications (SOBA). The traditional way of implementing ERP systems is fitting your business processes into the applications' capability. The new way of implementing is to customize your application to implement your very own buisiness processes. SAP goes one step further on this front and unwraps all the business processes embedded in their applications as "models", so that these models can be customized according to organization needs and implemented.

2. Lot of industry specific frameworks/models are becoming available. HP provides specific frameworks for industries such as Manufacturing and Banking. IBM has models for Retail Banking, Insurance and Retailing. These models encapsulate the industry knowledge and promise to jumpstart the SOA initiatives.

3. SOA fabrics - Lot of vendors are providing industry specific SOA fabric / wrapper code that can be wrapped on a corporate's IT systems. One such example is Webify - that provides SOA fabric for Banking and Insurance sectors.

So Which industry you are into and How are you planning to go about doing SOA?

Wednesday, October 18, 2006

Do Mashups have a place in the Enterprise?

Of late, creating mashups have become a child's play. For few who are new to the terminology, mashups are the new ways of creating a new web application by combining/repurposing existing web applications. The most popular ones are built around the Google maps, where a real-estate information (like availability of apartments/houses in various areas within a city) provided by a realty web site can be mashed with a Google map of that city to produce a new UI that plots the availability right on the map itself.

Nowadays mashups are created with a wide range of technologies - Javascript, Web Services, XML APIs over HTTP or AJAX.

My thought is Will they have any place in the mission critical Enterprise web applications ? (e.g. Online Banking). Am not sure whether any enterprise has ventured into mashups so far.

But this new paradigm will certainly change the way in which applications would be built in future. Typical IT project cycle is waterfall model - For a defined set of business requirements, a set of candidate technologies/solutions would be analyzed to find a better suit. But the mashup way of creating applications reverses the game. Using the existing APIs/services, what new applications can be built innovatively that will add value to the business & customers.

Composite Services Vs Composite Applications

Recently one of my friends questioned me what is the difference between composite services and composite applications. Are they same ?. If they are different, what is it?

On top of my mind, I could say both are different. But I couldnt explain it very well.

When I did some (re)search, this is what I understand - Composite services are micro-flows. When multiple elemental/basic services are combined to be offered as a single service, then it is called as a composite service. These services are stateless, unlike 'Process' services where also orchestration of services takes place, but in stateful nature.

While composite service is a design pattern in SOA, 'Composite Apps' looks like a new way of 'architecting solutions'. There are several vendors in the market who provide tools & platforms for building composite applications.

Typical example, that I find in many sites - is integrating the set of distinct applications used by a contact center representative in Banks/sales. Typically, the contact center agent needs to shuttle between multiple applications in his desktop to service a client. The service process might include - duplicate entry of customer data, different security levels, fragmented/manual steps. How nice would it be, if the contact center agent gets a single unified application interface that enables him to accomplish the business process?. How good it would be, if the agent doesn't need to switch between apps to accomplish a task/process?. The solution cannot be just a 'dashboard' that provides links to access multiple apps via single interface. The solution needs to be much more intelligent in terms of automating steps, encapsulating business rules, eliminating redundant data entries, seamless integration of back-end systems, seamless presentation flow across different apps.

Ok, now you may be wondering, this is what 'Portals' are supposed to accomplish. Yes, Portals can also be the platforms of composite applications. But so, far Portals have been used only as 'Dashboards' or 'Lightweight EAI' of applications. It has not been utilized to an extent where Portals can be used to automate a complete business process, where each step of a process, draws logic from several layers (presentation, business logic and data access) of participating discrete applications.

But, the apps need not be always built on 'Portals'. It can be built as a 'Desktop' solution as well. Some of the tool vendors promise to integrate the native user interfaces of participating applications (thick client/green screen emulators) in a composite application.

The Gartner definition of Composite applications goes like this - "Composite applications differ significantly from multistep processes because they integrate vertically among the tiers within one step of a business process, rather than horizontally across multiple steps".

Some of the characteristics of composite applications are :
- Built on SOA standards
- Integrates with various enterprise applications
- Model driven development, minimal coding
- Applications can be assembled from reusable artefacts that are already available in the enterprise.
- Can include Workflows, BPMs, and Microflows

While there are many vendors out in the market, there seems to be little emphasis on 'Standards' for building those apps. While Portal standards JSR-168 has been enhanced to include inter-portlet communications, that is vital for building composite apps, Other forms (e.g Desktop) of composite apps remain properietary solutions of vendors.

Tuesday, October 17, 2006

Hello everyone,

Am an Enterprise architect in one of the leading technology solutions company in Bangalore, India.

Pre-web 2.0, I used to read and record my notes in Outlook. Now with the advent of blogs, it gives me a new platform to structure my thoughts, share it with fellow architects and eventually get feedback too.

I am planning to blog about my areas of interests including web 2.0, SOA, SaaS, Enterprise Architecture and anything else that is creating a buzz and current in IT. Am also planning to write about my thoughts on IT services, offshoring and Work culture of Software Architects.

Keep reading. I would try to make sure it is worth reading.

Bye for Now,
Bala.