Technologies: .net WebServices | iGoogle Gadget | DOTNETNUKE | OCR | Windows Apps
In most organizations there are quite literally millions of documents sitting in filing cabinets and boxes around their various facilities. At my current employer we are certainly no exception to this rule. Each department has countless pages of material - some of which it is essential we retain. There are quite a few document imaging systems on the market so why you ask did we invest time and energy in developing a system of our own?
I am by no means a fan of reinventing the wheel, but I am a huge fan of the solution fitting the needs of the organization. In our environment we were supporting a mixture of systems (mostly windows based) - many of which we could envision having hook points for imaging applications - so a system with a flexible API and a selection of interface models was critical. Additional concerns were limiting the labor involved to properly index the documents and utilizing a single point of authentication and provision for every user accessing our suite of applications. Pairing the above considerations with a tight budget constraint yielded us with a home brew as our preferred model.
When we began to design this solution we started with the end goal in mind. The end goal was a suite of applications for image acquisition and delivery that could be quickly enhanced and modified to meet changing business needs. This suite of applications would be web based as well as traditional Windows delivery models. For the API we chose to implement a .net WebService through which we would route all process traffic. The web based API allowed us to quickly and uniformly manipulate functionality in a way that provided for a single point of code management and security control.
The interfaces we built on top of this web based API were:
- Web Based Indexing Application
- Web Based iGoogle Gadget
- OCR & Bar Code Agents for Auto-Indexing
- Web Based Suggestion Service for Index Relationships @ Foreign Sources
- Windows Agents for Acquisition - These agents managed responsibilities such as auto-rotation, binarization, format conversion, page splitting, workflow, etc.
- Windows Based Search Interfaces
- Windows Print Driver for Easy Acquisition
A web base suggestion service manages the relationship between primary and secondary index values. The design and presence of this service typically means that from one key piece of information all related information can be retrieved auto-magically. The end result of this functionality is a significant reduction in indexing time as well as an increase in related index accuracy.
In the data model design we emphasized speed of query and limitation of database inflation. Our goal was to reduce, as much as possible, redundant information that would contribute to latency in query once the data stores began to see significant growth. The end result was a fast, flexible system with multiple mechanisms of acquisition and image delivery that requires limited management and manual indexing due to OCR and bar code functionality.
This project has been one of the most enjoyable and rewarding in my career for several reasons. First, the project at times provided a very real challenge to us technically. There were times where I was certainly outside my comfort zone in regards to capacity, but in the end I experienced tremendous growth as a devloper because of this. Secondly, there are obvious returns on the investment inside and outside of the organization. The system presently houses over 1 million security controlled pages of internal and external partner documents that are daily served to organizations around the country. A user of this system can retrieve a document in seconds that prior to the existence of this imaging solution may not have even been possible to locate.
This project is always evolving and changing to meet the needs of our business partners and business units within our organization. It is very much "functional" and in operation on a daily basis. Check out the screenshots by clicking on the camera at the top of this page. If you have any questions feel free to contact me.