1. .NET Framework
Premier ERP is built on Microsoft’s highly successful .NET framework. This provides Premier with all the power, flexibility and simplicity of the .NET framework. Initially released in 2001, and now in version 4.5; the .NET Framework powers millions of applications around the world.
2. Desktop Application Design choice (as opposed to Web Application)
The main application runs as a desktop application. This provides much more power and flexibility in the development of the system as well as to the user of the system. An example of such flexibility to the user can be found in almost any form in Premier. Every grid loads dynamically; loading only the records that the user can see at once, and loading additional records as the user scrolls through the grid. This significantly reduces the loading time of the form.
Such a feature would be very near impossible to achieve on a web based platform.
A desktop based application also allows for distribution of load (memory and processing) between the client and the server; reducing the cost of the hardware needed on the server.
Since most of the users of the system already have relatively modern computers, this significantly reduces the initial cost of implementation.
3. Central Deployment
One of the major advantages web applications have over desktop applications is that web applications are centrally deployed. Generally, with desktop applications, they have to be installed on each computer where the application is to be used. Worse still, they have to be reinstalled on each computer each time there is an update. However, we have been able to find a very efficient way around this problem.
In Premier, the main program code is stored on a central location and accessed from the executable file initially installed on the client computer as though the code was stored locally. Therefore, whenever there is an update, the centrally stored files simply need to be replaced, and all clients will automatically use the updated code.
The initial deployment can also be done centrally via active directory.
Using the strategies outlined above, we are able to achieve both the central deployment architecture of a web application as well as the flexibility and distributed nature of a desktop based client-server application.
Some of the top ERP systems in the world such as Dynamics AX and SAP have successfully adopted this architecture for decades.
4. Distributed Computing
Apart from the distributed computing nature of client-server applications, Premier also has other strategies for load distribution.
Premier comes with an application server which sits between the client and the database server. The application server authenticates and processes all requests from the client before (if necessary) passing it over to the database server.
This provides a several advantages, a few of which are:
a. Multiple application servers can be installed for load balancing
b. All calls to the server can be authenticated and the server can check if the current user has the rights to access the data or resource requested
c. Operations can be sent to the server for later (and/or faster) execution via Premier’s batch processing functionality
5. Web capabilities
Although Premier is mainly a desktop application, it’s architecture lends itself to being extended to both the Web and Mobile devices. An example of such an extension is studentportal.unilag.edu.ng which plugs directly into Premier and shares the same code and data as the Desktop client.
6. Flexible Security Setup
In Premier, security access levels can be assigned by the system administrator. Security can be setup on:
Security levels are assigned to user groups, and one or more user groups can be assigned to a customer.
For each permission created by the administrator, there are 4 possible access levels:
If a permission ‘student’ is created and assigned to the Students table, only users with permission level of Read or above on the ‘student’ permission, will be able to view the
data in the table. Only users with Create/Update permission level will be able to write data to the table. And only users with Delete permission will be able to delete data from the table. Delete is the highest permission level.
In Premier, Table permissions are the most important type of permission. Table permissions are validated both on the client and on the server, making it the most secure and important are to apply strict permissions to. Permissions can also be set on each form, making it possible to hide or show forms based on permission settings. Forms can also be made read-only for users with only Read permission on those forms.
Apart from setting permissions for the entire form, it is possible to set permissions for individual components via permissions (such as buttons or textboxes). When a permission is applied to a component, only users with the Read permission or above will be able to view the component, and only users with the Create/Update permission or above will be able to use/modify the component.
Permissions can also be assigned to Reports and Processes, controlling who can launch them. A permission level of Read is required to run reports and processes. This fine grained control of permissions adds a tremendous amount of flexibility when configuring permissions
Record Level Security
Premier also provides record level security. This provides the added flexibility to display the same table to two different users, filtering out data that the organisation does not want them to have access to.
For instance, it is possible to give each course adviser access to the Students table, allowing each course adviser to view only his/her students.
This added feature will go a long way to streamlining processes as well as protecting your organisation’s data.
7. Database Agnostic Architecture
Premier currently uses MySql as a database backend. However, due to the database agnostic architecture employed, it is a trivial matter to move to another database backend such as Microsoft SQL server.
8. Database Logging
Premier always logs the identity of the user who created each record as well as the date and time at which the record was created. For updates to records, Premier also stores the last user who updated the record as well as the last date and time when the record was updated.
In addition to this, Premier has support for extensive database logging, where it is possible to record every database entry, update or deletion.
9. User Alerts
In Premier, users have the power to setup alerts on any tables they have access to. Alerts can be setup for the system to notify the user when records that meet the user’s criteria are inserted, updated or deleted.
Such a case where this functionality is useful is when a supervisor wants to know when a contract above a certain amount is created. Once he/she has setup the relevant alert, there is no need to periodically search the relevant tables. The system will simply notify the supervisor when such a record is created.
10. Batch Processing
Thanks to Premier’s 3-tier architecture, it is possible to delegate processes the server to be run immediately, or at a later date. This has several advantages, a few of which are:
• This frees up the user’s system to perform other tasks.
• Long running processes may be executed faster if executed directly on the server.
• Processes which are executed periodically can be configured to run periodically without constant input from the user.
Batch jobs can also be configured to alert the user when the batch job is completed.
11. Open Architecture
Since Premier is completely developed using the .NET framework, any .NET developer can extend the application. Also, due to the fact that the main code is stored in a centrally available location, it is easy to develop other applications that leverage on the main application’s codebase.