Architectural pattern (computer science)
Encyclopedia
An architectural pattern in software is a standard design
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...

  • ETL (Data Extraction Transformation & Loading)
    Extract, transform, load
    Extract, transform and load is a process in database usage and especially in data warehousing that involves:* Extracting data from outside sources* Transforming it to fit operational needs...

  • Change Data Capture
    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...

  • Near Real-Time ETL
  • Batch ETL
  • Data Discovery
  • Error handling
  • Job scheduling
  • Data validation
    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 Dimensions Load
    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...

  • EAI
    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 :...

  • Master Data Hub
  • Operational Data Store (ODS)
  • Datamart
  • Datawarehouse
  • MFT
    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...

  • EAI
    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
    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/reply
    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
    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
  • One-Way
  • Synchronous Request/Response
  • Basic Callback
  • Claim Check
  • 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...

  • 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...

  • Transaction Data Stores (TDS/OLTP)
    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 Store
    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
    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
    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
    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...

  • Custom Applications Databases
  • Packaged Application Databases
  • ETL
  • EAI
  • SOA
  • 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....

  • Transactional Reporting
  • Operational Reporting
  • Analytical Reporting
  • Transactional Reporting Data Access
  • Operational Reporting Data Access
  • Analytical Reporting Data Access
  • Analytical Dashboard Data Access
  • Operational Dashboard Data Access
  • Data Mining
    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...

  • Real-Time Dashboards
  • In-Memory Analytics
  • Statistical Analysis
  • Predictive analytics
    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....

  • ETL
  • EAI
  • TDS
  • Operational Data Store
  • Datamart
  • 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...

  • Master Data Hub
  • Master Data Replication
  • Master Data Services
  • Master Data Synchronization
  • Change Data Capture
    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...

  • EAI
  • SOA
  • 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 Data Modeling
    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...

  • E-R Data Modeling
    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...

  • Modeling Standards
  • Naming Conventions


  • Some additional examples of architectural patterns can be accessed below:
    • Datamart
    • ETL ( Data Extraction Transformation & Loading)
    • Blackboard system
      Blackboard system
      A 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 invocation
      Implicit invocation
      Implicit 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...

    • Layers
      Layer (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-Controller
      Model-view-controller
      Model–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-control
      Presentation-abstraction-control
      Presentation–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 Presenter
      Model View Presenter
      Model–view–presenter is a derivative of the model–view–controller software pattern, also used mostly for building user interfaces....

       and Model View ViewModel
      Model View ViewModel
      The 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 architecture
      Multitier architecture
      In 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 objects
      Naked objects
      Naked 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-peer
      Peer-to-peer
      Peer-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 architecture
      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...

    The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
     
    x
    OK