This application is a socket communication tool that will be used to send and receive data from a socket provided by a partner company. Data received will need to be validated and then written to an XML file. Data to be sent will be an acknowledgement in a basic, fixed format that the data has been successfully received.
The data to be received is fairly small in size and once the data has been validated, it will need to be parsed into fields and written to an XML file. We can control the schema of the XML but it will need to be verified by us prior to acceptance. Data streams are small in size and arrive one record at a time (no batches or grouping will be required). Each record will consist of no more than 20 fields of various types.
Application must include two parts. The first is a "socket listening" device that will enable the user to configure the socket connection and then establish the connection and listen to receive inbound data. Each socket event will be logged. Once data has been successfully received and parsed, it is written to an individual xml file. Each record received will be its own xml file. This application should be similar to a service and provide visual interfaces to enable the user to see current status.
The second part of the application is a "socket send" device. This application is also like a service but it will be used to send data out. It will enable the user to configure the socket connection and then establish the connection. Once established, it will "poll" a local folder on the hard drive to look for new XML files. Whenever it finds a file in that folder, it will open it, validate it and send the record out across the socket.
These two components may be one or separate applications. However, if together, we must be able to launch two instances on the same machine at the same time.
The attached document has the specific requirements needed for this communication application. There are two systems described in this document: the System and Sub-System. The Sub-system refers to the application we are building (System is our partner company). We will be receiving communication from the System which is our trading partner.
The developer should have a good understanding of sockets and how they work. We would prefer VB.NET for this application, but are open to C# if necessary. The application will run on Windows Server 2000 or 2003.
The output from the application will be an XML file that contains the BC data referenced in the spec, and it should be placed in a specified folder. This is the data we need for processing in another phase. In addition, logging of communication is needed. All socket events will need to be logged to a database (such as socket open, socket listened, received data, socket closed, communication failed, ....). Each of these logged events will need a date and time stamp. This data can then be used in another phase to show communication history and errors.
Testing on this application will need to be done during the first week of February so the development time is short. This date is required by our trading partner, and is not likely to change.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
Communication will be with another server and must communicate exactly as indicated in the specification to be compatible with our trading partner.
2) Deliverables must be in ready-to-run condition, as follows: For server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
4) Full indemnity must be provided to us for all components used in the application to be sure all components are legally licensed and fully distributable.
Windows Server 2000 and 2003