Difference between revisions of "L'architecture orientée service d'Apertium"
(Création page) |
(Correction accès svn) |
||
Line 4: | Line 4: | ||
'''MISE A JOUR''': A présent, ce projet a été déplacé de ''branches/gsoc2009/deadbeef/'' à ''trunk/'', et ses sources sont disponibles ici : |
'''MISE A JOUR''': A présent, ce projet a été déplacé de ''branches/gsoc2009/deadbeef/'' à ''trunk/'', et ses sources sont disponibles ici : |
||
https:// |
https://svn.code.sf.net/p/apertium/svn/trunk/apertium-service/ |
||
Les sources peuvent être facilement examinés ici : http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-service/ |
Les sources peuvent être facilement examinés ici : http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-service/ |
Revision as of 21:26, 4 July 2014
MISE A JOUR: A présent, ce projet a été déplacé de branches/gsoc2009/deadbeef/ à trunk/, et ses sources sont disponibles ici : https://svn.code.sf.net/p/apertium/svn/trunk/apertium-service/
Les sources peuvent être facilement examinés ici : http://apertium.svn.sourceforge.net/viewvc/apertium/trunk/apertium-service/
Une interface web rapide vers un prototype du service opérationnel est disponible ici : http://www.neuralnoise.com/ApertiumWeb2/
Des instructions d'installation simples sont dans Apertium-service.
Contents
Introduction
Le but de ce projet est de concevoir et d'implémenter un "service Apertium" qui peut être facilement intégré dans les systèmes IT implémentés en utilisant un modèle basé sur une Architecture Orientée Service (SOA).
Actuellement, pour traduire un gros corpus de document, plusieurs processus Apertium sont créés et chacun doit charger les transducteurs requis, les grammaires etc., causant un gaspillage de ressources et, donc, une réduction de la scalability (traçabilité ??).
Pour résoudre ce problème, une solution est d'implémenter un service Apertium qui n'a pas besoin de recharger toutes les ressources pour chaque tache de traduction. En plus, ce genre de service serait capable de supporter des requêtes multiples en même temps (utile, par exemple, dans un environnement orienté Web 2.0), améliorerait la scalability (??), et pourrait être facilement inclus dans les processus de business existants et intégré dans les infrastructures IT existantes avec l'effort minimum.
En plus, ce projet a aussi pour but d'implémenter un service Web fonctionnant comme une passerelle entre le service Apertium et les applications externes (charger Apertium dans le service Web lui-même serait un non sens, dans la mesure où un service Web est sans état et ça ne résoudrait pas le problème de scalability): le service Web offrira à la fois une interface SOAP et REST, pour le rendre plus simple aux applications/services externes (par exemple: les clients IM, les sites web, les gros processus de business IT...) pour inclure les capacités de traduction sans importer l'application Apertium complète.
Un cas d'utilisation possible : une organisation de santé
Dans les systèmes d'information de santé (HIS), pour améliorer les services externes l'accès et l'intégration, il y a une tendance générale à implémenter l'infrastructure IT basée sur un modèle d'architecture orientée service; dans ce cas d'utilisation, je montre comment une organisation de pays non anglophones peut grandement bénéficier de l'intégration d'un service de traduction implémenté en utilisant Apertium dans leur infrastructure IT.
MetaMap est une application en ligne qui permet de cartographier le texte sous forme de concepts Metathesaurus UML, ce qui donne une interopérabilité très utile entre différentes langues et systèmes dans le domaine biomédical. MetaMap Transfer (MMTx) est un programme Java qui rend MetaMap disponible pour les chercheurs du domaine biomédical. Actuellement MetaMap fonctionne seulement avec les textes écrits en anglais, ce qui rend difficile l'utilisation des Metathesaurus UML pour extraire des concepts à partir de textes biomédicaux non anglais.
Une solution possible à ce problème est de traduire les textes biomédicaux non anglais en anglais, afin que MetaMap (et d'autres outils texte (mining ??) similaires) puisse effectivement travailler dessus.
Fonctionnement interne du service
Une implémentation efficace et scalable (??) possible d'un serveur Apertium peut être composée des composants suivants :
- Gestionnaire d'authentification : il est nécessaire d'authentifier les utilisateurs (en utilisant l'authentification HTTP de base) et ça peut être interfacé, par exemple, à un serveur OpenLDAP externe, un DBMS contenant des informations d'utilisateurs, etc.
- Thread Pooler : une implémentation du modèle de Thread Pool : http://en.wikipedia.org/wiki/Thread_pool
- Gestionnaire de modes : localise les fichiers mode et les analyse avec le jeu d'instructions correspondant
- Object Pooling Factory : une implémentation du modèle d'Object Pool : http://en.wikipedia.org/wiki/Object_pool
- Composant de traduction : en utilisant les instructions contenues dans un fichier mode (analysé par le composant Modes Manager), traduit un texte donné encodé dans une certaine langue dans une autre.
Interface du service
Une interface possible pour les fonctionnalités du service Apertium est basée sur XML-RPC, un protocole d'appel de procédure distant qui utilise XML pour encoder ses appels et HTTP comme mécanisme de transport. Le standard XML-RPC est décrit en détail ici : http://www.xmlrpc.com/spec
La liste de méthodes que le service RPC Apertium exposera sera probablement similaire à ce qui suit :
- array<string> GetAvailableModes();
- string Translate(string Message, string modeName, string inputEncoding);
A FAIRE : ajouter des méthodes pour obtenir les possibilités actuelles du serveur et charger (??); c'est utile pour implémenter une sorte de load balancing dans le cas d'un cluster de serveurs Apertium.
État du développement
La suite de ce document présente l'évolution du développement entre le 22/05/2009 et le 06/07/2009. Ce n'est pas forcément intéressant en 2012 (ou après). Aussi, ça n'a pas été traduit. La traduction de cette page a été réalisée essentiellement pour l'accès aux graphiques de conception. La suite de la page en anglais est accessible ici : Apertium_going_SOA#Development_status_-_22.2F05.2F2009