elemental links

brenda michelson: technology intersected

  • Blog
  • About
  • Services
  • Archives

BPEL Primer

September 9, 2005 By brenda michelson

This week I wrote a BPEL Primer for the PSGroup research service. The Primer answers 4 questions:

  • What is BPEL?
  • What is it Good For?
  • How does it work?
  • What does it look like?

I wrote the primer because I think BPEL is an important spec for IT professionals to understand, especially those pursuing SOA and/or integration strategies. For that same reason, I’m excerpting sections (and subsections) here.

In thinking about how to excerpt the report for my blog, I ended up creating a new illustration that shows the whole “A BPEL process is a service orchestration, used to describe/execute a business process (or large grained service), which is implemented as a stateful service” thing. In addition, the picture covers the “A process is comprised of steps, steps have activities AND activities are BPEL language elements, and the basic activity elements are the ones used to interact with
the collaborating services <partnerLinks>” thing.

I wish I thought of it earlier, when I was working on the report. But, that goes to show the real-life nature (and power) of the blog…iteration!

If you want the full report, you can get it for free here. Before bailing for the free report, take a look at the new illustration; it ties into the “What is BPEL” section on page 4 of the PDF.

The BPEL Primer Excerpt: What is BPEL, What is it Good For, How does it Work?

Note: The service terminology is consistent with my SOA definitions post.

What is a Business Process? A business process is a flow of work, broken out as a series of steps, or activities, which are required to complete a business transaction. The business process activities may require application and/or human behavior for completion. A business process is typically long-running in nature, involving multiple parties and/or applications within an enterprise or across enterprises.

What is a Business Process in BPEL? In BPEL, a business process is a large-grained stateful service, which executes steps to complete a business goal. That goal can be the completion of a business transaction, or fulfilling the job of a service. The steps in the BPEL process execute activities (represented by BPEL language elements) to accomplish work. Those activities are centered on invoking partner services to perform tasks (their job) and return results back to the process. The aggregate work, the collaboration of all the services, is a service orchestration.

As you can see, BPEL focuses on a very specific (but important) problem: the orchestration of services, into large-grained services and/or processes. The delineation of large-grained service versus process is based on the specific job being performed. That said, let’s go deeper.

[click ON Picture to enlarge]

Bpel_process

What is BPEL?
BPEL, also known as BPEL4WS and WSBPEL, is an XML-based language, built on top of Web Services specifications, which is used to define and manage long-lived service orchestrations or processes. Let’s decompose that in reverse. Orchestrations first, followed by the technical base.

Orchestration. As stated in the SOA terms, in an orchestration, a primary service controls (provides) the collaboration.

When you use BPEL for orchestration, the primary service is a BPEL process, because BPEL processes are implemented as services.

The BPEL process controls the overall sequence and invokes the collaborating services.

To perform the orchestration, the BPEL process contains the logic (sequence, activities, invocations, assignments, and case logic) to invoke other services (collaborators), to complete their combined job.

This BPEL process may be asynchronous or synchronous. In an asynchronous model, the BPEL process is managing a long-lived flow of work; in other words, a process.

In a synchronous mode, the BPEL process is more likely playing the (logical) role of another service type, such as request/reply, worker, agent, or monitor.

Technology Base.
BPEL’s technology underpinnings are XML and Web Services. XML, as most people know, is a standard (tags-based) markup language used in document and message definition and processing. In addition, XML serves as the language base (format and syntax) for many special purpose languages such as WSDL (Web Services Description Language), and RSS (Really Simple Syndication).

BPEL follows this same model. The BPEL process description is encoded using XML language constructs. BPEL also incorporates XPATH to write expressions and queries.

Web Services Specifications. Web Services are important to BPEL in two ways. First, BPEL processes follow the WSDL service model—which is why BPEL processes are implemented as services. More specifically, BPEL processes have a WSDL definition, and are implemented as Web Services (WSDL, SOAP, UDDI).

Along with the basic functions of service definition, discovery and invocation, the Web Service implementation allows BPEL execution engines to leverage additional Web Services standards at runtime, such as WS-Addressing and WS-Coordination.

Second, the collaborating services are also Web Services, described in WSDL. So, BPEL processes and collaborators are Web Services, and BPEL execution engines contain (and use) Web Services
runtime components. (Natively, the collaborating services (and the process service) are Web Services.  However, BPELJ, an extension of BPEL, allows for a mix of Java Services and Web Services.

What Is BPEL Good For?

So far, this has been fairly technical, talking service orchestration, business process services, interaction models and technology bases. Before going much deeper, it is important to understand the best uses (and limitations) of BPEL.

BPEL and Service Orchestration. BPEL offers a nice model to abstract orchestration logic from the participating services, and configuration using BPEL over (hard core) coding of service interactions is enticing. However, there is processing overhead and infrastructure expense, so BPEL might not be the best choice for simple orchestrations. As a rule of thumb, a simple orchestration is comprised of two to five services and has static interaction patterns.

BPEL AND PROCESSES. As a language to develop processes, BPEL is good at executing a series of activities, which occur over time, and interact with internal and external services. These processes may represent IT scenarios, such as integration, or business scenarios, such as information exchange, or flows of work.

As for limitations, BPEL does not account for humans in a process, so BPEL doesn’t provide workflow—there are no concepts for roles, tasks and inboxes. In addition, BPEL does not support really complex business processes, those which evolve during their execution, branching out to incorporate new parties and activities. Lastly, BPEL does not have native support for business activity monitoring (BAM). There isn’t a data model for measurement and monitoring.

Of course, for every limitation there are industrious groups trying to resolve it. In late August 2005, IBM and SAP AG proposed an extension to BPEL (BPEL4People), to incorporate humans (initiators, approvers, managers, and task doers) in BPEL processes. This is an important issue to resolve, and I’ll be watching the BPEL4People proposal closely.

How Does BPEL Work?

[In this excerpt, I only cover the BPEL environment. In the report, I also speak to the Design to Execution Procedure]

[click ON Picture to enlarge]

Bpel_overview_1

BPEL Design, Development, and Deployment. At the far left of the diagram is the BPEL design, development, and deployment environment. Here are the tools for business analysts and developers/integrations to describe processes (orchestrations), as a series of steps (activities), associate services, and add any special business or validation logic to the process flow.

These tools vary from plug-ins for drawing tools or integrated development environments, to full-blown standalone environments. Most tools support a toggle between the graphical design view and the BPEL source code view. Changes made in one mode should be reflected in the other.

Supporting the design and development tools should be your service repository.

BPEL Execution. In the center of the diagram is the BPEL execution environment. The BPEL Server contains the executing process instances, a Web Services framework, and the BPEL execution services. The BPEL execution engine services collectively provide the process lifecycle requirements (instantiation, communication, dehydration/hydration, correlation, transaction management, compensation, and termination) as spelled out in the specification. Similar to J2EE containers, the engine implementations need to meet the specification requirements, but how that is accomplished is up to the individual BPEL engine providers.

To the right of the BPEL server, I show the Process DB used to hold information on process instances and state, and the BPEL server’s management console.

I drew the BPEL server simply, in alignment with the specification; however, implementations vary, with vendors adding features for non-Web Service invocations, and business performance reporting. As with any technology, be sure you ascertain which functions are provided as part of the specification, and what are vendor-supplied (proprietary) extensions.

Underneath the BPEL server, I show four different host environment options: J2EE container, .Net container, Java Business Integration (JBI) container, and an enterprise service bus. Example (not endorsements) implementations for
each host environment (respectively) are: Oracle’s BPEL Process Manager, Microsoft’s BizTalk Server, FiveSight Technologies’ PXE, and CapeClear’s ESB.

Above the BPEL server, I show the client service that initiates the process, and the collaborating (partner) services.

Bridge To Execution. The hand-off from development to execution contains the BPEL process definition, the WSDL of the BPEL process, and all engine-specific deployment files.

</excerpt>

For more on BPEL, check out the OASIS cover page, play a little – I started with this, or read my full report 🙂

Filed Under: bpm, enterprise architecture, services architecture, soa Tagged With: archive_0

“My” SOA definitions–What I mean when I say “service-*”

July 15, 2005 By brenda michelson

I spend a lot of time in the service-oriented world. Sometimes as a practitioner, other times as an advisor, and other times still as an interested observer. Over the course of time, I’ve settled on a set of definitions for some commonly (but inconsistently) used terms. For the full deal, in a formal manner, see my PSGroup Service-Oriented World Cheat Sheet, which is being published in installments on Nextslm.org . (No guarantee how long the piece will run).

For those interested in a quick take, I’m posting the terms here, because it will make my subsequent postings (of which I hope there are many) more understandable.

What is a Service? Simply stated, a service is a thing that fulfills a purpose. A service is, in essence, a “worker,” employed to achieve a specific end goal for a requester. The end goal may be small in scope, such as retrieving information, or large in scope, such as executing a business process. Most services are in the middle, completing a function. The scope of a service is referred to as its grain, or level of granularity.

What kind of thing is a service? A service is an abstract resource that has a name, a job, job tasks, contact information and policies regarding security and service levels. To use (request) a service, you send a message—in accordance to the contact information and policies—and then (if appropriate), receive a reply message.

A service’s job. The job of a service is limited to a single distinct business concept, function, or process. This characteristic is referred to as the bounds of a service. Finding the correct bounds is a key factor in service definition. A service may call upon other services if it needs assistance to complete its job. This service-to-service relationship is called collaboration.

Service Collaboration. Services collaborate through orchestration, business interaction, or interception:

  • Orchestration is a type of collaboration in which the primary service directly invokes other services. The primary service knows the sequence of actions and the interfaces, responses, and return states of the called services.
  • Business Interaction is a type of collaboration in which some coordination mechanism knows the sequence of actions, possible states, and paths of interaction among one or more services. The business interaction is usually long-lived involving requests/messages from multiple parties. The coordination mechanism may be a business process execution engine, a workflow engine, an event handler, or an enterprise service bus.
  • Interception is a type of collaboration in which an intermediary service receives and acts on a request (or reply) and then forwards the request (or reply) to the original target. Interception is used to perform common functions such as security, policy, audit, and translation. In many interception scenarios, the requesting and providing parties are unaware of the intermediary service.

Service Types. Not all services are simple information-oriented requests/replies. Beyond request/reply, a service may be a worker, a monitor, an agent, an aggregator, or even a process.

Service-Orientation. Service orientation is an architectural concept that refers to the loose coupling of a service (an abstract resource with a defined job) and its provider (the physical asset(s) that perform the job tasks). A requestor only knows what the service’s job is and how to request it. The service is the only one that knows its implementation.

Service-Oriented Architecture. SOA is an IT architecture strategy for business solution (and infrastructure solution) delivery based on the concept of service-orientation.

SOA Styles for Business Solutions. The two primary styles of SOA used in business solution development are composite application development and flow.

  • Composite Application Development. In composite applications, the user interaction drives a request for one or many services. Most of the service invocations are synchronous in nature. A composite application typically serves
    one business domain. Composite applications are often delivered in a portal.

  • Flow. In flow, business process and/or events drive the service invocations. The service invocations are a mix of asynchronous and synchronous; however, the overall flow is usually long running and asynchronous. A flow typically crosscuts business domains and often extends outside of the enterprise.
  • Business Process-Driven. In business process-driven architecture, the flow of work, as a series of activities, drives the requisite application and human behavior to complete a business transaction or process. The process is typically long running in nature, involving multiple parties and/or applications within an enterprise or across enterprises. In business process-driven SOA, a business process may implement as a service, and/or a business process step (activity) may invoke one or more services.
  • Event-Driven. In an event-driven architecture, a notable thing happens inside or outside your business, which disseminates immediately to all interested parties (human or automated). The interested parties then take action. The event-driven action may include the invocation of a service (thus event-driven SOA) or the triggering of a business process or workflow.

SOA Environment. Refers to the collective environment that allows services to be defined, developed and used by other services, and to be assembled into solutions by adding process, interaction mechanisms, user interface, and/or rules. In addition to service development and solution assembly, the SOA environment provides runtime and management functions such as service discovery, policy definition and enforcement, quality of service (performance, availability, reliability and load), transaction management, audit, and usage metering.

Filed Under: bpm, event driven architecture, services architecture, soa Tagged With: archive_0

  • « Previous Page
  • 1
  • …
  • 5
  • 6
  • 7

Brenda M. Michelson

Brenda Michelson

Technology Architect.

Trusted Advisor.

STEAM Advocate.

(BIO) (services)

  • Email
  • LinkedIn
  • RSS
  • Twitter

Recent Posts

  • Recent Posts: Thingking, Sketching and Curse Lifting
  • change of writing venue
  • technology knowledge premise
  • The Curse of Knowledge
  • better problems and technology knowledge transfer

Recent Tweets

  • “I can describe it as a computer and a slot machine...a pile of stuff in my brain, a pile of stuff from all the boo… https://t.co/h68LPPXGhN November 20, 2019 12:17 pm
  • Multimedia artist celebrates interconnections of weaving, code, work and women. “The intricate Jacquard loom and… https://t.co/xrpsh5mwTB November 10, 2019 2:18 pm
  • Oh ⁦@ruthmalan⁩: https://t.co/V5O8egtfeA November 7, 2019 8:18 pm

Contact Brenda

Have a question? Want to work together? Reach out via your preferred mode:
  • Email
  • LinkedIn
  • RSS
  • Twitter

© 2004-2018 Elemental Links, Inc.