Exécution locale et distante avec un même modèle généré
Statut documentaire : architecture — voir Maturité et preuves.
L'architecture des bindings vise à préserver le même modèle objet .NET généré pour les topologies Runtime locales et distantes.
application C# / F#
|
v
API .NET générée
|
v
IClientRuntime
| |
v v
adaptateur natif adaptateur RPC
| |
identité ABI identité ABI via RPC
| |
+------ Runtime logiCells ------+
Ce qui reste identique
La surface générée doit préserver :
- les noms publics des types et membres ;
- la sémantique des méthodes/propriétés ;
- les descripteurs générés stables
TypeId/MethodId; - la sémantique des références d'objets ;
- des valeurs .NET normales pour chaînes, nombres, tableaux et objets générés.
Ce qui dépend de la topologie
Le transport prend en charge les mécanismes spécifiques à la topologie.
Un adaptateur local convertit les appels générés vers l'ABI native et gère handles et buffers natifs. Un adaptateur distant sérialise la même identité d'invocation dans les requêtes RPC, résout les références d'objets distants et applique les notions de session, timeout, corrélation et release.
La latence modifie aussi la forme efficace des appels. Une application distante doit privilégier opérations grossières, projections et batching plutôt qu'un grand nombre d'accès fins à des propriétés.
Durée de vie des objets
Les objets générés locaux peuvent encapsuler des handles natifs opaques. Les objets générés distants portent à la place un lease InstanceId associé à des métadonnées de type et à une session.
Les deux doivent se projeter vers une sémantique déterministe de disposal/release en .NET. Le code applicatif ne devrait pas avoir à distinguer le pointeur natif de l'identifiant d'instance distant.
Négociation des capacités
Les endpoints distants exposent les versions ABI/runtime et la discovery des capacités. Les clients générés doivent exploiter ces informations pour échouer tôt lorsqu'un membre ou un mode n'est pas disponible.
Statut
Les sources du générateur et du RPC fournies supportent directement cette architecture. La parité comportementale complète dépend encore des capacités, donc le modèle de programmation reste documenté en architecture jusqu'à certification des mêmes tests de contrat généré sur les deux adaptateurs.