[Experts] Norme CORBA (IIOP) en PHP

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

22 févr. 2008, 17:30

Bonjour à tous,

Pour les besoins d'une très grosse application (professionnelle), j'aurais besoin d'utiliser la norme CORBA pour mettre en place une communication entre une partie PHP (contrôleur et vue) et une partie Java (Modèle).
Les quelques recherches qui ont été réalisés ont ressortis plusieurs API :
- Satellite (autre lien) : n’est à priori plus utilisé.
- Universe : Successeur de Satellite, plus maintenu à priori.
- PHP-Orbit : A l'air de n'avoir jamais été terminé

Est-ce que quelqu'un a déjà mis en place ce genre de norme (via un module ou via une classe perso) sur un projet PHP ? Si oui, est-ce que vous auriez quelques adresses, ressources ?

PS : J'ai parlé principalement de CORBA, mais si quelqu'un sait comment communiquer directement en IIOP, ou alors être compatible avec RMI (Java), je suis preneur ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 22:58

Je ne voudrais pas faire un UP, mais je voudrais juste savoir s'il n'y a vraiment personne qui aurait des informations sur la manière de mettre en œuvre CORBA en PHP.
Sinon, je mettrais le sujet en délestage ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

24 févr. 2008, 23:04

Comme je suis de corvée de garde du forum de nuit, je te réponds ;-).

Je ne connaissais pas cette technique de dispatcher les tâches d'un MVC vers différents langages. À vrai dire, ça à l'air très intéressant, mais comme je ne connaissais pas, je ne me permets pas de répondre (car 'connais rien forcément).

Une question toute fois, comment communique PHP et Java ? Qu'est-ce que la norme CORBA ? Car sinon, c'est peut être programmable non ?
Rien n'est impossible ;-). Si quelqu'un a réussi à le faire une fois, on peut le refaire, c'est sûr.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 23:20

Effectivement, je désire utiliser CORBA pour faire communiquer des applications de différents langages.
Quand je parle de dispatcher les tâches d'un MVC, j'entends en fait mettre en oeuvre 3 MVC qui agiront chacun comme une couche d'un MVC plus global.
illustration graphique :
Image

Le but étant d'utiliser les forces des langages Java et PHP dans la couche qui leur convient le mieux.

Et, effectivement, CORBA est une norme qui te permet de faire communiquer 2 applications dans 2 langages différents, mais directement avec des objets instanciés.
J'aimerais, pour des raisons de performance, éviter au maximum la solution du flux XML car ça rajouterais une couche non compilé de traitement des informations.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

24 févr. 2008, 23:34

Bien.
Alors tu communiques entre les couches à travers des flux XML si je comprends bien, même si c'est ce que tu aimerais minimiser. Mais je ne vois que ça pour faire communiquer les 2 langages.

Donc, ça se programme très bien. Il faut avoir un bon MVC autant en PHP qu'en Java. En Java tu as les EJB il me semble, ou un truc du genre (je n'ai pas étudié les structures MVC de Java en profondeur).
J'imagine que toute la mécanique serait amorcée depuis PHP, mais je ne vois toujours pas comment interpeller Java. À travers le terminal ?

Bon, on se met au boulot quand ;-) ? (si j'ai le temps, je tenterai 2 ou 3 choses, mais vraiment si j'ai le temps ... en revanche, un coup de pouce est toujours possible :))
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Mammouth du PHP | 1511 Messages

24 févr. 2008, 23:38

Je vais ptet dire une connerie, mais concernant l'interaction php-java, n'y a t'il pas un projet sorti recemment qui permettait a php d'interagir avec java ?
Ex d'une petite recherche sur l'ami gOOgle : http://php-java-bridge.sourceforge.net/
Enfin, j'dis ptet une connerie...
@++ ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 23:42

Non, je me suis mal exprimé.

En fait, je voudrais ne pas utiliser XML tant que possible. La raison est que je serais obligé de développer une couche d'interprétation du XML pour retourner des objets PHP.

Le but d'utiliser la norme CORBA, c'est que cette norme te permet de récupérer des objets instancié en natifs, sans rien ajouter. De plus, cette norme est très bien implémentée en Java.
Je cherche donc un module PHP qui serait compilée avec PHP et que permettrait de mettre en oeuvre CORBA en PHP.

Sinon, pour information, le principe serait qu'un controleur PHP lance une demande à une application tierce Java qui serait le modèle et qui renverrais les informations à une vue Java, à la manière d'un webservice.

Et merci pour ta proposition d'aide, mais il s'agit d'une étude de faisabilité pour un projet professionnel. Je ne travaille donc dessus que pendant mes heures de travail et j'aurais quelques développeurs pour le mettre en application le moment venu ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 23:47

Le principe du java-bridge n'est pas intéressant, mais il me pose un autre soucis : une couche PHP est obligatoire pour communiquer avec Java. Or, je désire que ma section Java soit sur une grappe de machine sur lesquelles PHP ne sera pas installée :?

Mais merci du lien, je le garde sous le coude ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

24 févr. 2008, 23:52

Je réfléchis à des solutions côtés Java (avec le paquetage XStream qui permet de sérialiser des objets objets en XML) pour faciliter le travail à PHP. XML est très bien intégré côté Java et PHP, je ne vois pas pourquoi tu ne veux pas l'utiliser :s.

Pour le principe, j'ai bien compris et je vois déjà le fonctionnement.

Ce que j'imaginais, c'est avec CORBA et XStream, tu envoies tout vers PHP, et tu pourrais faire une unserialisation côté PHP.

D'ailleurs, une phrase n'est pas claire pour moi :
Je cherche donc un module PHP qui serait compilée avec PHP
un module PHP compilée avec PHP, t'es sûr ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

24 févr. 2008, 23:57

Effectivement, la sémantique à son importance.
Je voulais parler d'une extension de PHP qui serait donc à compiler avec PHP.

La raison pour laquelle j'aimerais éviter XML, c'est qu'il faudrait une couche maison qui interpréterais les données pour instancier des classes avec ces données. Donc du temps d'exécution qui pourrais être évité avec CORBA.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 259 Messages

25 févr. 2008, 00:57

Hello,

Réponse sans doute idiote vu comme elle est facile mais ça suffit pas ça ?
http://www.php.net/manual/fr/ref.java.php

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

25 févr. 2008, 01:08

Une réponse n'est jamais idiote, elle permet toujours de voir des choses différentes.

Sinon, comme pour momox, cette solution ne me convient pas dans le sens où elle permet de faire communiquer Java et PHP lors de l'exécution d'un même processus.
Alors que j'aimerais faire communiquer 2 processus sur 2 machines différentes ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

ViPHP
ViPHP | 4674 Messages

25 févr. 2008, 01:14

Si en plus tu veux faire du sharding ... T'es pas simple hein :lol:.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 2144 Messages

25 févr. 2008, 01:37

J'ai dû utiliser du Corba en Java, à une époque, c'est vrai que c'est assez puissant, et que cela semble convenir très bien à ce que tu dois faire.
Mais visiblement, comme tu l'as dit, il y a pas grand chose comme projet de corba sous php disponible.

Je ne sais pas si RMI est mieux loti ?

Bonne continuation en tout cas ;)

Mammouth du PHP | 1511 Messages

25 févr. 2008, 11:54

Globalement, quel est le principe de ce CORBA ?
Si j'a bien compris ce que tu cherches a résumer, tu as une machine, sur laquelle tu vas faire tourner une applicatoin java qui va te renvoyer des données, sous quel format, je ne sais pas.
Ton but a toi, c'est de récuperer ensuite ces données sous PHP et de pouvoir les exploiter ?

A partir de ca, on peut voir deux choses.
Comment PHP va récuperer ces données ? (sockets, fonction particulière d'un module tierce partie particulier, ...)
Comment PHP va traiter ces données ? (parseur ou fonction particulière d'un module tierce partie particulier)

Quelles sont les solutions que tu envisageais avec les divers modules que tu avais cités dans ton premier post ?