SAGE Technical Architecture
Clear Village helps local government agencies provide outstanding service to its citizens and operate more efficiently by providing automation of best practices with collaborative, state of the art software solutions. Clear Village’s metric driven methodology identifies and quantifies efficiency and quality benefits leveraging the leading research in government efficiency. Clear Village utilizes the Software Architecture for Government Efficiency (SAGE) to deliver the automation to realize the targeted benefits.
The SAGE system is an integrated software system that aims at automating all government processes in a unified fashion. It is a large-scale enterprise system designed to provide a standardized business model that will eliminate a significant amount of overhead and complications involved in utilizing government processes. The system is an integration of various small, medium, and large-scale web applications. SAGE is a methodology for analyzing government business processes and it has a robust architecture built on a .Net Framework and prominently uses the functional aspects of Service Oriented Architecture (SOA) for implementing software to support government services.
2 Service Oriented Architecture
The SAGE Architecture consists of a SAGE Database, SAGE Data Access Layer, SAGE Core, SAGE Module Layer and SAGE Application Layer. All data of the system is maintained in a well normalized database. SAGE supports SQL Server and Oracle databases. All the layers can access the database only through the data access layer thus ensuring the security of the data. The core consists of the basic systems that are utilized by all the other systems and the SAGE applications. The Module layer consists of other standard subsystems that provide common functionality to the applications in the application layer. Each module is exposed to the other modules or applications through a web service or a windows service. The application layer consists of many applications that are designed to automate specific business processes. Web Service Interfaces are used for application to application communication thereby accomplishing system interaction and integration.
2.1 Multi-Layered Approach
The SAGE software has a multiple layer approach separating interfaces, business rules, data access layer and data, each capable of containing sub-layers. The User Interface layer consists of aspx documents providing an interface used to display the results of the Business Rules for users. The Business Rules layer (BL) contains the business rules and business data manipulation (the brains of the application). The data layer contains all the data. The user interface or the web service interface is the layer that is exposed to the user or other applications. The business logic is concealed within the Business Logic Layer and is not exposed to the user or other applications. The interfaces can access the data only through the business logic layer. The business logic classes can access the database through the data access layer, thus ensuring the data security.
2.1.1 Data Access Layer
Use of a Data Access Layer (DAL) is a key component of the SAGE application architecture. The DAL architecture encapsulates all application code in a unique set of classes and uses them to perform database transactions. All data access (reading or writing to the database) is transaction based. Layered (or tiered) application designs increase application performance, scalability, flexibility, and code reuse. The objective is to provide data to the business objects without using database specific code. This makes the business object database independent thereby making the application capable of handling transactions across different types of databases such as Oracle, Microsoft SQL Server, etc.
2.1.2 SAGE Core
The SAGE Core consists of two basic systems; the User Management System (UMS) and the Category Code Management System (CCMS). These systems are tightly coupled to each other and are core to all of the sage modules and applications. To maintain a truly transactional system – code dependency is tightly controlled with the sage core systems having dependencies only to the Data Access Layer. The next system layer is the Sage Module Layer which has tightly controlled dependencies only to SAGE core and Data Access Layer.
2.1.3 SAGE Module Layer
SAGE Modules are reusable code modules that are used by the SAGE Applications. These modules manage common tasks that are used by the various SAGE applications such as Workflow (WMS), Notification Control, Document Management, Feedback Management, Letter Management, and Deadline Management. All modules are logical groupings of various related functions that are reused by multiple applications. They provide common functionality for all applications within the enterprise schema thereby eliminating the necessity of providing the same functionality within each integrated application. Modules in the SAGE Module layer are loosely coupled, meaning there will be very minimal interaction (if any) between modules. Modules are tightly coupled to the SAGE Core but with only one way (module to core) dependencies.
2.1.4 SAGE Application Layer
The SAGE application layer is the logic and interface that make up SAGE applications. SAGE Applications are developed to meet the business process automation needs of a particular group such as a section, division, department, or enterprise-wide. Applications are independent systems such as the Agenda Management or Permit Application – that are an end user product. There are no specific direct interactions between applications. They are however tightly coupled to the SAGE Modules and the Core Subsystems. Applications are designed to be able to interact with other applications using application connectors – software that write data from one application to another, while at the same time being able to operate as independent software systems.
2.2 Web Service Interfaces
SAGE Modules and the Core System operate with each other through web service interfaces. Applications using a sub-system should not have to be modified when the sub-system is changed; the changes should be transparent to the applications. Likewise, an application need not know how sub-system functionality is implemented. To accomplish that task one of the key concepts of the SAGE architecture is the use of Application Programming Interfaces (APIs) that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services.
APIs are programmatic interfaces made available for application to application communication allowing organizations to communicate data without intimate knowledge of each other’s IT systems or time-consuming custom coding. An API is not tied to any operating system or programming language because all communication is in XML. The applications programmatically interface to share business logic, data, and processes, across a network. It is a means to expose a sub-system’s functionality across various applications in a unified fashion. An API is the software used to support integration of multiple applications.