Projeto Simple Cloud: Interoperabilidade entre nuvens.
Olá pessoal, tudo certo?
Novidades importantes no mundo do Cloud Computing! O projeto Simple Cloud foi anunciado ontem, quarta-feira!
Ref.: https://www.simplecloud.org/
Essa iniciativa envolve a criação de uma API simplificada baseada em PHP, sendo suportada pelas infraestruturas de cloud computing de fornecedores como Amazon, Microsoft, IBM, Zend, Nirvanix, entre outros.
A API será implementada através de um novo framework chamado Zen_Cloud e deve oferecer para os desenvolvedores uma série de interfaces facilitando o uso de serviços de cloud, como armazenamento, base de documentos, filas de mensagens, em ambientes como Amazon Web Services, Windows Azure, Nirvanix Storage, RackSpace Cloud Files, e outros.
A Microsoft participa desta iniciativa, que é mesmo um belo projeto que combina os benefícios de uma comunidade Open Source com a participação ativa de fornecedores e vendors importantes, na busca pela interoperabilidade de suas plataformas.
Em seu lançamento, a iniciativa já vem com 3 APIs:
- File Storage, suportando Rackspace Cloud Files, Windows Azure Blob Storage, Amazon S3 e Nirvanix;
- Document Storage, suportando Amazon SimpleDB e Windows Azure Table Storage;
- Simple Queues, suportando Windows Azure Table Storage e Amazon SQS
Para ilustrar a API Simple Queues, veja a assinatura dos principais métodos para o tratamento de filas de mensagens, abaixo:
1: interface Zend_Cloud_QueueService
2: {
3: /**
4: * Create a queue. Returns the URI of the created queue. It may take
5: * some time to create the queue. Check your vendor's documentation for
6: * details.
7: *
8: * @param string $name
9: * @param array $options
10: * @return string
11: */
12: public function createQueue($name, $options = null);
13:
14: /**
15: * Delete a queue. All messages in the queue will also be deleted.
16: *
17: * @param string $name
18: * @param array $options
19: * @return void
20: */
21: public function deleteQueue($name, $options = null);
22:
23: /**
24: * List all queues.
25: *
26: * @param array $options
27: * @return array
28: */
29: public function listQueues($options = null);
30:
31: /**
32: * Get a key/value array of metadata for the given queue.
33: *
34: * @param string $name
35: * @param array $options
36: * @return array
37: */
38: public function fetchQueueMetadata($name, $options = null);
39:
40: /**
41: * Store a key/value array of metadata for the specified queue.
42: * WARNING: This operation overwrites any metadata that is located at
43: * $destinationPath. Some adapters may not support this method.
44: *
45: * @param array $metadata
46: * @param string $name
47: * @param array $options
48: * @return void
49: */
50: public function storeQueueMetadata($metadata, $name, $options = null);
51:
52: /**
53: * Send a message to the specified queue.
54: *
55: * @param string $message
56: * @param string $name
57: * @param array $options
58: * @return void
59: */
60: public function sendMessage($message, $queueName, $options = null);
61:
62: /**
63: * Recieve at most $max messages from the specified queue and return the
64: * message ids for messages recieved.
65: *
66: * @param string $queueName
67: * @param int $max
68: * @param array $options
69: * @return array
70: */
71: public function recieveMessages($queueName, $max = 1, $options = null);
72:
73: /**
74: * Delete the specified message from the specified queue.
75: *
76: * @param string $id
77: * @param string $queueName
78: * @param array $options
79: * @return void
80: */
81: public function deleteMessage($id, $queueName, $options = null);
82:
83: /**
84: * Peek at the specified message from the specified queue.
85: * WARNING: This operation may block other receivers from recieving the
86: * message until the message is released from the peeker for services
87: * that do not natively support message peeking. This may impact
88: * performance and/or introduce concurrency issues in your applications.
89: * Check your cloud vendor's documentation for more details.
90: *
91: * @param string $id
92: * @param string $queueName
93: * @param array $options
94: * @return void
95: */
96: public function peekMessage($id, $queueName, $options = null);
97: }
Bem interessante, veja mais aqui!!
De fato, iniciativas como essa devem ampliar ainda mais o universo de cenários de aplicações na nuvem, além de aumentar o interesse geral das empresas sobre esse tipo de ambiente de provisionamento dinâmico, infraestrutura escalável, pagamento pelo uso e interoperabilidade!
Por enquanto é só! Até o próximo post :)
Waldemir.