In a service oriented architecture (SOA), functionality and information resources from existing applications are made available as services. In theory, enterprises can instantly reassemble those services into flexible new composite applications that cut across the old application silos, remoulding existing IT assets to meet the present-day process automation needs of users.

In practice, there are several more steps that enterprises must take before they can realize the promised productivity benefits of SOA. Among the obstacles they face:

Raw services, once freed from the constraints of the original applications they were created for, are also stripped of their original context. This makes it difficult to adapt them to new purposes.

New tools and techniques are required to assemble services into composite applications. Enterprises must choose from a bewildering array of first-generation orchestration and process management tools.

Once new composite applications have been created, organizations face the disruption and training costs of introducing users to yet another new application environment.

Two recently-launched startups are among those aiming to help enterprises bridge these gaps between the vision and the reality of SOA.

California-based Above All Software, for example, provides a way of documenting and organizing raw services exposed within an SOA infrastructure, allowing individual domain experts to label service components in a way that's meaningful to other users.

London-based Corizon, meanwhile, focuses on reusing an often overlooked component of application infrastructure  the application logic embedded in the screen displays that the user interacts with. It provides a means of reusing that user interface logic when joining up processes across multiple applications.

"We are just enabling the user part of the service oriented architecture," says Eric Guilloteau, Corizon's CEO. "Everything you hear about web services, the user is left out of it ... We're about things where you can't automate the user away."

User-centric development

Both companies believe their tools help foster a user-centric approach to application assembly. Instead of building applications that force users to work in a way that suits the software, their products add an extra layer that crosses the boundaries between separate applications, so that users can access functionality and data wherever it happens to be.

"You know what your best practices are. Assemble them together as needed," says Deborah Scharfetter, vice-president of product marketing at Above All Software. "We're saying you can put a layer on top of your environment that helps you repurpose it without you having to change it."

One of Corizon's earliest customers says this focus on user-driven processes can herald a new dawn for IT. "By adopting user-centric development, the IT team will be more in tune with the user communities it serves," says Mike Tilley, former CIO at UK telecoms provider BT Retail, which implemented Corizon's software in its call center. "In environments where employees are continually interfacing with multiple IT applications to serve customers directly  such as within a customer contact center  the benefits become immediately apparent."

Meaningful labels

Above All's tools aim to make the resources within a service-oriented architecture more accessible to business analysts and users. When raw application resources are first exposed using web services, they can be reused only by specialists with a detailed knowledge of the original application environment, because they're still packaged and labelled according to its internal conventions. Those labels have little if any useful meaning outside of that narrow, technical context  and they may even have contradictory meanings in other applications.

Using Above All's services repository, developers can make the services more readily reusable. The repository allows them to allocate more meaningful labels to the functions and resources within each service  for example, a function called 'InsertRecord' in a customer database application can more helpfully be labelled 'AddCustomer'. They can also define the relationships between similar resources in different services  for example matching up 'Customer' records in one application to 'Account' records in another.

The software isn't limited to web services, working with ODBC inputs and other service adapters as well as reading service descriptions from UDDI and WSDL sources. "Anything that takes inputs and provides outputs can be made to look like a web service," says Scharfetter.

The vendor has also created a prepackaged library of service views for online CRM suite Salesforce.com, and will soon add one for Microsoft Office, shortcutting the process of converting these products' programmatic web services interfaces into more user-friendly service views.

Once the preparatory work of defining the views has been completed, business analysts and process owners can then rapidly assemble them into new composite applications using Above All's wizard-driven, point-and-click Visual Assembly Environment. Scharfetter says that one business analyst who saw a demonstration of the product soon concluded that directly creating her own application using the product would often be faster than writing out a specification to hand to a developer.

User interface

Above All's tools are an innovative and accessible alternative to more complex business process management (BPM) products, which take a process-centric approach to composite application design. But Corizon argues that all such tools stop short of reusing the existing user interface logic. It's one thing to make it easier for developers and process owners to join together existing chunks of process logic to create new applications. It's quite another to deliver those newly automated processes to users in a format that makes sense to them.

The thinking behind Corizon's product is that companies have already invested a lot of effort into developing their user interface logic  according to some tallies, it accounts for as much of 50 percent of the total spent on application development. Much of what's in those existing applications remains useful and relevant. But the way in which it is joined together is often no longer appropriate to present-day needs  or it may not be joined together at all, residing instead in several different applications. Corizon provides a means of recombining elements of the existing user interface logic into a new composite user interface, at the same time as reducing the number of steps and different screens required to complete a given task.

Corizon has invented the term User Process Management (UPM) to describe its proposition. "With UPM, you just reuse the functions you have in those applications," says CEO Guilloteau. "It's reusing the same user interfaces. You're just componentizing the UI."

Corizon's customers typically apply the product in call centers, where operators are often obliged to access several different applications to complete a given task. Its software lets developers weave these separate functions into a single application interface so operators can complete the task as a single, seamless process. This reduces call handling time and errors, as well as bringing savings in the time required to train new staff.

"There's a huge business benefit now to be able to take those user interfaces and reassemble them," says vice-president of product management David Davies. The reuse is more than a one-off, for like Above All, the Corizon product includes a repository that developers and process owners can draw on. "As you do some of these projects, you build up more of a catalog of the things you have in your applications," says Davies.

Application design

Most of all, the product makes it possible to design applications from the point of view of what the user needs to do, rather than having to obey the constraints of an individual application.

This is a sentiment Scharfetter agrees with: "The end user should not know or care which silo is the source of this application logic. They just know that they want to get at information and do transactions, and that it should look seamless  it should look as they view their business environment."

That means putting the user right at the center of application design, instead of expecting him or her to adapt their work processes to fit in with the limitations of each individual application system. That in turn requires a new approach to application design, says Guilloteau: "The approach is, forget about the system. Think about the process. Think about how the user should work."