Home - aceoperator/mw GitHub Wiki

Welcome to the the Open-Source Middleware wiki!

The Open-Source Middleware is a software stack we have put together for building a Middleware servers that can serve front-end UX applications and integrate with back-end systems and applications. The software consists of (a) well-established Java-based frameworks and libraries, (b) code and configuration that ties the various components together, (c) recipes for building features commonly required in a Middlware and (d) a Maven-based build system. It is meant to be a starter pack for building server-side applications. We put this bundle together when we created the Ace Operator chat management and integration application. The application is now running in production. It took quite a bit of time and experience to put it together and we want to make it available to others so that others can benefit from it.

Here are some of the things you can build at the top of the Open-Source Middleware:

  1. Read/Write data from a Relational Satabase by creating your Data Access Objects (DAO). The system bundles an ORM tool that makes it easy to build such objects. Caching of the DAO and Transactions are also supported.

  2. Develop services that implement business logic. You can fine tune access to the services.

  3. Deploy reports and run them on the bundled Reporting engine. Run scheduled reports.

  4. Develop business/integration logic using Groovy scripting language. Scripting allows system behavior to be customized as well as modify the system behavior without changing the core software.

  5. Generate dynamic content like HTML pages on the fly using the bundled Templating Engine.

  6. Expose selected business logic as REST services with built-in support for XML and JSON representations to serve front-end applications and UX. By default, the services are secured using a multi-tenant authentication database with support for multiple security roles.

  7. Create and deploy integration logic using the bundled Integration Engine supporting Enterprise Integration Patterns (EIP).

  8. Create and deploy business processes using the bundled Business Process Management Engine.

The Open-Source Middleware can be deployed on an any Servlet Container like Tomcat 7. The system supports operations on a MySQL database out of the box but it can be modified easily for other databases. If you design your services to be stateless, the application can deployed in a cluster of servers allowing for scalability and high-availability.

The Open-Source Middleware is built at the top of well-established Java frameworks and libraries. The technology stack includes the following.

  1. Spring Framework 3.1.x - dependency injection, aspect-oriented programming support and API for practically everything including REST services, transactions and security.

  2. MyBatis - popular ORM framework.

  3. JAXB2 - object XML mapping.

  4. Velocity - templating engine.

  5. Jasper Reports - reporting engine.

  6. Apache Activiti - business process management engine.

  7. Apache Camel - integration engine. File, FTP/SFTP, Mail, JMS and Quartz endpoints are already bundled. Support for Solr search engine, Activiti BPMN and CXF-based web services comes pre-bundled.

  8. Infinispan - distributed cache.

  9. Quartz - scheduler.

To get started, read the Installation Guide.

⚠️ **GitHub.com Fallback** ⚠️