0

I’m building something like an archiving system, which will be used to annotate and catalog already scanned documents. It is a Client/Server system, with multiple clients.

The main workflow will be something like this:

The client will send the file to the server coupled with annotations. The server should save the file on it’s file system and the annotations along with the file path on a SQL Server database.

When the client requests a record of a certain file, the server should serve that file along with the saved annotations back to the client. In addition, there will be some Search/Editing operations as well.

It’s the first time I handle something like this and I am having a hard time designing it! The options I have so far are:

1- Connect the client directly to SQL Server for the data and use Sockets to transfer files between the client and the server (I mean the actual Server Machine) directly.

2- Use WCF, for both data and file transfer.

3- Build my own custom Middleware (Server Application) that will handle passing data back and forth between the client and SQL Server and handle file transfer as well. Honestly, I’d rather avoid this option, as I don’t have much time to implement it.

What would be the best design for a solution like that?

omsharp
  • 300
  • 1
  • 13

1 Answers1

0

What kind of volume are you talking about. If the file and the metadata need to be tightly associated, you might want to think about putting the files directly in SQLServer in BLOB fields.

This has a downside, in that the storage costs in a database is significantly higher than for a file system. But it would allow you much more flexibility in building your system.

Rob Conklin
  • 8,806
  • 1
  • 19
  • 23