 |
| Asynchronous Middleware for Parallel Systems |
|
|
|
AMPS Architecture |
|
| AMPS’ Application Model |
The core of an application built on top of AMPS is modeled as a single, non-blocking, event-driven process. The salient features of the application are listed below: |
- The application is modelled as a FSM (Finite State Machine) that changes state as events occur.
- The application is divided into a set of modules.
- Each module is further divided into a set of functions called event handlers. Each event handler is created to handle a particular event that changes FSM from one state to other.
- Each Event Handler must terminate on every blocking operation. If it is not the case, then it needs to be taken out of the asynchronous single threaded framework and implemented as an I/O Agent (described later)
- Events can be generated as a result of occurrence of I/O operations, or due to one module trying to communicate with another module.
- The communication model between modules used by AMPS is based on rendezvous based abstraction. In this model, senders are de-coupled from receivers. Senders send their events to the rendezvous without specifying any recipients and receivers receive events of their intereset from the rendezvous without realizing exactly who sent them these events Receivers express or register their interest in receiving the events they want to receive. Senders just generate events at the appropriate time, hoping that each event will be received by all modules interested in that particular event.
- Each event need to identify to AMPS what data it needs to send to the other Event. It is then the responsibility of AMPS to deliver that data using the most efficient method available. This makes scalaing to other cores, processors or even out to cloud a seamless thing for the application.
|
This type of communication model enables seamless integration of new modules quite easy. The whole system becomes a service-oriented architecture. Each module provides a set of services, and requires a set of services from other modules. A module could either provide service when solicited or requested, or it could provide service asynchronously. Service itself could be some task or function required by one or more modules in the system, or it may only be some information disseminated throughout the system picked up by anyone interested in it. Note that at the architecture level, the producers and consumers of service do not need to know about each other. However, if at the application level, they want to find out about each other, they may use the data transferred in each event for this purpose. This keeps the architecture clean and maintains its simplicity. |
 |
|
|
| News & Events |
|
1st October 2009
A complete Service Delivery Platform for telecommunications applications is released all built on top of AMPS. SDP is showcased name Augur is available at http://Augur.biz
1st July 2009
AdvOSS launches a complete Diameter AAA server built on AMPS. The server is tested with very high load of millions of subscribers and worked well.
1st April 2009
AdvOSS launches full suite of Diameter applications built on top of AMPS. These include a HSS (Home Subscriber Server), Offline Charging and Online Charging. These complete a full suite of AAA applications for IMS (IP Multimedia Sub-System)
1st Jan 2009
Diameter Stack Launched. AdvOSS has launched a full Diameter protocol stack. This protocol is at the heart of next generation AAA and requires implementations that support higher processing and require scalability. This stack is now an integral part of AMPS.
|
|
|