Quelles sont les responsabilités d'un moteur d'orchestration vs un système piloté par un message. P>
Si je dois construire un système qui doit organiser des composants indépendants différents (composants de la technologie / plate-forme multiples qui n'ont pas besoin d'exposer un point d'extrémité de service Web), qui est l'outil d'ensemble à choisir? P>
Y a-t-il une meilleure option? p>
4 Réponses :
Alors que cette question est étiquetée Java, j'ai peur de dire le meilleur outil que j'ai vu si vous devez vraiment aller faire cette route est Server BizTalk's Microsoft . P>
Quand je devais procéder à une évaluation de ce type de produit (et c'était quelques années), c'était la tête et les épaules au-dessus de la concurrence avec les principales caractéristiques: p>
À la fin, nous choisissons de Keep-It-Simple EM> et allé la voie de messagerie, bien que cela nécessite que vous ayez besoin de contrôler tous les participants, ce qui pourrait ne pas être le cas. p>
Utilisez OPENESB avec éditeur NetBeans ou tout autre moteur BPEL Open Source qui fournit une manière standard ou orchestrant le processus. Si vous pensez que la performance est très importante que la normalisation, vous pouvez essayer certains outils exclusifs ESB ou BPM tels que JBoss JBPM ou Mule ESB, etc. P>
Veuillez noter que BPEL ne peut être utilisé que pour consommer des services Web si vos composants ne sont pas des services Web, vous devrez peut-être utiliser quelques mulettes de type ESB, ce qui peut prendre en charge des plus de 200 protocoles avec des extensions. p>
Lorsque vous décidez si vous devez utiliser l'orchestration ou le flux de travail dirigé par un message, la grande question que vous rencontrez est, pensez-vous qu'il sera nécessaire de modifier régulièrement votre flux de travail d'orchestration. Si vous pensez que le processus métier doit être flexible car il est sujet à modifier, puis adoptez un format de message canonique et utilisez l'orchestration, ce qui minimisera l'impact de la modification des relations entre les services. Si vous pensez que le flux de travail est stable, vous pouvez adopter un débit de travail piloté par un message. Personnellement, je pense que l'orchestration est l'approche supérieure en général, mais elle nécessite davantage d'infrastructures logicielles qui avec des outils tels que Apache Camel A > L'investissement est temps avec la récompense d'une flexibilité à long terme accrue. P>
Je vous suggère de révéler d'abord vos composants indépendants simples en tant que service via le Web (je n'ai pas compris si vous avez déjà desservices pour cela). Après cela, le meilleur choix dépend de votre charge de travail / complexité du système. P>
Fondamentalement, vous pouvez choisir entre la chorégraphie VS Service Orchestration. L'orchestration du service, faite avec BPM / BPEL / ESB est un choix architectural dans lequel un composant unique (le compositeur de service Orchestrateurs / Service) sait quelles étapes doivent être exécutées et qu'il est responsable d'invoquer des services dans le bon ordre (configuré sur l'orchestrateur lui-même). . Il gère également la gestion des transactions (si nécessaire). P>
Le contraire est la chorégraphie où chaque service unique composant l'ensemble du système sait comment agir lorsqu'il reçoit un message spécifique. En fait, c'est une question d'agence entre les différents composants. Chorégraphie de service C'est une approche décentralisée du problème de la composition de service. P>
Si vous avez beaucoup de services, des règles complexes et ainsi de suite ... il sera probablement plus facile d'utiliser un orchestrateur de service comme JBPM ou quelque chose comme ça. P>