|Hello coding community,
I have had a request from one of my clients to build a (VB 2005 per client) application for a particular in house task. Before I start coding, I would like to here some feedback comments to see that I ‘m approaching this project in the correct way.
The client has multiple fixed scanning devices, reading carton barcodes (unique) on particular production lines. The scanning devices output the barcode data via TCP communications at a rate of approximately one barcode a second /per scanning device.
The requirement at stage one, is that the barcode data scanned will be sent to an in house server box, de-coded and written to a SQL table.
My Project Scope Ideas:
1. Based on the scanning devices are communicating via TCP, I should be looking at socket Client/Server application to receive the scanned barcode data.
2. To guarantee that data from all the devices will be sent to my application, should I make the scanning devices connect as a socket client?
3. The scanning devices only have a limited onboard buffer to hold the scanned barcodes. This in mind, I think that I should break the task into two different applications. One application handles the communications and data received. The second application does the barcode de-coding and writing the data to an SQL table.
4. Because of the limited onboard buffer issue, the applications need to be independent of user logins. Therefore, I think maybe making the applications into windows services would make more sense.
Overview of My Ideas:
The “DeviceCommunications” windows service would listen for scanning device connections on a particular TCP port. On receiving any data from a device connection, the service would write the data to disk (I/O file). Writing the data to a disk file, achieves two things, one the data from all devices as stored in a single file object and secondly it makes the process independent of de-coding the barcode and making database connections to write the data to an SQL table.
The “DataImport” windows service would run at periodical times and check to see if barcode data has been written too the file object. If so, then it would check if a database connection possible, then de-code each barcode and write the de-coded data to the SQL table.
Because a service should not interact with the desktop, a third windows application would be required to allow for configuration of the services and maybe some monitoring the services actions.
Sorry this is a bit long winded, I was trying to you some detail info to work with. Please feel free to make any comments you like. I have an open mind on this project, just want to achieve a good result.