Simple Business Connector Architecture de la plateforme SBC
Titre Projet Description Architecture de la plateforme SBC Plateforme SBC Ce document reprend toutes les étapes de l'installation du serveur SBC et pourquoi nous avons fait ces choix. Date samedi 19 juillet 2003 Auteur Table des matières Impératifs de la plateforme... 3 Le système d'exploitation : Linux... 4 La base de données : MySQL... 5 Le SDK JAVA : JRockit... 6 Le serveur d'application : JOnAS... 7
Impératifs de la plateforme Le choix de cette plateforme s'est fait avec comme objectif : d'avoir une plateforme la plus stable possible d'avoir le TCO ( coût total de possession ) le plus faible d'éviter de se marier avec un vendeur et garder une pleine indépendance Étant donné ces points, notre choix s'est tourné vers une plateforme 100% libre et le langage Java. Les différents choix ainsi que la procédure d'installation sont décrits dans ce document.
Le système d'exploitation : Linux Linux, par rapport à une plateforme comme Windows, va nous permettre : De réduire les coûts de plateforme ( licence, maintenance, stabilité, mise à jour... ) De maîtriser complètement la plateforme ( accès aux sources et choix des technologies ) De choisir notre distribution ( RedHat, Mandrake, Suse, Debian... ) Nous avons choisi Debian car il s'agit d'une distribution gérée par une communauté plutôt qu'une société et elle offre des avantages comme : Une politique open source très strict qui en font une distribution qui ne contient aucun code ayant une licence restrictive. Un programme qualité excellent qui permet notamment une excellente gestion des dépendances. Une installation minimum qui offre un maximum de performance et de sécurité. Un outil de mise à jour et d'installation excellent. Notre installation se fait avec 4 partitions : hda1 -> /boot ( 15 MO ) hda2 -> SWAP ( 2 * RAM ) hda3 -> / ( 1 GO ) hda4 -> /data ( Le reste ) Si le serveur possède 2 disques durs, il vaut mieux mettre le répertoire /data sur une partition qui se trouve sur l'autre disque dur.
La base de données : MySQL Les bases de données propriétaire étant hors de prix et n'ayant aucun intérêt par rapport aux bases de données libres, nous nous sommes donc tournés vers les deux leaders de l'open source : MySQL et PostgreSQL. PostgreSQL est la base de données la plus complète : elle supporte nottament les triggers et les procédures stockées. D'un autre coté, MySQL est capable de meilleurs performance et jouit d'une énorme popularité même si elles n'a pas toutes les fonctionnalités de PostgreSQL. Pour SBC, un serveur d'application J2EE sera utilisé, la base de données ne sera donc en fait qu'un moyen de stockage de masse. MySQL étant très performant, multi plateforme, très répandu, et très facile d'administration, nous allons l'utiliser pour notre développement. La version disponible avec notre Debian 3.0 est la version 3.23. Après avoir installé la base de données à l'aide de la commande apt-get install mysql-server, nous modifierons la configuration de MySQL pour spécifier que la partition hda4 sera utilisé pour stocker les bases de données. Après avoir installé MySQL, voici les étapes que nous allons suivre pour finaliser son installation : Tapez mysql -u root pour accéder au serveur. Faire un delete from user where user =""; pour effacer tous les utilisateurs anonymes. Faire SELECT user, host, password from user; pour voir quels utilisateurs n'ont pas de mot de passe. Pour chaque utilisateur, faire un SET PASSWORD FOR root@localhost=password("????"); Quitter l'application. Le serveur de base de données est maintenant prêt! Nous allons donc maintenant créer une base de données pour SBC et un utilisateur. Tapez mysql -u root -p pour accéder au serveur. Faire un create database sbc. Faire un use sbc. Faire : mysql> GRANT -> SELECT, INSERT, UPDATE, DELETE, CREATE, DROP -> ON sbc.* -> TO sbc@localhost -> IDENTIFIED BY 'sbc789'; Pour que MySQL soit accessible depuis le réseau, il faut éditer le fichier etc/mysql/my.cnf et mettre en commentaire l'option skip-networking
Le SDK JAVA : JRockit La machine virtuelle est un des éléments essentiel de la plateforme SBC car elle va faire tourner notre application. Pour Linux, il existe 3 principaux SDK : Le J2SDK de SUN Le SDK Blackdown Le SDK BEA JRockit JRockit a été retenu car il semblerait que ce soit le SDK le plus performant d'après les tests que nous avons pu voir. Avant d'installer, il nous faut faire un «apt-get install binutils-dev» Nous avons donc téléchargé JRockit directement depuis le site de BEA et nous l'avons installé dans le répertoire /root/bea. Pour l'installation, il suffit ensuite de lancer «./jrockit». Nous avons ensuite ajouté le chemin de la virtuelle machine au PATH en faisant : «export PATH=/root/bea/jrockit81_141_02/bin/:$PATH». Il faudra modifier ensuite le fichier /etc/profile pour y ajouter : PATH=$PATH:/root/bea/jrockit81_141_02/bin export PATH Pour l'utilisateur root, il faut modifier le fichier /root/.bash_profile pour y ajouter : PATH=$PATH:/root/bea/jrockit81_141_02/bin export PATH
Le serveur d'application : JOnAS Après avoir étudié l'offre possible en matière de serveur d'application, nous avons tout de suite éliminé les serveurs comme Websphere ou Weblogic. Un peu comme pour les SGBDR, nous nous sommes retrouvés en face de deux poids lourds du libre Jboss et JOnAS Ces deux produits intègrent Tomcat et Axis. Le choix s'est donc fait sur le support et la documentation de ces deux produits. Nous nous sommes vite rendus compte que JOnAS était bien mieux documenté et que la mailing liste était plus active et plus apte à nous apporter le support dont nous avions besoin. Nous avons donc téléchargé la version 3.2 sur www.objectweb.org. L'installation est très simple, il suffit de décompresser l'archive.tar.gz dans le répertoire où on veut installer JONAS, dans notre cas, il s'agira de /opt/jonas-3-2. Après cela, il faut mettre deux variables en place : JONAS_ROOT qui pointe vers le répertoire d'installation de JOnAS : /opt/objectweb/jonas export JONAS_ROOT=/opt/jonas-3-2/ PATH à laquelle ont doit rajouter $JONAS_ROOT/bin/unix set PATH=$PATH:/opt/jonas-3-2/bin/unix/ export PATH Il faudra modifier le fichier /etc/profile pour y rajouter ces commandes. Ensuite, nous allons faire en sorte que JOnAS soit lancé automatiquement au démarrage grâce au script suivant :
#!/bin/sh -e # # JONAS daemon start/stop script. # cd / export JONAS_ROOT=/opt/jonas-3-2/ export PATH=/bin:/usr/bin:/root/bea/jrockit81_141_02/bin:/opt/jonas-3-2/bin/unix:$PATH # Safeguard (relative paths, core dumps..) cd / umask 077 case "$1" in 'start') # Start daemon echo -n "Starting JOnAS application server" /opt/jonas-3-2/bin/unix/jonas start > /jonas.log 'stop') echo -n "StOpping JOnAS application server" /opt/jonas-3-2/bin/unix/jonas stop > /jonas.log 'restart') /opt/jonas-3-2/bin/unix/jonas stop > /jonas.log /opt/jonas-3-2/bin/unix/jonas start > /jonas.log 'status') /opt/jonas-3-2/bin/unix/jonas -version *) esac echo "Usage: $SELF start stop restart reload force-reload" exit 1 Un lien vers ce script devra être crée dans chaque répertoire rcx.d du répertoire etc. (cf. mysql)