The SOA puzzle

04.04.2005
Von Justin Then

Let?s not kid ourselves. The concept of a service-oriented architecture (SOA) is nothing new. IT gurus and technical evangelists have been advocating this concept for application development for many years -- some say as far back as the 1980s.

?Some people called it component-based development, while others would call it object-orientation. Ultimately the concept is all about breaking down a large program into reusable pieces that span across the network,? says Ernest Chen, BEA Systems? senior manager for product marketing in Asia Pacific.

Chen says that although people have previously talked about the SOA concept -- for instance, in terms of the Common Object Request Broker Architecture (CORBA) standard -- the challenge then was in overcoming the technicalities of these earlier approaches.

?It was very difficult because CORBA required a high level of technical skills. And it is not loosely coupled. What that means is that the building blocks or components that talk to one another, talks at a very closed level,? he explains. ?If you change something it affects the rest of the application. And in terms of maintainability for these kinds of applications, it is very difficult to achieve.?

But with the advent of industry standard web services, IT resources can now be loosely coupled, thus IT resources do not have to have knowledge of the underlying hardware or software operating systems, says Albert Tay, IBM Software Group?s senior manager for the business development of WebSphere in the ASEAN region.

?The standardization of services components makes the integration problem easier to handle. You can create these services components once and reuse these assets to drive better cost efficiency from your IT investments. In addition, the loose coupling enables the infrastructure to change more dynamically, which enables a more responsive enterprise,? adds Tay.

Chen says that today?s concept of an SOA operates at a much higher level as compared with previous approaches. ?In fact, it operates in terms of a business service. When you define a component, it?s actually called a service. These services can be pretty high level, like processing a credit card or paying some bills. And it?s presented at a level that business users can understand,? he adds.

Ultimately, what an SOA aims to achieve is to align IT with real business requirements. Hence, if a business user has a requirement, it can be translated into services in an SOA environment, says Chen.

It is interesting that when people talk about creating an SOA, they usually identify it with the use of web services in its implementation. While SOA implementations can be based on web services, vendors are quick to note that other technologies can also be used.

?Web services is not the only way to implement an SOA. Good service orientation can be practiced using any technology, as long as you adhere to industry standards,? says Tan Loke Uei, developer evangelist at Microsoft Malaysia.

?The nature of an SOA dictates that one focuses on the services and its agreement and contracts instead of the technical implementation,? he adds, noting that RosettaNet is a good example of an SOA implementation where the standards used are limited to the manufacturing scope.

IBM?s Tay also says that SOAs can technically be built using proprietary technologies. However, the future benefits would be greatly limited by not leveraging industry standard technologies such as those embraced by web services.

With all the talk and sometimes hype surrounding the SOA concept, it?s little wonder that end user organizations are becoming wary of vendors? capability to deliver on their promises. Although organizations in Asia have shown some interest, actual SOA implementations are sorely lacking when compared against their US counterparts.

BEA?s Chen acknowledges this fact, and says that a lot more education will have to be carried out by all vendors to help customers understand what an SOA is all about.

?I don?t have a firm answer as to why some companies are apprehensive. Maybe people think this is all hype. Initially, there was so much talk and promise that SOA would be the panacea for everything IT, so maybe it sounds too good to be true,? says Chen.

Nevertheless, Chen says that those who understand the SOA concept realize that it can be a good integration technology. The essence of an SOA is about reusable services and the ability to hook up disparate applications, he adds.

IBM?s Tay agrees and says that an SOA can help organizations close the gap between how business processes are designed and how IT implements the applications and communications to make those business processes real.

?SOA provides a cleaner and more flexible architecture that can span enterprise boundaries and help deliver what business leaders request more than anything else. And that is speed. Speed to respond to market opportunities, speed to meet customer demands, and speed to respond to external threats to the business. SOA is the guidebook for building an IT infrastructure that enables this,? claims Tay.

Organizations should also be aware that it takes more than just having the right products and technologies to make any SOA project a reality. Apart from issues related to standards for web services, which are continually addressed by non-profit organizations such as the World Wide Web Consortium, OASIS and the Web Services Interoperability group, companies must take into consideration the skill sets that are available at their disposal.

According to Tan, the lack of architects who are able to create, design and guide the implementation of these projects is a concern. There are also many disparate or legacy systems in today?s IT environment, and organizations must integrate these systems first as a prerequisite for developing a true SOA, he adds.

Chen says that an SOA project is all about an approach to development. In addition to products, organizations really have to go about defining an enterprise approach to SOA.

?You need to think in terms of services and how you?re going to manage these services. It can be spaghetti-like because it?s easy to build services, but once you have thousands of these services then the challenge is in managing all of them,? he says. ?So, you really need to look at SOA projects from a governance or methodology point of view.?

Additionally, Chen says that developers need to also change their mentality towards application development. Wrapping something with XML to create web services is not difficult, he adds, but developers need to bear in mind that what they?re creating would be used by some other applications that they don?t even know about.

For Tay, he believes the biggest challenge that organizations face today in implementing an SOA is in how and where they should start. Many organizations implement web services in an SOA from the ground up by identifying some of the easiest opportunities to start off with, he adds.

?However, sometimes this approach isn?t always linked to the most significant business problems that an organization is trying to solve. Ultimately, building a successful SOA should be about aligning technology with important business goals,? says Tay.