|
» Forgot Password? About
» What is hipergate» Functional Modules » Benefits » Architecture Demo
» Screenshots» Demo Documentation
» Install» Manuals » API Reference » Case Studies Support
» Forums» Development Weblog » SourceForge Tracker » Commercial Support Downloads
» License» Downloads Partners
» Become a Partner» Find a Partner Private Area» Authors |
Architecture
Design Requirements and Prioritieshipergate was designed from the very onset as a suite geared towards providing high quality service to the most demanding clients. A series of requirements and priorities were set that the product had to strictly comply with. Ergonomics and UsabilityThe first priority is that the product had to provide excellent user experience. This is achieved via:
Functional ReachThe suite has been designed to cover 80% of the typical requirements of each functional module. Our mission is to concentrate on the horizontal expansion of the product rather than developing a few very highly specialized and complex applications. Our philosophy is to provide small and medium-size companies with practically all the functionality they require in each department and to provide a solid base to large companies so that they can later add on proprietary extensions. StabilityOur suite is intended for availability 24 hours a day, 7 days a week. Each module has been thoroughly tested in several code walkthroughs, black box testing, and stress testing in critical conditions. ScalabilityDuring the entire development cycle, performance has never played a secondary role in relation to transportability and expansion of product functionality. The code is optimized to take advantage of specific functionality of each of the databases and platforms it runs on. One part of the process logic uses procedures stored in PL/SQL, PL/pgSQL or Transact-SQL, which has been rewritten to take full advantage of the most advanced options available in each RDBSM. Java code is available in 3 run modes: 100% Pure Java, Unix, Win32 and, depending on your setup, atomic calls to each of the operating systems to obtain optimum performance. The application has three layers: web server, application server and database server. The design emphasizes on its capacity of creating farms and distributing the load over several servers. To reduce memory consumption and enhance the service capacity of each web server, the application runs without the sessions and statuses maintained on the server side. The suite includes a sophisticated, cache-distributed, proprietary system, whose mission it is to maintain local information on the web servers and reduce the overloading of database nodes. Fault ToleranceYou can set up the system to cluster run on both the database and web servers. MaintainabilityThe coding has been designed to enhance easy maintainability and expansion by programmer without an advanced knowledge of the system. The object model, which isolates the physical database from the business logic, provides a natural framework for adding on extensions with a very short learning curve. Many of the routine coding tasks: form generation, lookup tables, data validation, date management, etc. are already resolved in a standardized fashion in reusable components. Separating client-specific datahipergate shares information of several clients in the same database to prevent databases from growing unmanageably. Nonetheless, as a pre-requisite for providing ASP services, you must be able to retrieve clean client-specific information from the shared database at any time in order to make a backup copy for the client or for installing a dedicated instance of the database. Cost EffectivenessThe application can run 100% on open source software to completely avoid license fees. Another factor is the rational use of the CPU and disk, which are considered scarce resources. Standard TechnologyOnly the most market-standard technology and components are used. In addition, we advocate exclusive use of platforms only when explicit consent of it is given from the large enterprises in the sector. SimplicityIn spite of its wide technical and functional reach, the suite has been designed and coded for ease of use. Languages, Components and PlatformsJava and TomcatAll hipergate modules have been written in 100% Pure Java. This software can run on any version of the virtual machine from 1.3 to 1.5 hipergate as been tested on Tomcat 3.1.1a with Java 1.3, Tomcat 4.1.27 with Java 1.4 and Tomcat 5.5 with Java 1.5. The web server workstation must be Linux, BSD, Solaris, AIX or Windows 2000. Components Used under Open Source Licenses
Components Used under Sun Microsystems, Inc. License
Other Components
Supported Relational Database Management Systems
Internal StructureMultilayer Designhipergate code is made up of 5 layers:
This division is intended to enhance scalability and extensibility of the application to:
State less Servershipergate does not use sessions or statuses maintained in the servers. This measure ensures a reduced use of memory and enhances the scalability of the web server. All information is maintained in session cookies stored on the client workstation. These cookies contain a minimum of information:
Since there are no sessions, there is no current session ID. Status information is transferred from one page to the next via GET or HTTP POST methods. CachesThe system uses a distributed cache to locally store database information on the web server. This reduces the network traffic and load on the database. Cache drivers ensure data consistency is maintained on sites with multiple web servers running concurrently on the same database. Differentiating Departmental and Client DataMany applications running in ASP mode do so by automatically duplicating data models for each of the client company running. The advantage is that it allows you to easily differentiate the data of each particular client. The disadvantage, nonetheless, is it leads to a proliferation of cloned databases that eventually becomes unmanageable after a certain number has been reached. hipergate has chosen to follow a hybrid approach to tackle the challenge of differentiating data: one database can contain information on multiple client entities without any overlapping. Going one step further, the data and permission division can go down to the departmental level, thus enabling people in a specific group to have access to a set of data and applications that is different to that of another department. Nonetheless, to maintain the separation of data based on client, the administrative tools contain subroutines that cut off and isolate certain client-specific information in the database as exclusive, even if this same information was previously stored in a shared database. DomainsConceptually, the hipergate domain is the highest unit level you can use for differentiating data. Typically, it represents a complete client entity, although it is sometimes used as a container for individual users that are not associated to any specific entity (for example, consultants who purchase a user account). The main use of domains is to set the permission criteria for each administrator. That way, the administrator of one client entity may create new users or activate and deactivate certain applications within their domain, but he cannot view or modify the data of other client entities in different domains. Work AreasEach domain can contain one or more work areas. Work areas function as isolated information repositories. Work areas usually represent functional departments within the client entity. In any given moment, a user only view information of the work area to which he has been assigned a specific role. For example, a salesman could be a user in the sales department and, at the same time, he could also be a guest in the technical support area. This salesperson could create new client records or generate business opportunities in the sales work area, but because of his privilege level in the support work area, he would only be able to see open incidents pending resolution and would not be able to modify any of them. Security Modelhipergate provides a session-level, security model based on roles. This model handles the following concepts:
![]() Graphical Illustration of the Security Model
|
| Problems with this page?, email webmaster@hipergate.org |
| index.cgi | hipergate © 2003-2006 KnowGate. All rights reserved [Legal] [Contact] [Valid HTML 4.01] [Valid CSS!] | index.cgi |