Progress
Prototype architecture for new CIMAClient project
1. Main Frame
2. Requirements
Get data from CIMA instruments/CIMA web services, and show them on an Ajax-based browser. The main difference between this project and the Atom Feed for IUMSC is as follows:
(1) In “Atom Feed” project, the users can browse the data they requested at anytime at anywhere as long as they have a standard Atom Feed Reader and the URL for the feed(s), and CIMAClientPlatform acts as an adaptor. Since we cannot set the frequency of incoming data in almost all Atom Feed reader at browser (as far as I know), the main frame is called “push model”. So it is not a real-time monitor, and there might have some data missed;
(2) In this project, the users need to monitor near real-time data, so they need to send http requests at some rate to get data instead of getting date passively. So the main frame is called "pull model". Additionally, Ajex can make user interface more friendly and fancy.
3. Work Flow
(1) Startup CIMAClientPlatform to send register requests for all variables/sensors to CIMA web service no matter if the users need them or not;
(2) CIMA web service will send stream data() back including all the registered data;
(3) Users send Http requests to Web service interface at anytime. A http request includes session ID, sensor data and how many data the user-side wants to get(the most recent one or all);
(4) Web service interface sends the data back to the browser.
4. Problems
(1) It is supposed to be used by multiple users, so is there any limitation for the number of users because we cannot assume the data column is small enough for server to process ( The user might request some ccd image and the transfer rate is in the range of 4K to 8M/sec);
(2) The problem in garbage collection in Javascript;
(3) Data format:
The format of return data should be XML or JSON or both. Ajax-based client application can accept JSON much easier than XML.
Discussion
In “Problems” section
No comments:
Post a Comment