Digital Directions: Tiers Without Fears
Complex systems, such as digital publishing platforms, are composed of a number of components that work together. Software architects often think of these components as being arranged in layers, or "tiers," like a layer cake.
While there is a lack of consensus as to how these tiers should be defined, there is strong convergence around one particular flavor of this layer cake. Most system architects think in terms of a three-tier architecture:
- Presentation layer. The top of the cake is the user interface. A user could be a member of the editorial staff, marketing staff, production or design team—as well as customers, or end users. Most systems use presentation layers based on the Web, in which end users access the system with Web browsers.
- Data layer. The bottom layer is the data layer, where all of the data assets reside. These data assets may include digital media assets maintained in content repositories—e.g., image libraries residing in VirtuSales' BiblioDAM, fielded data residing in a relational database (price data in SQLServer), XML content managed by a native XML database (MarkLogic Server), and metadata—that may be found in any of the above.
- Business logic layer. The middle layer is devoted to the management of business logic. Business logic includes the application of business rules, such as restricting access of certain functions to certain users. Business logic also includes business process workflow, such as a publishing workflow. The middle layer also manages how the top layer and the bottom layer connect.
Some common characteristics of well-constructed three-tier systems:
Layer modularity. Modularity enables the replacement of one layer without replacing the whole cake. This allows systems to evolve over time.
Well-documented interfaces. The interfaces between layers—how the layers communicate with adjacent layers—should be clearly documented and easily understood by developers. If interfaces are well-documented, then a layer can be replaced, with the new layer connecting to the other layers the same way the old one did.