Continuing our look at the Metastorm BPM product, this article covers the platform and architecture for running the process engine, clients and we look at how it integrates with other Microsoft technologies.
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.