March 2008 | Volume 11/ Number 3
Service Oriented Architecture — Could it Lead to Automatic Programming?
By Richard "Zippy" Grigonis
Service Oriented Architecture (SOA) (also spelled Service-oriented Architecture or SoA) is not a product but an architectural style that allows different applications to exchange data and flexibly take part in business processes loosely coupled with their associated operating systems and programming languages. This in theory allows a business to be more agile and hatch new applications when needed. (That’s why I sometimes jokingly call it “The ‘IMS’ of business process programming.”)
The SOA model is the modern logical extrapolation of both modular programming and distributed computing in that functionality is decomposed into distinct building blocks (services) which happen to be larger than the objects and classes found in conventional programming, and these are distributed over a network and can be called upon and reused to create business applications. Each service can send data to other services, and an activity can be coordinated among two or more services. But instead of embedding calls to each other in their programming code, defined protocols specify how services communicate with each other. In a process called orchestration, a business process expert links and sequences the services into an ad hoc composite application to fulfill a new or existing business system requirement.
Indeed, high-level languages such as BPEL (Business Process Execution Language, a language for specifying business process behavior based on Web Services) and specifications such as WS-CDL (WS Choreography Definition Language, an XML-based language describing peer-to-peer collaborations of Web Services participants) and WS-Coordination further elaborate the concept of services, providing a method of defining and orchestrating fine-grained services into more coarse-grained business services, which in turn are integrated into business processes realized in the form of composite applications or portals.
What really differentiates SOA from older modular, object or component-based programming is that SOA enables its modules (services) to be developed, deployed and maintained by multiple, unrelated development teams, some of which may not even belong to the same organization (e.g., teams at partner organizations or even those providing publicly-available services).
Since the interface definition hides the implementation of the language-specific service, code no longer need become obsolete because of the platform on which it was written: services written in VB.NET and C# on Microsoft .NET platforms and services written in Java on Java EE platforms, for example (or even old COBOL code presented as a software service) can be used in a common composite application, or can themselves call upon services running on each other as Web Services.
Much of the ‘glue’ of SOA is XML and SOAP, but lately there are many proponents (such as Jim Burton’s group) of an SOA marriage with REST (Representational State Transfer, often used to describe any interface that transmits domain-specific data over HTTP.) With REST, the modules send out GET commands via HTTP to URIs to retrieve to issue commands and retrieve data.
Any way you look at it, SOA operates at a higher level of abstraction than normal programming. SOA “products” as such are tools for implementing SOA policies within an organization and orchestrating the services to perform tasks.
For example, IONA Technologies (http://www.iona.com) offers the cleverly-named Artix ESB Enterprise Service Bus. Eric Newcomer, CTO at IONA, says, “SOA plays a huge role in the current trend toward IP-based telephony, video, data, and other services by simplifying development and speeding time to market for new products. This is extremely important as competition heats up, and new and existing entrants jockey for position. IONA’s contributions are based on our decade-long experience with SOA, including CORBA and Web Services, and soon with open source and Eclipse/OSGi-based systems. We have helped some of the world’s leading communications providers adopt SOA and realize its benefits in projects supporting new services such as Voice over IP and IP TV.”
At BT (http://www.bt.com), to speed up its massive rollout of its all-IP 21st Century Network (21CN), the entire company is being transformed via perhaps the world’s largest implementation of SOA. At a recent SOA event, W. George Glass, Chief Architect for BT, said that, thanks to SOA, BT was able to shut down 800 or its 3,500 core systems, and plans to close down another 700 to 900 systems around the time you read this. Thus, BT has closed over 1/5th of its systems estate as a result of its SOA initiative and has re-organized its entire IT department around the SOA architecture. It has managed to deftly transform and re-skill its design community, and BT now links its SOA work directly to its business initiatives with the help of its new Matrix Platform Architecture. The Matrix ties together 14 platforms with common capabilities that are reusable and uses standards to streamline engineering and maintenance costs. The ultimate goal of this transition is to make it much easier for BT to build and introduce new products and services for customers by reusing common components, thereby allowing BT to focus development resources only on creating new functionality.
BT plans on being fully SOA-enabled by 2009. “We’re using SOA to build a customer oriented architecture,” says Glass.
Nortel (http://www.nortel.com) has also unveiled a huge strategy that leverages SOA and Web Services for the simple, rapid and efficient delivery of communication-enabled applications and business processes. With SOA, customers can integrate advanced communications services into business applications, increasing productivity while reducing capital and operating expenditures.
Nortel’s Communications Enablement strategy, serving both enterprises and carriers, is based on four core components: enabling Web Services on selective products and solutions, the development of a software-based foundation environment to simplify the creation of customized communications-enabled applications and business processes, alliances with industry leaders like IBM, and the development of a global services practice to support these SOA-based applications and solutions. Nortel is communication-enabling apps by integrating presence, location, identity, conferencing, and other communication and network capabilities within the Nortel portfolio into business processes.
Nortel is making products available as a Web Service and is introducing new products and solutions built for SOA-based environments. Nortel recently introduced Web Services enablement on the Application Server 5200 and Communication Server 2000 IP Multimedia Softswitch, which allow service providers to offer both enterprise and residential customers interactive multimedia communications tools for their websites based on functionalities such as instant messaging, videoconferencing and presence. Web Services capabilities now also appear Nortel’s Contact Center and Advanced Speech platforms.
Nortel is also in the process of releasing a software-based foundation environment that enables network engaged applications (or services) across a customer’s multi-vendor communications infrastructure. This product, which should be available by the time you read this, provides orchestration of real-time services in a multi-vendor infrastructure environment across multiple domains (enterprise, carrier, wireless and wired) and allows communications-enabled apps to be rapidly created and integrated to customers’ business processes for addressing specific needs.
Nortel and IBM (http://www.ibm.com) announced that the IBM WebSphere Application Server will be integrated into Nortel’s new software-based solution foundation environment. IBM and Nortel will market communications-enabled solutions comprised of services, the Nortel software based foundation environment, IBM software and services and multiple hardware platforms including IBM BladeCenter and System x servers. Together, Nortel and IBM are initially targeting companies in the healthcare and retail markets. Additionally, the Nortel software-based foundation environment will be integrated with IBM’s unified communications and collaboration platform, Lotus Sametime. Businesses will now be able to enjoy click-to-call, click-to-conference, telephony presence and shared directory services (e.g., a customer can see if contact’s phone is in use without leaving the Lotus Sametime client).
Richard Tworek, General Manager of SOA and Next-Gen Platforms at Nortel, says, “I’m responsible for our SOA strategy and software platform that provides a communications focus solution suite to the customer market. In December 2007 we did an announcement with IBM concerning Nortel’s SOA’s strategy for the communications market, which involves communications-enabling business processes. We’ve announced a framework that’s a software platform – our new Communications Enabled Applications platform – and SOA environment allowing connectivity to business processes. So if you have an ERP or what have you, at some point there may be a need for a communications event between processes. We provide a very simple Web Services interface which allows people to say, ‘Okay, processes, communicate!’ Our software platform then takes that command and allows communication to occur across multiple call servers. So we’re not just dedicated to Nortel call servers. We’ve abstracted the entire network.”
“Most organizations are heterogeneous, so they may have a Cisco or Nortel call server,” says Tworek. “We’ve shown demos of our platform working with both of those. A company’s IT person can have just a very simple Web Services call and issue a ‘make call’ and it doesn’t matter what device the user is on or what call server they’re using.”
The Return of Automatic Programming?
Programmers were amazed to read in the February 1981 issue of Personal Computer World of a pair of British developers, David James and Scotty Bambury, who had announced a program called “The Last One”. It was a sort of super program generator that would accept plain English input. Once you gave it a basic program structure, it asked questions (like an expert system) to fill in the gaps in its information about the proposed program, such as asking about details of database fields, what key fields would be used to search a file, what formulas would have to be run, and so forth. Once these questions were answered, The Last One would then generate two versions of the program — one following the exact structure given by the interviewee, the other made using the program’s own knowledge of programming to optimize the code.
Despite a massive publicity campaign, The Last One was not “the last program you ever needed to buy”. Although it’s still used in places in Britain, it never quite became a “household item”, if you know what I mean.
History repeated itself when the April 4, 2001 issue of New Scientist announced that Bob Brennan, a software engineer at a Cambridge-based start-up called Synapse Solutions (at the time located at http://www.synapse-solutions.co.uk), had developed a program called MI-Tech (Machine Intelligence Technology) that would also extract instructions from ordinary language statements and translate them into machine code. Today, in 2008, it appears that MI-Tech has followed The Last One onto the back burner of programming tools.
But wait a minute. With today’s SOA, a business process expert links and orders large chunks of functionality (the services) into an ad hoc composite application in response to the request of a company’s executives and managers. During this process of “orchestration”, the services are associated in a non-hierarchical arrangement by the software/business process engineer, using a special software tool which contains a comprehensive list of all of the available services, their characteristics, and a means to record the designer’s choices which the designer can manage and the software system can consume and use at run-time. He thus can do “service composition” or compose applications, processes, or more complex services by stringing together other, less complex services together. It’s like working with an extremely high level language.
Now, in an increasingly “open source” world where more and more services become publicly available, the number of possibly useful composite applications capable of being assembled on-the-fly will be enormous. If you simply replace the human expert with a software expert system, business managers could conduct a “session” with the expert system, answering questions by it in an effort to describe what’s needed to meet a particular business need (communications-related or otherwise), and the system will go forth, collect and assemble the code, and insert it into the back office.
Just as the whole business world is becoming a series of interconnected informal contact centers on the communications side, so too could it become a vast automatic programming system on the data side.
Just a thought. IT
Richard Grigonis is Executive Editor of TMC’s IP Communications Group.
Today @ TMC
ITEXPO West 2012
October 2- 5, 2012
The Austin Convention Center
The World's Premier Managed Services and Cloud Computing Event
Click for Dates and Locations
Mobility Tech Conference & Expo
October 3- 5, 2012
The Austin Convention Center
Cloud Communications Summit
October 3- 5, 2012
The Austin Convention Center