Architecture Layers Document
Total Page:16
File Type:pdf, Size:1020Kb
CTMS/CTIS INTEGRATION Contract Routing No. 04 HAA 00063 Architecture Layers Version 1.1 Approved By Robert Wycoff CDOT ITS Office Signature: ___________________________ Date: _______________________________ John Williams CDOT ITS Office Signature: ___________________________ Date: _______________________________ Prepared By: CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 Revision History Date Version Description Author 08-Mar-2004 0.1 First Draft Jason Westra Sachin Saindane 27-Apr-04 0.2 Scheduler and Communications are Jason Westra services, not layers. Added Delegate Layer. 11-May-04 0.3 Added Notifications service and Services Jason Westra Catalog 21-May-04 0.4 Added New Architecture Drawing Sachin Saindane 07-March-05 1.1 Added more depth around layers and Jason Westra guidelines Confidential ©EnRoute Traffic Systems, Inc. Page 2 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 Table of Contents i. Executive Summary 5 1.Introduction 6 1.1 Purpose 6 1.2 Scope 6 1.3 Audience 6 1.4 References 6 2. Logical Architecture Reference Model 7 2.1 Architectural Layers 7 3. Application Layer 9 3.1 Client Layer 10 3.2 Delegate Layer 11 3.3 Messaging Layer 11 3.4 Services Layer 12 4. Application Support Layer 13 5. External Services Layer 14 6. Platform Services Layer 15 7. Tiers 16 7.1 Client Tier 16 7.2 Presentation Tier 16 7.3 Business Tier 16 7.4 Integration Tier 17 7.5 Resource Tier 17 7.6 Achieving Deployment Agility 17 Confidential ©EnRoute Traffic Systems, Inc. Page 3 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 Table of Figures Figure 1: A Four-Layer Organizational Structure For Application Components ..........................................................7 Figure 2: Conceptual Application Layer .......................................................................................................................9 Figure 3: CTMS Application Layer.............................................................................................................................10 Table 1: Application Support Layer ............................................................................................................................13 Table 2: External Services Layer.................................................................................................................................15 Table 3: Platform Services Layer ................................................................................................................................16 Confidential ©EnRoute Traffic Systems, Inc. Page 4 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 Architecture Layers i. Executive Summary This particular document describes the roles and responsibilities of the various layers that are central to the CTMS/CTIS architecture and catalogs the services available to the architecture. Confidential ©EnRoute Traffic Systems, Inc. Page 5 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 1. Introduction This document describes the application architecture of CTMS and the various roles and responsibilities of each layer that contributes to the overall CTMS/CTIS software architecture. 1.1 Purpose The purpose of this document is: • To supplement the technical information provided in the Messaging Architecture Assessment Document. • To capture and convey the significant messaging architectural issues and decisions which have been made during meetings and discussions. 1.2 Scope The scope of this document is the CTMS/CTIS system. 1.3 Audience This document describes the underlying messaging architecture within the core CTMS architecture from various perspectives. Since most sections are technical in nature, the document is focused towards technical managers, technical architects and the software development team. 1.4 References The following references were either used in the creation of this document or may be used to supplement the detailed descriptions of the CTMS/CTIS system: • The CTMS/CTIS Architecture Assessment Document. • The CTMS/CTIS Messaging Architecture Assessment Document. • Design Patterns: Elements of Reusable Object-Oriented Software - Gamma, Helm, Johnson, Vlissides • Core J2EE Patterns: Best Practices and Design Strategies – Alur,Crupi, Malks Confidential ©EnRoute Traffic Systems, Inc. Page 6 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 2. Logical Architecture Reference Model The logical architecture makes it possible to communicate the design of the system with both technical and business audiences. It covers the structure, guidelines, and capabilities of the system without getting mired in the details of the technical implementation of the architecture such as protocols and interfaces. The logical architecture organizes broad definitions into categories and organizes them in such a way as to allow the implementation to be carried out effectively and efficiently. It provides a way to help determine build vs. buy for each category whether at a coarse-grained or granular level. For instance, it can help make decisions like whether or not to implement a whole subsystem with COTS (e.g., an ERP solution) or just a few services in the subsystem with a specific OTS (commercial off the shelf) product. 2.1 Architectural Layers Application services may be organized into layers, each representing a gross classification of the degree to which services in the layer have to do with business or technology. Services in higher layers have more to do with business and are most likely custom built while services in lower layers tend to be more technical and are often purchased rather than built. Figure 1, below, illustrates a four-layer classification scheme with Application, Application Support, External Services and Platform Services layers. The foundation of the application architecture is the Platform Services that represent the raw technology upon which a solution is built. Examples include operating systems, computer and networking hardware, operating systems, network operating systems, interface cards, and communication protocols. Provides the user interface, business logic, and process flow custom-built for the application. Application Layer Example: UI, images, and services Provides common, but custom services to the Application Layer that function as adapters/ wrappers to External Services. Application Support Layer Example: A wrapper around SNMP protocols or a J2CA Connector to a legacy system Provides third-party APIs and components that the application must interface with. External Services Layer Example: DB, Java Mail API, Java Comm APIs Network, operation systems, and hardware. Platform Services Layer Example; Routers, Unix on Solaris, firewalls Figure 1: A Four-Layer Organizational Structure For Application Components The External Services Layer represents purchased or pre-existing software with which your system must integrate. Examples include database management systems, messaging services, application monitoring services, e-mail, and legacy systems. These services are purchased or pre-existing and rely on underlying Platform Services Layer in order to operate. The Application Support Layer sits above the External Services layer. Services in this layer may include application security (e.g., authentication and authorization), object identity and naming, exception and event handling, logging, and transaction management. These services form the common, architectural plumbing of your enterprise infrastructure and are reusable across multiple applications. In addition to the services just mentioned, perhaps one of the most powerful services in this layer is the adapter service that can be used to encapsulate access to external and platform services, insulating Application Layer components from technology changes. Confidential ©EnRoute Traffic Systems, Inc. Page 7 of 17 CTMS/CTIS Version: 1.1 Architecture Layers Date: 08 Mar 2004 To understand how each layer provides insulation for the next, consider this example. Multiple components in the Application Layer require authentication and authorization services. Users and permissions are stored in a relational database. The components requiring security services call a Service Adaptor interface that exposes methods like “login(username, password)”, “logout(user)”, and ‘hasPermission(permission, user)”. Depending on the request, the Service Adaptor might query the relational database using SQL to validate login credentials or to see if the user has the permission specified. As the company grows, an enterprise security provider is chosen and all applications must now conform to. It happens to use an LDAP Directory Server for the storage of users and permissions. The Service Adaptor simply needs to change its implementation to make LDAP directory calls now instead of SQL queries. Applications that used the Service Adaptor did not have to change. Unfortunately, applications in the company that did not use the Service Adaptor have to change each “touch point” in the system to conform to the new LDAP directory APIs. At the top of the architecture stack, the Application Layer represents services unique to a particular system—its presentation, business logic and data storage logic. These are nearly always custom built components because they have to do with a specific business problem. Adherence to layering rules increases the technical agility of a system in that underlying technology can be replaced with minimal, if any, impact on the operation of higher-level services.