Service-oriented architecture (SOA) has become increasingly popular for companies with separate systems that would otherwise be difficult to link, and experts say it is now gaining traction among small and midsized businesses (SMBs). For companies considering upgrading their IT, SOA consulting can play an important part in identifying what to upgrade first and making it compatible with legacy systems.
Born from the Web services movement, SOA is a design philosophy that proponents say creates IT systems that are more flexible and easier to maintain.
It has already made significant headway in large enterprises, where it is often used to get different legacy systems talking to one another, said Anthony Gold, vice president and general manager of open source business at Unisys Corp., a Blue Bell, Pa.-based systems integrator.
SOA has as much buzz among SMBs as with larger companies, but with less urgency because small organizations typically haven't gone through the series of mergers and acquisitions that often saddle large companies with a mesh of incompatible legacy applications, Gold said.
"For [SMBs], the SOA is less about the legacy kind of play, and more about having a holistic, Web 2.0, common view" of data, he said.
Companies generally start to look at SOA once they're large enough to "have an IT shop that does more than just managing their mail," according to Rado Nikolov, IBM's director of strategy and emerging business for ISV and developer relations, who puts the tipping point at about 1,000 users. IBM's WebSphere Application Server is one of the middleware applications that serves as the foundation for many SOA-capable applications.
Although the term can be very broad when it applies to the design philosophy of an IT department, companies can start small, with just a couple processes or SOA-compliant applications, Nikolov said. And using open source software for SOA brings additional benefits, including lower cost and faster development, Gold said.
What is SOA
At the core, SOA is about decoupling small, discrete business functions from the larger application in which they're embedded.
One simple example is the function of calculating tax – a function that several departments may have to use, but which is usually built
Not only is that level of duplication wasteful at the time of development, it also requires separate maintenance for each tax function and a separate update for every application every time there is a change in tax laws or tax-free days.
In a SOA framework, one application handles tax calculations for the entire company; any process that involves taxes queries this smaller application for that value. If tax laws change, IT only needs to fix that application for the entire company's tax calculations to be updated.
"You don't have to do a complete SOA implementation from the get-go. That's a kind of nirvana," Nikolov said. "You can apply SOA principles at a fairly small scale, over time."
SOA consulting can play an important part of the process of migrating legacy systems to a SOA model, Gold said.
"For us, SOA is about helping organizations take all these disparate environments they have – a lot of which are legacy – and create a strategy for them to modernize that," he said. Many Fortune 500 companies, he said, have upwards of 40 financial organizations and three different enterprise resource management (ERP) systems in place.
Although SOA is a design strategy and not a specific class of software, there are pieces of software that are frequently associated with it. One of those is the application server – a framework that takes care of standard tasks such as database connections and security, leaving developers to focus on the business logic that is the core competency of their application.
Open source SOA software versus proprietary software
Two leading application servers are IBM's WebSphere – which comes in both an open source version and a closed-source version with additional functionality – and Red Hat's JBoss, which is open source. But open source software has several advantages over proprietary software, Gold said.
For starters, there's the cost: open source software can be legally downloaded and used for free, and paying the vendor for support is optional – though often recommended, Gold said. That means development can start from the ground up, with IT trying out test deployments without having to go through a procurement process, which can be helpful for starting out a small, test-run SOA development.
Another advantage is that open source software tends to be very modular, Gold said, which fits in with the SOA model. Even if proprietary vendors made their software more modular, the community development approach to software means components are developed rapidly, by whoever needs them, rather than development being directed by a single vendor, Gold said.
But he added that open source has its drawbacks as well, especially for very small projects that may not be stable enough for an enterprise deployment.
"There are important things you want to look at, like how big is the community; who is supporting it; where can you get the true mission-critical support for it? What will happen if this [developing] company goes away?" he said. If an application is being backed by a large community or a stable company, he said, it's worth taking a look at.