New technologies at NG Logic

Recently we have completed a number of projects in Python/Django for our US customers. Our Django teams are getting bigger and bigger, and we encourage our prospect customers to use this technology for their websites. Also we have started development of Android project and expect growth in this segment.

2012-01-25 [ ... ]

Database applications

There are several types of database applications that are used depending on the size, amount of users, and other architectural requirements. We will present briefly each of them.

The most simple type is desktop application with database engine built-in. They are quick and cheap to build, easy to deploy and use, have low hardware requirements  (no need for separate server hardware and deployment). The data can be usually shared using network drives. A good example of such applications are MS Access databases, but we are also capable of delivering such software in other technologies (e.g. Python+SQLLite+wxWidgets that can work on many platforms). The downside is limited number of users, poor scalability and upgrading problems (all users must use the same application to access the database file).

A more advanced architecture includes a shared database server like MS SQL Server or PostreSQL running on a separate machine on the network. The users connect to the database to access the data. They may use both desktop (e.g. for data entry) and web applications (e.g. for report presentation) operating on the same database. The database server can handle many clients, supports simultaneous access and conflict handling, all operations are performed in transactions that can be rolled back an error should occur in the process. The server may also enforce rules on the data to ensure its integrity across clients and versions.

The most robust architecture is three-tier one, with separate database server, application servers containing business logic for data processing, and clients, that can be web based applications or desktop applications. Application server connects to the database server and provides all operations on the data enforcing strict logic and rules for that operation. Clients connect to application server and use the interface exposed to operate the functionality. This architecture is the most complex, but is has many advantages, including high level of data integrity, high scalability achieved by adding additional application server instances, and enables to securely and quickly implement changes to the logic by changing application server software. Moreover, both web and desktop front-ends can be used and there is no need to duplicate the business logic functionality.

The architecture should be selected for each system created taking into account many factors, including current and future requirements. We will be happy to provide you with preliminary analysis of your project. You can reach us at


copyright (c) NGLogic 2010