Monday, 31 May 2010

First week of Event Explorer (Ashish)

Hi all

This is my first weekly post on what has been done up to date. Till now I have been working on laying the core framework of the project (and have achieved that just today). I have created a rudimentary model of database and view and need to customize it further in consultation with my mentor and some help-desk users. Further, I will be working on making it more flexible and adding extra features.
Here's what I have implemented till now:

- Have set up a network of ActiveMQ brokers and have made changes in Sakai embedded broker configuration to introduce it in the network.

- Have set up Consumers (MessageListeners) on remote broker which listen and retrieve the event messages emitted by Sakai broker over the network.

-These Consumers process the message and store the message in the Cassandra database (using thrift) to which they are locally attached (as of yet).The mockup of the database design is shown below:

(Click on the picture to view it larger)

- In the GUI section, I have created classes which retrieve the data (messages) from cassandra again using thrift.

-These classes create JSON feeds of the messages and inputs it to the JSP containing the Simile tool.

-As a result, I am currently able to view some Nakamura Event and OSGI messages which I retrieved using the classes, in the browser using the Simile tool.

For this week I plan to contact help-desk users of Cambridge University and consult them and present them some mockups. Based on the finalization of view, I will be working more on the GUI display, filtering of messages and on storage structure.

Week 1 update (Manoj)

Had a chat with my mentor on the API.There are only two API's available for regular use one is connotea and the other is delicious.We decided on combining Delicious's group tagging ability and connotea's citation management.I ran into a few problems with delicious so i mailed the delicious team.Successfully implemented the python wrapper for connotea.I was able to make new post's and add comments and add citations.I developed a few mock up pages but due to the problems i had with delicious i put that on hold.

Saturday, 22 May 2010

Sakai & Android

I'm Mayte Giménez, I'm in my last years of computer science and in my first one of fine arts. First of all I would like to apologize for the delay writing this post, I'm facing my finals and as all students (and the university community in general), this is kind of mad.

Anyway, let's focus on the fun things. I'm so excited about this project and very glad that Sakai have accepted my proposal.

Mobility is a major issue nowadays, and android is a great platform to bring sakai 3 to mobile. Android is an open source operating system for mobile device which has the support of Google, and every day the is more mobile phones and more students using it.

Gartner's latest statistics show big gains for Android's quarterly sales worldwide, jumping from 1.6 percent in the first qua
rter of 2009 to 9.6 percent during the same period this year. That puts the OS ahead of Microsoft's Windows Mobile.
Here you can see a chart with word wide web traffic, and android is growing fast.
My gsoc, is not about to migrate the entire platform for android. There is a great team doing sakai mobile. This idea was born from my students needs, as a user of sakai. I needed to be aware of my pending tasks, be aware of my exams and any changes on my classes, and I need this in my mobile, I don't want to load the whole sakai application, and that's the reason I suggested this idea and this challenge for me.

The app main screen would have icons of each tool that can be synchronized, and a small alert if there is unread items. When we click on the icon we can see a list of subjects and the list pending assignments, for example. Also, would be nice to have a time management technique include, I am using the pomodoro technique right now and It is really useful for me, that allow us (the students) to get our goals.

Here I included some images of a mock up for the application.

And of course, standards are vital. We are a very large community and we need standards to grow up. Our students came from a lot of places with different needs, so accessibility is a must for our final goal which is education.

I would update this really soon. Thanks for your patience, see you soon on our androids.

Thursday, 20 May 2010

Citation Manager Widget

Hi all

I am Manoj a 3rd year CS student at BITS-Pilani(GOA) in India.

Sakai is a collaboration tool for research academics, as well as an environment for collaborative and online learning. A key tool of academic researchers is the citation database, which is used to log, organise, annotate, share and cite interesting publications. Publications themselves might be books, websites, conference proceedings or journal papers. This project would require some initial exploration, with the help of my mentor, of use cases and requirements in order to develop a specification for how these tools can be usefully brought in to Sakai3, giving particular attention to its academic networking features, and subsequent development of a Sakai3 widget (somehat like an iGoogle widget) using javascript, HTML, CSS and the target APIs.

The project has been divided into 2 phases.
1.Research phase
2.Development Phase.

The following progress has been made(after discussion with my mentor):
  • Mendeley The API hasn't been released yet though active research is going on and the results will be known by 21st may.
  • Delicious Has a much larger user base and development resource.The only problems with it in the context of citation management are a) that it doesn't do citations, its really only bookmarks, and b) that it isn't very sophisticated in terms of shared bookmark lists such as a research group might want to use. What it does do well is tagging and mass editing.

  • Creating ideas: The following are some ideas that will make this widget out-of-the-box:
  • My Citations
  • Function: Scan Article for citations(This will be done by the API), "Import", "Send through mail", "To PDF" and "Add to Favorites".
  • Description
  • Send Mail: Front end service through MailMan.
  • ToPDF: Export entity to PDF format.
  • Import: Import citation data via Connotea, Mendeley web APIs in XML/JSON format.
  • Scan Article: Retrieves citations from publications and displays on a list dynamically.
  • Required: JavaScript + JQuery + AJAX
  • A Drag and drop feature will speed up these operations.
  • New browse feature
  • Function: Set style elements to already saved citations and notifies which user in a Sakai group has saved this citation in their favorites list.
  • Description
  • Example - If a user loads a new publication, then the saved citations will be red in color (or bold, any style specification) and the citation saved by a member in the group yellow in color along with name of that user. This will help users’ select new citations quickly, thus faster selection.
  • Technical Details: Simple CSS and some back end coding will give this unique feature to Sakai 3.
  • Citation suggest
  • Function: Suggest a list of Sakai users which also have same citations in their favorite window. Users can find appropriate groups dynamically.
  • Group Update
  • Function: Notifies a user about a newly added citation by a user in the group in an Update section.
  • Group Tagging
  • Function: Notifies which citations have been tagged by multiple users in a group, and how many tags have been received by each citation. In this way users can view mostly used citations.

How will integration with Sakai 3 take place?
Sakai’s event handling capabilities can be employed to manage various entities in all these modules. Events can be published using Java Message Service (JMS) that will act on contents (Contents are citations). An efficient data model will be set up that will control data flow during runtime. The model will be made on Sakai Nakamura, leveraging its flexibility. In this way, integration with Sakai will be achieved.

2. Development phase

Core development plans will be formulated when the specifications will be decided; and the following generic approach will be employed:
  • UI Development: First, a user interface will be made for the widget using CSS that will match Sakai’s standards.
  • Hierarchical structure: Citations, relevant tags and other information will be stored in a hierarchical form in the citation database. (or any other content repository) Thus, data can be summoned using proper URI.
  • Group-oriented features: Main concern will be on increasing user activity on a Sakai network (or group). Citation management will be the easiest task a user can do on Sakai 3.
  • Materialize ideas: Using Sakai Nakamura as a framework, develop JQuery code + Back end and Front end services to implement the selected ideas.
  • Testing and Feedback: JUnit to be used for testing the code. The beta version will be put on a Sling server for feedbacks.

Thursday, 13 May 2010


When a support ticket comes into a Help Desk at an institution, the help desk staff need to be able to determine what the user was trying to do and what they want to achieve. Often this information can be gathered from a conversation with the user, but frequently the Help Desk staff needs to interrogate the back end to discover the operations the user performed at the server and the state of the data that they were interacting with.
This project will address the area of exploration of events that have happened in the system allowing a Help Desk user to navigate to content and pages that the user was working on. It will focus on the collection, storage, analysis and exploration of the event based information from a cluster of Nakamura servers.

The three essential stages of the project are:

-Event creation and Processing
-Storage and Analysis
-UI Development
Event Processing:

This involves the recieving of JMS messages created and emitted by OsgiJmsBridge by an AMQ consumer and processing the message to store the vital information in the database (Cassandra). This will require configuring the AMQ brokers and setting up of consumers clients of brokers present in the network. It will also be including some Camel queries to route the messages over the network of brokers to the appropriate consumer. Once the consumer recieves the message, it will process the message and will include the code for transferring the processed data to Cassandra using Thrift potocol.

Storage and Analysis:


I will be using Cassandra for data storage and Apache Hadoop for data analysis. Cassandra is a column database with NoSQL implementation. Usage of Cassandra will be very beneficial in terms of future scalability. Apart from this, the main feature of Cassandra is its efficiency and reliability. It has much less read and write time than relational databases.


The incoming data into Cassandra from JMS will be stored in columns and column-families according to the format that will be decided. The Cassandra dataset is integrated with Hadoop. Hadoop MapReduce can talk to Cassandra and process data. A Hadoop cluster is formed which will use Pig Latin to query the cluster and retrieve information for analysis from the pig server running on user machine.


This is an initial plan of how the UI is going to work. Additional work rill be done after consulting some of the help-desk users and creating some prototypes according to their needs.
The UI creation would include the following:
A Java Thrift API for accessing the Cassandra database. This would be a java class with specifications for Thrift code. The retrived data would be persed and converted to JSON object. This object would be loaded in our JSP page which would be the page for the help-desk user. The JSP page would contain the Javascript for the Simile tools (example: Timeline [1]). The JSON feeds created will be loaded in the JSP page using inbuilt functions. Hence the data retrieved from the database will be displayed in the view page using Simile tool.