Converging thinking on next-gen Application Development

Reading Time: 2 minutes

James Taylor posted his views on what he terms “Application Development 2.0” (although this should surely be version 4 at least: e.g. assembler -> 3GL -> model-driven -> event-driven). A few comments on his “wish list”, which of course closely aligns with CEP tool capabilities from my perspective…

  • Model processes, events and decisions as first class objects
  • Support declarative (rules-based) approaches to developing business logic
    • Both declarative and procedural constructs need to be allowed for. Certainly procedural is the more traditional approach, but developers should be guided where possible to more maintainable declarative approaches.
  • Use visual metaphors to manage rules, processes, events
    • Model-driven is absolutely a requirement. Decision tables and trees provide one type of metaphor, but sometimes the real requirement is the view of how the models all work together against, for example, the arrival of a particular event.
  • Integrate analytics and dashboards directly
    • This really means “instrument” to allow “measurement”. And this means event-enabling processes so the events can be captured for short-term event-driven analytics or long-term data-driven predictive analytics – in both cases the analytics processes are driven by events.
  • Develop rich visual interfaces
    • See visual metaphors and dashboards above. One interesting area that might yet take off is the idea of 3D data / event navigation.
  • Support legacy modernization, legacy integration and legacy understanding
  • Support collaboration, especially collaboration between IT professionals and business users
    • This means more transparency (see visual metaphors and decision management above). And better business management and governance when it comes to IT…
  • Contain tools that do version control, configuration management, approvals, deployments etc. in a way that makes sense to business users and that integrate well with IT’s tools for these activities
    • Workflows for IT and decision management, and automated metric collection of the development process too…

Comparing the above with a state-of-the-art CEP tool and event server platform like TIBCO BusinessEvents we see:

  1. Model “processes” as states, events, and explicit decision management… as well as data objects. Persistence and distributed execution support is provided out-of-the-box in a near transparent manner.
  2. Declarative approaches… such as inference rules. Inference rules are the default event (and data) processing mechanism in BusinessEvents.
  3. Visual metaphors to simplify development / improve communications… such as state models, class / concept models, rule process analysers, and decision tables.
  4. Integrate analytics and dashboards… into the development process and output. The ability to readily instrument anything – state changes, rule firings, external events etc – proves key here. External libraries for advanced analytics like neural nets, Kalman filters and such like (through S+) and event visualizations (through real-time Syndera or after-the-event Spotfire) provide state-of-the-art here too.
  5. Rich UIs … means things like visual project analysis tools for cross-referencing for example rules and concepts.
  6. Legacy support … means access to existing services (through BusinessWorks) including databases (through DBconcepts).
  7. IT and business collaboration… means in our case the use of visual models to show the behaviors of the system.
  8. Configuration and version control… to date this is the Rule Management Server to control workflow for (at present) controlled decision management artifacts.

So the key mixture of events, declarative constructs, and decision management is already here.