2010-10-04 4 views
2

Je travaille sur une solution pour mettre certaines données d'une grande base de données à la disposition d'un site web distant. Ma première pensée a été de simplement cuire des services Web de savon pour récupérer certaines données de la base de données. Cela pourrait se faire en seulement quelques lignes, par exemple comme celui-ci, avec l'utilisateur de Zend_Soap_Server: Maintenant, quelqu'unPHP & SOAP à quoi sert un courtier de messages?

class MyClass 
{ 
    public function getlastname($id) 
    { 
     $dbh = new PDO("oci:dbname=bigdb", "theuser", "thepass"); 

     $stmt = $dbh->prepare("select lastname from person where id = :id"); 

     if ($stmt->execute(array(':id',$id))) 
     { 
     $row = $stmt->fetch(); 
     return $row['lastname']; 
     } 
    } 
} 

$server = new Zend_Soap_Server(null, $options); 
$server->setClass('MyClass'); 
$server->setObject(new MyClass()); 

$server->handle(); 

m'a dit d'avoir aussi un regard sur les courtiers de messages/files d'attente. J'ai regardé quelques logiciels comme apache activeMQ, stomp et zend_queue mais je n'ai pas vraiment eu une vision claire de ce qu'ils devraient être utilisés et de la météo ils seraient utiles dans ce projet. Je comprends que ma mise en œuvre pourrait avoir quelques inconvénients, comme un site Web lent quand la base de données ne répond pas rapidement et une charge élevée sur la base de données quand il y a beaucoup de demandes du site Web, un courtier de messages pourrait-il pour éviter de telles complications?

Répondre

1

Le rôle d'un courtier de messages est de vérifier les demandes et de les envoyer au bon service ou de renvoyer une réponse d'un cache.

Si vous prévoyez un trafic important, vous devriez probablement envisager d'utiliser un courtier de messages.

Cordialement, Alin

+0

est un courtier de messages UTILE aussi pour une situation comme l'appel de savon je décris? Dans ce cas, l'expéditeur (le site Web) s'attend à une réponse immédiate. – Erikl

+0

Je ne pense pas que cela ait quelque chose à voir avec le fait qu'une réponse est nécessaire de manière synchrone. Le courtier tire simplement la réponse de votre service et l'envoie au client. Si la mise en cache est possible, vous pouvez l'implémenter dans le courtier. Vous pouvez également ajouter un filtrage IP, une validation d'entrée, des filtres de sortie ou tout ce que vous voulez. C'est une question de comment vous voulez concevoir votre application. Personnellement, je voudrais utiliser un courtier. –

+0

Merci Alin, je pense que tu as raison. – Erikl