GEMS is a service oriented architecture application providing corporate governance and entity management functionality. The GEMS application is segmented into a number of logical tiers: presentation services, business services, and data services. GEMS enables users to customise the appearance and data representation to best meet their individual needs and combines the latest client and server-side technologies to provide a robust, distributed application, offering ease of scalability and a higher level of security.
Examples of client technologies used include:
Cutting edge server-side technologies in use include:
- WCF (Windows Communication Foundation) Services
- WWF (Windows Workflow Foundation)
- Microsoft .NET Framework 4
As new client and server technologies are available they are analysed on an on-going basis to examine their potential to improve the user experience and architectural robustness of GEMS.
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 range from 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 Secure Sockets Layer (SSL), which encrypts all data that passes between the client and the web server. Other security options available in GEMS include support for SAML 1.1 Single Sign On which incorporates the use of digital signatures in the login process and automatic user session expiration after a configurable timeframe.
The presentation layer runs on Windows 2003\2008 R2 server running Microsoft’s Internet Information Server (IIS) web server. The GEMS application contains a number of different components, as follows:
- HTML pages containing 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), ASP.NET User Controls and ASPX (ASP.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.
- Web Services are used extensively by GEMS including:
IIS executes the ASP and ASPX pages and from these the application loads and runs components on the business layer applying the business logic of GEMS. The communication technologies between the Web and Application layer are WCF Services. Non static screens referred to as data-driven or dynamic, are built by the Business Rules User Interface components (UI Engine) on the Business Rules server and passed to the web server as HTML, XML or ASP.NET User Controls.
Those passed as XML are then transformed by XSL to HTML on the client browser in the presentation layer. ASP.NET User Controls are stored on the WebServer following an initial screen request and cached as required until redundant when they are replaced by updated versions.
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. Transaction based processing is enabled by COM+ technologies.
The business layer runs on Windows 2003/2008 R2 server. The GEMS Business Logic Layer is the primary means of enforcing business rules and communication with the database. All data extraction, validation, and updating logic for the GEMS application occur on the Business Rules server through Visual Basic 6 COM components and C#\VB.NET Assemblies. There are three types of components on the business rules server:
- User Interface components.
- Business Logic components.
- Data Access components.
All of the GEMS Visual Basic 6 DLLs and Dot Net Interop Assemblies run under COM+ Services for Microsoft Windows 2003/2008 R2 Server. COM+ is a run-time deployment platform for componentbased applications providing a middle-tier infrastructure for these applications to run on. COM+ handles many resource management tasks, such as thread allocation and security and also makes GEMS more scalable by providing thread pooling, object pooling, and just-in-time object activation. COM+ also helps protect the integrity of GEMS data by providing transaction support.
The VB.Net and CSharp.Net (C#) assemblies run under the Microsoft .Net Framework v4. The Microsoft .Net Framework provides a large body of pre-coded solutions to common program requirements while managing the execution of programs written specifically for the Framework. It also supports standards based technologies such as Web Services enabling GEMS to be technology independent when integrating with other platforms.
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 dynamically creates the user interface for the presentation layer based on a number of parameters (e.g. the user’s current jurisdiction, language and security permissions). The UI Engine uses Xml/Xslt and ASP.Net User Control technology as appropriate to render the final user interface and is optimised to cache frequently used UI components on the Presentation Tier to improve performance.
The Search Engine receives requests for search results from the presentation layer before passing 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 or the SQL Server .NET Data Provider as appropriate. Inside the components, the code relies upon Microsoft’s ActiveX Data Objects (ADO) and ADO.NET data objects.
The Data Layer consists of data residing in different kinds of stores. The Microsoft SQL Server 2008 R2 relational database management system provides GEMS data services. SQL Server 2008 R2 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 include a suite of Stored Procedures, Functions and Views that are called from the Business Layer data access components for all data manipulation.