Hi Jean and all, I have implemented the nuvem-api for message queue component including the interface and other related classes. The api interface is as follows:
public QueueMessageHandle sendMessage(QueueMessage queueMessage) throws MessageQueueServiceException; (Sends the queueMessage and returns a handle to the sent message) public List<QueueMessage> receiveMessage(int numMessages) throws MessageQueueServiceException; (Receives the number of messages specified by numMessages from the queue service and returns a list of queue messages) public boolean deleteMessage(QueueMessage queueMessage) throws MessageQueueServiceException; (Deletes the message specified by the queueMessage and returns true if deletion is successful) I also have implemented this interface for Amazon platform, tested with test cases using the account I have created in Amazon Free Usage Tier [14], and also documented the code. I also have submitted the patch for this work at Nuvem JIRA issues [15]. I have also implemented the interface for GAE (using Pull Queue) and currently I am performing the tests for the implementation. I would like to receive any comments about the work I have done so far. Thanks [14] - http://aws.amazon.com/free/ [15] - https://issues.apache.org/jira/browse/NUVEM-14 On Sat, Jul 7, 2012 at 9:41 AM, Sagara Gunathunga < [email protected]> wrote: > On Sat, May 19, 2012 at 12:36 AM, Dulini Atapattu <[email protected]> > wrote: > > Hi Sagara, > > > > Thank you very much for the comments you have mentioned and they are a > lot > > helpful to get done the required tasks appropriately and relevantly. > > > > I will focus on the activities, queue services and solutions to issues > you > > have mentioned and will provide the community the API design according to > > the requirements you have mentioned. > > > > I added approximate completion dates to my project proposal and they are > as > > follows: > > > > > > - 24th April - 20th May > > > > Read about the Apache Qpid, Amazon SQS, Azure Message Queue REST API > > and3rd party queue frameworks which based on App Engine menarche API > > (24th > > April - 30th April). > > > > Define the Nuvem message queue API. Discuss with Nuvem community about > the > > design of the API and scope of the project (1st May - 20th May). > > > > - 21st May - 12th July > > > > Implement above Message Queue API using GAE (21st May to 11th June). > > > > Implement above Message Queue API using Amazon (12th June to 03rd July). > > > > Preparing for the mid-term evaluation of the project (4th July to 12th > > July). > > Hi Dulini, > > We are reaching to mid term evaluation very soon. I would like to see > codes related to above tasks either on SVN or JIRA, those codes are > important to measure project progress for mid term evaluation. > > I believe Jean will help out to bring your codes to SVN. > > Thanks ! > > > > > > > > > > - 13th July - 12th August > > > > Implement Queue API using Apache QPID (13th July - 27th July). > > > > Implement simple application to demonstrate the Nuvem Message Queue API > > (28th July - 6th August). > > > > Completing the documentation and test cases (7th August - 12th > > August). > > > > > > > > - August 16th - August 23rd > > > > Prepare the deliverables for final submission. > > > > Thank you, > > Best regards > > > > On Fri, May 18, 2012 at 2:19 PM, Sagara Gunathunga < > > [email protected]> wrote: > > > >> Please find my in-line answers. > >> > >> On Fri, May 18, 2012 at 12:46 PM, Dulini Atapattu <[email protected] > >> >wrote: > >> > >> > Hi Jean and all, > >> > > >> > With related to the project: Message Queue component for Nuvem, so > far I > >> > read about AmasonSQS, Azure Queue Service Rest API, MemcacheQ, Sparrow > >> and > >> > Depcached. According to details and APIs related to these queue > services/ > >> > frameworks, all the queue services provide send message and receive > >> message > >> > functionality with related to a specified queue, and only some queue > >> > services/ frameworks provide other related services such as creating > >> > queues, deleting messages etc. > >> > > >> > >> Sound good but you don't need to support all of above services. You can > >> pick around 4 widely used services here because for all those > >> implementations you have to perform following activities. > >> > >> 1.) Implement X queue service for Nuvem Queue API. > >> 2.) Provide full set of unit tests for X implantation. > >> 3.) Provide documentation how to configure X queue service with Nuvem > API > >> and may be samples as well. > >> > >> Personally I believe following 3 services need to be included within the > >> scope of your project. > >> > >> 1.) Amazon SQS > >> 2.) GAE (MemcacheQ) > >> 3.) Nuvem specific implementation ( ActiveMQ ?) > >> > >> > >> Before you start you may have to find solutions for following issues > >> > >> * How to test AmasonSQS on Amazon platform. In last year student who > did > >> key-value component created a Amazon account for him AFAIK it's free for > >> one year time. You may do the same or can find any alternative ?. > >> > >> * Is that MemcacheQ licence compliant with Apache ? > >> > >> * Still you haven't focus on Nuvem specific implementation , this also a > >> very important component. > >> > >> > >> > >> > > >> > Therefore I came up with the following design/ interface for the > message > >> > queue component, which provides the user the basic two functionalities > >> > provided by any queue services, and the implementation of this > interface > >> > may call other relevant functionalities relevantly according to the > queue > >> > service being used and as required: > >> > > >> > putMessage(queueName, messageBody); > >> > > >> > getMessage(queueName); > >> > > >> > >> This API is not sufficient for enterprise applications. For example > it's > >> mandatory to create and delete queues regardless of underline service > >> provider. If the specific service provider does not support for a > >> particular method you need to come up with solution or can throw > >> unsupported exception. Refer the last year key-value project it has lot > of > >> tips to overcome such limitations. > >> > >> > >> IMO we need to support following activities. > >> > >> 1.) create queue , delete queue , list all queues, clear queue ( remove > >> all message on queue) > >> 2.) send message , receive message, delete message > >> 3.) what else ..? > >> > >> > >> > > >> > The getMessage should return the message which is consumed by the > queue. > >> > Also message deletion tasks etc. should be performed inside the > >> > implementation of getMessage. > >> > > >> > Also I would like to use MemcacheQ as the 3rd party queue framework > for > >> > GAE, and I would like to know the feedback of the community regarding > >> this > >> > choice. > >> > > >> > Also I would like to know the feedback about the API I have come up > with. > >> > > >> > >> It seems my comments on Google Melange have been ignored, in there I > asked > >> realistic breakdown of project according to allocated time with task. > You > >> have to provide schedule for this project. what I mean here is something > >> similar to below. > >> > >> Define API - estimated complete date > >> Amazon SQS - estimated complete date > >> GAE (MemcacheQ) - estimated complete date > >> Nuvem specific implementation without any of above ( ActiveMQ ?) - > >> estimated complete date > >> > >> These dates are flexible and not like deadlines but we need some kind > of a > >> schedule to monitor your progress. It would be an advantage to you to > >> complete at least 1 or 2 services before the mid-term evaluation. > >> > >> Thanks ! > >> > >> > >> > > >> > Thank you, > >> > Best regards > >> > > >> > On Thu, Apr 26, 2012 at 3:46 AM, Dulini Atapattu <[email protected]> > >> > wrote: > >> > > >> > > Hi all, > >> > > > >> > > As my proposal for Message Queue component for Nuvem is being > accepted > >> > for > >> > > GSOC 2012 > >> > > i would like to continue my work with the project and to achieve the > >> > goals > >> > > stated. > >> > > I will be starting work with reading about the Apache Qpid, Amazon > SQS, > >> > Azure > >> > > Message Queue REST API and 3rd party queue frameworks that are > based on > >> > > App Engine menarche API and defining the Nuvem message queue API. > >> > > > >> > > Thank you > >> > > -- > >> > > Dulini I Atapattu > >> > > Look around... <http://www.flickr.com/photos/dia1988> > >> > > > >> > > > >> > > >> > > >> > -- > >> > Dulini I Atapattu > >> > Look around... <http://www.flickr.com/photos/dia1988> > >> > > >> > >> > >> > >> -- > >> Sagara Gunathunga > >> > >> Blog - http://ssagara.blogspot.com > >> Web - http://people.apache.org/~sagara/ > >> LinkedIn - http://www.linkedin.com/in/ssagara > >> > > > > > > > > -- > > Dulini I Atapattu > > Look around... <http://www.flickr.com/photos/dia1988> > > > > -- > Sagara Gunathunga > > Blog - http://ssagara.blogspot.com > Web - http://people.apache.org/~sagara/ > LinkedIn - http://www.linkedin.com/in/ssagara > -- Dulini I Atapattu Look around... <http://www.flickr.com/photos/dia1988>
