Configuration du module de données DataSnap
Remonter à Configuration du module de données
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 classe de méthodes serveur : 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 permet aussi l'invocation de méthode depuis un client via un navigateur en utilisant les protocoles REST et JSON.
Si les requêtes nécessitent une authentification, les deux composants peuvent être utilisés ensemble avec un composant gestionnaire d'authentification implémenté par Datasnap.DSAuth.TDSCustomAuthenticationManager, qui est défini par le biais de leur propriété AuthenticationManager. Ceci permet l'authentification, ainsi que l'autorisation, de toutes les invocations de méthode distante de l'utilisateur.