Google Summer of Code 2008 – Project Proposal
CLI for extracting JMX information from the Qpid Java broker
- Apache Qpid is a multiple language implementation of Advanced Message Queuing Protocol (AMQP). In this project basically I'm going to work with Qpid Java broker which is capable of transaction support, clustering, features required by JMS 1.1(Java Message System) and a management interface. In this project we have to extract information using JMX through the Apache Qpid management interface and give the information using a command line interface . During the time of extraction user have to configure which data to be extract and when to extract.Like wise I believe there are lot of information lies there in Qpid internally which should be monitored remotely. Since we have that capability to monitor JMX information we can process them to give a reliable way of implementing AMQP.
Benifits to Apache Qpid
Apache Qpid is an implementation of AMQP ( Advanced Message Queuing Protocol) using different languages. This system(specially the JAVA broker) contains lots of information and there's a great value with those information if we can monitor those information remotely. By having that ability to monitor those information we can process those information and perform some task. As an example if something goes wrong we can send a notification to some party. To do such a thing we should have a JMX implementation inside Qpid which is already there in the management interface of Qpid. Then in this project main idea is to write a JMX Client runs in command line which uses the already written JMX management interface. After implementing own CLI we can specify our need in to JMX client and use those information more useful manner according to the information we are taking from Qpid.
In implementation i like to divide my work in to five stages which have do be complete according to the following order.I'm describing each and every stage in short.
1.April 15 – May 10 : The first and main task is to understand the JMX management interface which is already implemented in Qpid Java broker. I have to consume that interface to extract informations using my JMX Client which runs in command line.And as far as I can see there are some more information inside the Java broker to expose using Mbeans. So during my first stage I will try my best to expose some more useful information from the Java broker as well.
2.May 10: Raise a Jira about exposing some more important data for Java broker and patch that implementation.
3.May 10 – June 26 : Since the main idea behind this project is to implement a CLI (Command Line Interface) I have to implement most of the features supports by Jconsole to managed information in to command line. But before writing the command line supporting part I have to write a JMX Client which is capable of extract information using the Qpid management interface. After successfully writing the extraction I can test it just printing the information without using any options in to the screen. I hope this would be the infant stage of the CLI.
4.June 26 - Mid Evaluation and getting the feed from developers and mentors about the work done up to that point.
5.June 26 – July 26 : After successful completion of my third stage I have to implement the option setting feature in command line. Allow users to give different options like which data they want and when the want those data by changing configure file. This should be more user friendly way of configuring.
6.July 26 – August 26: After successful completion of major tasks I can think about the out put formatting of the information. Using Java we can give graphs if user needs the information in more abstract way. Like wise I hope I will be able to add some more features to the out put formatting according the feed I will be having from mentors. And I will be able to perform some action according to the information extract from Apache Qpid. May be send a notification when something goes wrong or some thing similar to that.
7. August 26 - September 3 : Do the basic testing and get the feed back from the mentor.After successful testing Final evaluation will be done.Then will raise a Jira for this project and attach the patch.
- I'm an undergraduate at University of Moratuwa in Sri Lanka and I'm majoring in Computer Science and Engineering. Currently I'm reading I'm at the end of my third year. During my internship I was able to contribute towards Apache Web Services projects. That was mainly Apache Axis2C and Apache Axis2. That was the place where my taste came in to act towards open source community. I have a good understanding about HTTP and Apache Web Server since I worked most of Web Services stuff during my internship and I love to continue my work towards distributed systems.
Reason why I selected Apache Qpid was it is a new attempt of implementing very interesting protocol and which will be very useful in interoperability. And the next thing was Qpid is in Apache Incubator and I had a great desire on contributing a project which is in it's initial stage and get a good understanding about the project.So I hope I will be lucky enough to start my contribution from Google summer of code 2008.
During my time at University I was able to complete two individual programming projects mainly. One was a simple CLI for a Cricket Game using C++. And the next one was done for another software company in Sri Lanka that was a Voice Mail Service using J2EE technology. So I hope I have a good understanding about Object Oriented Programming and JAVA technology too. After completion of training at one of the open source organization in Sri Lanka called WSO2 Inc I was able to learn a lot about C language and technologies like XML, WSDL, XSLT and JAVA. I have a good experiences on working with the open source community because of the experience I had during my internship of working in Apache Axis2.As a person who loves to work in Linux based system and as a person who prefer usage of command line I appreciate the attempt you took to implement CLI to extract JMX information from Apache Qpid.I'm expecting to contribute with this project with a great motivation.