frutch [wiki]

EtendreNutch

Plugin et ClassLoader?

Quel est le problème avec les plugins et le ClassLoader??

Quels concepts techniques sont derrière le système de plugin de Nutch?

Ce texte explique sous forme de définitions l'ensemble des concepts impliqués dans le système de plugin de Nutch.
  • Extension point : Un Extension point est un point d'ancrage qui peut être étendu par des fonctionnalités tierces. Du point de vue du Design Pattern Publisher-Listener, un Extension point représente un publisher.

Pourquoi le Nutch a-t-il un système plugin?

Il y a trois arguments essentiels pour un système de plugin:
  • Extensible : N'importe qui peut écrire son propre plugin pouvant être branché à une interface afin d'étendre les fonctionnalités de Nutch.
  • Flexible : Comme n'importe qui peut écrire un plugin, il y aura peut-être dans le futur un grand nombre de plugins disponibles (à ce jour, environ un vingtaine de plugins existent déjà). Dans une telle situation, un utilisateur de Nutch peut assembler son propre moteur de recherche répondant à ses besoins en installant les plugins dont il a besoin. Il pourrait ainsi choisis entre différents algorithmes de résumé, ajouter le support du format PDF, ou bien supprimer le support du protocol FTP, et ainsi de suite.
  • Maintenance : Chaque développeur est focalisé sur son propre contexte. Ainsi, les développeurs du noyau écrivent du code pour le moteur et fournissent une interface (un plug). Par contre, le développeur de plugin est lui concentré sur les fonctionnalités du plugin et a juste besoin de connaître quels sont les types de données échangées entre le plug et le plugin. Ainsi, comme les deux parties sont clairement isolées, personne n'a besoin de se soucier de l'intégration de l'autre partie. Ceci abouti à un code moins complexe, plus facile à maintenir et à tester et plus robuste.

Écrire un plugin


Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]