Products » aMIdSt
The aMIdSt - MIS Software implementation is an unique manifestation of using industry standard technologies, accepted development practices on one hand and a very high degree of customisation based on user inputs on the other hand.
The aMIdSt Software addresses the need for the requirements of the Administration, Accounts, Stores and Purchase sections of the organisation while providing the necessary platform and frameworks for extending and integrating the software to support other functions in the future.
The aMIdSt Software is a web based application using a three tier architecture and developed using industry standard practices. The following are the practices that have been followed and improvised for the software;
The software uses a high performance, featureful and ACID compliant open source database - PostgreSQL as its database engine. PostgreSQL is being used for several high performance computing efforts and companies including Skype, Sun Microsystems, HP, etc. The database engine provides a very rich feature set usually found in high performance proprietory databases such as Oracle.
The following features of the postgres database engine have been made use of in the software:
The programming languages used for the Software are PHP and Python. PHP as a programming language is being used by several large projects including Wikipedia, Sourceforge, Facebook as well as companies including Yahoo, Google amongst others. Python is also being used by companies such as Google, NASA amongst others.
The database and the database manipulation blocks of the software are entirely separated from the business logic/actual functionality implementation of the software. For various aspects which seek very high performance and transactional integrity, the blocks have been built into the database using Procedures and Views.
It is well understood that though the functionality implementation or the business logic is the heart of the software, it is the usability and the rendering of the information which matters for efficient usage and user friendliness.
Hence the design is based on a Model-View-Controller based pattern. According to this pattern, the data and entities are wrapped in a "Model" - a Class in it's most simple form with it's relevant properties.
The "View" refers to the sections of the software in which the forms, reports and other screens are presented to the user. Also called the "Presentation" layer this can be either a HTML page, WAP page or even a RSS feed.
The "Controller" is left to direct the navigation, session management and the access control for the application.
FeaturesSome unique features of this software are
Workflow (WtF)
A workflow engine including a XML dialect - WTFL modelled after the industry standard specifications of Business Process Management (BPM), has been developed. This is a generic engine which can be used to integrate with various parts of the software.
Integrated Communications
Industry standard communications tools including IMAP/SMTP servers for emails, XMPP servers for instant messaging have been integrated with the aMIdSt software, thus making it very convenient for the users use the tools and for the managers to manage/train the users.
ACL
Role based Access Control Mechanism; The ACL mechanism for the software has been developed to provide fine grained authorisation based on the user, role, process and tasks. This is a generic system integrated at the heart of the software (at the Controller layer).
L10N
One of the challenges of modern software engineering is to accommodate the solution to various audience including from different language speakers. This software integrates a method for localisation (L10N) into any other language with minimum effort by again using industry standard practices for the same. The localisation is handled at the presentation layer and hence there are arguably no influence on the other parts of the software. Also, in addition to the presentation being localised to local languages, the database supports UNICODE and hence allowing for even transactions to be conducted in local languages.
Scalability, Load Balancing and High Availability
The utmost challenge in the commissioning and deployment of a web application that too at an enterprise level is ensuring the availability of the software 24x7x365. For aMIdSt the following design considerations hold the software in good stead to enable it to scale upto millions of user requests at any given instant;
Database Replication ability
By ensuring the minimum dependence of the software on external and variable components of the database, it is guarded against failures in data integrity for replicated databases.
PostgreSQL has replication ability provided by a utility called Slony and which works extraneous to the database. Thus minimizing the need for integration into the database and maximising the potential of replicating the databases to geographically distributed locations for redundancy, to any number of servers for either high availability purposes or for backup and archival purposes.
High Availability
The systems are supported by the Linux High Availability framework including providing network based disk replication - Network Raid, controlling redundant power supplies to prevent race conditions amongst backup servers, providing fail-safe routing at the network layer, using round robin DNS setups to distribute load, using network monitoring utilities and solutions to monitor and control redundancy, replication and availability.
The design also provides for extending the software easily to support any number of new modules or functions and reuses most of the supporting structures such as workflow engine, ACL, messaging, etc. The system also extensible to the extent of providing interfaces for integration with third party tools such as Tax report verifiers, banking tools, Business Intelligence tools amongst others.
With the seperated design philosophy (MVC), the developers can easily concentrate on their core area of implementation be it - functionality, presentation or report generation.
The aMIdSt software is a state-of-the-art implementation of modern technology customised to suit user requirements. The software is quite extensible with several features implemented at the heart of the software.