78
Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Embed Size (px)

Citation preview

Page 1: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails

1) Les Portails2) JetSpeed3) Démonstration JetSpeed

Julien BURET

Arnaud AUNE

DESS Informatique Option SRR

Page 2: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Contexte Les portails sont nés du constat

que l’information sur l’Internet et les intranets est diffuse et pas du tout structurée.

L’internaute est débordé par le nombre d’outils en tout genre.

souhait d’une approche plus simple et unifiée.

Page 3: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Contexte Visent à regrouper sous un accès unique 

Un espace informationnel de recherche Un espace communautaire de partage Un espace personnalisé de services

Caractéristiques : Point d’accès unique Organisation des informations accessibles et des

applications disponibles Personnalisation des services offerts, individuelle ou

par groupe Contrôle d’accès centralisé et gestion des utilisateurs

Page 4: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Définition générale Un portail, qu’est ce que c’est ?

Un portail est un point d’entrée sous forme d’application Web regroupant un certains nombres de services et de contenues à un ensemble de clients.

Page 5: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les PortailsVise à remplacer le bureau.avantages :

Ils sont accessibles de n’importe quel poste Ils sont personnalisés Les services augmentent : calendrier, agenda, répertoire en ligne,

traitement de texte, un tableur…

Des obstacles restent à surmonter: les temps de chargement les coûts de connexion la largeur de la bande passante

Selon un responsable de Netcenter (Netscape) les bureaux représenteraient l’évolution naturelle des portails.

Page 6: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les principaux portails web Les moteurs ou annuaires de recherche

Yahoo!, Voilà,… Site des fournisseurs d’accès

Aol.com, wanadoo.fr, … Site de logiciel de navigation

msn.com (Microsoft) , netcenter.com (Netscape) Les éditeurs de contenu

Hachette.fr, go.com (Disney), … Portail spécialisé ou privé

Portail d’entreprise, site de communauté

Page 7: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Différents type de portails Web

Portail généraliste ou horizontal 1er types de portail apparu Regroupe le maximum d’informations

de tous les thèmes sur un seul site. Point d’entrée sur le Web Yahoo, Altavista, Site Web des

providers (Aol, Wanadoo, Free, …).

Page 8: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Différents type de portails Web

Portail spécialisé ou vertical Portail spécialisé dans un thème

donné Portail d’entreprise ou inter-entreprise Il regroupe et partage des ressources

pour un groupe de client ayant un intérêt commun.

Page 9: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails horizontaux But

Attirer un maximum de client sur le serveur Vendre de l’espace aux annonceurs

(Estimation 2000 : 8 Milliards de dollars). Prendre des commissions sur des transactions Vendre des services améliorés aux clients

(boite aux lettres plus grande avec plus de fonctionnalités).

Moyen mis en œuvre Fournir et ordonner du contenu et des

services pour attirer un maximum de clients

Page 10: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails horizontaux. L’exemple Yahoo!

Au début un annuaire de sites classés par thèmes.

Dans le but de garder les clients après la consultation des annuaires création de services comme les calendriers, les carnets d’adresses…

Page 11: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails horizontaux. L’exemple Yahoo! Maintenant les principales activités de Yahoo!

sont l’agrégation de contenue : Le service de news de Yahoo! regroupe les

informations publiés par d’autres site et les classes Le service de mail Yahoo! Messager Jeux en ligne Chat Page personnalisée à un utilisateur Boutique Services de plus en plus évolués comme la

personnalisation de page (MyYahoo!)

Page 12: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Exemple yahoo

Page 13: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les portails verticaux

Regroupe les sites de communautés et les portails d’entreprises.

Spécialisés dans un domaine unique.

Page 14: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Sites de communautés

Le but est proche des portails horizontaux. Ils cherchent à créer un annuaire de personnes intéressées par un même thème (permet des annonces beaucoup plus ciblées).

Page 15: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Portails d’entreprise Le but de ces portails est de faciliter et

de regrouper l’accès au différents systèmes d’informations d’une entreprise. Pour facilité la lecture et la mise à jour par les

employés. Pour présenter de l’information à des clients

ou à des partenaires. Beaucoup de produits commerciaux

spécifiques existent pour créer ces types de portails.

Page 16: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Développement de portails

Pourquoi un portailLes outils de

développements

Page 17: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Pourquoi développer un portail dans une entreprise Un utilisateur doit

utilisé un grand nombre d’application pour accéder à toutes les informations de l’entreprise.

Multiplicité des formats de données, des IHM, informations présentées de façon désordonnées.

Page 18: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Pourquoi développer un portail dans une entreprise

Le but est qu’une application interroge elle-même les applications, puis traitent les données pour les présentées de façon ordonnée et unifiée. L’utilisateur y accédera d’une façon unique, en général un navigateur.

Page 19: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Apport d’un système de portail Un accès simplifié aux informations et

aux applications intranet Intégration de contenus tiers Constitution d’espaces de travail et

d’accès à l’information Personnalisation des services Gestion de l’accès au différentes

données de l’entreprise (single sign-on)

Page 20: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR
Page 21: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR
Page 22: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Fonctionnalités attendues des différents systèmes de portails Agrégation de contenu

Collecte d’informations sur des sources internes ou externes, puis présentation de ces données de façon unifiée.

Organisation de contenu Classement des données de l’entreprises.

Personnalisation des services Adapter l’accès aux informations par

l’intermédiaire de profils utilisateurs Accès au contenu

Moteur de recherche et indexation 

Page 23: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Fonctionnalités attendues des différents systèmes de portails Information et diffusion du contenu

Service de diffusions sélectives d’informations ou d’alertes

Communication et travail collaboratif Mail, forum, agenda partagé, éditeur de documents

collaboratifs Services à valeur ajouté

Synthèse de documents évolués (analyse sémantique), traduction automatique

Administration et sécurité Contrôles des accès, annuaire d’entreprise,

statistiques, pare-feu

Page 24: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Fonctionnalités attendues des différents systèmes de portails Les différents produits fournissent un ou

plusieurs de ces services. Avant de choisir un produit il faut avoir

bien cerné les besoins de l’entreprise choisir un produit en fonction de ses priorités. Peu de produits fournissent tous types de services. Ou alors on peut utiliser des produits plus généraux qui nécessiteront le développement des différents services.

Page 25: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Les différents produits de création de portails

2 types d’outils de création de portails. Des infrastructures de portails. Elles

fournissent les outils de bases à la création de tout types de portails.

Des portails beaucoup plus spécifique souvent très spécialisés dans un domaine

Page 26: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Panorama des produits du marché

Page 27: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Exemples de portailJETSPEED

return

Page 28: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Exemples de portailMediapps Net.Portal

Page 29: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Exemples de portailOracle Portal Online

Page 30: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Exemples de portailWebsphere

Page 31: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

Présentation d’une infrastructure de portail : JETSPEED

Architecture Portlet Les fichiers de configuration Démonstration

Page 32: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedIntroductionJetSpeed : Open source Conçu pour créer un portail rapidement Rend accessible les ressources distantes Accessible par le WEB et le WAP JAVA PORTLET API Sécurité Utilisateur, groupe, rôle Single Sign On une base de données interne : Hypersonic-SQL…

Services déjà implémentés : Cache Persistance Personnalisation Authentification…

installation

Page 33: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture

Globale ESC RSS OSC

Page 34: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – introductionJetSpeed regroupe les projets suivant : turbine : un framework permettant de se connecter à un base

de données et de gérer l’affichage, les utilisateurs et les sessions.

Velocity : traite les fichiers templates. ECS : génère du HTML et XML à partir d’objets JAVA.

On peut se servir aussi des projets suivants : cocoon : permet de générer du HTML à partir de XML et XLS. Xerces et Xalan : est un support XML et XSL. Castor : rend les objets java persistant.

JetSpeed se sert de RSS et OCS pour rapatrier des données à partir de sites distants.

Page 35: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – globale (1/3)

Page 36: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeed Architecture – globale (2/3)

Jetspeed

Portlet API

Turbine

JServ/Jakarta

Apache HTTPD

Page 37: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeed Architecture – globale (3/3)

Affichage

PortletController

Plusieurs PortletControl

Une portlet par portletControl

Page 38: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture - ESC La portlet utilise des éléments de

construction (ECS API) en objet java. ECS support WML, HTML open source L’avantage de ECS est qu’il fait du

code propre. ECS est limité à HTML et XML pour

l’instant.

Page 39: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – ESC exempleHtml html = new Html() .addElement(new Head() .addElement(new Title("Demo"))) .addElement(new Body() .addElement(new H1("Demo Header")) .addElement(new H3("Sub Header:")) .addElement(new Font().setSize("+1") .setColor(HtmlColor.WHITE) .setFace("Times") .addElement("The big dog & the little cat chased

each other.")));out.println(html.toString()); // or write to the outputstream directlyoutput(out);

Page 40: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – RSS

RSS Rich Site Summary Le format RSS est basé sur XML Légers, multi but, format d’

importation/exportation de données, description de métas données

Avantages : Permet de rendre disponible des

informations pour d’autres sites Une application personnel peut y accéder

exemple

Page 41: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – OCS OCS Open Content Syndication Le format OCS est basé sur XML Multi cannaux aux formats différents Il peut aussi utiliser RDF (Resource

Description Framework) et DC (Dublin Core). Langages permettant l’échanger des descriptions de ressources sur le Web.

xmltree.com. plus de 1700 canaux.

exemple

Page 42: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedLes Portlets

Les Portlets : Définition API

Page 43: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedPortlet - Définition concept populaire décrit l’interface utilisateur ayant la capacité d’être

personnalisée met à disposition du contenu, donne accès à une

application ou un service

Jetspeed inclut quelques portlets : RSSPortlet permet de voir les documents au format RDF FileServerPortlet permet de mettre à disposition des pages HTML CocoonPortlet permet de transformer du XML via XSL PortletViewerPortlet permet d’afficher des informations

additionnelles sur une portlet …

Page 44: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedPortlet - APIPour avoir une portlet fonctionnelle : étendre la classe AbstractPortlet implémenter la méthode getContent(RunData aRunData) Renvoie un ConcreteElement de ECSLes Portlets peuvent interagir avec le service turbine par le biais

de l’objet RunData.

Pour avoir un contrôle total sur la portlet : étendre le classe Portlet Beaucoup de méthodes à implémenter

Une autre méthode intéressante, valable pour les deux types de portlet, est supportsType(). Elle permet de savoir quel type de document (WML ou HTML) supporte le client.

Page 45: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeed

Les fichiers de configuration : Fichiers template Fichiers .xreg Fichiers PSML

Page 46: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configuration (1/5)

Pour configurer le portail : l’interface Web directement dans les fichiers

Chaque utilisateur, groupe et rôle a ces propres

fichiers.

La page d’accueil : compte « anon »

Page 47: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configuration (2/5)Les fichiers du cadre autour Fichiers templates Dans <JETSPEED-HOME>\WEB-INF\

templates\vm

Screens : propriétés pour le contenu

navigations : top.vm, left.vm, bottom.vm

Layouts : appel les différentes composantes de navigation

HAUT

Gauche

BAS

Screen

Page 48: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configuration (3/5)Exemple

plusieurs niveaux d’abstraction

PortletControl PortletController

Portlet

Pane

Portlet Portlet

Portlet Portlet

Page 49: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configuration (4/5)Les fichiers .xreg rendre disponible une portlet

3 sortes d’entrées: instance : doit fournir toutes les informations

nécessaires abstract : pas instantiable portlet template ref : une référence

Page HTML Page JSP RSS Base de données

Page 50: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configuration (5/5)PSML Portal Structure Markup Language

Fichiers ou base de données.Un fichier par utilisateur, groupe, rôle.

Ils mémorisent: Les portlets à afficher L’agencement propriétés

Deux parties : Registry : constitué d’une liste d’entrée (.xreg) Site 5 types d’enregistrement

Entry : décrit une portlet (référence) Portlets : décrit un groupe de Portlet (PortletSet) Controller : décrit le portletController associé au PortletSet. Stratégie d’affichage Control : décrit le portletControl associé au portlet. C’est un attribut de Portlets ou Entry Reference : fait référence à un autre fichier PSML.

exemple

Page 51: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeed

La Démonstration. L’implémentation Configuration

o Graphiqueo Manuelle

Portlets de JetSpeed

Page 52: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstration (1/2)Implémentation de quelques portlets : créer une page WEB (HTML) Portlet créer une page WAP (WML) Portlet créer une page WML ou HTML Portlet récupérer des données par SOAP Portlet

Utilisation de portlet de JetSpeed : accéder à une page HTML locale utilisation accéder à une page HTML externe utilisation accéder à une base de données utilisation

Il faut enregistrer les portlets dans un fichier PSML(<JETSPEED-HOME>WEB-INF/conf/nom.xrep).

Page 53: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstration (2/2)Pour que les portlets soit visible il faut les ajouter dans

le fichier de configuration de l’utilisateur dédié à la page d’arrivée du portail.

<JETSPEED-HOME>\WEB-INF\psml\user\anon\html\default.psml.

Cette étape peut être faite par le biais de l’interface.

Exemple :

<entry id="P-ef1547a162-10018“ parent="DatabaseBrowserTest"> <parameter name="sql" value="select * from coffees"/> <parameter name="windowSize" value="10"/>

</entry>

Page 54: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedConclusion

JetSpeed assure : La personnalisation L’accès à des ressources variées L’intégration d’applications variées

Les améliorations attendues : Compléter la documentation. Organiser les fichiers de configuration.

Page 55: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

PortailsLes Sources

InfoNewScreen JDNETsolutions Jakarta.apache.org/jetspeed

Page 56: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeed

The End

Page 57: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedInstallation

Installation de tomcat Déplacer jetspeed.war dans

<tomcat_home>\webapps\ À l’adresse

http://localhost:8080/jetspeed/ Créer un nouvel utilisateur.

return

Page 58: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – RSS - exemple<?xml version="1.0"?>

<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd"> <rss version="0.91"> <!-- only one channel per RSS file --> <channel> <-- information about your channel --> <title>My News</title> <link>http://www.mynews.net</link> <description>Your source for your news </description> <language>en-us</language> <image> <title>My News</title> <url>http://www.mynews.net/logo.gif</url> <link>http://www.mynews.net</link> <width>88</width> <height>31</height> <description>Your source for your news </description>

Page 59: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – RSS - exemple</image>

<!-- here starts the real news, max. 15 items --> <item> <title>We land on Mars!</title> <link> http://www.mars-lander.org/inthenews.html?id=581 </link> <description>Live report from the Mars space station. Read more about it in this discussion...</description> </item> <item> <title>j-Cars produces a new Java car</title> <link>http://www.j-cars.com/press/29022007/ </link> <description>The latest version of the Java car is now available. It includes security enhancements and various bug fixes.</description> </item>

Page 60: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – RSS - exemple

<!-- you can include a link to a form. It's a basic text field where you can enter text and submit data to a CGI. --> <textinput> <title>Subscribe</title> <description>Subscribe to our mailing list by entering your email</description> <name>email</name> <link> http://www.mynews.net/cgi-bin/subscribe.cgi </link> </textinput> </channel> </rss>

return

Page 61: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – OCS - exemple<?xml version="1.0"?>

<rdf:RDF xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ocs = "http://alchemy.openjava.org/ocs/directory#" xmlns:dc = "http://purl.org/metadata/dublin_core#"> <!-- This is information about this channel listing --> <!-- The about attribute points to the directory file, usually the same file as the one being parsed --> <rdf:description about= "http://alchemy.openjava.org/ocs/ocsdirectory.rdf"> <!-- This section contains information about the channel directory listing --> <dc:title>Internet Alchemy OCS Directory </dc:title> <dc:creator>Ian Davis (mailto:[email protected]) </dc:creator> <dc:description>This is a list of channels available at Internet Alchemy</dc:description>

Page 62: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – OCS - exemple

<!-- This is the first channel available --> <rdf:description about="http://alchemy.openjava.org"> <!-- Information about the channel --> <dc:title>Internet Alchemy</dc:title> <dc:creator>Ian Davis (mailto:[email protected]) </dc:creator> <dc:description>Internet Alchemy is a random collection of elements</dc:description> <dc:subject>Technology, Java, XML, Web Design </dc:subject> <ocs:image> http://alchemy.openjava.org/images/alchemylogo.gif </ocs:image> <!-- This is the first format for this channel --> <!-- Information about the RSS version of Internet Alchemy --> <rdf:description about="http://alchemy.openjava.org/alchemyrss.xml"> <dc:language>en</dc:language> <ocs:format> http://my.netscape.com/rdf/simple/0.9/ </ocs:format> <ocs:updatePeriod>hourly</ocs:updatePeriod> <ocs:updateFrequency>2</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00 </ocs:updateBase> </rdf:description>

Page 63: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – OCS - exemple<!-- This is the second

format for this channel --> <!-- Information about the possible scriptingNews version of Internet Alchemy --> <rdf:description about= "http://alchemy.openjava.org/scriptingnews.xml"> <dc:language>en</dc:language> <ocs:format> http://www.scripting.com/dtd/scriptingNews.dtd </ocs:format> <ocs:updatePeriod>daily</ocs:updatePeriod> <ocs:updateFrequency>1</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00 </ocs:updateBase> </rdf:description>

Page 64: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedArchitecture – OCS - exemple<!-- This is the third format

for this channel --> <!-- Information about a plain text version of Internet Alchemy --> <rdf:description about= "http://alchemy.openjava.org/plain.txt"> <dc:language>en</dc:language> <ocs:contentType>text/plain</ocs:contentType> <ocs:updatePeriod>daily</ocs:updatePeriod> <ocs:updateFrequency>1</ocs:updateFrequency> <ocs:updateBase>1999-05-30T00:00 </ocs:updateBase> </rdf:description> </rdf:description> <!-- This is the second channel available --> <rdf:description about= "http://alchemy.openjava.org/othernews/"> ... </rdf:description> </rdf:description> </rdf:RDF>

return

Page 65: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configurationexemple de fichier PSML

<?xml version="1.0" encoding="UTF-8"?><portlets id="01"> <metainfo> <title>Default Jetspeed page</title> </metainfo> <skin name="orange-red-Bordered"/> <layout position="-1" size="-1"/> <controller name="ColumnController"/> <portlets id="02"> <metainfo> <title>Home</title> </metainfo> <layout position="1" size="-1"/> <controller name="ThreeColumnsSymetric"/> <entry id="04" parent="SubsetMeetingWorkshop"> <layout position="-1" size="-1"> <property name="column" value="1"/> <property name="row" value="1"/> </layout> </entry> ……

Page 66: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedFichiers de configurationexemple de fichier PSML

</portlets></portlets><portlet-registry> <portlet-entry name="ESIPFederationNews" hidden="false"

type="ref" parent="RSS" application="false"> <meta-info> <title>ESIP Federation News</title> <description>News for ESIP Federation (XML)</description> </meta-info> <classname>org.apache.jetspeed.portal.portlets.NewRSSPortlet </classname> <url

cachedOnURL="true">http://www.esipfed.org/news/newsfeed.xml </url></portlet-entry> <portlet-entry> … </portlet-entry></portlet-registry>

return

Page 67: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - HTML

public class FirstPortlet extends AbstractPortlet {

   public ConcreteElement getContent (RunData aRunData) {

      Table table = new Table()                       .setBorder(0)                               .addElement(new TR()                                  .addElement(new TD()                                     .addElement(new B()                                       .addElement("I am bold."))))                               .addElement(new TR()                                  .addElement(new TD()                                     .addElement("I'm the lower table row.")));

      return table;

   }}

Page 68: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - HTML

A ajouter au fichier de configuration xrep dans <JETSPEED-HOME>\WEB-INF\conf

<?xml version="1.0" encoding="UTF-8"?><registry> <portlet-entry name="Portlet1" hidden="false" type="instance"

application="false"> <meta-info> <title>Portlet1</title> <description>Portlet Example 1</description> </meta-info> <classname>Portlet1</classname> <media-type ref="html"/> </portlet-entry></registry>

return

Page 69: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - WML

public class WMLPortlet extends AbstractPortlet {

   public ConcreteElement getContent (RunData runData) {

      //create an ECS container for our content      ElementContainer container = new ElementContainer();

      //show WML code for wireless         org.apache.ecs.wml.P p = new org.apache.ecs.wml.P()                                  .addElement("On wireless");

         container.addElement(p);      }

      return container;   }} retur

n

Page 70: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet – HTML et WMLpublic class WMLPortlet extends AbstractPortlet {

   //which MIME types does this portlet support   public boolean supportsType (MimeType clientMimeType) {

      if (MimeType.HTML.equals(clientMimeType)) {         return true;      }      if (MimeType.WML.equals(clientMimeType)) {         return true;      }      return false;   }

   public ConcreteElement getContent (RunData runData) {

      //create an ECS container for our content      ElementContainer container = new ElementContainer();

      //get user's browser info from the Turbine runtime data.      CapabilityMap capMap = CapabilityMapFactory.getCapabilityMap (runData);

Page 71: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet – HTML et WML

      //show HTML code for the web      if (capMap.getPreferredType().equals (MimeType.HTML)) {

         Table table = new Table()                                 .setBorder(0)                                 .addElement(new TR()                                    .addElement(new TD()                                       .addElement(new B()                                          .addElement("I am bold."))))                                 .addElement(new TR()                                     .addElement(new TD()                                        .addElement("I'm the lower table row.")));

         container.addElement(table);      }      //show WML code for wireless      else if (capMap.getPreferredType().equals (MimeType.WML)) {

         org.apache.ecs.wml.P p = new org.apache.ecs.wml.P()                                  .addElement("On wireless");

         container.addElement(p);      }

      return container;   }}

return

Page 72: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet – accès base de données

Table Test dans la base Hypersonic.

On se sert d’une portlet prédéfinit dans JetSpeed DatabaseBrowserPortlet.À ajouter dans le fichier xrep

<portlet-entry name="DatabaseBrowserTest" hidden="false" type="ref" parent="DatabaseBrowserPortlet" application="false">

<meta-info><title>DatabaseBrowserTest</title><description>Simple Test Database Browser Portlet Example</description>

</meta-info><parameter name="template" value="database-browser-portlet" hidden="false"/> <parameter name="customizeTemplate" value="database-browser-customize"

hidden="false"/> <parameter name="action" value="portlets.browser.DatabaseBrowserAction"

hidden="false"/><parameter name="sql" value="select * from coffees" hidden="false"/><parameter name="windowSize" value="5" hidden="false"/><media-type ref="html"/>

</portlet-entry>

return

Page 73: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - SOAPCela nécessite Apache SOAP 2.2La portlet récupère sur le site Xmethods.net le prix du livre ayant pour

ISBN : 0596000405

import org.apache.ecs.*;import org.apache.ecs.html.*;

import org.apache.jetspeed.portal.portlets.AbstractPortlet;import org.apache.turbine.util.RunData;

import org.apache.soap.util.xml.*;import org.apache.soap.*;import org.apache.soap.rpc.*;

import java.io.*;import java.net.*;import java.util.Vector;

public class BookPricePortlet extends AbstractPortlet {

Page 74: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - SOAP   public String getPrice(String isbn) {

      URL url = null;

      try {         url=new URL("http://services.xmethods.com:80/soap/servlet/rpcrouter");

      } catch (MalformedURLException mue) {

         return mue.getMessage();              }

              // This is the main SOAP object      Call soapCall = new Call();

      // Use SOAP encoding      soapCall.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);

      // This is the remote object we're asking for the price      soapCall.setTargetObjectURI("urn:xmethods-BNPriceCheck");

      // This is the name of the method on the above object      soapCall.setMethodName("getPrice");

      // We need to send the ISBN number as an input parameter to the method      Vector soapParams = new Vector();

      // name, type, value, encoding style      Parameter isbnParam = new Parameter("isbn", String.class, isbn, null);

      soapParams.addElement(isbnParam);

Page 75: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstrationPortlet - SOAP

     soapCall.setParams(soapParams);

      try {

         // Invoke the remote method on the object         Response soapResponse = soapCall.invoke(url,"");

         // Check to see if there is an error, return "N/A"         if (soapResponse.generatedFault()) {            return "N/A";

         } else {

            // read result            Parameter soapResult = soapResponse.getReturnValue ();

            // get a string from the result            return soapResult.getValue().toString();         }      } catch (SOAPException se) {

         return se.getMessage();      }   }

   public ConcreteElement getContent(RunData runData) {

   StringElement price = new StringElement();   price.addElement("Java Servlet Programming: " + getPrice("0596000405"));   return price;

   }}

return

Page 76: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstration HTML interne<portlet-entry name="pageHTML1" hidden="false" type="ref" parent="HTML" application="false">

<meta-info>

<title>ma page HTML 1</title>

<description>référence vers la page HTML 1</description>

</meta-info>

<url>/page1.html</url>

</portlet-entry>return

Page 77: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstration HTML externe<portlet-entry name="Page de tomcat" hidden="false" type="ref" parent="WebPagePortlet" application="false">

<meta-info>

<title>la page de tomcat</title>

<description>Reference vers la page de tomcat</description>

</meta-info>

<parameter name="dont_remove_applet" value="yes" hidden="false"/> <parameter name="dont_remove_script" value="yes" hidden="false"/>

<url>http://localhost:8080/</url>

</portlet-entry>return

Page 78: Les portails 1) Les Portails 2) JetSpeed 3) Démonstration JetSpeed Julien BURET Arnaud AUNE DESS Informatique Option SRR

JetSpeedDémonstration Portlet RSS

<portlet-entry name="Apacheweek" hidden="false« type="ref" parent="RSS" application="false">

<meta-info><title>Apacheweek</title>

</meta-info>

<url>http://www.apacheweek.com/issues/apacheweek-headlines.xml</url>

</portlet-entry>return