|
BEA WebLogic Workshop, l’IDE orientée SOA
|
Vous pouvez dès à présent utiliser BEA WebLogic Server 9.2 (WLS) ainsi que BEA Workshop qui se couplent très bien à leur serveur afin de répondre à ces problématiques. La version 3.0 de Workshop Studio est bien évidemment axée sur Java EE 5.0. Même si le serveur n’est pas Java EE 5.0 « compliant », mais seulement J2EE 1.4, celui-ci supporte tout de même JSF, les EJB3, les annotations, … La migration vers la plateforme JavaEE est donc en cours. Des assistants permettent de créer rapidement des EJB 3, et un éditeur WYSIWYG (What You See Is What You Get) pour les JSF, JSP, les processus ainsi que les pageflow sont intégrés. . Que ceux qui n’ont jamais utilisé Workshop ne s’inquiètent pas sur le temps de prise en main de cet IDE, c’est en réalité un ensemble de plugins ajoutés à Eclipse 3.1.2. La précédente version de Workshop 8.1 n’était pas basée sur Eclipse, c’est donc une nouvelle orientation de BEA permettant de tirer profit de toute la plateforme Eclipse. Son utilisation est donc grandement facilitée et vous pouvez, tout comme avec Eclipse, le personnaliser à souhait. Vous pouvez même installer Workshop 9.2 notamment grâce à l’ "Update Manager" d’un Eclipse existant (contenant déjà vos propres plugins). Deux versions de Workshop se déclinent : Workshop for WebLogic Platform 9.2 et Workshop Studio 3.0. Ces IDE se basent, entre autre, sur WTP (WebTools Platform) & Nitrox (une distribution d’Eclipse ayant déjà un ensemble de plugins, dont des éditeurs graphiques pour les JSP, …). Le principal attrait de Workshop est la présence d’un designer nommé "Page Flow Editor" qui permet de définir votre système de navigation de votre application J2EE. Que vous utilisiez Struts, Beehive ou JSF, vous pourrez utiliser cet éditeur de la même manière. C’est donc un niveau d’abstraction supérieur à J2EE qui permet de définir votre navigation sans avoir à être dépendant de l’implémentation utilisée. Lorsque vous utilisez Workshop, vous pouvez utiliser toutes les vues & perspectives classiques présentes dans Eclipse, mais vous avez en plus une perspective "Workshop" qui se compose de plusieurs vues dont entre autres : "AppXplorer, DbXplorer, DbXaminer", l’éditeur ainsi que la vue "Properties". Ces vues vous permettront d’utiliser les fonctionnalités de Workshop. Pour ceux qui ont déjà des projets sous Workshop 8.1, un guide de migration vers la version Workshop for WebLogic Platform 9.2 est disponible sur le site de BEA : http://fr.bea.com/products/workshop/.
L’architecture de l’outil La différence majeure entre Workshop for WebLogic Platform & Workshop Studio réside dans la plateforme vers laquelle vous souhaitez destiner votre application. Voici le détail de l’architecture de ces deux outils :
Plusieurs déclinaisons de Workshop existent selon vos besoins : BEA Workshop for JSP (version gratuite), BEA Workshop for JSF, BEA Workshop for Struts et BEA Workshop Studio (ce dernier regroupant les trois précédent modules). Les trois dernières versions de Workshop sont disponibles en version d’évaluation 30 jours ce qui peut vous permettre de tester la plateforme et ainsi de vous faire votre propre avis sur cette gamme d’outils.
Beehive
Beehive est un projet supporté par de la par la fondation Apache qui est sortie en version 1.0 le 30 septembre 2005. Le but de Beehive est de faciliter le développement J2EE en ajoutant une couche d’abstraction supérieure à J2EE & Struts. Beehive se décompose en 3 principales branches : NetUI, Controls et Web Service Metadata (WSM). Beehive NetUI fournit un ensemble de tags JSP, des composants comme les grilles et les arbres, ainsi que des composants intégrant JSF et Struts. Beehive Controls se charge de faciliter l’accès aux données gérées par vos applications d’entreprise. WSM simplifie l’utilisation des Web Services grâce à l’emploi des annotations. Une version 2.0 de Beehive devrait même voir le jour. Pour plus de détails sur Beehive vous pouvez vous rendre à l’adresse suivante, vous y trouverez notamment de la documentation et des tutoriaux : http://beehive.apache.org/ BEA Workshop peut utiliser Beehive, ce n’est cependant pas obligatoire mais recommandé car cela simplifiera vos développements et vous permettra d’intégrer plus facilement et correctement le principe de MVC grâce à ces composants "prêt à l’emploi". De plus, Beehive est en réalité la version open-source basée sur le framework WebLogic Workshop application. En effet, BEA a contribué à ce projet qui a très vite rencontré un vrai succès auprès de la communauté des développeurs. Vous n’êtes pas obligés d’utiliser Workshop pour intégrer Beehive, un projet de la fondation Eclipse nommé "Pollinate" vous propose une gestion de Beehive directement dans cet IDE.
Cas pratique
Pour comprendre le fonctionnement de Beehive & de Workshop, nous allons prendre un cas pratique simpliste : Un WebService interrogeant une base de données. Il faut donc que vous ayez une base de données avec une table contenant des données. Je vais utiliser MySQL 5 comme SGBDR et créer une base de données nommée "my_data_base". Dans cette base, je crée une table nommée "client" contenant trois colonnes "id", "firstname" et "lastname". Il faut ensuite mettre le fichier driver MySql (fichier Jar) dans le répertoire lib de WLS. A présent vous devez configurer la source de donnée au sein de la console d’administration de WLS : http://localhost:7001/console/ Le nom à donner à la datasource ici est "MySQL5TestDataSource" comme vous pouvez le voir dans l’image suivante :
Nous allons à présent créer un nouveau projet grâce à Workshop for WebLogic Platform de type "Web" > "Dynamic Web Projet" (les utilisateurs d’Eclipse et WTP reconnaîtront ce type de projet). Nous allons créer le Beehive Control qui nous permettra de dialoguer avec la datasource que nous venons de définir. Pour créer ce contrôle, que nous nommerons "DataSourceCtrl", utilisez le menu contextuel suivant :
Voici le code à insérer dans votre interface :
package com.completel.workshop.test.databasecontroller;
import java.sql.SQLException;
import org.apache.beehive.controls.system.jdbc.JdbcControl; import org.apache.beehive.controls.api.bean.ControlExtension;
@ControlExtension @JdbcControl.ConnectionDataSource(jndiName = "MySQL5TestDataSource") public interface DataSourceCtrl extends JdbcControl {
static public class Client { private int id; private String firstname; private String lastname;
public int getId() { return id; }
public void setId(int i) { id = i; }
public String getFirstname() { return firstname; }
public void setFirstname(String firstname) { this.firstname = firstname; }
public String getLastname() { return lastname; }
public void setLastname(String lastname) { this.lastname = lastname; }
}
@JdbcControl.SQL(statement = "SELECT ID, FIRSTNAME, LASTNAME FROM CLIENT WHERE ID = {id}") Client findClient(int id) throws SQLException; }
Nous pouvons maintenant créer le service web, que nous nommerons "DataSourceWS". Pour cela utilisez le menu précédant et créez un "WebLogic Web Service". Dans l’éditeur de code, vous pouvez à présent utiliser le menu contextuel suivant afin de sélectionner votre précédant Beehive control à utiliser :
Ce menu vous permettra d’utiliser les annotations Beehive afin de faire de l’injection de dépendance. Utilisez également ce menu pour ajouter une nouvelle "Web Method" à votre WebService. Voici le contenu de "DataSourceWS" :
package com.completel.workshop.test.databasecontroller;
import java.sql.SQLException;
import javax.jws.WebMethod; import javax.jws.WebService;
import org.apache.beehive.controls.api.bean.Control;
import com.completel.workshop.test.databasecontroller.DataSourceCtrl.Client;
@WebService public class DataSourceWS {
@Control private DataSourceCtrl dataSourceCtrl;
@WebMethod public String findClientByPrimaryKey(int id) { String res = null; try { Client client = dataSourceCtrl.findClient(id); res = "firstname : " + client.getFirstname() + " , lastname : "+ client.getLastname(); } catch (SQLException e) { e.printStackTrace(); } return res; } }
Il ne reste plus qu’à tester votre WebService en utilisant le menu contextuel sur le fichier et choisir "Run As" > "Run on Server". WLS intègre en effet un client de test pour WebService. Voici la page qui vous sera proposée :
Saisissez alors une valeur d’identifiant, validez et vous aurez le résultat suivant :
Vous pourrez remarquer que vous avez une historisation des différents appels que vous aurez fait ainsi que la requête et réponse SOAP qui vous ont permis d’obtenir votre résultat. Il vous suffit ensuite de créer votre propre client, que ce soit en utilisant JSF, Beehive NetUI, Struts, ou simplement des JSP.
Retour d’expérience
Chez COMPLETEL, nous utilisons BEA Workshop 8.1 depuis octobre 2005 et nous envisageons le passage à la version 9.0 afin de tirer profit des nouvelles fonctionnalités de cet outil. Ne serait-ce que pour créer un Web Service (JWS), Workshop 8.1 utilise des annotations insérées dans le commentaire Javadoc. En y regardant de plus prêt cela rappel XDoclet. La version 9.0,elle, permettrait d’utiliser toutes les nouveautés de JavaSE 5.0 dont les annotations. En plus des annotations JavaEE 5.0, d’autres sont également à disposition comme celles Beehive qui sont notamment utilisées lors de création de contrôle personnalisé. L’intégration de Beehive et des concepts SOA se fait très facilement par l’intermédiaire des assistants mis à disposition dans Workshop Studio. Vous pourrez créer vos propres composants SOA grâce aux Beehive Contols. Lorsque vous installez l’une des versions de Workshop, vous pouvez également installer la plateforme complète (WebLogic Server, WebLogic Portal & WebLogic Integration) afin de tester vos développements. Vous aurez également à disposition de nombreux outils dont WebLogic Scripting Tool (WLST) et JProcessUnit qui permettront de faire des tests de montées en charge et unitaires. Voici une vue d’ensemble de Workshop for WebLogic platform 9.2 :
Les évolutions
En ce qui concerne les évolutions coté WLS (WebLogic Server), là aussi des nouveautés sont apparues avec l’ajout d’un serveur SIP intégré (très pratique pour les entreprises étant dans le monde des télécommunications), d’outils pour faire de la répartition de charge (load-balancing), du clustering, du monitoring… Cette nouvelle version de Workshop, basée sur Eclipse, permet de profiter de tout ses avantages : système de plugins, auto-complétion réactive et intelligente, fonction avancée du débuggeur, … Elle ajoute également des nouvelles options, surtout grâce aux assistants comme des éditeurs visuels pour les JSP, JSF, Struts et EJB3. Un outil d’ORM (Object Relational Mapping) pour les EJB3 est également disponible et permet de recréer très facilement des Entity Beans à partir d’une base de données. D’autres produits de BEA devraient également être suivis, comme BEA AquaLogic qui est en réalité leur ESB qui intègre également une gestion des services. Lorsque l’on a des besoins d’intégration c’est un outil pouvant faciliter l’interrogation des données. La fondation Eclipse a même décerné un « Community awards 2006 » comme étant le « Best Commercial Eclipse-based Tool » pour BEA Workshop. Un produit à suivre donc pour tous ceux qui font de l’intégration. A vous maintenant de tester ces produits, et comme dirait BEA "Il est temps de commencer à penser liquide". A méditer…
|
|
|