DAROC Technology

DAROC is a middleware architectural model, which is loosely based upon on the blackboard model. This architecture will decrease distributed software development time by abstracting away much of the communication overhead and scheduling, which most software developers are burdened with in their application. This approach will still provide a flexible architectural framework that allow for modularity in its components, which then in turn facilitates overall system upgrades and modifications. The combination of reduced communication and synchronization overhead and flexibility will reduce software development time, which has a direct impact on the overall cost of development and testing.

Objectives:

The short-term goal of DAROC is to provide a programming environment that will allow both undergraduate and graduate students the ability to gain some exposure and experience in programming distributed applications.

The long-term goal is a bit more ambitious. The DAROC architecture will address problems such as distributed simulation and battle management scenarios.

Major DAROC Objectives:

• Eliminate message-passing code implemented by the programmer, communication achieved by the reading and writing of objects on the blackboard.

• Eliminate control component, burden of scheduling is placed on the OS not on the application program.

• Activate functional elements in DAROC periodically or based on data changes when performing computations.

• Reduce code complexity allowing an “average” programmer to rapidly develop distributed applications.

• Capability for fault recovery via data replication

DAROC consists of two primary components; functional elements (FE) are active and perform computations and analyze the system state, and the blackboard, which is the structure that holds data objects (DO) that make up the blackboard. Unlike functional elements, data objects are passive and do not perform computations.

DAROC At A Glance:

The desire of DAROC is to empower programmers to be able to write components of distributed systems without being a distributed systems expert.