|
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
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.
|
|
Message #233671
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: See also: Leymann and Roller
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
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
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?
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?
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...
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...
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...
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 |
 |
 |
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 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)
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)
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 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)
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)
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)
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)
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, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now.
(June 15, Tech Talk)
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)
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)
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)
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)
Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers.
(May 21, Tech Talk)
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)
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)
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)
|
|