Common layers in an information system logical architecture

Common layers in an information system logical architecture

The following four layers are the most common layers in a logical multilayered architecture for an information system with an object-oriented design:

  • User Interface Layer (aka View Layer, UI layer or Presentation layer)
  • Application Layer (aka Service Layer[1][2] or GRASP Controller Layer [3])
  • Domain Layer (aka Business Layer, Business logic Layer or Model Layer)
  • Infrastructure Layer (data access or other persistence, logging, network I/O e.g. sending emails, and other kind of technical services)

Some common purposes of the above four layers are for example described in the book about domain-driven design [4] at page 68-74, which is a book that otherwise is focused on describing the Domain layer

Sometimes there is no explicit distinction between the Domain Layer and the Application Layer, e.g. the Application Layer is considered as being a part of the Domain Layer. On the other hand, it is also possible to even further divide the Application/Domain Layers into more layers. For example, if the Model View Presenter pattern is used, then you can consider the Presenter Layer as being a layer between the User Interface Layer and the Application Layer.

The Domain Layer can also use a Business Infrastructure Layer (aka low-level business services layer) between the Domain Layer and the Infrastructure Layer(s). That layer (BI) is very general and can be used in many different application domains, e.g. a CurrencyConverter.[5]

The Infrastructure Layer may be partitioned into different levels (high-level or low-level technical services)[5]. Though, it is not unusual that developers only consider the persistence (data access) and therefore only talk about the Persistence Layer or the Data Access Layer (instead of an Infrastructure Layer or Technical services Layer). In other words, the other kind of technical services are not always being explicitly thought of as being part of any particular layer.

Regarding that all types are not always considered as belonging to one particular layer, according to the "POSA book" (Pattern-Oriented Software Architecture A System of Patterns, page 39) a relaxed layered system (as opposed to a strict layered system) can use so called "shared data definition modules" which are types not belonging in a particular layer.

Notes

  1. ^ Martin Fowler's Service Layer
  2. ^ Martin Fowler's explains that Service Layer is the same as Application Layer
  3. ^ Comparison/discussion of the GRASP Controller Layer vs. Application/Service Layer
  4. ^ Domain-Driven Design, the Book
  5. ^ a b Applying UML and Patterns, 3rd edition, page 203, ISBN 0131489062

See also


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • Multilayered architecture — A multilayered software architecture is using different layers for allocating the responsibilities of an application. There is also an architectural pattern that is named Layers and has been described in different publications, including the book …   Wikipedia

  • Software architecture — The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them. The term also… …   Wikipedia

  • Software system — A software system is a system based on software forming part of a computer system (a combination of hardware and software). The term software system is often used as a synonym of computer program or software. The term software system is related… …   Wikipedia

  • Information security — Components: or qualities, i.e., Confidentiality, Integrity and Availability (CIA). Information Systems are decomposed in three main portions, hardware, software and communications with the purpose to identify and apply information security… …   Wikipedia

  • Model–view–presenter — (MVP) is a derivative of the model–view–controller (MVC) software pattern, also used mostly for building user interfaces. In MVP the presenter assumes the functionality of the middle man (played by the controller in MVC). Additionally, the view… …   Wikipedia

  • Model View Presenter — is a software pattern considered as a derivative of the Model view controller. Pattern description The View is defined as an interface that the Presenter will use for getting and setting data to and from the Model. The View implementation will… …   Wikipedia

  • 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.Layers are… …   Wikipedia

  • Software design — is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low level… …   Wikipedia

  • Domain layer — The domain layer is a software concept.It is one of the layers in a typical multilayered architecture for information systems.One of the best and most well known sources of information about how to use a domain layer can be found in Eric Evans s… …   Wikipedia

  • Business logic layer — A business logic layer (BLL), also known as the domain layer, is a software engineering practice of compartmentalizing. The business logic layer is usually one of the tiers in a multitier architecture. It separates the business logic from other… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”