Given by Wojtek Furmanski at CPS714 Computational Science Information Track on June 16 99. Foils prepared July 6 99
Outside Index
Summary of Material
Outside Index Summary of Material
Distributed Web Object Computing: Architecture Overview |
Wojtek Furmanski |
CPS714, Syracuse University |
June 16, 1999 |
Distributed Web Object Computing: Architecture Overview (by Wojtek Furmanski) - top level discussion from the perspective of NPAC R&D in the area of Pragmatic Object Web (POW) |
Distributed Web Object Computing: Componentware Technologies (by Hasan T. Ozdemir) - technical comparative analysis of the latest & hottest Web/Commodity models (being evaluated for POW inclusion) : CORBA Components, Enterprise Java Beans and COM/Microsoft Transaction Server |
Objects - finest grain encapsulation & abstraction units (focus on inheritance, polymorphism etc.) |
Components - deployable collections of objects |
Containers - component collection managers |
Federates - local resource managers that comply with federation interoperability / composability rules |
Federations - globally managed distributed application with local authonomy |
Bottom-Up - Web/Commodity aggregates: Pages => Objects => Components => Containers => ? |
Top-Down - e.g. Advanced DoD HLA based Wargaming: ? <= Federates <= Federations |
Homogeneous - orthodox High Performance Computing: HPC must be `everywhere': obviously wrong but proper aggregation/encapsulation units not obvious |
Pragmatic Object Web - integrate competing models for distributed objects: Java, CORBA, COM, Web/XML and HLA |
High Performance Commodity Computing - use POW to integrate traditional HPC modules with new commodity clusters (NT, Linux or Solaris) |
POW+HPcc based Prototype Systems: WebHLA For Modeling and Simulation (today), Gateway for Computational Portals (next week) |
Distributed Computing becomes a commodity article (driven by Web techs) |
Market niches for orthodox MPP style HPC are shrinking |
NT clusters become a viable alternative |
Web/Commodity software - promising base to build new HPcc (commodity computing) |
3-(or more)-tier architecture - Web browser front-ends, legacy (e.g. databases, HPC modules) backends; fat (1+tier) middleware |
Alternative / competing Middleware models:
|
POW attempts at integrating various models in terms of multi-protocol middleware servers (JWORB) |
WebFlow - visual authoring for distributed applications over a mesh of middleware servers |
JWORB - a universal middleware server that integrates distributed object standards of CORBA, COM, Java and XML |
OWRTI - DoD standards based distributed simulation framework that integrates federation and collaboration |
WebHLA - a 3-tier Object Web computing environment with JWORB / OWRTI middleware, WebFlow visual authoring front-end and customer specific legacy backends |
3-tier Java system for visual composition of distributed applications in terms of dataflow modules running on a mesh of Web servers |
Java Web server (extended via WebFlow API) as middleware node |
Java applets for front-end graph authoring, module visualization, control, steering etc. |
Java wrapped legacy systems in the back-end |
|
WebFlow Architecture - Servlet based Management |
|
|
|
Current WebFlow is a custom 3-tier system |
Modules need to be aligned with distributed object/component standards of CORBA, COM and XML |
Front-end needs to be aligned with visual modeling standards such as UML (Uniform Modeling Language) |
Middleware server written in Java and supporting multiple distributed object protocols |
Current support for IIOP (CORBA), HTTP (today's Web) and XML (tomorrow's Web) |
JWORB integrates Web server and application server towards one powerful universal node of Pragmatic Object Web |
Easier to maintain, more affordable & compact |
The Second Wave |
Paul Dreyfus, Netscape |
Client |
Server |
Application |
Server |
Fulfillment |
System |
Financial |
System |
Inventory |
System |
RDBMS |
Server |
Dynamic HTML, JavaScript, Java |
plug-ins, source code enhancements |
Java, C, C++, JavaScript, CGI |
Java, C, C++, JavaBeans, CORBA, DCOM |
Native languages |
|
Relational Database Server(s) |
Facilities |
Object Bus over IIOP (Internet Inter-ORB Protocol) |
Services |
|
|
|
JWORB - multi-protocol middleware server for object based High Performance Distributed Computing |
Support for DCE RPC in progress - this will enable DCOM Microsoft support |
Other relevant protocols to support : RTP family for streamlined audio/video |
CORBA Facilities on top of JWORB: Distributed Simulations (HLA), Workflow, Mobile Agents, OA&DF (UML), XMI etc. |
Other (non-CORBA) services e.g. JINI |
HLA (High Level Architecture) - a new DoD-wide object based standard for interoperability between distributed simulations |
RTI (Run-Time Infrastructure) - a middleware plug-and-play software bus (CORBA facility) |
HLA FOM (Federation Object Model) - a set of rules for Federates (modules) to join and play in HLA Federations (distributed interactive collaboratory / event-driven applications) |
OWRTI - a Java based implementation of RTI as JWORB (CORBA+COM+XML) facility |
Any JWORB component (CORBA object, COM components, XML scriptlet) can join WebHLA federation as OWRTI federate |
OWRTI federates can be programs (simulation), humans (collaboration) or intelligent agents (information) |
Runtime Infrastructure |
Data Collector/ |
Passive Viewer |
Federation Management Declaration Management |
Object Management Ownership Management |
Time Management Data Distribution Management |
C++ |
Ada-95 |
CORBA IDL |
Java |
HLA RTI 1.3 |
Mod 2, Update 1 |
01 April 98 11 |
Life Participants |
|
Category |
Functionality |
Federation Management |
Create and delete federation executions |
Join and resign federation executions |
Control checkpoint, pause, resume, restart |
Declaration Management |
Establish intent to publish and subscribe to object attributes and interactions |
Object Management |
Create and delete object instances |
Control attribute and interaction |
publication |
Create and delete object reflections |
Ownership Management |
Transfer ownership of objects/attributes |
Time Management |
Coordinate the advance of logical time and its relationship to real time |
Data Distribution |
Management |
Controls the efficient routing of information between federates |
|
|
Data Distribution Management |
DMSO RTI - A Promising New Model for General Purpose High Level Metacomputing Operating Environment |
Implements DMSO RTI as JWORB service with 2 major CORBA objects: RTI Ambassador and Federate Ambassador |
Offers natural Web interfaces to HLA simulations via HTTP or IIOP channels |
Natural support for human-in-the-loop (Web surfers join WebHLA federation and can collabortate as WebHLA federates) |
Attractive model for High Level Metacomputing |
Our design is based on 10 CORBA interfaces, including
|
Since each Manager is mapped to an independent CORBA object, we can easily provide minimal support for distributed management by simply placing individual managers on different hosts. |
OWRTI - First Non-DMSO Implementation of RTI 1.3, to be certified by DMSO as part of FMS-5 |
From DoD perspective - a POW (JWORB) based implementation of HLA standard |
From Web/Commodity perspective - a 3-tier Web computing system with HLA model for federation, collaboration and negotiation |
Middleware given by JWORB + facilities (HLA, Agents, Workflow, UML etc.) |
Front-end given by any Web/Commodity tech e.g. Web browsers, Java applets, DirectX, VRML/X3D etc. |
Back-end given by any JWORB wrapped legacy modules / federates |
WebHLA integrates:
|
WebHLA is a PET FMS effort to implement HLA environment (RTI, OMT, FEDEP tools etc.) on top of Interactive Object Web technologies |
The goal is to provide Web based HLA-compliant training for FMS CHSSI systems such as SPEEDES, E-ModSAF, TEMPO/Thema, IMPORT, HPC RTI. |
Dual-use of WebHLA for High Performance Commodity Computing |
JWORB - Java Web Object Request Broker - middleware object /component bus (Web + ORB + COM + WOM server in Java) |
Object Web RTI - DMSO RTI 1.3 as JWORB service |
WebFlow - Web based visual dataflow authoring for HLA apps |
OMBuilder - OMT (FOM/SOM) Editor with OMDT look-and-feel but implemented as Excel+VBA commodity control |
Interactive Distance Training Space - DirectX multimedia multiplayer front-ends for training federates (live collaboration) linked to real-time HPC simulations and databases |
HPC M&S Modules - e.g. Parallel CMS (Minefield) from Ft. Belvoir ported to Origin2000 and integrated with ModSAF |
Demo 1: Using WebFlow for visual authoring of HLA applications (Jager game) |
Demo 2: Building multiplayer games (Jager Donuts) with Microsoft DirectX front-end and OWRTI middleware collaboration support |
Demo 3: Using WebHLA to integrate large scale DoD M&S application - Parallel CMS (Comprehensive Minefield Simulation) |
OMBuilder for WebFlow based Visual HLA Authoring |
WebHLA authoring tools: WebFlow + OMBuilder for DMSO Jager HLA application/demonstration |
Similar to HLA/RTI but |
without object/database model |
(OMT, OML, FOMs, SOMs) |
DirectX based SimVis Commodity Tools for CMS (left) and Jager (below) |
This project is collaboration between NPAC and Ft. Belvoir, VA, sponsored by DoD HPCMO. |
CMS (Comprehensive Mine Simulator) cooperates with ModSAF vehicles and is used by Ft. Belvoir for countermine R&D. |
NPAC developed Parallel CMS for Origin2000, to be followed by WebHLA based Metacomputing CMS (on a distributed meta-cluster of HPC systems) |
Korea, Kuweit military operations used minefields of 1M+ mines - HPC is needed to simulate such systems |
WebHLA app, builds on JWORB/OWRTI Middleware |
Includes Parallel CMS module as HPC Federate |
Includes ModSAF, SimVis, Playback etc. Federates |
Early WebHLA demos (Jager) - Summer 98 |
Early Parallel CMS Demo at SC'98, Fall 98 |
Mobile laptop demo (event playback) - Feb `99 |
HLA conversion of all modules (CMS, ModSAF) - March `99 |
Multi-MSRC Metacomputing demos - work in progress |
Final goal: Scalability up to 1M+ mine objects (by 2000) |
Parallel CMS Demo: HPCMO Booth, SC'98, Orlando, FL |
Parallel CMS: DIS/HLA Bridge, Playback, DirX SimVis |
CMS Front-End for the Ft. Knox Minefield Breach Operation |
ModSAF Front-End for the Ft. Knox Minefield Breach Operation |
Mak Stealth - High End SGI Viewer adapted for Parallel CMS |
Parallel CMS Performance Monitor and PDU Sampler/Sniffer |
Direct3D based Commodity (NT) Front-End for Parallel CMS |
JWORB , OWRTI , OMBuilder - Core WebHLA infrastructure |
Parallal CMS - Origin2000 port of CMS from Ft. Belvoir |
JScope - Java based parallel performance monitor and PDU probing tool |
JDIS - Java based DIS=>HLA bridge server (for ModSAF subnet) |
SimVis - in-house DirectX based 3D simulation visualization front-end |
Mak Stealth -commercial 3D battlefield visualizer |
Logger Federate - used to save simulation events in a relational database |
Playback Federate - used to replay a simulation from an event database |
Meta-Cluster Manager - to coordinate HPC platforms at various MSRCs |
SPEEDES based Parallel CMS - to assure optimal scalability and portability |
SPEEDES (Synchronous Parallel Environment for Emulation and Discrete Event Simulation) - developed in early `90 at NASA/JPL by Jeff Steinman, now continued by Metron, Inc. |
State-of-the-art optimistic parallel / distributed event simulation (PDES) system |
Breathing Time Warp algorithm for optimistic time management: optimistic/riskfull independent time evolution segments with periodic synchronization |
SPEEDES - Core HPC Simulation Engine for FMS CHSSI projects (FMS-3, FMS-4, FMS-5) |
FMS PET develops WebHLA based SPEEDES Training |
Current Plan includes:
|
Other PET FMS links with SPEEDES:
|
Establish WebHLA based multi-DoD-site FMS Metacomputing support, starting from ARL & CEWES MSRCs and adding some DCs (NRL?, SPAWAR?) |
Complete FMS Training Space, deploy advanced distance training for SPEEDES and then IMPORT, HPC RTI, E-ModSAF, Tempo/Thema |
Develop HPC Intelligent Agents with FMS CHSSI and JSIMS/Maritime on top of SPEEDES and WebHLA |
Promote dual-use of WebHLA for general purpose Metacomputing (DoE/Sandia, NSF/Alliance, DARPA/Teknowledge, Industry) |
Current DoD M&S community - conversion from DIS to HLA complex, requires non-trivial consulting and tools |
Simulation based Acquisition - next generation applications for concurrent engineering, virtual prototyping (DoD, large manufacturing) |
Interactive Internet - on-line multiplayer gaming, virtual communities, telemedicine, interactive training, televirtual environments |
WebFlow - good architecture, wrong (custom) tier technologies |
JWORB/OWRTI - promising middleware integrator, needs an upgrade with the latest componentware techs (next lecture) |
Need visual authoring standards for the front-end such as UML (Uniform Modeling Language) |
Need back-end HPC M&S standards such as SPEEDES |
Activity |
Diagrams |
A model is a complete |
description of a system |
from a particular |
perspective |
Models |
Captures system functionality as seen by users |
Captures the vocabulary of a system |
Captures instances and links |
Captures the topology of a system's hardware |
Captures dynamic behavior (time-oriented) |
Captures dynamic behavior (spatial based, message-oriented) |
Captures dynamic behavior (event-oriented) |
Captures dynamic behavior (activity-oriented) |
Captures the physical structure of the implementation |
Rational Rose - flagship product and leading tool from Rational |
Rational Suite for full Software Eng Process |
Other products (Together/J, Platinum, Select) |
New/Emergent OMG Specifications - OA&D Facility (CORBA UML), XMI (XML Metadata Interface), SPE (Software Process Engineering), Workflow, Mobile Agents, RTI |
Implement UML over WebHLA/JWORB |
Offer UML-compliant extensibility for componentware authoring and composition |
Support range of granularities: Objects, Components, Containers, Federates |
Fine-tune for selected HPC domains such as Visual SPEEDES |
Try to extend to broader non-HPC domains |
NODE:int = 1 |
GetNODE():int |
APP_S_ |
HLA_2 |
NODE:int = 1 |
GetNODE():int |
APP_Event |
Handler_1 |
NODE:int = 1 |
GetNODE():int |
APP_ |
Event_1 |
NODE:int = 1 |
GetNODE():int |
APP_ |
Process_1 |
NODE:int = 1 |
GetNODE():int |
APP_ |
Component |
NODE:int = 1 |
GetNODE():int |
APP_Event |
Handler_2 |
NODE:int = 1 |
GetNODE():int |
APP_S_ |
HLA_1 |
interrupts |
enacts, |
+0 |
enacts, +4 |
+2 |
waits, |
+10 |
NODE:int = 1 |
GetNODE():int |
APP_Gate |
wakes up |
opens, +0 |
closes |
NODE:int = 1 |
GetNODE():int |
APP_ |
Object_1 |
1..5 |
NODE:int = 1 |
GetNODE():int |
APP_S_ |
HLA_3 |
GetNODE():int |
NODE:int = 1 |
APP_ |
Process_2 |
asks |
NODE:int = 1 |
GetNODE():int |
APP_ |
Event_1 |
+7 |
NODE:int = 1 |
GetNODE():int |
APP_ |
Object_3 |
NODE:int = 1 |
GetNODE():int |
APP_ |
Object_2 |
2..* |
* |
+0 |
GetNODE():int |
+6 |
Ship |
Radar |
interrupts |
enacts, |
+0 |
enacts, +4 |
+2 |
waits, |
+10 |
wakes up |
opens, +0 |
closes |
1..5 |
GetNODE():int |
asks |
+7 |
2..* |
* |
+0 |
+6 |
"Deto- |
nate" |
"Begin |
Scan" |
Alert |
Head- |
quarters |
Initialize |
Missile |
Head- |
quarters |
Missile |
Ship |
Controller |
Trajectory |
Gate |
Detonate |
Anayzer |
Ship |
Data |
Detonate |
Statistics |
Event |
1 |
Process |
1 |
Comp |
1 |
Misc. |
Object |
Gate |
S_HLA |
3 |
S_HLA |
1 |
S_HLA |
2 |
starts |
+3 |
Process |
2 |
"Deto- |
nate" |
enacts |
asks, +3 |
returns |
Ask |
Process |
starts |
kills |
removes, +15 |
asks |
returns |
Process |
3 |
starts |
waits for |
schedules |
Event |
2 |
opens, +? |
wakes up |
Comp |
2 |
"Up- |
date" |
"Up- |
date" |
enacts |
enacts |
Comp 1 |
S_HLA |
3 |
S_HLA |
1 |
S_HLA |
2 |
starts |
enacts |
asks, +3 |
returns |
starts |
kills |
removes, |
+15 |
asks |
returns |
starts |
waits for |
schedules |
opens, +? |
wakes up |
enacts |
enacts |
Misc. |
Object |
"Deto- |
nate" |
Event |
1 |
Event |
2 |
Process |
1 |
Process |
2 |
Process |
3 |
Ask |
Process |
Gate |
"Up- |
date" |
Comp 2 |
"Up- |
date" |
P_act_1/ |
ship_1 |
P_act_2/ |
ship_2 |
P_act_3/ |
ship_3 |
starts |
enacts |
condition 2 |
condition 1 |
"e2"/ship_2 |
E_init/ |
ship_1 |
resource granted |
activ_1 |
activ_2 |
activ3 |
integer |
init |
starts |
enacts |
"e2" |
ship_2 |
condition 2 |
condition 1 |
ship_1 |
ship_3 |
resource granted |