Monday, 31 May 2010
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.
Saturday, 22 May 2010
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 quarter 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
I am Manoj a 3rd year CS student at BITS-Pilani(GOA) in India.
The project has been divided into 2 phases.
The following progress has been made(after discussion with my mentor):
- Connotea API 0.1 Connotea has a particular advantage in that it is open source(code available at http://sourceforge.net/projects/connotea/)so institutions can run their own instance.Data is retrieved in XML format which can be parsed easily and libraries in java ,perl,python and ruby are available for free on the web(http://www.connotea.org/wiki/WebAPILibraries)
- 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".
- 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.
- 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.
- 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
The three essential stages of the project are:
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.