2010-02-17 6 views
1

Je travaille avec un système basé sur CORBA qui était initialement conçu pour fonctionner sur plusieurs serveurs. Si je souhaitais regrouper les services CORBA pour que les appels se déroulent à travers les limites du processus, mais pas entre les machines, y a-t-il des paramètres d'optimisation qui peuvent être définis pour informer l'ORB de ce qui se passe? Par exemple, est-il possible de contourner la pile TCP/IP dans ce mode (je ne le soupçonne pas)?Optimisation des appels CORBA co-implantés pour la performance

+0

Avez-vous vraiment besoin du processus ORB? Beaucoup de code CORBA ne le fait pas. –

+0

"L'ORB" peut être un ensemble de bibliothèques. La plupart des ORB modernes ne requièrent pas de "processus ORB" à moins qu'il soit nécessaire de créer/activer dynamiquement des objets ou de fournir d'autres services. –

Répondre

1

L'ORB devrait être en mesure de comprendre cela par lui-même, et d'envoyer l'invocation de la meilleure façon. Toutefois, la prise en charge des appels inter-processus sans utiliser IIOP ou TCP/IP dépend de l'ORB que vous utilisez. Certains ORB prennent en charge les canaux nommés, les canaux nommés, les sockets de domaine UNIX et d'autres variantes, mais vous devrez vérifier la documentation de l'ORB pour savoir comment les configurer. Vous devrez peut-être construire vos références d'objet d'une manière différente.

1

Un conseil d'optimisation standard s'applique: optimisez uniquement ce qui a été démontré comme étant à l'origine d'un problème de performances.

En 2002, j'ai abordé ce même problème et j'ai trouvé un message lié à OmniORB shared memory transport. Pour OmniORB, on pouvait s'attendre à une réduction de 10 à 15% du temps d'aller-retour, ce qui, en pourcentage de l'utilisation globale des ressources, était si faible qu'il était insignifiant.