672329 members! Sign up to stay informed.

Sponsored Links


Resources

Enterprise Java
Research Library

Get Java white papers, product information, case studies and webcasts

News News News Messages: 9 Messages: 9 Messages: 9 Printer friendly Printer friendly Printer friendly Post reply Post reply Post reply XML XML XML

Tom Baeyens: The Process Virtual Machine

Posted by: Joseph Ottinger on May 29, 2007 DIGG
Tom Baeyens and Miquel Valdes Faura wrote up "The Process Virtual Machine" on OnJava a few weeks ago. The idea behind the article: processes can be described using a general description, with specific languages like jPDL, BPEL, page flow, and others being implemented on top of the general "process code."

As such, it mirrors the idea of the JVM and various languages implemented on it: BPEL would be a "process language" implemented on the "Process Virtual Machine."

It's an interesting idea, offering many advantages to developers of all kinds: since it targets developers as well as business analysts (who are the normal beneficiaries of process languages), process flows can be used by more people, in more areas, with greater results.

One example might be a process flow for web applications (as SEAM provides) on a grander scale. While the process flow is usable in SEAM (and, presumably, Web Beans, whenever it's completed), the idea is also generalizable for message queues, data items, workflow, the entire gamut - and having a process virtual machine means that developers can easily hook into the process flow without having to master the entire abstraction.

Threaded replies

·  Tom Baeyens: The Process Virtual Machine by Joseph Ottinger on Tue May 29 09:46:50 EDT 2007
  ·  See also: Leymann and Roller by Guglielmo Lichtner on Tue May 29 13:05:13 EDT 2007
    ·  Re: See also: Leymann and Roller by Tom Baeyens on Wed May 30 04:41:33 EDT 2007
    ·  Perhaps a JavaScript VM? by Steven Shaw on Wed May 30 10:27:51 EDT 2007
      ·  Re: Perhaps a JavaScript VM? by Tom Baeyens on Wed May 30 12:08:45 EDT 2007
  ·  The full version by Tom Baeyens on Wed May 30 04:45:59 EDT 2007
  ·  Re: Tom Baeyens: The Process Virtual Machine by Miguel Valdes Faura on Wed May 30 09:55:40 EDT 2007
  ·  Windows Workflow Foundations... by Ben Manes on Thu May 31 06:22:14 EDT 2007
    ·  Re: Windows Workflow Foundations... by Miguel Valdes Faura on Thu May 31 08:35:44 EDT 2007
      ·  Re: Windows Workflow Foundations... by Ben Manes on Thu May 31 23:11:09 EDT 2007
  Message #233648 Post reply Post reply Post reply Go to top Go to top Go to top

See also: Leymann and Roller

Posted by: Guglielmo Lichtner on May 29, 2007 in response to Message #233634
This was written by IBM people in 1997. There's a book also. If I recall it also attempts to give a theoretical basis for Workflow. It's pretty big.

http://www.research.ibm.com/journal/sj/361/leymann.html

  Message #233671 Post reply Post reply Post reply Go to top Go to top Go to top

Re: See also: Leymann and Roller

Posted by: Tom Baeyens on May 30, 2007 in response to Message #233648
This was written by IBM people in 1997. There's a book also. If I recall it also attempts to give a theoretical basis for Workflow. It's pretty big.

http://www.research.ibm.com/journal/sj/361/leymann.html


While it's a nice overview article at that time, I think the IBM article makes the typical mistake of mixing the essence of workflow with things that you can build on top.

A huge list of features is offered in all of the workflow and BPM products. The Process Virtual Machine is an attempt to separate the essence of workflow/BPM/orchestration from the features that can be build on top. That way, developers can add some simple and basic concepts to their repertoire. With that background, they can decide more easily and accurately wether workflow or process technology is applicable to automate their requirements.

In short, the key to this is wait states. Programming languages like Java are good at describing a sequence of instructions. That doesn't fit very well with if your (long running) process has wait states. In 'The Process Virtual Machine', we describe the simplest set of concepts to build support for wait states on top of an OO programming language.

But we also add a number of extensions that are necessary to build useful features on top in todays architectures. On top of the The Process Virtual Machine, we already were able to build diverse process languages like BPEL, jPDL and pageflow. And now we're working on XPDL. Further more, all this has been leveraged in a variety of environments like standard java (e.g. leveraging 1 JDBC connection to combine workflow updates and domain model updates), enterprise java (using global transactions), JSF, SEAM and so on.

The ultimate goal of the article is to contribute to a common vocabulary for developers to speak about workflow and business processes whereas now, everyone seems to have their own definition of what workflow actually is.

  Message #233672 Post reply Post reply Post reply Go to top Go to top Go to top

The full version

Posted by: Tom Baeyens on May 30, 2007 in response to Message #233634
The OnJava article is in fact a shorter version of the full version of the paper.

The full version has a more elaborate description on the extensions that are needed to build all the workflow/BPM/orchestration features. And it also has nicer graphics :-)

  Message #233686 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Tom Baeyens: The Process Virtual Machine

Posted by: Miguel Valdes Faura on May 30, 2007 in response to Message #233634
As a complement of Tom's post, I would like to highlight that the PVM must be seen as a conceptual model for processes. The purpose behind is to create mindshare around process related concepts into the developers community.

The PVM is also a technology which put those concepts in practice in the context of a collaboration started by Bull/OW2 (with both Bonita Workflow and Ochestra BPEL engines) and Jboss (with the Jbpm product).

This technology will be the basis of our new versions of products at both sides. At the same time is good example of how different BPM vendors can work together on a common piece of technology that can be leveraged afterwards in different solutions.

Last, but not least, the PVM is also part of our BPM approach:" there is no single process language that can handle the broad set of environments and capabilities that are associated with BPM. The concept of Process Virtual Machine (PVM) starts from the assertion that we’ll need different process languages for different environments"

regards,
Miguel Valdes

  Message #233688 Post reply Post reply Post reply Go to top Go to top Go to top

Perhaps a JavaScript VM?

Posted by: Steven Shaw on May 30, 2007 in response to Message #233648
Perhaps a JavaScript VM with continuations would suffice as a target for business process engines? There are engines out there using Rhino directly: http://www.bpmscript.org

Scheme could be another useful target. With something like http://sisc.sf.net coming to mind as a potentially useful tool.

  Message #233701 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Perhaps a JavaScript VM?

Posted by: Tom Baeyens on May 30, 2007 in response to Message #233688
indeed continuations can handle wait states from a programmatic point of view.

but if you also want a graphical representation for your processes (as many, but not all of the BPM, workflow and orchestration solutions have) then continuations is not sufficient as you can't distill the graphical view from a program with continuations.

  Message #233785 Post reply Post reply Post reply Go to top Go to top Go to top

Windows Workflow Foundations...

Posted by: Ben Manes on May 31, 2007 in response to Message #233634
If your interested in this topic, I highly recomend "Essential Windows Workflow Foundations". They show how the framework handles complex ideas very intuatively and far cleaner than most home-grown approaches I've seen. I could easily see a Java version, heavily influenced by WWF, that is more oriented towards the enterprise being very successful.

I wrote a pretty sophisticated one at work to manage our ETL processes through a web-app, but while very successful I see areas I'd like to redesign if I had the time. There's quite a lot of work involved to make a solid enterprise-level job management framework, even more so since its the applications on top of it that matter. You need to write both to really understand the pain points.

  Message #233793 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Windows Workflow Foundations...

Posted by: Miguel Valdes Faura on May 31, 2007 in response to Message #233785
If your interested in this topic, I highly recomend "Essential Windows Workflow Foundations". They show how the framework handles complex ideas very intuatively and far cleaner than most home-grown approaches I've seen. I could easily see a Java version, heavily influenced by WWF, that is more oriented towards the enterprise being very successful.



Sure, the WWF approach is quite similar that what we are doing on the PVM. The great thing is that the PVM is already Java focused.


I wrote a pretty sophisticated one at work to manage our ETL processes through a web-app, but while very successful I see areas I'd like to redesign if I had the time. There's quite a lot of work involved to make a solid enterprise-level job management framework, even more so since its the applications on top of it that matter. You need to write both to really understand the pain points.


Sounds interesting, we should definitely sit together and have a discussion on that if you are interested. Do you have some document discribing your work ?

regards,
Miguel Valdes

  Message #233840 Post reply Post reply Post reply Go to top Go to top Go to top

Re: Windows Workflow Foundations...

Posted by: Ben Manes on May 31, 2007 in response to Message #233793
Miguel,
Yes, I noticed you the article mentioning WWF, so I was mostly mentioning it for those silent ones reading the comments. :)

I didn't see your email address attached to the article, so feel free to email me at: ben dot manes at gmail dot com

New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com

Dependency Injection in Java EE 6 - Part 2

Reza Rahman continues to explore the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (January 21, Article)

Ted Neward Q&A: What you must know about JavaScript, Scala and more

Ted Neward is an independent consultant specializing in high-scale enterprise systems, and an authority in Java and .NET technologies. He is the author and co-author of several books, including Effective Enterprise Java. At TheServerSide Java Symposium in March, he will be presenting sessions on pragmatic architecture, ECMAScript and Scala. (January 15, Article)

Developers split on open sourcing Java

Now that Oracle is absorbing Sun Microsystems, there mixed views on what should come of the Java Community Process (JCP). While some say Oracle should become the new steward of Java and keep the JCP much as it was, others argue that it may be time to open-source this widespread language. (November 24, Article)

Dependency Injection in Java EE 6 - Part 1

Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6. (November 2, Article)

SAML: It's Not just for Web services

SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options. (September 28, Article)

Programming is Also Teaching Your Team

Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team. (September 22, Article)

Can Java EE Deliver The Asynchronous Web?

Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies. (July 14, Article)

JSF Flex

JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags. (June 29, Article)

The Rules of SOA - A Road to a Successful SOA Implementation

In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project. (June 23, Tech Talk)

Ari Zilka Talks About Terracotta 3.1

Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now. (June 15, Tech Talk)

Enterprise Application Integration, and Spring

In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements. (June 15, Tech Talk)

Google Web Toolkit: An Introduction

In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls. (June 4, Tech Talk)

Just Enough Early Architecture to Guide Development

Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable. (May 28, Tech Talk)

Productive Programmer: On the Lam from the Furniture Police

This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work. (May 26, Tech Talk)

Auto-Scaling Your Existing Web Application

Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers. (May 21, Tech Talk)

Automating Hibernate Mapping and Queries For Java Web Development

Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application. (May 19, Article)

Free Book PDF Download: Mastering EJB Third Edition

Mastering EJB was one of the original and most influential EJB books in the industry. Mastering EJB III now returns with two new expert co-authors, updated for EJB 2.1 and 30% new chapters including security, integration, best practices, open source, and more.
(Book PDF Download)

Application Server Matrix

The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)

News | Blogs | Discussions | Tech talks | Patterns | Reviews | White Papers | Downloads | Articles | Media kit | About
Java Solutions
All Content Copyright ©2007 TheServerSide Privacy Policy
Site Map