Configuration du module de données DataSnap
Remonter à Création d'applications multiniveaux - Index
Le module DataSnap se compose d'au moins trois composants qui peuvent être présents dans un descendant de la classe TDataModule :
- Un composant TDSServer qui gère la création et le cycle de vie des transports et des classes serveur.
- Un ou plusieurs composants TDSServerClass qui peuvent être associés au même serveur DataSnap.
- Au moins un protocole de transport, soit TDSTCPServerTransport soit TDSHTTPService.
TDSServerClass est un composant qui peut être utilisé pour spécifier une classe côté serveur avec des méthodes publiées pouvant être appelées à partir d'un client distant, en utilisant l'invocation de méthode dynamique. Le cycle de vie est une propriété importante. Il est possible de spécifier ici la durée de conservation en mémoire d'une instance d'une invocation de méthode distante : invocation, session et serveur. La valeur invocation détermine l'objet invoqué à détruire immédiatement après l'exécution de la méthode. L'invocation suivante utilisera une nouvelle instance d'objet. Tous les champs perdront leurs modifications de l'appel précédent. La valeur session détermine l'objet à réutiliser entre différentes invocations, mais il sera détruit à la fermeture de la connexion. Pour la valeur session, l'instance d'objet sera détruite à la fermeture du serveur DataSnap.
Le protocole de transport peut être, soit basé sur TCP (TDSTCPServerTransport), soit HTTP (TDSHTTPService). Les paramètres spécifiques à la communication (tels que le port et les filtres) peuvent être définis ici. Les deux composants peuvent être liés au composant TDSServer, mais le deuxième peut agir comme un tunnel et établir la connexion à un serveur DataSnap distant.
Le composant HTTP offre davantage que la fonctionnalité de communication. Il peut permettre l'invocation de méthode depuis un client via un navigateur en utilisant le protocole REST ou un protocole propriétaire basé sur JSON. Si la requête HTTP nécessite une authentification, le composant HTTP peut être utilisé avec un composant gestionnaire d'authentification implémenté par TDSHTTPServiceAuthenticationManager.