Sunday, January 25th 2009 | Ismael Ghalimi
Our Project Dogfood was launched just two weeks ago, but it’s running full speed ahead. Among the most active projects, the Customer Support Process lead by Gene Grell — Intalio’s new Director of Support — and the Marketing & Public Relations Process, which I am working on with Rick Geneva and Antoine Toulme. Here is a quick update on both, plus a really cool side project that emerged from one of them.
First, the Customer Support Process. It’s a pretty complex one originated from a custom user interface built in Ruby on Rails, integrated with our new trouble-ticketing system (itself integrated with Salesforce.com), our knowledge database (Confluence), our legacy bug tracking system (Jira), and our original Demand Driven Development (D3) portal (itself to be migrated to a collection of processes running on Intalio|BPP). This process is only a prototype right now, but should be fully implemented within a month or two. In the meantime, feel free to download the BPMN project for it, which you can import directly from Intalio|Designer (File/Import…).
Second, our Marketing Process, which was described in details in this article. After some internal discussions, we concluded that the process could be implemented through a generic BPMN pattern, rather than dynamically generating BPMN code. This is a much better solution, for three main reasons: One, it’s a lot easier to implement. Two, it will allow any changes to the Execution Table (the spreadsheet describing the process) to be applied to running process instances in flight. Three, it will support the definition of any loops within the process, and the use of recursion within the process — a process instance can create a new one, like is the case when a Public Call or a Webinar have to be organized for example. What follows is a map of the generic process that will support the execution of any process designed with our Execution Table Template.
The Execution Table Template has been cleaned up in order to support its design with Google Apps or Zoho (Google Apps version), the definition of arbitrary loops, recursion, and multiple forms, which are now captured through separate sheets (Data Input Form). Integration Points, Ideas, and Timesheet are also captured through separated sheets, and used for documentation purposes only. What follows is a screenshot of the Execution Table designed using Google Apps, also made publicly available (Decision Table | BPMN Model).
What’s truly remarkable about this project is that Intalio|Designer and Intalio|Server could be used off-the-shelf for implementing a custom process design and execution framework built upon a proprietary process execution meta-model, in a matter of days, and without having to write custom code. So far, we spent 18.5 hours on the project, and we expect to have a first running version of the end-to-end process within two weeks, working on it in our spare time.
Another interesting discovery made through this project is the fact that processes modeled with our Execution Table Template can be used by auditors working on SoX compliance projects. We presented our idea to half a dozen companies in Japan earlier this week, and every single one indicated that they could use our tool for their J-SOX projects (J-SOX is the Japanese equivalent of the Sarbanes-Oxley Act). As a result, we’re seriously considering packaging this template with our Business Rules Engine (Intalio|BRE) and upcoming Complex Event Processing (CEP) engine into a solution for next-generation Governance, Risk Management, and Compliance (GRC).
Third, the side project I mentioned above. As part of our Marketing & Public Relations project, we had a need for an Enterprise Content Management system that could be used to develop and publish all our marketing collaterals. While we could have used Intalio|ECM for this purpose, integration with Google Apps and Zoho was lacking. Furthermore, we wanted a system that could not only store our marketing collaterals, but also all our process artifacts, fully integrated with Intalio|Designer. Last but not least, we wanted a system that could store XML documents natively, and provide integration with Apache Cocoon, in order to support the publishing of content on our existing website.
After some internal discussions, we decided to develop our own system. It is built on top of Apache Sling, which itself is based on Apache Jackrabbit. The funny story about Jackrabbit is that it is based on Apache Slide, which itself was contributed by Intalio to the Apache Software Foundation 8 years ago. Small world, very small world… Sling also includes Apache Felix, which is the OSGi framework that all Intalio’s runtime components will be deployed on top of moving forward. Jackrabbit now includes Apache Lucene, to be used as search engine. Finally, we’re looking at the Jena Semantic Web Framework in order to support the tagging and indexation of documents in a scalable manner.
At present time, a prototype integration of Sling with Tempo has been developed by Nicolas (Cf. blog post and screencast), and we are considering creating a D3 project for it, while debating about the Open Source license this new project should be released under. If this sounds like fun, please take a look at our tentative roadmap and drop us a line. The codename for this project is Doubleshot.