xADL 2.0: A Highly-Extensible, XML-Based Architecture

Document Sample
xADL 2.0: A Highly-Extensible, XML-Based Architecture Powered By Docstoc
					                        xADL 2.0:
  A Highly-Extensible, XML-Based
Architecture Description Language




                 Eric M. Dashofy
            edashofy@ics.uci.edu
      Existing ADLs
 Darwin                        Product             Koala
                  Distribute
                               Families
                  d Systems                            Wright
Rapide                             Behaviora
             Events                     l
Mae                                Properties
                                      Implementatio
  Configuration                           n Mappings
  Management
                                                    xADL 1.0
           Dynamic
                                                   Mobile,
           Systems                                Dynamic
Darwin,                                          Architecture
C2SADL                                                 s
                                          ????
A Survey of ADLs
   Medvidovic survey [MT00] reveals:
       A proliferation of ADLs available
       Much commonality among them
         • Components, Connectors, Links
         • Deeper pairwise similarities
            • E.g. Mae and Koala
       Points of variation are “killer features”
         • Each ADL has a small subset of killer features
         • These features supported by tools
         • Many “killer” features are orthogonal!
The Problem
   How can we exploit commonalities
    and experiment with different
    features in an ADL without
    duplicating effort?
Solution: An Extensible ADL
   Our target ADL should support modular
    extensiblity
   This allows the ADL’s users to:
       Encapsulate ADL features in “modules”
       Add new modules to:
         • Add new features
         • Extend existing features
       Make tools available efficiently
       Experiment with different combinations of modeling
        constructs
The ADL will be independently extensible by
users with different, possibly conflicting goals.
XML As the Basis for a
Modularly Extensible ADL
   XML is good for structured data storage
    and interchange
   XML tools and technologies are
    proliferating
   XML schemas provide a metalanguage for
    developing modular languages
       Provide a subtyping mechanism that does not
        require modification of the base type
        definition
    xADL 2.0
   xADL 2.0 = A set of modules that form an ADL
   Each module is a schema – 100-500 lines of XML

      Types & Instances -         CM/Product Families
      Design-time                  (Versions, Options,
                                             Variants)

                     xArch – Run-time
               (Architectural Instances Core)



      Implementation               (Future Expansions)
      Mappings
xArch: Architectural Instances Core
   xArch – the core of our new ADL
       Written as an XML schema
       Establishes the common set of architectural
        constructs
         • Components, Connectors, Interfaces, Links
         • Sub-architectures (hierarchical composition)
         • General Groups
       Used in xADL 2.0 to model run-time instances
 Design-Time vs. Run-Time
     Behavior information                                                             Event queue contents
      for static analysis
                                       Comp1_Beh{           Run-time State
                                        If(recv(evt(q))){
Design-oriented Properties                doProcess(q)
                                          emit(evt(b));
                                                                                                 aba - -
                                        }                   State= BLOCKED
  Author=André                         }
  Author=Dick                                                 Waiting on                       Comp
  Last Update:
                                                               event “A”                       Inst 1
   08/18/2001                      Comp1
                                                                      Comp
                                                                      Inst 2
           Comp2
                                                                                      Conn
                                                                                      Inst 1
                          Conn1

                                                                           Comp
                                                                           Inst 3
                 Comp3                 Constraints                                  Machine = magister
                                                                                    Pid = 242
                   Invariant a{                                                     CPU = 1
                     comp1.interface                                                Port = 8080
                      .type = top ->                                                …
                     comp1.interface
                      .link.type =                             Information about
                      bottom
                   }                                        distributed components
Design-time vs. Run-time
in xADL 2.0
                           Independently
                             Extensible
                              Models


        types.xsd                               instance.xsd
   Structure & Types model               Instances model run-
    design                                 time aspects
       Components                            Component Instances
       Connectors
                                              Connector Instances
       Interfaces
                                              Interface Instances
       Links
                                              Link Instances
       General Groups
       Subarchitectures                      Subarchitectures
       Component types                       General Groups
       Connector types
       Interface types
 Implementation Mappings
                                       Comp1
                                                  Foo.class
                   Comp2

     Baz.dll                   Conn1
                                          Comp4


                      Comp3

                                                         .NET
                                                        Service


Adding information                     Bar.jar
about implementations to
component, connector, and
interface types is essential
if the architecture is to be
instantiated.
Implementation Mappings
in xADL 2.0
                         extends



    implementation.xsd                 javaimplementation.xsd


   Abstract Implementation           Java Implementation
      “Placeholder” for                 Concrete schema for
       implementation data                Java implementation
       on:                                data
         Component Type
         Connector Type
         Interface Type
 CM/Product Family
 Architectures

   Component                                 1.0
With Variant Type

                       Comp1           1.1            Version Graph
                                                          for Type T
       Comp2
                                       2.0     1.1.1
                          Comp4


          Comp3
                                                   1.1.2


                       Optional              3.0
                    Component & Link
    CM/Product Family
    Architectures in xADL 2.0


     versions.xsd            options.xsd          variants.xsd
   Versions                Options             Variants
       Version graphs          Optional            Variant
        for:                     components           component
           Component                                 types
                                Optional
            types
                                 connectors          Variant
           Connector
                                 Optional             connector
            types            
                                 links                types
           Interface
            types
Semantics in xADL 2.0
 As with any XML-based language,
  only syntax is enforced by XML tools
 xADL 2.0 schemas, to date, are a
  semantically agnostic feature set for
  describing architectures
 Future schemas can provide more
  semantic information, supported by
  tools
   Total Set of Schemas

                       Instances

                       Structure &
                          Types


                                        Abstract      Architecture    Messaging
Versions   Options   Variants        Implementation      Diffing      Interfaces


                                          Java                           Type
                                     Implementation                  Relationships
Tool support
   COTS/Open Source XML tools
       XML Authority, XML Spy, Apache Xerces
   In-house tools
       DOM-based Java Libraries
         • Programmatic, syntax-directed editing of xADL 2.0
           documents, hiding nearly all of XML
       Apigen
         • Generates DOM-based Java Libraries using only the XML
           schemas
       ArchEdit
         • Syntax-directed graphical tree-based editor for xADL 2.0
           documents
       Archipelago
         • Plugin-based graphical editing environment that will
           eventually provide full xADL 2.0 editing
Experience & Evaluation
   Lockheed Martin Systems Integration
       AWACS aircraft software systems modeled in
        10,000 lines of xADL 2.0
       Used as the basis for an architecture-derived
        simulation of the inter-component
        communication on AWACS
   Jet Propulsion Laboratories (JPL)
       Extended xADL 2.0 to add domain-specific
        interface descriptions
       Experimenting with modeling software
        architectures in xADL 2.0 for use in future Mars
        missions
Related Work
   [MT00] Medvidovic, Taylor Survey
       A Classification and Comparison Framework for Software
        Architecture Description Languages. IEEE Transactions on
        Software Engineering, vol. 26, no. 1, pp. 70-93, January 2000.

   First-Generation ADLs
       C2SADL, ACME, Wright, Darwin, Rapide
   XML DTD-based ADLs
       xADL 1.0, ADML
   Product-line ADLs
       Koala, Mae
Future Extensions
   Arch Diffing and Merging
     Determines the difference between two
      xADL 2.0 architectures
     Can merge (architecture + diff) 
      architecture’
 Dynamic & Distributed Architectures
 Graphical layout information
Summary
   Motivation
       Architecture research needs flexible ways to deal with
        novel modeling constructs and combinations thereof
       A modularly extensible ADL is the key
   xADL 2.0
       A modularly-extensible ADL based on XML schemas
       Get into new domains quickly and effectively
       Provides novel, reusable features
         • Design-time vs. Run-time, Implementation Mapping,
           Configuration Management / PFA support
       Positive initial experiences
       Significant tool support
   Visit the Website!
       http://www.isr.uci.edu/projects/xarchuci/
Feature Interaction
   xADL 2.0 does not solve the feature
    interaction problem
       When presented with two conflicting
        schemas:
        • Do not model the feature
        • Choose one schema over the other
        • Rewrite one or both schemas to be
          compatible
        • Translate between the two with tools
Desirable Features of an ADL
   Extensiblity
       Ability to add new constructs without knowing, a priori,
        what information they contain
   Incrementality
       Ability to expand on these constructs as new
        needs/research ideas arise
   Modularity
       Ability to use only a subset of the total feature set
   Base Feature Set
       Semantically agnostic features that provide a
        framework for future development
Existing XML-based ADLs
   xADL 1.0
       From UCI
       Key features include implementation mapping,
        analyzable properties (from C2SADL)
       Extension through standard DTD mechanisms
   ADML
       From MCC
       A translation of ACME 1.0 into an XML DTD
       Extension through properties
Numbers
   Average xADL 2.0 extension schema
       100-500 lines of XML schema
         • Including comments
       Yes, it scales
         • Largest xADL 2.0 schema to date: AWACS
           • 150+ components, 150+ connectors
           • 10,000 lines of valid xADL 2.0
           • Generated by <1000 lines of boilerplate Java
             calilng DOM-based libraries
Is it an Interchange
Format?
   It can be, but it’s not meant to be
   Since xADL 2.0 is so extensible, it can
    quickly take on the modeling
    characteristics of other ADLs
   Have created xADL 2.0 extensions that
    capture PLAs
       Koala
       Mae
   Lossless translation from other ADLs is
    possible
Tool Interoperability
   In theory, well-built tools should be able
    to interoperate with unknown extensions
       Example: “List all components in the
        architecture.”
       Meta-level tools like ArchEdit and Visio for
        xADL show the potential
       More semantically-oriented tools can share
        common extensions & related semantics.
Independent Extensions
 JPL has refined interface
  specifications
 Extensions underway by various
  researchers at UCI to add analysis
  data
 xACME from CMU is another set of
  xArch extensions
       Compatibility under evaluation
Feature Interaction Problem
   The key problem in extensible
    languages
     Many architectural modeling constructs
      are conceptually orthogonal
     Architects choose the subset of
      features they want to use, potentially
      minimizing interactions
What About UML?
   UML is not (yet) an ADL
       Some work underway to adapt/extend
        UML to encompass architectural
        concepts
 xADL 2.0 = lightweight experimental
  platform
 UML = heavyweight comprehensive
  design notation

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:72
posted:12/10/2011
language:
pages:31