07-06-2009, 01:16 AM
The SMILE project is developing a new type of messaging middleware system to simplify integration of distributed enterprise applications. Currently, many enterprises use publish-subscribe, request-reply and queuing messaging technologies to glue together their distributed applications into a complex, expensive and virtually unmanageable bodies of code. The vision with SMILE is to give enterprise developers a higher level model for programming and managing distributed messaging systems “ a way to specify a system in terms of what , but not how . Relational database technology simplified database design and query specification by replacing a low-level, representation-dependent design and navigation via an imperative language by representation-neutral schemas and a declarative query language built on top of a rigorous mathematical model. The intention is to make a similar abstraction leap for messaging systems. That is a scalable, reliable, self-optimizing system, programmed in a high level (SQL/X-Query-like) language that hides most of the underlying system complexity. It would allow programmers to think in terms of their application logic, instead of low level communication API™s and would require little knowledge of distributed system concepts to program and operate. The current focus of the project is to demonstrate the SMILE approach for publish-subscribe messaging. The system will receive event streams from sensors, applications, users and databases, and allows clients anywhere to subscribe to functions (derivations via JOIN, AVG, TOP-K, etc. transforms) of these inputs and to receive timely continuous updates to subscription results in response to new events. The updates will then be automatically fed to GUIs, to applications, or to databases through generated client adapters. Specifications of these functions will be made in a simple declarative language that uses familiar database concepts. The system will support autonomic services to automatically manage optimal transform placement and fault-tolerance mechanisms.