Oracle Database Management Strategic Directions

1. Best Practices for managing Oracle database servers.
2. Oracle Fusion Middleware products like J2EE, ADF, XML, BPEL, SOA, Web Services, Discoverer...).
3. Oracle Application Servers and Apache.

Thursday, July 19, 2007

Oracle Fusion Middleware: SOA and BPEL, like Harry Potter and Hermione

I get a lot of questions on SOA and BPEL, so I wanted to talk a little about them to make sure that if you are at a party and the topics of SOA and BPEL come up, you can join the conversation. When people are talking about the BPEL, WSDL, or the shizzle you need to understand what they mean. This is important because a few years ago RAC and margarita parties were very popular, now Oracle Fusion middleware and mojito parties are all the rage. In fact, I was at one of my favorite restaurants in San Francisco, Colibri a Mexican Bistro and while having a mojito the person next to me started talking about middleware.

Aligning Business Processes and Applications

Batman and Robin, the Green Hornet and Kato, Harry Potter and Hermione and now SOA and BPEL. For most of these you can't imagine one without the other. A key for enterprise organizations is focusing on improving the alignment of business processes with technology (software applications). Business processes are constantly changing and organizations need to be very good at managing that change.

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
Web services is the technology for connecting services. Web Services has become the technology for achieving interoperability with different languages, operating systems and hardware platforms. Web services is a distributed technology for connecting different types of applications that are supported by all vendors. A web service is an application that provides some type of business functionality while hiding the details of how it works. Software applications can then use web services (software applications that provide specific functionality) to perform a task or operation.

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
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.

Changing Environments
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.
BPEL is definitely helping organizations make the implementation of SOA successful. Tools such as the Oracle BPEL Process Manager are making it a lot easier to introduce BPEL into an organization and increasing the adoption of SOA. The Oracle BPEL Process Manager can be used by business analysts and technical people to communicate on how to align business processes and software applications.

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.



At 2:14 PM, Anonymous Anonymous said...

I enjoyed your article on BPEL and SOA. Our developers are talking about this all the time, so this was very helpful. However, I am not sure I would go to a middleware and mohito party as an Oracle DBA. :)


At 12:20 AM, Blogger Neha said...

Nice post.. got some introduction on BPEL


Post a Comment

<< Home


George Trujillo


Popular Classes

  • Oracle11gR2 New Features

  • Intro to Java Programming
  • Intro to Linux for Oracle
  • Intro to PL/SQL Programming
  • Oracle11gR2 Fusion Dev Wkshp I



    The Trubix Blog is focused on discussions on strategic directions in database technology and the challenges Oracle technologists are addressing today and in the future. This site will focus on issues and challenges of database management that cannot be resolved with a code snippet. There are already a lot of great websites out there with tons of code samples. We would like to facilitate more discussions on issues Oracle technologists are dealing with today that a quick search on the Internet cannot solve. There will also be a group of recognized industry leaders that will also participate in this blog. This blog is an extension of the Tim Tam Group, an international group of industry leaders that meet once a year to discuss strategic directions in the industry.



    Powered by Blogger