RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS DUNE APPROCHE BASÉE SUR JSR 168

72 16 0
RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS DUNE APPROCHE BASÉE SUR JSR 168

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

INSTITUT DE LA FRANCOPHONIE POUR EUROPEAN SCHOOLNET L’INFORMATIQUE RAPPORT DE STAGE DE FIN D’ÉTUDES RÉUTILISABILITÉ DE COMPOSANTS WEB AU TRAVERS D'UNE APPROCHE BASÉE SUR JSR-168 NGUYEN TRONG KHANH (A) PROMOTION: 12 Lieu du stage: EUN - European Schoolnet Responsable: PhD Jean Noël Colin Période du stage: du 10 Avril 2008 au 10 Octobre 2008 BRUXELLES, BELGIQUE 2008 TABLE DES MATIERES LISTE DES FIGURES ABREVIATION REMERCIEMENTS RESUME ABSTRACT INTRODUCTION 1.1 PROBLEMATIQUE 1.2 MOTIVATION 1.3 OBJECTIFS 1.4 ENVIRONNEMENT DE STAGE 1.5 CONTRIBUTION 1.6 STRUCTURE DU RAPPORT ÉTAT DE L’ART 2.1 GENERAL DE LA REUTILISATION DU L 2.1.1 Avantages et obstacles de la réutilisation 2.1.1.1 2.1.1.2 2.1.2 Taxonomie et niveaux de réutilisation 2.1.2.1 2.1.2.2 2.1.3 Modèle d’organisation pour réutilisation 2.1.4 Processus de réutilisation des logiciels 2.1.4.1 2.1.4.2 2.1.5 Evaluation de la réutilisation 2.2 COMPOSANTS ET REUTILISABILITE 2.2.1 Composants 2.2.2 Caractéristique du composant réutilisable 2.2.3 Réutilisation du composant dans le contexte de développement du web TECHNOLOGIE ET ENVIRONNEMENT D’EXPERIMENTATION 3.1 PORTLET ET JSR 168 3.1.1 Portlet 3.1.2 Caractéristique et contenu de la JSR 168 3.2 CONTENEUR DU PORTLET 3.2.1 Liferay (lportal) 3.3 JAVA SERVER FACES (JSF) 3.4 ICEFACES 3.5 JAVA ARCHITECTURE FOR XML BIN IMPLEMENTATION 4.1 INTRODUCTION 4.1.1 Project du portail eSkills 4.1.2 Sous-projet Survey 4.1.3 Sous-projet LOM-Recherche 4.2 PORTLET SURVEY 4.2.1 Général des fonctions fournies du portlet 4.2.2 Structure Survey i 4.2.3.Réutilisation de la couche du service d 4.2.4.Développement des composants réutil 4.2.5.Réutilisabilité du portlet et des compo 4.3 PORTLET LOM-RECHERCHE 4.3.1.Structure et implémentation du portlet 4.3.2.Réutilisation dans le projet 4.3.3.Réutilisabilité du portlet 4.4 ANALYSE 4.4.1.Analyse de portlet d’implémentation 4.4.2.Recommandation du développement d 5.CONCLUSION ii Liste des figures Figure 2-1 Modèle d’organisation Ad-hoc 13 Figure 2-2 Modèle d’organisation basée sur le dépôt de la réutilisation 14 Figure 2-3 Modèle d’organisation de centralisation de réutilisation 14 Figure 2-4 Modèle d’organisation de la réutilisation basé sur le domaine 15 Figure 2-5 Processus du développement des composants réutilisables 16 Figure 2-6 Étape de réingénierie dans le processus développement des composants REBOOT 17 Figure 2-7 Le processus de développement du logiciel avec réutilisation 18 Figure 3-1Modèle des couches d’un portail contenir des portlets 27 Figure 3-2 La cycle de vie d’un portlet 28 Figure 3-3 La structure interne du conteneur de portlet 29 Figure 3-4 La position de JSF avec JSP et Java Servlet 31 Figure 3-5 La structure d’activité de JSF 31 Figure 3-6 L’architecture d’activité d’Icefaces 32 Figure 3-7 L’architecture d’activité de JAXB 33 Figure 4-1 La structure du portail eSkills et la position du portlet Survey 36 Figure 4-2 Des questions fournis par le portlet Survey 39 Figure 4-3 Structure des couches du portlet Survey 39 Figure 4-4 Modèle des questions dans Survey 40 Figure 4-5 Processus de la réutilisation de la couche du service de Liferay 41 Figure 4-6 Une partie du fichier service.xml dans la couche du service réutilisable 42 Figure 4-7 Modèle d’objet généré par Liferay 43 Figure 4-8 Modèle de la couche du service généré par Liferay 43 Figure 4-9 Structure du composant réutilisable du Survey 44 Figure 4-10 Une partie code et l’interface correspondante du composant réutilisable 45 Figure 4-11 L’architecture du portlet LOM-Recherche 47 Figure 4-12 L’interface de recherche dans portlet LOM-Recherche 48 Figure 4-13 Résultat de recherche du portlet LOM-Recherche 48 Figure 4-14 La position du projet pour réutilisation 52 Figure 4-15 Cycle de vie du développement 54 iii EUN JSF JSP XML JSR WSRP LOM LRE JAXB GPL REBOOT FORM PECOS IBM SSI CSI RSI SIRBO LOC PDR RCA SCA DCA RVA ADC J2EE URL HTML API AOS AOWS CAS LDAP MVC2 IOC LAAS DES MD5 RSA Ajax DOM SAX JAXP XVD European Schoolnet Java Server Faces Java Server Page Extensible Markup Lan Java Portlet Specificatio Web Services for Remo Learning Object Metad Learning Resource Exc Java Architecture for X GNU General Public L Reuse Based on Object Méthode de réutilisatio Pervasive Component S International Business M Shipped source instruct Changed source instruc Reused source instructi Source instructions reus Line of code Pourcentage de réutilisa Coût de réduction de la Coût de réduction du se Coûte du développeme Valeur ajoutée de la réu Valeur ajoutée du dével Java Platform Enterpr Uniform Resource Loca HyperText Markup Lan Application Programmi Architecture Orientée S Architecture Orientée W Système d'authentificat Lightweight Directory A Modèle Vue Contrôleur Inversion of Control Laboratory for Analysis Data Encryption Standa Message-Digest Algori Rivest Shamir Adleman Asynchronous JavaScri Document Object Mode Simple API for XML Java API for XML proc Exchange of Vocabular iv Remerciements Je tiens en premier lieu remercier tout particulièrement celui qui m’a dirigé pour mon mémoire de fin d’études, Monsieur Jean Noël Colin, pour ses commentaires éclairés et sles judicieux conseils J’adresse un grand merci Jose Fernandez et Benedicte Clouet pour leurs opinions et la correction du franỗais de ce rapport Je tiens remercier Monsieur Alain Pirotte et Monsieur David Massart qui m’ont aidé et accueilli en Belgique pour ce stage Je remercie également tous les membres de European Schoolnet, qui font d’EUN un environnement idéal de travail Enfin, j’exprime mon entière reconnaissance ma famille et mes amis pour leur soutien et leurs encouragements v Résumé La réutilisation de composant du logiciel devient de jour en jour plus importante dans le génie logiciel La construction et réutilisation des composants du web est encore un nouveau problème quand la plupart du logiciel est transmis l’environnement du web Dans le cadre du stage de master de recherche effectué dans l’organisation European Schoolnet, nous avons abordé des problèmes concernant la réutilisation du logiciel, le composant réutilisable et notamment le composant réutilisable du web et la réutilisation de ces composants travers une approche basée sur JSR168 L’objectif de ce travail fut de rassembler des expériences travers l’étude de la réutilisation des technologies par la construction d’applications sous la forme portlet, le développement des composants réutilisables partir de ces applications et enfin la proposition de recommandations sur la réutilisabilité et le processus de développement des composants réutilisables du web Deux applications, que nous construisons ici, sont SurveyPortlet et LOMRecherche intégrées dans le portail eSkills Elles sont construites par réutilisation de composants réutilisables Nous créons aussi des composants réutilisables Survey partir de SurveyPortlet pour les réutiliser dans d’autres projets dans le futur Des recommandations proposées contribuent l’orientation du développement des composants du web plus favorablement Mots clés : réutilisation, composant du web, composant réutilisable, réutilisation dans le portlet, processus de développement du composant réutilisable vi Abstract Reusing of software components is becoming more and more important in the software engineering Building and re-using the web component is still a new problem when the most of software is transformed to the web environment This report of master of research is carried out in the European Schoolnet partnership We deal with a problem of relative software re-use, and reusable component, especially reusable web component and reuse of this component via an approach based JSR168 Purpose of this work is to draw more thought in the study of reuse and technology by building the applications in the form of portlet, the development of reusable components in these applications It also proposes best-practices on reusability and the process development of reusable web components Two applications were built for SurveyPortlet and LOMRecherche which are integrated into the portal eSkills They are built by reusing the reusable components and we create also reusable components Survey from SurveyPortlet for reuse in other project in the future These best-practices contribute to the developmental orientation of web components more favorably Keywords: software reuse, web component, reuse component, portlet reuse, process development of the reuse web component vii 4.2.4 Développement des composants réutilisables À partir de portlet Survey, nous avons développé des composants réutilisables La technique de développement des composants est basée sur des composants de l’Icefaces et JSF, avec l’objectif que l’utilisateur puisse réutiliser seulement par quelques lignes du code plusieurs niveaux de réutilisation différents La structure des composants réutilisables : TagLibrary HtmlComposant SurveyÉléments Figure 4-9 Structure du composant réutilisable du Survey Le composant comprend trois parties Les éléments faisant partie du portlet Survey Nous développons encore deux parties Tag Library et HtmlComposants pour la compatibilité avec les composants du JSF TagLibrary est l’ensemble des tags permettant d’utiliser les composants dans le fichier JSP en compagnie des composants de JSF et Icefaces HtmlComposant comprend des classes qui lient des tags dans JSP au des éléments dans la partie au-dessous 4.2.5 Réutilisabilité du portlet et des composants Comment peut-on réutiliser ce composant ? Le portlet Survey est un grand composant, il contient beaucoup de petits composants : composant de présentation, composant de gestion des données, traitement des données… Dans cette partie nous allons examiner quels composants nous pouvons réutiliser - Réutilisation du portlet Nous pouvons réutiliser ce portlet dans d’autres portails Nous allons examiner deux cas: un portail qui utilise la technologie de Liferay et un projet qui n’utilise pas la technologie de Liferay Avec le portail utilisant la technologie de Liferay, nous n’avons besoin d’aucune modification Copier le paquet du portlet dans le répertoire de déploiement du Liferay Le portail le déploiera automatiquement au répertoire du web Le portlet est prêt marcher Lorsque le portail n’utilise pas la technologie Liferay, on doit replacer la couche de service On doit construire une nouvelle couche de service pour se connecter la base 44 de données Dans ce cas-là, nous avons aussi besoin de modifier quelques fonctions pour l’adapter ce nouvel environnement comme : Le mécanisme de récupération des informations d’environnement pour changer la langue suive la langue du portail, les informations sur l’utilisateur connecté Cependant, les portlets peuvent marcher sans ces paramètres - Réutilisation des composants de Survey Pour développer un programme réutilisant les composants de Survey Il y a trois niveaux de réutilisation : - Réutilisation des composants au niveau d’interface Les composants du Liferay sont développés dans la bibliothèque du tag Le développeur peut élaborer directement des questions dans le fichier jspx pour afficher dans le site Toutes les informations des options sont fournies dans les tags Et le résultat de question peut-être obtenu en liant une valeur dans le JavaBean avec les paramètres Deux composants peuvent être réutilisés ici : composant du Survey, composants de la question et composant pour élaborer la question Figure 4-10 Une partie code et l’interface correspondante du composant réutilisable 45 - Réutilisation des composants au niveau demi-interface C’est dire, les composants sont fixés dans la page du web, mais le détail du composant est défini dans le programme Création d’un sondage et lier une variable dans JavaBean Création d’une question et lier une variable dans JavaBean Création de la forme pour entrer des informations en détail et lier une variable dans JavaBean Avec le type de réutilisation La question est fixée dans l’interface d’utilisateur, mais le contenu de la question peut-être changé au ‘run-time’ La valeur survey, question, questionedit dans JavaBean sont créées automatiquement quand le site est affiché - Création dynamiquement dans le programme Des composants sont développés sur la base des composants d’Icefaces Donc, on peut créer dynamiquement un élément et ajouter dans la page du web Ensuite, on rappelle une méthode de cet élément pour afficher le contenu QuestionBase ques=new SingleAnswerQuestion(); ques.Render() : Afficher le contenu pour que l’utilisateur réponde ques.RenderEdit : Afficher l’interface pour l’administrateur modifie cette question Cette méthode est utilisée dans le cas ou nous voulons organiser l’interface dynamique Ce type est souvent utilisé dans un sondage ou les questions dépendent de la base de données Dans tous les cas, on peut mélanger ces types dans un programme pour les adapter aux divers objectifs 46 4.3 Portlet LOM-Recherche 4.3.1 Structure et implémentation du portlet LOM-Recherche est un portlet qui utilise aussi la technologie Iceface pour l’interface Cependant, la base de données est stockée dans le disque en forme de XML donc il n’utilise pas la couche du service du Liferay Il utilise JAXB pour accéder aux données et les traiter Interface Workflow Thesaurus XVD Parser Thésaurus descripteur Métadonnées LOM Figure 4-11 L’architecture du portlet LOM-Recherche Thésaurus descripteur et Métadonnées LOM LOM Recherche travaille sur deux bases de données LOM pour recherche et Thésaurus de descripteur pour que l’utilisateur puisse choisir des contraintes de recherche LOM (Learning Object Metadata) est un modèle de métadonnées habituellement codé en forme XML Il décrit des objets d’étude et ressources numériques pour soutenir l’éducation L’objectif des métadonnées est de soutenir la réutilisabilité et de faciliter l’exploration des ressources Thésaurus descripteur est une sorte de dictionnaire hiérarchisé qui stocke des indexations des thèmes de ressources sous la forme du thesaurus Il comprend des termes et des relations Ces termes sont liés aux éléments de la base de données LOM Thésaurus est une base de données multi-langue XVD Parser Cette partie traite des données dans la base de données Thésaurus Descripteur Elle transforme ces données en forme XML des objets que notre programme utilise Nous utilisons la technologie de l’Architecture de Java pour bindding XML (JAXB) Elle 47 transforme des éléments structurés aux objets en langage Java Elle a un rôle similaire la couche du service du Liferay dans le portlet Survey Thésaurus Cette partie stocke des données de thésaurus pour les utiliser dans le portlet Elle obtient des objets de XVDParser et maintient l’existence des données en seule instance dans la mémoire pour servir toutes les sessions Elles sont des sujets pour chercher dans les métadonnées LOM Préprocesseur LOM Préprocesseur LOM est un moteur de recherche Il est un composant réutilisé Préprocesseur LOM utilise la technologie Lucene pour chercher des données dans la base de données Il reỗoit des requờtes de la couche workflow, prộtraite les requờtes avant d’utiliser Lucene pour la recherche Il retourne les résultats remplissant des conditions requises sous la forme XML Workflow et Interfaces Workflow gère des informations des utilisateurs, estime et traite les contraintes de recherche entrée par l’utilisateur et les transmet au préprocesseur LOM Figure 4-12 L’interface de recherche dans portlet LOM-Recherche Figure 4-13 Résultat de recherche du portlet LOM-Recherche 48 4.3.2 Réutilisation dans le projet Dans le LOM Recherche, il y a trois parties réutilisées LOM Préprocesseur et deux paquets générés par JAXB, une pour traiter les données du thésaurus et une pour traiter des rộsultats reỗus Prộprocesseur LOM est un composant parqué, il peut être inclus et utilisé directement dans le programme LOM fournit deux fonctions principales : - La fonction : LuceneSearcher.lre2lucene(lreQuery) transformé une requête de la forme de langage LRE la forme de Lucene - La fonction : LuceneSearcher.searchCMRObject(luceneQuery)recherché des résultats dans la base de données 4.3.3 Réutilisabilité du portlet Ce portlet est construit partir de technologies Java, il n’utilise pas les services du Liferay, donc, il est portable La réutilisation du portlet dans un autre conteneur est complètement libre Il a besoin seulement de reconfigurer les fichiers XML pour s’adapter chaque exigence d’environnement du conteneur 4.4 Analyse 4.4.1 Analyse de portlet d’implémentation Dans la partie précédente, nous avons présenté les portlets dans le projet eSkills Il comprend deux l’application Survey et LOMRecherche On voit que : - Les portlets sont développés avec réutilisation Survey réutilise la couche de service du Liferay Dans ce cas-là, toute la couche du Liferay est un composant réutilisable Il est la bte blanche Nous nous intéressons aux fonctions exportées du composant pour se connecter la base de données Nous pouvons conntre tout le contenu du composant, et ajouter les fonctions nécessaires Avec ce composant, la technique de réutilisation est la génération Les codes sont générés partir d’un fichier de configuration Dans le LOMRecherche Nous avons réutilisé trois parties Un composant LOMPréprocesseur traite des requêtes entrées La transformation des requêtes en forme de Lucene et utilisant Lucene pour chercher des résultats dans la base de données On réutilise ce composant travers son interface On n’a pas besoin de savoir le contenu du composant et des activités internes Donc, il peut être considéré comme bte noire La technique de réutilisation est la composition 49 Deux parties du code sont générées par JAXB On peut les considérer comme des composants réutilisables avec la technologie de réutilisation est la génération et le type du composant est bte transparente, parce qu’on peut voir leurs contenus, mais la connaissance des codes n’est pas nécessaire Maintenant, nous allons évaluer la réutilisation par la méthode présentée précédemment À cause de la limité de ce projet, les observations sont insuffisantes et nous ne pouvons donc pas évaluer tous les facteurs que nous avons présentés Ici, nous n’évaluons que le taux de réutilisation dans deux applications D’autres facteurs, comme le prix et le nombre de personnes ne sont pas disponibles actuellement L’application Survey : PDR= RSI / (RSI+SSI)= 14459 / 20496 = 70% Dans l’application LOMRecherche, on ne peut pas trouver cette valeur parce que le composant LOMPréprocesseur est la bte noire, il est parq en binaire, nous ne savons pas le nombre de lignes du code Ce sont des chiffres qui parlent de l’état de la réutilisation Cependant, nous pouvons voir que le nombre de lignes du code du composant réutilisable est grand Tous les codes ne sont donc pas réutilisables parce que quelques fonctions sont superflues Il n’est pas utilisé dans notre programme Dans les deux applications, on peut aussi évaluer le taux de la partie réutilisable Survey : nombre de parties réutilisables/ total de partie = 2/7 = 29% LOMRecherche : parties réutilisables / parties = 60% Ces chiffres ici sont seulement titre informatif, on n’a pas examiné leur niveau d’importance dans le projet Quelques parties réutilisent un grand nombre de lignes du code qui peuvent être remplacées par un module plus petit, ce moment-là, le taux de réutilisation va être changé - Les portlets sont développés pour la réutilisation EUN développe des applications soutenant l’éducation par l’utilisation de portails Le portail n’est que le moyen de transfert des applications aux utilisateurs L’exigence de l’application est d’avoir la capacité d’être réutilisée plusieurs fois Le portlet est la solution suffisante dans cette situation Le portlet est une application web portable, il peut être réutilisé dans n’importe quel conteneur suivant la norme Nos portlets suivent la norme JSR168 qui est la norme universelle pour le portail La plupart des grands portails aujourd’hui supportent cette norme Donc, les portlets peuvent être réutilisés dans plusieurs portails différents comme JBoss, uPortal… 50 Nos portlets sont des composants de type bte blanche Des portails demandent des portlets devant avoir des configurations différentes pour s’adapter l’environnement Donc, la structure du portlet est ouverte au programmeur Avec le portlet Survey, le programmeur doit savoir les structures des questions, la survey pour installer la base de données et construire la couche du service dans le cas nécessaire L’évaluation du bénéfice de développement pour la réutilisation ne pourra être réalisé que dans l’avenir - Des composants réutilisables du Survey À partir de Survey, nous avons développé des composants du web réutilisables Ces composants peuvent être parqués en bibliothèque pour être réutilisés dans d’autres applications du web qui demandent des fonctions comme le sondage On voit que ces composants ont des caractéristiques de la réutilisabilité : Quand on crée un composant dans le programme, le composant gère ses variables et traite les activités internes suivant les opérations de l’utilisateur Le composant est réutilisé sans inclure d’autres composants si le projet est développé avec la technologie Icefaces Alors, les composants Survey sont autonomes Des composants sont parqués dans la librairie (.jar) avec les tags et des classes exportées Ils sont l’identification Des composants ont des fonctions précises Ils sont utilisés pour construire des applications du sondage Ils comprennent des questions et un survey contenant des questions Ils sont des fonctionnalités Pour utiliser des composants, on utilise des tags exportés Ils sont l’interface du composant En plus, nous avons des niveaux de réutilisation du composant Ils sont des états de la réutilisation du composant Alors, les composants Survey ont des caractéristiques du composant réutilisable présenté précédemment Pour réutiliser ces composants On doit comprendre le contenu du composant et le principe d’activité de chaque composant Alors, des composants sont de type «bte transparente» Cependant, la frontière entre les types de bte n’est pas claire, elle dépend du niveau de la réutilisation de l’utilisateur Si l’utilisateur ajoute le composant pour élaborer des tags dans l’interface, c’est la bte noire Si l’utilisateur étend la fonction pour enregistrer automatiquement la base de données pour hériter des questions et implémenter des interfaces, on doit comprendre le contenu du composant C’est la bte blanche 51 Des avantages et inconvénients du composant réutilisable de Survey Avantages Il est facile réutiliser dans d’autres projets Au niveau du portlet, on peut facilement construire une programmation réutilisant les composants Au niveau de l’interface, on peut facilement élaborer un site web réutilisant ces composants par quelques tags comme des composants de JSF En plus, les composants de Survey utilisent la technologie Icefaces Il support donc l’Ajax Inconvénients Parce qu’il y a beaucoup de types de question avec diverses valeurs du résultat, la gestion des paramètres de la question est un peu difficile Tous les types de questions sont parqués dans un même composant Il est facile de gérer les questions, mais il est difficile de gérer les résultats de chaque question, ce qui exige des programmeurs de conntre les composants en détails pour tirer le meilleur parti du composant 4.4.2 Recommandation du développement des composants réutilisables Projet pour réutilisation Avant de développer un projet qui comprend des composants réutilisables, on doit s’imaginer le projet et la position du projet par rapport d’autres projets utilisant des composants réutilisables Projet pour réutilisation n’est pas l’intersection, ni la réunion entre des projets Normalement, le projet pour la réutilisation contient des parties communes qui sont réutilisées par d’autres projets et formulées sous des composants Ce projet est donc plus grand que l’intersection des projets Sa frontière est déterminée par la partie qu’elle réutilise partir de d’autres projets avec des parties qui assurent les caractéristiques de réutilisabilité du composant Projet P3 PR Projet P1 Projet pour réutilisation Figure 4-14 La position du projet pour réutilisation PR ⊃ P1 ∩ P2 ∩…∩Pn 52 Où : PR est le projet qui est développé pour l’utilisation et P 1…Pn sont des projets qui réutilisent des composants PR La détermination de la frontière du projet et leurs fonctions lors qu’on ne sait pas tous les projets P Pn est difficile donc on doit prévoir des fonctions et déterminer le rôle du projet Spécification - Développement d’un projet pour réutilisation basée sur un projet existant On ne développe pas un projet quand il n’y a pas de besoins de l’utiliser Donc ordinairement, un projet pour la réutilisation se fait partir d’un projet dont qu’il réutilise - Imagination d’un grand projet qui réutilise tous les composants et toutes les caractéristiques de ce projet Ceci nous aide apercevoir le rôle des composants, la situation d’utilisation de chaque fonction - Proposition d’exigences rigoureuses pour toutes les fonctions du composant Un composant est réutilisé dans plusieurs applications différentes donc l’exigence du composant est la réunion de l’ensemble des exigences de tous les projets - Dans le portlet, on devrait séparer les exigences de la fonction des exigences du portail Un portlet contient des fonctions pour résoudre des problèmes spécifiques et des fonctions pour intégrer au portlet comme l’interface ou l’interconnexion La séparation nous aide construire un portlet indépendant du portail et le portlet peut être réutilisé facilement et s’adapter d’autres conteneurs - Faire plus que besoin Des besoins sont générés par les projets existants, mais le composant peut être réutilisé pour des projets inconnus Les fonctions d’un composant ne sont pas superflues, elles peuvent être utiles avec des projets futurs Donc on devrait construire des composants orientés objet ou agent avec des fonctions possibles - Construction d’un composant complet et pas superflu Un composant complet satisfait toutes les exigences concernant le composant Un composant avec des fonctions superflues rend la réutilisation inextricable - De petits composants plutôt qu’un grand composant Des petits composants sont plus portables et faciles intégrer d’autres projets - Détermination des interfaces d’interconnexion et documentation de toutes les interfaces - Diminution des dépendances du projet d’autres Dans le cas de dépendance d’autres, on doit indiquer clairement ces dépendances et comment on peut intégrer ces 53 dépendances dans un autre projet On devrait faire des fonctions simples pour diminuer les dépendances - Dans le cas ou le portlet dépend du portail, on devrait construire une interface pour une interconnexion entre-deux, afin que le portlet puisse marcher sans implémentation de ces interfaces Par exemple, le portlet accepte de changer la langue en fonction de la langue du portail, mais si le portail ne supporte pas cette caractéristique, le portail peut toujours fonctionner convenablement - Construction des composants avec plusieurs niveaux de réutilisation différents Cela facilite et augmente la réutilisation Des niveaux de réutilisation peuvent être classifiés du simple au complexe, etc - Nous pouvons résumer le processus de développement dans le schéma ci-dessous : Branche fonctionnelle Capture des besoins fonctionnels Spécification des fonctions Analyser des fonctions Conception Phase de Implémentation réalisation Tester Documenter Stocker dans le dépôt Figure 4-15 Cycle de vie du développement Avant de réaliser un projet, on examine deux branches parallèlement pour déterminer les caractéristiques du projet et les composants développés sur le domaine de besoin, fonction et le domaine technique et dépendant d’autres composants Codage - Utilisation d’un modèle du code Un modèle général rend le codage plus clair Un autre programmeur peut le modifier ou le réutiliser facilement dans un autre projet 54 - Traitement exhaustif de tous les cas d’erreurs possibles Un composant est désigné pour diverses applications donc tous les cas d’utilisation peuvent être réutilisé Le traitement exhaustif de tous les cas possibles est une solution pour éviter les erreurs - Transfert de toutes les erreurs la couche supérieure Il fait élastiquement le traitement des erreurs dans des applications qui réutilisent ce composant - Quelques remarques dans le portlet : - Utiliser toujours des API réécrits URL pour le contenu dans le portlet Utilise renderResponse.encodeURL(renderRequest.getContextPath()+ …) au lieu de renderRequest.getContextPath()+ … - N’ajouter pas le chemin après encodeURL parce qu’il va mener une URL différente encodeURL(…+chemin) au lieu de encodeURL()+chemin - Déclarer que le contenu de portlet est obligatoire response.setContentType("text/html") sinon le portail ne traite pas le portlet - N’utiliser pas de cookie dans le portlet Le cookie peut ne pas marcher On doit trouver dautres faỗons pour le remplacer Test Un composant réutilisable demande plus de test que d’autres composants Un composant a seulement besoin de fonctionner dans un projet particulier, mais un composant réutilisable exige de fonctionner dans toutes les situations d’utilisation La possibilité d’erreur est plus grande donc les tests doivent être nombreux Toutes les recommandations au-dessus que nous avons obtenues dans le processus de développement des portlets présentés peuvent être insuffisantes et ce n’est pas juste parce qu’elles sont des jugements subjectifs Elles ont besoin de commentaires des personnes qui les utilisent 55 Conclusion Dans le cadre du stage, nous avons condensé des connaissances élémentaires sur le domaine de réutilisation du logiciel, et présentation des nouvelles technologies qui sont utilisées pour construire des composants et des applications du web Nous avons proposé des recommandations dans le processus de création des composants du web Au travers des recherches sur les rộutilisations, nous nous sommes aperỗus que les ộtudes sur la réutilisation sont encore limitées particulièrement sur la branche du web Il n’y a pas de normes de réutilisation du logiciel, de modèles d’entreprise avec/pour réutilisation et plus spécialement d’organisations de dépôts qui stockent des composants réutilisables La réutilisation n’est pas uniforme dans les entreprises, ce qui rend difficile la réutilisabilité et le partage des composants dans des entreprises différentes particulièrement dans le monde du logiciel open-source Ce rapport se limite proposer quelques recommandations sur la production des composants du web réutilisables dans le contexte de construction de portlets Elles sont le fruit des remarques des producteurs, mais elles ne sont pas des règles, ni des normes que les ingénieurs doivent observer L’étude de la réutilisation est encore ouverte surtout dans certains domaines potentiels comme la construction de règles d’organisation des dépôts de composants réutilisables du logiciel source ouverte, ou la proposition de processus de production de composants ou de perfectionnement des normes API du portlet Tous ces champs sont encore incomplets 56 Références [Johan 1997] Johannes Sametinger, Software engineering with reusable components, Springer, 1997 [Poulin 1993] J S Poulin, J M Caruso, D R Hancock The business case for software reuse Source, IBM Systems Journal archive Volume 32 , Issue (October 1993) Pages: 567 594 [Marcus.] Marcus A Rothenberger, Kevin J Dooley, Uday R Kulkarni Characteristics of Software Reuse Strategies: Taxonomy of Implementations Patterns [Karl 1995] Guttorm Sindre, Reidar Conradi, Even-André Karlsson The REBOOT Approach to Software Reuse Journal of Systems and Software, 1995 [IEEE 1517] Software Reuse Processes IEEE Std 1517 [Poulin 2007].Jeffrey S., Component Reuse in Software Engineering (C.R.u.i.S.E.), Almeida, et al., Recife Center for Advanced Studies and Systems (C.E.S.A.R.), Recife, Brazil, 2007 [Poulin 1994] Poulin, Jeffrey S., “Measuring Software Reusability,” Third International Conference on Software Reuse, Rio de Janeiro, Brazil, 1-4 November 1994, pp 126-138 [Poulin et Caruso 1993] (Poulin & Caruso, 1993) Poulin, J.; Caruso, J A Reuse Metrics and Return on Investment Model In: Proceedings of the 2nd IEEE Workshop on Software Reuse (WSR): Advances in Software Reusability, Lucca, Italy, 1993, pp 152-156 [Devanbu et al., 1996] Devanbu, P T.; Karstu, S.; Melo, W L.; Thomas, W Analytical and Empirical Evaluation of Software Reuse Metrics In: Proceedings of the 18th International Conference on Software Engineering (ICSE), Berlin, Germany, pp 189-199, 1996 [Deepak 2007] Deepak Gothe Understanding the Portlet Container 1.0 Beta Software and Deploying Portlets May 4, 2007 http://java.sun.com/developer/technicalArticles/J2EE/sdk_portletcontainer [Neighbors, 1980] Neighbors, J.M Software Construction Using Components, PhD Thesis, University of California, Irvine Department of Information and Computer Science USA, 1980, p 75 [Kang et al., 1998] Kang, K.C.; Kim, S.; Lee, J.; Kim, K.; Shin, E.; Huh, M FORM: A FeatureOriented Reuse Method with domain-specific reference architectures, In: Annals of Software Engineering Notes, Vol 05, 1998, pp.143-168 [Bodoff] Stephanie Bodoff Web Components http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/WebComponents.html [Bhakti, 2003] Ed Ort and Bhakti Mehta, Java Architecture for XML Binding (JAXB) March 2003 http://java.sun.com/developer/technicalArticles/WebServices/jaxb/ [Fei et Jian 2004] Fei Yui-Ku, Wang Zhi-Jian A Concept Model of Web Components Proceedings of the 2004 IEEE International Conference on Services Computing (SCC’04) [Díaz et Rodríguez, 2004] Oscar Díaz , Juan J Rodríguez Portlets as Web Components: an Introduction Journal of Universal Computer Science, vol 10, no (2004), 454-472 57 [Abdelnur et Hepper, 2003] Slejabdro Abdelnur, Stefan Hepper Java TM Portlet Specification October 7, 2003 [FanChao, 2006] Meng FanChao A Design Method of Reusable Components Based on Feature Matching IJCSNS International Journal of Computer Science and Network Security, VOL.6 No.5A, May 2006 [Baker, 2006] Mark,Baker Rahim,Lakhoo Application Reuse Through Portal Frameworks Proceedings of the UK e-Science All Hands Conference 2006 website: http://www.allhands.org.uk/2006/ 58 ... réutilisable du web et la réutilisation de ces composants travers une approche basée sur JSR1 68 L’objectif de ce travail fut de rassembler des expériences travers l’étude de la réutilisation des technologies... réutilisabilité du portlet ? Ce sont des problèmes sur lesquelles nous voulons étudier avec le titre : «La réutilisabilité de composants web au travers d’une approche basée sur JSR1 68 » Cependant, la recherche... Icefaces fournit un grand nombre de composants Ils incluent des composants originaux du JSF, l’extension des fonctions pour des composants JSF et beaucoup de nouveaux composants 3.5 Java Architecture

Ngày đăng: 30/10/2020, 21:19