Common Services Infrastructure PDR March 21 2005 Tucson

  • Slides: 30
Download presentation
Common Services Infrastructure PDR March 21, 2005 Tucson, AZ

Common Services Infrastructure PDR March 21, 2005 Tucson, AZ

Tiered Architecture Application Framework User Interface Support Services Communications Wrapper Communications Package Persistent Stores

Tiered Architecture Application Framework User Interface Support Services Communications Wrapper Communications Package Persistent Stores Wrapper Development Tools Core Software Database Package(s)

Key Services • • • Connection and Control Event Log Health and Alarms Archive

Key Services • • • Connection and Control Event Log Health and Alarms Archive Property and Monitor

Basic Functional Requirements • • Assist ATST software development and use Multilanguage support (Java,

Basic Functional Requirements • • Assist ATST software development and use Multilanguage support (Java, C++, Python) Linux: x 86 [32+64 bit(? )], Vx. Works(? ), QNX(? ) Uniform lifecycle management Distributed environment COTS independence Development: – Source Code Availability – Documentation – Versioning (source and documents)

Application Framework Requirements • • • Container/Component Model (CCM) Support tight and porous containers

Application Framework Requirements • • • Container/Component Model (CCM) Support tight and porous containers Extensible Containers (can be subclassed) Extensible base Component implementation Common access to services

UI Support Requirements • Common control surface access (GUI, CLUI, programmatic) • Hierarchical display

UI Support Requirements • Common control surface access (GUI, CLUI, programmatic) • Hierarchical display “widgets” • Uniform look and feel • “Stateless” control • Non-blocking

Connection Service Requirements • Communications Access Brokering – – Access policy Location blind (name-based,

Connection Service Requirements • Communications Access Brokering – – Access policy Location blind (name-based, distributed) Direct connections between Components Persistent connections (auto-reconnect) • Scalable • Robust (always available)

Event Service Requirements • Publish/Subscribe (named events) • Fast (5000 e/s, sustained) • Reliable:

Event Service Requirements • Publish/Subscribe (named events) • Fast (5000 e/s, sustained) • Reliable: – Lossless – Ordered delivery • Segmented names with wildcard subscription • Unlimited sized event values • Structured messages

Log Service Requirements • Multi-dimensional organization: – Class – Category – Level • Externally

Log Service Requirements • Multi-dimensional organization: – Class – Category – Level • Externally controlled • Searchable historical record • Failsafe logging

Health Service Requirements • • Heartbeat monitoring Health levels (good, ill, bad) Support hierarchical

Health Service Requirements • • Heartbeat monitoring Health levels (good, ill, bad) Support hierarchical health determination Low-impact

Communications Requirements • • Robust Reliable Fast Support communication-based services: – Connection – Event

Communications Requirements • • Robust Reliable Fast Support communication-based services: – Connection – Event – Health • Communications-middleware neutral

Database Requirements • • Robust Reliable Fast Support persistent store services: – Log –

Database Requirements • • Robust Reliable Fast Support persistent store services: – Log – Archive – Property • Support non-Common Services functionality(? )

Core Software • • Communications and Databases Key data structures Commands and responses Containers

Core Software • • Communications and Databases Key data structures Commands and responses Containers and Components

Communications • Relies on, but isolates, a standard middleware package • Multiple methods –

Communications • Relies on, but isolates, a standard middleware package • Multiple methods – Peer-to-peer – Publish/subscribe – Bulk-data streaming • Simple connection operations • Connection monitoring • Wrapped in the services

Communications Middleware • Baseline: Internet Connection Engine (ICE) – – – Robust Fast Supports

Communications Middleware • Baseline: Internet Connection Engine (ICE) – – – Robust Fast Supports Java, C++, and Python (and others) “Simple” No bulk-data stream support (yet) • Alternatives: – CORBA (ALMA/ACS) – NDDS

Persistent Stores • Based on industrial-strength relational database – Highly reliable (critical) – Handles

Persistent Stores • Based on industrial-strength relational database – Highly reliable (critical) – Handles heavy loads (many simultaneous connections) – Scalable • Independent of Communications package • Simple access methods • Wrapped in the services.

Database • Baseline: Postgre. SQL – – Relational database Open source Excellent support Extremely

Database • Baseline: Postgre. SQL – – Relational database Open source Excellent support Extremely robust • Alternatives: – My. SQL (less reliable, scales less well) – Oracle

Key ATST data structures Configuration Header Tag Config Id Attribute Name Value Attribute Name

Key ATST data structures Configuration Header Tag Config Id Attribute Name Value Attribute Name Attribute. Table Value

Configurations • Acted on by ATST Controllers • Controllers try to match conditions described

Configurations • Acted on by ATST Controllers • Controllers try to match conditions described by Configurations • Action can be rejected, successful, or unsuccessful

Commands Start Command Accept Command Perform Action Handle Response Post Response

Commands Start Command Accept Command Perform Action Handle Response Post Response

Functional/Technical Architectures

Functional/Technical Architectures

Container/Component Model

Container/Component Model

Components • Uniform Life. Cycle – Part of technical architecture – Managed by Container

Components • Uniform Life. Cycle – Part of technical architecture – Managed by Container Create Initialize Startup • Access to services Running (Functional Behavior) – Provided by Container – Shared/private services • Local namespace • Always subclassed: – Controllers – Devices Shutdown Remove

Containers

Containers

Container Managers Container Manager (OCS)

Container Managers Container Manager (OCS)

Service Layers

Service Layers

Access to Services

Access to Services

Service Toolbox Service Tools Component-specific Data

Service Toolbox Service Tools Component-specific Data

Toolbox Loader Toolbox Shared Palate of Service Tools Private

Toolbox Loader Toolbox Shared Palate of Service Tools Private

Containers and Toolboxes Containers retain access to Toolbox: • Can adjust service tools •

Containers and Toolboxes Containers retain access to Toolbox: • Can adjust service tools • Can monitor service tools • Can replace service tools Toolbox Shared Private