WorkwareOne™ offers rich capability to build collaborative workflow applications and manage huge amounts of data. We use this platform to extend our OEM partners’ solutions and build our own customer workflow management systems around dynamic, changing tasks in mobile and fixed environments We integrate and seamlessly mesh with existing information systems, architectures, data warehouses, and our specialty… unstructured data.
WorkwareOne can reside in the Cloud, on an appliance, or virtualized in a data center, depending on our OEM partner or customers’ preferences. We have incorporated highly-scalable and very efficient open source technologies including Apache Cassandra, Hazelcast, Hadoop, and Mahout, in addition to our own open object-relational mapping technology, access controls, comprehensive workflow engine, and unstructured data search.
We designed WorkwareOne with a few very compelling design goals:
1. Incremental scalability. It is a challenge to foresee where the market will lead you and it is not always possible to buy your way out of performance problems with faster hardware. Our design goal was to be able to run our platform on everything… Starting with a laptop and scaling nearly linearly to clusters of 100s of machines. This same design goal is also an enabler for cloud deployment.
2. Inherent redundancy. Complex schemes involving database and file synchronization are always a source of worry. Many times in the past, our CTO has walked in and surprised development teams by pulling the plug on servers during a QA pass. In spite of thorough design and testing, it usually takes heroics from the development team to recover failed systems. We couldn’t have this condition in our customer environments. Our market requires mission ready systems performance and functionality.
3. Schema resilience. This is especially critical when products are customized by each customer (e.g. Case Management, Incident Management, Personnel Security). The expense and risk associated with writing SQL conversion scripts, on a per installation basis, quickly becomes one of the largest obstacles to agile, iterative development with conventional technology. We needed the utmost level of agility since our customers typically work in changing policy environments and varying approaches to professional practice.
Language. WorkwareOne is written in fast, stable Java except for scripting, which is written in Groovy.
Persistence. Everything is stored in a Cassandra data store, the leading NoSQL platform behind Digg, Twitter, Cisco’s WebEx, and CERN’s ATLAS. We have built two layers over the basic Cassandra store. The first is to support the management of large sets / vectors, and the second provides object mapping including both a Java Persistence API style object notation. System management is very friendly.
Unstructured Search. We have implemented extremely fast, system-wide search functionality.
Geospatial and Link Analysis. Full POLE (people, objects, locations, and events) model linking and geospatial analysis is pervasive across the data store.
Access Management. Role and user access control on objects, object types, functions, and collections was designed into the persistence tier and exploits some Cassandra characteristics to provide optimal performance.
Workflow. Our implementation supports added behavior to forms, objects, and collections. We’ve coupled this with reliable event management which doesn’t lose events during restarts. This has proven to be critical in our customer environments.
Clustering. Cassandra is designed to be clustered and has well developed distribution capabilities. Clustering the web servers, services, and workflow engine requires sharing data between the JVMs and synchronization locking. We are using Hazelcast for shared data and locking. This has proven to be very straight forward and performs well.
Web-based UI. HTML5 is our foundation and we support smart phone-based client apps when needed. We use Apache Tomcat as our standard web server, but many other web servers can also be used. We can fit into any customer scenario.
License Model. We utilize a straight-forward license model. No third-party costs or use limitations. A typical end-user license is for a cluster of any number of nodes and tiered for the number of active users. The base platform includes our entire stack and can be configured to meet customer requirements. We also have a SaaS model and co-development partnership models.