[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sdx-developers] COP
From: |
Nicolas Maisonneuve |
Subject: |
Re: [sdx-developers] COP |
Date: |
Wed, 3 Sep 2003 22:12:19 +0200 |
>Bon, et bien on
est au moins 2 :-) 3, si on considère une intervenante
>de [sdx-users]. A
titre personnel, je lorgne plutôt du côté de eXist ;-)
hmm... a chaque fois , j'ai eu des pb
d'installation
mais jai pas trop insisté
c'est vrai qu'il est plus riche en
fonctionnalité
pour le mail a avalon ..j'ai eu une reponse basé
sur le xmldb.api qui propose une interface d'implementation d'une
database
que j'ai implementé. au lieu d'avoir un
java.sql.connection , j'ai donc un Collection
qui a la meme fonction.
>V. plus haut. IMHO, c'est justement là le
problème. Si j'ai envie de
>tester une appli XSL 2.0, j'aurai besoin d'un
processeur ad hoc. Pendant
>mes tests, je n'ai pas forcément envie de
faire traiter les XSL de mes
>autres applis par un processeur en version
bêta ! J'aurais donc aimé
>pouvoir *facilement* disposer d'un processeur
au niveau application vs.
>un processeur au niveau global.
je ne suis pas trop un espert en avalon.. mais je
crois qu'il peut y avoir plusieurs composans ayant le meme role (=
plusieurs processeurs : un beta , un stable)
d'ou l'interet du selector dans Avalon.
Donc rien empeche d'ajouter un processeur stable
et de selectionner lorsqu'on n'en a besoin
donc cocoon s'en sort pour ce
problème..
>Vous avez donc une fieldList *contrainte* ? On
en a parlé récemment. Ici
>encore, plusieurs approches sont possibles
et... pas contradictoires.
>L'énorme force de Lucene, c'est de ne pas
imposer de schéma a priori.
>Allez faire ça avec un SGBD
!
Le fait de ne pas savoir quels
champs existent dans l'index .. meme si certain y voit une liberté mais j'y
vois une possibilité d'erreurs, de confusions..etc
disons que je n'ai jamais trop vu l'interet de
cette possiblité.. peut être qu'avec un use case bien particulier ok mais là ..
a vrai dire.. j'avais meme fait des methodes pour
vérifier que le document qui va être indexé etait valide (tout les
champs du documents étaient declarés dans l'index)
comme ca j'étais sûr..
-- entre parenthèse --
la liberté d'un programme n'est pas toujours une
force ,, y'a des libertés bien inutiles , source d'erreurs possibles.. des
libertés qui demande à l'utilisateur plus de travail, etc, enfin bon je ne suis pas pour la liberté en general mais
seulement pour des libertés bien reflechies .. ou alors des outils d'aide sont a
la disposition des utilisateurs
pour faire les taches les plus
courantes
-- fin parenthèse --
>Chez Lucene, il y a 2 approches : ceux qui
laissent le writer ouvert (en
>l'optimisant de temps en temps) et ceux
qui le ferment immédiatement
>après usage (comme vous). Chaque approche a
ses avantages et ses
>inconvénients.
ha je ne savais pas .. quelles sont les
avantage/con des 2 écoles ?
> <documentxml URI="http://www.ecr.org/description/1.0">
> <bind xpath="/:description/:ID"
idref="INDEXID"/>
oui le coup du binding et du xmltoLucene .. j'ai
changé de stratégie
j'ai fait un indexbaseTransformer et le binding se
fait comme dans SDX par une feuille de style
on a donc un binding_manager
<binding_manager>
</binding_manager>
le but c'est qu'avec un outil on prend un schema
XML et on demande à l'utilisateur quelle sont les champs qui veut rechercher sur
ce type de document
et le xsl est generer et la ligne binding ajouté..
(bien evidamment rien n'empeche de creer son propre xsl et/ou de configurer le
binding manuellement)
le binding manager pourra être appelé par une
cocoon action par exemple , histoire de choisir la bonne feuille de style
Est ce une bonne idée ?
voilà , voilà pour l'instant..
----- Original Message -----
Sent: Tuesday, September 02, 2003 10:02
AM
Subject: Re: [sdx-developers]
COP
Bonjour,
Nicolas Maisonneuve a écrit:
> y'a des classes
qui utilisent des interfaces d'avalon.. mais je n'ai pas vu
> dans vos
source , un lookup(moncomposant.role);
Oui, c'est vrai. Cela s'explique
par le fait qu'on a une arborescence de
ce type
:
Framework
--Application
----DocumentBase
------Repository
Le
Framework est une "application" Cocoon et est d'ailleurs mis à sa
disposition dans cocoon.xconf. Là où ça coince, c'est que les les
"sous-composants" n'ont pas a priori à être *globalisés* au niveau de
Cocoon.
Pour les Repository, assez analogues à des
<datasources>, on peut encore
discuter mais, sur le fond, Cocoon
manque encore (à ma connaissance)
d'un système de "sous-montage" de
composants. J'ai par exemple toujours
trouvé bizarre qu'il faille forcément
déclarer les pools de connection
SQL au niveau global alors que, tout
naturellement, ils devraient l'être
au niveau des applications puisque ce
sont elles qui font usage des dits
pools. Enfin... des pools globaux peuvent
aussi exister.
SDX propose une approche "intra-application", certes sans
tirer parti de
l'architecture Avalon ; je reconnais donc qu'elle manque sans
doute
d'élégance :-) Il est cependant bien pratique de pouvoir rapidement
définir son appli dans un seul fichier car ça, les utilisateurs aiment
!
> et ne sont pas traités en tant que composant mais seulement en
tant que
> classes ordinaires .. (evidemment on perd tout l'interet
car on a plus la
> gestion du lifecycle du composant fait par le
conteneur, seul avantage d'un
> composant par rapport à une classe
ordinaire)
La plupart des life cycles SDX ne sont pas particulièrement
difficiles à
gérer. On aurait pu mieux faire sur la gestion des connections
aux
repositories et des (éléments) de pipeline mais, encore une fois, ça
pose le problème de savoir qui serait propriétaire de ces composants ;
il y a là sans doute des pistes à explorer et, en premier lieu, coller
auatnt que faire se peut au design Avalon/Cocoon.
> (j'ai
l'impression que le package OAI a été fait plus 'esprit composant
>
...)
Oui : raisons historiques. Ce package est plus
récent.
>>org.apache.avalon.excalibur.datasource pour les
repositories, mais la
>>méthode clé, getConnection() est typée...
java.sql.Connection :-(
>
> ha.. j'suis content de cette remarque
.. car je voulais aussi utiliser cette
> interface pour un composant
utilisant Xindice
Bon, et bien on est au moins 2 :-) 3, si on considère
une intervenante
de [sdx-users]. A titre personnel, je lorgne plutôt du côté
de eXist ;-)
>(d'ailleurs à quand un
> repositories xmldatabase
dans SDX..)
Il tombe sous le sens. Le problème est de savoir comment
intégrer ça à
l'existant ? La dissymétrie SQL/non-SQL est fâcheuse alors
que,
fondamentalement, la logique est la même. On peut se connecter à un
fournisseur de ressource (DataSource ?) et, avec cette connection, faire
des ajouts, mises à jour, destructions, requêtes. En SQL, le langage de
requête, c'est... du SQL, en XMLDB, ça peut être du XPath ou du
XQuery/XUpdate. Fondamentalement, ça n'en reste pas moins du texte à
fournir à un Statement retournant des listes de ressources, ordonnées ou
pas. Plutôt que de partir de java.sql.*, on aurait mieux fait de partir
d'une UnsupportedQueryLanguageException :-))
Oui, vraiment, je suis
supris du manque d'abstraction proposé par Avalon :-(
> d'ailleurs je
vais poster un mail sur ce problème sur la mailing list Avalon
Je vous
souhaite les meilleures chances de succès !
>>Commentaire personnel
: avec ses fichiers de config dispersés ça et là,
>>je ne sais pas si
Cocoon est si flexible que ça :-) Enfin... les blocks
>>pourraient
considérablement arranger ça...
>
> y'a pas des dizaines de
fichiers de config ..
Certes.
> a part cocoon.xconf, lieu de
toute la configuration des composants
V. plus haut. IMHO, c'est justement
là le problème. Si j'ai envie de
tester une appli XSL 2.0, j'aurai besoin
d'un processeur ad hoc. Pendant
mes tests, je n'ai pas forcément envie de
faire traiter les XSL de mes
autres applis par un processeur en version bêta
! J'aurais donc aimé
pouvoir *facilement* disposer d'un processeur au niveau
application vs.
un processeur au niveau global.
M'enfin, les blocks
pourront peut-être aider : ils semblent s'orienter
vers la gestion du
versionning... qui n'est qu'un des aspects de la
question.
>>Petite note sur le transformer : on optimise et on
ferme le writer sur
>>le dernier élément <index/> (dernier
élément du document d'indexation en
>>fait). Qu'en est-il de la
performance ?
>
> pour mon transformer... j'avoue que je n'ai pas
spécialement testé les
> performances..
Le problème qui risque de
se poser, c'est la croissance exponentielle
des temps de d'optimisation.
Ici, il y a sans doute de l'optimisation
fonctionnelle à faire : une
indexation en mémoire et des merges "à la
carte" ?
> par
contre je ne comprend ou est le problème dans l'optimisation et la
>
fermeture du writer, y' a til une mauvaise facon de faire ?
Chez
Lucene, il y a 2 approches : ceux qui laissent le writer ouvert (en
l'optimisant de temps en temps) et ceux qui le ferment immédiatement
après usage (comme vous). Chaque approche a ses avantages et ses
inconvénients.
Il serait intéressant d'avoir des benchmarks mais je
suis plutôt de ceux
qui pensent que l'indexation peut se permettre de
mobiliser des
ressources pour, en contrepartie, offrir de la performance en
recherche.
Bref, je suis plutôt de votre école :-)
> j'ai
créé ainsi l'analyserManager (inspiré de SDX mais plus simple)
D'autres
analyseurs devraient suivre... bientôt ;-)
> un indexbaseManager (un
documentBase pour SDX, sans les repositories,
> histoire de séparer un
maximum )
Intéressant...
> (le binding sera enlevé
> et
mis dans un composant dédié à la transformation d'un XML en
>
lucene.document.. )
On en reparle de suite...
>
<fieldList>
Vous avez donc une fieldList *contrainte* ? On en a
parlé récemment. Ici
encore, plusieurs approches sont possibles et... pas
contradictoires.
L'énorme force de Lucene, c'est de ne pas imposer de schéma
a priori.
Allez faire ça avec un SGBD !
>
<documentxml URI="http://www.ecr.org/description/1.0">
> <bind xpath="/:description/:ID"
idref="INDEXID"/>
Mmmh... plutôt qu'un binding de ce type, ne pensez
vous pas qu'un
fragment XML destiné à alimenter votre transformer serait
moins
fastidieux à mettre en oeuvre ? Le binding XPath est IMHO, l'un des
principaux défauts d'eXist alors que la génération de document(s)
d'indexation est, IMHO, la principale qualité de SDX :-)
> je
pense aussi faire un writerManager qui gère justement le problème de la
>
demande de plusieurs instances de writer pour la meme base index
> et
aussi plusieurs composants pour le role de
XMLtoLucene
Intéressant.
A bientôt,
--
Pierrick
Brihaye, informaticien
Service régional de l'Inventaire
DRAC
Bretagne
mailto:address@hidden
_______________________________________________
sdx-developers mailing
list
address@hidden
http://mail.nongnu.org/mailman/listinfo/sdx-developers
- Re: [sdx-developers] COP, Pierrick Brihaye, 2003/09/01
- Re: [sdx-developers] COP, Nicolas Maisonneuve, 2003/09/01
- Re: [sdx-developers] COP, Pierrick Brihaye, 2003/09/02
- Re: [sdx-developers] COP,
Nicolas Maisonneuve <=
- Re: [sdx-developers] COP, Pierrick Brihaye, 2003/09/04
- Re: [sdx-developers] COP, Nicolas Maisonneuve, 2003/09/10
- RE : [sdx-developers] COP, Martin Sevigny, 2003/09/10
- Re: [sdx-developers] COP, Pierrick Brihaye, 2003/09/10
- RE : [sdx-developers] COP, Frédéric Glorieux, 2003/09/11
- RE : RE : [sdx-developers] COP, Martin Sevigny, 2003/09/11
- Re: RE : [sdx-developers] RDF, Nicolas Maisonneuve, 2003/09/11
- RE : RE : [sdx-developers] RDF, Frédéric Glorieux, 2003/09/11
- Re: RE : [sdx-developers] RDF, Nicolas Maisonneuve, 2003/09/11
- Re: RE : [sdx-developers] RDF, Pierrick Brihaye, 2003/09/12