Architectural Design Patterns

 

Layered Pattern

Context

  • Grouping of associated functionality in an application into separate layers that are placed vertically on top of one another.

Problem

  • Components in a layer can only interact with those in an identical layer or with those from the layers directly below it.

Solution

  • Layering the application adequately to sustain a stout separation of concerns that, consequently, promotes maintainability and flexibility (Taylor, Medvidović and Dashofy 31).

 

 

Broker Pattern

Context

  • A system which is made up of several remote objects which network asynchronously or synchronously.
  • A heterogeneous environment.

Problem

  • Scalability is lessened.
  • Inbuilt networking complications, for example, partial failures.
  • There is need of having significant changeability, maintainability, and flexibility when creating applications.

Solution

  • Split system communication functionality from the foremost application functionality by offering a broker that separates communication-associated issues (Taylor, Medvidović and Dashofy 37).

Model-View-Controller Pattern

Context

  • Retrieving data from a data store and exhibit if for the user.

Problem

  • How to modularize the user interface functionality of an application so as to modify the individual part in an easy way.

Solution

  • Separating the modeling of the actions, presentation, and domain based on user input into three distinct classes of model, view, and controller (Taylor, Medvidović and Dashofy 44).

 

Pipe-And-Filter Pattern

Context

  • Made up of programs that should process a stream of information.

Problem

  • If two steps are not bordering, then they will not share information.
  • Various sources of input data should exist.

Solution

  • Enable the concurrent execution of filters.
  • Split the task into a series of processing stages.
  • Connect the input to the sequence to a source of data (Taylor, Medvidović and Dashofy 58).

 

Client-Server Pattern

Context

  • Distributed systems which involve a distinct server and client system and a connecting network.

Problem

  • The computers should have a conventional language and abide by the rules for both server and client to know what to expect during communication.

Solution

  • Clients initiating communication sessions with servers which wait for arriving requests (Taylor, Medvidović and Dashofy 67).

Peer-To-Peer Pattern

Context

  • Where special nodes in the network function as both consumers and suppliers of resources.

Problem

  • Its applications may have vulnerabilities. 

Solution

  • Sharing between several interconnected peers who directly contribute a part of their resources to various network participants without a centralized synchronization by servers (Taylor, Medvidović and Dashofy 72).

Service-Oriented Architecture Pattern

Context

  • Services are joined by other software applications that offer the full functionality of a large software application.

Problem

  • How to use a procedure in a different application.
  • How to transfer data between services.

Solution

  • Employ an event message for asynchronous, reliable event notification among applications.
  • Utilize a command message to efficiently invoke a process in a different application (Taylor, Medvidović and Dashofy 81).

 

Publish-Subscribe Pattern

Context

  • Integration architecture made up of different applications.

Problem

  • Determining how an application in an integration architecture can solely send applications that are interested in getting the messages without the characters of the receivers.

Solution

  • Broaden the communication infrastructure by developing topics.
  • Allow listening applications to support specified messages (Taylor, Medvidović and Dashofy 86).

 

Shared-Data Pattern

Context

  • Where the system is perceived as a constant, shared data store that is modified and accessed by several elements.

Problem

  • In sequential architecture the only way to share information between the components is to pass the data along with the invocation, which may be insufficient for significant data sets.

Solution

  • Utilize shared repository to provide adequate means for accessing information (Taylor, Medvidović and Dashofy 89).

 

Map-Reduce Pattern

Context

  • In processing significant data sets with a distributed, parallel algorithm on a cluster.

Problem

  • Its interface is extremely low-level.
  • Low-level record management.

Solution

  • Processing information near or on the storage to lessen data transmission (Taylor, Medvidović and Dashofy 94).

Multi-Tier Pattern

Context

  • Where application processing, presentation, and data management duties are logically split.

Problem

  • It is a moderately conceptual style because numerous aspects are not particularized in detail.

Solution

  • Segregating an application into tiers.
  • Use N-tier application to develop reusable and flexible applications (Taylor, Medvidović and Dashofy 89).

 

Work Cited

Taylor, R. N., Medvidović, N., and Dashofy, E. M. Software Architecture: Foundations, Theory   and Practice. New York: Wiley, 2009. Print.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>