Starview Inc. have just launched their new platform – Business Analytics and Optimization Platform (BAOP). Growing out of a long standing consulting practice, the company sees an opportunity for a platform aimed at the continuous optimization of decision-making. They are focused on Telco, Finance, Energy and Manufacturing (especially Semiconductor) and they have a vertically-oriented strategy, working with partners that have domain expertise to deploy vertically oriented solutions.
Starview has been developing technologies to help companies deal with “Big Data” such as time series data out of factories and management systems. These companies are naturally moving to analytics on this data and ultimately to automated decision-making given the velocity of data and the need for rapid responses. Starview felt that there was no platform for this kind of system out there and that piecing it together from various platform components was too hard. They have been developing an “active model” platform that allows them to define actors that represent the various elements of the system. These actors understand state and can respond to the data as it flows in and around the system. The platform allows various algorithms to be applied across the actors to optimize decisions. See a video here.
For instance, continuous manufacturing. Traditional factory optimization is very batch oriented and Starview wanted to do this continuously – generating a “ best next action” for the factory or complex of factories. The same approach can be applied in Telco to ensure that high value customers get prioritized as they move around – optimizing their use of the nearby towers relative to other (lower value) customers. In financial services Complex Event Processing has been big in algorithmic trading and Starview is helping companies look at their portfolio in the context of everything that’s going on to make more optimal trading decisions that use a broader view of the situation.
The core of the solution is a model, composed of actors that understand state (up to millions of them) across which decision logic is run to make decisions. Simulation is important in advance and there is also some “in line” simulation for impact analysis when making changes. For instance in a system managing a smart grid you need to understand the consequence of more people plugging in Electric Vehicles. How to manage the grid in these circumstances to make sure that charging the EVs does not overload the grid and disrupt other uses of the grid. The simulation could allow for a given number of EVs, particular growth rates etc. View Starview’s Smart Grid demo here.
A typical buyer is a “business user” – someone who understands how to run a factory or a network not someone who understands coding. The system allows the definition of management rules and analytics to make sure that it behaves appropriately. In the Smart Grid example, for instance, you can define logic to ensure the grid load stays in bounds and spreads the charging of EVs out appropriately.
The development environment is based in Eclipse and allows the definition of the model using various diagrams. The core diagram is a data flow model that identifies the various actors whether systems or data sources or decision-making components. Each has a well defined set of interfaces for data transfer and the structure is hierarchical so you can have the same kind of actors defined at different levels of granularity. Large numbers of adaptors are available to pull data in from other systems as you would expect and these support real-time data feeds.
The system is very message based and chains together actors into complex webs. Within each component there is a bunch of code. You can code as much complexity as you need but it is still being coded. It’s frankly a fairly geeky interface, typical Eclipse, but there is a rules-based language that is declarative and allows large numbers of rules to be specified in any order. These rules can be changed in running systems by specifying a name for the rule and then building a UI to update the rule from within another application. There is a standard management console that allows attributes to be changed but most customers like to build a custom interface and use an API. When rules are changed the component is paused while the update happens and buffers the data flowing in until the change is complete.