Configurazione di un’istanza Amazon Ec2

Oggi ho pubblicato il seguente post sul blog indigeni digitali:
http://blog.indigenidigitali.com/amazon-ec2/

In questo post viene descritto:

  1. Come configurare un’istanza Amazon Ec2 da zero.
  2. Come reperire istanze configurate dal sito bitnami.org
  3. Considerazioni sul risparmio economico che un Cloud può offrire.

ActiveMQ MapMessage

Hiram Chirino, Logo for Apache ActiveMQ, http:...

Hiram Chirino, Logo for Apache ActiveMQ, http://activemq.apache.org/ Released under the Apache Software License 2.0 (Photo credit: Wikipedia)

In molti esempi di ActiveMQ si fa riferimento sempre ad uno scambio di messaggi piuttosto semplice, come ad esempio stringhe.

Se c’è bisogno di scambiare strutture più complesse ci sono vari tipi di messaggi, a me è piaciuto molto il MapMessage.

Il MapMessage non è altro che una mappa di Chiave-Valore dove ogni attributo può essere tipizzato.
Ad esempio:

mymap.setString("name","Gabriele");
mymap.setint("foo",3);

Questo approccio  è molto utile perché evita la scrittura di un protocollo all’interno dei messaggi, inoltre garantisce  l’indipendenza ai moduli interessati.

Ad Esempio:
Client c#

MyMapMessage.SetString("name", "gabriele");
MyMapMessage.SetString("surname","Santomaggio");
producer.Send(MyMapMessage);


Server Java:
public void onMessage(Message message) {
string name = ((MapMessage)message).getString("name");
string Surname = ((MapMessage)message).getString("surname");
}

Se varia della mappa del client, ad esempio:

MyMapMessage.SetString("name", "gabriele");
MyMapMessage.SetString("surname","Santomaggio");
MyMapMessage.Setint("newfield",55);

Il  server può non essere aggiornato, perché nel peggiore dei casi non gestisce il nuovo campo “newfield”.
Questo dettaglio è molto importante in presenza di un numero elevato di moduli e di server, oltre a  garantire  un forte disaccoppiamento tra i moduli ed una certa tranquillità in fase di aggiornamento, che non guasta :))!!!.

La mappa mette a disposizione una serie di tipi primitivi es: String , double, short, ecc che risolvono  problemi legati alla conversione di tipi tra diversi linguaggi di programmazione.