1 / 19

Neochiron An Architecture Assembly Language

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

jane
Download Presentation

Neochiron An Architecture Assembly Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. NeochironAn 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 Connector “pull” Notifications fall Component Requests rise “push” Connector

  4. C2-StyleComposition and Interaction A B C D E

  5. 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

  6. Internal Architecture of a Component InternalObject

  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. 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

  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 • 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

  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. jumper owner filters g0, g1, ... path = (t, c) filters f0, f1, ... jumper owner Portals and Jumpers

  15. A C2-styled Architecture N components M components

  16. request signal I I I I I I O O O O O O C2 Translated in Neochiron N components portals M components

  17. 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

  18. 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

  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

More Related