A couple of weeks ago Sanjiva (of WS* fame) posted a link to an
interview of Amazon's CTO about their amazing system. Those of you
who thought it was great or merely rubbish [no direct allusion to a
Member's assertion :)] might be interested to learn more about their
queue service:
<<Amazon Simple Queue Service (Amazon SQS) offers a reliable, highly
scalable hosted queue for storing messages as they travel between
computers. By using Amazon SQS, developers can simply move data
between distributed application components performing different tasks,
without losing messages or requiring each component to be always
available.
Amazon SQS works by exposing Amazon's web-scale messaging
infrastructure as a web service. Any computer on the Internet can add
or read messages without any installed software or special firewall
configurations. Components of applications using Amazon SQS can run
independently, and do not need to be on the same network, developed
with the same technologies, or running at the same time.
Amazon SQS Functionality
* Developers can create an unlimited number of queues, each of
which can store an unlimited number of messages.
* New messages can be added to a queue at any time. The message
body can contain up to 256 KB of text in any format.
* A computer can check a queue at any time for messages waiting to
be read.
* A message is "locked" while a computer is processing it, keeping
other computers from trying to process it simultaneously. If
processing fails, the lock will expire and the message will again be
available.
* Developers can access Amazon SQS through standards-based REST,
SOAP and query interfaces designed to work with any
Internet-development toolkit.
* The queue creator determines which other users can write to or
read from the queue.
Service Highlights
Amazon SQS provides significant advantages over the complexity of
home-grown messaging systems or the ongoing expense of licensed or
hosted systems.
* Reliable - Amazon SQS runs within Amazon's high-availability
data centers, so queues will be available whenever applications need
them. To prevent messages from being lost or becoming unavailable, all
messages are stored redundantly across multiple servers and data centers.
* Simple - Developers can utilize Amazon SQS queues by using only
four APIs: CreateQueue, SendMessage, ReceiveMessage, and
DeleteMessage. The SOAP, REST and query APIs can be used with
virtually any language and platform.
* Scalable - Amazon SQS was designed to enable an unlimited number
of computers to read and write and unlimited number of messages at any
time.
* Secure - Access controls allow all developers to secure their
data by designating who is allowed to read from and write to their
queues, preventing unauthorized users from accessing or altering data
stored in Amazon SQS queues.
* Inexpensive - No up-front or fixed expenses. The only cost of
sending messages through Amazon SQS is a small per-message handling
fee based on the size of a message. For $1 a user can transmit over
5,000 messages.
Pricing
* Pay only for what you use. There is no minimum fee, and no
start-up cost.
* $0.10 per 1,000 messages sent ($0.0001 per message sent)
* $0.20 per GB of data transferred
(Amazon SQS is sold by Amazon Digital Services, Inc.)
Resources
* Resource Center
Browse the resource center for code samples, documentation,
release notes, and more information to help you build innovative
applications. Subscribe to RSS feeds or set up e-mail watches to be
alerted of the latest developments for this service.
* WSDL
* Developer Forums
* FAQs
Detailed Description
Basic Queue Operations
The Amazon Simple Queue Service employs a simple interface that is
easy to use and highly flexible. The following operations are provided:
* CreateQueue: Create queues for your own use, or to share with
others.
* ListQueues: List your existing queues.
* DeleteQueue: Delete one of your queues.
* SendMessage: Add any data entries to a specified queue.
* ReceiveMessage: Return one or more messages from a specified
queue, which are returned in roughly the same order it was added to
the queue.
* DeleteMessage: Remove a message from a specified queue.
* PeekMessage: Return a specific entry from the queue without
locking it.
* SetVisibilityTimeout: Control the amount of time after a message
has been read that is locked from being read again.
* AddGrant: Allow other users to send messages to or receive
messages from your queue.
Amazon SQS Message Lifecycle
Messages that are stored in Amazon SQS have a lifecycle that is easy
to manage but ensures that all messages are processed.
1. A system that needs to send a message will find an Amazon SQS
queue, and use SendMessage to add a new message to it.
2. A different system that processes messages needs more messages
to process, so it calls ReceiveMessage, and this message is returned.
3. Once a message has been returned by ReceiveMessage, it will not
be returned by any other ReceiveMessage until the visibility timeout
has passed. This keeps multiple computers from processing the same
message at once.
4. If the system that processes messages successfully finishes
working with this message, it calls DeleteMessage, which removes the
message from the queue so no one else will ever process it. If this
system fails to process the message, than it will be read by another
ReceiveMessage call as soon as the visibility timeout passes.>>
You can find this at:
<http://www.amazon.com/gp/browse.html/ref=sc_fe_l_2/002-4283033-2440032?redirect=true&_encoding=UTF8&ie=UTF8&node=13584001&no=3435361&me=A36L942TSJ2AJA>
Acknowledgements to ServerSide.NET
Gervas
PS I must say that magret de canard farci de foies gras does perk up a
healthy salad supper:)
------------------------ Yahoo! Groups Sponsor --------------------~-->
Yahoo! Groups gets a make over. See the new email design.
http://us.click.yahoo.com/XISQkA/lOaOAA/yQLSAA/NhFolB/TM
--------------------------------------------------------------------~->
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/service-orientated-architecture/
<*> To unsubscribe from this group, send an email to:
[EMAIL PROTECTED]
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/