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.