Architectural pattern (computer science)
Encyclopedia
An architectural pattern in software is a standard design
in the field of software architecture
. The concept of a software architectural pattern has a broader scope than the concept of a software design pattern
. Software architectural patterns address various issues in software engineering
, such as computer hardware
performance limitations, high availability
and minimization of business risk. Some architectural patterns have been implemented within software framework
s.
Here is a list of Architecture Patterns, Design Patterns, and Solution Patterns in the Application and Information Architecture Domains.
Some additional examples of architectural patterns can be accessed below:
Design
Design as a noun informally refers to a plan or convention for the construction of an object or a system while “to design” refers to making this plan...
in the field of software architecture
Software architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
. The concept of a software architectural pattern has a broader scope than the concept of a software design pattern
Design pattern
A design pattern in architecture and computer science is a formal way of documenting a solution to a design problem in a particular field of expertise. The idea was introduced by the architect Christopher Alexander in the field of architecture and has been adapted for various other disciplines,...
. Software architectural patterns address various issues in software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...
, such as computer hardware
Computer hardware
Personal computer hardware are component devices which are typically installed into or peripheral to a computer case to create a personal computer upon which system software is installed including a firmware interface such as a BIOS and an operating system which supports application software that...
performance limitations, high availability
High availability
High availability is a system design approach and associated service implementation that ensures a prearranged level of operational performance will be met during a contractual measurement period....
and minimization of business risk. Some architectural patterns have been implemented within software framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...
s.
Definition
Even though an architectural pattern conveys an image of a system, it is not an architecture as such. An architectural pattern is rather a concept that solves and delineates some essential cohesive elements of a software architecture. Countless different architectures may implement the same pattern and thereby share the related characteristics. Furthermore, patterns are often defined as something "strictly described and commonly available". For example, layered architecture is a call-and-return style, when it defines an overall style to interact. When it is strictly described and commonly available, it is a pattern.Examples
- Enterprise Architecture framework Patterns in Enterprise Architecture Domains
Here is a list of Architecture Patterns, Design Patterns, and Solution Patterns in the Application and Information Architecture Domains.
Sub-Domain Area | Architecture Pattern Name | Design Patterns | Solution Patterns | Related Patterns |
---|---|---|---|---|
Data Integration Data integration Data integration involves combining data residing in different sources and providing users with a unified view of these data.This process becomes significant in a variety of situations, which include both commercial and scientific domains... /SOA Service-oriented architecture In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for... |
|
Change data capture In databases, change data capture is a set of software design patterns used to determine the data that has changed so that action can be taken using the changed data... |
Data validation In computer science, data validation is the process of ensuring that a program operates on clean, correct and useful data. It uses routines, often called "validation rules" or "check routines", that check for correctness, meaningfulness, and security of data that are input to the system... Slowly Changing Dimension Dimension is a term in data management and data warehousing that refers to logical groupings of data such as geographical location, customer information, or product information... |
Enterprise application integration Enterprise Application Integration is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.- Overview :... |
Managed File Transfer Managed file transfer ' refers to software solutions that facilitate the secure transfer of data, in flight and at rest, from one computer to another through a network . MFT solutions are often built to support the FTP network protocol... |
||||
Enterprise application integration Enterprise Application Integration is defined as the use of software and computer systems architectural principles to integrate a set of enterprise computer applications.- Overview :... /ESB Enterprise service bus An enterprise service bus is a software architecture model used for designing and implementing the interaction and communication between mutually interacting software applications in Service Oriented Architecture... |
Publish/subscribe Publish–subscribe is a messaging pattern where senders of messages, called publishers, do not program the messages to be sent directly to specific receivers, called subscribers. Published messages are characterized into classes, without knowledge of what, if any, subscribers there may be... Request-response Request-response or request-reply is one of the basic methods computers use to talk to each other. When using request-response, the first computer requests some data and the second computer responds to the request. Usually there is a series of such interchanges until the complete message is sent. ... Message Exchange Pattern In software architecture, a messaging pattern is a network-oriented architectural pattern which describes how two different parts of a message passing system connect and communicate with each other.... s |
|
Service-oriented architecture In software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for... |
|
Data Architecture Data architecture Data Architecture in enterprise architecture is the design of data for use in defining the target state and the subsequent planning needed to achieve the target state... |
Online transaction processing Online transaction processing, or OLTP, refers to a class of systems that facilitate and manage transaction-oriented applications, typically for data entry and retrieval transaction processing... Master Data Management In computing, master data management comprises a set of processes and tools that consistently defines and manages the non-transactional data entities of an organization... Operational data store An operational data store is a database designed to integrate data from multiple sources for additional operations on the data. The data is then passed back to operational systems for further operations and to the data warehouse for reporting.... Data mart A data mart is the access layer of the data warehouse environment that is used to get data out to the users. The data mart is a subset of the data warehouse which is usually oriented to a specific business line or team.- Terminology :... Data warehouse In computing, a data warehouse is a database used for reporting and analysis. The data stored in the warehouse is uploaded from the operational systems. The data may pass through an operational data store for additional operations before it is used in the DW for reporting.A data warehouse... |
|
|
|
Business Intelligence Business intelligence Business intelligence mainly refers to computer-based techniques used in identifying, extracting, and analyzing business data, such as sales revenue by products and/or departments, or by associated costs and incomes.... |
|
Data mining Data mining , a relatively young and interdisciplinary field of computer science is the process of discovering new patterns from large data sets involving methods at the intersection of artificial intelligence, machine learning, statistics and database systems... |
Predictive analytics Predictive analytics encompasses a variety of statistical techniques from modeling, machine learning, data mining and game theory that analyze current and historical facts to make predictions about future events.... |
|
Master data management Master Data Management In computing, master data management comprises a set of processes and tools that consistently defines and manages the non-transactional data entities of an organization... |
|
|
Change data capture In databases, change data capture is a set of software design patterns used to determine the data that has changed so that action can be taken using the changed data... |
|
Data Modeling Data modeling Data modeling in software engineering is the process of creating a data model for an information system by applying formal data modeling techniques.- Overview :... |
Dimensional modeling Dimensional modeling is the name of a set of techniques and concepts used in data warehouse design. It is considered to be different from entity-relationship modeling . Dimensional Modeling does not necessarily involve a relational database. The same modeling approach, at the logical level, can be... Entity-relationship model In software engineering, an entity-relationship model is an abstract and conceptual representation of data. Entity-relationship modeling is a database modeling method, used to produce a type of conceptual schema or semantic data model of a system, often a relational database, and its requirements... |
|
Some additional examples of architectural patterns can be accessed below:
- Datamart
- ETL ( Data Extraction Transformation & Loading)
- Blackboard systemBlackboard systemA blackboard system is an artificial intelligence application based on the blackboard architectural model, where a common knowledge base, the "blackboard", is iteratively updated by a diverse group of specialist knowledge sources, starting with a problem specification and ending with a solution...
- Event-driven architecture
- Implicit invocationImplicit invocationImplicit invocation is a term used by some authors for a style of software architecture in which a system is structured around event handling, using a form of callback...
- LayersLayer (object-oriented design)In object-oriented design, a layer is a group of classes that have the same set of link-time module dependencies to other modules. In other words, a layer is a group of reusable components that are reusable in similar circumstances...
- Model-View-ControllerModel-view-controllerModel–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
, Presentation-abstraction-controlPresentation-abstraction-controlPresentation–abstraction–control is a software architectural pattern. It is an interaction-oriented software architecture, and is somewhat similar to model–view–controller in that it separates an interactive system into three types of components responsible for specific aspects of the...
, Model View PresenterModel View PresenterModel–view–presenter is a derivative of the model–view–controller software pattern, also used mostly for building user interfaces....
and Model View ViewModelModel View ViewModelThe Model View ViewModel is an architectural pattern used in software engineering that originated from Microsoft as a specialization of the Presentation Model design pattern introduced by Martin Fowler... - Multitier architectureMultitier architectureIn software engineering, multi-tier architecture is a client–server architecture in which the presentation, the application processing, and the data management are logically separate processes. For example, an application that uses middleware to service data requests between a user and a database...
(often three-tier) - Naked objectsNaked objectsNaked objects is an architectural pattern used in software engineering.-Definition:The naked objects pattern is defined by three principles:...
- Operational Data Store (ODS)
- Peer-to-peerPeer-to-peerPeer-to-peer computing or networking is a distributed application architecture that partitions tasks or workloads among peers. Peers are equally privileged, equipotent participants in the application...
- Pipe and filter architecture
- Service-oriented architectureService-oriented architectureIn software engineering, a Service-Oriented Architecture is a set of principles and methodologies for designing and developing software in the form of interoperable services. These services are well-defined business functionalities that are built as software components that can be reused for...