Pour un projet d'informatique distribuée qui commence aujourd'hui avec 0 composant hérité, existe-t-il de bonnes raisons de se tourner vers CORBA?
Réponses
Trop de publicités?Il existe encore des situations où CORBA pourrait être une bonne réponse:
- lorsque vous créez un distribuées système impliquant de multiples programmation langues et de multiples plates-formes,
- lorsque votre système entraîne l'envoi d' des structures de données complexes ... et du SAVON ne coupe pas,
- lorsque vous avez des taux élevés de messagerie ... et HTTP ne coupe pas, ou
- lorsque vous aurez à interagir avec les existant de clients CORBA et/ou services.
Mais après avoir dit cela, il existe des alternatives, que de faire ce que CORBA n', mais en mieux ... ou alors ils le prétendent. Par exemple ZeroC de GLACE
EDIT @fnieto carillons à dire (ou implique) que la GLACE n'est pas libre, mais TAO est.
C'est inexact et trompeur.
- La GLACE est logiciel sous GPL, et est disponible pour téléchargement gratuit. Vous avez seulement besoin de payer pour de la GLACE si vous / votre entreprise ne sont pas préparés à vivre avec les termes de la GPL. (Ou si vous avez besoin d'aide.)
- J'ai utilisé de la GLACE comme un exemple d'une alternative à CORBA. TAO est CORBA. La GLACE auteurs d'être crédible en cas pourquoi ils peuvent obtenir de meilleures performances en n'étant pas CORBA conforme.
- TAO est pas le seul libre / open-source CORBA mise en œuvre. Je peux penser de 3 autres, sur le dessus de ma tête.
Le bas-côté de la GLACE, c'est le manque d'interopérabilité avec les piles middleware CORBA, mais dans mon expérience de l'interopérabilité des différents CORBA implémentations pourrait également être problématique. (Les choses ont peut-être amélioré dans ce domaine ... mais je ne l'ai pas fait CORBA travail depuis ~2002, donc je suis un peu le contact.)
À partir de l'existant réponses, cela devient presque un thème religieux. On peut regarder CORBA de la même façon que la moitié vide ou à moitié pleine du verre: d'une part, CORBA est daté de l'héritage trucs, et d'autre part, il est relativement stable avec plusieurs implémentations disponibles et le "diable vous savez".
Dans mon travail, je vois CORBA déployés dans les systèmes embarqués, systèmes temps-réel (CORBA a RT extensions), et la comme. Il n'y a pas beaucoup d'alternatives autant que je sache.
Un autre "avantage" de CORBA est la disponibilité de plusieurs de haute qualité mises en application open source, par exemple, TAO, MICO, JacORB, etc., avec différentes licences et des modèles de soutien. Il y a aussi encore des éditions commerciales disponibles.
En ce qui concerne "la plupart" CORBA apps être implémenté en Java, ce n'est pas le cas dans mon expérience. Alors que la langue de cartographie de CORBA en Java est l'un des plus beaux, il y a (ce qui peut ne pas être beaucoup dire), Java a déjà un très beau modèle de calcul distribué qui offre la richesse au-delà de CORBA et Java apps utiliser plus de CORBA. La grande majorité de CORBA développement que j'ai vu est en C++ (qui est aussi la pire langue de cartographie).
Enfin, CORBA offre standardisée côté client asynchrone invocations dans la forme de l'AMI, mais n'a jamais offert asynchrone de manutention sur le côté serveur. TAO offre une non-standard de serveur-côté de la mise en œuvre appelée AMH.
Je crois que Corba est une sorte de reprise par les EJB spec, comme les EJB peut être facilement transformé en CORBA haricots par un peu de configuration. Je soupçonne que la plupart des Corba déploiements ont été effectivement mis en œuvre en Java.
Quant à la popularité, je pense qu'il pourrait être un haut de gamme des déploiements reste pour un certain nombre de décennies, mais pour la majorité des gens Corba est mort.
Il y a tout un tas de très sexy façons de faire la même chose (à l'exception du haut de gamme mentionné ci-dessus).
- Le Cloud computing (web services, informatique évolutive, couplage lâche, la mise en queue).
- RESTE services (web services lite).
- SAVON services (web services lourd).
- Grille / Cluster de calcul (files d'attente, map-reduce et similaires)
Mais bien sûr, vos Résultats Peuvent Varier.
Evidemment, ça dépend du type de serveur et la communication interprocessus que vous envisagez. Et je pense que Stephen C et Chris Cleeland couvrir le de Corba positifs très bien.
Notre application a utilisé CORBA (Orbix) depuis plus de 10 ans est donc legs. Et pour la façon dont il est écrit CORBA est une bonne technologie. Cependant, si je commençais de plus je n'aurais probablement pas utiliser CORBA:
- C'est compliqué et seul un petit nombre de personnes dans mon organisation sais très bien fait, toutes les durs problèmes de tomber sur eux à résoudre.
- Le recrutement de personnel peut être un problème. CORBA n'est tout simplement pas cool du tout et n'obtiennent pas refroidisseur Bien qu'en Irlande, les développeurs C++ sont un peu mince sur le sol.
- La plupart des cabinets de Consultation souhaitez utiliser les services web pour l'intégration de travail, donc si vous voulez 3ème parties à faire de l'intégration, vous aurez probablement besoin d'une api de services web, de toute façon.
Maintenant, selon le type de communication que je voulais m'aiderait sans doute à considérer:
- protocole de tampons pour beaucoup de petits messages (je sais que je dois fournir le transport)
- des services web pour les moins de grands messages
Ceci est basé davantage sur la recherche de personnel et d'expertise, 3e partie, de soutien et de tirer parti de bibliothèques open source puis de la qualité technique de CORBA, que j'utilise tous les jours et est solide même si un peu lourd.
CORBA est certes démodé, mais il fournit également certaines fonctions de haut niveau prêtes à l'emploi (voir ici ). Toutes les fonctionnalités pourraient être réalisées à l'aide de services Web modernes, mais probablement pas de manière standard et sans beaucoup de travail supplémentaire.
Cependant, pour 99% des services distribués, CORBA n'est pas souhaitable. C'est moche, complexe et difficile à utiliser.