Wednesday, February 28, 2007

Status Report for 02/22/07 to 02/28/07

1. Time series analysis graph
To improve interface of the time series analysis portlet, I have been trying to use BHO’s graphic library in a way a user can click a graph to change inputs. However, due to some deficiency in BHO’s graphic library, I need to modify some behavior in the portlet and this requires some changes in data structures in the existing portlet. I haven’t finished yet but will finish soon.

2. Workflow mapping in Grids
As a part of implementation of workflow mapping developed by Yili, I have been making test programs as follows:
a. GPIR client (Completed)
GPIR is a web service as defined in http://gridport.net/services/gpir/webservices.html. It supports two operations: GPIR Query to patch information and GPIR Ingester for updating. By using a query, we can get server information about load, jobs, downtime, queues, queue, and so on. A part of codes as follows:
call.setTargetObjectURI(WS_NAME); // Set a web service API
call.setMethodName(WS_METHOD); // Set method name
Vector params = new Vector();
params.addElement(new Parameter("strQuery", String.class, strQuery, null));
params.addElement(new Parameter("strVO", String.class, strVO, null));
call.setParams(params);
Response resp = call.invoke(url, ""); // Web service invocation
Whole sample code can be found in the same URL above.
b. Network Weather Service (Not yet. A few bugs need to be cleared out)
This is also a web service which provides forecasting service to predict on performance considering network conditions and resources. A sample code can be found in http://nws.cs.ucsb.edu/ewiki/nws.php?id=BQP+Web+Service

c. Running time prediction (Not yet)

After finishing those, I will discuss Yili to define interfaces to give those data.

Wednesday, February 21, 2007

Status Report for 02/14/07 to 02/21/07

1. Time series analysis graph
I have been working with drawing time series analysis graph by using BFO’s graphic library (http://big.faceless.org/). By using this java library, we can draw graphs with ease. Since the library can be used as a tag library, we can use this with JSP or JSF. Especially, with one of JSTL tag library, , BFO’s graph library can make a graph iteratively without explicit operation. The variable used in this case can be an array or list in the bean class. Another advantage of using BFO’s graphic library, we can make the graph interactive so that a user can click data inside the graph and verify its contents. For this purpose, we need to use both javascript and png graph format. As for the next step, I will put more interactive features to improve user interface in time series analysis portlet of QuakeSim2 project.

2. Workflow mapping in Grids
I’ve started to help Yili to implement workflow mapping scheme. My work is to supply information such as GPIR, Network Weather Service, running time prediction to a match maker which will construct an efficient DAGMan workflow based on the inputs. Currently I’m looking at what kind of interfaces will be used between the match maker and data suppliers

Thursday, February 15, 2007

Status Report for 02/08/07 to 02/14/07

1. Analyze-tseri web service
I have been working with building a web service to execute Time Series Analysis (analyze_tseri). A few bugs have been removed during the last week and now it works very well so far. Using the new web service, a user needs to send mainly parameters, in contrast to the previous case a user needs to generate a drive file to execute Time Series Analysis application (analyze_tseri_linux). A test client has been implemented and is running at http://gf1.ucs.indiana.edu:8888/STFILTER/EstimatedParams.jsf. A button “Run ST_FILTER_WS” will execute the analyze_tseri web service, while another button “Run ST_FILTER” still invokes the old method.
To refer to the definition of the service, a user can see the definition (WSDL) from here (http://gf1.ucs.indiana.edu:8888/analyze-tseri-exec/services/AnalyzeTseriExec)

As an output, the Time Series Analysis web service generates 3 picture files and returns the urls of the files so that a user can download the output from the server. A sample output is as follows:
http://gf1.ucs.indiana.edu:8888//analyze-tseri-exec/public_project-TEST/public_project-TEST.input.xyz.X.png http://gf1.ucs.indiana.edu:8888//analyze-tseri-exec/public_project-TEST/public_project-TEST.input.xyz.Y.png http://gf1.ucs.indiana.edu:8888//analyze-tseri-exec/public_project-TEST/public_project-TEST.input.xyz.Z.png

2. Paper submission to TeraGrid 07
Working with Mehment Nacar and Marlon, a paper for TeraGrid07 conference has been submitted. The paper mainly focuses on how OGCE and portlets was used to build Big Red portal to support customized application execution such as MEME command and showq command and how Grid Tags Libraries And Beans (GTLAB), developed by Mehmet Nacar, can be used for the best portlet production. A file is available to access at here (http://www.cs.indiana.edu/~jychoi/files/Teragrid_Big_Red_Portal-final.pdf)

Wednesday, February 07, 2007

Status Report for 02/01/07 to 02/07/07

I’ve just finished implementing a client (STFILTER) which will invoke time series analysis web service (AnalyzeTseriService). I added a web service version for time series analysis, called execATS. WSDL of execATS can be accessed at http://gf1.ucs.indiana.edu:8888/analyze-tseri-exec/services/AnalyzeTseriExec.

execATS needs the following 4 arguments as input:
  1. String siteCode – Site code such as dhlg
  2. String dataURL – Data file URL from which the server will download data file
  3. double[][] globalParam – Parameters for global station. Array of (double Parameter type, double param_1, … , double param_n)
  4. double[][] siteParam – Parameters for the specific station . Array of (double Parameter type, double param_1, … , double param_n)
A very simple example to create a client to invoke web service can be found at http://ws.apache.org/axis/java/user-guide.html#BasicsGettingStarted. In a nut shell, execATS web service can be executed from a client by using the following code:

String siteCode = "dhlg";
String dataUrl = "http://server:port/datafile";
double[][] globalParam = {
{ 7, 0.0, 50.0, 2005.0, 2008.0 },
{ 9, 0.0, 50.0, 2005.0, 2008.0 } };
double[][] siteParam = {
{ 8, 0.0, 50.0, 2005.0, 2008.0 } };

Service service = new Service();
Call call = (Call) service.createCall();

call.setTargetEndpointAddress(new java.net.URL(endpoint));
call.setOperationName(new QName("http://soapinterop.org/",
"execATS"));

String[] ret = (String[]) call.invoke(new Object[] {siteCode, dataUrl, globalParam, siteParam});