distributed-omar: reconfiguring a lisp system as a hybrid lisp/(java) component gte-i / bbn...

73
Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN GTE-I / BBN Technologies Technologies Nichael Cramer 17 Nov 1998

Upload: jack-shaw

Post on 12-Jan-2016

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Nichael Cramer

17 Nov 1998

Page 2: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

The OMAR System

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Additional information:

– Stephen Deutsch (Stephen Deutsch ([email protected]@bbn.com).).

– http://www.sover.net/~nichael/misc/

– (Papers available at front.)(Papers available at front.)

Distributed-OMARDistributed-OMAR

Page 3: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

The OMAR System

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Simulation Development Environment.Simulation Development Environment.– Editing/Browsing tools.Editing/Browsing tools.– Displays for runtime monitoring.Displays for runtime monitoring.– Application-specific displays (e.g. radars).Application-specific displays (e.g. radars).– Procedure language (SCORE).Procedure language (SCORE).– Simulation engine.Simulation engine.– ““Human in the Loop” experiments.Human in the Loop” experiments.

Distributed-OMARDistributed-OMAR

Page 4: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

The OMAR System

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• OMAR has been primarily used in the OMAR has been primarily used in the modeling of human performance.modeling of human performance.– Multi-tasking capabilities of human-Multi-tasking capabilities of human-

operators.operators.– Teamwork activities.Teamwork activities.

– Air Traffic Control and Flight Deck Air Traffic Control and Flight Deck simulation.simulation.

Distributed-OMARDistributed-OMAR

Page 5: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

The OMAR System

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• For the present talk:For the present talk:

– OMAR is a large, simulation application, OMAR is a large, simulation application, written in Lisp (ACL) and CLIM, running written in Lisp (ACL) and CLIM, running on Unix (Solaris and SGI) platforms.on Unix (Solaris and SGI) platforms.

– Signal/Event-based semantics for inter-Signal/Event-based semantics for inter-procedure communication.procedure communication.

Distributed-OMARDistributed-OMAR

Page 6: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• OMAR was successful.OMAR was successful.– (I.e. the customer was very happy.)(I.e. the customer was very happy.)

• Interest in “distributing” OMAR.Interest in “distributing” OMAR.– OMAR as “intelligent agent” in existing OMAR as “intelligent agent” in existing

systems.systems.– Network of OMAR agents. Network of OMAR agents. – Interact with other agents/components.Interact with other agents/components.– Web-based operation.Web-based operation.

Distributed-OMARDistributed-OMAR

Page 7: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Design Goals

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• DistributedDistributed

– OMAR should be able to participate as an OMAR should be able to participate as an equal in distributed systems consisting of equal in distributed systems consisting of multiple remote, independent Agents or multiple remote, independent Agents or other Components.other Components.

– OMAR’s internal modules should be able to OMAR’s internal modules should be able to run in a distributed manner as needed.run in a distributed manner as needed.

Distributed-OMARDistributed-OMAR

Page 8: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Design Goals

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Flexible.Flexible.

– Usable with:Usable with:• Broad range of systems.Broad range of systems.

• Multiple “external” languages/platforms.Multiple “external” languages/platforms.

• Assortment of middleware choices.Assortment of middleware choices.

– Stable as standards change.Stable as standards change.

Distributed-OMARDistributed-OMAR

Page 9: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Design Goals

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Robust and Maintainable.Robust and Maintainable.– To the extent possible, there should be a To the extent possible, there should be a

single D-OMARsingle D-OMAR• I.e. not a “Corba-OMAR”; a “RMI-OMAR”; etc.I.e. not a “Corba-OMAR”; a “RMI-OMAR”; etc.

– Main System Functionality in Core-OMAR Main System Functionality in Core-OMAR (Lisp) system.(Lisp) system.

• Efficient.Efficient.

Distributed-OMARDistributed-OMAR

Page 10: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Design Goals

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Maintain the central Lisp functionality.Maintain the central Lisp functionality.

– Maintain the advantages that Lisp provides.Maintain the advantages that Lisp provides.• Dynamic class inheritance.Dynamic class inheritance.

• Rapid-prototyping capabilities.Rapid-prototyping capabilities.• Etc.Etc.

– Specifically: Want to be able to continue Specifically: Want to be able to continue writing the core simulation engine in Lisp.writing the core simulation engine in Lisp.

Distributed-OMARDistributed-OMAR

Page 11: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Overview

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Distributed-OMAR presents itself to the Distributed-OMAR presents itself to the external components as being a single external components as being a single unified component in the target language.unified component in the target language.

– Examples:Examples:• An “OMAR Bean” in Java.An “OMAR Bean” in Java.

• An “OMAR Federate” in HLA.An “OMAR Federate” in HLA.

Distributed-OMARDistributed-OMAR

Page 12: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture: High-Level Structure

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Core-OMAR module...Core-OMAR module...• (Compact version of Lisp simulation system.)(Compact version of Lisp simulation system.)

• through inter-module communication…through inter-module communication…• (Socket-based serialization protocol.)(Socket-based serialization protocol.)

• to Connection in External language.to Connection in External language.• (Presence of D-OMAR in foreign language.)(Presence of D-OMAR in foreign language.)

Distributed-OMARDistributed-OMAR

Page 13: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture: High-Level Structure (cont.)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• In external Language, D-OMAR presents In external Language, D-OMAR presents a basic “External Connection” object.a basic “External Connection” object.

– External Connection behaves as a source External Connection behaves as a source and sink of D-OMAR events in the External and sink of D-OMAR events in the External language.language.

Distributed-OMARDistributed-OMAR

Page 14: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Can run with assortment of external Can run with assortment of external languages. languages. – Java is language of choice.Java is language of choice.– But, other languages available.But, other languages available.

• ““Piggy-back” off features of external or Piggy-back” off features of external or embedded language.embedded language.– Can use standard networking tools.Can use standard networking tools.

• E.g. RMI in Java; CORBA; HLA …E.g. RMI in Java; CORBA; HLA …

– Graphics packages, etc.Graphics packages, etc.

Distributed-OMARDistributed-OMAR

Page 15: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• The Core-OMAR system remains The Core-OMAR system remains compact and intact.compact and intact.– Remains in pure CommonLisp.Remains in pure CommonLisp.– It continues to be able to do what it does It continues to be able to do what it does

well.well.

• Only a small layer (Cap) needs to Only a small layer (Cap) needs to changed to work in different systems.changed to work in different systems.

Distributed-OMARDistributed-OMAR

Page 16: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Core OMAR Module

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOMAROMAR

• Original Lisp “Kernel”.Original Lisp “Kernel”.– ScoreScore

– SFLSFL

– Rule-based languageRule-based language

• Pure Common LispPure Common Lisp– Plus socket package.Plus socket package.

– Direct graphics/editing Direct graphics/editing support removed.support removed.

• Primarily Signal (Event) Primarily Signal (Event) based semantics.based semantics.

Distributed-OMARDistributed-OMAR

Page 17: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Core OMAR API

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Well-defined, cleaned-up Well-defined, cleaned-up functional API protocol.functional API protocol.

• CommanderCommander– ““Incoming” CommandsIncoming” Commands

• ListenerListener– ““Outgoing” CommandsOutgoing” Commands

CoreCoreOMAROMAR

Distributed-OMARDistributed-OMAR

Page 18: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

MasterMaster

OMAR Master

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOMAROMAR

• Implementation of the Implementation of the Core-OMAR API.Core-OMAR API.

• Governs communication Governs communication with “outside world”.with “outside world”.

• More than one possible More than one possible implementation.implementation.– Command-Line.Command-Line.

– ““OMAR Classic”OMAR Classic”

Distributed-OMARDistributed-OMAR

Page 19: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed Master

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Communicates to external “Connections”Communicates to external “Connections”– Connection written in language of host Connection written in language of host

system (e.g. Java, C++).system (e.g. Java, C++).

• Communication is a socket-based, Communication is a socket-based, serialization, message-passing protocol.serialization, message-passing protocol.

Distributed-OMARDistributed-OMAR

Page 20: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Sockets

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Sockets:Sockets:

– Standard mechanism for inter-process Standard mechanism for inter-process communication.communication.

– TCP/IP based communication layer.TCP/IP based communication layer.

– Common to virtually all platforms.Common to virtually all platforms.

Distributed-OMARDistributed-OMAR

Page 21: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Serialization

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Serialization:Serialization:

– Mechanism for moving objects (Strings, Mechanism for moving objects (Strings, Events, Structures, etc) between processes.Events, Structures, etc) between processes.

– (Encoding representation of Objects into a (Encoding representation of Objects into a byte-stream representation, to be decoded by byte-stream representation, to be decoded by an external process.)an external process.)

Distributed-OMARDistributed-OMAR

Page 22: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Message-Passing

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Message-passing:Message-passing:

– High-level specification of a request for a High-level specification of a request for a state-change.state-change.

• Event, method call, ….Event, method call, ….

– In the stream, an object with a “state-flag” In the stream, an object with a “state-flag” and a set of arguments.and a set of arguments.

Distributed-OMARDistributed-OMAR

Page 23: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed Master (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• External Connections can run on:External Connections can run on:– Same machine (standard mechanism). Same machine (standard mechanism). – Different machine.Different machine.

• Event-based communication.Event-based communication.– Independent of language of Connection.Independent of language of Connection.

• Single protocol for all Connection types.Single protocol for all Connection types.

Distributed-OMARDistributed-OMAR

Page 24: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed Master (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Current Connection types:Current Connection types:

– Control GUI Connection.Control GUI Connection.• OMAR editing and simulation-control panels.OMAR editing and simulation-control panels.

– Application GUI Connection.Application GUI Connection.• Panels specific to Current application.Panels specific to Current application.

– External Connection.External Connection.• Communicates with other “Agents”.Communicates with other “Agents”.

Distributed-OMARDistributed-OMAR

Page 25: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

JavaJavaExternalExternal

ConnectionConnection

ApplicationApplicationGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Distributed-OMAR Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

ControlControlGUIGUI

ConnectionConnection

CoreCoreOMAROMAR

Distributed-OMARDistributed-OMAR

Page 26: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ProcedureBrowser

ConceptEditor

ScenarioControlPanel

ControlControlGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Control GUI Connection

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOMAROMAR

LISP JAVA

Distributed-OMARDistributed-OMAR

Page 27: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Control GUI Connection -Java

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• In the Java world, OMAR (as viewed In the Java world, OMAR (as viewed through the external Connection) is now through the external Connection) is now “just another Java component”.“just another Java component”.

• To which other Java component connect in a To which other Java component connect in a standard way.standard way.

Distributed-OMARDistributed-OMAR

Page 28: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Control GUI Connection -Java(continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Can use any standard Java mechanism Can use any standard Java mechanism for inter-component communication.for inter-component communication.– Regular Object-Oriented method calls.Regular Object-Oriented method calls.– RMI.RMI.

• For example, publish and subscribe to For example, publish and subscribe to Events in standard way (“Listener”).Events in standard way (“Listener”).

Distributed-OMARDistributed-OMAR

Page 29: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Control GUI Connection -Java (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• In short, foreign-language Connection In short, foreign-language Connection behaves as “conduit” into Core-OMAR.behaves as “conduit” into Core-OMAR.

• Connections serve as “sources” and Connections serve as “sources” and “sinks” of Events in the Java world.“sinks” of Events in the Java world.

• Finally, nothing special about the fact Finally, nothing special about the fact that the connection is written in Java.that the connection is written in Java.

Distributed-OMARDistributed-OMAR

Page 30: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ProcedureBrowser

ConceptEditor

ScenarioControlPanel

ControlControlGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Control GUI Connection

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOMAROMAR

Distributed-OMARDistributed-OMAR

Page 31: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalD-OMAR

Agent2

ExternalAgent

3

ExternalD-OMAR

Agent1

JavaJavaExternalExternal

ConnectionConnection

ApplicationApplicationGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Distributed-OMAR Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

ControlControlGUIGUI

ConnectionConnection

CoreCoreOMAROMAR

Distributed-OMARDistributed-OMAR

Page 32: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Communication with External Agents

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Standard External Connection Object.Standard External Connection Object.– Common to all module types.Common to all module types.

• D-OMAR presents a thin “Cap” to D-OMAR presents a thin “Cap” to External language.External language.– Wrapper on External-Connection object.Wrapper on External-Connection object.– Specific to communication/middleware type.Specific to communication/middleware type.– Inner structure hidden to outside world.Inner structure hidden to outside world.

Distributed-OMARDistributed-OMAR

Page 33: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalAgent

2

ExternalAgent

3

ExternalAgent

1

JavaJavaExternalExternal

ConnectionConnection

Communication with External Agents

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Communication Specific “Cap”

Distributed-OMARDistributed-OMAR

Page 34: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Communication with External Agents

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Java Inter-Agent Communication:Java Inter-Agent Communication:– Standard O-O method invocation. Standard O-O method invocation. – RMI (Remote Method Invocation).RMI (Remote Method Invocation).– Corba Corba – Voyager Voyager – HLAHLA

Distributed-OMARDistributed-OMAR

Page 35: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalAgent

2

ExternalAgent

1

OMAROMARJavaJava

ExternalExternalConnectionConnection

Standard O-O Method Invocation

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Standard Cap

Distributed-OMARDistributed-OMAR

Page 36: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalAgent

2

ExternalAgent

1

CentralRemoteServer

JavaJavaExternalExternal

ConnectionConnection

Remote Method Invocation (RMI)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

RMI Cap

Distributed-OMARDistributed-OMAR

Page 37: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalComponent

2

ExternalComponent

1

JavaJavaExternalExternal

ConnectionConnection

ORB Connection (e.g. Corba)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Corba Cap O

R

B

Distributed-OMARDistributed-OMAR

Page 38: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

DistributedOmar

Component

RemoteSystems

ExternalD-Omar

Agent2

ExternalAgent

3

ExternalD-Omar

Agent1

JavaJavaExternalExternal

ConnectionConnection

ApplicationApplicationGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Distributed-OMAR Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

ControlControlGUIGUI

ConnectionConnection

CoreCoreOMAROMAR

Distributed-OMARDistributed-OMAR

Page 39: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

OMAR Communication with Other Implementation Languages

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Event-communication doesn’t depend on Event-communication doesn’t depend on details of Event-Listener.details of Event-Listener.

• Connection only needs to support:Connection only needs to support:– Sockets.Sockets.– Serialization protocol.Serialization protocol.

Distributed-OMARDistributed-OMAR

Page 40: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

OMAR Communication with Other Implementation Languages

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Connection need not be written in Lisp Connection need not be written in Lisp or Java.or Java.

• Nothing in Core-OMAR module changes. Nothing in Core-OMAR module changes.

• An example: HLA.An example: HLA.

Distributed-OMARDistributed-OMAR

Page 41: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ExternalFederate

2

ExternalFederate

1

C++C++ExternalExternal

ConnectionConnection

ApplicationApplicationGUIGUI

ConnectionConnection(Java)(Java)

DistributedDistributedMasterMaster(Lisp)(Lisp)

D-OMAR/HLA Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

ControlControlGUIGUI

ConnectionConnection(Java)(Java)

CoreCoreOMAROMAR(Lisp)(Lisp)

Federate Cap R

T

I

Distributed-OMARDistributed-OMAR

Page 42: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

D-OMAR/HLA Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• C++ based External Connection and C++ based External Connection and HLA Cap have been implemented and HLA Cap have been implemented and initially tested.initially tested.

• Currently converting to vendor supplied Currently converting to vendor supplied Java/C++ Federate interface/wrapper.Java/C++ Federate interface/wrapper.

Distributed-OMARDistributed-OMAR

Page 43: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Summary/Status

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Consolidated Core-OMAR kernel.Consolidated Core-OMAR kernel.– In Common-Lisp/CLOSIn Common-Lisp/CLOS

• + Processes.+ Processes.

• + Socket-code.+ Socket-code.

• (Again, no graphics code.)(Again, no graphics code.)

– Can run in any Lisp that supports these.Can run in any Lisp that supports these.• Currently using Allegro Common-Lisp.Currently using Allegro Common-Lisp.

• (MCL all but sockets/Open Transport). (MCL all but sockets/Open Transport).

• (Harlequin)(Harlequin)

Distributed-OMARDistributed-OMAR

Page 44: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture: Summary/Status (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Standard Protocol for Connection to Standard Protocol for Connection to External Languages.External Languages.

• Current implementations in:Current implementations in:– Java.Java.– C++ (HLA).C++ (HLA).– Lisp.Lisp.

Distributed-OMARDistributed-OMAR

Page 45: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture: Summary/Status (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• GUI implementation in Java.GUI implementation in Java.

• Implementation of Java-based Implementation of Java-based communication among collection of D-communication among collection of D-OMAR agents.OMAR agents.

• In Java: Runs “anywhere”.In Java: Runs “anywhere”.

Distributed-OMARDistributed-OMAR

Page 46: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Summary/Status (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Current Platforms:Current Platforms:– Windows NT/98.Windows NT/98.– Sun/Sparc.Sun/Sparc.– (SGI)(SGI)– (MacIntosh)(MacIntosh)

Distributed-OMARDistributed-OMAR

Page 47: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture:

Summary/Status (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Middlewares used.Middlewares used.– Corba.Corba.– HLA.HLA.– RMI.RMI.

• (Nexus object for collection of D-OMAR agents.)(Nexus object for collection of D-OMAR agents.)

– (Simple Java Method calls.)(Simple Java Method calls.)

Distributed-OMARDistributed-OMAR

Page 48: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR Architecture: Summary/Status Recap

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Single Common-Lisp source code for all Single Common-Lisp source code for all system configurationssystem configurations– At most, involves a recompile.At most, involves a recompile.

• Single Java source code (exclusive of Single Java source code (exclusive of application-specific Cap).application-specific Cap).– Class files (binaries) “Run anywhere”.Class files (binaries) “Run anywhere”.

Distributed-OMARDistributed-OMAR

Page 49: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Nichael Cramer

17 Nov 1998

Page 50: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 1:ObjectStream Structure

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• ObjectStream class:ObjectStream class:

– Supports socket-based read/write bytes Supports socket-based read/write bytes operations.operations.

– Supports serialization API.Supports serialization API.• (read-object <objstream>)(read-object <objstream>)• (write-object <objstream> <object>)(write-object <objstream> <object>)

Distributed-OMARDistributed-OMAR

Page 51: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 1:ObjectStream Structure

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• ObjStreamParser object:ObjStreamParser object:

– Passed as argument to ObjStream.Passed as argument to ObjStream.

– Governs details of translation in Governs details of translation in reads/writes in serialization.reads/writes in serialization.

Distributed-OMARDistributed-OMAR

Page 52: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 1:OMAR Parser Class Structure

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

– base-parser:base-parser:• (Error-handling; basic read/write operations.)(Error-handling; basic read/write operations.)

– core-parser:core-parser:• (strings, numbers, arrays, etc.)(strings, numbers, arrays, etc.)

– lisp-parser:lisp-parser:• (Cons cells; lists; etc.)(Cons cells; lists; etc.)

– omar-event-parser:omar-event-parser:• (omar-events; concept-structures; etc.)(omar-events; concept-structures; etc.)

Distributed-OMARDistributed-OMAR

Page 53: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 2:ObjectStream as “Eval-Server”

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• ““Message-passing” not the only protocol Message-passing” not the only protocol ObjectStream.ObjectStream.

• Java calls to Lisp can be written as Java calls to Lisp can be written as (stringified) Lisp form.(stringified) Lisp form.

Distributed-OMARDistributed-OMAR

Page 54: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 2:ObjectStream as “Eval-Server”

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Eval-Server:Eval-Server:– Use existing serialization protocol.Use existing serialization protocol.

– Java submits request as string into Lisp.Java submits request as string into Lisp.• submitEval(“(setq mainval (* 3 substate))”);submitEval(“(setq mainval (* 3 substate))”);

– Lisp performs a read-from-string.Lisp performs a read-from-string.

– Returns (serialized) result value to Java.Returns (serialized) result value to Java.

Distributed-OMARDistributed-OMAR

Page 55: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Tool for graphically viewing structures of Tool for graphically viewing structures of and communications between procedures and communications between procedures in D-OMAR models.in D-OMAR models.

• Multiple Views:Multiple Views:• Super-/sub-procedures (who calls, etc.)Super-/sub-procedures (who calls, etc.)

• Signals generated/waited-forSignals generated/waited-for

• Procedure view.Procedure view.

Distributed-OMARDistributed-OMAR

Page 56: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Super/Sub-procedures and Signal views Super/Sub-procedures and Signal views are graph-based.are graph-based.– Java Gui requests data-structure to view.Java Gui requests data-structure to view.

– Lisp prepares the data-structure and ships it Lisp prepares the data-structure and ships it off (via serialization) to Java.off (via serialization) to Java.

– Java uses standard graphing display code to Java uses standard graphing display code to display the results.display the results.

Distributed-OMARDistributed-OMAR

Page 57: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Procedure view (uses DrawStream):Procedure view (uses DrawStream):

• View is laid-out and “drawn” in Lisp.View is laid-out and “drawn” in Lisp.– Uses pre-existing Lisp display code.Uses pre-existing Lisp display code.– Display code draws to a DrawStream object.Display code draws to a DrawStream object.– DrawStream encodes drawing commands as DrawStream encodes drawing commands as

a sequence of bytes.a sequence of bytes.

Distributed-OMARDistributed-OMAR

Page 58: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Representation (sequence of bytes) is Representation (sequence of bytes) is shipped to Java.shipped to Java.– Currently as an Array (in an Event).Currently as an Array (in an Event).– Alternatively: “Live” byte-stream.Alternatively: “Live” byte-stream.

• Bytes are rendered in Java.Bytes are rendered in Java.– DrawStreamCanvas.DrawStreamCanvas.

• Decodes byte-sequence representation.Decodes byte-sequence representation.

Distributed-OMARDistributed-OMAR

Page 59: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Gestures are handled:Gestures are handled:– Transmit screen location back to Lisp.Transmit screen location back to Lisp.– Lisp returns any appropriate object.Lisp returns any appropriate object.

• Note that the DrawStream object and the Note that the DrawStream object and the Java DrawStreamCanvas class are “write Java DrawStreamCanvas class are “write once” constructs which can be re-used once” constructs which can be re-used with other Lisp displays.with other Lisp displays.

Distributed-OMARDistributed-OMAR

Page 60: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Appendix 3:DrawStream/Procedure Browser

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Demo.Demo.

Distributed-OMARDistributed-OMAR

Page 61: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Additional information:

http://www.sover.net/~nichael/misc/

Nichael Cramer

17 Nov 1998

Page 62: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Nichael Cramer

17 Nov 1998

Page 63: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Why not simply Corba? (foreign-function calls?, etc?)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• When we started, no Lisp Corba binding.When we started, no Lisp Corba binding.– This has changed/is changing.This has changed/is changing.

• But, for example, no signal servicing.But, for example, no signal servicing.

• Don’t want to be “Corba-specific”.Don’t want to be “Corba-specific”.– I.e no multiple versions to run with:I.e no multiple versions to run with:

• HLA, DCOM, RMI…HLA, DCOM, RMI…

Distributed-OMARDistributed-OMAR

Page 64: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Why not simply Corba? (foreign-function calls?, etc?)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• LightweightLightweight– Don’t need an ORB to (e.g.) just run a GUI.Don’t need an ORB to (e.g.) just run a GUI.– D-OMAR has a single protocol to D-OMAR has a single protocol to

communicate with all external processes.communicate with all external processes.

• Works with any CommonLispWorks with any CommonLisp– (Provided it supports sockets.)(Provided it supports sockets.)

Distributed-OMARDistributed-OMAR

Page 65: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Why not simply Corba? (foreign-function calls?, etc?)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• By moving the burden into (Java), we can By moving the burden into (Java), we can automatically leverage any Java-based automatically leverage any Java-based middle-ware support.middle-ware support.– In short, we are betting that Java will always In short, we are betting that Java will always

have better support for middleware, GUIs, have better support for middleware, GUIs, etc.etc.

Distributed-OMARDistributed-OMAR

Page 66: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Why not simply Corba? (foreign-function calls?, etc?)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Finally, if the decision Finally, if the decision isis made to convert made to convert D-OMAR to a Corba base, we only have D-OMAR to a Corba base, we only have to re-write the Connection protocol.to re-write the Connection protocol.– Modular design ensures a (relatively ;-) Modular design ensures a (relatively ;-)

painless transition.painless transition.

Distributed-OMARDistributed-OMAR

Page 67: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Nichael Cramer

17 Nov 1998

Page 68: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Distributed-OMAR:Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

Nichael Cramer

17 Nov 1998

Page 69: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

CommandCommandLineLine

MasterMaster

Example: Command-Line Master

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOmarOmar

> :Scenario select “ATC”

> :Scenario run

> Report: time = 0.

> Report: time = 5.

> Report: Event (Comm AC-11 ATC-23)

> Report time = 10.

> Report: Event (ATC-23 Acknowledge)

Page 70: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

ATCControlPanel

CockpitDisplay

RadarDisplay

ApplicationApplicationGUIGUI

ConnectionConnection

DistributedDistributedMasterMaster

Application GUI Connection

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

ControlControlGUIGUI

ConnectionConnection

CoreCoreOmarOmar

Page 71: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

Control GUI Connection -Java (continued)

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• Events function as high-level request for Events function as high-level request for state-change.state-change.

• Independent of nature of Subscriber.Independent of nature of Subscriber.

• No restrictions on how Subscriber uses No restrictions on how Subscriber uses events.events.– I.e. it can “do what it wants” with events.I.e. it can “do what it wants” with events.

Distributed-OMARDistributed-OMAR

Page 72: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

D-OMAR/HLA Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

• ““Federate-Cap” functions as conduit Federate-Cap” functions as conduit into/from Core-OMAR module.into/from Core-OMAR module.

• Because Cap has no application-specific Because Cap has no application-specific information, it can be reused.information, it can be reused.

• All modeling behavior is handled within All modeling behavior is handled within Core-OMAR.Core-OMAR.

Distributed-OMARDistributed-OMAR

Page 73: Distributed-OMAR: Reconfiguring a Lisp System as a Hybrid Lisp/(Java) Component GTE-I / BBN Technologies Nichael Cramer 17 Nov 1998

LISP C++ ExternalFederate

2

ExternalFederate

1

C++C++ExternalExternal

ConnectionConnection

DistributedDistributedMasterMaster

D-OMAR/HLA Architecture

GTE-I / BBN TechnologiesGTE-I / BBN Technologies

CoreCoreOMAROMAR

R

T

I

Federate Cap

Distributed-OMARDistributed-OMAR