|
Architecture Made Easy, Part 10
Architecture Patterns
Published: June 1, 2010 James Luisi and Mary Kotch summarize the overall framework of software architecture for information systems.
First I should mention that there is enough material that pertains to this subject that it can easily be turned into one or more books that illustrate the various architectural patterns for software engineering. For anyone with formal training in software engineering, you will yearn for much more detail than can be covered in one article, but at a minimum you will hopefully find that this article does an ample job of summarizing the overall framework of software architecture for information systems, although omitting control systems and hybrids.
Architectures play an important role with respect to every aspect of software system development. Furthermore, the overall maturity of any individual architecture can be assessed using methods similar to the Carnegie Mellon Software Engineering Institute maturity levels for process maturity. However, before discussing the impact of maturity level of any given architecture, which we will save for later articles, the value of minimally developing the first level architecture for each discipline cannot be overstated. Think of it like the process of producing an award winning wine. The number of disciplines and factors that contribute to a fine wine are great and complex, and although occasionally a great one is produced, it only happens with regularity if several disciplines have been well mastered, the tools and technology advanced, the process well managed, and the initial conditions appropriate. For both wine and software, it is the “system architecture” that encompasses the primary subordinate architectures; and although these architectures may be developed in parallel or in any sequence, they may be developed into their natural sequence. Most architectures among “information systems” have a well-defined engineering scope; however, there remain a few that are too unspecific to be particularly meaningful and as a result are subject to varying interpretation, such as technical and solution architectures. For this reason, these will be omitted. The architectures that have a specific, or specific enough, engineering scope include: System ArchitectureThe system architecture ties the major components of the business architecture, application architecture and data architecture together into a unified diagram.Figure 1: System Architecture Sample (Simplified Version, mouse over to enlarge) Business Architecture1Those who have had the opportunity to perform or observe businesses of various industries operate prior to computerization understand the front and back office activities, which represent the operational flows of the business architecture.Usually organized within an enterprise architecture department, the primary artifact of the business architecture is a business framework for organizing the many business steps into unambiguous and easy to manage collections of business capabilities, referred to as the business capability model, usually spanning all areas of the business, but it also includes business events, operational flows, steps within those operational flows, manpower, organizational structure of manpower, signature cycles, and the various informational inputs and outputs that support the flow of business data. It should be noted that if we automate portions of the business architecture, it does not remove it from the business architecture. Instead, the business architecture is blended with the business applications and hardware that augmented and or displaced manpower and the organizational structures that previously supported those tasks manually. Automation may improve accuracy, and consistency. ![]() Figure 2: Business Architecture Sample (Simplified Version) Information Architecture2As the saying goes, “You cannot make a silk purse out of a sow’s ear,” and hence, if the information is poorly understood, or of poor quality, nothing good can come of it, no matter how mature your architectural practice may be. As such, information is like the grapes that result from the harvest... if either they are of poor quality or their characteristics are unknown, little else is going to matter.3Information is everything, and cannot be compensated for when it is neither understood nor meaningful. There are various informational inputs and outputs associated within each step of an operational business flow, which are found on forms where information originates and on reports where it is consumed by the business. Whether automated or manual, all information is collected, analyzed, and then developed into a framework that organizes it into unambiguous and manageable collections of information that those fluent in the business can readily relate to, referred to as either the logical information architecture or logical data architecture (level zero).4 Figure 3: Information Architecture Sample (Simplified Version, mouse over to enlarge) Enterprise ArchitectureEnterprise architecture must understand the present and future needs of the business and the technological capabilities that would be necessary to meet those needs so that plans can be developed to help achieve these objectives.5Enterprise architecture requires a broad knowledge of business and technology to ensure that the priorities of the business and stakeholders across the enterprise are addressed by a cost-effective combination of business operations and technology. Enterprise architecture is a natural result of the growth of IT inefficiencies and the disconnect that tends to result as IT grows. The primary role of enterprise architecture is to place renewed emphasis on the challenges faced by the business, which usually consists of costs that spiral upward with a commensurate decrease in responsiveness to business needs. Prominent responsibilities of enterprise architecture usually include application and technology portfolio management, business architecture, information architecture, application architecture, and architecture governance. Enterprise architecture is concerned with mapping business capabilities, applications, technologies and data to one another to improve its ability to compete in the marketplace by eliminating waste and better adapting to change. The artifacts of enterprise architecture include governing principles and a variety of current and future state architectures including frameworks, guidelines, standards, blueprints, and reference architectures that provide architectural guidance across the enterprise. ![]() Figure 4: Information Architecture Sample (Simplified Version) Network ArchitectureNetworks are comprised of backbones, routers, switches, wireless access points, access methods, communication protocols, network server operating systems, monitoring tools and software.The network architecture encompasses the functional organization, configuration and operational principles and procedures that are used to manage the various components that comprise the computer network sometimes in the context of one, but usually multiple systems.6 ![]() Figure 5: Network Topology Sample (Simplified Version) Hardware ArchitectureThe hardware of an information system pertains to physical components, such as data center power supplies; environment control systems; computing platforms, including application servers, database servers, network servers, failover servers, disaster recovery servers; load balancing equipment; networks; their types (e.g., Intranet, Extranet, Internet); topologies (e.g., grid, mesh, star, bus); media types (e.g., fiberoptic, infrared, radio, twisted wire); size (e.g., SAN, LAN, WAN); protocols (e.g., xDSL, TCP/IP, T1, T3); line types (e.g., dedicated, non-dedicated); traffic types (e.g., data, voice, image, video); shared peripherals; and equipment supporting the I/O substructure, including RAID, and database mirroring.Platform ArchitectureThe platform consists of the computing platform instances and the major hardware and software components that comprise the computing platform including its I/O substructure.Platform architecture encompasses the organization, configuration and operational principles and procedures that are used to manage the on-board hardware and software components of the computing platform(s), their interfaces, and major peripherals.7 ![]() Figure 6: Platform Architecture Sample (Simplified Version) Infrastructure ArchitectureThe infrastructure of IT consists of the combination of servers, networks, middleware and software that support the application development process, production applications, and other IT services, such as email, content management, and issue management.Infrastructure architecture encompasses the functional organization, configuration, and operational principles and procedures that are used to manage the inter-related components across the enterprise that comprise the computing infrastructure in the context spanning multiple systems.8 Security ArchitectureAlthough enterprise information security architecture (EISA) is heavily focused on information security, it is a business and regulatory aligned framework to secure data and processes from the perspective of hardware, software, and physical security in a manner that is effective, maintainable, cost effective, and adaptive, encompassing both business operations and their automation support, including IT governance and management.Software ArchitectureThere is no shortage of definitions for software architecture in the industry, which range from the way that an application program is structured, to the big picture of the major software types and brands of software across the complete system, and the relationship that these types and brands have to one another.Those formally trained in software engineering tend to adopt the ‘big picture’ perspective within the context of a system. This definition of software architecture identifies the major types and brands of software, such as the operating systems, database management systems, programming languages, and array of COTS software products. ![]() Figure 7: Software Architecture Sample (Simplified Version) Technology ArchitectureAt its basic level of maturity, technology architecture organizes the technology products employed across the enterprise into useful categories, such as infrastructure, workflow, content management, data, hardware, and applications which are then further organized into smaller groupings that are pertinent for each area of technology.Each category of technology can then be diagrammed to depict the primary capability of the product by other dimensions, such as type of hardware, operating system, or DBMS, which readily illustrate technology overlaps and gaps. Figure 8: Technology Portfolio Sample (Simplified Version, mouse over to enlarge) Data ArchitectureFrom a high-level perspective there are three areas of concerns that are pertinent to data architecture, which include the management of data related disciplines, technologies, and the management of data itself through data architecture.Disciplines include activities such as: standards, governance, metadata management, data integration, modeling, life cycle management, reporting, analytics, data stewardship, compliance, disaster recovery, master data management, and data security. Figure 9: Data Discipline Diagram Sample (Simplified Version, mouse over to enlarge) Technologies include capabilities, such as: data administration, monitoring, archival, backup, recovery, CASE, change control, data communications, data privacy, data quality, connectivity, development, reporting, and business intelligence. Figure 10: Data Technology Portfolio Sample (Simplified Version, mouse over to enlarge) Data architecture includes a logical data architecture, which provides a business map of data across the enterprise, as well as a current and future physical data architecture, which illustrates the physical location and usage of data across the data landscape. Database ArchitectureAt a basic level, database architecture is sometimes considered to be the low-level physical design decisions, such as vertical partitioning or horizontal partitioning, which is also referred to as database sharding.From a big-picture perspective, however, database architectures refer to the overall design architecture of the database as a database product, such as the following:
Application ArchitectureDepending upon the classification of automated system10 (e.g., control system, information system, hybrid system) a variety of application types exist. Focusing solely on information systems, the major types of applications consist of the following:
Application Architecture Design PatternsAlthough each major application type may have one or more architectural patterns, each architectural pattern may draw from a number of design patterns. Among the most common and or useful design patterns to be aware of are:
Note: For additional messaging patterns and sub-patterns, refer to Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions by Gregor Hohpe and Bobby Woolf.12 Although nearly 700 pages, it is well written, organized, and comprehensive for this architectural niche.
Procedural Pattern CombinationsTo develop a fine wine after the harvest, one may blend acidic grapes picked first in one part of the vineyard with sweeter and more developed grapes of the same or a different variety picked later from another part. Likewise, one may blend different architectural patterns, such as SOA and OO to achieve an application with the best overall combination of characteristics.The notion of SOA is to develop “business” functions that will be reusable to subsequent application development efforts. The way to identify what collection of functionality is appropriate to encapsulate is to perform a classical functional decomposition only down to the point just before which the units would no longer be recognizable to business users, which are referred to as business services. The best way to understand OO is to review its origins in control systems, where each object is literally a physical component that you could touch, such as an anemometer or throttle, and software pertaining to that physical component would be organized into packages corresponding to those components. This form of compartmentalization leads to a high degree of reuse, and hence compact applications for control systems that are easy to maintain. When OO made the leap to information systems, the initial challenge was in identifying the “objects” about which to associate and organize software. For an OO approach to be successful, the objects themselves must be stable, and as you might guess, the only artifact that could be a candidate to meet that criterion within an information system is the data, or more specifically, the logical data architecture level zero. ConclusionWhether it is architectures in electronics that facilitate affordable high-definition 3-D flat screen televisions that are now entering the marketplace, architectures in game software that facilitate advanced interactive computerized games that tantalize both children and adults, or architectures in wineries that facilitate more quaffable wines in shorter and shorter timeframes, it is the presence and continual development of architectures that make it possible to achieve greater results with increasing ease and efficiency.When it comes to architectural frameworks, methodologies, or standards, perhaps the most important framework to mention is The Open Group Architectural Framework (TOGAF), which provides neither specific architectures of its own, nor maturity levels, nor architectural guidelines. Instead, TOGAF is a framework intended to assist in the development of specific architectures, maturity levels and guidelines. In contrast, Gartner/Meta represents a rather loose architectural practice; The Zachman Framework is a taxonomy for organizing architectural content into a matrix of what, where, when, why, who and how; FEA is an Enterprise Architecture; DoDAF is an architectural framework designed to bring specific architectures together; and Carnegie Mellon University’s SACAM (Software Architecture Comparison Analysis Method) is an approach for evaluating the strengths and weaknesses of existing architectures. Architectural standards are often developed by a myriad of standards bodies, of which one of the more prominent is the International Organization for Standardization (ISO) involving international standards for business, government and society. As such, there are ISO standards for various computer hardware and software architectures, as well as a standardized series of wine glassware for professional wine tasting13, which are stemmed with elongated tapered bowls, with capacities of 120 (for sherry), 210 (for white), and 300 or 410 millilitres (for red), best with a Grand Cru red Burgundy, which is guaranteed to have an abundance of structure and architecture all of its own. Please feel free to let me know if you enjoyed this article, and don’t hesitate to indicate which articles in the “Architecture Made Easy” series are useful to your organization. In addition, corrections, enhancements, and suggestions are always welcome and are requested. Please note that regarding this topic, there is much more to come. [Architecture Made Easy: Architecture Patterns is the 10th article in the AME Series created by James V. Luisi.] End Notes:
Go to Current Issue | Go to Issue Archive Recent articles by Mary Kotch Recent articles by James Luisi
Mary Kotch - Mary is an Adjunct Professor at Muhlenberg College, teaching information management courses. She has experience in Fortune 100 financial services and pharmaceuticals and is currently an AVP of
Enterprise Information Architecture at MetLife.
James Luisi - Jim has both a business and IT background, with twenty-five years experience in architecture and governance within the financial and defense industries with information on www.sensitivebynature.net. Jim is currently an Enterprise Architect at a major financial conglomerate conglomerate and may be contacted by email at JimLuisi@OptOnline.net.
|