190 likes | 345 Views
Neochiron An Architecture Assembly Language. ADL Constructs. Architecture description language provides primitives for composing an architecture Components, connectors, ports, roles Components and connectors are composite primitives are high level
E N D
ADL Constructs • Architecture description language • provides primitives for composing an architecture • Components, connectors, ports, roles • Components and connectors are composite • primitives are high level • Need lower level abstractions to compose components and connectors • is a high level specification language • Need lower level language for implementation • support specific styles • Need to support different styles through a common sub-language • Need for a simple set of lower level primitives to define architectural constructs
The C2 Architectural Style • Asynchronous, event-based communication among autonomous components, mediated by active connectors • Minimal component interdependencies • no component-component links • separation of computation from communication • implicit invocation via connectors • substrate independence • Event-flow rules: • Hierarchical application Connector “pull” Notifications fall Component Requests rise “push” Connector
C2-StyleComposition and Interaction A B C D E
Authorized User Authorized User Verify User Information Accept Login Event Window Opened Window Closed Concrete Example:User Authentication User Repository Main Window Login Dialog Graphics Toolkit
Internal Architecture of a Component InternalObject
Neochiron • Neochiron is an assembly language for C2-style architectures • Approach • Provide low-level primitives to assemble C2 components and connectors • Primitives emphasize performance/monitoring • Connectors and components can be built out of other connectors and components • Transparency of architecture down to the assembly level • Fine grain control of semantics • Connectors with wide range of semantics and guarantees
Neochiron Benefits • Combines lessons from Weaves with C2-style • Performance matters • Communication semantics matters • Fine grain control matters • Realistic platform assumptions • Finite buffering • Delivery guarantees • Safe halt/restart
Elements of Neochiron • Fragment • Locus of computation • Assembly language equivalent of C2 component • Transport • Locus of communication • Assembly language equivalent of C2 connector • Portal • Message entry and exit points for fragments and transports • Locus of message filtering and fragment/transport monitoring
Elements of Neochiron (2) • Jumper • “Wire” that interconnects two portals • Key to atomic disconnect • Hierarchical assembly • A fragment or transport may be a network of other fragments and transports • Point to point networks • Fragments cannot connect to other fragments, transports cannot connect to other transports • No fragment is connected to itself in a closed loop
output portals input portals Fragments • Portals • Input portals distinguished from output portals • Animus • thread that animates the fragment • State • Run, halt, snooze, suspend • Methods • Start, Suspend, Halt (control the component) • Notify (notify the component) • Progress • Examines/classifies messages (signals, requests) • Schedules consumption of signals and requests • Request (consume a request) • Signal (consume a signal) signals/requests signals/requests
Transports • Transports move signals and requests from one place to another • Finite capacity • Pushing and pulling fragments can block • Fixed number of input/output portals • mxn transport has m input portals and n output portals • Basic transports are passive • No internal thread – motive force supplied by fragment threads • Queue_1_1 • Fixed length queue with 1 input portal and 1 output portal
Transports • Queue_1_N • Fixed length queue with 1 input portal and N output portals • Fair n-way splitter • Queue_M_1 • Fixed length queue with M input portals and 1 output portal • Fair m-way merge • Replicate_1_N • N way shallow copy of messages (1 input portal/N output portals) • Fair m-way shallow replication
jumper owner filters g0, g1, ... path = (t, c) filters f0, f1, ... jumper owner Portals and Jumpers
A C2-styled Architecture N components M components
request signal I I I I I I O O O O O O C2 Translated in Neochiron N components portals M components
request signal I I I I I I I O O O O O O O N components portals n-way replicator m-way fair merge M components
request signal I I I I I I I O O O O O O O N components portals n-way fair merge n-way replicator m-way replicator m-way fair merge M components
Modeling Problems • Representing Neochiron semantics • Linking Neochiron formally to C2 • Modeling dynamism in C2 • Modeling composite connectors such as security and multi-versioning • Creating a hierarchical model for C2 and Neochiron • Modeling ordering semantics in C2 • Testing utility of Neochiron to other architectural styles • Modeling fragment ownership of thread of control • Non-circularity of fragment connectivity