Sounds good to me. Thanks !
On Fri, May 25, 2012 at 12:24 AM, Dulini Atapattu <[email protected]>wrote: > Hi Jean and all, > > I re-designed the message queue api according to Sagara's comments which > was helpful. > According to the comments it was reallized that the api should have > seperate services representing different tasks, where a given queue service > may not support all the services in the api we are providing. > > According to the information that I read so far, AmazonSQS has the api that > provides the most number of services. > Thus our api should have separate services to each of those services in > AmazonSQS, where then services provided by > each other queue service (MemcacheQ etc.) becomes a subset of those > services that we may provide with our api. > Also this such api provides flexibility to add more services to the api as > required and as different queue services may introduce more services or we > need our api to be adopted to any other queue service. > > Thus I would propose the api as follows: > > *Queue related services:* > > *createQueue - create a new queue* > *deleteQueue - delete the specified queue > **listAllQueues - list all the queues* > clearQueue - clear the contents of a specified queue > clearAllQueues - clear the contents of all the queues > *SetQueueAttributes - set the queue related properties* > *GetQueueAttributes - get the queue related properties* > *GetQueueUrl - get the queue URL* > *SetQueuePermission - set queue related permissions* > *RevokeQueuePermission - get existing queue related permissions* > > *Message related services in queues* > > *SendMessage* - add a message to a specified queue > *SendMessages* - add multiple messages to a specified queue > *ReceiveMessage - receive a message/ s from a specified queue* > *DeleteMessage - delete a message in a queue* > *DeleteMessages* - *delete multiple messages in a queue* > *ChangeMessageVisibility* - change visibility timeout for the previous > received message > *ChangeMessagesVisibility* - change visibility timeout for the previous > received messages > > Exceptions will be thrown in our implementations of the above api for > different queue services, where the services are not supported according to > the queue service. > > Also I will be considering on implementing the above api for, > > - GAE: MemchacheQ > - AmazonSQS > - ActiveMQ (according to my readings so far, ActiveMQ is the mostly > being used and more powerful upto now, thus I suppose implementing to > ActiveMQ would be much useful [1], [2]) > > **Also regarding the licenses, MemcacheQ [3] has the New BSD License which > is compliant with Apache [4]. > > I also will be using the AWS Free Usage Tier [5] which provides many > services free for one year and where SQS will be free indefinitely, > which will be helpful in testing api with Amazon plateform (According to > Pasindu Gunarathne). > > I would like to know the comments about the api and would like to start > implementation for MemchacheQ first. > > Thanks > > [1] - > > http://activemq.markmail.org/search/?q=activemq#query:activemq%20list%3Aorg.apache.activemq.users+page:1+state:facets > [2] - > > http://apache.markmail.org/search/?q=qpid#query:qpid%20list%3Aorg.apache.incubator.qpid-users+page:1+state:facets > [3] - http://code.google.com/p/memcacheq/ > [4] - http://apache.org/legal/resolved.html > [5] - http://aws.amazon.com/free/ > > > 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). > > > > > > > > - 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> > > > > > > > -- > 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
