Google

Architectural Styles


  • Data Centered Architecture
    • Client software communicate through shared data store
    • Repository Approach: Data store is passive that is client software access data independent of any changes to data or actions of other client software
    • Blackboard Approach: Sends notification to client software when data of interest to client changes
    • Advantages:
      • Promotes integrability i.e. addition/deletion of clients
      • Components co-ordinate transfer of information using blackboard architecture
      • Client components execute independent processes
  • Data Flow Architecture
    • Input data is transformed through a series of computational / manipulative components into output data
    • e.g. Pipe and Filter
    • Filter need not know working of neighbouring filters
    • Batch Sequential: If data flow degenerates into a single line of transforms i.e. batch of data applied to sequential filters
  • Call and Return Architecture
    • Gives a program structure that is relatively easy to modify and scale
    • Two types are:
      • Main program/sub program architecture
      • Remote Procedure Call architecture: Distributed across multiple computers on a network
  • Object Oriented Architecture
    • Components of a system encapsulate data and the operations that must be applied to manipulate the data. Communication and co-ordination between components is accomplished via message passing
  • Layered Architecture
    • Each layer accomplishes operations that progressively becomes closer to machine instruction set
    • In tiered architecture, these functionalities are physically distributed
  • Client Server Architecture
    • Single application at service is made available to number of users (clients)
    • Client may be thick or thin depending upon the amount of processing performed by client processor
  • Peer-to-Peer Architecture
    • Applications are duplicated on partaking processors
    • Used for sharing information among users e.g. napster
    • Has two parts - one for sending request and another for receiving service requests from other peers
  • Tiered Architecture
    • Used by enterprise systems
    • 2 Tier: One for UI and another holds database. Business processing is tied to UI => changes impact each other. Solution is 3 Tier.
    • 3 Tier: Introduce one middle business processing layer
    • 4 Tier: Adds one more layer just above database layer, allowing database to change without affecting business layer. Suitable for business activities.
    • Complexity and independence increases with increase in number of layers
  • Embedded System Architecture
    • Two Types:
      • Star Architecture: Several service processors attached to single control process
      • Bus Architecture (1593 bus): All processors are attached to a common bus to communicate with each other
    • If high reliability is required then use fault-tolerant architecture to make system resistant to hardware and software failures. 
      • Achieved by duplicating processing on different processors so that a local incident does not take out the whole system. 
      • Such decisions apply to non-embedded  systems as well like bank duplicate their database in different geographical locations to avoid loss of data due to local flooding or terrorist attack
    • Concerns can be number and type of processors - processing power, in built memory, level of robustness, specialised use
      • Try to keep number of processors as low as possible as interprocessor communication
      • However, if redundancy is for fault-tolerance then decision is acceptable
      • Buy faster processors as fast software is costly