Aligning Business Processes and Applications
Web services, the Service Oriented Architecture (SOA) and the Business Processing Execution Language (BPEL) have become very popular approaches to address the following important challenges:
- Managing changes to business processes and reflect those changes with its applications.
- Getting all kinds of different types of applications to work together.
A service is an endpoint in a connection. The endpoint contains a standalone function (provider service) that can accept input (from a consumer service) to perform a task and then return a result. This function is self-contained and is not dependent on any other service to perform its specific task. A number of services can communicate with each other to perform more complex tasks. The services communicate using XML based WSDL service descriptions.
Web Services, WSDL, UDDI, XML and ESB
The technology components that make Web Services work includes:
- Web Services Description Language (WSDL) - Uses XML data structures for describing services as a set of endpoints. Service requests use WSDL to understand how to communicate and how to send information back and forth.
- Universal Description, Discovery and Integration (UDDI) - (UDDI) is a registry that stores information (WSDL) on services. Kind of like a phone book stores phone numbers.
- The eXtraction Modification Language (XML) is a data structure containing metadata and data that is used for sending information back and forth. You can think of XML as being the plumbing that makes everything work.
- Simple Object Access Protocol (SOAP) - SOAP is the protocol for how XML based messages get sent across the Internet using HTTP/HTTPS.
- An Enterprise Service Bus (ESB) is a communication infrastructure that allows different middleware products and protocols to communicate. The ESB provides routing, transformation, the management of services and message processing capabilities. All your applications may not be using web services, so the ESB can function as an intermediary for different types of communication.
The Service Oriented Architecture (SOA) provides services (web services), messaging (exchange of data), self-describing interfaces (WSDL), service registries (UDDI), service quality and the organization of services (BPEL) into business processes. SOA does not specify the technology components to use. SOA uses services that can be used without the service knowing anything about the application calling it and the calling application not needing to know how the service performs its task. SOA is an architecture that facilitates the creation of loosely coupled services (applications) that can be executed from any platform. Services communicate using well-defined descriptions or contracts using WSDL. This complete hides which language a service is written in. Services can be written in Java, .NET, C#, PL/SQL and PHP to name a few.
The computer industry has gone through significant changes. From mainframes, to client-server, to multi-tiered web environments and now to a service oriented architecture. Every technology has had its place. Business flexibility, integration, coordinating business processes with applications have forced the move to a service oriented environment. What's funny is that SOA and web services can increase the life of legacy systems.
BPEL a common language.
The problem in getting technical and business people to communicate well is they need a common language. For example, technical people speak languages like Oraclese and business people speak languages like Parseltongue. The Business Processing Execution Language (BPEL) for Web Services (WS-BPEL) or (BPEL4WS) is a high level language that both technical and business people can both speak.
BPEL is a business process modeling language that can be executed. BPEL defines business processes for web services using XML. This is why BPEL plays such a strong role in the Service Oriented Archiecture.
Some of the features that BPEL offers:
- Organizing how services (software applications) are aligned with business processes.
- Definition of business processes.
- Automation of web services.
- Managing synchronous and asynchronous operations.
- Executing services in sequence or in parallel.
- Managing short or long running transactions.
- Resuming interrupted or failed operations.
- Scheduling activities.
- Define business processes with several scopes.
- Route messages.
- Define business logic through the organization of services.
- Create business processes from smaller processes.
The Oracle BPEL Process Manager runs in the Oracle JDeveloper product or it can be installed into tools such as Eclipse. The Oracle BPEL Process Manager also works with the majr application server vendors. Although we mention the Oracle BPEL Process Manager, BPEL products are available from IBM, Sun, Microsoft and a large array of 3rd party companies. The OASIS Technical Committee (WSBPEL TC) is currently working on the WS-BPEL 2.0 draft. This draft focuses more on extentions to the the existing WS-BPEL 1.1 version.
BPEL is a standard that manages web services and is language independent. However, most web services are implemented with the Java Enterprise Edition or Microsoft .NET. There are also BPEL servers that are provided by a number of different companies. BPEL helps the success rate of SOA projects. One way of looking at this is, think of a service of being a house or building that generates a product or needs a product, web services as being the houses or buildings, XML (WSDL) being how people in the houses and buildings communicate, SOA as being the town and BPEL defining how the town is organized.
Organizations that are using SOA and BPEL are having much more success with higher end-user satisfaction versus the companies that are trying to just implement web services. Hopefully this will put a little more shizzle in your conversations on SOA and BPEL.