Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

Services Web

Sommaire

Ancre
Top_of_Service_htm
Top_of_Service_htm

Service

Définition
Un service Web est un composant applicatif accessible sur le Web par une interface standard en utilisant des protocoles de communication basés sur le XML indépendamment du système d'exploitation et des langages de programmation utilisés.
Le service Web met à disposition des fonctions (méthodes) sur un serveur HTTP.
Le client du service Web peut invoquer la méthode du serveur aussi simplement que s'il s'agissait d'une fonction locale. Il faut spécifier l'URL du service Web auquel on désire accéder, ainsi que les paramètres d'entrée de la méthode.
WebServiceDIva
WebServiceDiva est une méthode générique permettant d'exécuter une action sur le serveur Web. L'action correspond à un programme Diva. Celui-ci récupère les paramètres (généralement une chaîne <hmp>), effectue le traitement et renvoie un résultat.
Le service est exécuté par le serveur HTTP IIS de Microsoft.

Ancre
Top_of_Architecture_htm
Top_of_Architecture_htm

Architecture

...


Ancre
Top_of_DivaltoWebService_htm
Top_of_DivaltoWebService_htm

WebServiceDiva

WebServiceDiva est un service Web générique qui sert à lancer tous les services Web Diva. La page générique WebserviceDiva.asmx est hébergée sur le serveur IIS de Microsoft. Elle contient la méthode WebServiceDiva qui permet d'exécuter un programme Diva sur le serveur en lui passant des paramètres
Int WebServiceDiva(string action,string param,out string retour)

...


Il peut être appelé depuis un programme Diva et depuis n'importe quelle autre application cliente de services Web.
Il exécute le programme XWebServices.dhop
Remarque :
Pour l'appel d'un service Web Diva depuis un programme Diva il faut utiliser la fonction WebServiceDivaExecute.

Ancre
Top_of_XwebServices_htm
Top_of_XwebServices_htm

XwebServices

Le programme XwebServices.dhop est exécuté à chaque invocation d'un service Web Diva. C'est lui qui lance le programme Diva correspondant à l'action demandée.
Le programme de traitement de l'action est lancé par la fonction ProgramGoto. XwebServices.dhop lui envoie les paramètres par le tunnel.
Actions des services Web
Le paramètre <Action> permet de préciser l'action à exécuter pour ce message. Ce paramètre est obligatoirement une chaîne HMP dans laquelle le paramètre <ACTION> définit le traitement à effectuer. Il fait référence à une action décrite dans le fichier paramètres des actions. Ce fichier contient pour chaque action :

...


Voir également :
Rubrique "Harmony Markup Parameters HMP" de la documentation Xwin - Programmation.
Rubrique "Tunnels" de la documentation Xwin - Programmation.
Rubrique "ProgramCall" de la documentation Xwin - Programmation.

Ancre
Top_of_Service_Web_Diva_htm
Top_of_Service_Web_Diva_htm

Service Web Diva

Le service Web Diva est le programme chargé d'exécuter l'action demandée par le client du service Web.
Il récupère dans le tunnel par la fonction PingReceive les paramètres suivants :

...

Ancre
Top_of_Services_Web_residents_ht
Top_of_Services_Web_residents_ht

Services Web résidents

Principe
A partir de la version 6.3a d'Harmony, le système gère un pool de tâches pour l'exécution des services web. Ce pool permet de garder des tâches Harmony en attente et ainsi de réduire considérablement le temps d'exécution d'une requête.
Lors du premier appel à un service web, le programme XwebServices.dhop est chargé. Une fois le traitement de l'action effectué, le contrôle est rendu au programme XwebServices.dhop (par l'instruction ProgramGoto). Ce dernier se met alors en attente d'un appel de service web.
Lors de l'appel suivant à un service web, s'il existe une tâche disponible dans le pool, celle-ci est immédiatement activée.
Mise en oeuvre

...

Ancre
Top_of_Exemple_de_service_Web_Di
Top_of_Exemple_de_service_Web_Di

Exemple de service Web Diva

Bloc de code
;____________________________________________________________________
;Description :
; Service Web pour quantité en stock pour une référence article
;____________________________________________________________________ 
define MaVersion = "6.1 " 

module "pmstock.dhop" 
1 ParamEntree S
1 dos 3,0
1 ref 25
1 stock 12,D2 
main 
; récupération des paramètres d'entrée
PingReceive("WebServiceParameters",ParamEntree)
Dos = hmpseek(ParamEntree,"dos",998) ; Dossier par défaut 998
Ref = hmpseek(ParamEntree,"reference","") 

; calcul du stock
stock = interro_stock(dos,ref) 

; réponse
if IsProgramCalled = FALSE ; l'action est paramétrée Résidente 
 WebServiceReturn(stock,0)
 ProgramGoto("xwebservices.dhop")
endif 

Pong("WebServiceStatus",0) ; l'action n'est pas résidente
Pong("WebServiceResult",stock)
Pong("WebServiceVersion",MaVersion) 
programexit


Ancre
Top_of_Installation_du_serveur_W
Top_of_Installation_du_serveur_W

Installation du serveur Web


Les services Web Diva s'appuient sur la technologie .NET de Microsoft.
La mise en œuvre nécessite donc le serveur IIS (Internet Information Services) de Microsoft. Elle nécessite également l'installation du FrameWork .Net sur ce serveur.
Pour le détail de l'installation voir le chapitre « Installation Harmony Web » dans l'installation et paramétrage d'Harmony.

Ancre
Top_of_Client_Diva_d_un_service
Top_of_Client_Diva_d_un_service

Client Diva d'un service Web Diva


La fonction WebServiceDivaExecute permet d'exécuter un service Web Diva.
Elle comporte 4 paramètres :

...


Confidentialité
Les paramètres d'entrée et de retour peuvent être cryptés pour assurer la confidentialité des informations transmises.

Ancre
Top_of_Exemple_de_client_Diva_d
Top_of_Exemple_de_client_Diva_d

Exemple de client Diva d'un service Web Diva

Bloc de code
;____________________________________________________________________
;Description :
; Demande la quantité en stock pour une référence article à
; un service Web Diva
;____________________________________________________________________ 
1 Url S
1 St X
1 Retour S
1 Stock 12,D2 
main 
; Appel du service
Url = "http://www.divalto.fr/Ws/WebServiceDiva.asmx"
St = WebServiceDivaExecute(Url, \
"<action>Stock", \
"<dos>998<reference>ALB0001", \
Retour) 
; en cas d'erreur Retour contient le message
if St 
MessageBox(binhexa(stx(St)) & " " & Retour ," ")
else
Stock = Retour
endif
ProgramExit

...