Install Iris Scan System - johnsonandjohnson/vxnaid GitHub Wiki
The Iris Scan system consists of an application – NServer – which performs biometric template matching and a database which stores the application user details and peoples’ biographic and Iris scan template.
The NServer requires activation of NServer and IrisMatcher licenses.
- The running MySQL 5.7 database server is required.
- The database server must be accessible from the server where the NServer application is going to be installed.
- The database server can be shared with the OpenMRS backend application database server.
Create new database schema and new user with privileges listed in command below. The schema and user are going to be used by the NServer.
GRANT INSERT, DELETE, UPDATE, SELECT, DROP, CREATE
ON <schema>.* TO <db_user>@localhost IDENTIFIED BY '<password>';
Create the user table within the new schema
- Create table
CREATE TABLE usertbl
(
template LONGBLOB NOT NULL,
dbid TINYTEXT NOT NULL,
id INT(11) NOT NULL auto_increment,
PRIMARY KEY (`id`)
)
- Add the biographic fields
ALTER TABLE `<schema>`.`usertbl`
ADD COLUMN `firstname` VARCHAR(50) NULL after `id`,
ADD COLUMN `lastname` VARCHAR(50) NULL after `firstname`,
ADD COLUMN `dateofbirth` VARCHAR(10) NULL after `lastname`,
ADD COLUMN `phone` VARCHAR(15) NULL after `dateofbirth`,
ADD COLUMN `address` VARCHAR(255) NULL after `phone`,
ADD COLUMN `city` VARCHAR(20) NULL after `address`,
ADD COLUMN `postalcode` VARCHAR(10) NULL after `city`,
ADD COLUMN `creator` VARCHAR(50) NULL after `postalcode`,
ADD COLUMN `creationdate` VARCHAR(50) NULL after `creator`,
ADD COLUMN `modifiedby` VARCHAR(50) NULL after `creationdate`,
ADD COLUMN `modificationdate` VARCHAR(50) NULL after `modifiedby`;
- Create Index
CREATE INDEX index_dbid
ON usertbl (Dbid(10));
The following steps describe how to obtain, configure and start the NServer application on a destination server. The destination server must run any 64-bit Linux distribution.
-
Download the Neurotechnology licensed SDK and upload to the server where you want to install Iris NServer.
-
Extract the SDK ZIP file “Neurotec_Biometric_10_0_SDK_2018-01-23.zip” in the server.
- Suggested extraction location: /opt/Neurotec_Biometric
-
Internet License Setup
- Upload the NServer and IrisMatcher licenses to the server, save them in a known and safe path.
- Example location: /opt/Neurotec_Biometric/Licenses
- Create or modify pgd.conf file with NServer configuration. The mode has to be set to server . All license files have to be configured in the file.
- Example file content:
Mode = server
LicenseFile = /opt/Neurotec_Biometric/Licenses/MyCompany_IrisMatcher.lic
LicenseFile = /opt/Neurotec_Biometric/Licenses/NServer.lic
- Example file content:
- Activate the NServer licenses by executing activation shell script file with start argument:
- Note that the following script will access pserver.neurotechnology.com host using both TCP and UDP protocols on port 80. This must be possible. If needed, configure any firewall accordingly.
- Neurotec_Biometric_10_0_SDK/Bin/Linux_x86_64/Activation/run_pgd.sh start
- Configure environment variables in the host system for the NServer. NServer uses native libraries for their APIs to work. Set the library path, host name and ports as showed below. The default admin port is “24932” and the default client port is “25452”. You can use any port, but it must be ensured that they are open for the OpenMRS backend system.
- We advise to modify /etc/profile file and add the variables at the end.
- Example file content:
export
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/Neurotec_Biometric_10_0_SDK/Lib/Linux_x86_64
export NSERVER_ADMIN_PORT=24932
export NSERVER_CLIENT_PORT=25452
export NSERVER_HOST_URL=myHost
- We advise to modify /etc/profile file and add the variables at the end.
- Configure database connection between NServer and its database. Use the Nserver.ODBC_Sample.conf file to create Nserver.conf file, both files should be in Neurotec_Biometric_10_0_SDK/Bin/Linux_x86_64/NServer.
-
The Nserver.ODBC_Sample.conf file snippet with explanation:
# Address and port for client connections which NServer will bind on its host machine addressServer.ClientListenAddr = 0.0.0.0 portServer.ClientListenPort = 8080 # Address and port for admin connections which NServer will bind on its host machine addressServer.AdminListenAddr = 0.0.0.0 portServer.Admi nListenPort = 8443 # Log file nameServer.LogFileName = NServer.log # Logging method # 0-none, 1-stdout, 2-stderr, 4-syslog, 8-file, 16-remote loggerServer.DefaultLogMethod = 8 # SQL driver name Server.SqlDriverName = ODBC # MySQL data source Server.SqDataSourceName = DSN=<schema_name>;CharSet=utf8;BIG_PACKETS=8; # SQL data query, data will be splitted to all nodes Server.SqlQueryPattern = select dbid,template,firstName,lastName,dateOfBirth,phone,address,city,postalCode,creator,creationDate,modifiedBy,modificationDate from usertbl # Data update query, data will be updated for all nodes Server.SqlUpdateQueryPattern = select dbid,template,firstName,lastName,dateOfBirth,phone,address,city, postalCode,creator,creationDate,modifiedBy,modificationDate from usertbl where dbid = ? # Insert query pattern Server.SqlInsertQueryPattern = insert into usertbl (dbid,template,firstName,lastName,dateOfBirth,phone,address,city,postalCode,creator,creationDate,modifiedBy,modificationDate) values (@dbid@,@template@,@firstName@,@lastName@,@dateOfBirth@,@phone@,@address@,@city@,@postalCode@,@creator@,@creationDate@,@modifiedBy@,@modificationDate@) # Query delete template Server.SqlDeleteQueryPattern = delete from usertbl where dbid = ? # Data query column name for splitting data to nodes Server.SqlUidColumnName = dbid # Data query column name for extracted fingerprint data Server.SqlTemplateColumnName = template # Biographic data schema Server.BiographicDataSchema = (firstName string, lastName string, dateOfBirth string, phone string, address string, city string, postalCode string, creator string, creationDate string ,modifiedBy string ,modificationDate string) # Maximum running task count Server.MaxTaskCount = 1000 # Additional licensing components that are needed for extraction related operations. If specified more than one, components should be separated by semicolon (for ex. Biometrics.VoiceSegmentation,Biometrics.VoiceExtraction) #Licensing.AdditionalComponents =
-
- Start the NServer in the background using the following shell script: Neurotec_Biometric_10_0_SDK/Bin/Linux_x86_64/NServer/run_Nserver.ODBC.sh &
- Verify the startup by checking the log file: Neurotec_Biometric_10_0_SDK/Bin/Linux_x86_64/NServer/NServer.log
- Upload the NServer and IrisMatcher licenses to the server, save them in a known and safe path.