<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-37072521</id><updated>2011-04-21T19:30:58.024-04:00</updated><title type='text'>Yu(Carol) Deng CGL  Report</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>35</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-37072521.post-2708409442393758402</id><published>2008-04-30T10:08:00.000-04:00</published><updated>2008-04-30T10:09:43.907-04:00</updated><title type='text'>Status Report for 04/23/2008 -- 04/30/2008(updating...)</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-2708409442393758402?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/2708409442393758402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=2708409442393758402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2708409442393758402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2708409442393758402'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/04/status-report-for-04232008.html' title='Status Report for 04/23/2008 -- 04/30/2008(updating...)'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-4163820726966290978</id><published>2008-04-30T10:07:00.000-04:00</published><updated>2008-04-30T10:08:42.362-04:00</updated><title type='text'>Status Report for 04/09/2008 -- 04/23/2008(updating...)</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-4163820726966290978?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/4163820726966290978/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=4163820726966290978' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/4163820726966290978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/4163820726966290978'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/04/status-report-for-04092008.html' title='Status Report for 04/09/2008 -- 04/23/2008(updating...)'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-1996047876524011680</id><published>2008-04-30T10:06:00.000-04:00</published><updated>2008-04-30T10:07:40.231-04:00</updated><title type='text'>Status Report for 03/26/2008 -- 04/09/2008(updating...)</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-1996047876524011680?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/1996047876524011680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=1996047876524011680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1996047876524011680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1996047876524011680'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/04/status-report-for-03262008.html' title='Status Report for 03/26/2008 -- 04/09/2008(updating...)'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-479446544279592101</id><published>2008-03-31T15:15:00.000-04:00</published><updated>2008-03-31T15:16:14.986-04:00</updated><title type='text'>Status Report for 03/12/2008 -- 03/26/2008(updating...)</title><content type='html'>&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-479446544279592101?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/479446544279592101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=479446544279592101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/479446544279592101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/479446544279592101'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/03/status-report-for-03122008.html' title='Status Report for 03/12/2008 -- 03/26/2008(updating...)'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-2239567357098986420</id><published>2008-03-25T15:14:00.001-04:00</published><updated>2008-12-08T16:42:12.615-05:00</updated><title type='text'>Status Report for 02/27/2008 -- 03/12/2008</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Implementation of one user registering and monitoring one sensor WITH displaying history data is done.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;User interface&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q-k3oX9iLDY/R-lPcNWoB2I/AAAAAAAAADE/xusjrEpksL8/s1600-h/CSM032508.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_q-k3oX9iLDY/R-lPcNWoB2I/AAAAAAAAADE/xusjrEpksL8/s400/CSM032508.png" alt="" id="BLOGGER_PHOTO_ID_5181760192305956706" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Based on the previous version that allows user to register and monitor any one of IUMSC sensors with displaying only most recent data, the current version can display history data and current data in real time.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The previous version was improved in following aspects:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Server side:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(a) Using &lt;b&gt;&lt;i style=""&gt;ArrayList&lt;/i&gt;&lt;/b&gt; to store parcel data instead of &lt;b&gt;&lt;i style=""&gt;File&lt;/i&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Read parcel (a parcel is in XML format) data into DOM;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Parse the parcel, and get values of &lt;/span&gt;&lt;span style=""&gt;SensorName,TimeStamp      and DoubleData&lt;/span&gt;&lt;span style=""&gt;;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Encapsulate the parcel data to a user-defined &lt;b&gt;&lt;i style=""&gt;Parcel&lt;/i&gt;&lt;/b&gt; class, and write it to      an &lt;b&gt;&lt;i style=""&gt;ArrayList&lt;/i&gt;&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;strong&gt;Note: this implementation is synchronized.&lt;/strong&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(b) Using JSON to represent parcel data instead of XML&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Definition of &lt;b&gt;&lt;i style=""&gt;Parcel&lt;/i&gt;&lt;/b&gt; class:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;public&lt;/span&gt;&lt;span style=""&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; Parcel {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;public&lt;/span&gt;&lt;span style=""&gt; &lt;span style="color:teal;"&gt;String&lt;/span&gt; sensorName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:teal;"&gt;String&lt;/span&gt; timeStamp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:teal;"&gt;String&lt;/span&gt; doubleData;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;int&lt;/span&gt; parcelID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; Parcel(&lt;span style="color:teal;"&gt;String&lt;/span&gt; sensorName, &lt;span style="color:teal;"&gt;String&lt;/span&gt; timeStamp, &lt;span style="color:teal;"&gt;String&lt;/span&gt; doubleData, &lt;span style="color:blue;"&gt;int&lt;/span&gt; parcelID) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.sensorName = sensorName;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.timeStamp = timeStamp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.doubleData = doubleData;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;this&lt;/span&gt;.parcelID = parcelID;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; JSONObject toJSON() &lt;span style="color:blue;"&gt;throws&lt;/span&gt; JSONException {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;JSONObject JObj = &lt;span style="color:blue;"&gt;new&lt;/span&gt; JSONObject();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;JObj.put(&lt;span style="color:maroon;"&gt;"sensorName"&lt;/span&gt;, sensorName);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;JObj.put(&lt;span style="color:maroon;"&gt;"timeStamp"&lt;/span&gt;, timeStamp);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;JObj.put(&lt;span style="color:maroon;"&gt;"doubleData"&lt;/span&gt;, doubleData);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;JObj.put(&lt;span style="color:maroon;"&gt;"parcelID"&lt;/span&gt;, parcelID);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; JObj;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;getparcels.jsp&lt;/span&gt;&lt;span style=""&gt; is responsible for:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Handle HTTP request from the client;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Each parcel data(element in the &lt;b style=""&gt;&lt;i style=""&gt;ArrayList&lt;/i&gt;&lt;/b&gt;) is converted to a JSON      object, &lt;span style=""&gt; &lt;/span&gt;and added to a &lt;b style=""&gt;&lt;i style=""&gt;JSONArray      &lt;/i&gt;&lt;/b&gt;which is used to hold a JavaScript representation all the parcels      we’ll return;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Writes representation to client.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b style=""&gt;&lt;span style=""&gt;Note: &lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt;Choosing &lt;b style=""&gt;JSON&lt;/b&gt; as means of transferring data in our application[4]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Disadvantage of XML:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;We must ensure the XML is sent with the correct header if it is sent      from the server. But if the XML is being generated on the fly by a      server-side programming language, it is easy to miss this requirement,      then &lt;b style=""&gt;&lt;i style=""&gt;responseXML&lt;/i&gt;&lt;/b&gt; property would be empty;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;It often takes quite a few lines of JavaScript just to generate a      small chunk of markup even if the DOM is eminently suited to parsing XML      once it reaches the browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;JSON is designed to store data, and it is lightweight alternative to XML. Anything that can be stored in XML can also be stored in JSON. Both are text-based representations of data, but while XML requires opening and closing tags, JSON just uses colons, commas, and curly braces.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;JSON isn’t a data format that needs to be interpreted by JavaScript: JSON is JavaScript.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Client side&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The client side is responsible for querying the server for parcels and displaying them on a page. We define a &lt;b&gt;&lt;i style=""&gt;ParcelManager&lt;/i&gt;&lt;/b&gt; class object-oriented JavaScript with Prototype to handle the fetching, caching and displaying of the parcels.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;new&lt;/span&gt;&lt;span style=""&gt; Ajax.PeriodicalUpdater({failure:&lt;span style="color:maroon;"&gt;'error'&lt;/span&gt;}, &lt;span style="color:maroon;"&gt;"fetchparcels.jsp?start="&lt;/span&gt; + start + &lt;span style="color:maroon;"&gt;"&amp;amp;pageSize="&lt;/span&gt; + pageSize,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;method: &lt;span style="color:maroon;"&gt;"get"&lt;/span&gt;, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;frequency: monitorRate,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;decay: 2,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;onSuccess: &lt;span style="color:blue;"&gt;function&lt;/span&gt;(response) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;cacheParcelData(response);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;              &lt;/span&gt;drawParcelDIV(start, pageSize, div, &lt;span style="color:blue;"&gt;false&lt;/span&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;on404: &lt;span style="color:blue;"&gt;function&lt;/span&gt;(response) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;alert(&lt;span style="color:maroon;"&gt;'Server Status: 404: '&lt;/span&gt; + response.statusText);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;},&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;onFailure: &lt;span style="color:blue;"&gt;function&lt;/span&gt;(response) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;alert(&lt;span style="color:maroon;"&gt;'Server Status: '&lt;/span&gt; + response.status + &lt;span style="color:maroon;"&gt;' - '&lt;/span&gt; + response.statusText);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;       &lt;/span&gt;}&lt;span style=""&gt;   &lt;/span&gt;&lt;span style=""&gt;                 &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;);&lt;/span&gt;&lt;span style="font-size:8;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The core part of the client side is Prototype &lt;/span&gt;&lt;span style=""&gt;Ajax.PeriodicalUpdater&lt;/span&gt;&lt;span style=""&gt; class which schedules the automatic updates without having to code any scheduling logic or writing timeout handlers.[3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(a) When the client wants to monitor the parcel data, an &lt;/span&gt;&lt;span style=""&gt;Ajax.PeriodicalUpdater &lt;/span&gt;&lt;span style=""&gt;object is created, and &lt;/span&gt;&lt;span style=""&gt;getparcels.jsp&lt;/span&gt;&lt;span style=""&gt; is employed to fetch data on the server side;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(b) &lt;/span&gt;&lt;span style=""&gt;onSuccess&lt;/span&gt;&lt;span style=""&gt; event handler takes resposiblility to cache the parcel data and display them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;cacheParcelData()&lt;/span&gt;&lt;span style=""&gt;function is invoked only after we’ve fetched      parcels from the server. It gets the JSON text we’ve received from the      server and creates a JavaScript array out of it;&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;drawParcelDIV()&lt;/span&gt;&lt;span style=""&gt;function takes the cached parcel data and creates      a list in the &lt;/span&gt;&lt;span style=""&gt;&lt;div&gt;&lt;span style=""&gt; that we specify.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion &amp;amp; Future work&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;1. One user can register and monitor multiple sensors;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The hard part is how to tell which data (parcel) belongs to which registration request when the user is allowed to register the same sensor with different data interval. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;2. The problem with the interface of unregistering a sensor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[1] JSP : the complete reference. Hanna, Phil.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[2] Core servlets and JavaServer pages. Hall, Marty; Brown, Larry&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[3] &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; in practice Crane, Dave.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[4] Bulletproof &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt;,&lt;span style=""&gt;  &lt;/span&gt;Keith, Jeremy&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-2239567357098986420?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/2239567357098986420/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=2239567357098986420' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2239567357098986420'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2239567357098986420'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/03/status-report-for-02272008-03122008.html' title='Status Report for 02/27/2008 -- 03/12/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q-k3oX9iLDY/R-lPcNWoB2I/AAAAAAAAADE/xusjrEpksL8/s72-c/CSM032508.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-1670212145625977831</id><published>2008-02-29T16:06:00.004-05:00</published><updated>2008-12-08T16:42:13.214-05:00</updated><title type='text'>Status Report for 02/13/2008 -- 02/27/2008</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;Implementation of one user registering and monitoring one sensor is done.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;User interface&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/R8xYY9oNyyI/AAAAAAAAAC8/TUuu8AD3_WI/s1600-h/CSM022908.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/R8xYY9oNyyI/AAAAAAAAAC8/TUuu8AD3_WI/s400/CSM022908.png" alt="" id="BLOGGER_PHOTO_ID_5173607257825200930" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Now user can register and monitor any one of&lt;span style=""&gt;  &lt;/span&gt;IUMSC sensors via application “CIMA Sensor Monitor” . &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Choose a sensor name, which is a CIMA service data source name, e.g “Bay1 Temperature”,&lt;span style=""&gt;  &lt;/span&gt;from one of twelve IUMSC sensors;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Type a data interval, which is CIMA service data reporting interval in seconds;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Click button “Register”;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(4) After getting response from server “Successfully registered some sensor”, type a Monitor Rate, which is the frequency in seconds the user wants to send the polling requests to the server, and then click button “Monitor”, the most recent data will be shown on the screen continuously. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Client side[3]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Prototype provides a number of easy ways to make asynchronous requests via &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt;. We are using&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;Ajax.Request&lt;/span&gt;&lt;span style=""&gt; class to register a sensor and &lt;/span&gt;&lt;span style=""&gt;Ajax.PeriodicalUpdater &lt;/span&gt;&lt;span style=""&gt;class to poll a periodical request to get the new real time data.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;new&lt;/span&gt;&lt;span style=""&gt; Ajax.Request(&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style="color:maroon;"&gt;"httpcimagateway.jsp?type="&lt;/span&gt;+encodeURI(type)+&lt;span style="color:maroon;"&gt;"&amp;amp;"&lt;/span&gt;+&lt;span style="color:maroon;"&gt;"source="&lt;/span&gt;+encodeURI(source)+&lt;span style="color:maroon;"&gt;"&amp;amp;"&lt;/span&gt;+&lt;span style="color:maroon;"&gt;"dataInterval="&lt;/span&gt;+encodeURI(dataInterval),&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;        &lt;/span&gt;method:&lt;span style="color:maroon;"&gt;"get"&lt;/span&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;onComplete:&lt;span style="color:blue;"&gt;function&lt;/span&gt;(xhr){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;document.getElementById(&lt;span style="color:maroon;"&gt;'fileUrl'&lt;/span&gt;).value=xhr.responseText;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;onFailure: &lt;span style="color:blue;"&gt;function&lt;/span&gt;(xhr){&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 96pt;"&gt;&lt;span style=""&gt;throw&lt;/span&gt;&lt;span style=""&gt; &lt;span style="color:blue;"&gt;new&lt;/span&gt; Error(&lt;span style="color:maroon;"&gt;'Registration failed: '&lt;/span&gt; + xhr.statusText);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;      &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The asynchronous request itself is triggered by constructing a new instance of &lt;/span&gt;&lt;span style=""&gt;Ajax.Request,&lt;/span&gt;&lt;span style=""&gt; passing two parameters: the URL for the request, and a hash object containing properties that specify the options of the request. The URL specifies a JSP file that we will start CIMA service and register a sensor, and it passed the value of parcel type, CIMA service data source and CIMA service data reporting interval. In the options parameters object, we specify the HTTP method as a GET with the &lt;/span&gt;&lt;span style=""&gt;method&lt;/span&gt;&lt;span style=""&gt; property, and provide function reference for completion and failure handlers with &lt;/span&gt;&lt;span style=""&gt;onComplete &lt;/span&gt;&lt;span style=""&gt;and &lt;/span&gt;&lt;span style=""&gt;onFailure, &lt;/span&gt;&lt;span style=""&gt;respectively.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The completion handler is just to get the URL of the file which stores the data of the registed sensor. The failure handler, which is passed a reference to the XHR instance, throws an error depicting the failure status.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;new&lt;/span&gt;&lt;span style=""&gt; Ajax.PeriodicalUpdater({success: &lt;span style="color:maroon;"&gt;'details'&lt;/span&gt;}, fileUrl,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;    &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;method: &lt;span style="color:maroon;"&gt;'get'&lt;/span&gt;,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;frequency: monitorRate,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;decay: 2,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;onSuccess:&lt;span style="color:blue;"&gt;function&lt;/span&gt;(xhr) {&lt;span style=""&gt;     &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;          &lt;/span&gt;&lt;span style=""&gt;        &lt;/span&gt;eval(xhr.responseText);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 24pt;"&gt;&lt;span style=""&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;This class can satisfy our needs to obtain and display data from the server at periodic intervals. First, we create an instance of&lt;span style=""&gt;  &lt;/span&gt;&lt;/span&gt;&lt;span style=""&gt;Ajax.PeriodicalUpdater&lt;/span&gt;&lt;span style=""&gt; that refers to a new JSP page in the request URL(Note: for simplicity, currently this URL is just a file containing sensor data and this will be improved in next step). Second, &lt;/span&gt;&lt;span style=""&gt;frequency &lt;/span&gt;&lt;span style=""&gt;property in the parameters object controls the number of seconds between updates, and &lt;/span&gt;&lt;span style=""&gt;decay&lt;/span&gt; property controls the rate at which the request interval grows when the response is unchanged.&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Server side&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;httpcimagateway.jsp&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;a. Handle HTTP request from the client;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;b. If the parameter check passes, then do the service in the request, e.g. Register/Unregister/……&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;c. Return the URL of the file which contains the data&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;do_Register&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul style="margin-top: 0in;" type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Set up the embedded axis server and client listener;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Set up the call to the CIMA service;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Invoke the service&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;do_Unregister&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in; text-indent: 0.25in;"&gt;&lt;span style=""&gt;The procedure is similar with&lt;/span&gt;&lt;span style=""&gt; do_Register.&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion &amp;amp; Future work&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;ol start="1" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Change the storage of the data from file to queue;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;One user can register and monitor multiple sensors;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;According to the requirement, users are allowed to &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(a)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;register the different sensors, and/or&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(b)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;register the same sensor with different data interval. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;For one user, all registered sensors’ data will come to the same port, so &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;for (a), we only need to filter different data to different requests based on different sensors’ name, and this can be done easily; But &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;for (b), the current web service just outputs the “pure” data without any extra information to web service client. So the client cannot tell which data (parcel) belongs to which registration request. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol start="3" type="1"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The problem with the interface of unregistering a sensor&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[1] JSP : the complete reference. Hanna, Phil.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[2] Core servlets and JavaServer pages. Hall, Marty; Brown, Larry&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;[3] &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt; in practice Crane, Dave.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-1670212145625977831?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/1670212145625977831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=1670212145625977831' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1670212145625977831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1670212145625977831'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/02/status-report-for-02132008.html' title='Status Report for 02/13/2008 -- 02/27/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_q-k3oX9iLDY/R8xYY9oNyyI/AAAAAAAAAC8/TUuu8AD3_WI/s72-c/CSM022908.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-8803108297181501794</id><published>2008-02-29T16:04:00.001-05:00</published><updated>2008-03-04T15:03:19.316-05:00</updated><title type='text'>Status Report for 01/30/2008 -- 02/13/2008</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Based on my previous post, &lt;span style=""&gt; &lt;/span&gt;I found that invoking/starting a web service by using Axis1.4 API is not type safe, so I turned my work to newly introduced Axis2 for the project.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;1. &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Brief introduction&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style="font-family:Verdana;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Apache Axis2 is built on Apache AXIOM a new high performance, pull-based XML object model. Axis2 comes with many new features, enhancements and industry specification implementations. Axis 2 has five primary strengths: better performance, messaging support, synchronous support, better support for WS-extensions, and better deployment support. The strength of Axis 2 lies in the flexibility and the functionality that Axis 2 provides; migration can be justified for the cases where few of those functionalities are vital. Future articles will provide examples on using Axis 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;2. A test Web Services via Apache Axis2 in &lt;span style=""&gt;Eclipse&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;We create a bottom up JAVA bean Web service and Web service client using Axis2 WTP Tools. It shows how to create a simple Web service and Web service client from a JAVA class. The JAVA class in this scenario converts between the Celsius and Fahrenheit temperature scales and its the same class that used in the Axis web services tutorials.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(1)&lt;span style=""&gt;  &lt;/span&gt;Download the latest Axis2 runtime and extract it;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(2)&lt;span style=""&gt;  &lt;/span&gt;Point Eclipse WTP to downloaded Axis2 Runtime;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(3) Create a project with the support of Axis2 feature;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(4) Select the Axis2 Web service facet;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(5) Import the wtp/Converter.java class into Axis2WSTest/src (be sure to preserve the package);&lt;/p&gt;  &lt;pre&gt;package wtp;&lt;/pre&gt;&lt;pre&gt;public class Converter {&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;public float celsiusToFarenheit ( float celsius ){&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;return (celsius * 9 / 5) + 32;&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;public float farenheitToCelsius ( float farenheit ){&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;return (farenheit - 32) * 5 / 9;&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(6) Create a web service based on the above java class;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(7) Generate the client for the newly created service by referring the ?wsdl generated by the Axis2 Server;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(8) The Clients stubs will be generated to above Dynamic Web project;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;(9) Write Java main program to invoke the client stub. Import the ConverterClient.java file to the workspace into the wtp package in the src folder of &lt;b&gt;the web service client;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;pre&gt;package wtp;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;import java.rmi.RemoteException;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;import org.apache.axis2.AxisFault;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;import wtp.ConverterConverterSOAP11Port_httpStub.CelsiusToFarenheit;&lt;/pre&gt;&lt;pre&gt;import wtp.ConverterConverterSOAP11Port_httpStub.CelsiusToFarenheitResponse;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;public class ConverterClient {&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;public static void main(String[] args) {&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;try {&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;float celsiusValue = 100;&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;ConverterConverterSOAP11Port_httpStub stub = new ConverterConverterSOAP11Port_httpStub();&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;     &lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;CelsiusToFarenheit c2f = new CelsiusToFarenheit();&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;c2f.setCelsius(celsiusValue);&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;CelsiusToFarenheitResponse res = stub.celsiusToFarenheit(c2f);&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;System.out.println("Celsius : "+celsiusValue+" = "+"Farenheit : "+res.get_return());&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;} catch (AxisFault e) {&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;e.printStackTrace();&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;} catch (RemoteException e) {&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;      &lt;/span&gt;e.printStackTrace();&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;    &lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;&lt;span style=""&gt;  &lt;/span&gt;}&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Now I am working on how to start a web service dynamically based on the feather of the project and the existing web service. I will state it in more detail later.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://ws.apache.org/axis2/"&gt;http://ws.apache.org/axis2/&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.developer.com/services/article.php/3525481"&gt;http://www.developer.com/services/article.php/3525481&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;http://www.eclipse.org/webtools/jst/components/ws/1.0/tutorials/WebServiceExplorer/WebServiceExplorer.html&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html"&gt;http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/BottomUpWebService/BottomUpWebService.html"&gt;http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/BottomUpWebService/BottomUpWebService.html&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/TopDownWebService/TopDownWebService.html"&gt;http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/TopDownWebService/TopDownWebService.html&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/WebServiceClient/WebServiceClient.html"&gt;http://www.eclipse.org/webtools/jst/components/ws/1.5/tutorials/WebServiceClient/WebServiceClient.html&lt;/a&gt;&lt;/pre&gt;&lt;pre style="margin-left: 0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-8803108297181501794?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/8803108297181501794/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=8803108297181501794' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/8803108297181501794'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/8803108297181501794'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/02/status-report-for-01302008.html' title='Status Report for 01/30/2008 -- 02/13/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-7054049990967832657</id><published>2008-01-31T19:21:00.002-05:00</published><updated>2008-03-04T13:10:05.726-05:00</updated><title type='text'>Status Report for 01/23/2008 -- 01/30/2008</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Based on the discussion in my previous posts, I did some work on Axis 1.4 for the project.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;1. &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Install and Deploy Apache Axis 1.4&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(1) Make sure that we have&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;J2SE SDK 1.5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;A Servlet Container: Tomcat 5.5.17&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(2) Download axis-bin-1.4.zip from http://apache.oc1.mirrors.redwire.net/ws/axis/1_4/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(3) Unzip it and look at the dir. tree. Note that &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;Axis runs as a Servlet&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(4) Deploy Axis.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Copy webapps/axis tree to webapps directory of Tomcat.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Alternatively, modify server.xml of Tomcat.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(5) Run Tomcat: issue bin/startup from Tomcat home.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Direcotry Structure: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;axis-1_0 &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;docs &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;lib &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;          &lt;/span&gt;samples&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;            &lt;/span&gt;webapps &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;                        &lt;/span&gt;axis &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;                                    &lt;/span&gt;WEB-INF &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;                                                &lt;/span&gt;lib &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;                                                &lt;/span&gt;classes &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;                                                &lt;/span&gt;web.xml &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(6) Test the Deployment &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;(a) Point my browser to http://localhost:8080/axis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;   &lt;/span&gt;(b) Click the link "Validate", an error message and two warnings were shown on the next page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Error: could not find class javax.activation.DataHandler from file activation.jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Axis will not work&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;See http://java.sun.com/products/javabeans/glasgow/jaf.html&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Optional Components&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Warning: could not find class javax.mail.internet.MimeMessage from file mail.jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Attachments will not work&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;See http://java.sun.com/products/javamail/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Warning: could not find class org.apache.xml.security.Init from file xmlsec.jar&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;XML Security is not supported&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;See http://xml.apache.org/security/&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;The core axis libraries are present. 2 optional axis libraries are missing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(7) Shutdown Tomcat, and follow the instructions above to &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(a) download the zip files;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(b) unzip these files;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(c) find the jar files;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(d) copy them to $CATALINA_HOME/webapps/axis/WEB-INF/lib&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;activation.jar, &lt;span style=""&gt;  &lt;/span&gt;mail.jar, xmlsec-1.4.1.jar are in jaf-1_1_1.zip, javamail-1_4_1.zip,&lt;span style=""&gt;  &lt;/span&gt;xml-security-bin-1_4_1.zip respectively.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(8) Startup Tomcat, and run http://localhost:8080/axis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;b style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;2. A test Web Services Using Apache Axis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;The easiest way is to simply copy any independent Java class into our Axis web application directory and access it via SOAP remotely. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(a) developing the Java class, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(b) deploying it, &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(c) building and running a client to access it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(1) Developing a Java class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Try out a Hello World -style class which has one method, called &lt;/span&gt;&lt;span style="font-size:12;"&gt;greet()&lt;/span&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt; that takes someone's name as a parameter and returns a nice greeting message with that person's name.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;(a)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Locate the $AXIS_HOME/samples directory;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;(b)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Create a new subdirectory called "hello";&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;(c)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;    &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;In this subdirectory, create the file Hello.java, and include the following code;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt;      &lt;/span&gt;public class Hello { &lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;public String greet(String a_name) { &lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: 0.5in;"&gt;return "Nice to meet you, "+a_name; &lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;} &lt;/p&gt;  &lt;p class="MsoPlainText" style="text-indent: 0.5in;"&gt;} &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;span style=""&gt;(d)&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Copy it into $TOMCAT_HOME/webapps/axis and name it Hello.jws&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;(2) Building a client to access our service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Develop the client code in the file HelloClient.java, which we will store at $AXIS_HOME/samples/hello. HelloClient.java needs to do the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Connect to the our Hello service (a SOAP endpoint)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Invoke the service method remotely, marshalling parameters in and out.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Symbol;font-size:12;"  &gt;&lt;span style=""&gt;·&lt;span style=";font-family:&amp;quot;;font-size:7;"  &gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Print out the reply from the service. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Below is code for HelloClient.java that enables this:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;package samples.hello; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;import org.apache.axis.client.Call; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;import org.apache.axis.client.Service; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;import org.apache.axis.encoding.XMLType; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;import org.apache.axis.utils.Options; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;import javax.xml.rpc.ParameterMode; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;public class HelloClient &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;{ &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;public static void main(String [] args) throws Exception { &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;Options options = new Options(args); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;String endpoint = "http://localhost:" + options.getPort() + "/axis/Hello.jws"; &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;args = options.getRemainingArgs(); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;if (args == null || args.length != 1) { &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;                 &lt;/span&gt;System.err.println("Usage: Hello "); &lt;/p&gt;  &lt;p class="MsoPlainText" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;return; &lt;/p&gt;  &lt;p class="MsoPlainText" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;} &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;Service service = new Service(); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;Call call = (Call) service.createCall(); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;call.setTargetEndpointAddress(new java.net.URL(endpoint)); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;call.setOperationName("greet"); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;call.addParameter("name", XMLType.XSD_STRING, ParameterMode.IN); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;call.setReturnType(XMLType.XSD_STRING); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;String msg = (String)call.invoke(new Object[] {args[0]}); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;           &lt;/span&gt;System.out.println("Reply: " + msg); &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style=""&gt;     &lt;/span&gt;} &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;} &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Compile this client:&lt;/span&gt; &lt;span style=""&gt; &lt;/span&gt;javac samples/hello/HelloClient.java &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;Run the client:&lt;/span&gt; &lt;span style=""&gt; &lt;/span&gt;java samples.hello.HelloClient -p8080 Greg &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;which returns the message:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;span style=""&gt;      &lt;/span&gt;Nice to meet you, Greg! &lt;/p&gt;  &lt;p class="MsoPlainText"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Based on the previous discussion, it is necessary to remove SimpleAxisServer and just use Axis as an engine to invoke the web service.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;http://ws.apache.org/axis/java/apiDocs/org/apache/axis/transport/http/SimpleAxisServer.html&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;pre style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;a href="http://www.javaranch.com/journal/2002/05/axis.html" target="_blank"&gt;http://www.javaranch.com/journal/2002/05/axis.html&lt;/a&gt;&lt;span style="font-size: 12pt; font-family: &amp;quot;Times New Roman&amp;quot;;"&gt;&lt;br /&gt;&lt;a href="http://ws.apache.org/axis/java/user-guide.html#CustomDeploymentIntroducingWS"&gt;http://ws.apache.org/axis/java/user-guide.html#CustomDeploymentIntroducingWS&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-7054049990967832657?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/7054049990967832657/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=7054049990967832657' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7054049990967832657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7054049990967832657'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/01/status-report-for-01232008.html' title='Status Report for 01/23/2008 -- 01/30/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-1850639366781106066</id><published>2008-01-31T19:18:00.000-05:00</published><updated>2008-12-08T16:42:13.371-05:00</updated><title type='text'>Status Report for 01/09/2008 -- 01/23/2008</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1. &lt;span style=""&gt; &lt;/span&gt;Design for server side (JSP/Java servlet)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:332.25pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\YU(CAR~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" title="server_JSP"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q-k3oX9iLDY/R6NdkT0RxqI/AAAAAAAAAC0/FYNKReLUnj0/s1600-h/server_JSP.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_q-k3oX9iLDY/R6NdkT0RxqI/AAAAAAAAAC0/FYNKReLUnj0/s400/server_JSP.png" alt="" id="BLOGGER_PHOTO_ID_5162072476272936610" border="0" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Based on the discussion on my previous blog, remove the embedded Jetty and make everything run in Tomcat.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;On server side:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) JSP/servlet gets the parameters in the request from client;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Start SimpleAxisServer(SAS) to call a CIMA web service;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Receive the data at a listener of SAS;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) Write the data to a file;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(5) Send the URL of file back to client&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;On client side:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Send the request to server;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Receive the URL of the file;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Parse the file content and display them on the browser&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Server side&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(a) Using Java servlet&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Override &lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;protected&lt;/span&gt;&lt;span style=""&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt; &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;void&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt; doPost(HttpServletRequest request, HttpServletResponse response) &lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;throws&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt; ServletException, &lt;/span&gt;&lt;span style="color:teal;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;IOException&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;in class&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;" &gt;public&lt;/span&gt;&lt;span style=""&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;class&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;st1:place style="color: rgb(0, 0, 0);" st="on"&gt;Main&lt;/st1:place&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;extends&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt; javax.servlet.http.HttpServlet &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;implements&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt; javax.servlet.Servlet&lt;/span&gt;&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:100%;"&gt;(b) Using JSP&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;In a JSP page, &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Get the parameters from      request;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Call a Java method to invoke      the CIMA web service and another method to write data to a file;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Return the URL of the file to      client&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Client side&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;In &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt;, make a request either to the Java servlet or the JSP. Parse the file content and show the data on the browser via an &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt; function.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Comparison between Java servlets and JSP in this project.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Both Java servlets and JSP have an extensive infrastructure for automatically parsing and decoding HTML form data, reading and setting HTTP headers, handling cookies, tracking sessions, and many other such high-level utilities. But as for outputting the result to the client, we need to write a zillion &lt;span style=""&gt;println&lt;/span&gt; statements to generate HTML. Plus, by separating the presentation from the content, we can separate the tasks on Web page design and servlet programming. In this project, it involves some static HTML content, and the client only needs the URL of the file, so use of a combination of JSP and servlets would simplifies the creation and maintenance of the HTML.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Currently, we invoke CIMA web service by start a SimpleAxisServer, but in SimpleAxisServer API, there is a note -- This is a simple implementation of an HTTP server for processing SOAP requests via Apache's xml-axis. This is not intended for production use. Its intended uses are for demos, debugging, and performance profiling. Note this classes uses static objects to provide a thread pool, so you should not use multiple instances of this class in the same JVM/classloader unless you want bad things to happen at shutdown.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;pre&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt;So it is necessary to remove SimpleAxisServer and just use Axis as an engine to invoke the web service&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;http://ws.apache.org/axis/java/apiDocs/org/apache/axis/transport/http/SimpleAxisServer.html&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;JSP : the complete      reference. Hanna, Phil.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Core servlets and      JavaServer pages. &lt;!-- Author --&gt;Hall, Marty; Brown, Larry&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-1850639366781106066?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/1850639366781106066/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=1850639366781106066' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1850639366781106066'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1850639366781106066'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/01/status-report-for-01092007.html' title='Status Report for 01/09/2008 -- 01/23/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q-k3oX9iLDY/R6NdkT0RxqI/AAAAAAAAAC0/FYNKReLUnj0/s72-c/server_JSP.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-7163523622231021746</id><published>2008-01-31T12:58:00.000-05:00</published><updated>2008-12-08T16:42:13.526-05:00</updated><title type='text'>Status Report for 12/26/2007 -- 01/09/2008</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1. &lt;span style=""&gt; &lt;/span&gt;Design for server side (Embedded Jetty)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:280.5pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\YU(CAR~1\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" title="builtinjetty"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_q-k3oX9iLDY/R6IMhD0RxpI/AAAAAAAAACs/GFe1QQL-CDg/s1600-h/builtinjetty.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_q-k3oX9iLDY/R6IMhD0RxpI/AAAAAAAAACs/GFe1QQL-CDg/s400/builtinjetty.png" alt="" id="BLOGGER_PHOTO_ID_5161701885019801234" border="0" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;In this design, we embedded Jetty into our Java applications and used it as the core HttpServer, an HTTP server with the ability to serve static content and servlets.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The basic idea is to implement a handler in the servlet and &lt;/span&gt;start a jetty server with it. Once the jetty server gets a request from the jetty port, the handler will get the parameters and start SimpleAxisServer(SAS) to call a CIMA web service and then get the data at a listener of SAS.&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Create an instance of the Jetty server (org.mortbay.jetty.Server) listening at some port, but does not start the server.&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;Server server = &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt; Server();&lt;/span&gt;&lt;o:p style="font-family: courier new;"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;Connector connector=new SelectChannelConnector();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;connector.setPort(some port);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;     &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:courier new;font-size:85%;"  &gt;   &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;server.setConnectors(&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;new &lt;/span&gt;&lt;span style="font-size:85%;"&gt;connector[]{connector});&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=""&gt;(2)&lt;/span&gt; Add resource handlers which will get the parameters from the client’s request and start the web service.&lt;/p&gt;          &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;Handler param = &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;new&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt; ParamHandler();&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/span&gt;Handler rqst = &lt;span style="color:blue;"&gt;new&lt;/span&gt; RqstHandler();&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;HandlerCollection handlers = &lt;span style="color:blue;"&gt;new&lt;/span&gt; HandlerCollection();&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;handlers.setHandlers(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Handler[]{rqst, param});&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=";font-family:courier new;font-size:85%;"  &gt;server.setHandler(handlers);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Start the Jetty server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:courier new;"&gt;server.start();&lt;/span&gt;&lt;o:p style="font-family: courier new;"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style=""&gt;        &lt;/span&gt;server.join();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(4) &lt;span style=""&gt; &lt;/span&gt;Set up the embedded axis server with deployment descriptor generated by WSDL2Java&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;SimpleAxisServer server = new SimpleAxisServer();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;ServerSocket&lt;/span&gt;&lt;span style="font-size:85%;"&gt; WSserverSocket = new ServerSocket(someport);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;WSserverSocketPort = WSserverSocket.getLocalPort();&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;server.setServerSocket(WSserverSocket);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;server.setMyConfig(wsdddoc.getDeployment());&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt;server.start();&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:times new roman;"&gt;set up the call to the CIMA service&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style=";font-family:courier new;font-size:85%;color:teal;"   &gt;      String&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:courier new;"&gt; endpointURL = &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:courier new;font-size:85%;color:blue;"   &gt;new&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;String(some IP address);&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      Call call = new Call(endpointURL);&lt;/span&gt;&lt;o:p style="color: rgb(0, 0, 0);"&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      call.setTargetEndpointAddress( new java.net.URL(endpointURL) );&lt;/span&gt;&lt;o:p style="color: rgb(0, 0, 0);"&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      call.setOperationName(somename);&lt;/span&gt;&lt;o:p style="color: rgb(0, 0, 0);"&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;      call.addParameter(……);&lt;/span&gt;&lt;o:p style="color: rgb(0, 0, 0);"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="text-indent: 0.5in; color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;call.invokeOneWay(……);&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"  style="color: rgb(0, 0, 0);font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;On the client side,&lt;span style=""&gt;  &lt;/span&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt; is being used for this web application. In a standard way, making a request to a servlet/JSP page on the server in Tomcat would be much easier and convenient. So instead of&lt;span style=""&gt;  &lt;/span&gt;using embedded Jetty, we can just use servlet/JSP page to get the parameter and call a web service and send the response to client. In that case, everything on the server is running in the Tomcat, and just one port is necessary.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-7163523622231021746?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/7163523622231021746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=7163523622231021746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7163523622231021746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7163523622231021746'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2008/01/status-report-for-12262007-01022008.html' title='Status Report for 12/26/2007 -- 01/09/2008'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q-k3oX9iLDY/R6IMhD0RxpI/AAAAAAAAACs/GFe1QQL-CDg/s72-c/builtinjetty.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-1061492146131758153</id><published>2007-12-30T13:39:00.000-05:00</published><updated>2008-01-02T17:08:16.350-05:00</updated><title type='text'>Status Report for 11/28/2007 -- 12/26/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Design for server side (updated)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;To do it step by step, we first design the client side for one user who can register/monitor one variable/sensor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The basic idea is that write new data to &lt;/span&gt;&lt;span style=""&gt;an XML file when it is available one the server side and return the file’s URL to the client.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;At current stage, logic in server side is not difficult. A program written by JSP, which is called by client, would do the following steps:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Register a variable based on the parameters from client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Write the new data to an XML file&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Return the URL of the file to the client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;1. Register multiple sensors for one user&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The user first registers variable called A-var, the server can get the new coming data from some callback function. After that, he wants to register another variable B-var, is that true that we can obtain both data from the same function? There is a problem in register/unregister.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;2. Register multiple sensors for multiple users&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;If multiple users register the same variable, which is better, the arrary or file? How to maintain the session?&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Bulletproof &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt;,&lt;span style=""&gt;  &lt;/span&gt;Keith, Jeremy&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; in practice,&lt;span style=""&gt;  &lt;/span&gt;Crane, Dave&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JSP : the complete      reference,&lt;span style=""&gt;  &lt;/span&gt;Hanna, Phil&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JavaScript bible, Goodman,      Danny&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; for web application      developers,&lt;span style=""&gt;  &lt;/span&gt;Hadlock, Kris&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; design patterns, Mahemoff, Michael&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;      : creating Web pages with asynchronous JavaScript and XML, Woychowsky, &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Edmond&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; bible, Holzner, Steven&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-1061492146131758153?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/1061492146131758153/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=1061492146131758153' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1061492146131758153'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/1061492146131758153'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/12/status-report-for-11282007.html' title='Status Report for 11/28/2007 -- 12/26/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-5218808838566905824</id><published>2007-11-30T09:45:00.000-05:00</published><updated>2008-01-02T16:38:59.153-05:00</updated><title type='text'>Status Report for 10/31/2007 -- 11/28/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Design for Ajax-based client side (updated)&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;To do it step by step, we first design the client side for one user who can register/monitor one variable/sensor.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;The basic idea is that f&lt;/span&gt;&lt;span style=""&gt;etch an XML file when it is available one the server side, parse its contents, and generate markup to display the content details in the Web page.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In the previous implementation, we set up the communication between client and server by calling the basic functions provided by JavaScript. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) C&lt;/span&gt;&lt;span style=""&gt;reating a new instance of an XMLHttpRequest object (&lt;/span&gt;&lt;b style=""&gt;&lt;span style="font-family: Arial;"&gt;xhr = new XMLHttpRequest()&lt;/span&gt;&lt;/b&gt;&lt;span style=""&gt;) is used to make a Http request from client to server. In most browsers, it is very straight-forward, but in IE, we need to create a new instance of an ActiveX object. If xhr equals to false, it means that the browser executing the script does not have Ajax Capabilities. Otherwise, you will get an instance of XMLHttpRequest or ActiveXObject. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In addition, in the callback function which is an attched function to the onreadystatchange event handler, we need to check the status properly to make sure that the response was successfully returned from the server before we process the data from the server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In a word, we have to take care of a lot of details if we do it from sctatch. So there are a few of open source toolkits that can make our lives a bit easier. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;&lt;span style=""&gt;In Ajax.Request class provided by Prototype, all we have to provide is a URL, the HTTP method, and a call back function. Internally, Ajax.Request works out how to create the XHR object and fills in the blanks when shaping the request. It also simplifies the callback semantics considerably, allowing us to supply a funtion that would only be called once on completion of the response, and that therefore only have to deal with the application logic.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-top: 12pt;"&gt;&lt;span style=""&gt;(2) In this application, we wish to obtain and display data from the server when they are available, so we need to keep the data constantly up-to-date. The Prototype Ajax.PeriodicalUpdater class can automatically keep the display of the server-provided data up-to-date at a frequency that best suits our page. So it is easy for us to schedule the automatic updates without having to code any scheduling logic or write timeout handlers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) For simplicity,&lt;span style=""&gt;  &lt;/span&gt;currently on the server side we just write the new data to a file while the client side keeps polling the request to read the file and process it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In using Prototype Ajax.PeriodicalUpdater class, we have to take the following factors into account :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Choosing what to automatically update and at what interval&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The expected number of simultaneous visitors&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The size of the update response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The process required to generate that response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;The load-handling capability of the server configuration&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Bulletproof &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt;,&lt;span style=""&gt;  &lt;/span&gt;Keith, Jeremy&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; in practice,&lt;span style=""&gt;  &lt;/span&gt;Crane, Dave&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JSP : the complete      reference,&lt;span style=""&gt;  &lt;/span&gt;Hanna, Phil&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JavaScript bible, Goodman,      Danny&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; for web application      developers,&lt;span style=""&gt;  &lt;/span&gt;Hadlock, Kris&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; design patterns, Mahemoff, Michael&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;      : creating Web pages with asynchronous JavaScript and XML, Woychowsky, &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Edmond&lt;/st1:City&gt;&lt;/st1:place&gt;&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; bible, Holzner, Steven&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-5218808838566905824?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/5218808838566905824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=5218808838566905824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5218808838566905824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5218808838566905824'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/11/status-report-for-10312007.html' title='Status Report for 10/31/2007 -- 11/28/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-7321757091755889754</id><published>2007-10-31T11:45:00.000-04:00</published><updated>2008-12-08T16:42:13.780-05:00</updated><title type='text'>Status Report for 10/17/2007 -- 10/31/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;Prototype architecture for new CIMAClient project&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Main Frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q-k3oX9iLDY/R2dJb-2LjbI/AAAAAAAAACk/Y6FHxxeZ2LY/s1600-h/cimajax2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_q-k3oX9iLDY/R2dJb-2LjbI/AAAAAAAAACk/Y6FHxxeZ2LY/s400/cimajax2.png" alt="" id="BLOGGER_PHOTO_ID_5145161844369624498" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Implementation of some parts &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;On server side, main steps for (1), (2) and (3) shown in above figure:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(1)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Start the server;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;(2)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;S&lt;/span&gt;&lt;span style=""&gt;tart handling CIMA http/REST requests&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;interact with a CIMA service&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;get data from a handle (registration)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Status information about gateway&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(3)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Get stream data in &lt;/span&gt;"myHandler" method in&lt;span style=""&gt; s&lt;/span&gt;rc/edu/indiana/extreme/www/cima/channel/sink/Channel_sinkImpl.java&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;On client side, main steps for (4) shown in above figure:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Create a new instance of XMLHttpRequest;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) If successful, attach a function to the onreadystatchange event handler, that function will be executed EVERY TIME the server pings the client with an update. The function will be executed every time the readystatechange event is triggered;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In this function,&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 60pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(a)&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Check the status properly to make sure that the response was successfully returned from the server;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 60pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(b)&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Extract data from parcel(an XML file);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 60pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(c)&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Generate content;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 60pt; text-indent: -24pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(d)&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Create the text for SensorName, TimeStamp and DoubleData to go inside the paragraph;&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=""&gt;(e)&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=""&gt;Join these nodes together, and insert the markup just created;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Send the request;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;  &lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Reference&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0in;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Bulletproof &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt;,&lt;span style=""&gt;  &lt;/span&gt;Keith, Jeremy&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; in practice,&lt;span style=""&gt;  &lt;/span&gt;Crane, Dave&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JSP : the complete      reference,&lt;span style=""&gt;  &lt;/span&gt;Hanna, Phil&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;JavaScript bible, Goodman,      Danny&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; for web application      developers,&lt;span style=""&gt;  &lt;/span&gt;Hadlock, Kris&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;&lt;/st1:place&gt; design patterns, Mahemoff, Michael&lt;strong&gt;&lt;span style="font-weight: normal;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:City&gt;      : creating Web pages with asynchronous JavaScript and XML, Woychowsky, &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Edmond&lt;/st1:place&gt;&lt;/st1:City&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:City&gt; bible, Holzner, Steven&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-7321757091755889754?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/7321757091755889754/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=7321757091755889754' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7321757091755889754'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7321757091755889754'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/10/status-report-for-10172007.html' title='Status Report for 10/17/2007 -- 10/31/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q-k3oX9iLDY/R2dJb-2LjbI/AAAAAAAAACk/Y6FHxxeZ2LY/s72-c/cimajax2.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-365622351523198097</id><published>2007-10-31T11:44:00.000-04:00</published><updated>2008-12-08T16:42:14.025-05:00</updated><title type='text'>Status Report for 09/12/2007 -- 10/17/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;Prototype architecture for Ajax-based CIMAClient project&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Summary of the comparison with different main frames&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/R2c5PO2LjZI/AAAAAAAAACU/4mtuix45PRg/s1600-h/cimajax1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_q-k3oX9iLDY/R2c5PO2LjZI/AAAAAAAAACU/4mtuix45PRg/s400/cimajax1.png" alt="" id="BLOGGER_PHOTO_ID_5145144033140247954" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;Figure 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Figure 1 shows the traditional model of the web application. For the CIMA web services architecture, once the CIMA sensors have been registered to the client machine, the data stream will be kept sending to the web service in CIMA Client, but the data cannot reach client machine automatically. So the client needs to send the HTTP request to retrieve the data manually. In this case, the method of sending data with respect to the user’s actions and the method of sending data with respect to the browser’s actions are synchronous, so we cannot get the real time data. On the other hand, the server will send back the entire page. Rinse and repeat.&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/R2c5Yu2LjaI/AAAAAAAAACc/Dg6WFTkvhBo/s1600-h/cimajax2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/R2c5Yu2LjaI/AAAAAAAAACc/Dg6WFTkvhBo/s400/cimajax2.png" alt="" id="BLOGGER_PHOTO_ID_5145144196349005218" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;b&gt;Figure 2&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Figure 2 shows the &lt;/span&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; model based on polling. &lt;span style=""&gt;For the CIMA web services architecture, first the client needs to send register request to ask the CIMA web service to send the variable data just registered to the web service in CIMA Client, then a periodic polling will be done by the &lt;st1:city st="on"&gt;&lt;st1:place st="on"&gt;Ajax&lt;/st1:place&gt;&lt;/st1:city&gt; layer, and the client can get the updated data. In this model, the method of sending data with respect to the user’s actions is asynchronous while the method of sending data with respect to the browser’s actions is still synchronous. The advantage is that &lt;/span&gt;user interface is never blocked and the bandwidth usage is potentially lower than the traditional model even if it is still high. &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;In our research work, we found that there were some “smarter” &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; models which have the features of &lt;span style="color:black;"&gt;high update frequency, true real time, low bandwidth usage and low load on the network infrastructure. For example, &lt;/span&gt;Ajax-Comet model based on smart polling which is &lt;span style=""&gt;asynchronous polling and the variable polling frequency is controlled by server; another example is &lt;/span&gt;Ajax-Comet model based on streaming which implements &lt;span style=""&gt;fully asynchronous push. We might employ all the &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;Ajax&lt;/st1:city&gt;&lt;/st1:place&gt; models to our application and find out which is the best according to our data features.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-365622351523198097?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/365622351523198097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=365622351523198097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/365622351523198097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/365622351523198097'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/10/status-report-for-09122007.html' title='Status Report for 09/12/2007 -- 10/17/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q-k3oX9iLDY/R2c5PO2LjZI/AAAAAAAAACU/4mtuix45PRg/s72-c/cimajax1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-3151813273114284539</id><published>2007-09-16T14:06:00.000-04:00</published><updated>2008-12-08T16:42:14.044-05:00</updated><title type='text'>Status Report for 08/29/2007 -- 09/12/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Prototype architecture for new CIMAClient project&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Main Frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/Ru1w39CC0ZI/AAAAAAAAACM/Dunw5u-BpRs/s1600-h/cimanewproject%28updated%29.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_q-k3oX9iLDY/Ru1w39CC0ZI/AAAAAAAAACM/Dunw5u-BpRs/s400/cimanewproject%28updated%29.png" alt="" id="BLOGGER_PHOTO_ID_5110865258713633170" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;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:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(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;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(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".&lt;/span&gt;&lt;span style=""&gt; Additionally, Ajex can make user interface more friendly and fancy. &lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;3.&lt;span style=""&gt;  &lt;/span&gt;Work Flow&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Startup CIMAClientPlatform to send register requests for all variables/sensors to CIMA web service no matter if the users need them or not;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) CIMA web service will send stream data() back including all the registered data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(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);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(4) Web service interface sends the data back to the browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;4. Problems&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(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);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) The problem in garbage collection in Javascript;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Data format:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;The format of return data should be XML or JSON or both. Ajax-based client application can accept JSON much easier than XML.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In “Problems” section&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-3151813273114284539?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/3151813273114284539/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=3151813273114284539' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3151813273114284539'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3151813273114284539'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/09/status-report-for-08292007-09122007.html' title='Status Report for 08/29/2007 -- 09/12/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q-k3oX9iLDY/Ru1w39CC0ZI/AAAAAAAAACM/Dunw5u-BpRs/s72-c/cimanewproject%28updated%29.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-7193589378351235486</id><published>2007-08-31T14:23:00.000-04:00</published><updated>2008-12-08T16:42:14.172-05:00</updated><title type='text'>Status Report for 08/08/2007 -- 08/29/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;Draft of prototype architecture for new project&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Main Frame&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/Rthc6RMZGfI/AAAAAAAAACE/jefr8xq_Eug/s1600-h/cimanewproject.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_q-k3oX9iLDY/Rthc6RMZGfI/AAAAAAAAACE/jefr8xq_Eug/s400/cimanewproject.png" alt="" id="BLOGGER_PHOTO_ID_5104932333742004722" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Get data from CIMA instruments/CIMA web services, and show them on an Ajax-based browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(&lt;i style=""&gt;&lt;u&gt;Difference between this with Atom Feed for IUMS? any special requirements or restrictions for that?&lt;/u&gt;&lt;/i&gt;)&lt;i style=""&gt;&lt;u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;3.&lt;span style=""&gt;  &lt;/span&gt;Work Flow&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Users send HTTP requests to register a variable(Bay1Temp, for example) to be shown in the browser(for example, &lt;a href="http://shim.addr/register?Name=%5bcima_service%5d%25Source=%5bvariable_name"&gt;http://shim.addr/register?Name=[cima_service]%Source=[variable_name&lt;/a&gt;])&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Users get a reply with the user ID(for example, &lt;a href="http://shim.addr/UUID"&gt;http://shim.addr/UUID&lt;/a&gt;). This UUID will be used to identify different users and get data from the web service;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Web service interface will create a thread for that request/user;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(4) Web service interface(&lt;i style=""&gt;&lt;u&gt;or The thread?&lt;/u&gt;&lt;/i&gt;) then send the register request to CIMA web service (&lt;i style=""&gt;&lt;u&gt;with UUID?&lt;/u&gt;&lt;/i&gt;)(Socket);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(5) CIMA web service will return stream data() back(Socket);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(6) The parcel will be stored in a ring buffer in SVC(&lt;i style=""&gt;&lt;u&gt;???&lt;/u&gt;&lt;/i&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(7) Users send Poll URL to Web service interface(&lt;i style=""&gt;&lt;u&gt;or The thread?&lt;/u&gt;&lt;/i&gt;) (&lt;i style=""&gt;&lt;u&gt;when will it happen?&lt;/u&gt;&lt;/i&gt;);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(8) Web service interface(&lt;i style=""&gt;&lt;u&gt;or The thread?&lt;/u&gt;&lt;/i&gt;) sends the data back to the browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;4. Problems&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(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);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Compare the following two cases in how to distinguish clients:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;(a) Create one thread for every registration;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;(b) One service with IDs to distinguish clients;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;- Distinguish which parcel goes to which client&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;- Overhead matching IDs to parcels(&lt;i style=""&gt;&lt;u&gt;?&lt;/u&gt;&lt;/i&gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Data format:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;            &lt;/span&gt;The format of return data should be XML or JSON or both. Ajax-based client application can accept JSON much easier then XML.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;In “Problems” section&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-7193589378351235486?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/7193589378351235486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=7193589378351235486' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7193589378351235486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/7193589378351235486'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/08/status-report-for-08082007.html' title='Status Report for 08/08/2007 -- 08/29/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q-k3oX9iLDY/Rthc6RMZGfI/AAAAAAAAACE/jefr8xq_Eug/s72-c/cimanewproject.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-608748442475910960</id><published>2007-08-09T12:56:00.000-04:00</published><updated>2007-08-09T12:58:42.933-04:00</updated><title type='text'>Status Report for 08/01/2007 -- 08/08/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Summary of data structure design for IUMSC 12 sensors Atom Feed&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Create Atom Feed for IUMSC 12 sensors&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;All sensors’ data in one feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Each sensor data in one feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Out-of-Range data from all sensors in one feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Work Flow&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Implementation is in Method &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;void myHandler(String parcel)&lt;/u&gt; &lt;/i&gt;&lt;/b&gt;in&lt;b style=""&gt;&lt;i style=""&gt; &lt;/i&gt;&lt;/b&gt;Class &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;Channel_sinkImpl&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; in Package &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;edu.indiana.extreme.www.cima.channel.sink&lt;/u&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) Read and parse the parcel and get SensorName, TimeStamp and DoubleData for the incoming sensor data;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Find the SensorStorage for this parcel and update the according SensorStorage with the current parcel;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Update the all-in-one SensorStorage with the current parcel;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(4) Update the SensorStorage for out-of-range data with the current parcel;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;3.&lt;span style=""&gt;  &lt;/span&gt;Data Structure Design&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Super Class&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;abstract class CachedSensorStorage {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;           &lt;/span&gt;private Feed createDefaultFeed; // Create "feed" part of a feed -- Author, Id, Title, Link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;private Entry createDefaultEntry // Create "entry" part of a feed -- Author, Title, Id, Updated &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;protected abstract void updateCachedEntryContent;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;protected abstract String generateContentString;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;            &lt;/span&gt;public boolean updateData {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Call Method &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;createDefaultFeed &lt;/u&gt;&lt;/i&gt;&lt;/b&gt;to create basic feed part&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Call Method &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;createDefaultEntry&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; to add entry to the feed;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Call Method &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;updateCachedEntryContent&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; which is synchronized to update/append content based on the incoming parcel in cached Entry Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;                        &lt;/span&gt;Call Method &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;FeedDoc.writeFeedDoc&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; provided by AtomSphere to write feed. The method is synchronized too.&lt;span style=""&gt;                  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Sub Classes&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) &lt;/span&gt;&lt;span style="font-family:Arial;"&gt;class IndividualCachedSensorStorage extends CachedSensorStorage {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;span style=""&gt;            &lt;/span&gt;ArrayList&lt;string&gt; cachedEntryContent; // An In-Memory data structure to store latest parcel;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;span style=""&gt;            &lt;/span&gt;protected String generateContentString; // Generate the parcel content string from the cachedEntryContent. It overrides the method in its superclass.&lt;o:p&gt;&lt;/o:p&gt;&lt;/string&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;span style=""&gt;           &lt;/span&gt;protected void updateCachedEntryContent // Update data in the In-Memory data structure based on incoming parcel&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;(2) class AllInOneCachedSensorStorage extends CachedSensorStorage;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;(3) class AbnormalCachedSensorStorage extends CachedSensorStorage;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-family:Arial;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;span style=""&gt;Class &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;IndividualCachedSensorStorage&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, Class &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;AllInOneCachedSensorStorage&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; and &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;AbnormalCachedSensorStorage&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; extend their super class and override two methods &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;generateContentString&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; and &lt;b style=""&gt;&lt;i style=""&gt;updateCachedEntryContent&lt;/i&gt;&lt;/b&gt; based on their different ways to process the In-Memory data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;4.&lt;span style=""&gt;  &lt;/span&gt;URLs for all Atom Feeds&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:10;"&gt;For all sensors' data :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:10;"&gt;For each sensor's data :&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_Bay1Humid.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_Bay1Temp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_CampCWInTemp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_CrystalTemp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_DEHumid.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_DETemp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_FrameBuffer_D_Usage.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_FrameBuffer_E_Usage.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_FrameBuffer_F_Usage.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_LabCWInTemp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_LabCWOutTemp.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_LN2Levl.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style="font-size:10;"&gt;For abnormal data from all sensors:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span style="font-size:10;"&gt;http://hagar.cs.indiana.edu:8181/IUMSCAtomFeed_Abnormal.xml&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Future work&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. SSO;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Netvibes Widgets.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-608748442475910960?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/608748442475910960/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=608748442475910960' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/608748442475910960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/608748442475910960'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/08/status-report-for-08012007-08082007.html' title='Status Report for 08/01/2007 -- 08/08/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-77811719938242771</id><published>2007-07-31T16:20:00.000-04:00</published><updated>2007-07-31T16:21:16.861-04:00</updated><title type='text'>Status Report for 07/18/2007 -- 08/01/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Summary of problems and solutions in Multithreaded Programming for IUMSC 12 sensors Atom Feed&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1.&lt;span style=""&gt;  &lt;/span&gt;Exception in thread occurred for the first time&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Background &amp; Problem&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;CIMA Client can receive parcels from all 12 sensors. When a parcel arrives, the in-memory cache which stores parcels for each sensor will be updated. Then the content of cache will be written to a Feed.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;After CIMA Client ran for about 15 to 20 minutes, there was an exception in Thread and no parcel came afterward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;The error message is shown below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size: 10pt;"&gt;Exception in thread "Thread-3" java.lang.IllegalStateException:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size: 10pt;"&gt;IllegalStateException: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size: 10pt;"&gt;at org.apache.axis.components.threadpool.ThreadPool.addWorker(ThreadPool.java:103)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size: 10pt;"&gt;at org.apache.axis.transport.http.SimpleAxisServer.run(SimpleAxisServer.java:243)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size: 10pt;"&gt;at java.lang.Thread.run(Thread.java:595)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Solution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) It seems that the program ran out of threads. It was addWorker that throws this when the thread pool runs out of threads. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Check that the default maximum thread count (org.apache.axis.components.threadpool.ThreadPool, public static final int&lt;span style=""&gt;  &lt;/span&gt;DEFAULT_MAX_THREADS)&lt;span style=""&gt;  &lt;/span&gt;is set to 100 when the instance of ThreadPool is created.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Change SimpleAxisServer() to SimpleAxisServer(int maxPoolSize, int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;maxSessions). Both of the constructor parameters default to 100. Now we make them 1000 instead. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2.&lt;span style=""&gt;  &lt;/span&gt;Random occurred exception in thread &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Problem&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;No thread exceptions occurred for 1 hour after changes described above, but the problems were found by observing the output window in eclipse. That is, &lt;span style=""&gt;if only a few parcels came at the same time, the program had enough time to write them to the Feed and receive new incoming parcels. But sometimes many parcels came at the same time, and parcels should be written to the Feed one by one, thus during this period the program could not&lt;/span&gt; &lt;span style=""&gt;receive any parcel and it seemed the program had been dead since then. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Restart the CIMA Client, exception in thread arose randomly. &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Solution – Step 1&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Variable “maxPoolSize” and “maxSessions” were kept to 1000 and 1000, and set a "threshold" in myHandler() to 990, which meant that once there were 990 or more parcels were waiting for being processed the program would skip the latest one. Doing so was aiming to relieve the possible threads burst. As a result, there was no exception in thread for a longer time, but unfortunately the threadpool was full eventurally.&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Solution – Step 2&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Removed the writing to Feed part from myHandler(), and added/activated a thread which was just responsible for writing parcels to Feed. The result was that the speed of getting parcels and writing them to a remote disk did not match forever no matter how large the buffer we set and no matter whether the thread was added or not. So the burst of threadpool occurred at last.&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Solution – Step 3&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;In myHandler(), the "writing to feed" part &lt;span style=""&gt; &lt;/span&gt;was commented and set variable maxPoolSize and maxSessions to only 5 and 5, and set a "threshold" in myHanlder() to 0. The result was that and it worked very well -- it could receive all the parcels and had never been dead. Then I wrote the Feed to /tmp/foo.xml(local disk, local file), and set variable maxPoolSize and maxSessions still to 5 and 5, and it still worked very well!&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;So I drew a conclusion that the bottleneck might be the "writing to feed" part which was not local operation and the speed of writing to feed did not match the speed of receiving the parcels, so resulted in the burst of the threadpool. &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Solution – Step 4&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Wrote the Feed to local disk and set a symbolic link to the remote one. – It worked very well and never had been dead for 3 days( Since I need to add one more functionality to CIMA Client, so I stopped it).&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 15.5pt;"&gt;Discussion&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Functionalities for users to select different sensors and/or just show the sensors with abnormal data. &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 15.5pt;"&gt;Future work&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get sensor values based on the user’s requirement;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Show only values not in normal range;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. The issues described in Discussion section&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-77811719938242771?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/77811719938242771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=77811719938242771' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/77811719938242771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/77811719938242771'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/07/status-report-for-07182007-08012007.html' title='Status Report for 07/18/2007 -- 08/01/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-5468920709418913350</id><published>2007-07-20T17:01:00.000-04:00</published><updated>2007-07-20T17:05:14.890-04:00</updated><title type='text'>Status Report for 07/11/2007 -- 07/18/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Some problems and solutions in detail design for IUMSC 12 sensors Atom Feed&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1. Synchronization in writing data to Atom Feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Problem &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;It is possible that data from 12 sensors could come simultaneously, but each sensor data should be written to the Feed sequentially. In that case, if the data is being written to Feed, the other data should not be written to the Feed. On the other hand, the incoming data is updated in memory first, then written to the Feed. So the updating should be synchronized too.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Solution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Put the Feed updating statements in a synchronized block and this synchronized block should be as small as possible. &lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2. &lt;span style=""&gt; &lt;/span&gt;Exception in thread&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Problem &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;After CIMA Client ran for about 15 to 20 minutes, there was an exception in Thread and no parcel comes afterward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;Error message is shown below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size:85%;"&gt;Exception in thread "Thread-3" java.lang.IllegalStateException:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size:85%;"&gt;IllegalStateException: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size:85%;"&gt;at org.apache.axis.components.threadpool.ThreadPool.addWorker(ThreadPool.java:103)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size:85%;"&gt;at org.apache.axis.transport.http.SimpleAxisServer.run(SimpleAxisServer.java:243)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style="font-size:85%;"&gt;at java.lang.Thread.run(Thread.java:595)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Solution &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(1) It seems that the program ran out of threads. It was addWorker that throws this when the thread pool runs out of threads. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(2) Check that the default maximum thread count (org.apache.axis.components.threadpool.ThreadPool, public static final int&lt;span style=""&gt;  &lt;/span&gt;DEFAULT_MAX_THREADS)&lt;span style=""&gt;  &lt;/span&gt;is set to 100 when the instance of ThreadPool is created.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;(3) Change SimpleAxisServer() to SimpleAxisServer(int maxPoolSize, int&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;maxSessions). Both of the constructor parameters default to 100. Now we make them 1000 instead. &lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;3. A problem caused by Synchronization&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Problem&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;It has been no thread exceptions for 1 hour, but I found another problem by observing the output window in eclipse. That is, &lt;span style=""&gt;if only a few sensor data come at the same time, the program has enough time to write the data to the Feed and receive new incoming data after that. If sometimes many sensor data come at the same time, the program&lt;/span&gt; &lt;span style=""&gt;needs to write these data one by one, during this period the program cannot&lt;/span&gt; &lt;span style=""&gt;receive any parcel and it seems&lt;/span&gt; &lt;span style=""&gt;the program has been dead for twenty or more minutes. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Possible solution&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;&lt;span style=""&gt;Instead of the critical sections using "synchronized" around the whole feed writing process we need some other way to serialize the writing of the feed. Maybe we should add a queue data structure into which each change is added, then the writer reads everything available in the queue, writes the feed, and reads the next batch of changes. This would limit the critical section to updating and reading an in-memory data structure rather than reading and writing a file.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Functionalities for users to select different sensors and/or just show the sensors with abnormal data. &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Future work&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get sensor values based on the user’s requirement;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Show only values not in normal range;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. The issues described in Discussion section&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-5468920709418913350?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/5468920709418913350/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=5468920709418913350' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5468920709418913350'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5468920709418913350'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/07/status-report-for-07112007-07182007.html' title='Status Report for 07/11/2007 -- 07/18/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-3399191596218840914</id><published>2007-05-30T15:27:00.000-04:00</published><updated>2008-12-08T16:42:14.382-05:00</updated><title type='text'>Status Report for 05/16/2007 -- 05/30/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;Detail design for IUMSC 12 sensors Atom Feed&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;1. Register IUMSC 12 sensors&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Before reading all the sensor values from the real proxy box in the IUMSC lab, send requests to register all the sensors with CIMA service endpoint (&lt;a href="http://129.79.85.21:7710/"&gt;http://129.79.85.21:7710&lt;/a&gt;). Sensor names and meanings are shown below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;LabCWOutTemp&lt;span style=""&gt;                     &lt;/span&gt;&lt;span style=""&gt;               &lt;/span&gt;Lab Chill water      OUT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;LabCWInTemp&lt;span style=""&gt;                       &lt;/span&gt;&lt;span style=""&gt;                   &lt;/span&gt;Lab Chill      water IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;CampCWInTemp             Campus      Chill water IN&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;LN2Levl&lt;span style=""&gt;                                         &lt;/span&gt;&lt;span style=""&gt;                           &lt;/span&gt;Liquid      Nitrogen level indicator&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;Bay1Temp&lt;span style=""&gt;          &lt;/span&gt;&lt;span style=""&gt;                        &lt;/span&gt;Bay1                     Temperature&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;Bay1Humid&lt;span style=""&gt;                                &lt;/span&gt;&lt;span style=""&gt;                       &lt;/span&gt;Bay1      Humidity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;DETemp&lt;span style=""&gt;                                          &lt;/span&gt;&lt;span style=""&gt;                          &lt;/span&gt;Diffractometer      Enclosure Temperature&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;DEHumid&lt;span style=""&gt;                                       &lt;/span&gt;Diffractometer      Enclosure Humidity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;CrystalTemp&lt;span style=""&gt;                             &lt;/span&gt;&lt;span style=""&gt;                       &lt;/span&gt;Crystal      Temperature&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;FrameBuffer_D_Usage   &lt;span style=""&gt;      &lt;/span&gt;Disk Usage Disk D&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;FrameBuffer_E_Usage   &lt;span style=""&gt;       &lt;/span&gt;Disk Usage Disk E&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style="font-size:10;"&gt;&lt;span style="font-size:85%;"&gt;FrameBuffer_F_Usage   &lt;/span&gt;&lt;span style="font-size:85%;"&gt;       Disk Usage Disk F&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Note: The sensor value used before was from test-proxy box (CIMA service endpoint (&lt;a href="http://129.79.85.20:7710/"&gt;http://129.79.85.20:7710)&lt;/a&gt;) with only two probes (Bay1Temp &amp; LabCWOutTemp) connected to it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;2. Write data to the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Part1: Read the parcel into DOM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Get a Parser and parse the parcel&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Part2: Update/Append feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;If no feed exists, create the "feed" part of the feed including the following elements: Author, Id, Title and Link and Updated;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Otherwise add an Entry to the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;&lt;span style=""&gt;                        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;If no entry in the feed, create basic elements for the entry including the following elements : Author, Title, Id and Updated &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;Otherwise get the existing entry handle(there should be only one entry) in the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in;"&gt;&lt;span style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;span style=""&gt;Get the current content in the Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;span style=""&gt;Set the receiving data to the Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;3. Read feed &lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt;Open &lt;a href="http://www.netvibes.com/"&gt;http://www.netvibes.com/&lt;/a&gt;, add&lt;/span&gt; the URL of IUMSC Atom Feed(http://hagar.cs.indiana.edu:8181//IUMSCAtomFeed.xml) to &lt;span style="font-size:100%;"&gt;netvibes&lt;/span&gt;&lt;span style=""&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;4. IUMSC Atom Feed in netvibes&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;The screen shot below shows the Atom Feed in &lt;span style="font-size:100%;"&gt;netvibes&lt;/span&gt;.&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_q-k3oX9iLDY/Rl3QdAmWMjI/AAAAAAAAAB8/6-dS0P_d6XM/s1600-h/Netvibes_AtomFeed_Detail_12Sensors.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_q-k3oX9iLDY/Rl3QdAmWMjI/AAAAAAAAAB8/6-dS0P_d6XM/s400/Netvibes_AtomFeed_Detail_12Sensors.bmp" alt="" id="BLOGGER_PHOTO_ID_5070437952284668466" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:6in;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\YU(CAR~1\LOCALS~1\Temp\msohtml1\01\clip_image001.png" title="Netvibes_AtomFeed_Detail_12Sensors"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Discussion &amp; Questions&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The data from 12 sensors come in at different times, that is to say, sometimes nothing comes during 10 to 15 seconds while sometimes data from some sensors come almost at the same time. This might cause that some data might be left out&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;-- I need to provide file locking function by using the FileLock class before updating, then unlock. Or make the routine that writes the feed "synchronized" or put the feed updating statements in a synchronized block(not as desirable as a synchronized routine).&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. In &lt;span style="font-size:100%;"&gt;netvibes&lt;/span&gt;, after refreshing the current webpage, &lt;span style=""&gt; &lt;/span&gt;new data don’t come, only the old data were shown. &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;-- I kept clicking the fresh button in the feed area, but it did not work&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:15;"&gt;Future work&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get sensor values based on the user’s requirement;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Show only values not in normal range;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Adjust feed format;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;4. The issues described in Discussion section&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-3399191596218840914?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/3399191596218840914/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=3399191596218840914' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3399191596218840914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3399191596218840914'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/05/status-report-for-05162007-05302007.html' title='Status Report for 05/16/2007 -- 05/30/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q-k3oX9iLDY/Rl3QdAmWMjI/AAAAAAAAAB8/6-dS0P_d6XM/s72-c/Netvibes_AtomFeed_Detail_12Sensors.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-2099439314219743599</id><published>2007-05-17T01:03:00.000-04:00</published><updated>2008-12-08T16:42:14.524-05:00</updated><title type='text'>Status Report for 04/25/2007 -- 05/16/2007</title><content type='html'>&lt;b&gt;&lt;span lang="EN-US"  style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span lang="EN-US"  style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Detail design for Bay1Temp Atom Feed (method1 shown in the last report is used here)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span lang="EN-US"  style="font-size:130%;"&gt;1. Create an atom feed document&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;New a feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;Feed theFeed = new Feed(); &lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add "xmlns" attribute to the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.addAttribute(new Attribute("xmlns","http://www.w3.org/2005/Atom")); &lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add Author&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.addAuthor(new Author("Yu(Carol) Deng")); &lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Set a universally unique Id for the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.setId(new Id("urn:uuid:" + new UID().toString())); &lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add Title&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;Title feedTitle = new Title("text"); &lt;span style=""&gt;          &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set title type for the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;feedTitle.setText("Bay1Temp Atom Feed");&lt;span style=""&gt;  &lt;/span&gt;&lt;span style=""&gt;      &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set title content&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.setTitle(feedTitle);&lt;span style=""&gt;          &lt;/span&gt;&lt;span style=""&gt;         &lt;/span&gt;&lt;span style=""&gt;       &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set the title&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add Link&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;Link feedLink = new Link(); &lt;span style=""&gt;                 &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// New a Link in the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;feedLink.setRel(new Attribute("rel", "self"));&lt;span style=""&gt;   &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set "rel" attribute of the link &lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;feedLink.setType(new Attribute("type", "application/atom+xml")); &lt;b style=""&gt;&lt;i style=""&gt;//Set "type" attribute of the link&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;feedLink.setHref(new Attribute("href", FeedHref)); &lt;b style=""&gt;&lt;i style=""&gt;//Set "href" attribute of the link&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.addLink(feedLink);&lt;span style=""&gt;      &lt;/span&gt;&lt;span style=""&gt;              &lt;/span&gt;&lt;span style=""&gt;  &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;&lt;span style=""&gt; &lt;/span&gt;//Add the link&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Set Updated to the entry &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;theFeed.setUpdated(new Updated(new Date()));&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span lang="EN-US"  style="font-size:130%;"&gt;2. Add an entry document to the feed&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;New an Entry&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry = new Entry();&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add Author&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry.addAuthor(new Author("Yu(Carol) Deng"));&lt;span style=""&gt;            &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add Title&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;Title parcelTitle = new Title("text");&lt;span style=""&gt;  &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set title type for the feed&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelTitle.setText("SensorName, TimeStamp, DoubleData");&lt;span style=""&gt;  &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set title content&lt;o:p&gt;&lt;/o:p&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry.setTitle(parcelTitle);&lt;span style=""&gt;              &lt;/span&gt;&lt;b style=""&gt;&lt;i style=""&gt;// Set the title&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Set a universally unique Id for the entry&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry.setId(new Id("urn:uuid:" + new UID().toString()));&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Set Updated to the entry &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;Calendar cal = new GregorianCalendar();&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry.setUpdated(new Updated(cal.getTime()));&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Set the current data to the Content&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;parcelEntry.setContent(nodeSensorName + nodeTimeStamp + nodeDoubleData);&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b&gt;&lt;i&gt;&lt;span lang="EN-US"&gt;Add the Entry to the feed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 45pt; text-indent: -21pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span  lang="EN-US" style="font-family:Wingdings;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;currentFeed.addEntry(parcelEntry);&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span lang="EN-US"  style="font-size:130%;"&gt;3. Atom Feed for Bay1Temp&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt; &lt;/p&gt;&lt;div class="e"&gt;&lt;span class="m"&gt;&lt;span class="pi"&gt;&lt;xml version="1.0" encoding="utf-8"&gt;&lt;span class="m"&gt;?&gt;&lt;/span&gt; &lt;/xml&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="http://www.blogger.com/post-edit.g?blogID=37072521&amp;postID=2099439314219743599#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;feed&lt;/span&gt;&lt;span class="ns"&gt; xmlns&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b class="ns"&gt;http://www.w3.org/2005/Atom&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;id&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;urn:uuid:-7012692:11296d2cefc:-8000&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;id&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;updated&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;2007-05-17T01:15:29.205-05:00&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;updated&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;title&lt;/span&gt;&lt;span class="t"&gt; type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;text&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;Bay1Temp Atom Feed&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;title&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="http://www.blogger.com/post-edit.g?blogID=37072521&amp;postID=2099439314219743599#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;author&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;Yu(Carol) Deng&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;author&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;link&lt;/span&gt; &lt;span class="t"&gt;rel&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;self&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt;  type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;application/atom+xml&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="t"&gt; href&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;http://hagar.cs.indiana.edu:8181/foo.xml&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt; /&gt;&lt;/span&gt; &lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="http://www.blogger.com/post-edit.g?blogID=37072521&amp;postID=2099439314219743599#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;entry&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;id&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;urn:uuid:-7012692:11296d2cefc:-7fff&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;id&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;updated&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;2007-05-16T17:37:17.66-05:00&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;updated&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;title&lt;/span&gt;&lt;span class="t"&gt; type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;text&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;SensorName, TimeStamp, DoubleData&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;title&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div class="c" style="margin-left: 1em; text-indent: -2em;"&gt;&lt;a class="b" onfocus="h()" onclick="return false" href="http://www.blogger.com/post-edit.g?blogID=37072521&amp;postID=2099439314219743599#"&gt;-&lt;/a&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;author&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;Yu(Carol) Deng&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;name&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt; &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;author&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div class="e"&gt; &lt;div style="margin-left: 1em; text-indent: -2em;"&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;&lt;/span&gt;&lt;span class="t"&gt;content&lt;/span&gt;&lt;span class="t"&gt; type&lt;/span&gt;&lt;span class="m"&gt;="&lt;/span&gt;&lt;b&gt;html&lt;/b&gt;&lt;span class="m"&gt;"&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;span class="tx"&gt;Bay1Temp 2007-05-17 05:14:48Z 25.5&lt;br /&gt;Bay1Temp 2007-05-17  05:15:08Z 25.5&lt;br /&gt;Bay1Temp 2007-05-17 05:15:28Z 25.5&lt;/span&gt;&lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;content&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;  &lt;/span&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;entry&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt; &lt;div&gt;&lt;span class="b"&gt; &lt;/span&gt; &lt;span class="m"&gt;&lt;!--&lt;/span--&gt;&lt;span class="t"&gt;feed&lt;/span&gt;&lt;span class="m"&gt;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt; &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span lang="EN-US"  style="font-size:130%;"&gt;4. Bay1Temp Atom Feed in iGoogle&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;Add the url of Bay1Temp Atom Feed to iGoogle, the screen shot below shows the Atom Feed in iGoogle.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/RkvjSQmWMiI/AAAAAAAAAB0/Qb9ccwggz-s/s1600-h/bay1temp_atomfeed.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_q-k3oX9iLDY/RkvjSQmWMiI/AAAAAAAAAB0/Qb9ccwggz-s/s400/bay1temp_atomfeed.bmp" alt="" id="BLOGGER_PHOTO_ID_5065392108741210658" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span lang="EN-US"&gt;Discussion &amp; Questions&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;1. In iGoogle, it shows 3 links for&lt;span style=""&gt;  &lt;/span&gt;Bay1Temp in the feed area &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 12pt;"&gt;&lt;span lang="EN-US"&gt;-- I &lt;span style=""&gt; &lt;/span&gt;tried to clean&lt;span style=""&gt;  &lt;/span&gt;some cookies or cache, but they are still there.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;2. In iGoogle, after refreshing the current webpage, &lt;span style=""&gt; &lt;/span&gt;click the content of feed which had content, is not available for the data. &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;-- I kept clicking the "+" button in the feed area, data is still not available.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span lang="EN-US"&gt;Future work&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;1. Get all sensors from a lab going to individual feeds;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;2. The issues described in Discussion section&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-2099439314219743599?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2099439314219743599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/2099439314219743599'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/05/status-report-for-04252007-05162007.html' title='Status Report for 04/25/2007 -- 05/16/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_q-k3oX9iLDY/RkvjSQmWMiI/AAAAAAAAAB0/Qb9ccwggz-s/s72-c/bay1temp_atomfeed.bmp' height='72' width='72'/></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-6613268463532907483</id><published>2007-04-28T01:40:00.000-04:00</published><updated>2008-12-08T16:42:14.898-05:00</updated><title type='text'>Status Report for 04/04/2007 -- 04/25/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;Detail design for Atom Feed for CIMA Web 2.0&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Method I&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:5in;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\LD\LOCALS~1\Temp\msohtml1\01\clip_image001.png" title="method1"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q-k3oX9iLDY/RjLel4ik3RI/AAAAAAAAABk/8aj_t83Ej8A/s1600-h/method1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_q-k3oX9iLDY/RjLel4ik3RI/AAAAAAAAABk/8aj_t83Ej8A/s400/method1.png" alt="" id="BLOGGER_PHOTO_ID_5058350073904422162" border="0" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Basic idea:&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;On the server side:&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(1) A program keeps running to get Parcel from CIMA Service every several seconds;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Every time the program get Parcel it will call XML Parser to wrap the data into format of item in the Atom Feed;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Write the new-come item to the Atom Feed, and delete the oldest one at the same time;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) Once there is any feed request, it will read the Atom feed (file)&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;On the client side:&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(1) User sends feed request to the server;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Show feed content to the user&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Method II&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:486pt;height:105pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\LD\LOCALS~1\Temp\msohtml1\01\clip_image003.png" title="method2"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/RjLezoik3SI/AAAAAAAAABs/B2ymTqheYp0/s1600-h/method2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/RjLezoik3SI/AAAAAAAAABs/B2ymTqheYp0/s400/method2.png" alt="" id="BLOGGER_PHOTO_ID_5058350310127623458" border="0" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Basic idea:&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;On the server side:&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Once there is any feed request, a serverlet will be started to listen to the Parcel from CIMA service;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) If no data comes, return a message to the user; otherwise, get Parcel and call XML Parser. This step keeps doing this way until it gets enough Parcels based on users requirements(For example, user wants to watch the latest 10 data each time) and to wrap the them into format of item in the Atom Feed&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Write these items to the Atom Feed;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) Once there is any feed request, it will read the Atom feed (file)&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;On the client side:&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(1) User sends feed request to the server;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Show feed content to the user&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;3. Comparison&lt;br /&gt;(1) Method I is simple and it can update&lt;span style="font-size:10;"&gt; &lt;/span&gt;information at the same rate they receive information, but it needs to run the program all the time even if no feed request comes;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Method II saves resource and it gets the data just upon the user request, but it is a little bit complicated and the user may need to wait for some time for server get enough data&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Discussion&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Comparison of two implementations&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Request frequency settings in Sage&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Future work&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The issues described in Discussion section&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-6613268463532907483?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/6613268463532907483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=6613268463532907483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/6613268463532907483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/6613268463532907483'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/04/status-report-for-04042007-04252007.html' title='Status Report for 04/04/2007 -- 04/25/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q-k3oX9iLDY/RjLel4ik3RI/AAAAAAAAABk/8aj_t83Ej8A/s72-c/method1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-8549565809754715596</id><published>2007-04-06T17:55:00.000-04:00</published><updated>2008-12-08T16:42:15.422-05:00</updated><title type='text'>Status Report for 03/07/2007 -- 04/04/2007</title><content type='html'>&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/RhbCEieU3EI/AAAAAAAAABU/oPyKdX4IohQ/s1600-h/AtomWeb20Detail.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/RhbCEieU3EI/AAAAAAAAABU/oPyKdX4IohQ/s400/AtomWeb20Detail.png" alt="" id="BLOGGER_PHOTO_ID_5050437415371856962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p class="MsoNormal" style=""&gt;1. Workflow for Atom Feed for CIMA Web 2.0&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;(1) CIMA persons subscribe all the available parameters by Sage on the browser side; &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) CIMA Client gets the http request and registers a CIMA service;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) CIMA Service sends back a parcel with the service information users required;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) XML Parser converts the parcel format into Atom Syndication format and writes to Atom Feed;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(5) Send results back to users&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Detail Design&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Install Sage at &lt;a href="http://sage.mozdev.org/"&gt;http://sage.mozdev.org/&lt;/a&gt; (Sage is a lightweight RSS and Atom feed reader extension for Mozilla Firefox);&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Make CIMAClientPlatform application run. This application a skeleton application to register with a CIMA service and get data (Parcel) back. In a Parcel, it contains many data, currently, the user needs “SensorName”, “TimeStamp” and “DoubleData”;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) In the class src/edu/indiana/extreme/www/cima/channel/sink/Channel_sinkImpl.java, &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt; &lt;/span&gt;put some code for parsing Parcel to Atom Syndication format and writes to Atom Feed in the "myHandler" method. The basic steps are shown below:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(a) Read XML data into a DOM;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(b) Configure the Factory;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(c) Instantiate the Factory;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(d) Get a parser and parse the parcel;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(e) Write the data required to Atom Feed;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) Copy the Atom Feed to an available URL manually;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(5) On browser side, create a new bookmark in Sage for the Atom Feed just created and Check the feed;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(6) The content/data in the Atom Feed will show on the right panel&lt;/p&gt;  &lt;!--[if gte vml 1]&gt;&lt;v:shape id="_x0000_i1026" type="#_x0000_t75" style="'width:231.75pt;height:174pt'"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\YU(CAR~1\LOCALS~1\Temp\msohtml1\01\clip_image002.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:431.25pt;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\YU(CAR~1\LOCALS~1\Temp\msohtml1\02\clip_image001.png" title=""&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/RhbDYieU3FI/AAAAAAAAABc/6T-9OafDcvo/s1600-h/sage.bmp"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/RhbDYieU3FI/AAAAAAAAABc/6T-9OafDcvo/s400/sage.bmp" alt="" id="BLOGGER_PHOTO_ID_5050438858480868434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Discussion&lt;/b&gt;  &lt;p class="MsoNormal" style=""&gt;1. Currently, I manually copied the Atom Feed from hagar.cs.indiana.edu/Web2.0/...... to&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;http://www.cs.indiana.edu/~ydeng/atomfeedcima.xml, so I am wondering if I need to use some TOMCAT programming to move these files automatically.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. How often the Sage retrieves the data from the Atom Feed.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;Future work&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The issues described in Discussion section&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-8549565809754715596?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/8549565809754715596/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=8549565809754715596' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/8549565809754715596'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/8549565809754715596'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/04/status-report-for-03072007-04042007.html' title='Status Report for 03/07/2007 -- 04/04/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_q-k3oX9iLDY/RhbCEieU3EI/AAAAAAAAABU/oPyKdX4IohQ/s72-c/AtomWeb20Detail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-974161043698791321</id><published>2007-03-07T16:23:00.000-05:00</published><updated>2008-12-08T16:42:15.520-05:00</updated><title type='text'>Status Report for 02/14/2007 -- 03/07/2007</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" lang="EN-US" &gt;Progress&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;1. Atom Feed for CIMA Web 2.0&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_q-k3oX9iLDY/Re8yIQDhiuI/AAAAAAAAABI/KJxitXt23A8/s1600-h/AtomWeb20.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_q-k3oX9iLDY/Re8yIQDhiuI/AAAAAAAAABI/KJxitXt23A8/s400/AtomWeb20.png" alt="" id="BLOGGER_PHOTO_ID_5039301625380965090" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(1) CIMA persons click the link to feeds which will pop up on all the parameters for them to subscribe;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(2) CIMA Client gets the http request and registers a CIMA service;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(3) CIMA Service sends a parcel with the service information users required;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(4) Atom Feed parses the parcel and convert service information into Atom Syndication format and send them back to users&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;2. Research methods&lt;/span&gt;&lt;/p&gt;                              &lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span class="m1"  style="font-size:85%;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;(1) Create a simple atom feed (xml file) sample by hand&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/p&gt;  &lt;p style="font-weight: bold;" class="MsoNormal"&gt;&lt;span style="font-size:85%;"&gt;&lt;feed&gt;&lt;feed&gt;&lt;/feed&gt;&lt;/feed&gt;&lt;/span&gt;&lt;span style="font-weight: normal;"&gt;(2) Make a service with and Create an atom feed from step(1) by using atmosphere Java library;&lt;/span&gt;&lt;/p&gt;&lt;span lang="EN-US"&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;A brief instruction to create an atom feed:&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(a) requirements: JDK 1.4.2 or 1.5&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(b) download the following jar and war files at &lt;a href="http://www.colorfulsoftware.com/projects/atomsphere"&gt;http://www.colorfulsoftware.com/projects/atomsphere&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul style="margin-top: 0cm;" type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="color: rgb(0, 0, 0);" lang="EN-US"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;atmosphere&lt;/span&gt; which includes &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-1.0.1.0.jar?modtime=1164561697&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-1.0.1.0.jar&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-1.0.1.0-javadoc.jar?modtime=1164561726&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-1.0.1.0-javadoc.jar&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-1.0.1.0-sources.jar?modtime=1164561739&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-1.0.1.0-sources.jar&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="color: rgb(0, 0, 0);" lang="EN-US"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;atmosphere-taglib&lt;/span&gt; which includes &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-taglib-1.0.1.0.jar?modtime=1164561988&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-taglib-1.0.1.0.jar&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-taglib-1.0.1.0-sources.jar?modtime=1164562002&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-taglib-1.0.1.0-sources.jar&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="color: rgb(0, 0, 0);" lang="EN-US"&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;atmosphere-webapp&lt;/span&gt; which includes &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-webapp-1.0.1.0.war?modtime=1164562085&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-webapp-1.0.1.0.war&lt;/span&gt;&lt;/a&gt;&lt;o:p style="font-style: italic; font-weight: bold;"&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="color: rgb(0, 0, 0);" lang="EN-US"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;atomphere-weblib&lt;/span&gt; which includes &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-weblib-1.0.1.0.jar?modtime=1164561871&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-weblib-1.0.1.0.jar&lt;/span&gt;&lt;/a&gt;, &lt;a href="http://downloads.sourceforge.net/atomsphere/atomsphere-weblib-1.0.1.0-sources.jar?modtime=1164561882&amp;big_mirror=0"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;atomsphere-weblib-1.0.1.0-sources.jar&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span class="MsoHyperlink"&gt;&lt;span style="color: rgb(0, 0, 0);" lang="EN-US"&gt;jsr173_1.0_api.jar, &lt;a href="https://sjsxp.dev.java.net/files/documents/3071/51533/sjsxp_101.class"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sjsxp_101.class&lt;/span&gt;&lt;/a&gt;, &lt;a href="https://sjsxp.dev.java.net/files/documents/3071/32664/sjsxp_20060411.class"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;sjsxp_fcs_1_0.class&lt;/span&gt;&lt;/a&gt;, StAX Utilities      Project&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(c) export all the jar files above in the java project&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(d) API(JavaDoc) http://www.colorfulsoftware.com/projects/atomsphere/api/&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(e) create an atom feed by atmosphere library (sample code is shown below)&lt;/span&gt;&lt;/p&gt;          &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="" lang="EN-US"&gt;Feed feed = &lt;span style="color:blue;"&gt;new&lt;/span&gt; Feed();&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;feed.addAuthor(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Author(&lt;span style="color:maroon;"&gt;"Yu(Carol) Deng"&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;feed.setId(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Id(&lt;span style="color:maroon;"&gt;"tag:www.xxxxxxxx.com"&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;feed.setTitle(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Title(&lt;span style="color:maroon;"&gt;"Cool Atom Feed"&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;feed.setUpdated(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Updated(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Date&lt;/span&gt;(2005,3,2)));&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;        &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;            &lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="" lang="EN-US"&gt;Entry firstEntry = &lt;span style="color:blue;"&gt;new&lt;/span&gt; Entry();&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;firstEntry.setTitle(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Title(&lt;span style="color:maroon;"&gt;"Some interesting stuff"&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;firstEntry.setId(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Id(&lt;span style="color:maroon;"&gt;"tag:www.XMML.com/2004/12/08.html"&lt;/span&gt;));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;firstEntry.setUpdated(&lt;span style="color:blue;"&gt;new&lt;/span&gt; Updated(&lt;span style="color:blue;"&gt;new&lt;/span&gt; &lt;span style="color:teal;"&gt;Date&lt;/span&gt;(2006,3,1)));&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;feed.addEntry(firstEntry);&lt;span style=""&gt;  &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="" lang="EN-US"&gt;FeedDoc.writeFeedDoc(&lt;span style="color:maroon;"&gt;"foo.xml"&lt;/span&gt;,feed,FeedDoc.encoding,FeedDoc.xml_version);&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;(3) Repeat step(2), use xml beans (apache project) instead;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;I tried to write a program in XML beans (&lt;a href="http://xmlbeans.apache.org/"&gt;http://xmlbeans.apache.org/&lt;/a&gt;) to create an atom feed. But I found that the schema of Atom 1.0 feed follows RELAX NG Compact Schema while xml beans supports XML Schema not RELAX NG Compact Schema. I tried to find the conversion between these two, but failed. I am wondering if there is some kind of conversion between RELAX NG Compact Schema and XML Schema.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;1. The format of parcel from CIMA Service&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;2. The storage of the Atom feed &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span lang="EN-US"&gt;1. The issues described in Discussion section&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-974161043698791321?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/974161043698791321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=974161043698791321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/974161043698791321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/974161043698791321'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/03/status-report-for-02142007-03072007.html' title='Status Report for 02/14/2007 -- 03/07/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_q-k3oX9iLDY/Re8yIQDhiuI/AAAAAAAAABI/KJxitXt23A8/s72-c/AtomWeb20.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-5910362494385680201</id><published>2007-02-14T22:09:00.000-05:00</published><updated>2008-12-08T16:42:15.652-05:00</updated><title type='text'>Status Report for 01/31/2007 -- 02/14/2007</title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span lang="EN-US"&gt;Progress&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"  style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;1. RSS/Atom Feed for CIMA Web 2.0&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_q-k3oX9iLDY/RdPPIuR7CAI/AAAAAAAAAAs/HOCYK-lg6ok/s1600-h/RSSWeb20.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_q-k3oX9iLDY/RdPPIuR7CAI/AAAAAAAAAAs/HOCYK-lg6ok/s400/RSSWeb20.png" alt="" id="BLOGGER_PHOTO_ID_5031592957472081922" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;2. Research methods&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(1) Create an atom feed (atom.xml) sample by hand;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(2) Make a service with atomsphere Java library and produce atom.xml from step(1), that is to say, make a service that responds with the atom feed in the HTTP response;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(3) Repeat step(2), use xml beans (apache project) instead;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(4) Compare the two methods above.&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;3. Research steps&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(1) make feeds;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(2) do flicke;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(3) do pipe&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;4. Read some papers and books related to RSS/Atom feed&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(1) Web sites&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://en.wikipedia.org/wiki/RSS_%28file_format%29#Example_-_RSS_2.0"&gt;http://en.wikipedia.org/wiki/RSS_(file_format)#Example_-_RSS_2.0&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.colorfulsoftware.com/projects/atomsphere"&gt;http://www.colorfulsoftware.com/projects/atomsphere&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://xmlbeans.apache.org/"&gt;http://xmlbeans.apache.org/&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.timfanelli.com/item/howto_create_atom_feed"&gt;http://www.timfanelli.com/item/howto_create_atom_feed&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;span lang="EN-US"&gt;&lt;a href="http://www.russellbeattie.com/notebook/1007853.html"&gt;http://www.russellbeattie.com/notebook/1007853.html&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;(2) Books&lt;/span&gt;&lt;/p&gt;    &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;b class="sans"&gt;Developing Feeds with Rss and Atom &lt;/b&gt;&lt;span lang="EN-US"&gt;&lt;i style=""&gt;by Ben Hammersley&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b class="sans"&gt;Beginning RSS and Atom Programming &lt;/b&gt;&lt;span lang="EN-US"&gt;&lt;i style=""&gt;by Danny Ayers and Andrew Watt&lt;/i&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;b class="sans"&gt;Hacking RSS and Atom &lt;/b&gt;&lt;span style="font-style: italic;"&gt;by Leslie M. Orchard&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;1. &lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style="" lang="EN-US"&gt;RSS for CIMA &lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span style="" lang="EN-US"&gt;&lt;span style=""&gt;2.&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span lang="EN-US"&gt; XML Bean for CIMA&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;b&gt;&lt;span lang="EN-US"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -36pt;"&gt;&lt;span lang="EN-US"&gt;1. The issues described in Discussion section&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-5910362494385680201?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/5910362494385680201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=5910362494385680201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5910362494385680201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/5910362494385680201'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/02/status-report-for-01312007-02142007.html' title='Status Report for 01/31/2007 -- 02/14/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_q-k3oX9iLDY/RdPPIuR7CAI/AAAAAAAAAAs/HOCYK-lg6ok/s72-c/RSSWeb20.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-3730226306708671946</id><published>2007-01-31T22:52:00.000-05:00</published><updated>2008-12-08T16:42:15.819-05:00</updated><title type='text'>Status Report for 01/17/2007 -- 01/31/2007</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/RcFlEI7hhyI/AAAAAAAAAAU/TZ3su_j1hVw/s1600-h/CIMAWeb20.png"&gt;&lt;/a&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style=""&gt;1. CIMA ideas for Web 2.0&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;!--[if gte vml 1]&gt;&lt;v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"&gt;  &lt;v:stroke joinstyle="miter"&gt;  &lt;v:formulas&gt;   &lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;   &lt;v:f eqn="sum @0 1 0"&gt;   &lt;v:f eqn="sum 0 0 @1"&gt;   &lt;v:f eqn="prod @2 1 2"&gt;   &lt;v:f eqn="prod @3 21600 pixelWidth"&gt;   &lt;v:f eqn="prod @3 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @0 0 1"&gt;   &lt;v:f eqn="prod @6 1 2"&gt;   &lt;v:f eqn="prod @7 21600 pixelWidth"&gt;   &lt;v:f eqn="sum @8 21600 0"&gt;   &lt;v:f eqn="prod @7 21600 pixelHeight"&gt;   &lt;v:f eqn="sum @10 21600 0"&gt;  &lt;/v:formulas&gt;  &lt;v:path extrusionok="f" gradientshapeok="t" connecttype="rect"&gt;  &lt;o:lock ext="edit" aspectratio="t"&gt; &lt;/v:shapetype&gt;&lt;v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:6in;"&gt;  &lt;v:imagedata src="file:///C:\DOCUME~1\LD\LOCALS~1\Temp\msohtml1\01\clip_image001.gif" title="CIMAWeb20"&gt; &lt;/v:shape&gt;&lt;![endif]--&gt;&lt;!--[if !vml]--&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_q-k3oX9iLDY/RcFzTY7hhzI/AAAAAAAAAAg/Qne54HW0YuY/s1600-h/CIMAWeb20.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_q-k3oX9iLDY/RcFzTY7hhzI/AAAAAAAAAAg/Qne54HW0YuY/s400/CIMAWeb20.png" alt="" id="BLOGGER_PHOTO_ID_5026425436069005106" border="0" /&gt;&lt;/a&gt;&lt;!--[endif]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(1)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;RSS feeds and XPath subscription&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;      &lt;/span&gt;It can allow CIMA users to subscribe their feeds and retrieve the new lab data.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;span style=""&gt;&lt;span style=""&gt;(2)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Nagios data in Google map&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;      &lt;/span&gt;It can allow CIMA users to monitor CIMA services and show the trends.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(3)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Google Gadgets for data form&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;      &lt;/span&gt;It can allow CIMA users to use some gadgets offered by Google Desktop.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(4)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;AJax Tool kits vs. plain JS&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Roll your own&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Evaluation higher level tools&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;                  It can allow CIMA users to exchange small amount of data with the server &lt;span style=""&gt;        &lt;/span&gt;without&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;              reloading the entire web page each time.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(5)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Jsow&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;“Javascript” “beans” for data equivalent to xml&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(6)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;GUI(Widgets)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;YUI&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Google&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Data Tables&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(7)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Social CIMA&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;&lt;span style=""&gt;      &lt;/span&gt;This intent is to make CIMA portal look like “youTube” Model&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(8)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Toolbar&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;o&lt;span style=""&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Sidebar for Google&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(9)&lt;span style=""&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;What is the “best” RSS/ATOM rendors&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(10)&lt;span style=""&gt;                       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Mobile CIMA&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.5in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=""&gt;&lt;span style=""&gt;(11)&lt;span style=""&gt;                       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span dir="ltr"&gt;Real-time collaboration portal (Flex)&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the build system&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Finish document for CIMA one-click build system, it includes:&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;system description&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;system requirements&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;system directory structure &lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;user guide(install and      uninstall instructions)&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;4. Read some papers related to Web 2.0&lt;br /&gt;&lt;/p&gt;&lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html"&gt;http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://www.paulgraham.com/web20.html"&gt;http://www.paulgraham.com/web20.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://arstechnica.com/news.ars/post/20060901-7650.html"&gt;http://arstechnica.com/news.ars/post/20060901-7650.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://radar.oreilly.com/archives/2006/12/web_20_compact.html"&gt;http://radar.oreilly.com/archives/2006/12/web_20_compact.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://www.scill.de/content/2006/09/21/web-20-buzz-zeitstrahl/"&gt;http://www.scill.de/content/2006/09/21/web-20-buzz-zeitstrahl/&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://radar.oreilly.com/archives/2006/07/levels_of_the_game.html"&gt;http://radar.oreilly.com/archives/2006/07/levels_of_the_game.html&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://web2.wsj2.com/the_state_of_web_20.htm"&gt;http://web2.wsj2.com/the_state_of_web_20.htm&lt;/a&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;a href="http://www.oreillynet.com/pub/wlg/1707?wlg=yes"&gt;http://www.oreillynet.com/pub/wlg/1707?wlg=yes&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;etc. etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Web 2.0 for CIMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The issues described in Discussion section&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Contact Daphne for a press release&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_q-k3oX9iLDY/RcFkTI7hhxI/AAAAAAAAAAM/oO24CU16F88/s1600-h/CIMAWeb20.png"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-3730226306708671946?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/3730226306708671946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=3730226306708671946' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3730226306708671946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/3730226306708671946'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/01/status-report-for-01172007-01312007.html' title='Status Report for 01/17/2007 -- 01/31/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_q-k3oX9iLDY/RcFzTY7hhzI/AAAAAAAAAAg/Qne54HW0YuY/s72-c/CIMAWeb20.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116908183373625797</id><published>2007-01-17T19:56:00.000-05:00</published><updated>2007-01-19T17:02:01.160-05:00</updated><title type='text'>Status Report for 01/10/2007 -- 01/17/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Progress&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Add “Delete lab” option for one-step multiple-lab installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1)&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;Remove portlets for a lab with the short lab name (e.g. RLAB)&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt; &lt;/span&gt;(2) Design &amp; implement&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(a) Set environnent variables &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(b) Get the lab parameters in its property file created by the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(c) Remove xml paragraph for the lab in GuestUserLayout.xml&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(d) Remove xml paragraph for the lab in portlet.xml&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(e) Delete 3 portlets ( &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; ) and SampleDataInfo for the lab &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Directories corresponding to the portlet names for the lab under directory $CATALINA_HOME/webapps&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Directories corresponding to the portlet names for the lab under directory $CATALINA_HOME/work/Catalina/localhost&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Files corresponding to the portlet names for the lab that are under $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/portlets&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;·&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;; font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; line-height: normal; font-size-adjust: none; font-stretch: normal;"&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Files corresponding to the portlet names for the lab that are under $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/layouts/groups&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(f) Delete the lab’s property file&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Write document for installation instructions, a description of how the software directory structure is laid out and a description of the build system, etc.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Web 2.0 for CIMA&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size: 14pt;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size: 14pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The issues described in Discussion section&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Contact Daphne for a press release&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116908183373625797?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116908183373625797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116908183373625797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116908183373625797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116908183373625797'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/01/status-report-for-01102007-01172007.html' title='Status Report for 01/10/2007 -- 01/17/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116854976662046580</id><published>2007-01-11T16:08:00.000-05:00</published><updated>2007-01-31T20:56:52.335-05:00</updated><title type='text'>Status Report for 12/27/2006 -- 01/10/2007</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish the 5&lt;sup&gt;th&lt;/sup&gt; version of one-step multiple-lab installation (based on requirements of Dr. Mcmullen) and showed a demo&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1)&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Implement a one-step installation process with the following parameters provided by the user&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;endpoint of web service (e.g.      &lt;a href="http://156.56.94.164/cgi-bin/CIMAWebServices/TESTWS.cgi"&gt;http://156.56.94.164/cgi-bin/CIMAWebServices/TESTWS.cgi&lt;/a&gt;)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;short lab name (e.g. RLAB)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;lab name for display (e.g.      "Rick Lab")&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;url of laboverview(e.g. http://diffraction.chem.indiana.edu/cgi-bin/test1-cgi/overview4)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;url of lababout(e.g. http://www.iumsc.indiana.edu/aboutIUMSC/index.html)&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Design &amp; implement&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Based on the 4&lt;sup&gt;th&lt;/sup&gt; version, the 5&lt;sup&gt;th&lt;/sup&gt; version can add any lab data into CIMA portal at any time with lab parameters shown above. The whole installation is divided into two parts: base part which includes a framework of CIMA portal without any lab data and lab part which includes lab data. The main idea of the installation process is if it is the 1&lt;sup&gt;st&lt;/sup&gt; time installation, we will install both base part and the lab part for a specific lab, otherwise just install the lab part for a specific lab.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(a) Set environnent variables &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(b) If ANT is not installed, install ANT ; otherwise go to step (c) &lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(c) Create build.properties for the lab from the lab parameters provided by the user;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(d) If it is the 1&lt;sup&gt;st&lt;/sup&gt; time installation, install base part first, otherwise go to step (e) to install the lab part for a specific lab.&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Unpack and install Ant and Tomcat and Gridsphere&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Build IFrame portlet&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Copy cima portlets&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Build guest user layout screen&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(e) Lab part&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Create build.properties for the lab&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Create cima.properties for the lab&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Get SampleDataInfo for the lab&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Deploying 3 portlets ( &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; ) for the lab&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Construct xml paragraph for the lab in GuestUserLayout.xml&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span style=""&gt;·&lt;span style=""&gt;        &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;Construct xml paragraph for the lab in portlet.xml&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;(f) Start up Tomcat&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Finish some improves based on demo of the 5&lt;sup&gt;th&lt;/sup&gt; version and submit the latest version&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Get SampleDataInfo for each lab&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Solve the conflicts with the one-step installation process and Hao Yin’s portlets&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Uniform the naming in GuestUserLayout.xml and portlet.xml so that it is easy for a general target to operate&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Add “delete lab” option for the build process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. The issues described in Discussion section&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Submit a user guide and a package of the one-step process to Kia &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;4. Write document for installation instructions, a description of how the software directory structure is laid out and a description of the build system, etc.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;5. Contact Daphne for a press release&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116854976662046580?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116854976662046580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116854976662046580' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116854976662046580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116854976662046580'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2007/01/status-report-for-12272006-01102007.html' title='Status Report for 12/27/2006 -- 01/10/2007'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116733043410896386</id><published>2006-12-28T13:26:00.000-05:00</published><updated>2007-01-11T15:00:46.626-05:00</updated><title type='text'>Status Report for 12/13/2006 -- 12/27/2006</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress of these 2 weeks&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish the 4&lt;sup&gt;th&lt;/sup&gt; version of one-step multiple-lab installation (based on requirements of Dr. Mcmullen) and showed a demo&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1)&lt;span style=""&gt;  &lt;/span&gt;Requirements&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;Implement a general installation process with the following parameters provided by the user&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;endpoint of web service (e.g.      &lt;a href="http://156.56.94.164/cgi-bin/CIMAWebServices/TESTWS.cgi"&gt;http://156.56.94.164/cgi-bin/CIMAWebServices/TESTWS.cgi&lt;/a&gt;)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;short lab name (e.g. RLAB)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;lab name for display (e.g. "Rick      Lab")&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Design &amp;amp; implement&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt; &lt;/span&gt;The general process for deploying 3 portlets ( &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; ) includes following general targets:&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(a) A general target for modifying &lt;i&gt;portlet.xml&lt;/i&gt; to deploy &lt;b&gt;&lt;i&gt;&lt;u&gt;iframe portlet&lt;o:p&gt;&lt;/o:p&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Construct a template xml file for the specific lab for &lt;i&gt;portlet.xml&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Replace short lab name, default page(iframe url) and about      page(iframe about url )for the lab in &lt;span style=""&gt;the xml file&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Insert the xml file into &lt;i&gt;portlet.xml&lt;/i&gt; under $CATALINA_HOME/webapps/iframe-portlet/WEB-INF/portlet.xml&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(b) A general target for modifying &lt;i&gt;build.properties&lt;/i&gt; in 3 portlets to deploy 3 portlets &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Construct 3 template build.properties files for each portlet of the      specific lab &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Replace short lab name and webservice endpoint with the lab’s      information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Deploy 3 portlets&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(c) A general target for modifying &lt;i style=""&gt;cima.properties &lt;/i&gt;&lt;span style=""&gt;in 3 portlets&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Construct 3 template cima.properties files for each portlet of the      specific lab &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Make webservice endpoint and database address point to correct      address&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(d) A general target for modifying &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Construct a template xml file for the specific lab for &lt;i&gt;GuestUserLayout.xml&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;Replace short lab name and lab name for display for the lab in &lt;span style=""&gt;the xml file&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;&lt;span style=""&gt;I&lt;/span&gt;&lt;span style=""&gt;nsert the xml file into &lt;i&gt;GuestUserLayout.xml &lt;/i&gt;&lt;span style=""&gt;under &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:11;"&gt;$CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/layouts&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;2. Finish some improves based on demo of the 4&lt;sup&gt;th&lt;/sup&gt; version and submit the latest version&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Endpoint of webservice &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;User provides the URL of the      webservice endpoint so that any webservice can run on CIMA portal&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Directory of CIMA installed&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;User can choose or name      directory for CIMA to install so that the installation directory is      separated from the project directory&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Issues on multi-lab installation based on the general one-lab installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Move on to multi-lab installation process based on the general one-lab installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Submit an updated user guide and a package of the one-step process to Kia &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;o:p&gt;&lt;/o:p&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116733043410896386?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116733043410896386/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116733043410896386' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116733043410896386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116733043410896386'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/12/status-report-for-12132006-12272006.html' title='Status Report for 12/13/2006 -- 12/27/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116603495760976027</id><published>2006-12-13T13:33:00.000-05:00</published><updated>2007-01-31T20:57:29.566-05:00</updated><title type='text'>Status Report  for 11/29/2006 -- 12/13/2006</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish 3&lt;sup&gt;rd&lt;/sup&gt; version of one-step multiple-lab installation &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Show public information (including Current Status, Public Samples, and About this lab) for each lab on Guest User Layout screen.&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Call a general target to add      new tabs for new labs in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Modify content of &lt;i style=""&gt;&lt;portlet-class&gt; &lt;/portlet-class&gt;&lt;/i&gt;in &lt;i style=""&gt;portlet.xml&lt;/i&gt; for each portlet&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Make lab name used in portlets consistent and make lab name used for display consistent for each lab installation so that it is easy to call a general target to implement&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Check &lt;i style=""&gt;cima.properties&lt;/i&gt; for &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; portlets and make the &lt;i style=""&gt;endpoint&lt;/i&gt; and &lt;i style=""&gt;database&lt;/i&gt; point to the correct address&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(4) Change background color of CIMA banner&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Modify &lt;i style=""&gt;layout.css&lt;/i&gt;, &lt;i style=""&gt;page.css&lt;/i&gt;,      and &lt;i style=""&gt;tab.css &lt;/i&gt;files under      directory &lt;i style=""&gt;gridsphere/themes/swamps/css      &lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;2. Finish a general target for installing user-defined web service &lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) It has two parameters which are the URL of the web service and address of database&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Install it to the portal&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Files related : &lt;i style=""&gt;installcima.sh&lt;/i&gt;, &lt;i style=""&gt;env.sh&lt;/i&gt;,&lt;span style=""&gt;  &lt;/span&gt;&lt;i style=""&gt;cima.properties&lt;/i&gt;      for each portlet, &lt;i style=""&gt;build.properties&lt;/i&gt;      for each portlet&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Installation of user-defined web service&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Group for iframe portlet for each lab&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get feedback from Kia to improve the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Submit an updated user guide and a package of the one-step process to Kia &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116603495760976027?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116603495760976027/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116603495760976027' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116603495760976027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116603495760976027'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/12/status-report-for-11292006-12132006.html' title='Status Report  for 11/29/2006 -- 12/13/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116483564896369545</id><published>2006-11-29T16:23:00.000-05:00</published><updated>2007-01-31T20:57:46.021-05:00</updated><title type='text'>Status Report for 11/22/2006 -- 11/29/2006</title><content type='html'>&lt;div class="Section1"&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish one-step installation with IUMSC according to requirement from Kia&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Submit a final user guide and a package of the one-step process to Kia&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Back to work on multiple lab installation again&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) When login as root, the user should see all the portlets under the Administration Group&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Add public sample portlet for each lab on Guest User Layout Screen&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Issues related to multiple lab installation during last week&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Group for iframe portlet for each lab&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Continue working on multiple lab installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Improve the multiple lab installation process according to Kia’s feedback&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Try to solve the problems described above in &lt;b&gt;Discussion&lt;/b&gt; section&lt;/p&gt;  &lt;/div&gt;  &lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116483564896369545?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116483564896369545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116483564896369545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116483564896369545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116483564896369545'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/11/status-report-for-11222006-11292006.html' title='Status Report for 11/22/2006 -- 11/29/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116422428121724103</id><published>2006-11-22T14:36:00.000-05:00</published><updated>2007-01-17T19:51:33.746-05:00</updated><title type='text'>Status Report for 11/15/2006 -- 11/22/2006</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish improves made on one-step installation with IUMSC according to feedbacks from Kia&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;span style=""&gt; &lt;/span&gt;(1) Add public sample portlet for each lab on Guest User Layout&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Call a general target to add new tabs for new labs in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Host IP address&lt;/p&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;Provide user interface to input IP address of the host machine where CIMA is running&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Fix bugs&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Bug 1 : Assume Ant was      installed in the user machine and call Ant targets to install Ant for CIMA&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;Solution: Install Ant as the 1&lt;sup&gt;st&lt;/sup&gt; step for the whole installation&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Bug 2 : Errors on setting      environment variables &lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.5in;"&gt;Solution : Modify &lt;i&gt;env.sh &lt;/i&gt;&lt;span style=""&gt;and&lt;i&gt; installcima.sh&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Discuss issues related to multiple lab installation&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Issues related to multiple lab installation&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1)&lt;span style=""&gt;  &lt;/span&gt;Content of user interface after the user logins to CIMA as root and a specific user account&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Provide user interface to install specific lab as user wants&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(3) How we can tell who logins to the CIMA and just show the contents related to their own lab (most important)&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. CIMA CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Group for iframe portlet for each lab&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get feedback from Kia to improve the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Some modifications on content of user interface after user logs in to the system as root or a specific user&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;4. Try to solve the problems described above in &lt;b&gt;Discussion&lt;/b&gt; section&lt;/p&gt;&lt;p class="MsoNormal" style=""&gt;5. Submit an updated user guide and a package of the one-step process to Kia&lt;/p&gt;&lt;span style=""&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116422428121724103?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116422428121724103/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116422428121724103' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116422428121724103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116422428121724103'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/11/status-report-for-11152006-11222006.html' title='Status Report for 11/15/2006 -- 11/22/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116362199262913521</id><published>2006-11-15T15:02:00.000-05:00</published><updated>2007-01-17T19:55:27.010-05:00</updated><title type='text'>Status Report for 11/08/2006 -- 11/15/2006</title><content type='html'>&lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;b style=""&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish the 1.0 version of CIMA one-step installation with multiple labs. It expands the installation from one lab (IUMSC) to multiple labs (Purdue, &lt;st1:place&gt;&lt;st1:city&gt;&lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;ChemMATCars&lt;/st1:city&gt;&lt;/st1:place&gt;, &lt;st1:state st="on"&gt;&lt;st1:state&gt;Minnesota&lt;/st1:state&gt;&lt;/st1:state&gt;&lt;/st1:city&gt;&lt;/st1:place&gt;, Myers, JCU, CSAF)&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;u1:p&gt;&lt;/u1:p&gt;(1) Design&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;A general process for      installing &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;,      and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; portlets for a new lab&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;A general process for adding      a new tab for the new lab in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt;&lt;u1:p&gt;      &lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Implementation&lt;u1:p&gt; &lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Install 3 portlets for each      new lab&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Run Ant by passing in parameters (here is just the labName, e.g. JCU) to an Ant target: &lt;i&gt;Ant –DlabName=JCU addLabs&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- In build.xml, load the parameter with &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;property file="”${labName}”/"&gt;&lt;/property&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Install &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; portlet for the new lab&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Install &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; for the new lab&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Install &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; portlet for the new lab&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Add new tab for each new lab      in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 1 : Writing JAVA programs the read and write DOM XML document&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 2 : Using the standard Ant tasks ‘replace’ or ‘style/xslt’ and defining an XML style sheet.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 3 : Using &lt;i&gt;xmltask&lt;/i&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 0.75in;"&gt;Comparison results: &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 1 is complicated&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;(a) Use an XML parser to read the xml document&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1.25in; text-indent: -0.25in;"&gt;(b) Need a DOM document to put the XML into&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 2 works well for simple search/replace operations, but lacks the ability to perform powerful searches and complex replacement operations&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Method 3 &lt;span class="bodytext"&gt;provides the facility for automatically editing XML files as part of an Ant build. (Best choice)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;u1:p&gt;&lt;/u1:p&gt;2. Improves the installation process according to Kia’s feedback&lt;u1:p&gt;&lt;br /&gt;&lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/u1:p&gt;&lt;/p&gt;    &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Problem : Cannot run properly      on Kia’s machine&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;Solution: Add a host IP address environment variable, and user can input the IP address to run the installation process&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Problem : There are a few      misunderstandings in the user guide&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;Solution : Clarify it&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;br /&gt;3. Submit an installation package of the one-step process including all CIMA sites to Kia&lt;u1:p&gt; &lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;User Guide&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Package&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;ul type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;All installation files&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;CIMA portlet&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Third party software&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Issues related to lab.properties&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Build group for iframe portlet for each lab using ANT script&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Checks CIMA code out from CVS/SVN &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;4. Create a test user account in Ant script&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;br /&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get feedback from Kia to improve the installation process&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Try to solve the problems described above in &lt;b&gt;Discussion&lt;/b&gt; section&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116362199262913521?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116362199262913521/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116362199262913521' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116362199262913521'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116362199262913521'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/11/status-report-for-11082006-11152006.html' title='Status Report for 11/08/2006 -- 11/15/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116300465726869713</id><published>2006-11-08T11:45:00.000-05:00</published><updated>2007-01-17T19:54:50.386-05:00</updated><title type='text'>Status Report for 11/01/2006 -- 11/08/2006</title><content type='html'>&lt;div class="Section1"&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress &lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Finish the one-step process which includes two CIMA sites (IUMSC and JCU) and fix bugs in it&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;(1) Design &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Add a process for installing &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;,      &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;      portlets for JCU&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Add a process for adding JCU      tab for JCU in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt;&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(2) Implementation &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Install 3 portlets for JCU&lt;/li&gt;&lt;/ul&gt;    &lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;- Modify build.properties for &lt;b&gt;&lt;i&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b&gt;&lt;i&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, and &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-left: 1in; text-indent: -0.25in;"&gt;&lt;span style="font-size:100%;"&gt;-&lt;/span&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Run &lt;i&gt;ant install&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Add new tab for JCU in &lt;i&gt;&lt;span style=""&gt;GuestUserLayout.xml&lt;/span&gt;&lt;/i&gt; &lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;(3) Bugs&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Bug 1 : Cannot show detailed      information of each sample in sample data&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;Solution: Copy sample information data to related directory&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Bug 2 : A wrong information      related to labname in &lt;b&gt;&lt;i&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt; portlet&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;Solution : Modify &lt;i&gt;cima.properties&lt;/i&gt;&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;Bug 3 : Some small bugs      related to user interface settings&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="margin-left: 0.25in;"&gt;Solution : Modify the files related&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Reorganize the project directories and submit an updated user guide and a package of the one-step process to Kia &lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;User Guide&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Package&lt;/li&gt;&lt;ul type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;All installation files&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;CIMA portlets&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Third party software&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Build group for iframe portlet for each lab using ANT script&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Check CIMA code out from CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Create a test user account in Ant script&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get feedback from Kia to improve the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Write general processes to install multiple labs&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;4. Try to solve the problems described above in &lt;b&gt;Discussion&lt;/b&gt; section&lt;/p&gt;  &lt;/div&gt;  &lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116300465726869713?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116300465726869713/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116300465726869713' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116300465726869713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116300465726869713'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/11/status-report-for-11012006-11082006.html' title='Status Report for 11/01/2006 -- 11/08/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-37072521.post-116256690526376932</id><published>2006-11-03T10:11:00.000-05:00</published><updated>2007-01-31T20:58:14.519-05:00</updated><title type='text'>Status Report  for 10/25/2006 -- 11/01/2006</title><content type='html'>&lt;div class="Section1"&gt;  &lt;div class="Section1"&gt;  &lt;p class="MsoNormal"&gt;&lt;b style=""&gt;&lt;span style="font-size:14;"&gt;Summary of previous work before this week&lt;/span&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;1. Install CIMA portal (with IUMSC) manually &lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Install all third part      software(Java, Ant, Tomcat, Gridsphere)&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Install CIMA portal&lt;/li&gt;&lt;ul type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;Deploy and configure       “iframe portlet”&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Get the 3 CIMA       portlets(&lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;cimadminprj&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;showmysamples&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;, &lt;b style=""&gt;&lt;i style=""&gt;&lt;u&gt;XRaySampleData&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;)       installed in my GS portal and configure them&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Make a tab(IUMSC) that       has the following 3 sub-menus: Current Status, Public Sample portlet, and       About&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;2. Install the "internal" build system that in a single step does all of the following:&lt;/p&gt;  &lt;ul type="disc"&gt;&lt;li class="MsoNormal" style=""&gt;Provide an organizational      directory structure for the project, including third party tar files for      Gridsphere, Tomcat, Ant&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Install (unpacks, builds) all      third party software(Ant, Tomcat, Gridsphere) from tars.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Build and deploy all of the      CIMA portlets.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Automatically customize      Gridsphere to have the look and feel, layout, color scheme, and logo of      the CIMA portal.&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Build anonymous user views      and IUMSC tab.&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style="text-indent: 0.25in;"&gt;This is based on Apache Ant.&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Progress of this week&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Fix many small bugs in earlier deliverable&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Extend earlier deliverable of "internal" build system to include all CIMA sites (Purdue, &lt;st1:place st="on"&gt;&lt;st1:city st="on"&gt;ChemMATCars&lt;/st1:city&gt;,  &lt;st1:state st="on"&gt;Minnesota&lt;/st1:state&gt;&lt;/st1:place&gt;, Myers, JCU,CSAF)&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Write a simple user’s guide to Kia and let her check the CIMA portal built by this one-step process&lt;/p&gt;  &lt;ul type="square"&gt;&lt;li class="MsoNormal" style=""&gt;User Guide&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Package&lt;/li&gt;&lt;ul type="circle"&gt;&lt;li class="MsoNormal" style=""&gt;All installation files&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;CIMA portlets&lt;/li&gt;&lt;li class="MsoNormal" style=""&gt;Third party software&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Discussion&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;1. Checks CIMA code out from CVS/SVN&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Create a test user account in Ant script&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;&lt;b&gt;&lt;span style="font-size:14;"&gt;Future work&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:14;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;1. Get feedback from Kia to improve the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;2. Fix bugs in the installation process&lt;/p&gt;  &lt;p class="MsoNormal" style=""&gt;3. Try to solve the problems described above in &lt;b&gt;Discussion&lt;/b&gt; section&lt;/p&gt;  &lt;/div&gt;  &lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/37072521-116256690526376932?l=yucaroldeng.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://yucaroldeng.blogspot.com/feeds/116256690526376932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=37072521&amp;postID=116256690526376932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116256690526376932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/37072521/posts/default/116256690526376932'/><link rel='alternate' type='text/html' href='http://yucaroldeng.blogspot.com/2006/11/status-report-for-10252006-11012006.html' title='Status Report  for 10/25/2006 -- 11/01/2006'/><author><name>Yu(Carol) Deng</name><uri>http://www.blogger.com/profile/09033872546777847743</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
