Showing posts with label Software Architecture. Show all posts
Showing posts with label Software Architecture. Show all posts

July 11, 2019

Software Architectures - Comprehensive Reference Solution

Question 
Choose the most appropriate architectural pattern (one) for the 5 descriptions below. Motivate for your choices (give reasons for choosing the pattern):
1. Wants to split a system into a number of computationally independent execution structures (groups of software and hardware) such as database, business logic, web interface and client, connected by some communication media. The structure is chosen to provide a specific server environment optimized for operational requirements and resource usage.

2. Wants to set up a set of equal distributed computational entities that are connected via a common protocol to share their services and provide high availability and scalability.

3. Wants a system that can be divided into reusable, loosely coupled components that can be flexibly combined and arranged to transform between various data formats.

4. Wants a distributed system with a structure that enables that service users do not need to know the nature or location of service providers.

5. Wants a system that quickly can analyze enormous volumes of data by sorting the data and then analyzing the grouped data.

Answer:
1 .Multi-tier
2. Peer-to-peer
3.Pipe-and-filter
4. Broker
5. Map-Reduce

Question
Present a general and a specific scalability requirement in the form of a Quality Attribute Scenario

Answer
A concrete scalability quality attribute scenario:

  • Source system owner 
  • Stimulus request to accommodate five times more concurrent users 
  • Artifact the main server cluster 
  • Environment normal operation 
  • Response increase the number of servers no more than sixfold, without recompiling the software 
  • Response measure performance as measured by average number of typical requests processed per minute may not drop more than 10%


Question 
In the Service Oriented Architecture style there is a strong decoupling between functionality and implementation, throughout the application life-cycle. Applications are built by combining or connecting services. Explain why and how this architecture facilitates
a. (1) reuse of existing software components;
b. (1) independent development.

Answer:
 In SOA, application components depend on each other only through the service interface. No details of an implementation may be used or be visible.
(a) There are two elements of reuse. Once a service (interface) is defined, the only thing that needs to be done to use an existing piece of software is to map the service interface to this software, typically by building an adapter. Secondly, services can be reused in many different applications since they do not contain knowledge about their application context. One remark on the latter is in place: a service may use other services.
(b) This relies on the same separation between service definition and implementation. By defining and using only the service interface, the implementation of the service becomes irrelevant for the service user. For example, by defining the UPnP interface, the implementation behind is it entirely invisible and can be developed by independent parties. One might also replace one implementation by the other.

Question
Read the description of the Cricket-Ticket system below and do an architectural design using the attribute-driven design (ADD) method.
Your answer should include: • Architectural drivers • Architectural tactics and patterns • A logical view • Interfaces • Verification of the architecture
Note that you should only describe the logical view and only do one level of decomposition!
Motivate for your choices and state your assumptions.

The Cricket-Ticket System (CTS) is a system where the users can buy tickets using credit cards to cricket matches in India over the Internet using a Web-browser. The user can look at information about future matches from cricket teams from all over India, and see if there are any available seats. The information about the cricket matches is retrieved from various servers with different interfaces provided by the different teams. Note that the teams in India will change every year. It is critical that the TSS is available to the users all the time, and it cannot be unavailable for more than 2 minutes a week. Before important games, such as Champion League games, it is important that the system does not break down even if over 40000 users try to get tickets at the same time

Answer:
Step 1. Choose module to decompose: The CTS

Step 2a. Choose architectural drivers: AD1: The system cannot be down more than 2 minutes a week (availability) AD2: The system should provide secure electronic payment (security) AD3: The system should be able to communicate with various team servers (modifiability) AD4: The system must handle 40,000 simultaneous users (performance)

Step 2b. Choose architectural patterns: Tactics for security: Firewall for server, autorize users, authenticate users, Payment handled by third-party and usage of secure connection (e.g. https) Tactics for modifiability: Divide the functionality into coherent units and plan for changeable interfaces for external systems. Tactics for performance: Use replication of the server to ensure support for many users, and cache data from team servers. Tactics for availability: Use replication of the server to cope with downtime.
Architectural patterns: Use a kind of a model-view controller pattern where the view and the controller is represented in the user interface part and the model is the database. Replication is used on server and database for higher performance and availability. Separation of concern is used to provide modifiability (separate core functionality and external interfaces), and a separate part dealing with secure computation and interfaces.

Step 2c. Instantiate Modules and Allocate Functionality Applied architectural patterns and instantiated functionality for match browsing, seats browsing, and ticket booking. Also added a data manager that takes care of caching of data from external systems (stored in database).

Step 2d. Define Interfaces of the Child Modules Interfaces between the server and the external parts of the system: • Between User interface and user clients: HTML over HTTP • Between External system interface and External Team server: XML over HTTP • Between Data manager and Database server: SQL over HTTP • Between Ticket payment and External payment service: encrypted binary over HTTPS Interfaces within the server: • The User interface class provides display methods that uses other classes: • displayMatch() • displaySeats() • displayBooking() The Ticket payment class offer the method payTicket (used by the Ticket booking class) The Data manager class offers methods that are used by three other classes: • getMatchInformation() • getSeatsInformation() • getBookingInformation() The External system interface class, offers a more general method for accessing information from external team servers: • getInformation()

Step 2e. Verify Use Cases and Quality Scenarios Check that functional requirements are covered: • The user can get information about future matches: Match browsing class • The user can get information about available seats: Seats browsing class • The users can buy tickets: Ticket booking and Ticket payment classes Check architectural drivers: • AD1: The system cannot be down more than 2 minutes a week (availability): Replication of the server and the database, and caching of external servers. • AD2: The system should provide secure electronic payment (security): Use secure computation in Ticket payment class, use secure transfer (https) and secure external payment service. • AD3: The system should be able to communicate with various team servers (modifiability): Supported through the External system interface class. • AD4: The system must handle 40,000 simultaneous users (performance): Replication of the server and database, and caching of external servers.

Question
Read the description below and do the following:
1.Identify the most important quality attribute(s) and the architectural drivers for the system described below.
2.Choose and describe suitable architectural tactics for the problem described below, and describe how the tactics affect the quality attributes.
3.Create architecture views of the system described below. The architecture must be described in two views according to the 4+1 view model: Process and Logical view
Motivate for your choice of quality attributes, architectural drivers and the architectural tactics used in your architecture.
Software for House Alarm System: The software described here is software for controlling an alarm system sold to households. The software should be able to run different configurations consisting of sensors from various producers, variations in types of displays and keyboard/button configurations. The different configurations also represent different price segments from the very simple and cheap alarm systems to the expensive and advanced. The software system is supports both smoke (fire) and movement sensors (theft). In normal mode, the system is running on electrical power from a standard power socket in the wall. However, in case a power outage, the system can operate on battery power. All the sensors are powered by the system. In case of a detection of fire or theft, the system will start a siren (alarm sound) and the display information about what caused the alarm, in what area of the house. How the information is shown is dependent on the capabilities of the display used in the system from only simple text to graphical description of the situation. For the more expensive configurations, the system can call the fire department or a security company through a telephone connection. The system can also be set up to call the mobile phone of the owner of the house. The system will also warn the security company if the alarm system is running on battery. The software is running on custom made computer with a CPU, memory and various input/output interfaces.

Answer:
1.Most important quality attribute(s) and architectural drivers for the system: This system is a product line system with many variations of configurations. In addition, such a system must be reliable as it concerns safety of the users. The two most important quality attributes for this system are availability and modifiability. Architectural drivers for the system:
• The architecture must provide high availability because the system can possibly save lives or keep people out of danger.
• The architecture must provide interfaces that can handle various types of sensors.
• The architecture must be able to support various types of displays and keyboard/button configurations.
• The architecture must be flexible in such way that it provides different types of functionality based on the price segment of the product.
• The architecture must be able to automatically switch to battery-operated mode in case of a power outage.

April 26, 2019

Software Architectures - MCQS


Note: We have tried uploading as much as we can, there may be 4 to 6 questions which you wouldn't find it here but surely we will upload it soon. So stay tuned. At last, Thanks to Pintu one of our pro-active user who helped in this a lot. 

Question
“Partitioning of data would benefit performance” belongs to
Select one:
a. All of the given choices
b. Resource Mgmt of performance
c. Co-ordination model of performance
d. Data Model of performance

The correct answer is: Data Model of performance

Question
Which of the following is not related to Resource Mgmt of Performance
Select one:
a. Maintaining multiple copies of key data would benefit performance
b. System elements that need to be aware of, and manage, time and other performance-critical resources
c. Process/thread models
d. Prioritization of resources

The correct answer is: Prioritization of resources

Question
Information hiding methods is one of the
Select one:
a. Availability tactic
b. Reliability tactic
c. Usability tactic
d. Modifiabilty tactic

The correct answer is: Modifiabilty tactic

Question
Utility tree is to represeting
Select one:
a. Architecturally significant requirement (ASR)
b. Functional requirement
c. Stakeholders requirement
d. Business requirement

The correct answer is: Architecturally significant requirement (ASR)

Question
Which requirements can affect binding time decisions out of the following mentioned?
Select one:
a. Configurations
b. Portability
c. Regional distinctions
d. All of the choices given

The correct answer is: All of the choices given

Question
One of the statements given below is not true with respect to stakeholders' priorities. Which one?
Select one:
Database Designer: Information security issues?
Users/Customers: How easy it is to use?
Release & Configuration Manager: How do I replace of a subsystem with minimal impact ?
Application Development team: How do I plan for division of work?

The correct answer is: Release & Configuration Manager: How do I replace of a subsystem with minimal impact ?

Question
Decomposition,Uses,Layered and class are keywords used in
Select one:
a. Module structure
b. Allocation structure
c. Structure of structure
d. Component and connector structure

The correct answer is: Module structure

Question
Identification of potential quality attributes from business goals is the measure step of
Select one:
a. ASR
b. QAW
c. PALM
d. Utility Tree

The correct answer is: PALM

Question
Methods to improve Usability include (Pick the wrong answer)
Select one:
a. Intuitive UI
b. Undo / redo feature
c. Displaying status
d. Asking user to enter name twice

The correct answer is: Asking user to enter name twice

Question
One of the statements given below is not true with respect to stakeholders' priorities. Which one?
Select one:
a. Database Designer: Information security issues?
b. Application Development team: How do I plan for division of work?
c. Users/Customers: How easy it is to use?
d. Release & Configuration Manager: How do I replace of a subsystem with minimal impact ?

The correct answer is: Release & Configuration Manager: How do I replace of a subsystem with minimal impact ?

Question
Architecture of software is based on?

Select one:
A. Requirements
B. Design
C. Design and requirements
D. neither Design nor requirements

The correct answer is: Requirements

Question
Architectural pattern that best fits online flight booking application is

Select one:
A. Distributed Architecture
B. Model View Controller Architecture
C. Layer Architecture
D. Service Oriented Architecture

The correct answer is: Model View Controller Architecture

Question
Which of the following represents a Hierarchical organization?

Select one:
Client-Server
Deployment
Layered Structure
Decomposition

The correct answer is: Layered Structure

Question
Example(s) of Interchangeable software components

Select one:
A. All of these
B. Commercial off-the-shelf components
C. publicly available apps
D. open source software

The correct answer is: All of these

Question
Ability to “continuously provide”  service without failure means

Select one:
Performance
Usability
Reliability
Availability

The correct answer is: Reliability

Question
Which of the following does not appear on a diagram describing the WIndows Architecture?

Select one:
User Mode
SQLite
Kernel Mode
DLLs

The correct answer is: SQLite

Question
Deployment, implementation and work assignmnet are the keywords used in
Select one:
a. Component and connector structure
b. Structure of structure
c. Module structure
d. Allocation structure

The correct answer is: Allocation structure

Question
How is the system to relate to non-software structures in its environment such as CPU
Select one:
a. Component and connector structure
b. Structure of structure
c. Module structure
d. Allocation structure

The correct answer is: Allocation structure

Question
Learnability feature of usability attribute provides
Select one:
a. User familiarity to the system
b. Confidence to the user
c. Minimizing the impact of error
d. Adopt user need

The correct answer is: User familiarity to the system



Question
Why is software architecture called vehicle for stakeholder communication?
Select one:
a. Architecture provides a common language in which different concerns can be expressed
b. Architecture is more of technical in nature and not meant for all stakeholders
c. Both a and b
d. Each stakeholder of a software system is concerned with different characteristics of the system affected by architecture

The correct answer is: Both a and b

Question
Which software structure of module structure is useful for "implementing systems on top of 'virtual machine' portability?
Select one:
a. Class
b. Layered
c. Uses
d. Decomposition

The correct answer is: Layered

Question
Record and Playback is a

Select one:
Strategy for one of the testabilty tactics
New feature in modern music web apps
Performance enhancing tactics
Methodology to ensure the security feature of the system

Question
QAW(Quality Attribute Workshop)  is focused on:

Select one:
Reference model level concerns
System level concerns
None of the above
Component level concerns

The correct answer is: System level concerns

Question
---------------- pattern facilitates accessing shared resources and services for large numbers of distributed distributed clients.

Select one:
A. Web server
B. Client server
C. Data server
D. Proxy server

The correct answer is: Client server

Question
How do developing organizations influence by architects?

Select one:
A. Long term business
B. All of the mentioned
C. Organization structure
D. Immediate business

The correct answer is: All of the mentioned

Question
----------------- pattern suggests a solution in which components interact with via announced messages or events.

Select one:
A. Newspaper
B. Bookkeeper
C. Librarian
D. Publish Subscribe

The correct answer is: Publish Subscribe

Question
------------- pattern set a system of “equal” distributed computational entities connected to each other via a common protocol to self organize and achieve high availability and implacability.

Select one:
A. Agents
B. ATM
C. Bots
D. P2P

The correct answer is: P2P

Question
What are the concerns raised for the scenario selection procedure?

Select one:
A. How would we know if the vendor representatives were being factual?
B. Both these
C. None
D. Does the locality of change necessarily yield higher cost?

The correct answer is: How would we know if the vendor representatives were being factual?

Question
The module B expects A to write the count of total transactions handled at a particular memory location. The dependency of B on A is of

Select one:
A. Data semantics dependency
B. Location dependency
C. Data type dependency
D. Sequence dependency

The correct answer is: Data semantics dependency

Question
Which of the following can be included under observable measure?

Select one:
A. How easy it is to integrate?
B. How well the systems during execution satisfy its behavioral requirements?
C. How easy it is to test and modify?
D. All of the mentioned

The correct answer is: How well the systems during execution satisfy its behavioral requirements?

Question
The important categorie(s) of architecture structure is / are

Select one:
A. All of these mentioned
B. Allocation
C. Component and Connector
D. Module

The correct answer is: All of these mentioned

Question
In ----------------- pattern interaction, persistent data is exchanged between multiple data accessors and at least one shared data store.

Select one:
A. Shared Data
B. NDF
C. DBMS
D. Shared Object

The correct answer is:  Shared Data

Question
What is the main goal for the choice of scenarios?

Select one:
A. They should reflect the important quality requirements
B. There be a sufficient number to reflect the views of all the stakeholders
C. Both mentioned
D. None mentioned

The correct answer is: There be a sufficient number to reflect the views of all the stakeholders

Question
Which of the following is not a performance tactic?

Select one:
A. Resource Demand
B. Resource Management
C. Resource Monitor
D. Resource Arbitration

The correct answer is: Resource Monitor

Question
There are several modules that calls a service provided by A. What is the implicit dependency on A?

Select one:
A. Quality of service provided by A
B. Semantics of the result generated by A
C. the fact that A shares the same memory location of these calling modules
D. The assumption that A exists when calling the service of A
The assumption that A exists when calling the service of A

The correct answer is: The assumption that A exists when calling the service of A

Question
An on-line tax-filing application uploads the form-16 document from the employer and it fills the tax return form of an employee once she logs into the system. The file-tax-return button submits the return form and also deducts additional tax amount from her registered credit card. From quality attribute perspective, this application improves

Select one:
A. interoperability
B. performance
C. usability
D. availability

The correct answer is: usability

Question
Architecture based process includes which of the following

Select one:
A. Creating the business case for the system
B. Analyzing or valuating the architecture
C. Understanding the requirements
D. All of these mentioned

The correct answer is: All of these mentioned

Question
Adding an intermediate component between two interacting modules in an application will improve:

Select one:
A. Security of the System
B. Reliability of the System
C. Availability of the System
D. Modifiability of the System

The correct answer is: Modifiability of the System

Question
What is architectural style?

Select one:
A. Architectural style is a description of component types
B. It is a pattern of run-time control
C. All of these mentioned
D. It is set of constraints on architecture

The correct answer is: All of these mentioned

Question
What would happen if different organization were given same set of requirements?

Select one:
A. It will produce same architecture
B. It may or may not produce same architecture
C. None of the mentioned
D. It will produce different architecture

The correct answer is: None of the mentioned

Question
Availability ensures

Select one:
A. Attainment of reliability
B. All of these mentioned
C. Availability ensures
D. Minimize service outage time by fault reduction

The correct answer is: All of these mentioned

Question
------------- pattern splits system into a number of computationally independent execution structures to achieve optimized usage of resources.

Select one:
A. Layers
B. Multi tier
C. Agent
D. Broker

The correct answer is: Multi tier

Question
In a GUI application, when a user presses a button an action event is generated. What is action event in a general quality scenario?

Select one:
A. Artifact
B. Stimulus
C. Response
D. Source

The correct answer is: Stimulus

Question
------------------ pattern is a tactic to achieve highly efficient processing of enormous volumes of data at petabyte scale.

Select one:
A. Map Reduce
B. Supercomputer
C. Shift Reduce
D. Goggle

The correct answer is: Map Reduce

Question
------------------------ is a tactic to achieve Security.

Select one:
A. Maintain Audit Trail
B. License Key
C. Discover
D. copyright

The correct answer is: Maintain Audit Trail

Question
There is a monitor that records the status of the system during runtime. This is an example of

Select one:
A. Modifiability of the System
B. Availability of the System
C. Security of the System
D. Reliability of the System

The correct answer is: Security of the System

Question
--------------- pattern helps to achieve separation of concerns such that modules of system may be independently developed and maintained.

Select one:
A. SOA
B. Microkernel
C. Layered
D. MVC

The correct answer is: Layered

Question
The architects are influenced by which of the following factors?

Select one:
A. Background and experience of the architects
B. Customers and end users
C. Developing organization
D. All of these mentioned Correct

The correct answer is: All of these mentioned

Question
-------------- pattern describes a collection of distributed components that provide and/or consume the services.

Select one:
A. SOA
B. Client server
C. P2P
D. Broker

The correct answer is: SOA

Question
Source of stimulus can be

Select one:
A. Any actuator
B. Stimulus
C. None of these mentioned
D. Environment

The correct answer is: Any actuator

Question
----------------- pattern is characterized by successive transformation of streams of data using generic, loosely coupled components.

Select one:
A. Blackboard
B. Pipes and filters
C. Classroom
D. Abstraction

The correct answer is: Pipes and filters

Question
Which of the following is the main goal for the choice of scenarios?

Select one:
A. They should reflect the important quality requirements
B. Both
C. None of these
D. There be a sufficient number to reflect the views of all the stakeholders

The correct answer is: Both

Question
The incorrect method for structural design is?

Select one:
A. More procedural approach
B. Handling of larger and more complex products
C. Transition of problem models to solution models
D. Designing Object oriented systems

The correct answer is: Handling of larger and more complex products

Question
The proto scenarios recorded on flip charts as phrases as which of the following?

Select one:
A. WWW client access
B. Double number of user
C. All of these mentioned
D. Degraded Operation

The correct answer is: All of these mentioned

Question
Denial of Service attack affects the __________ of the system.

Select one:
A. All of these
B. Usability
C. Availability
D. Security

The correct answer is: Availability

Question
Tactics which ensures interoperability includes

Select one:
A. Orchestrate and Tailor interface
B. Both of these
C. None of these
D. Discover service and Tailor interface

The correct answer is: Both of these

Question
To capture data store and access to data from the store by various components you use

Select one:
A. Module dependency structure
B. component and hardware dependency
C. component connector structure
D. work-allocation of modules

The correct answer is: component connector structure

Question
--------------- pattern defines a runtime component that mediates the communication between a number of clients and servers.

Select one:
A. Proxy
B. Middleware
C. Broker
D. Load balancer

The correct answer is: Broker

Question
---------------- pattern separates out presentation from functionality of the system.

Select one:
A. Maps
B. UI/UX
C. MVC
D. Controller

The correct answer is: MVC

Question
Authorizing the user is a __________

Select one:
A. Usability tactic
B. Security tactic
C. Availability tactic
D. Performance tactic

The correct answer is: Security tactic

Question
Which of the following is the incorrect sequence Summary Steps for scenario selection process?

Select one:
A. Method presentation
B. Refinement and selection
C. Participant buy-in and expression of concerns and issues
D. All of these mentioned

The correct answer is: Participant buy-in and expression of concerns and issues

Question
Which among the following are true with regards to the architecture business cycle?

Select one:
A. All of these mentioned
B. None of these mentioned
C. The architecture affects the structure of developing organizations
D. The architecture can affect the enterprise goals of the developing organizations

The correct answer is: The architecture affects the structure of developing organizations

April 15, 2019

Software Architecture - Mid Sem Solution

Mid-Sem Paper Solutions:



Question:
Q.1 Choose the most appropriate architectural pattern (one) for the 5 descriptions below. Give reasons for choosing the pattern (in 1-2 line maximum)

1. Wants to split a system into a number of computationally independent execution structures (groups of software and hardware) such as database, business logic, web interface and client, connected by some communication media. The structure is chosen to provide a specific server environment optimized for operational requirements and resource usage.

2. A set of heterogeneous specialized modules which dynamically change their strategies as a response to unpredictable events, and the system has to deal with uncertain knowledge.

3. Wants a system that can be divided into reusable, loosely coupled components that can be flexibly combined and arranged to transform between various data formats.

4. Wants a distributed system with a structure that enables that service users do not need to know the nature or location of service providers.  

5. A program relationship in which one program requests a service or resource from another Program.

Nominees:
(a) Layered 
(b) Broker 
(c) Model-view-controller
(d) Pipe-and-Filter 
(e) Client-Server 
(f) Blackboard 
(g) Service-Oriented 
(h) Publish-Subscribe 
(i)  Map-Reduce

For Practice:
  • Wants a system that quickly can analyze enormous volumes of data by sorting the data and then analyzing the grouped data. -> Map-Reduce
  • Wants to set up a set of equal distributed computational entities that are connected via a common protocol to share their services and provide high availability and scalability. -> Peer-to-peer
Answer:

1. Multi-tier
2. Blackboard
3. Pipe-and-Filter 
4. Broker
5. Client-Server

Question:
Q.2. Write brief notes on followings:

2.1  Discuss whether this statement is true or false: “Architecture is a transferable and reusable model”.
Answer:
Yes, it is true. Architecture can be created as transferable, reusable model that forms the heart of a product line.
Below is some key-point which does prove the importance of this.
Architecture can provide the basis for evolutionary prototyping.
Architecture is the key artifact that allows the architect and project manager to reason about cost and schedule.
By restricting design alternatives, architecture channels the creativity of developers, reducing design and system complexity.
Architecture defines a set of constraints on subsequent implementation.

2.2 What parameters (inputs) are typically used in models for analyzing performance
Answer:
Parameters (inputs) for analytic modeling of performance (candidates):
Arrival rate of events
queuing discipline
scheduling algorithm
service time for events
network topology 
network bandwidth
routing algorithm 

2.3 What is the difference between reference architecture and an architectural pattern? 
Answer:

An important difference between a pattern and reference architecture is that a pattern must be a recurrent solution that was already used on existing implementations. On the other hand, reference architecture can propose new, innovative solutions in its structure, whose usage was not yet proven in existing software. As a consequence, reference architecture is more suitable to propose a structure for new domains, which are not still well established.

Patterns and reference architectures document solutions in different levels of granularity. While a pattern focus on a single problem and in a single recurrent solution, reference architecture usually considers the target domain as a whole.

Question:
Q.3. Write any five availability tactics for fault detection. Explain each one briefly. 

Answer
Below are the 5 availability tactics for fault detection:
Ping
– Client (or fault-detector) pings the server and gets response back
– To avoid less communication bandwidth- use hierarchy of fault-detectors,
the lowest one shares the same h/w as the server
Heartbeat
– Server periodically sends a signal
– Listeners listen for such heartbeat. Failure of heartbeat means that the server is dead
– Signal can have data (ATM sending the last txn)
Exception Detection
– Adding an Exception handler means error masking
Voting (TMR)
– Three identical copies of a module are connected to a voting system which compares outputs from all the three components. If there is an inconsistency in their outputs when subjected to the same input, the voting system reports error/inconsistency.
– Majority voting, or preferred component wins
Timer and Time-stamping
– If the running process does not reset the timer periodically, the timer triggers off and announces failure
- Time-stamping: assigns a timestamp (can be a count, based on the local clock) with a message in a decentralized message passing system. Used to detect inconsistency.