I-700-ABMS AGENT-BASED MODELING & SIMULATION

Einingalíkön og hermun

 

Software Architecture

 

 

 

0
Background
  Architecture types  
  Coordination networks  
  Object-orientation  
  Layering  
  Pipeline I  
  Pipeline II  
  4W - question to ask when constructing an architecture  
     

 

 

 

 

 

 

 

 

1
Architecture Types
  Pipelines and filters A straight path from input to output
  Example: Old model of cognition
  Example: Graphics pipeline
     
  Object-orientation Main concepts: Objects and methods; architecture decomposed into data clusters and the functions that transform them
  Example
     
  Layered systems  
  Example: Subsumption architecture for robotics
     
  Repositories  
  Example: Blackboard architectures
     
  Distributed & peer-based

A node is both a client and a server. A node can connect to n other nodes (where n is typically significantly smaller than the total nodes on the network) or to one super-peer

  Example: Gnutella file sharing network
     
  Model-View-Controller Separation of functions for clean implementation of systems that need a particular kind of coupling between processes
  Example: Web server
  Detail
     

 

 

 

 

 

 

 

 

 

 

 

2
Coordination Networks
     
 
     
  Elements Managers, Processors/Product, Consumers
     
  Functional Hierarchy Coordination centers on the function: Dedicated managers manage a particular type of task or process (partial output). A pure version of this calls for a hierarchy of dedicated managers, as the next level up will need to combine the partial output provided by each process for a complete product (final output).
  Product Hierarchy Coordination centers on product: Dedicated managers are responsible for all the parts needed for a particular product (final output).
  Centralized Market with Brokers Coordination involves competition: Brokers sit between product providers (final output) and/or process and consumers (input). Example: Travel agents.
  De-centralized Market Coordination is n-to-m, between suppliers (output) and consumers (input).
     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3
Object-Orientation
     
 
     
  What Software for an oscilloscope
  Method of construction Object-oriented breakdown of components and functions
  Benefits Known method from SW architecture
  Problems Does not explicitly describe how the objects interact; complex interconnectivity between objects; difficult to change
     

 

 

 

 

 

 

 

 

 

4
Layering
     
 
     
  What Software for an oscilloscope
  Method of construction Layered used to isolate groups of functionality
  Benefits Known method from HW/SW architectures
  Problems Does not explicitly describe how the objects interact; isolates components that need to connect
     

 

 

 

 

 

 

 

 

 

5
Pipeline
     
 
     
  What Software for an oscilloscope
  Method of construction Pipeline isolates transformations into steps
  Benefits Simple concept; easy to change connections between modules that each handles one or a few transformations of the data
  Problems Transversal (global) access to the transformations was required to implement a user interface - this was difficult to add in a plain vanilla pipeline
     

 

 

 

 

 

 

 

 

 

 

 

6
Pipeline
     
 
     
  What Software for an oscilloscope
  Method of construction Pipeline isolates transformations into steps + additional control and monitoring interfaces to each module
  Benefits Simple concept; easy to change connections between modules that each handles one or a few transformations of the data. Transversal (global) access to the transformations for implementing a user interface was achieved via an API concept.
  Problems Rewiring the system is difficult: The "wiring problem". How could we make it easy to rewire such a system? Would publish-subscribe mechanisms work for an oscilloscope that needs high data transfers (in the MHz range)?
     

 

 

 

 

 

 

 

 

 

 

7
Architecture: Questions to be Asked When Constructing them
  What is the data? What kinds of information needs to exist in the system?
  Where is the data? How is it stored, accessed and destroyed?
  How is it shared? How can processes share data? How do they exchange data?
  How is it processed/changed? What transformations are needed in the system?
 
4W
Who needs What, Where and When ?
  Who Processes
  What Data, Control, Input from outside the system
  Where Hardware-wise, architecture-wise
  When Temporal dependencies: behavior of the processes or input flux from outside the system that changes with time.