2010-08-11 9 views
1

Je dois communiquer entre serveur/client. J'ai vu que CORBA est utilisé pour différentes langues pour fonctionner comme RMI, n'est-ce pas? Dans mon application, je vais devoir transférer des objets entre le client/serveur, transférer des fichiers binaires (ce que j'ai vu que je peux faire avec RMI) et aussi jouer en streaming en direct d'un client à l'autre. Je pensais à CORBA car il peut aussi être utilisé avec C++ si j'en ai besoin, n'est-ce pas? Puis-je jouer en streaming avec CORBA?Puis-je utiliser CORBA/RMI pour faire du streaming audio en direct?

+0

Je ferais presque n'importe quoi pour éviter d'utiliser CORBA - et ce n'est certainement pas conçu pour des applications comme le streaming. –

+0

Je ne suis pas sûr d'autres ORB, mais TAO ACE a des problèmes de mémoire avec le passage d'objets volumineux. – DumbCoder

Répondre

5

RMI et CORBA sont des technologies pour objets distribués. Vous appelez ensuite des méthodes sur un objet distant de la même manière que sur un objet local.

Bien sûr, vous pouvez envoyer et recevoir des octets si vous implémentez des méthodes qui le font (par exemple void sendChunk(byte[] data)). Mais je ne les considérerais pas appropriés pour streaming. Aussi pour le streaming, vous devez choisir quelque chose pour répondre à la qualité de service du flux - ce que RMI ou CORBA ne font définitivement pas. Pour cela, je voudrais peut-être jeter un coup d'œil sur les sockets UDP, ou quelque chose comme ça, qui laisse tomber les paquets si le canal est saturé.

+0

J'ai besoin de diffusion en multidiffusion, donc je vais devoir faire en sorte que le clint écoute une socket UDP quand il reçoit une instruction RMI en lui disant du serveur? – fredcrs

4

CORBA vous offre beaucoup de services et il est peut-être pas le meilleur des options pour le streaming des médias. Deux raisons que je peux penser (si l'on peut trouver plus de raisons contre trop)

  1. La charge utile de l'objet est plus que les données (triages et unmarshalling)
  2. CORBA (en particulier les mises en œuvre) visent généralement un bon QoS aka il y aura des tentatives pour le même appel

Cela dit, il a été démontré que les ORB peuvent aussi fonctionner avec la communication real-time. Ainsi, CORBA en tant que cadre n'est pas complètement hors de la table.

Je ne suis pas sûr des capacités de communication de multidiffusion CORBA cependant.

3

Si vous êtes mordicus à l'aide de CORBA pour résoudre ce problème, un coup d'oeil à RT-CORBA (CORBA en temps réel). Je crois que TAO a une implémentation, mais je n'ai jamais utilisé RT-CORBA, donc je ne peux pas parler directement si cela vous donne les performances dont vous avez besoin pour le streaming.