Wednesday, March 07, 2007

Status Report for 02/14/2007 -- 03/07/2007

Progress

1. Atom Feed for CIMA Web 2.0

(1) CIMA persons click the link to feeds which will pop up on all the parameters for them to subscribe;

(2) CIMA Client gets the http request and registers a CIMA service;

(3) CIMA Service sends a parcel with the service information users required;

(4) Atom Feed parses the parcel and convert service information into Atom Syndication format and send them back to users

2. Research methods

(1) Create a simple atom feed (xml file) sample by hand

(2) Make a service with and Create an atom feed from step(1) by using atmosphere Java library;

A brief instruction to create an atom feed:

(a) requirements: JDK 1.4.2 or 1.5

(b) download the following jar and war files at http://www.colorfulsoftware.com/projects/atomsphere

(c) export all the jar files above in the java project

(d) API(JavaDoc) http://www.colorfulsoftware.com/projects/atomsphere/api/

(e) create an atom feed by atmosphere library (sample code is shown below)

Feed feed = new Feed();
feed.addAuthor(new Author("Yu(Carol) Deng"));
feed.setId(new Id("tag:www.xxxxxxxx.com"));
feed.setTitle(new Title("Cool Atom Feed"));
feed.setUpdated(new Updated(new Date(2005,3,2)));

Entry firstEntry = new Entry();
firstEntry.setTitle(new Title("Some interesting stuff"));
firstEntry.setId(new Id("tag:www.XMML.com/2004/12/08.html"));
firstEntry.setUpdated(new Updated(new Date(2006,3,1)));
feed.addEntry(firstEntry);

FeedDoc.writeFeedDoc("foo.xml",feed,FeedDoc.encoding,FeedDoc.xml_version);

(3) Repeat step(2), use xml beans (apache project) instead;

I tried to write a program in XML beans (http://xmlbeans.apache.org/) 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.

Discussion

1. The format of parcel from CIMA Service

2. The storage of the Atom feed

Future work

1. The issues described in Discussion section

Wednesday, February 14, 2007

Status Report for 01/31/2007 -- 02/14/2007

Progress

1. RSS/Atom Feed for CIMA Web 2.0

2. Research methods

(1) Create an atom feed (atom.xml) sample by hand;

(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;

(3) Repeat step(2), use xml beans (apache project) instead;

(4) Compare the two methods above.

3. Research steps

(1) make feeds;

(2) do flicke;

(3) do pipe

4. Read some papers and books related to RSS/Atom feed

(1) Web sites

(2) Books

  • Developing Feeds with Rss and Atom by Ben Hammersley
  • Beginning RSS and Atom Programming by Danny Ayers and Andrew Watt
  • Hacking RSS and Atom by Leslie M. Orchard

Discussion

1. RSS for CIMA

2. XML Bean for CIMA


Future work

1. The issues described in Discussion section

Wednesday, January 31, 2007

Status Report for 01/17/2007 -- 01/31/2007

Progress

1. CIMA ideas for Web 2.0

(1) RSS feeds and XPath subscription

It can allow CIMA users to subscribe their feeds and retrieve the new lab data.

(2) Nagios data in Google map

It can allow CIMA users to monitor CIMA services and show the trends.

(3) Google Gadgets for data form

It can allow CIMA users to use some gadgets offered by Google Desktop.

(4) AJax Tool kits vs. plain JS

o Roll your own

o Evaluation higher level tools

It can allow CIMA users to exchange small amount of data with the server without

reloading the entire web page each time.

(5) Jsow

o “Javascript” “beans” for data equivalent to xml

(6) GUI(Widgets)

o YUI

o Google

o Data Tables

(7) Social CIMA

This intent is to make CIMA portal look like “youTube” Model

(8) Toolbar

o Sidebar for Google

(9) What is the “best” RSS/ATOM rendors

(10) Mobile CIMA

(11) Real-time collaboration portal (Flex)

2. Fix bugs in the build system

3. Finish document for CIMA one-click build system, it includes:

  • system description
  • system requirements
  • system directory structure
  • user guide(install and uninstall instructions)

4. Read some papers related to Web 2.0

etc. etc.

Discussion

1. Web 2.0 for CIMA

2. CIMA CVS/SVN

Future work

1. The issues described in Discussion section

2. Contact Daphne for a press release



Wednesday, January 17, 2007

Status Report for 01/10/2007 -- 01/17/2007

Progress

1. Add “Delete lab” option for one-step multiple-lab installation process

(1) Requirements

Remove portlets for a lab with the short lab name (e.g. RLAB)

(2) Design & implement

(a) Set environnent variables

(b) Get the lab parameters in its property file created by the installation process

(c) Remove xml paragraph for the lab in GuestUserLayout.xml

(d) Remove xml paragraph for the lab in portlet.xml

(e) Delete 3 portlets ( cimadminprj, XRaySampleData, and showmysamples ) and SampleDataInfo for the lab

· Directories corresponding to the portlet names for the lab under directory $CATALINA_HOME/webapps

· Directories corresponding to the portlet names for the lab under directory $CATALINA_HOME/work/Catalina/localhost

· Files corresponding to the portlet names for the lab that are under $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/portlets

· Files corresponding to the portlet names for the lab that are under $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/layouts/groups

(f) Delete the lab’s property file

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.

Discussion

1. Web 2.0 for CIMA

2. CIMA CVS/SVN

Future work

1. The issues described in Discussion section

2. Fix bugs in the installation process

3. Contact Daphne for a press release

Thursday, January 11, 2007

Status Report for 12/27/2006 -- 01/10/2007

Progress

1. Finish the 5th version of one-step multiple-lab installation (based on requirements of Dr. Mcmullen) and showed a demo

(1) Requirements

Implement a one-step installation process with the following parameters provided by the user

  • endpoint of web service (e.g. http://156.56.94.164/cgi-bin/CIMAWebServices/TESTWS.cgi)
  • short lab name (e.g. RLAB)
  • lab name for display (e.g. "Rick Lab")
  • url of laboverview(e.g. http://diffraction.chem.indiana.edu/cgi-bin/test1-cgi/overview4)
  • url of lababout(e.g. http://www.iumsc.indiana.edu/aboutIUMSC/index.html)

(2) Design & implement

Based on the 4th version, the 5th 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 1st 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.

(a) Set environnent variables

(b) If ANT is not installed, install ANT ; otherwise go to step (c)

(c) Create build.properties for the lab from the lab parameters provided by the user;

(d) If it is the 1st time installation, install base part first, otherwise go to step (e) to install the lab part for a specific lab.

· Unpack and install Ant and Tomcat and Gridsphere

· Build IFrame portlet

· Copy cima portlets

· Build guest user layout screen

(e) Lab part

· Create build.properties for the lab

· Create cima.properties for the lab

· Get SampleDataInfo for the lab

· Deploying 3 portlets ( cimadminprj, XRaySampleData, and showmysamples ) for the lab

· Construct xml paragraph for the lab in GuestUserLayout.xml

· Construct xml paragraph for the lab in portlet.xml

(f) Start up Tomcat

2. Finish some improves based on demo of the 5th version and submit the latest version

(1) Get SampleDataInfo for each lab

(2) Solve the conflicts with the one-step installation process and Hao Yin’s portlets

(3) Uniform the naming in GuestUserLayout.xml and portlet.xml so that it is easy for a general target to operate

Discussion

1. Add “delete lab” option for the build process

2. CIMA CVS/SVN

Future work

1. The issues described in Discussion section

2. Fix bugs in the installation process

3. Submit a user guide and a package of the one-step process to Kia

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.

5. Contact Daphne for a press release

Thursday, December 28, 2006

Status Report for 12/13/2006 -- 12/27/2006

Progress of these 2 weeks

1. Finish the 4th version of one-step multiple-lab installation (based on requirements of Dr. Mcmullen) and showed a demo

(1) Requirements

Implement a general installation process with the following parameters provided by the user

(2) Design & implement

The general process for deploying 3 portlets ( cimadminprj, XRaySampleData, and showmysamples ) includes following general targets:

(a) A general target for modifying portlet.xml to deploy iframe portlet

  • Construct a template xml file for the specific lab for portlet.xml
  • Replace short lab name, default page(iframe url) and about page(iframe about url )for the lab in the xml file
  • Insert the xml file into portlet.xml under $CATALINA_HOME/webapps/iframe-portlet/WEB-INF/portlet.xml

(b) A general target for modifying build.properties in 3 portlets to deploy 3 portlets

  • Construct 3 template build.properties files for each portlet of the specific lab
  • Replace short lab name and webservice endpoint with the lab’s information
  • Deploy 3 portlets

(c) A general target for modifying cima.properties in 3 portlets

  • Construct 3 template cima.properties files for each portlet of the specific lab
  • Make webservice endpoint and database address point to correct address

(d) A general target for modifying GuestUserLayout.xml

  • Construct a template xml file for the specific lab for GuestUserLayout.xml
  • Replace short lab name and lab name for display for the lab in the xml file
  • Insert the xml file into GuestUserLayout.xml under $CATALINA_HOME/webapps/gridsphere/WEB-INF/CustomPortal/layouts

2. Finish some improves based on demo of the 4th version and submit the latest version

(1) Endpoint of webservice

  • User provides the URL of the webservice endpoint so that any webservice can run on CIMA portal

(2) Directory of CIMA installed

  • User can choose or name directory for CIMA to install so that the installation directory is separated from the project directory

Discussion

1. Issues on multi-lab installation based on the general one-lab installation process

2. CIMA CVS/SVN

Future work

1. Move on to multi-lab installation process based on the general one-lab installation process

2. Fix bugs in the installation process

3. Submit an updated user guide and a package of the one-step process to Kia

Wednesday, December 13, 2006

Status Report for 11/29/2006 -- 12/13/2006

Progress

1. Finish 3rd version of one-step multiple-lab installation

(1) Show public information (including Current Status, Public Samples, and About this lab) for each lab on Guest User Layout screen.

  • Call a general target to add new tabs for new labs in GuestUserLayout.xml
  • Modify content of in portlet.xml for each portlet

(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

(3) Check cima.properties for cimadminprj, XRaySampleData, and showmysamples portlets and make the endpoint and database point to the correct address

(4) Change background color of CIMA banner

  • Modify layout.css, page.css, and tab.css files under directory gridsphere/themes/swamps/css

2. Finish a general target for installing user-defined web service

(1) It has two parameters which are the URL of the web service and address of database

(2) Install it to the portal

  • Files related : installcima.sh, env.sh, cima.properties for each portlet, build.properties for each portlet

Discussion

1. Installation of user-defined web service

2. CIMA CVS/SVN

3. Group for iframe portlet for each lab

Future work

1. Get feedback from Kia to improve the installation process

2. Fix bugs in the installation process

3. Submit an updated user guide and a package of the one-step process to Kia

Wednesday, November 29, 2006

Status Report for 11/22/2006 -- 11/29/2006

Progress

1. Finish one-step installation with IUMSC according to requirement from Kia

2. Submit a final user guide and a package of the one-step process to Kia

3. Back to work on multiple lab installation again

(1) When login as root, the user should see all the portlets under the Administration Group

(2) Add public sample portlet for each lab on Guest User Layout Screen

Discussion

1. Issues related to multiple lab installation during last week

2. CIMA CVS/SVN

3. Group for iframe portlet for each lab

Future work

1. Continue working on multiple lab installation process

2. Improve the multiple lab installation process according to Kia’s feedback

3. Try to solve the problems described above in Discussion section


Wednesday, November 22, 2006

Status Report for 11/15/2006 -- 11/22/2006

Progress

1. Finish improves made on one-step installation with IUMSC according to feedbacks from Kia

(1) Add public sample portlet for each lab on Guest User Layout

Call a general target to add new tabs for new labs in GuestUserLayout.xml

(2) Host IP address

Provide user interface to input IP address of the host machine where CIMA is running

(3) Fix bugs

  • Bug 1 : Assume Ant was installed in the user machine and call Ant targets to install Ant for CIMA

Solution: Install Ant as the 1st step for the whole installation

  • Bug 2 : Errors on setting environment variables

Solution : Modify env.sh and installcima.sh

2. Discuss issues related to multiple lab installation

Discussion

1. Issues related to multiple lab installation

(1) Content of user interface after the user logins to CIMA as root and a specific user account

(2) Provide user interface to install specific lab as user wants

(3) How we can tell who logins to the CIMA and just show the contents related to their own lab (most important)

2. CIMA CVS/SVN

3. Group for iframe portlet for each lab

Future work

1. Get feedback from Kia to improve the installation process

2. Fix bugs in the installation process

3. Some modifications on content of user interface after user logs in to the system as root or a specific user

4. Try to solve the problems described above in Discussion section

5. Submit an updated user guide and a package of the one-step process to Kia

Wednesday, November 15, 2006

Status Report for 11/08/2006 -- 11/15/2006

Progress

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, ChemMATCars, Minnesota, Myers, JCU, CSAF)

(1) Design

  • A general process for installing cimadminprj, XRaySampleData, and showmysamples portlets for a new lab
  • A general process for adding a new tab for the new lab in GuestUserLayout.xml

(2) Implementation

  • Install 3 portlets for each new lab

- Run Ant by passing in parameters (here is just the labName, e.g. JCU) to an Ant target: Ant –DlabName=JCU addLabs

- In build.xml, load the parameter with

- Install cimadminprj portlet for the new lab

- Install XRaySampleData for the new lab

- Install showmysamples portlet for the new lab

  • Add new tab for each new lab in GuestUserLayout.xml

- Method 1 : Writing JAVA programs the read and write DOM XML document

- Method 2 : Using the standard Ant tasks ‘replace’ or ‘style/xslt’ and defining an XML style sheet.

- Method 3 : Using xmltask

Comparison results:

- Method 1 is complicated

(a) Use an XML parser to read the xml document

(b) Need a DOM document to put the XML into

- Method 2 works well for simple search/replace operations, but lacks the ability to perform powerful searches and complex replacement operations

- Method 3 provides the facility for automatically editing XML files as part of an Ant build. (Best choice)

2. Improves the installation process according to Kia’s feedback

  • Problem : Cannot run properly on Kia’s machine

Solution: Add a host IP address environment variable, and user can input the IP address to run the installation process

  • Problem : There are a few misunderstandings in the user guide

Solution : Clarify it


3. Submit an installation package of the one-step process including all CIMA sites to Kia

  • User Guide
  • Package
    • All installation files
    • CIMA portlet
    • Third party software


Discussion

1. Issues related to lab.properties

2. Build group for iframe portlet for each lab using ANT script

3. Checks CIMA code out from CVS/SVN

4. Create a test user account in Ant script


Future work

1. Get feedback from Kia to improve the installation process

2. Fix bugs in the installation process

3. Try to solve the problems described above in Discussion section

Wednesday, November 08, 2006

Status Report for 11/01/2006 -- 11/08/2006

Progress

1. Finish the one-step process which includes two CIMA sites (IUMSC and JCU) and fix bugs in it

(1) Design

  • Add a process for installing cimadminprj, XRaySampleData, and showmysamples portlets for JCU
  • Add a process for adding JCU tab for JCU in GuestUserLayout.xml

(2) Implementation

  • Install 3 portlets for JCU

- Modify build.properties for cimadminprj, XRaySampleData, and showmysamples

- Run ant install

  • Add new tab for JCU in GuestUserLayout.xml

(3) Bugs

  • Bug 1 : Cannot show detailed information of each sample in sample data

Solution: Copy sample information data to related directory

  • Bug 2 : A wrong information related to labname in showmysamples portlet

Solution : Modify cima.properties

  • Bug 3 : Some small bugs related to user interface settings

Solution : Modify the files related

2. Reorganize the project directories and submit an updated user guide and a package of the one-step process to Kia

  • User Guide
  • Package
    • All installation files
    • CIMA portlets
    • Third party software

Discussion

1. Build group for iframe portlet for each lab using ANT script

2. Check CIMA code out from CVS/SVN

3. Create a test user account in Ant script

Future work

1. Get feedback from Kia to improve the installation process

2. Fix bugs in the installation process

3. Write general processes to install multiple labs

4. Try to solve the problems described above in Discussion section


Friday, November 03, 2006

Status Report for 10/25/2006 -- 11/01/2006

Summary of previous work before this week

1. Install CIMA portal (with IUMSC) manually

  • Install all third part software(Java, Ant, Tomcat, Gridsphere)
  • Install CIMA portal
    • Deploy and configure “iframe portlet”
    • Get the 3 CIMA portlets(cimadminprj, showmysamples, XRaySampleData) installed in my GS portal and configure them
    • Make a tab(IUMSC) that has the following 3 sub-menus: Current Status, Public Sample portlet, and About

2. Install the "internal" build system that in a single step does all of the following:

  • Provide an organizational directory structure for the project, including third party tar files for Gridsphere, Tomcat, Ant
  • Install (unpacks, builds) all third party software(Ant, Tomcat, Gridsphere) from tars.
  • Build and deploy all of the CIMA portlets.
  • Automatically customize Gridsphere to have the look and feel, layout, color scheme, and logo of the CIMA portal.
  • Build anonymous user views and IUMSC tab.

This is based on Apache Ant.

Progress of this week

1. Fix many small bugs in earlier deliverable

2. Extend earlier deliverable of "internal" build system to include all CIMA sites (Purdue, ChemMATCars, Minnesota, Myers, JCU,CSAF)

3. Write a simple user’s guide to Kia and let her check the CIMA portal built by this one-step process

  • User Guide
  • Package
    • All installation files
    • CIMA portlets
    • Third party software

Discussion

1. Checks CIMA code out from CVS/SVN

2. Create a test user account in Ant script

Future work

1. Get feedback from Kia to improve the installation process

2. Fix bugs in the installation process

3. Try to solve the problems described above in Discussion section