2011-10-25 2 views
3

J'ai une application PHP que ma société a choisi d'adopter d'une part. Nous avons déjà implémenté un moteur de règles (Drools) pour notre application Java. Tout passe par une plateforme middleware via la messagerie SOAP. Je sais que nous allons devoir faire un tas de classes personnalisées pour notre application PHP pour gérer les situations qui pourraient être traitées via le moteur de règles. Comment intégrer Drools à notre application PHP? Devrais-je m'en tenir à la messagerie SOAP de l'application PHP via notre ESB au moteur de règles et revenir?Comment utiliser Drools avec une application PHP?

Répondre

5

Essayez de ne pas ajouter plus de pièces mobiles à une déjà compliquée système. Je vous recommande de suivre votre instinct et d'envoyer les données à traiter à l'application Java via SOAP. De cette façon, vous pouvez consolider votre logique métier dans un domaine et la réutiliser dans plusieurs endroits. C'est en effet la puissance des systèmes distribués.

2

Vous pouvez appeler la partie Java avec Java Native Interface (JNI) de PHP. La partie Java aura une interface publique qui recevra les appels de PHP, traitera les informations via Drools, puis retournera l'analyseur à PHP. En faisant cela, vous n'avez pas besoin de modifier votre application Java actuelle, il vous suffit de fournir un point d'entrée depuis PHP.

Commencer simple! Juste en envoyant quelques types primitifs (nombres) et en les récupérant. Ensuite, Strings, et ainsi de suite, et enfin passer plusieurs paramètres et objets complexes.

Il y a un projet qui aide à faire le pont entre PHP et Java: http://php-java-bridge.sourceforge.net/pjb/

Les pourparlers de documentation PHP sur les appels natifs à Java: http://www.php.net/manual/en/book.java.php

1

Avec une ESB déjà en place, et le fait que vous allez déjà utiliser SOAP pour les barrières linguistiques, vous devriez simplement passer par l'ESB.

Ne pas coupler votre application lorsqu'il existe déjà un ESB et que les ESB ont des modules BPM pouvant être des points de terminaison.

PHP dispose de clients AMQP et Stomp pour l'intégration de la messagerie, ou vous pouvez bien sûr utiliser SOAP pour un service.

Idéalement, votre application Java, si elle est actuellement couplée au moteur de règles, utiliserait également un service via l'ESB. Ensuite, l'application PHP et Java accèdent au même moteur de règles. Les règles seraient bien sûr partagées et gérées de manière centralisée. Dans le pire des cas, vous pourriez avoir besoin d'un composant Java ou d'un transformateur de message entre la requête de PHP et la réponse du moteur de règles.

Comme un ESB est compliqué, si votre entreprise en a déjà un, la complexité de l'organisation l'exige. Utilisez l'outil pour garder les systèmes découplés et les composants gérables.

Voir ces liens pour des exemples: