Partager via


Langage XLANG/s

XLANG/s a été conçu pour utiliser des normes Internet telles que XML, XSD et WSDL (Web Services Description Language), et dispose d'une prise en charge intégrée permettant d'utiliser des messages et objets NET. XLANG/s peut être considéré comme un langage de messagerie comportant certaines des fonctionnalités d'expression de C#. Toutefois, le code n'est pas portable entre XLANG/s et C#.

XLANG/s favorise une séparation claire entre le processus et l'implémentation. Par exemple, le protocole ou processus d'entreprise est spécifié dans XLANG/s, et les aspects locaux de l'application, tels que l'accès aux bases de données, sont implémentés dans d'autres langages de programmation .NET tels que C# ou Visual Basic.NET.

La syntaxe d'expression ou d'assignation XLANG/s est modélisée après C#, et vous devez référencer la spécification C# pour obtenir la syntaxe exacte. XLANG/s définit un ensemble complet de constructions de haut niveau permettant de définir des processus d'entreprise. Bien que XLANG/s assure la prise en charge des types de données de bas niveau comme la chaîne et l’entier, les types de données de haut niveau sont également définis : messages, ports, corrélations et liens de service. Ces types de données sont utilisés pour définir rigoureusement la sémantique associée à un processus métier et sont complétés par des instructions de contrôle de processus telles que while ou scope.

Les instructions XLANG/s appartiennent généralement à l’une des deux catégories suivantes : les instructions simples qui agissent par elles-mêmes, telles que recevoir ou envoyer, et les instructions complexes qui contiennent ou regroupent des instructions simples ou d’autres instructions complexes, telles que scope, parallel et listen. Les sémantiques représentées dans XLANG/s sont une réflexion de celles définies dans la spécification BPEL4WS (Business Process Execution Language for Web Services) publiée par Microsoft, IBM et BEA pour la définition de la sémantique des processus d'entreprise.

La maîtrise des principales constructions de XLANG/s est facultative car elles sont créées par les diagrammes d'orchestration de dessin dans le Concepteur d'orchestration BizTalk. Le Concepteur d'orchestration est un outil graphique complet permettant de concevoir visuellement des processus d'entreprise. Il génère des fichiers XLANG/s qui ont une extension .odx et contiennent des informations visuelles supplémentaires dans leurs en-têtes, ainsi que des informations sur les attributs personnalisés dans leurs corps.

Notes

Le langage XLANG/s est propriétaire et n'est pas entièrement documenté. Cette section présente certaines parties de celui-ci pouvant s'avérer nécessaire lorsque vous développez vos orchestrations. La modification directe des fichiers .odx n'est pas prise en charge.

Programmes XLANG/s

Le programme XLANG/s le plus simple exige qu'un type de message soit défini afin de fournir à l'orchestration les données nécessaires pour démarrer. L'orchestration reçoit le message sur un port puis se termine. Le code suivant en est un exemple :

module HelloWorldApp  
{  
     private porttype ptPOReceive  
     {  
      oneway opPOReceive  
      {  
       HelloWorldApp.PurchaseOrder  
      }  
     }  
     private porttype ptPOSend  
     {  
      oneway opPOSend  
      {  
       HelloWorldApp.PurchaseOrder  
      }  
     }  
     private service  HelloWorld  
     {  
      port implements HelloWorldApp.ptPOReceive poPOReceive;  
      port uses HelloWorldApp.ptPOSend poPOSend;  
      message HelloWorldApp.PurchaseOrder msgPO;  
      body ()  
      {  
       activate receive (poPOReceive.opPOReceive, msgPO);  
       send (poPOSend.opPOSend, msgPO);  
       }  
     }  
}  

Dans le programme XLANG/s précédent, le module mot clé définit l’unité de compilations d’un programme XLANG/s. Tous les types utilisés dans le programme, tels que porttype, correlationsettype, servicelinktype et messagetype, sont délimités à ce niveau.

Un port est une construction que XLANG/s peut envoyer ou recevoir des messages vers ou depuis, et le port a un type défini appelé porttype. La construction porttype définit une collection d’opérations qui peuvent être utilisées sur le port. Ces opérations définissent un échange de message valide unique sur le port. Lors de la définition de constructions porttype, messagetype, servicelinktype ou correlationsettype , l’auteur d’un programme XLANG/s crée essentiellement des définitions de type de données complexes. Ces définitions présentent les mêmes avantages que les types de données complexes dans d’autres langages : elles font abstraction des notions incorporées dans le type de données à un niveau supérieur et permettent une réutilisation facile du type de données.

Le port ptPOReceive dans le module HelloWorldApp précédent est défini avec une opération de port de réception unidirectionnelle, opPOReceive. Le bloc HelloWorld de service définit l'implémentation réelle du processus et les variables utilisables, dont celles de port et de message. Les trois premières lignes de code de ce bloc définissent respectivement les variables de port poPOReceive et poPOSend et le message msgPO . Le corps contient le code décrivant les paramètres du service et du comportement d'exécution. Toutes les variables, à l'exception de celles définies avec un bloc d'étendues imbriquées, sont étendues à ce niveau. L’instruction receive, qui est une réception d’activation, reçoit le message msgPO du port poPOReceive.opPOReceive et crée une nouvelle instance de l’orchestration. Une fois le message reçu, l'instruction d'envoi dirige le message vers un port d'envoi. Dans les deux déclarations de port du code précédent, poPOReceive utilise le modificateur implémente, tandis que poPOSend utilise le modificateur uses. Le modificateur d'implémentation indique au runtime qu'il recevra un message sur ce port. Le modificateur d'utilisation indique au runtime qu'il enverra un message sur ce port.

Dans cette section

Voir aussi

À propos du moteur d’orchestration BizTalk