Download presentation
Presentation is loading. Please wait.
1
Neochiron An Architecture Assembly Language
2
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
3
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 Notifications fall Requests rise Component Connector “push” “pull” Connector
4
C2-Style Composition and Interaction
5
Concrete Example: User Authentication Verify User Information AcceptLoginEvent AuthorizedUserAuthorizedUser WindowOpened WindowClosed
6
Internal Architecture of a Component Internal Object
7
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
8
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
9
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
10
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
11
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) output portals input portals signals/requests
12
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 m x n 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
13
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
14
Portals and Jumpers owner jumper filters g 0, g 1,... filters f 0, f 1,... path = (t, c)
15
M components N components A C2-styled Architecture
16
M components N components IOIOIOIOIOIO portals signal request C2 Translated in Neochiron
17
m-way fair merge n-way replicator IOIOIOIOIOIOIO portals M components N components signal request
18
m-way fair merge n-way replicator n-way fair merge IOIOIOIO m-way replicator IOIOIO portals M components N components signal request
19
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
Similar presentations
© 2024 SlidePlayer.com Inc.
All rights reserved.