5 Ideas to Get Going Today With HTML5 and TIBCO Web Messaging

Chances are, you’ve heard plenty about the promise of HTML5 and how it’s going to transform the web. For our part, since messaging middleware is near and dear to our hearts, it was only natural that our first major investment in HTML5 was the launch of a new mobile and web messaging offering, TIBCO Web Messaging. It’s HTML5 WebSocket based, supports legacy web browsers and integrates natively with TIBCO Enterprise Message Service to extend messaging to mobile and web clients.

Since these are early days for HTML5 in the enterprise, the time is ripe to take the first steps to put this wonderful technology to work and grab an early lead. However, there’s always this early adopter dilemma about the how to get started and where the entry point should be. Should you start in a small way, perhaps add to existing apps, or go big and use in greenfield IT projects and business transformation initiatives?

[Read more...]

Why is HTML5 Relevant?

HTML5In June, TIBCO announced a new enterprise-strength messaging solution for mobile and web applications. Given recent discussions in the industry, I thought it would be an opportune time to discuss what HTML5 is (and isn’t) – and why it is important. In my opinion, these new web technologies redefine the boundary between the OS and the browser. It is very important that we understand what we will start to see over the next 12-18 months.

Normally the world doesn’t really care about versions of HTML. End-users open a web page and just expect their browser to work. The reality is that there really wasn’t much to get excited about until a couple of years ago. When Google announced the Chrome web browser, they established strong support for HTML5. When Apple announced the original iPad in 2010 with strong HTML5 foundation support (sans Flash), HTML5 became the new hyped thing.

[Read more...]

Why is the Federal Reserve Operating Like It’s Still 1913?

The Fed wants to keep economic growth stable, yet still uses monetary policy techniques from its founding in 1913 to manage a 21st-century global real-time economy.

In an interview with Forbes, TIBCO CEO Vivek Ranadivé sheds light on this problem by comparing the Federal Reserve to a thermostat that you can only change once every three months –“ your house would always be under-heated or over-heated with no ability to regulate temperature day to day or even hour to hour.  Imagine being stuck in a house warmed or cooled to the temperature of three months ago” – not very comfortable, and definitely not efficient.

In an era when you can day trade stocks in real time based on a bank’s ability to send 4.2 million messages in 237 nanoseconds (thanks to TIBCO FTL™), and global stock markets can plummet with any news from Europe, the Fed languidly ponders how to stabilize the economy.

Billboards that Know Your Favorite Beer

This year marks the tenth anniversary of the Minority Report movie release, a milestone that is noteworthy as some dimensions of the future imagined in the movie are being played out today. One particular scene from the movie stands out for being spot-on; It’s where the protagonist, John Anderton (played by Tom Cruise) walks through a mall trying to figure out what to do next upon learning he’s wanted for murder.

Since the mall’s virtual billboards are able to identify John using retinal scans, they literally call out to him— aware of his stress and the trouble he’s in.

“John Anderton! You could use a Guinness right about now,” one beer advert beckons.

Another billboard features a gal who tries to entice him with an exotic island excursion: “Get away, John Anderton… Forget your troubles…”

[Read more...]

Modelling Choreography (with events, states and business rules)

This week the BCS SPA group held a fascinating session titled “Modelling Choreography” by requirements analyst Ashley McNeile.

Ashley described some of the past efforts to model and implement choreographies, using types of process algebra such as  Robert Millner’s Calculus of Communicating Systems (CCS) and its derivative Pi-Calculus. However, Ashley used sequences of events and states (i.e. a state diagram) which he also compared to Michael Jackson’s formalised object lifecycles (e.g. JSD  / Jackson Diagrams). Various W3C efforts have described choreographies too – e.g. WS-CDL. Of course the latest modelling construct for choreography is BPMN2!

As an example of his practice, Ashley described an example – modelling bank account transactions via Protocol Modelling (using simple state diagrams):

  • state model 1: defined the close and withdraw events on an active account
  • state model 2: defined the freeze and release account events
  • state model 3: this had no state transitions, but defined the state by the associated constraints (or business rules)
    • if balance < 0 then account state is overdrawn
    • one cannot close an account if it is overdrawn
  • all 3 state models operate in parallel.

To analyse these state models they can be combined into a single state models (with all combinations of states, and all events), and then the unreachable states can be filtered out. The interesting thing here is (1) the analysis of state models for completeness and (2) the use of incomplete state diagrams as a business notation for textual (policy or constraint) business rules.

Other observations:

  1. These types of business rule apply to states and data; they can be extracted and modified (by a developer, or state modeller) into event rules or guards in a state transition diagram. Is it interesting to specify these business rules up front before mapping to events and processes? Yes from a business perspective, as new events or states might affect or be affected by existing business rules.
  2. Using a state to specify a business rule (in terms of the state and output) is an interesting notation that lends itself well to mapping to appropriate events (or indeed processes). Could it catch on in the business rule community?
  3. The use of an explicit choreography language has not had  much success it seems. Google WS-CDL and most entries are dated 2009 or earlier. BPMN2′s choreography may yet prove useful but possibly the concepts are too difficult for business modellers yet imply a co-operative design process for developers that rarely occurs in practice (beyond “this is the interface”!).
  4. At the end of the day, the sequence of events in a business system is just a complex event – which maybe can tell you if the choreography is valid or not.

I’ll add a link to the slides to help explain all the above when they become available…

Annex: a Distributed System Choreography Development Process:

This process describes a development process of state diagrams for choreography purposes:

  1. Define participants and messages (/events) that interact between them
  2. Define states with events as messages from and to, with only 1 sender per state
  3. Project the states out to individual participants – i.e the parts of the state model for each participant – allowing ambiguous states but ensuring these have no sends
  4. Merge the states for each participant
  5. Enact – check each event at a time to prove feasibility of the interacting state models


Event Processing Platforms vs Engines

Opher Etzion just made an interesting classification of the CEP tools market in his observations on the Bloor Research comments on CEP and Big Data, part of an increasing amount of coverage on CEP. To wit:

  • Event Processing Platform is a software that enables the creation of event processing network, handle the routing of events among agents, management, and other common infrastructure issues.
  • Event Processing Engine is a software that enables the creation of the actual function – in the EPN term implementing agents.

In the CEP Market analysis we don’t try to distinguish between these – probably because it would be contentious. For example, to some folks an “event processing network” is managed as a single process – possibly multi-threaded, but bounded on a single machine instance. To others (like TIBCO) the network is a message or event distribution mechanism for breaking the constraints of a single process or system (e.g. performance, scalability, and fault tolerance constraints). Furthermore “event processing agents” might be viewed as “event processing operations” – like a single pattern detection query, or a pattern matching rule, arranged in some kind of activity or business process diagram – or as more autonomous processing agents that can handle a number of operations and cooperate declaratively towards some solution.

If one views an Event Processing Platform as one that handles routing across multiple processes and distributed systems, then the potential candidates is reduced somewhat [*1]. Of course, any CEP engine can be used acoss multiple systems with a shared middleware infrastructure, but individually they are “blind” to the other agents and the design tools do not handle the cooperative nature of the agents. Of course, one can set up a message type to include management information to allow for some semblance of distributed control, but this is more likely to be a developer task than a platform capability.

Looking at something like TIBCO BusinessEvents, we can see this satisfies the requirements of a (physically distributed) Event Processing Platform:

  1. Enables a (computer) network of event processing agents – typically as a minimum of rule agents and cache /datagrid agents, in pretty much any configuration.
  2. Enables a (single process) network of event processing operations – typically the network is implemented as  declarative rules, but can be visualised as a network in a report.
  3. Enables different types of Event Processing Engines – apart from the rule agents, you can also have (continuous) query agents.  Rule agents can also be customised as “decision agents” (executing decision rules,  or decision tables), “analytics agents” (executing predictive analytics models in Spotfire S+ or R), or “optimization agents” (executing NuOpt optimization routines in  Spotfire Statistical Services) [*2]

Notes:

[*1] Other candidates for an Event Processing Platform across distributed systems include IBM Infosphere Streams (although IBM is very quiet these days about that), and EventZero. If there are any others please comment them, and if enough we’ll update the  Market Analysis with this classification…

[*2] Note that invoking Spotfire services involves invoking the Spotfire platform under the control of a rules agent; from an architecture point of view these are just SOA services, like calling BusinessWorks services during event processing.