Technical Architecture of uKnowva Platform

The general high level technical architecture is as shown below:

User Interface Layer:

uKnowva  is totally responsive and can be accessed from any device that can send  an HTTP request and understand an HTTP response. You can easily run  uKnowva under a web browser on your desktop/laptop computers, and can  also access it through a mobile application on your tablet/smart phone.  Currently, the uKnowva mobile app is available only for Android-based  mobiles on the Google Play Store.

Authentication Layer:

uKnowva  is completely login protected and can be accessed only after  authentication. It has an in-built authentication mechanism where it  stores the username and passwords (in encrypted format) in a database.  Users are authenticated using this database.

uKnowva  also supports external authentication mechanisms through which  authentication can happen from a third-party application or web service  and then the user is logged in into the application. Some of the  in-built authentication mechanisms are as follows

·LDAP/Active Directory Authentication

·Email Authentication

·Google Authentication


In addition, you can also write your own authentication plugins to facilitate your custom SSO.


Sever Layer:

The  uKnowva Server Layer comprises the complete server-side applications  and utilities required to run the application. The uKnowva application  is built over PHP and MySQL and it can easily run on any server under  Apache/IIS.Check this link to see the minimum required configuration: 

The entire code of uKnowva is in PHP and database is Mysql.

uKnowva server mainly comprises of two main things:

·Application Server

·Database Server

The  application server is responsible for handling all HTTP requests and  executing them and the database server is responsible to storing,  managing and retrieving the data from the MySQL database.

Application  server could be a server which is able to execute PHP scripts and the  database server could be any machine with MySQL installed on it.

You  can have the Application and Database server installed on the same  machine, or you can have a two tiered architecture by separating the  Application and Database servers on two different machines.

You  can also create multiple instances of the Application and Database  server setup and turn your entire setup into a cluster by replicating  and syncing the different instances of your servers.

​To understand more about the core platform architecture, please read this