Conversation avec rouvoy@jabber.objectweb.org/Adium
(11:01:21) adrien: bonjour romain, comme tu as vu on teste fraclet ;-)
(11:01:43) Romain Rouvoy: oui je vois ca
(11:01:55) Romain Rouvoy: je vois que vous êtes partis sur la version annotation Java5
(11:01:58) adrien: on a des composites dans Petals, et du coup il y a des fichiers adl pour ces derniers
(11:02:20) adrien: fraclet génère des fichiers adl pour les composants primitfs, grace aux annotations
(11:02:36) Romain Rouvoy: oui
(11:02:41) Romain Rouvoy: tu as tout bon jusque là
(11:02:46) adrien: du coup on a des fichiers adl à notre sauce, et d'autres générés automatiquement, c'est pas trop déroutant coté architecture ?
(11:02:59) adrien: on pourrait généré tous les adl depuis les annotations ?
(11:03:34) Romain Rouvoy: hum comment dire
(11:03:54) Romain Rouvoy: pour moi l'ADL est un langage (XML) de composition des composants
(11:04:21) Romain Rouvoy: pour la description des primitifs c autre chose car c'est très lié au code des composants
(11:05:35) adrien: je suis d accord avec toi, mais tu décrit bien dans tes composants primitifs tes liens avec les autres composants (Requires); de tte facon y a pas le choix, dc y a bien une description de la composition dans le code java
(11:06:09) Romain Rouvoy: tu n'exprimes que les interfaces requises dans le code de tes composants
(11:06:23) Romain Rouvoy: pas les implantations qui fournissent ces interfaces
(11:06:39) Romain Rouvoy: les composants restent très indépendants les uns des autres
(11:08:22) Romain Rouvoy: tu ne décris pas une composition mais des dépendances de services
(11:08:47) Romain Rouvoy: la composition pour moi c'est quand tu assembles deux composants pour résoudre une dépendance
(11:09:01) adrien: moui, la nuance est subtile ;-)
(11:09:10) Romain Rouvoy: :-)
(11:09:56) adrien: comment un composant va utiliser avec fraclet un autre composant qui se trouve dans un autre composite ? en mettant comme nom dans l'annotation <nom du composite>.<nom du composant> ?
(11:11:08) Romain Rouvoy: un composant ne peut utiliser qu'une interface
(11:11:17) Romain Rouvoy: c tout ce que tu dois exprimer dans Fraclet
(11:11:44) Romain Rouvoy: après tu utilises Fractal ADL pour dire que l'interface requise par ton composant correspond à l'interface fournie par un autre composant
(11:11:57) Romain Rouvoy: si possible il faut que les 2 composants soient dans le même composite
(11:12:09) Romain Rouvoy: sinon ca se complique et il faut utiliser le partage de composans
(11:12:12) Romain Rouvoy: composants
(11:13:21) adrien: par ex dans Petals, on a 2 gros composites, et dans le composite parent, on bind des composants de l'un vers l'autre. si tu regarde sur le wiki de petals, dans la partie Architecture, y a le schéma fractal
(11:13:31) Romain Rouvoy: je regarde
(11:13:39) adrien: je suis sur qu'on fait pas comme il faut, mais ca te donne l'idée de notre truc !
(11:14:13) Romain Rouvoy: je vais monter un startup de conseil en développement Fractal :-p
(11:14:39) Romain Rouvoy: wouhouh l'architecture de furieux ;-)
(11:14:41) adrien: oui ;-) tu viendras a toulouse pour nous aidrer, ca te sortira un peu ;-è)à
(11:14:56) Romain Rouvoy: :-p
(11:15:37) Romain Rouvoy: c une sacré pelote de laine petals :-)
(11:15:51) adrien: oui !! c est a cause des traits verts qui se mettent mal ;-)
(11:16:13) Romain Rouvoy: ok
(11:16:24) adrien: en plus, y a pas mal de compo de JBI qui devraient se trouver dans PLATEFORME, mais par faignantise, on quasi tout mis dans JBI
(11:16:36) Romain Rouvoy: pour moi tu peux inclure tes composants platform et jmx dans le composite jbi
(11:17:00) Romain Rouvoy: à mon avis, tu devrais mettre l'architecture à plat
(11:17:08) Romain Rouvoy: avec un seul composite petals
(11:17:28) Romain Rouvoy: puis essayer de tracer des composites autour des groupes de composants que tu peux isoler
(11:17:33) adrien: l'idée initiale était d'avoir un "container", le composite PLATEFORME, et une "personnalisation JBI" qui était le composite JBI
(11:17:41) adrien: et on pouvait mettre une autre personnalité
(11:18:05) Romain Rouvoy: oui mais avec fractal tu peux utiliser la hiérarchie et le partage pour faire des trucs un peu plus propre et moins pelote de laine
(11:18:20) adrien: c'est là que vous intervenez ....
(11:18:42) Romain Rouvoy: le truc c d'inclure ta plate-forme dans ta personnalité
(11:18:53) adrien: ok, pas de la mettre a coté
(11:18:58) Romain Rouvoy: ouep
(11:19:22) adrien: ca serait un composite dans un composite, ou simplement ts les composants les uns a coté des autres ?
(11:19:52) Romain Rouvoy: dans un premier temps tu peux mettre un composite dans un composite
(11:20:03) Romain Rouvoy: et après tu verras si le découpage reste correct
(11:20:19) Romain Rouvoy: mon approche
(11:20:32) Romain Rouvoy: qd je développe ce genre de système est la suivante
(11:20:49) Romain Rouvoy: pour toute fonction à personnaliser
(11:21:30) Romain Rouvoy: j'inclue la fonction personnalisée (pour un standard) avec la fonction générique dans un même composite
(11:22:24) Romain Rouvoy: et si deux fonctions personnalisées font utilisent un même service générique alors je crée deux composites (un pour chaque fonctionnalité) et je partage l'instance du service générique entre ces deux composites
(11:22:57) Romain Rouvoy: tu veux que je te montre un exemple jouet Fractal ADL qui illustre ca ?
(11:23:10) Romain Rouvoy: Adrien t encore là ? :-)
(11:23:34) Romain Rouvoy: /ping adrien@toulouse ...
(11:23:55) adrien: oui ...
(11:23:59) Romain Rouvoy: ouf
(11:24:10) adrien: t avais peur de parler dans le vide ;-)
(11:24:16) Romain Rouvoy: un peu oui :-p
(11:24:24) Romain Rouvoy: mais j'ai l'habitude avec mes étudiants :))
(11:24:38) adrien: je te lis avec delectation ...
(11:24:52) Romain Rouvoy: waouh je vais rougir :))
(11:25:11) adrien: ;-) je veux bien voir ton exemple par contre !
(11:25:20) Romain Rouvoy: je me doutais que tu allais dire ca :))
(11:26:15) adrien: c est pour ca que je te l'ai demandé !
(11:26:55) Romain Rouvoy: ok je te mitone ca alors
(11:28:04) adrien: i m waiting ...O:-)
(11:28:16) Romain Rouvoy: example in progress...
(11:29:14) Romain Rouvoy: de façon abstraite voici à quoi ca ressemble
(11:29:15) Romain Rouvoy: <definition name="petals">
<component name="installation">
<component name="installation-jbi" definition="InstallationJBI"/>
<component name="plate-forme" definition="PlateformeImpl"/>
<binding client="installation-jbi.installation" server="plate-forme.installation"/>
</component>
<component name="deploiement">
<component name="deploiement-jbi" definition="DeploiementJBI"/>
<component name="plate-forme" definition="./plate-forme"/>
<binding client="deploiement-jbi.deploiement" server="plate-forme.deploiement"/>
</component>
</definition>
(11:29:41) Romain Rouvoy: si j'ai deux fonctions "installation" et "déploiement" qui utilisent la plate-forme générique
(11:30:27) Romain Rouvoy: l'utilisation de "./plate-forme" dans le champ definition permet de pointer une instance existante dans un autre composite pour la partager
(11:30:52) Romain Rouvoy: j'attends que tu compiles ;-)
(11:32:38) adrien: je compile dans ma tete ;-)
(11:33:10) Romain Rouvoy: ouep vaut mieux ;-)
(11:34:27) adrien: laisse moi un peu de temps, je suis encore novice fractal... ca compile doucement !
(11:34:42) Romain Rouvoy: ok... je vais aller manger dans ce cas ;-)
(11:34:48) Romain Rouvoy: ca te laisse plein de temps :-)
(11:35:03) adrien: gna gna gna, ok , merci en tout cas !
(11:35:07) Romain Rouvoy: de rien
(11:35:19) Romain Rouvoy: n'hésite pas à demander en cas de besoin, ya pas de soucis