What is service-oriented architecture, or SOA? Why is SOA important? How do Red Hat and JBoss products support SOA? How does one get started?
So first, let’s start with what is service-oriented architecture, or S-O-A or SOA, as some people may call it. From a business perspective, SOA focuses on developing IT assets and applications in a business process focused manner. And this in turn is focusing on improving the way a business executes business processes and improving the way one leverages IT assets in a business process. SOA is all about focusing business application development to deliver business services which are then consumed by business processes.
From a technical perspective, people will think of SOA, first of all, as services that then can be published out of your application and IT fabric. SOAs are built by first publishing application assets as services. These services then can be more rapidly configured into business processes; they can be integrated through enterprise service buses (ESBs) and re-used to support multiple processes at the same time in a manner that is more efficient. The SOA approach to development takes embedded functionality and exposing it, publishing a service for multiple actors to utilize in a business process.
Why is a service-oriented architecture important? One of the key value propositions for SOA revolves around business competitiveness. So if a business is eliminating unnecessary manual pain points leveraging SOA techniques in a business process, e.g., situations in a business process where human interaction is required, but there’s no value-add, they are building a competitive advantage over other competitors.
There are many points where people in an enterprise taking a fax from somewhere and then typing it into another system or they’re looking on one screen and then typing into another system. They may be on the phone and the information they’re receiving is really just essentially filling out a form that could have been done online. And then they put it online and then someone else gets on the phone and then gets a fax and then there are all of these manual pain points that slow a business down, add costs and inject error.
This is business process friction which causes quality issues. Business process friction causes a business to be slow to react to competitive situations or opportunities. And what SOA basically does is it improves the ability of an enterprise to remove those business pain points. SOA enables this pain relief since the SOA publishes these IT application assets as services that can be consumed and reconfigured to support different business processes, eliminating those human non-value-added points.
When an enterprise eliminates the human interaction in a business process that doesn’t add value and focus on human interaction that adds value, they speed up business process execution. SOA-based business process automation also eliminates the quality issues of the business process friction that are present in many enterprises. If a competitor down the street is implementing business processes using service-oriented architecture and you’re still in that manual pain point business process friction world, they are going to outrun you and you’re going to be in trouble.
So how does Red Hat and JBoss products support SOA? There are three levels to many SOA deployments.
Services are published out of an application platform to be consumed by business processes and process participants. The Red Hat Application Stack includes JBoss Application Server and makes an excellent SOA services hosting platform. Many Red Hat customers take their business process logic that’s hosted on a JBoss Application Server and publishing it as services into their SOA. These services are perhaps published as web services, perhaps as Enterprise Java Bean (EJB) endpoints, or whatever technology makes the most sense. These services become useable by other services and business processes. Example of a service include: a tax calculation service, a service to update the payroll in a certain set of circumstances, a services that retrieves certain kinds of information about a traveler and bring it back and publish that information, or a services that executes an algorithmic calculation for determining the validity or desirability of investing in certain stocks. So these things are published in a way that can be consumed by other IT assets in the business or by partners for that matter. JBoss ESB is the open source SOA integration platform that brings the SOA together, integrating the services with data sources and with other services and applications. It will support JBoss Messaging as its high performance transport layer along with other industry messaging platforms and protocols.
The second level which lies above the services hosting platform is the process layer. The process layer enables the automation of business process execution andd human interaction with a business process. Business processes can be codified in products like JBoss jBPM. JBoss jBPM is a software package that manages the workflow within a business process, interacting with those services leveraging BPEL, the Business Process Execution Language, or jPDL, the jBPM Process Definition Language, for the Java-based services that are exposed or processes encoded within a Java application. Processes can be codified in the appropriate process language in jBPM to interact with these various services, using these services in a business process flow that’s natural to the business. Once a process is setup in jBPM leveraging the SOA services, and a business change event occurs, IT can reconfigure the jBPM process to accommodate the change more easily than with stovepipe applications, leveraging those same services or other services. JBoss Rules adds value to the business process layer by enabling complex business rules to more easily guide the behavior of process actors and decisions.
The third layer is presentation. Obviously there is human interaction with the process; human interaction that adds value remains critical in a business process. Businesses want to eliminate non-value-added human interaction. So JBoss Portal is an example or a product and presentation framework which may present business forms or guide other types of human interaction within the SOA deployment. JBoss Portal also manages the submission of information or may guide approval process flows people will get involved in the business process. JBoss Seam is another highly product enterprise development framework for Web 2.0 presentation within an SOA.
So how does one get started? A major starting point is to really understand your business processes and where you’re having business process friction pain points. Look for processes that are not running well or have lots of non-value human interaction going on. Those are really the good processes to start with. Pick a process like that that has lots of interactions that could be automated.
Red Hat partners help build enterprise SOAs with business services and value-added services. Services include service-oriented architecture envisioning, envision your business, helping you identify those good get started opportunities; and services to identify what kind of assets now in your IT shop can then be deployed as services. Finally, there are services available through partners that enable you to build an SOA. Additionally, partners offer ongoing manageability of the SOA as well.