Target audience:
1. Business users in finance, retail, telco and government who need a web based drag and drop workflow tool.
2. Application developers that want to use a scalable workflow engine by simply making AJAX REST calls to run workflow processes.
Typical use cases:
1. Runbook automation (automation of operational tasks in large enterprise environments)
2. Web 2.0 workflow applications e.g. product information management
Demo
1. Front End
2. New SQL resource component added
Have used Adam's SQL module in eXist which makes it dead simple to query any SQL database and return the results as XML. The following link triggers a query that does a simple "select * from table1" on a MySQL database.
http://87.106.210.179:8080/exist-1.3.0dev-rev9184/xquery/sql1.xql
If you view source on the the results page you will see the XML that is automatically generated.
<sql:result xmlns:sql="http://exist-db.org/xquery/sql" count="3">
<sql:row index="1">
<sql:id xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">1</sql:id>
<sql:name xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="VARCHAR" xs:type="xs:string">glen</sql:name>
<sql:age xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">21</sql:age>
</sql:row>
<sql:row index="2">
<sql:id xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">2</sql:id>
<sql:name xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="VARCHAR" xs:type="xs:string">sue</sql:name>
<sql:age xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">24</sql:age>
</sql:row>
<sql:row index="3">
<sql:id xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">3</sql:id>
<sql:name xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="VARCHAR" xs:type="xs:string">amy</sql:name>
<sql:age xmlns:xs="http://www.w3.org/2001/XMLSchema" sql:type="INTEGER UNSIGNED" xs:type="xs:integer">28</sql:age>
</sql:row>
</sql:result>The entire code that I wrote on the backend is just 3 lines.
xquery version "1.0";
declare namespace sql="http://exist-db.org/xquery/sql";
let $connection := sql:get-connection("com.mysql.jdbc.Driver", "jdbc:mysql://87.106.210.179/db", "", "") return
sql:execute($connection, "select * from table1;", fn:true())The project provides:
1. a web drag and drop interface for building workflows and generating BPEL
2. a workflow execution engine based on eXist, the XML database, providing access to resources via a REST interface.
Key features:
1. Web drag and drop
2. Templates allow business owners to re-use existing components
3. Access external data sources such as SQL databases easily
Why:
After looking at Drools and Apache ODE (on which Intalio is based) I couldn't get a business process drawn up and running from a URL after two weeks. So what chance does a business user have?
Other Goals and Comments
1. I think I want to separate the process and workflow from the presentation. These are typically tied together and the workflow engine often generates the input forms. I want to get away from forms only presentation and so will use XML responses that can be displayed in any way depending on the end user presentation format required. Still scratching my head on how to architect that. The Wiki design page has some readings that I have done in that area.