Recherche sur le blog

mardi 27 décembre 2011

[Firefox] Réafficher le message d'avertissement lorsqu'on ferme plusieurs onglets

Astuce! Concerne : Firefox 4.0+. Il se pourrait que vous ayez coché la case qui propose de ne plus poser de question lors de la fermeture de plusieurs onglets. Cela est encore plus contrariant si Firefox restaure la session précédente lors de son redémarrage. Comment faire alors pour réinitialiser tous les paramètres ?

Restaurer le paramètre caché "afficher la boite de dialogue d'avertissement lors de la fermeture"
     
Pour ce faire, rendez-vous dans la configuration avancée : tapez "about:config" dans l'un des onglets ouverts (ou créez-en un nouveau). Un message doit s'afficher vous indiquant que toute modification peut être "dommageable pour la stabilité et la sécurité" de votre navigateur. Cliquez sur "Je ferai attention, promis !"


Recherchez le paramètre "browser.showQuitWarning". Si vous ne le trouvez pas, utilisez la barre de recherche instantanée. Lorsque vous apercevez celui-ci, double-cliquez dessus pour inverser la valeur. Elle doit alors être positionnée à "true" (= Vrai). L'image ci-dessous devrait vous aider si vous êtes perdu.


Redéfinir le paramètre pour afficher la page d'accueil au démarrage du navigateur

Si vous aviez demandé à enregistrer la session, le paramètre "showQuitWarning" n'aura aucun effet. Ainsi, pour que Firefox adopte son comportement d'origine, il faut se rendre dans les préférences, via le menu "Firefox" ou en appuyant sur ALT pour afficher toute la barre de menus.


Dans l'onglet général, déroulez la première liste "au démarrage de Firefox" et choisissez "Afficher ma page d'accueil". Confirmez par OK : la fenêtre des préférences sera fermée.

Ouvrez maintenant plusieurs onglets puis quittez le navigateur. Il vous proposera de nouveau de sauvegarder votre session ! Il vous suffira de ne plus cocher la case pour conserver ce comportement.

Bon surf à toutes et à tous.

[Info] Et le navigateur préféré de mes visiteurs est...

Roulements de tambours... Il s'agit de Firefox, qui arrive premier avec 42% de pages vues (Firefox et GranParadisio). Il est suivi par Google Chrome puis par Internet Explorer. Opéra se retrouve en bon dernier avec ce qu'il semblerait être Netscape 8. Les utilisateurs ont principalement utilisé Windows puisque cela concerne 78% des pages vues. Enfin, la majorité des visiteurs provient de France !


Merci à tous et n'hésitez pas à ajouter ce blog à vos favoris, à me suivre sur Twitter ou à enregistrer mon fil RSS. Vos commentaires et suggestions pour améliorer ce blog, sont les bienvenus !

lundi 26 décembre 2011

[Sécurité] Les bases à connaitre pour venir à bout des virus et logiciels espions

Les virus, spywares, adwares, trojans, rootkits,... sont très répandus sur la toile. Ils sont tous assez différents mais ont tous en commun une chose : ils sont dangereux pour nos données. Cet article va expliquer aux plus néophytes d'entre nous les bases de la sécurité informatique. Après, vous devriez être capable de vous protéger un minimum et de prendre certaines mesures sans avoir forcément besoin de formater ou de faire appel à un informaticien.

Quelques définitions

Les virus sont des exécutables qui peuvent se transmettre de différentes manières et exécutent une action, en général nuisible (comme un formatage). Ils peuvent aussi bien infecter le secteur d’amorçage du disque dur, qu'une application. Certains virus utilisent aussi le langage Visual Basic pour exécuter des macros lors de l'ouverture d'un document Word par exemple. Un premier exemple de virus est MyDoom.A qui envoyait des mails à tous les contacts et installait une porte dérobée (fonctionnalité inconnue de l'utilisateur) dans le dossier système. Souvenez-vous aussi des différents vers qui ont fait leur apparition. Ils se différencient des virus par le fait qu'ils n'ont pas besoin d'un programme hôte pour se reproduire (exemple : I Love You). Certains sont capables de forcer un redémarrage de l'ordinateur après une durée bien déterminée.

Les spywares ("logiciels espions") sont des programmes destinés à récupérer diverses statistiques de votre utilisation (URL, mots-clés saisis dans les moteurs de recherche, etc) et même des données personnelles, afin de les renvoyer à son concepteur ou à un tiers sur la toile. Certains espions afficheront plutôt de la publicité et des liens, d'autres, appelés "mouchards", renvoient les données dans la plus grande discrétion possible. Vos données pourraient alors servir à certaines régies publicitaires véreuses ou à d'autres fins malhonnêtes. Tout cela à votre insu, bien sûr. Quelques vecteurs d'infection : faux logiciels de protection, faux codecs, cracks et keygens, etc.

Un trojan ("cheval de troie") est souvent destiné à ouvrir un accès pour un pirate. Par exemple, ce genre de programme peut ouvrir un port par lequel une personne pourra s'introduire pour exécuter diverses actions à distance, voire prendre le contrôle de la machine. Ils sont aussi capables d'exploiter des failles logicielles. Leur but est de corrompre les données ou même de les récupérer. D'autres peuvent aussi installer des logiciels malveillants (malwares) sur votre machine. Pire encore : les keyloggers enregistrent les frappes au clavier. Il en existe d'autres catégories. Les signes qui pourraient laisser envisager une infection sont par exemple une activité du réseau anormale, des mouvements du curseur inattendus, voire des accès au disque durs répétés.

Un rootkit, pour faire simple, est un logiciel malveillant qui se dissimule dans une application existante ou dans le système. Ils sont difficilement détectables, même par les outils récents. Ils peuvent par exemple se charger en mémoire, pour ne laisser aucune trace sur le disque dur (ou sur toute autre périphérique de stockage). Certains de ces logiciels malveillants peuvent s'approprier des privilèges administrateur et vont parfois jusqu'à désactiver le mécanisme de défense (comme un antivirus).

Un adware est un logiciel qui affiche de la publicité pendant son utilisation. Elle peut s'afficher sous forme de larges bannières, ou bien de multiples liens casés dans un coin de l'application. Bon nombre de barres d'outils fait partie de cette catégorie. En général, un logiciel rentre dans cette catégorie quand son concepteur n'a pas indiqué diffuser de la publicité dans celui-ci. Enfin, certains adwares pourraient contenir des logiciels espion. Bearshare, Gator, IncrediMail, sont de bons exemples pour illustrer.

D'autres types de logiciels malveillants existent, tels que les botnets. Cependant, nous n'en donnerons pas la définition ici. Des sites comme Secuser ou Sophos apportent des renseignements complémentaires aux définitions les plus basiques ici présentes. Nous allons énumérer une liste de logiciels qui pourraient vous servir en cas d'infection suspectée ou avérée.

Les antivirus

Différents antivirus sont disponibles sur le marché. Il existe des gratuits mais aussi des payants comme Norton Antivirus de Symantec ou bien BitDefender, NOD32, Kaspersky. Plusieurs comparatifs existent afin de vous aiguiller dans vos choix : Clubic, Actuvirus, Guide-Antivirus, etc. 

Contrairement à ce que l'on pourrait croire, les antivirus gratuits (Antivir, Avast!,...) sont très efficaces, mais disposent simplement de moins de fonctionnalités et peuvent signaler plus de faux positifs (une fausse menace). Des sites comme Dr-Malware ou Guide-Antivirus ont rédigé des comparatifs intéressants.

Supprimer les logiciels malveillants

Une préférence pour...

Trois logiciels ressortent du lot :
  • A² Squared (Emisoft Anti-Malware) : le logiciel existe dans différentes versions dont une gratuite. La société Emisoft propose également des solutions pour les entreprises.
  • Spybot Search & Destroy : alors qu'on le croyait totalement à l'abandon, Spybot S&D revient sous forme de suite antivirus (v2.0) et propose de nouveaux outils d'analyse et de vaccination pratiques et faciles d'utilisation.
  • Malwarebyte Anti-Malware : logiciel très puissant disponible aussi en version gratuite. Une version payante (pro) existe également. Lorsqu'on lance le programme, il propose de choisir un type de recherche à effectuer. Le résultat s'affiche ensuite sous forme de liste avec des cases à cocher pour supprimer.

Les autres logiciels


Certains logiciels qui suivent sont destinés aux utilisateurs avertis.

Ad-Remover

Description par Clubic : "Le logiciel Ad-Remover s’occupera d'éliminer proprement les publiciels vérolés, « adware » en anglais. Affichant de la publicité en échange d'un service gratuit, certains d'entre eux contiennent des logiciels espions violant votre vie privée numérique tout en modifiant le comportement de votre système. Ayant pour cibles principales Eorezo, SweetIm, MyWebSearch, AskBar, Crawler Toolbar, WhenUSave, Dealio Toolbar, il vous débarrassera aussi des applications de type « jeu de poker et casino gratuit » pullulant actuellement sur la toile, entre autres Swiss Casino, Golden Casino, GV AbsoluCasino, Poker 770."

     

HijackThis

Développé par Trend Micro, il permet de générer un résumé des objets présents sur la machine, aussi bien les ActiveX, les barres d'outils ou bien les programmes qui se lancent au démarrage de l'ordinateur. Son interface est très rudimentaire. Une fois lancé, il faut cliquer sur "Do a system scan only". Des objets apparaissent avec un "code".

Lors du lancement d’Hijackthis, il faut choisir l’option “Do a system scan only”. Le logiciel analyse :
  • R1/R0 : Les pages Internet Explorer (accueil, moteur de recherche par défaut,…) : si elles ont été modifiées, on peut le voir et les remettre par défaut. Certains espions (ainsi que les troyens) modifient ces pages. Les pages par défaut sont définies dans les options du logiciel.
  • BHO : Ce sont les modules complémentaires installés dans Internet Explorer, ainsi que les ActiveX installés ; on y retrouve par exemple Windows Update.
  • O3 : Ce sont les barres d’outils installées (exemple : Bing Bar de Microsoft). Certains espions sont sous forme de barres d’outils, comme Ask ! Toolbar par exemple.
  • O4 : Logiciels lancés au démarrage de l’ordinateur. Certains logiciels se lancent à votre insu.
  • O8 : Boutons et menu contextuels du navigateur.
  • O15 : Zones de confiances.
  • O17 : Domaines réseaux.
  • O23 : Services. Ce sont les services disponibles dans « services.msc » de la gestion d’ordinateur, accessible via le panneau de configuration (administration système).
Il suffit de cocher les objets « infectés » puis de les supprimer.

SmitFraud Fix

Ce logiciel est un « fix », il permet de supprimer les logiciels malveillants ayant infecté notamment le fichier « hosts » de Windows, la base de registre, DNS, etc. Il viendra à bout des menaces les plus courantes, à savoir AdwarePunisher, AdwareSheriff, AlphaCleaner, AntiSpyCheck, Antispyware Soldier, AntiVermeans, AntiVermins, AntiVerminser, AntiVirGear, AntivirusGolden, AVGold, Awola, BraveSentry, IE Defender, MalwareCrush, MalwareWipe, MalwareWiped, MalwaresWipeds, MalwareWipePro, MalwareWiper, PestCapture, PestTrap, PSGuard, quicknavigate.com, Registry Cleaner, Security iGuard, Smitfraud, SpyAxe, SpyCrush, SpyDown, SpyFalcon, SpyGuard, SpyHeal, SpyHeals, SpyLocked, SpyMarshal, SpySheriff, SpySoldier, Spyware Vanisher, Spyware Soft Stop, SpywareLocked, SpywareQuake, SpywareKnight, SpywareRemover, SpywareSheriff, SpywareStrike, Startsearches.net, TitanShield Antispyware, Trust Cleaner, UpdateSearches.com, Virtual Maid, Virus Heat, Virus Protect, Virus Protect Pro, VirusBlast, VirusBurst, VirusRay, Win32.puper, WinHound, Brain Codec, ChristmasPorn, DirectAccess, DirectVideo, EliteCodec, eMedia Codec, EZVideo, FreeVideo, Gold Codec, HQ Codec, iCodecPack, IECodec, iMediaCodec, Image ActiveX Object, Image Add-on, IntCodec, iVideoCodec, JPEG Encoder, Key Generator, LookForPorn, Media-Codec, MediaCodec, MMediaCodec, MovieCommander, MPCODEC, My Pass Generator, NetProject, Online Image Add-on, Online Video Add-on, PCODEC, Perfect Codec, PowerCodec, PornPass Manager, PornMag Pass, PrivateVideo, QualityCodec, Silver Codec, SearchPorn, SiteEntry, SiteTicket, SoftCodec, strCodec, Super Codec, TrueCodec, VideoAccess, VideoBox, VidCodecs, Video Access ActiveX Object, Video ActiveX Object, Video Add-on, VideoCompressionCodec, VideoKeyCodec, VideosCodec, WinAntiSpyPro, WinMediaCodec, X Password Generator, X Password Manager ainsi que ZipCodec. C'est à télécharger sur Clubic, une nouvelle fois.

ComboFix

Cet utilitaire est utilisé pour les malwares bien connus, les espions (SurfSideKick, QooLogic, et Look2Me, Winfile (Winfile.jpg) ainsi que d’autres combinaisons de ces mêmes logiciels malveillants). Il s’occupe de les supprimer. Il s'exécute uniquement en mode sans échec ! Télécharger sur le site officiel (sûr) : http://www.combofix.org/

Sophos Anti-Rootkit 

Les logiciels rootkits sont des virus particuliers : ils prennent le contrôle à un niveau plus élevé que celui de l’administrateur, et peuvent donc se cacher. Certains antivirus les détectent, mais ne peuvent pas les supprimer (ceux-ci apparaissent de nouveau au redémarrage). Bien souvent, même en ligne de commande avec les droits administrateur, il est impossible de supprimer ces logiciels. On les reconnait en général par leur nom tiré par les cheveux. Pour les supprimer du registre et du disque dur, on utilise un anti-rootkit.


Sophos Anti-Rootkit 1.5.1. est un anti-rootkit puissant, remplaçant celui de McAfee pour les versions Windows NT supérieures à 6 (Windows Vista, Windows 7). Il s’occupe de scanner le registre, le disque dur et les processus actifs. La suppression est très efficace ! Cependant, attention aux faux positifs et aux objets qui ne sont pas réellement cachés.

Et ensuite ?

La sécurité en informatique est un domaine qu'il ne faut pas prendre à la légère. D'autres dossiers paraitront dans les mois à venir pour vous aider à vous protéger. Des tutoriels plus complets sont également prévus (utilisation de Malwarebyte Anti-Malware, configuration d'Avira Antivir Free, etc). En attendant, n'hésitez pas à vous munir d'un antivirus efficace et surtout, tenez-le régulièrement à jour. N'oubliez pas de passer régulièrement votre disque dur et vos clés USB au peigne fin. Et l'ultime conseil du jour : surfez intelligemment et faites attention à ce que vous téléchargez !
         
Sources

mardi 20 décembre 2011

[WinDev] Importer un Web Service

WinDev permet non seulement de créer des Web Services (en WLangage), mais aussi d'en importer d'autres, quel que soit le langage dans lequel ils ont été écrits (Java, C#, WLangage...). Le service généré via Axis2 peut recevoir des requêtes par socket, HTTP et même SOAP. C'est grâce au WSDL que WinDev va générer les types et les opérations adéquates. Une fois notre service déployé, la description WSDL est disponible. Dans le cas de "HelloAxisWorld", il se trouve (par défaut) à l'adresse suivante : http://localhost:8080/axis2/services/HelloAxisWorld?wsdl. Comme vous vous en doutez, cette URL peut varier selon la configuration de votre serveur Apache.

Lorsqu'on analyse le contenu, on peut distinguer plusieurs parties :
  • Les types : Axis2 a généré deux sortes de type pour nous. L'un correspond à ce qui sera envoyé au service Web. Il contient toutes les valeurs qui peuvent être des chaînes, des entiers, des tableaux, etc. Ensembles, ils forment un type complexe. Le second type est utilisé pour la réponse. Ils sont indépendants du langage et des machines mais se conforment à la spécification du XML Schema.
  • Les messages : il en existe deux ici - l'un pour la requête, l'autre pour la réponse. Chaque message contient une ou plusieurs parties, qui peuvent être comparées à des paramètres d'appel à une fonction dans un langage plus traditionnel.
  • Les liaisons (bindings) :  elles définissent le format des messages et le protocole utilisé pour un port.
  • Les ports : ils définissent les différentes manières de se connecter au Web Service. Chaque accès à un "endpoint" est défini par une URL.
Maintenant que c'est un peu plus clair pour vous, voyons ensemble comment importer la description dans l'environnement de WinDev.

Importer

Dans le volet "Explorateur de projets", localisez la catégorie "Webservices" puis effectuez un clic droit sur celle-ci. Choisissez alors l'option "Importer et utiliser un Webservice dans ce projet...". Remarque : si ce volet n'existe pas chez vous, rendez-vous dans le menu "Affichage", "Barre d'outils" puis "Volets". Cochez-le, ensuite déplacez-le où vous le souhaitez dans l'environnement.


Une nouvelle fenêtre s'ouvre : la première étape affiche une introduction. Cliquez alors sur le bouton "Suivant" (en forme de flèche). L'éditeur vous demande alors de saisir l'adresse du WSDL, et éventuellement des informations d'authentification (cela dépend de la configuration du serveur). Comme nous travaillons en WinDev 15, nous n'allons pas utiliser le mode de compatibilité. Lorsqu'on est prêt, on peut confirmer en terminant cet assistant. L'éditeur créera les types et les opérations pour nous.


Après un temps d'attente qui dépendra de la taille de votre service mais aussi du temps de réponse du serveur, les types et les opérations sont créés. Ils apparaissent dans la catégorie "Webservices" de l'explorateur de projet. La structure a respecté la description et on retrouve bien deux types complexes : "hello" et "helloResponse", ainsi que l'unique opération (qui renverra une chaîne de caractères).


Utiliser

Il ne nous reste plus qu'à "consommer" ce service. Et pour cela, il va falloir saisir du code...


Il faut tout d'abord déclarer deux "variables". L'une contiendra la réponse, l'autre est utilisée pour passer les paramètres à l'opération. La seconde contient toutes les valeurs à définir. Dans notre cas, nous devons renseigner un nom (name). Ensuite, on exécute l'opération du Web Service et on stocke le résultat dans notre variable RSHelloResp. On affiche le résultat dans une boite de dialogue de type "Information".

Si on veut être plus propre et aller plus loin, on peut rajouter un traitement d'erreur spécifique. Ici, on affichera simplement la cause de l'échec de l'appel dans une boite de dialogue de type "Erreur". Voici l'exemple :


Et après ?

Après, c'est à vous de jouer. Déployez, testez, amusez-vous à explorer les diverses possibilités qu'offrent Java et WinDev. Si vous ne possédez pas ce puissant AGL, vous pouvez toujours créer des clients dans d'autres langages comme le C# (avec Visual Studio). Bon développement à toutes et à tous.

Dossier Axis2

Partie 1.
Partie 2.

Sources
   
Importation de Webservices (documentation PCSOFT)
Microsoft : Description du langage WSDL
W3Schools
W3C

vendredi 2 décembre 2011

[Créateurs] Décès de l'inventeur du RFID

Suite aux annonces de Clubic et PC World, nous avons appris le décès de l'inventeur du RFID ("Radio Frequency IDentification), Charles Walton. Les articles des deux sites racontent l'histoire résumée de ce grand personnage.


[Java] Différentes possibilités avec l'AS/400

Les librairies Java fournies par IBM contiennent de nombreuses classes qui permettent de se connecter au système i, d'appeler des programmes CL ou RPG-LE, ou qui autorisent l'accès à la base de données DB2. Il existe même deux méthodes pour lancer un programme : l'utilisation du langage PCML (respectant un schéma XML) qui va rendre possible la conversion automatique des données, ou la méthode plus complexe qui consiste à d'abord convertir toutes les données dans le format AS/400 puis de les envoyer sous forme de bytes, ce qui est tout de suite plus fastidieux. Nous allons voir ensemble, dans cet article, les méthodes de connexion ainsi que le langage PCML.

Se connecter pour exécuter des commandes

Lorsque l'on veut exécuter des commandes ou appeler un programme sur l'AS/400, nous devons nous connecter au système. Nous allons avoir besoin du package suivant et de toutes ses classes : com.ibm.as400.access. Pour l'ajouter, une ligne de code suffit.

import com.ibm.as400.access.*;

La suite est on ne peut plus simple : on déclare une variable de type AS400 avec le nom que l'on souhaite. On doit ensuite l'initialiser avec l'un des constructeurs en lui passant certains paramètres. Dans le cas ici présent, on renseigne, dans l'ordre, l'adresse du serveur, le nom d'utilisateur et le mot de passe.

AS400 mySystem = null;
mySystem = new AS400(server,user,password);

Si aucune erreur n'est renvoyée (n'oubliez pas de tester les exceptions !), on peut commencer à exécuter des commandes ou à appeler des programmes. Plus de détails sur les différents constructeurs : AS400 Class Javadoc (v5r1).

Exécuter une commande

Puisqu'on a importé le package et toutes ses classes grâce à l'instruction "import" ci-dessus, il n'y a plus qu'à déclarer une variable de type CommandCall, qui permettra l'appel d'une commande interne. Par exemple, on souhaiterait changer les librairies utilisées par le job en cours (qui a été créé lors de la connexion). Voici un exemple de code qui effectue la déclaration de la variable mais aussi l'appel de la commande :

CommandCall cc;
cc = new CommandCall(mySystem);
cc.run("CHGLIBL LIBL(" + sMyLibraries + ")"); 

Ajoutez à cela le traitement des messages renvoyés par le système pour afficher les éventuelles erreurs. Sur le support d'IBM, vous trouverez un exemple concret. Voici également la documentation de la classe CommandCall (v5r2), qui vous permettra d'obtenir des informations supplémentaires sur les instructions utilisées.

Se déconnecter de tous les services

Pour mettre fin au job en cours et arrêter toutes les commandes en cours pour celui-ci, on va se déconnecter proprement du système. En effet, ne pas couper la connexion peut laisser plusieurs jobs en suspend jusqu'à saturation, ce qui rendra impossible de futures connexions. La fonction utilisée est "disconnectAllServices()"de l'objet AS400.

mySystem.disconnectAllServices();

Il est également possible de déconnecter un seul service à la fois avec la fonction "disconnectService". On spécifie en paramètre le numéro du service à arrêter (ex : PRINT, FILE, COMMAND,...).

ProgramCall Markup Language

Le langage PCML est un langage spécifique défini par IBM qui permet de décrire les programmes sur l'AS/400 (RPG-LE ou CL) et peut être utilisé dans un programme Java ou même avec Easycom for WinDev. Le document PCML est écrit avec des éléments de type XML qui respectent un certain schéma. Il va permettre d'établir les conversions de données et le passage de paramètres aux programmes du système. La documentation IBM vous donnera plus de détails sur ce langage et sur sa syntaxe : "Building iSeries program calls with PCML".

Comment obtenir ce fichier

Pour créer le fichier PCML il vous suffit, lors de la compilation, de renseigner deux paramètres supplémentaires : PGMINFO, qui prendra la valeur *PCML, et INFOSTMF qui est le chemin du fichier à générer dans l'IFS (exemple : /home/myprog.pcml). Si vous n'avez pas accès à l'IFS sous Windows, vous pouvez soit le configurer, soit copier le fichier via l'émulateur en copiant les lignes à l'écran (sélection puis copier). La compilation peut également être effectuée via une ligne de commande.

Le contenu 
     
Pour résumé, le fichier contient toutes les définitions des paramètres du programme à appeler, ainsi que la longueur. Si vous n'avez pas pu le générer, il est toujours possible de l'écrire sur base d'un existant. Pour chacun des paramètres, on peut définir le type (packed, char, zoned, etc), la longueur, la précision (pour les nombres uniquement), ainsi que l'utilisation (entrée, sortie, ou les deux). Voici un exemple de document qui décrit un programme appelé CALCC dans la librairie EMARADISP (cf. image).

    
Le code Java

Au préalable, il faut placer le document PCML dans le répertoire des classes de notre projet ou bien du serveur si le code s'exécute sur Apache Tomcat ou Glassfish. Ce répertoire doit être inclus dans le "classpath" du projet/du serveur. Ensuite, nous allons avoir besoin d'un objet de la classe ProgramCallDocument, que l'on déclare dans le code.On va la lier au système et définir les différents paramètres au moyen de fonction "set". On récupérera les paramètres de retour avec des fonctions de type "get". Voici un code d'exemple.

ProgramCallDocument pcml = null;
pcml = new ProgramCallDocument(mySystem, "PROGRAM");
pcml.setValue("PROGRAM.PARM1",s);
pcml.setValue("PROGRAM.PARM2",new Integer(5));
pcml.setValue("PROGRAM.PARM3",new Integer(0));
...
if(pcml.callProgram("PROGRAM") != true) {
  // handle error.
else
  variable = pcml.getValue("PROGRAM.PARM3") + "#";
}

Explications :
  • On a déclaré une variable de type ProgramCallDocument et on l'a liée au système. On a également indiqué le nom du programme, qui est en fait lié à l'élément <program> dans notre document PCML.
  • On a utilisé plusieurs fois la fonction "setValue" pour définir les différents paramètres. Pour chacun, il a été obligé de spécifier le nom du programme ainsi que le nom du paramètre, pour faire référence aux différents éléments du document.
  • On appelle la fonction "callProgram" de l'objet ProgramCallDocument en spécifiant à nouveau le nom du programme à appeler. La fonction renvoie vrai ou faux pour indiquer si tout s'est bien passé.
Pour plus de détails sur la classe et ses fonctions, vous êtes invité à consulter la documentation Java officielle qui se trouve ici : ProgramCallDocument Class Javadoc. Comme pour tous les autres liens, c'est en anglais uniquement.

Se connecter à la base de données

Cette opération est réalisée grâce au pilote JDBC fourni par IBM. La méthode de connexion avait déjà été décrite dans un article sur ce blog : "Se connecter à un système AS/400". Cependant, des propriétés supplémentaires ont été définies dans une variable de type Properties, pour redéfinir notamment la library list (sorte de "path" sur l'AS/400) et le système de convention pour SQL. Le nom d'utilisateur et le mot de passe y sont également stockés.

p.put("user",mainProp.get("user").toString());
p.put("password",mainProp.get("pwd").toString());
p.put("naming","system");
p.put("libraries",slib);    
DriverManager.registerDriver(new com.ibm.as400.access.AS400JDBCDriver());
conn = DriverManager.getConnection("jdbc:as400://" + server,p);

Choisir d'utiliser le système de convention interne à l'AS/400 permet d'exécuter des requêtes en indiquant le nom de la bibliothèque suivi du nom de la table. Par défaut, le driver JDBC est configuré pour utiliser l'appel standard "schéma.table". Grâce aux propriétés, on a donc modifié le comportement du pilote.

Et après ?

Vous voilà maintenant prêts pour générer un web service qui se connecte à l'AS/400, ou même un simple programme. L'avantage d'utiliser Java ? Il sera multiplateforme puisque la machine virtuelle peut s'installer sur tous les systèmes d'exploitation du marché (Linux, Windows, Mac OS X). Dans la dernière partie de ce dossier, vous apprendrez à appeler votre web service fraichement développé. Revenez donc dans quelques jours pour la suite... et la fin ! Bon développement à toutes et à tous.


Quelques liens :