| Real Time Business Intelligence |
| Written by Lars J. Nilsson |
| Tuesday, 10 March 2009 16:11 |
|
Correct, timely and sufficient business intelligence is a very important building block in an enterprise. But gambling systems present us with some difficulties. In this article I'll take a look at how a business can harness much more information, even in near-real time. This article discusses business intelligence in the context of gambling networks but can easily be extended to other domains as well. Pinpointing the ProblemTraditional business intelligence is usually performed over historical data and centers round the concept of data mining. As events are propagated through a system they are also written to a database, which can be queried and processed in retrospect to gain insights in user behavior, assist in fraud management, etc. In many fields this is sufficient, but as a gaming system grows, the sheer number of events in the system makes it impractical to use normal data warehouse techniques as the amount of data produced every second quickly becomes too cumbersome. Fortunately, recent efforts in complex event processing, or CEP, and staged computing offers a way forward. The Event Cloud
Different subsets of the system will be concerned with different events – a game for example will handle only the events appropriate for itself and its players – and through this specialization of separate modules the events are partitioned, and each event processed only to instantly be replaced by a new one. Even now we're starting to see the problem: how can we make sense of this event cloud? It is too large to write to a database in its entirety, and as the events are of a great variety of types it is far from clear how we can combine events to form a coherent picture. Before we go further, it is all too easy to slip into a language so abstract and completely deprived of specifics that the end text is almost intelligible, so let's put down a simple example: After initiating a campaign for a subset of our users with the goal of getting them to play more of a specific game we need to evaluate the outcome. In other words we'd like to know: if a user is a member of the campaign subset when he logs in, and if he is we'd like to know his “click path”, in other words the order which the user navigates in the system after logging in, and finally if he ultimately ends up playing the game more. In order to evaluate our campaign example there are a number of modules and components involved which may not know how, or indeed want to, interact with each other. We need information from the system authenticating the user, we possibly need information from the game client for the click path, and we need information from the game server themselves. And this is information spread over time, so that any individual snapshot of the event cloud will not be of help; we need to track aspects of the event cloud as it progresses ever forward in time. Complex Event ProcessingComplex Event Processing, or CEP, is primarily an event processing concept that deals with the task of processing multiple events from en event cloud with the goal of identifying the meaningful events within it. CEP employs techniques such as detection of complex patterns, event correlation and abstraction, event hierarchies, and relationships between events such as causality, membership, and timing.
Another example might be in order to highlight the benefits of CEP, detecting login problems in the system: Imagine all login events as a subset of our event cloud. CEP allows us to do pattern detection on this subset over a moving time window, so that we can express almost in plain text the following: “raise an alert if the number of login attempts the last ten minutes differs significantly from the average ten minutes the last twenty four hours”. Such an alert would signify a technical problem in the system which must be investigated and is usually hard to detect. There could be network problems, an integration could be non-responsive, the database down on its knees, etc. Staged ComputingIn order to utilize the data, and to tap the event cloud, we need another abstraction. We don't want to spend CPU cycles on the actual machines running our enterprise. Rather, we want to hand off a subset of the event cloud to another process where we can analyze and correlate the data. Staged computing is the concept of processing as a chain of independent stages that perform computing tasks isolated from one another. After an event is generated it is passed through a chain of processors that each perform a subtask. For example, a login event may first pass through the stage using CEP to determine the system login status as described above, then handed off to another stage using CEP and an IP database to check for “impossible travel” indicating an account used by multiple users, then on to even more filtering. One of the main advantages of staged computing is that it is easy to scale and maintain. As different stages usually are separated by message queues or communicate with stateless sessions which can easily be load balanced, a staged computing setup for our real time business intelligence would be easy to extend and maintain. Putting It All TogetherNow let's combine our new knowledge of complex event processing and staged computing, what could we actually use this for? Some examples may be:
There's a sea of data and knowledge available in the event cloud of every major gambling installation that could be crucial to the success and endurance of the business. The problem is how to get our hands on it. I believe complex event processing and staged computing is one of the answers we've been looking for. Using these techniques could be the game changer that takes a business just that one step ahead of the competition. Lars J. Nilsson is a founder and Executive Vice President of Cubeia Ltd. He's an autodidact programmer, former opera singer, and lunch time poet. You can contact him at lars.j.nilsson in Cubeia's domain. |
| The User Service, a component of Cubeia Network is not available as open source on www.cubeia.org. The User Service exposes a back-end user management system through a RESTful web service using JSON. |
| The product suite formerly known as Back Office has now changed name to Cubeia Network. Cubeia Network is a suite of loosely coupled components typically needed to run as an network operator or white label operator. |
Cubeia Ltd is a software and services company, registered in with UK company no. 6056566 and operating through our office in Stockholm, Sweden. Cubeia Ltd. UK Fillial is a registered branch office in Sweden, organisation no. 516404-2268. Please contact Lars J. Nilsson, Executive Vice President, on telephone: +46 (0)704 - 10 69 53.