Saturday, May 29, 2010

OGSA-DAI - Coding with enthusiasm

As summer of codes officially started, I did my second commit on May 26th midnight (Sri Lankan time). In this commit, I have created the build and properties files of the client and server module. And wow, this commit has become the 1000th commit of OGSA-DAI. As an open source project OGSA-DAI has reached many mile stones and success stories in a relatively short period. Though we, GSoCers develop remotely from the mentors and the other developers, the super-friendly private/developer irc of OGSA-DAI always gives us the feeling of working in the same environment as the other developers  are.

1026 and 1030 became my third and fourth commits respectively, where 1026 was a minor fix on the wsdls, while 1030 fixed the namespace to package mapping based on the cxf -p option in the build.xml, which was handled by NStoPkg.properties in the Axis presentation layer. Currently I am in the process of developing the client and the server, which will either be committed to the trunk as a huge commit or a huge list of tiny commits, in the upcoming week.

To get the patches of my progress so far, use the below command from ogsadai_home/presentation;
svn diff -r 994:${current} cxf > gsoc2010.diff
svn diff -r 1274:${current} rest > gsoc2010Rest.diff
svn diff -r 1261:${current} ../release-scripts/ogsa-dai/cxf > gsoc2010Release.diff
svn diff -r 1406:${current} ../release-scripts/ogsa-dai/rest > gsoc2010ReSTRelease.diff

or for Release Script, from ogsa-dai/trunk/release-scripts/ogsa-dai/
svn diff -r 1261:${current} cxf > gsoc2010Release.diff

gsoc2010.diff refers to the cxf/soap based layer patch, while gsoc2010Rest.diff refers to the ReSTful layer, where gsoc2010Release.diff refers to the release script.

Monday, May 24, 2010

GSoC with OMII-UK

Google Summer of Codes officially begins today with so much of excitement, and the students have already started their development. One more energetic summer with OMII-UK has begun with 4 students, this time. As with 2008 and 2009, this summer too projects have been chosen from the set of projects under OMII-UK. Apart from Michal and Pradeeban from the OGSA-DAI team, two more students each from Rapid and SAGA teams, make the list of participants mentored by projects under OMII-UK this time.

Thursday, May 20, 2010

Link them not~!

I was on the Scientific Linux FAQ, where a strange Q/A hit my eyes.

Q. Why won't you say the name of the commercial enterprise distribution S.L. is built from?

A. That name is trademarked. The easiest way to keep away from all trademark problems, is to completely avoid the name. We believe that most readers are able to figure out which commercial enterprise linux distribution we are talking about.
I found that Scientific Linux was derived from Red Hat Enterprise Linux. I also found the reason for hiding the fact is, to avoid the copyrights issues by violating the Red Hat license, from wikipedia. I later found that once CentOS, another Red Hat derivative had to face some license issues as they have used Red Hat logos in their site. Red Hat had warned CentOS for 'misleading' the users by providing links to Red Hat site in the home page of CentOS. The letter from Red Hat's outside counsel to CentOS can be found here. So think twice before linking some one.

Designing an alternative presentation layer!

My first post on the OGSA-DAI blog, on my GSoC 2010 project, with an introduction to the project, initial design decisions, as well as the Google Summer of Codes updates upto the moment, can be found here.

Commit 994 has become my first commit. Apache CXF 2.2.6 has to be downloaded from here and extracted to "ogsa-dai/third-party/packages/cxf/2.2.6" *** (as the case with the Axis presentation layer). After that, "ant all" from"trunk/presentation/cxf/stubs" will produce ogsadai-4.1-cxf-stubs-1.0.jar. This commit is just for the creation of the stubs jar using CXF, and further commits will follow. After the commit, I have included the module info the  repository structure trac page. The OGSA-DAI nightly tests check the modules by running each night on the server [1].

***
cxf.lib.dir=${packages.dir}/cxf/2.2.6/apache-cxf-2.2.6/lib
cxf.version=2.2.6

Axis specific wsdl (data_request_execution_service_service.wsdl)
<soap:address location="http://localhost:8080/axis/services/DataRequestExecutionService"/>

CXF specific wsdl
<soap:address location="http://localhost:8080/services/DataRequestExecutionService"/>


  <wsdl:import namespace="http://ogsadai.org.uk/namespaces/2007/04/service/execution/bindings" location="data_request_execution_service_bindings.wsdl"/>
  <wsdl:service name="DataRequestExecutionService">
    <wsdl:port name="WSDataRequestExecutionServicePortTypePort" binding="binding:WSDataRequestExecutionServicePortTypeSOAPBinding">
      <soap:address location="http://localhost:8080/services/DataRequestExecutionService"/>
    </wsdl:port>
  </wsdl:service>

Apache CXF seems to be releasing the builds once in a two months. Currently they have released 2.2.8, though I have started with 2.2.6. I have seen many articles on migrating from Apache Axis 1.x to Axis 2. But articles on migrating to CXF from Axis is rare. Though this makes the task more challenging, it has also given me a chance for a research which of course is really cool.

Java WS Core/Final WSRF Migration Guide  describes the code changes of the Java WS Core Framework of Globus Alliance, including WS-Addressing and Faults.

Building the modules using ANT instead of plain java or CXF WSDLToJava alone is interesting and make the task easier, given the fact that we have many wsdls. The below code segments** are for the existing presentation layers, which are removed for cxf at the moment, as CXF comes with support for WS-Addressing 1.0.  (yet to discuss whether to use the CXF libs or the customized ones from globus/ws-addressing as it is for the existing layers). More to analyze the wsdd for the Axis based layer, and I may need to customize the JAXB bindings, as well. 

**
# WS-Addressing
addressing.lib.dir=${dependencies.dir}/globus/ws-addressing/addressing/1.0

[1]  Test Reports 20/05/2010 22:05:50 : daitest
[2] Coding Guidelines

In this post, WSDL code was written using the HTML encoder/decoder provided here.

gsoc-srilanka

The beauty of the Google Summer of Codes is, it never comes on a summer of Sri Lanka. Especially this time, it has come in a heavy rainy days. And parallel to the final semester of our undergraduate studies. It should be noted that Sri Lankan students still enjoy the 'Summer' with Google, and again we reached the list of top 10 as the country.

We recently had the first summer of codes 2010 meetup of Sri Lanka, at the Conference room of the Computer Science & Engineering Department, University of Moratuwa. Head of the department Mrs.Vishaka Nanayakkara, representatives from FOSS.lk, and past and present GSoCers from the university as well as the other universities participated in the meetup, which went fine as an ice breaking session among the GSoCers. We discussed about increasing the participants from the country in the upcoming years. As a coincidence we had also created a google group gsoc-srilanka to promote GSoC in Sri Lanka. Feel free to join, if you are a Sri Lankan GSoCer (Student or mentor) or a FOSS enthusiast.

Friday, May 14, 2010

Mooshabaya 1.0 - RC2

RC2 of Mooshabaya 1.0 with all the primary features implemented is
available now: https://mooshabaya.svn.sourceforge.net/svnroot/mooshabaya/tags/1.0-RC2/

A screencast of Mooshabaya 1.0 - RC2:


Coloring of the nodes hasn't been captured in this screen cast, though Mooshabaya can depict the running workflow dynamically by the colour change as the workflow is run. Similarly the security scenario which has also been  implemented, hasn't been captured in this small screencast. This is a raw screen  capture using XVidCap, which will be mixed with voice and further editing. Avidemux 2.5.2 Multi-platform Video Editor will be used in further editing these raw screen captures. A list of open source video software can be found here.

Sunday, May 9, 2010

Commits and Tickets - OGSA-DAI

The tickets assigned to me and my commits to the trunk will be listed here for the documentation purpose.

The tickets for the project.
240, 241, 242,

The important commits.
[This post will be updated as I progress further in my project]

Image: ogsa-dai Axis http://localhost:8080/dai/servlet/AxisServlet

Friday, May 7, 2010

Ubuntu Lucid Lynx and the fixes

So here comes Lucid Lynx, an LTS (Long Time Support) version of Ubuntu after two years, giving so much of expectations. I can see many whistles such as the new theme which tries to wrap Ubuntu in a non-geeky cover, specially the shift from brown to purple. Twitter integration, UbuntuOne, Mac like theme, which still seem whistles to a user, unless he is literally a kid which can rarely be the case for a Linux user. Ubuntu 10.04 was released on 30th of April, with the code name Lucid Lynx. This has become the long time support version of Ubuntu after Ubuntu 8.04, known as Hardy Heron, making a huge expectation from the user base.

I did upgrade my operating system from Ubuntu 9.10. The upgrade had introduced me few bugs, which I have fixed without much difficulty. As there are many users out there facing similar issues, work arounds for many of the bugs can be found online, and that's the biggest supportive force behind Ubuntu, as well as the other FOSS projects, I would say.

Let me share few of the issues I had to fix after the upgrade.

After the upload, when each time the computer started, this annoying error was thrown. "An error occurred while mounting /proc/bus/usb. Press S to skip mounting or M for manual recovery." I realized this was due to a usb fix I did for Virtualbox for Ubunut Karmic Koala which is no more required after the upgrade to Lucid. To fix this, in terminal,
sudo vim /etc/fstab
Removing the line we had added from the file, "none /proc/bus/usb usbfs devig=123,devmod=664 0 0" from the fstab fixed this issue, according to the Ubuntu Community's help page for Virtualbox/USB.

"The panel encountered a problem while loading "OAFIID:Deskbar_Applet". Do you want to delete the applet from your configuration?", an error message was thrown immediately after the upgrade. I deleted it, and it seems I didn't lose any deskbar applets at all.

An annoying bug that I had to fix was, "Desktop effects could not be enabled.", where I was unable to go for the 'Normal' and 'Extra' visual effects from the 'None'. That obviously was due to an error in the graphics card driver, I felt. Command lspci shows the PCI buses and the devices, where we can get the details of the graphics controller installed, where mine was
00:02.0 VGA compatible controller: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller (rev 07).
This had many workarounds on the web. Anyway I found the reason for the issue as well as a nice fix here, which finally made my Lucid free from the annoying bugs introduced during the upgrade.
sudo apt-get purge nvidia*
sudo apt-get install --reinstall xserver-xorg-video-intel libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
sudo dpkg-reconfigure xserver-xorg
sudo update-alternatives --remove gl_conf /usr/lib/nvidia-current/ld.so.conf


Though the new purplish Mac-like theme got a huge attention, as I was already using Mac4Lin theme, this new enhancements to the look n feel failed to impress me, as I felt Mac4Lin still leads!

The first software that I tried after the upgrade was, Zekr - A Qur'an Study Tool, which obviously is a cool tool for the Muslim brethren, as I see. As the final note, I really feel that I shouldn't go for 'Ubuntu Maverick Meerkat', which will be released this October. The reason simply is, I am not ready to spend days for downloading the upgrade files of 4 GB and fixing bugs to move from an LTS version to just a normal version.