Global Entity Management System (GEMS) is a web-based multi-tiered application. A multi-tiered application is an application whose functionality can be segmented into a number of logical tiers: presentation services, business services, and data services. This architecture combines client and server-side technologies to provide robust, distributed applications, offering ease of scalability and a higher level of security.
The GEMS application consists of a number of different tiers or layers, as shown in the diagram below:
Users access the GEMS system across a LAN, WAN or the internet via a web browser. The browser communicates with the web server over any TCP/IP network using a lightweight protocol called HTTP that is the standard for the World Wide Web. The client sends HTTP Requests to the web server (IIS) and the web server responds by processing the request and sending an HTML-based page back to the user.
The TCP/IP network can be a totally secure internal company network, a Virtual Private Network or a public network such as the Internet. Clients, who wish to use the Internet to connect to their GEMS application, but wish to maintain a secure connection, can use security features such as Secure Sockets Layer (SSL), which encrypts all data that passes between the client and the web server.
The presentation layer runs on Windows 2003 server running Microsoft's Internet Information Server (IIS) web server. The GEMS application contains a number of different types of files/pages, HTML, ASP, XSL, ASPX and ASMX Web Services.
- HTML pages contain static text and images that are not data-driven. For example, the static content of all GEMS Help pages is stored in HTML files.
- ASP (Active Server Pages) and ASPX (Dot Net Active Server Pages) contain server-side scripting code that is executed on the Web Server before any HTML is returned to the client browser.
- XSL (Extensible Style sheet Language) pages are a transformation language enabling the display of XML (Extensible Mark-up Language) as HTML.
- ASMX Web Services provide simple interfaces for applications external to GEMS, for example SAP, to interface with the GEMS application, be it to push data to or pull data from GEMS.
IIS executes the ASP and ASPX pages and from these the application loads and runs components on the business layer which applies the business logic of GEMS. For screens that are not static we refer to these as data-driven or dynamic screens and these dynamic screens are built by the Business Rules User Interface components (UI Engine) in the Business Rules server and passed to the web server as HTML or XML. Those passed as XML are then transformed by XSL into HTML on the client browser in the presentation layer.
Any data requested or submitted by the user passes through the Business Logic Layer, which uses the Business Rules components to apply any business rules. The Business Logic components in turn use the Data Services components to handle all data access from the GEMS database.
The business layer runs on Windows 2003 server. The GEMS Business Logic Layer is its primary means of enforcing the application's business rules and communicating with the database. The code that runs on the Business Rules server consists of numerous Visual Basic 6 COM components and Dot Net Assemblies that contain all of the data extraction, validation, and updating logic for the GEMS application. There are 3 types of components in the business rules server:
- User Interface components.
- Business Logic components.
- Data Access components.
All of the GEMS Visual Basic 6 DLLs run under COM+ Services for Microsoft Windows 2003 Server. COM+ is a run-time deployment platform for component-based applications that provides a middle-tier infrastructure for these applications to run on. It provides transaction processing and scalability features which, in the absence of COM+, would have to be designed and coded for each individual application. COM+ allows the code contained in the GEMS components to focus on addressing the GEMS business application, without all of the overhead of the systems-level "plumbing" code needed to make middle-tier services perform and scale well.
The VB.Net and CSharp.Net (C#) assemblies run under the Microsoft .Net Framework v2.0. The Microsoft .Net Framework provides a large body of pre-coded solutions to common program requirements, and also manages the execution of programs written specifically for the framework.
User Interface Components
The User Interface components build the User Interface and handle communications between the Web Server and the Business Rules Server. There are two separate UI component types, the UI Engine and the Search Engine.
The UI Engine receives requests for data pages from the presentation layer. By data pages we mean FORM type pages used for Adding, editing and viewing data. If this is the first time the page has been requested, the page structure is requested from the database and, using a generic XML style-sheet, creates a file that is specific to the page/screen and is based on language and jurisdiction. This file is then cached. The cached file is then transformed against the XML data the user wishes to add/edit/view and a HTML page is created, which is then passed back to the presentation layer. If this is not the first time the page has been requested, then the UI Engine does not have to access the database, but rather just requests the cached file.
The Search Engine receives requests for search results from the presentation layer. They pass these off to the data layer which retrieves the data. The search components then pass the data back to the presentation layer as XML.
Business Logic Components
The Business Logic components encapsulate the business rules of the GEMS application. Most components in this layer have a standard set of methods with common interfaces for getting, updating, validating and deleting data. Data is sent to and received from the Data Access components as XML.
Data Access Components
The Data Access components (Data Services) are responsible for communicating with the database and provide independence from different Data Management Access Systems. They communicate with the database via OLEDB providers. Inside the components, the code relies upon Microsoft‟s ActiveX Data Objects (ADO). ADO is an efficient and extremely fast way for application components to access relational databases.
The Data Layer consists of data residing in different kinds of stores. The Microsoft SQL Server 2005 relational database management system provides GEMS data services. SQL Server 2005 provides a high-performance, highly-scalable engine, for relational database data management and query processing. The GEMS application can have a number of separate client databases linked to it.
The GEMS Databases contain a suite of Stored Procedures, Functions and Views that are called from the Business Layer data access components for all data manipulation.