Title: FederationX A Technical Brief
1FederationXA Technical Brief
- Everything should be made as simple as possible,
but not simpler. - Albert Einstein
Magnetar Games Corporation
2Federation and X
- The architectural foundation of FederationX comes
from standards set by the US Department of
Defense and Microsoft. - High Level Architecture (Federation)
- DoDs distributive simulation standard
- DirectX
- Microsofts development platform for games
3FederationX
FederationX A software architecture for
developing and deploying large-scale distributive
applications
FederationX provides a total solution from
application development and deployment
infrastructure to end-user accessibility.
Developer
User
Infrastructure
4Overview
Deployment infrastructure
HLA based product-line development framework
The end user interface
Launch
Forge Editor
Connect
Nexus
Deploy
Guild
Service provider (Federate)
Developer
User
5Elements of a FederationX application
Agent An independent software module that
performs a specific task. An agent is a plug-in
to the Magnetar engine.
Engine A component module that performs a
specific task in the system, e.g. graphics
renderer, logic engine
System A collection of engines that together
offer domain-specific functions. Systems serve as
a template for product-line development. E.g.
Chess system, RPG
Product The execution instance that derives from
a system the product-line of a domain. E.g.
chess, go, and checkers are all from a chess
system.
6Blackboard design pattern
Blackboard API
Agents in a blackboard system are independent
knowledge sources working together to solve a
non-deterministic problem.
Blackboard Repository
Agent
Agent
Scheduler
Blackboard system
RTI
Federates usually represent different simulation
elements. They exchange data across the network
boundary via RTI.
FOM/SOM
Federate
Federate
Federate
HLA Federation
MAGNETAR RTI
The FederationX engine forms a single process HLA
federation with the plug-in agents. It is a
blackboard system enhanced with RTIs federate
interface for interoperability.
Domain Model
Agent Federate
Agent Federate
Agent Federate
FederationX Engine
7Hierarchical Federations
FederationX Product
Chronos RTI
Federations can form a hierarchical relationship
from agents and engines to systems. FederationX
is an HLA-based architecture that can utilize the
information bus design pattern of HLA in every
layer.
FOM
System Federate
System Federate
System Federate
FederationX System
Chronos RTI
FOM
Engine Federate
Engine Federate
Engine Federate
FederationX Engine
MAGNETAR RTI
Domain Model
Agent Federate
Agent Federate
Agent Federate
8Product-Line Development
RTI
FederationX supports product-line development by
extending HLAs model paradigm OMT (Object Model
Template) into MORPH (Metanode Organized
Prototype Hierarchy), an early-bound information
modeling language that is capable of expressing
the template of products and products themselves
with extended OMT syntax.
OMT Model
Federate
Federate
Federate
MAGNETAR RTI
MORPH Model
Agent Federate
Agent Federate
Agent Federate
Product Models
9Programmability
RTS
Editor
Product
Chess
XML
Systems
Engine/System Developer
C
C
ECMA Script
XML
User
Developer
Model Driven Product-Line Development!
.....
10FederationX Engines
- Chronos
- IEEE 1516 HLA/RTI network engine.
- Realm
- Distributive repository engine.
- Swarm
- Logic engine.
- Mirage
- Presentation engine.
11X3D, MXML, and FederationX engines
Magnetar is developing adapters to convert domain
specific languages such as X3D and MXML into the
canonical representation in FederationX. This
will allow us to leverage the modeling
technologies and content from well-established
systems such as VRML browsers and Flash.
X3D
Chronos
Display engine (Flash, VRML, Magnetar)
Adapter
Swarm
Mirage
MXML
12Engine collaboration example
Internet
1000 Board/puzzle games!
Nebula system is a universal board/puzzle game
that can be played in an open heterogeneous
global network.
- Realm Repository engine
- Swarm Logic engine
- Chronos Network engine
- Mirage Rendering engine
13FederationX and Grid
A distributive interactive application utilizes
both computing and data resources dispersed in
the network.
network
- The supported infrastructure must be able to
- Manage the resources.
- Locate/compose service/models
- Collaboratively utilize the resources
FederationX
Chronos
Realm
Grid Service HLA/RTI A form of Grid
Computing
Repository Engine
Network Engine
14HLA-Enabled Grid with X3D programmability
Nexus
Guild
- Dynamic interoperability
- Execution of simulations
- Standard for object plumbing
- P2P connectivity
- MAS (Multi-Agent System)
- Structural Integration
- Authentication
- Resource management
- Service/Model discovery/composition
- Lobby client solution.
HLA
Grid
Chronos
Tryst
Swarm
MORPH
X3D
Mirage
MXML
BOM
Realm
FederationX
XSG
- Extendable programmability
- Rich graphic presentation language.
- Extensible nodal architecture
- Abundant legacy visualization models and tools
for reuse and integration. - Metaprodcut line development
15FederationX.NET The Infrastructure
- Tryst
- Client-side browser for FederationX.NET
- Guild, Super peer (A.K.A. Federate)
- Connecting portal
- Content provider
- Nexus
- Authentication
- Ad distribution
- Activity monitoring
16(No Transcript)
17End-User Platform Tryst
Internet
5. Repository service
1. Service connection
2. Authentication
6. Web browsing
3. IM/Chat/Voice chat
7. X3D, Flash engine
4. Account/Avatar management
8. Application launching
18Roles of Participants
Federate
Users could become federates!
They can also be developers.
and host games themselves!
Distributed Applications, Communities
Applications, tools
FederationX.NET
Content, Assets
Feedbacks
Deployment Infrastructures Nexus, Guild
Development framework FederationX
Application platform Tryst
Developer
User
19Our Vision
Open Federated Network A Publishing Medium
User
FederationX.NET
Key Unleash the outstanding creative potential
from users.
Goal Create user-friendly tools to encourage
content creation.
Strategy Use standards to create both deployment
and development platforms
20What we have implemented.
Model Editor
FederationX Application
Edit
XSG ( X3D /VRML)
Chronos Engine
MORPH
Consumes
HLA/OMT
SAI calls
X3D/XSG Adapter
Uses
Flash graphics
FederationX Framework MAS, Blackboard, Internal
Info. Bus
Mirage
Guild
Launch
Connect, match making
Tryst
Nexus
Authentication, Ad management .
21FederationX Chronos Engine
Internet
Microsoft DirectPlay P2P
Microsoft DirectPlay P2P
Chronos
Chronos
Federation Object Model, Simulation Object Model
IEEE 1516.1 HLA/RTI
IEEE 1516.1 HLA/RTI
Chronos is the worlds first .NET implementation
of HLA/RTI. RTI (Runtime Infrastructure) is an
IEEE standard promoted by U.S Military for
simulation interoperability among distributive
simulations. RTI implements a publish-subscribe
paradigm for simulation elements to share and
exchange data. Chronos is built as the first
FederationX engine application
Federate
Federate
22Chronos API
X3D/VRML/Flash (eXtendable Scene Graph)
1. Extension nodes based on ISO spec.
3. Proto implementations for most browsers
2. Declarative programming via XML
4. Flash action scripts to interpret X3D file.
ECMA Script
C API
1. Simplified version of IEEE spec
1. IEEE 1516 normative C binding
2. Web proxy for .NET API.
2. Level 2 verification in progress with JHU
3. Implemented via COM bridge.
3. No Touch Deployment via Tryst
.NET API
1. IEEE 1516 Compliant, 200 functions in 7 groups
2. Implemented in Microsoft .NET and DirectPlay
3. .NET language compatible (C, VB.NET, J,
Delphi.NET...)
4. Small footprint (Runtime 500K)
5. Agent based system, flexible for distribution.
23Inside Chronos
The information bus design pattern is used both
in building the engine and also serving the
clients!
Federation Management Agent
Time Management Agent
Object Management Agent
The IEEE 1516 API is used both for agent
collaboration and also consumption for engine
clients!
Magnetar RTI (Internal information bus)
Presentation Manager
..
Network Transport Agent
Object Model For Agent Collaboration
IEEE 1516 Programming interface For .NET, C
Microsoft DirectPlay
Federate (Engine Client)
Sun JXTA
Chronos Single Process Federation
24Chronos Web Application
FederationX Guild (Lobby server )
Tryst Platform
Flash/X3D
Content streams via HTTP
In-lobby Web Control
Peer IPs, TCP port.. as parms to web page
Chat, host, Join sessions.
JavaScript
Lobby Client
Internet
Chronos
Tryst Platform
25Beta and Demos
- Tryst Platform 1.1
- Tryst 1.1
- FederationX runtime
- Matrix utility
- Zero installation for Chronos Web applications.
- http//www.magnetargames.com/Products/Tryst
- Flux plug-in required for X3D demo.
26Beta and Demos II
- Chronos 1.1
- Full IEEE 1516 implementation
- http//www.magnetargames.com/Products/Chronos
- C and .NET language bindings are both
available.
27Beta and Demos III
- Chronos Demo Applications
- Chronos WinBoard Adapter
- P2P Chess via Chronos
- http//www.magnetargames.com/Products/Chronos/WinB
oard.htm - Can be launched from Tryst
- Tim Manns WinBoard compatible client
- Web demo
- Can be launched via Tryst
- Available via http//www.flashfederation.com for
manual launch.