You are on page 1of 10

c  

 

  c   



c  
 
 

 !" # $ %

&'(   )*+   ,


›m Over the years a lot of experience was gained
›m ˜n any design: certain patterns and structures appear very often
›m „uch patterns and structures become a part of the vocabulary
›m Ôocabulary is used by designers to think and talk about the architectural design

c    - *  


›m cn architectural style is a particular pattern that focuses on the large-scale of a system
›m ºe can look on a style from concptual, execution and implementation point of view
›m his is same as with any other software architecture

c    - *  .


›m cn architectural style is constrained by a particular principle of how to build systems
›m jow components are organized, how data is manipulated, how compononents
communicate, ...?
›m ï.g. a hierarchy of components, sequential processing of data, asynchronous
communication, ...
›m ïach principle influences some quality attributes in a positive and some other in a
negetive way
›m ˜t is again balancing between advantages and disadvantages

     
›m !ata-centered architectures
›m !ata-flow architectures
›m cbstraction layer architectures
›m -tier architectures
›m otification architectures
›m ˜nvokation and service architectures
›m jeterogeneous architectures

/ *    


›m hese architectures have the goal of achieving the quality of integrability of data.
›m he term refers to systems in which the access and update of a widely accessed data store
is their primary goal.
›m -asically, it is nothing more than a centralized data store that communicates with a
number of clients
›m ˜mportant for this styles are three protocols: communication, data definition and data
manipulation protocol

/ *    .


›m he means of communication distinguishes the two subtypes: repository and blackboard
›m Depository: a client sends a request to the system to perform a necessary action (e.g.
insert data)
›m -lackboard: the system sends notification and data to subscribers when data of interest
changes, and is thus active

D( 

01)  *
)     
›m One of the most well-known examples of the data-centered architecture, is a database
architecture
›m here is a common database schema (i.e. meta-structure of the repository) - created with
data definition protocol
›m ï.g. in D!- „ a set of related tables with fields, data types, keys, ...

)     .


›m ëlients use data manipulation protocol to work with the data
›m ï.g. „ for inserting, selecting, deleteing data, ...
›m !epending on where clients are situated communication protocol might be
÷m cn inner-proces communication
÷m ëommunication between components on the same machine
÷m ëommunication over network, e.g. c, ˜nternet, etc.

/ *    -  


›m ïnsures data integrity
›m Deliable, secure, testability guaranteed
›m ëlients independent on the system: performance and usability on the client side is good
›m  roblems with scalability
›m „olutions: shared repositories, replication but this increases complexity

º)    


›m cnother example of data-centered architectures is the ºeb architecture
›m here is a common data schema (i.e. meta-structure of the ºeb)
›m ·ollows hypermedia data model
›m  ages (nodes) and links between them, as well as addressing mechanism
º)    .
›m !ata manipulation not directly in the system but typically achieved through applications
›m clthough j  protocol has methods for data manipulation
›m ëommunication protocol is j 
›m cnalysis: integrity not guaranteed (404 error) but extremely scalable

D  / * c  


›m „uch architectures look onto the ºeb as a huge distibuted database
›m !ata model: nodes addressable by UD and interlinked
›m !ata manipulation: j  methods (Gï,  U,  O„, !ïïï)
›m „calable, good performance, usability, etc.

/     


›m hese architectures have the goal of achieving the quality of reuse and modifiability.
›m he data-flow style is characterized by viewing the system as a series of transformations
on successive pieces of input data.
›m !ata enter the system and then flows through the components one at a time until
›m ·inally, the data is assigned to some final destination (output or a data store).

/     .


›m !ata-flow architectures can be classified into batch-sequential architectures and pipe and
filters
›m ˜n the batch sequential style each step runs to completion before the next step starts
›m ï.g. U˜ command line pipes
›m ˜n pipe and filters style steps might run concurrently processing parts of data
incrementally

 ( *  


›m !ata flows through pipes: communication channels between filters
›m  rocessing units: filters
›m !epending on where the filters reside different execution architectures
›m ï.g. same process: filters run within threads
›m ï.g. same machine: filters run within own processes
›m ï.g. network: pipes use the networking architecture
 ( *  .
›m ëonceptually filters consume data from input and writes data to output
›m ˜nput and output: communication channels, i.e. pipes
›m !epending on where the filters reside different execution architectures
›m ·ilters do not know anything about other filters
›m odularity, maintainability is good
›m !ata flows in streams: good for processing of images, audio, video, ...

 ( *  2

 ( *  3


›m Ôariations: structural and communicational
›m „tructural: more complex topologies might be used
›m ï.g. loops, branches, more than one input, ...
 ( *  4

 ( *  


›m ëommunicational: are filters blocked and wait for data?
›m Other forms of synchronization
›m ï.g. when there is only a single communication channel
›m -locking might compromise performance
›m ï.g. recently very popular ˜O (non-blocking input/output) in networking applications

c)       
›m ayering: the structure of the system is organized into set of layers
›m ïach layer in on the top of another layer
›m ºell-defined interfaces between layers
›m Deduces complexity, improves modularity, reusability, maintainability
›m !ifferent criteria for layering: most notably abstraction

&',(
( + , 
›m ypically organized into layers
›m „uccessive layers provide more sophisticated services to the layers above them
›m jardware services, kernel services, system services, U˜ services

( + , .


  , 
›m c virtual machine implements an instruction set for an imaginery machine
›m Often virtual machines are the underlaying mechanism by which a programming
language is executed
›m ï.g. Java virtual machine, different interpreters
›m „pecifies an interface between compiler and a real machine
›m ·rom conceptual point of view very similar to O„
›m ˜mproves portability

  , .


  / /( (    1 
›m c common example of layered architecture is a network protocol stack
›m ï.g. ë /˜  protocol stack
›m ·our layers
›m he lowest layer handles communication between two computers
›m he internet layer handles routing of packets accross the network

  / /( (    1 .


›m he transport layer guarantees that packets are error-free abd received in the same order
as sent
›m he application layer supports application-specific protocols
›m ï.g. j , „  , · , ...
›m he layers consitute a series of increasingly abstract operations
›m jigher layers span a virtual connection between computers on the network

  / /( (    1 2


m

You might also like