User Tools

Site Tools


pentominos:pentominos

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
pentominos:pentominos [2009/02/11 10:43] devapentominos:pentominos [2009/04/24 14:08] deva
Line 1: Line 1:
-=====Pentominos - Data Collection System ===== +======Pentominos - Data Collection System ====== 
-====Network communication (protocol)==== +=====Overview===== 
-All network communication are done via XML documents.\\ +The Pentominos project consists of several sub-projectsthat all work together to produce full circle of data gatheringdata storage and data retrieval.\\ 
-<del>Every XML document is terminated by the zero character ('\0' in c/c++)\\ +Here is list of the current sub-projects
-Sending the zero character to a process will reset it, and thereby cleaning up all mess made by illegal documents.</del>\\ +  * [[pentominos:Artefact]] - The data storage server. 
-A connection can only be created in client-mode, and will exists as long as the client intends it to.\\ +  [[pentominos:Feed]] - A thin client data gathering application
-A server listen will run in a read loop until the client terminates the connection.\\ +  * [[pentominos:Upload Server]] - Journal writer
-The server must reply to all request with an answer, no matter if the preceding processing went well or not. +  * [[pentominos:Pidiod]] - The uid => patient ID mapper
- +  * [[pentominos:Pidio]] The uid => patient ID mapper client (numpad/rfid).
-====The client==== +
-The client reads its config fileand forks for each config section it encounters.\\ +
-Every fork handles a single apparatus according to the attached config section.\\ +
-The main thread runs infinitely and makes sure to terminate all client forks upon termination.\\ +
-Every client is connected physically to a port on the host computer, and a LUA program runs to determine whether data is ready to be read or not.\\ +
-The LUA programs hereafter sends this data to the server indirectly through number of exposed c methods.\\ +
-Each LUA program must run in an infinite loop, terminating only when the function stop() returns true, and it must not hang waiting on read, but rather have a time-out, and loop again. +
- +
-====Data types==== +
-Problem: An apparatus produces more than one type of data, but stores all measured values in the same data block. +
-How to make a query that will hit this multi-data block?\\ +
-Solutions+
-  * Make client send data one time pr. data type, thus storing it in the db under two different classes. +
-    * //Pros//: +
-      * We don't need to make any changes to the server code+
-    //Cons:// +
-      * The client needs to parse the data (no longer thin). +
-      * The data are stored multiple times in the file system. +
- +
-  * Make validator detects which types of data are contained in the block, adding a list of type tags in the database. +
-    * //Pros:// +
-      * The data are only stored once in the file system. +
-    * //Cons:// +
-      * Needs to query an entry in a list in the db. +
- +
-  * Make the validator insert one entry in the db for each data type, referring to the same data block (file). +
-    * //Pros:// +
-      * The data are only stored once in the file system. +
-      * We don't need to make drastic changes to the server code(or client for that matter). +
-    * //Cons:// +
- +
-====Links==== +
-  * http://xerces.apache.org/xerces-c/ +
- +
-====TODO==== +
-  * {{:check.png}} Make SQL comm functions for the LUA programs (e.g. for the cpr server). +
-  * {{:check.png}} Rewrite server to utilize read loop. +
-  * {{:check.png}} Replace xerces-c with eXpat. +
-  * {{:uncheck.png}} Make SQL comm functions for the LUA programs return all results and not just the first one. +
  
pentominos/pentominos.txt · Last modified: 2010/01/29 08:46 by deva