Metastorm is one of the fastest growing vendors in the BPMS field and seems to be a popular choice in medium sized enterprises. Metastorm take a three discipline approach to enterprise process optimization via their three main product offerings covering enterprise and business architecture, business process analysis and business process management. These software solutions enable analysis, execution and reporting (via their Provision package) of business processes. In this article we focus primarily on their BPM product, explaining its purpose, basic architecture and practical uses.
Metastorm BPM is essentially a human centric business process modelling and implementation tool. It allows pretty quick design and deployment of forms based workflow for windows. Metastorm BPM connects people, information and systems across multiple business area’s (LOB) and provides the tools to create innovative and agile business processes. The product ships with the Metastorm BPM Designer, which offers a graphical process building tool that both developers and business analysts can use to model processes. Using stages and actions, the user can quickly draw out processes with ease. The general concept is that the end user interacts with web based forms to view and capture business data and then follow a back end workflow move the data around to others in the organization or to other business systems. BPM has all of the standard BPMS features, including systems integration (advanced using the optional Metastorm Integration Manager), business rule validation, conditional flow, (a)synchronous (sub) process execution, cross process communication (via raised flags), BPEL support and an easy to understand SDK amongst others.
Metastorm BPM process instances are long running and all process data is persisted to the Metastorm database. Architecturally the system is a client / server (engine) setup and uses an XML based request and response model in regards to client / server communication (essentially you can imitate client request messages via the Transaction Protocol interface on the Metastorm engine). The advantage to this is a disconnected architecture is that process data is either in an XML message (the current non committed data) or stored in the database (committed data) – great for moving the system around, backup and high availability. All in all, Metastorm BPM is a great product for small to medium sized enterprises. It is very scalable but procedures can become very complex (almost over complex) when processes grow very large.
The Metastorm BPM architecture at its centre is an XML and .NET based stateless design. It utilizes XML to dynamically build the user interface forms, manage user roles and send structured messages to and from the process engine. Procedure files themselves are also compressed (zipped) structured XML (examples to follow). The Metastorm engine is a .NET based highly scalable process core that intermediates the client and database, automates and tracks the progress of all stages (steps) and actions (activities) in process instances and organizes the work of all process participants, both system and human. You can split the engine down the middle and call one side ‘Technology Services’ and the other ‘Business Services’. Technology Services deal with authentication, web services and XML document transformation and Business Services includes business rules integration, analytics and reporting (ProVision).
Metastorm describes their architecture across 4 layers. Here goes:
Client Layer – The native ‘out of the box’ Metastorm client is the web interface. The interface provides a window into the ToDo and Watch lists and available forms and is currently only supported on Internet Explorer (probably because of the JScript support and dependancy on the XML core services / parser). Universal clients are also available, for example Microsoft Outlook which use adapters (this software layer that connects to the BPM client tools. Finally custom built Win32 clients (example provided in the SDK) can be built using the client API. Any application can act as a client by using the web service interface running on the Metastorm engine server. Lastly, BPM 7.x ships with web parts for use with Sharepoint – these are client parts that can integrate into existing Sharepoint sites (inclusive of dashboard clients).
Transformation Layer – The Transformation Layer is designed to integrate processes involving mulitple enterprises across firewalls using XML and SSL over HTTP. It uses xml smart messages that include embedded scripts that the process engine in each enterprise can interpret locally. These smart messages not only travel between the client and the engine but they can be sent over HTTP, through the firewall to external process engines. Metastorm BPMs XML interface transforms the smart messages to and from the DHTML, PDF and other formats required by thin clients.
Process Layer – The Process Layer is where the process engine resides. It handles all of the state and logic processing of the inter-enterprise processes as well as session management, role access control and converts stored process files (in xml) into the sql server. The engine is the core processing unit.
Integration Layer – While the Transformation Layer is designed to integrate processes across multiple enterprises using XML and HTTP over SSL, many legacy solutions tend not to be internet enabled and integration must occur at a lower level. Metastorm offers a product called Metastorm Integration Manager, which enables connection of Metastorm to a plethora of other software platforms on unix and windows (message queues/databases etc). Out of the box, scripting allows for extensibility of processes. Client side scripting can be written for the browser (JScript and VBScript) and server side for the engine to process (JScript.NET, JScript and VBScript). An enterprise class library (ECL) is also offered to integrate systems with Metastorm BPM and its Transaction Protocol interface. Finally the Metastorm database is an open SQL database that can be directly manipulated.