Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,152,991 members, 7,817,919 topics. Date: Saturday, 04 May 2024 at 10:59 PM

Suggestions And Criticisms Of Biometrics App Design - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Suggestions And Criticisms Of Biometrics App Design (860 Views)

Does Android Hardware Support Finger Print Biometrics? / Re: Java And Biometrics / Java And Biometrics (2) (3) (4)

(1) (Reply)

Suggestions And Criticisms Of Biometrics App Design by kadeer: 1:10am On Sep 14, 2013
(If you've got criticisms, please re-read the post before posting.)
(This post isn't about the product we're building / built. In it, I am asking for opinions on the design decisions we took. It is why I stayed away from discussing technology specific details and code.)

Hello,

My team's tasked with building a biometrics (fingerprint) enrolment and verification system for one of our clients. I describe as follows.

- The client has, already deployed, a highly customizable PHP application for managing their records
- We have in the past written code to integrate with their PHP app using the framework's integration points so we are familiar with the set-up / code
- The client's preferred browser is Firefox

The fingerprint system (AFIS [Automated Fingerprint Identification System] from this point on) is to work in the browser. With this, we were faced with 2 options for technology to build upon

- JAVA: Java applets using the JVM in the browser (should work in most browsers)
- .NET: XBAP apps using the .NET framework on the client's PC (works well in IE)

We went with XBAP & IE for the following choices (please note we didn't evaluate this same points in much detail for Java)
- The team is strong in C#, .NET & and the Windows platform
- Strong interoperability between the XBAP host and the browser (JavaScript)
- Fantastic technologies on the .NET platform we used:
- LINQ
- Reactive Extensions
- Generics
- Threading
- Task Parallel Library (TPL)
- and more

When we initially thought out the application, we naively imagined building a web request response cycle where an enrollment or verification (E or V) operation hits an ASPX or MVC controller, does a SELECT on all prints & scans the sent print against all the prints in the database returned in the query. Now please don't do this, like seriously!. There are many reasons this is bad:
- this doesn't scale
- this won't scale
- this can't scale

WHY?
Querying AND loading N large number of prints per request context, performing relatively long compute bound operations per print (even though multi-threaded) is slow, and a huge memory hog.

Before describing what we went with, choosing .NET as meant forcing the clients to switch browsers for reasons mentioned above OR...?

We allow the clients continue to use their preferred browser (Firefox today, could be Chrome or Opera tomorrow) while implementing the solution as an XBAP, constrains us to work in IE only, and use cross browser communication to remotely control the IE instance to capture fingerprint samples and raise events when complete. Now to what we built:

From the browser, we send the fingerprint sample to a custom web server listening on a TCP socket (using websockets). The server accepts fingerprint samples in the request and performs actions like
- authentication,
- authorization,
- routing,
- validation
- presence
- cross browser communication

before passing onto the AFIS app (a separate custom app) to perform
- enrollment,
- verification

Now, this is from where on I mainly ask for suggestions.

The AFIS contains the following components:

- The AFIS connection component is a single threaded, event driven server
- A thread pool where threads that service client requests for fingerprint verification or enrollment operation are pulled from and returned to at the end
- The AFIS search component is multi-threaded
- The AFIS app stores the fingerprint samples in a MySQL (Innodb or Memory storage engine still under consideration) database.

This AFIS app is built to be a single long running process that accepts E or V requests, performs in a single request context for ALL clients. Prior to the arrival of the first request, we query all fingerprint samples into a C# Dictionary that is kept in memory, in proc for the time the AFIS app is running, and all searches are performed against the dictionary. Some pre-processing is done on the database records while being transferred into the Dictionary to significantly speed up comparisons against samples in the request.

The Dictionary is kept in sync with the database using a combination of triggers, events and method calls using a read write lock while the Dictionary is being updated with state changes from the database.

Asking for suggestions, and implications further down about what you've read will be appreciated. Thanks.
Re: Suggestions And Criticisms Of Biometrics App Design by fr3do(m): 3:52am On Sep 14, 2013
*tiptoes out of thread*
Re: Suggestions And Criticisms Of Biometrics App Design by uken73(m): 11:52pm On Sep 16, 2013
@OP, I'm happy to meet another developer who works with biometrics. I'm sorry I don't have a contribution to make to your project. Even though I have a little knowledge in some of the technologies you are using, I don't think I'm in a good possition to be of help.

However, OP have you worked with smart cards? Could you be of help here? https://www.nairaland.com/1442059/needed-biometric-smart-card-reader#18170462. The thread has a summary of a challenge I'm facing with implementing a Biometric/Smart Card based Identification System.
Sample AET62 VB.NET application code is crashing.

(1) (Reply)

Why Every Programmer Should Learn C Or C++ / Android Development / We Pride Ourselves In Being A Company That Develop Premium Web And Mobile

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 20
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.