Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008



Documents pareils
CONFIGURATION DE LA LIBRAIRIE WEBUTIL (10g) Oracle Forms 10g

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Installation de SQL Server Reporting Services avec l intégration dans un site Windows SharePoint Services V3

Annexe 10 - Procédure pour créer un Jar

TP1 : Initiation à Java et Eclipse

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Environnements de développement (intégrés)

contact@nqicorp.com - Web :

Java au cœur de la base de données Oracle

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Introduction à Eclipse

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Java pour le Web. Cours Java - F. Michel

Java DataBaseConnectivity

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée Virtual Server de Microsoft

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

1. Aménagements technologiques 2. Installation de Microsoft SQL Server 2012

Oracle WebLogic Server (WLS) 11gR1 ( et ) Installation sur Oracle Linux 5 et 6 Hypothèses Installation Oracle Linux 5 (OL5)

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

Paginer les données côté serveur, mettre en cache côté client

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

INTERNET est un RESEAU D ORDINATEURS RELIES ENTRE EUX A L ECHELLE PLANETAIRE. Internet : interconnexion de réseaux (anglais : net = réseau)

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Création d un service web avec NetBeans 5.5 et SJAS 9

IBM SPSS Collaboration and Deployment Services Deployment Manager 5 - Instructions d installation

Installer et configurer Oracle Forms 11gR2 Windows 7 64 bits

Déployer les Fonts, Icones, et Images avec Forms Services 11G

Machine virtuelle Java pour Palm TX

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Documentation Ellipses Windows. Auteur : Léonard FRECHET Date : 10/01/07 Diffusion : Publique ELLIPSES Envoi Automatisé de SMS Ellipses SMS

Alfstore workflow framework Spécification technique

Java et les bases de données: JDBC: Java DataBase Connectivity SQLJ: Embedded SQL in Java. Michel Bonjour

Configurer la supervision pour une base MS SQL Server Viadéis Services

Développement des Systèmes d Information

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

OpenPaaS Le réseau social d'entreprise

Installer Enterprise Miner 5.1 en SAS environnement Windows

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

3 Octobre Les Communautés MS

Ce guide décrit la procédure à suivre afin de profiter pleinement du Service de Transfert de Fichiers EGIS. Il décrit

FileMaker 10. Guide ODBC et JDBC

Faire du publipostage par mails (mass-mailing) avec VTigerCRM

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

La base de données XML exist. A. Belaïd

Mettre en place un accès sécurisé à travers Internet

arcopole Studio Annexe 7 Architectures Site du programme arcopole :

Tutoriel XBNE Connexion à un environnement XBMC distant

Module http MMS AllMySMS.com Manuel d intégration

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Documentation utilisateur "OK-MARCHE" Historique des modifications. 3.0 Mise à jour complète suite à version OK-MARCHE V2.2. de marchés publics

Manuel d intégration API SOAP SMS ALLMYSMS.COM

Clear2Pay Belgium SA Solution B-web V4 Procédure d installation. Solution B-web V4. Procédure d installation. Clear2Pay Belgium SA Page 1 de 18


Devoir Data WareHouse

Ces envois peuvent être automatiques ou manuels. Nous allons découvrir dans ce manuel comment

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

WebParts. Version 1.0

Définition des Webservices Ordre de paiement par . Version 1.0

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Plateforme PAYZEN. Définition de Web-services

Construire des plug-ins pour SAS Management Console SAS 9.1

MS SQL Express 2005 Sauvegarde des données

Architecture Orientée Service, JSON et API REST

Créer un rapport pour Reporting Services

Fiche technique rue de Londres Paris Tél. : Mail : contact@omnikles.com

TP Contraintes - Triggers

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

Mobyt Intégration par Webservice TABLE DES MATIERES

Système Principal (hôte) 2008 Enterprise x64

Présentation du PL/SQL

Bases de données avancées

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture IBM BladeCenter

Module BD et sites WEB

bbc Launch Pad Juillet 2011 Version 10.0

FORMATION PcVue. Mise en œuvre de WEBVUE. Journées de formation au logiciel de supervision PcVue 8.1. Lieu : Lycée Pablo Neruda Saint Martin d hères

Reporting Services - Administration

Windows Server 2008 R2

Tenrox. Guide d intégration Tenrox-Salesforce. Janvier Tenrox. Tous droits réservés.

Installation DNS, AD, DHCP

FileMaker Pro 13. Utilisation d une Connexion Bureau à distance avec FileMaker Pro 13

Notes de cours : bases de données distribuées et repliquées

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

Rapport de certification

Sécurité Informatique. Description. Prérequis. Un petit test avant de commencer s embourber

Manuel Utilisateur. Boticely

Table des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Manuel d installation de l application Dimona New via SMS

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

ht t p: // w w w.m e di al o gis.c om E - Ma i l : m ed i a l og i m e di a l o g i s. c om Envoi des SMS

Les cahiers pratiques de Anonymat.org. SocksCap32. Edition du 20 Octobre 2000

Déploiement de SAS Foundation

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

Transcription:

Introduction Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa www.degenio.com Novembre 2008 Forms 10g permet l utilisation du JAVA côté client et côté application serveur. L utilisation du JAVA au niveau serveur n est pas aisée car on doit recourir à l utilisation d un bridge natif PLS/SQL vers JAVA au niveau de Oracle Forms. &'()* Java coté AS!"#$% Java coté client Java coté BD Dans ce tutoriel, on reprend un exemple décrit au niveau d OTN et concerne l utilisation d un web service commercial (StrikeIron.com) pour l envoi d un SMS. Le tutoriel Oracle peut être trouvé sur : http://www.oracle.com/technology/products/forms/htdocs/10gr2/howto/webservicefromforms /ws_10_1_3_from_forms.html Java avec Oracle Forms Pour la plupart des développeurs Oracle Forms, il existe un problème pour situer exactement le tier où l on peut utiliser une classe JAVA. Comme le montre la figure ci-dessus, on peut faire appel à une classe JAVA à tous les niveaux de l architecture Forms 9i-10g. Client Au niveau client, on fera appel aux classes JAVA grâce à l utilisation des PJC/Javabeans. L avantage de cette approche est que l exécution se fait au niveau du client et ainsi les ressources serveur seront disponibles pour d autres tâches. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 1

Serveur d applications Dans le cas où il est impossible de délocaliser les classes JAVA au niveau des clients, comme par exemple le cas des services web, on sera dans l obligation de fournir ces classes côté serveur d applications. Cette approche nécessite la mise en place de wrappers PL/SQL-JAVA au niveau du module Forms. Ceci permettra au module d accéder aux classes JAVA par l intermédiaire de packages-procédures PL/SQL. La délocalisation coté serveur d applications implique le lancement de la JVM au niveau de ce tier. L impact de cette approche est que le serveur sera très sollicité et de ce fait un réglage en termes de pooling JVM est requis. Dans ce tutoriel, on utilisera des classes JAVA côté serveur d applications. Serveur Bases de données Comme pour les procédures stockées, on sera aussi amené à créer des classes JAVA côté BD. Des appels similaires que pour les appels PL/SQL seront utilisés pour accéder aux fonctionnalités des classes stockées. Néanmoins, cette approche semble ne pas être très utilisée. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 2

Préparation des classes gestion des envois au niveau AS Dans la section suivante, on montre les étapes nécessaires pour préparer les classes (JAR) nécessaires pour l envoi d un SMS. Il faut noter qu un certain nombre de classes seront créées mais ne seront pas nécessaires pour cet exemple. Ceci est dû au fait que lors de la création, on fait appel au WSDL 1 du web service. On utilise l outil de développement JDeveloper fourni par Oracle. La version utilisée dans ce tutoriel est 10.1.3 1 WSDL : web service definition language. Permet de définir les méthodes nécessaires à mettre en œuvre pour exploiter ce web service. Cette étape est mise en place par le fournisseur de service. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 3

On choisira un nom d application adéquat. Dans notre cas, on a appelé cette application SMSApp. Au niveau de cette application et selon la terminologie JDeveloper, on créera un certain nombre de projets. Pour le moment, le projet qui contiendra les classes d envoi SMS sera appelé SMSGateway Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 4

Pour spécifier le type de projet, on changera quelques options au niveau des propriétés comme le montre la figure ci-dessus. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 5

Dans le cas qui nous concerne et spécialement en raison du fait que nous allons importer les classes créées au niveau de Forms developer, il est important de spécifier la JDK utilisée pour l exécution de nos FMX. Étant donné que la version actuelle de Forms est 10.1.2, la JDK à utiliser est 1.4 Nous allons ensuite définir le type de projet. Dans notre cas, c est l utilisation d un web service commercial fourni par www.strikeiron.com. On sélectionnera l option Business Tier et spécialement l option Web services- L item qui nous intéresse est web services proxy- Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 6

Dans l écran qui suit, on renseigne l url de description du service web. Dans notre cas, celleci est : http://ws.strikeiron.com/smsalerts4?wsdl JDeveloper va se connecter pour lire le document de description du service web et par la suite construira le modèle qui sera disponible au niveau de JDeveloper. Une classe ayant un préfixe SoapClient sera alors visible. Elle contient les méthodes nécessaires pour l envoi du SMS. Noter que l on peut aussi suivre la même approche pour un autre service commercial (www.esendex.com décrit dans OTN). Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 7

Pour tester notre setup, on peut lancer l envoi d un SMS à partir de JDeveloper. On apportera les modifications suivantes : Au niveau de la méthode main(), ajouter la section suivante. Note : pour tester votre envoi, il est nécessaire de créer un compte d essai sur www.strikeiron.com. Vous recevrez un mot de passe pour votre userid. Une fois que vous avez validé votre envoi et étant donné que l on utilisera seulement la méthode senmessage(), on effectuera une modification au niveau de la méthode d envoi. Ceci est nécessaire pour s authentifier au niveau du service web lorsqu on se connectera à partir de Forms. La dernière étape consiste à spécifier le déploiement de nos classes. On crée un modèle de déploiement de JAR comme le montre la figure suivante : Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 8

On veillera à inclure les options nécessaires et spécialement le répertoire de destination Afin d obtenir le JAR utilisable au niveau de Forms, on sélectionnera le modèle de déploiement. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 9

Le JAR qui a été généré, soit sms.jar sera mis dans le repertoire de notre installation fonctionnelle de Forms. Dans notre cas, c est /forms/java. Afin de permettre la visibilité de nos JAR et des classes nécessaires au moment du runtime, on devra modifier le classpath au niveau de default.env de Forms (ou de la configuration nommée s il en existe une). Exemple de classpath : Création du module Forms Étape 1 : création du module On devra créer un module simple au niveau de forms builder. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 10

Étape 2 : importation des classes d envoi de SMS Au niveau de builder, cliquer sur l option de menu, Importer classes JAVA tel que le montre l écran suivant. Dans l écran de sélection, on veillera à importer la classe adéquate. Pour se repérer, on comparera avec les classes disponibles au niveau de JDeveloper. Il est important de veiller à importer les méthodes et variables nécessaires. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 11

Si l on compare au niveau de JDeveloper, on voit que l on a besoin des objets LicenseInfo et SubscriptionInfoHolder. On répète alors la même procédure d importation pour ces deux classes. Pour les localiser plus facilement, on devra au préalable noter les packages de chaque classe et les sélectionner ensuite de l arbre d importation. Pour finaliser, on devra aussi importer deux autres classes nécessaires au niveau de notre module, à savoir String et Exception. L écran suivant montre l importation de la classe Exception. Suite à cette importation, on inspecte les unités de programmes de notre module. La classe qui nous intéresse et à savoir GlobalSMSProSoapClient contient l appel vers la méthode JAVA qui se charge de l envoi proprement dit. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 12

A partir du bouton, on peut inspecter le When-Validate-Item et on a : Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 13

Étape 3 : compilation et exécution Conclusion On a présenté dans ce tutoriel les étapes nécessaires pour l utilisation d une classe JAVA côté serveur d applications. Cette approche peut être étendu à d autres services web et la mise en place doit être conçue selon les spécifications du fournisseur de services web. Il est à noter que le fait d utiliser des classes Java coté serveur d applications implique une étude de performance selon l utilisation escomptée du service. En effet, à chaque fois qu un appel de classe est fait, une instance JVM sera lancée au niveau du serveur d applications. Dans le cas d un très grand nombre d appel, un engorgement des capacités processeur est à prévoir et ceci peut conduire à un étouffement du serveur. Dans ce cas précis, il est indiqué de faire un pooling JVM selon le nombre de connexions possibles. Les réglages peuvent être faits par l administrateur du serveur d applications. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 14

Annexe On peut se poser la question de savoir si l on peut éviter d utiliser cette classe JAVA et remplacer cette fonctionnalité par du PL/SQL. Évidemment, dans le cas des services web, on peut facilement utiliser une procédure ou fonction PL/SQL en remplacement de la méthodologie décrite ci-dessus. Il faut noter néanmoins que ce tutoriel décrit les étapes pour la mise en place d une classe JAVA et de ce fait la même technique peut être réutilisée dans les cas où il est impossible d utiliser du PL/SQL. On montre dans ce qui suit comment on peut envoyer un SMS en utilisant une procédure stockée PL/SQL (Utilisation protocole HTTP GET sur fournisseur SMS www.wadja.com). Noter que la même approche est décrite dans http://www.inside-oracleapex.com/2007/05/sending-sms-to-mobile-phone.html et que l utilisation du package UTL_HTTP facilite la mise en place de cette procédure. Le plus important est que la requête soumise au service soit écrite suivant les spécifications du fournisseur de service SMS. create or replace PROCEDURE sendsms ( precipient IN VARCHAR2, pbody IN VARCHAR2 ) IS sms_key constant varchar2(40) := 'DB09D6XXXXXX';--clé à obtenir sur wadja.com -- vrequest Utl_Http.req; vgettext VARCHAR2(500); vresponse Utl_Http.resp; vresponsetext VARCHAR2(2000); verrortext VARCHAR2(200); BEGIN ---------------------------------------------------------------------------- -- Build text for the get action. -- For a field description, see -- http://sms.wadja.com/partners/sms/default.aspx ---------------------------------------------------------------------------- vgettext := 'key=' Utl_Url.escape(sms_key, TRUE) CHR(38) 'msg=' Utl_Url.escape(pBody, TRUE) CHR(38) 'to=' Utl_Url.escape(pRecipient, TRUE) CHR(38) 'from=' Utl_Url.escape('wadja.com',TRUE) CHR(38) 'unicode=' Utl_Url.escape('no', TRUE) CHR(38) 'send=' Utl_Url.escape('1', TRUE); vrequest := Utl_Http.begin_request ( url => 'http://sms.wadja.com/partners/sms/default.aspx', method => 'GET' ); Utl_Http.set_header ( r => vrequest, name => 'Content-Type', value => 'application/x-www-form-urlencoded' ); Utl_Http.set_header ( r => vrequest, name => 'Content-Length', value => LENGTH(vGetText) ); Utl_Http.write_text ( r => vrequest, data => vgettext ); vresponse := Utl_Http.get_response(vRequest); IF vresponse.status_code = '200' THEN Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 15

Utl_Http.read_text(vResponse, vresponsetext); -- IF vresponsetext NOT LIKE '%batchid%' --A verifier avec specs wadja.com THEN verrortext := vresponsetext; END IF; ELSE verrortext := 'HTTP status: ' vresponse.status_code '- ' vresponse.reason_phrase; END IF; -- Utl_Http.end_response(vResponse); -- IF verrortext IS NOT NULL THEN RAISE_APPLICATION_ERROR(-20001, 'Sending SMS failed with ' verrortext); END IF; END sendsms; Et au niveau de la form, faire l appel en utilisant le numéro destinataire et texte du message. Hafed Benteftifa- Envoi SMS à partir de module Oracle Forms- 16