Phenomenological Model for Distributed Systems
Software Tools

Phenomenological Object Model Runtime Components

The POM Runtime Components are the executable programs that run in each node to organize and implement the distributed system. The POM Runtime Components are specified for a particular hardware platform. The POM Runtime Components consist of the Phenomenological Object Request Broker (PORB) and the Object Repository.

The PORB
  • The PORB handles incoming requests for object methods and object data.
  • It identifies the object being requested and the channel over which the incoming request was made. A channel can be but is not limited to a physical communication channel, a communication protocol, a type of client, a sensor or physical interface, or an internal request.
  • The PORB presents the interfaces to an object according to the channel used to invoke the object resources.
  • The PORB itself is componentized and modular allowing dynamic addition and enumeration of available channels on its node.
The Object Repository
  • The Object Repository stores the available objects on the node.
  • It provides the PORB with the interfaces to the objects and the mapping of the channels to the interfaces on each particular object.
  • Basically, the librarian of the node.


Phenomenological Interface Definition Language

PIDL is a high-level language used to describe an object. A PIDL file defines and describes the interface channels (physical, protocol, stream, etc) that the object supports. The PIDL file also describes the methods and data available on an object. And finally the PIDL file maps between the two, so it defines what methods and data are available through which channels. See the documents page for the PIDL language specification document. See the code examples page for examples of PIDL files and generated output.




Phenomenological Interface Definition Language Compiler

The PIDL Compiler is a software tool that takes as input a PIDL file and generates C code that can be used to implement that object. The implemented object can then be compiled and included in the Object Repository and accessed by the PORB. The PIDL Compiler also generates code for a client object or standalone client to communicate with the objects on a node. See the hardware page for info on supported platforms. See the code examples page for examples of PIDL files and generated output.
Home | Info | People | Documents | Software Tools | Hardware Platforms
Example Code | Applications | Media | Internal

Responsive Environments Group
MIT Media Lab