organon project mat laibowitz 1/15/2003. presentation contents l current state of the world of...
TRANSCRIPT
Organon Project
Mat Laibowitz1/15/2003
Presentation Contents
Current state of the world of object architecture and client-server design
My proposal for a new standard My proposed demo application that
shows the new standard
CORBA
Common Object Request Broker Architecture
Standard (not a product) Object defined in this world as a
compiled component Client defined as object making request Server defined as object handling
request
CORBA Goal
CORBA allows the interconnection of objects and applications regardless of programming language, machine architecture, geographical location, or connection protocol.
CORBA Components
Interface Definition Language (IDL) Object Request Broker (ORB) Dynamic Invocation Interface (DII) Interface Repository (IR) Object Adapters (OA)
Interface Definition Language
Separates object implementation from interface• Basically a declarative language, similar in
appearance to C++• Defines types of objects by separating
interfaces, named operations and parameters
• A means by which the object implementation tells clients what operations are available and how to invoke them
Interface Definition Language (continued)
Mapped to a particular programming language (C , C++, Java)
IDL compilation produces stubs/skeletons• stub - local function call for the client• skeleton - server side of the object
implementation
IDL Example
IDL code: interface Console {
void print(in string message);
};
Compiled into:• stub:
class ConsoleImpl {
public:
void print(const char* message, CORBA_Environment& env);
};
• skeleton:void
ConsoleImpl::print(const char* message, CORBA_Environment&)
{
printf("%s\n", message); // Added after compilation
}
Object Request Broker
Delivers requests to objects Returns output values back to
client This is a product Microsoft COM/DCOM Iona Orbix
Dynamic Invocation Interface
Allows dynamic construction of object invocations• Application can thus make calls on objects without
compile time knowledge• More flexible than static approach; but more
complicated and less typesafe
• Steps Involved: Object::get_interface
InterfaceDef::describe_interface
Object::create_request
Request::add_argument
Request::invoke
Interface Repository
A service that provides persistent objects that represent the IDL information in a form available at runtime
Provides type information necessary to issue requests using the DII
Also stores additional information like debugging info, libraries of stubs or skeletons etc
Object Adapters
Provides a consistent interface to varied implementations, and controls lifecycle operations on objects
Objects can be implemented as C++/Java classes, C/Java functions, or even server-per-method
Allowing varied methods of implementation facilitates integration of legacy applications
When a client requests a service from an object, the OA maps the request to the appropriate implementation
Client Server Dialog
IDL compilation results in stubs(client-side) and skeletons (server side)
Client gets an object reference, and makes requests using it ORB translates the request into a form suitable for
transmission OA assists ORB in determining the exact implementation IFR helps ORB do appropriate type checking ORB decodes request, passes it on to the skeleton Skeleton services request, stub and skeleton pass it back to
the client (along with exception info, if any)
PORBA and PIDL
Mat Laibowitz1/15/2003
Phenomenology
20th Century philosophical movement dedicated to describing structures of experience as they present themselves to consciousness
Phenomenologists tend to oppose the acceptance of unobservable matters and grand systems erected in speculative thinking
Rejection of Cartesian dualism (mind-body separation), mind exists in response to senses
Famous Phenomenologists are Husserl (founder of phenomenology, “To the things themselves) and Heidegger (manifest what is hidden in ordinary, everday experience)
PORBA
Phenomenological Object Request Broker Architecture
A new standard for distributed objects mainly intended for the embedded, pervasive, and ubiquitous theatres, but applicable all the way up to mainframes and servers
Parallels life Standard as artwork and philosophy
PORBA
In the PORBA standard, the method of connection and communication is NOT transparent
PORBA objects present different interfaces to different methods of communication
Interplay between these interfaces is fully exploited
Method of communication can be a physical connection (IR, RF, contact, local control, ethernet, sensor input) or a protocol on a physical connection
PORBA examples
Which sense you use to experience something is critical to the experience
Braille example IM, Phone, Voicemail, Personal
example Sensor to RF object example
PORBA
The PORBA standard includes the ability for a server node to allow a client node to copy the server object itself into the client’s object repository over one or more of the server’s interfaces
PIDL
Phenomenological Interface Definition Language
Contains all of the original IDL syntax for defining interface constructs (methods, data, etc)
Adds ability to define and attach a specific channel (physical, protocol, stream) to an interface
PIDL compiler will compile the PIDL interface into stubs and skeletons
PORB
Phenomenological Object Request Broker Handles incoming requests Identifies object being requested and
connection channel Presents interfaces according to channel PORB itself is componentized and modular
allowing dynamic addition and enumeration of interface channels
Organon: PORBA Implementation v0.1
Node consists of two microcontrollers, one implements PORB, one is used for object repository
Interfaces for v0.1 are IR, RF, contact, 3 streams of sensor input, 1 RGB LED
Small, wearable, mobile form factor emphasizes Phenomenological philosophy
Demo Application
Mat Laibowitz1/15/2003
Neo-Phenomenology
21st century philosophical movement Upholds all constructs of the original phenomenological
movement Adds the construct of the desire to experience with full
sensoral interface those experiences identified from departure from the original phenomenological philosophies (i.e. bringing video game type experiences to the real world)
Neo-phenomenology term coined by T. Dorsey (MIT)
Bio
Studied film because of interest in artistic presentation of narrative structures
Past 6 years created game played over the course of an evening on the streets of New York where teams follow clues/puzzles around the city that fill in the narrative. Game written up in New Yorker magazine and discussed on NPR’s This American Life
You are all invited to play this summer
Organon Demo Application
Real World Adventure Game Adventure Video Game Narratives parallel PORBA standard
specification Characters (nodes) interact with one another and gain
capabilities and tools (copied objects). How they communicate to each other determines what they learn and ability to communicate with a different interface later. Tools gained can be used to advance the narrative. Objects could contain puzzles to solve to advance the narrative.
Possible collaborations include the Interactive Cinema group and the MIT Assassin’s guild
Neo-phenomenological application of a phenomenological motivated technology