Section courante

A propos

Section administrative du site

Les premiers pas

Il n'est pas forcément difficile d'étendre vos programmes pour qu'ils soient compatibles NetWare. Si vous utilisez un compilateur standard et avez accès à un réseau Novell NetWare (3.x ou personnel), vous devriez sérieusement envisager de rendre votre programme compatible NetWare.

Les réseaux ne sont plus hors de portée de la programmation «normale», car même les applications non réseau doivent d'une certaine manière être «conscientes du réseau». Cela signifie que les fichiers doivent être utilisés en sachant que d'autres programmes peuvent également les utiliser en même temps, car le fichier peut être situé, non pas sur le disque dur de l'utilisateur, mais sur un serveur de fichiers. Ces considérations ne sont pas sans rappeler celles d'un environnement multitâche, où les fichiers doivent être accessibles de la même manière.

Il a existé des millions de machines NetWare, et avec les bibliothèques contenues dans NwTP, étant destinées aux programmeurs Borland Pascal/Turbo Pascal, vous pourrez programmer sur n'importe quelle machine exécutant NetWare, saisir du code NetWare et l'exécuter. Le NwTP vous permet d'utiliser une grande partie des fonctionnalités qui peuvent être obtenues par les utilitaires NetWare. Malheureusement, Novell est connu pour sa mauvaise documentation des appels réseau, ou pour laisser les appels entièrement «non documentés». Même les programmeurs utilisant le C Client SDK de Novell en souffrent. De nombreuses fonctions dans les unités fournies ne sont pas officiellement documentées, les informations sont considérées comme «propriétaires».

Bien qu'il existe de nombreux TPU NetWare dans le domaine public, ceux-ci se limitent généralement aux fonctions NetWare 2.x et ne possèdent aucun code source, aucun exemple ni aucune documentation, ce qui les rend inutiles. Cela oblige le programmeur moyen (non professionnel) à réinventer la roue lorsqu'il souhaite créer un programme compatible NetWare. Le NwTP tente de combler cette lacune en vous fournissant une collection des fonctions NetWare les plus importantes, avec des exemples et une documentation complète.

Mécanismes sous-jacents

Les unités de NwTP peuvent être considérées comme une série de «boîtes noires», chaque boîte fournissant un ensemble de fonctions fournissant des services connexes d'un certain type (par exemple, une fonction traitant de la reliure). Cette section décrit le mécanisme sous-jacent que l'interpréteur de commande utilise pour obtenir la fonctionnalité demandée par une fonction, c'est-à-dire que cette section décrit comment les fonctions de ces unités sont implémentées.

Disposition générique des fonctions Pascal fournies par NwTP :

  1. Function Foo_Service(Request_Parameters,Var Reply_Paramter):Boolean;Begin
  2.  ...
  3. End;

Exemple de l'interface ASM fournie par NETX.EXE.

INT $21,
 AX=$F216
 ES:DI -> REQUEST BUFFER (tampon de requête)
           couche 0 : Len:Word
                     2 Subfunction:Byte
                     3 Request_Paramters:[Param_Size]
 ES:SI -> REPLY BUFFER (Tampon de réponse)
           couche 0 : Reply_Parameters:[Param_Size]
 CX=SizeOf(REQUEST BUFFER)
 DX=SizeOf(REPLY BUFFER)
Elle retournera : AL=Code d'achèvement, REPLY BUFFER rempli

L'interpréteur de commande (NETX ou VLM) fournit essentiellement l'interface (Application Programming Interface ou API) à toutes les fonctionnalités que vous souhaitez inclure dans vos programmes. NwTP utilise l'API de base du langage de programmation assembleur Novell pour accéder aux fonctions fournies par l'interpréteur de commande. (c'est-à-dire que le corps des fonctions fournies est implémenté à l'aide d'interruptions telles que la fonction INT $21 $2Fxx). Une requête est définie comme une interruption de l'API Netware. Chaque fois qu'une requête est effectuée, les paramètres appropriés à la requête sont transmis au gestionnaire d'interruption (l'interpréteur de commande).

L'image suivante donnent une vue simplifiée du réseau pour vous donner une idée des mécanismes sous-jacents :

Mécanisme d'implémentation de l'API : Notez qu'en ce qui concerne NwTP, le fait qu'il soit utilisé par-dessus NETX.EXE ou les VLM n'a fondamentalement aucune importance.

Une application moyenne, telle que celle que vous avez écrite en Pascal, émet des appels à DOS (très probablement via l'interruption 21h). Notez que vous n'avez pas besoin de savoir que votre programme effectue un appel ; les interruptions sont généralement masquées par des constructions de langage supérieures. Lorsqu'il est appelé, DOS s'occupe du service demandé. Lorsqu'un interpréteur de commande réseau est chargé, les appels DOS sont interceptés et pris en charge par l'interpréteur de commande si la demande est transmise à DOS. (Notez que les VLM traitent les demandes réseau d'une manière différente, mais dans cette discussion, ces différences sont ignorées).

Si la demande peut être traitée par l'interpréteur de commande (c'est-à-dire que la demande concerne des données disponibles localement), il transmettra une réponse (par exemple les informations de la demande) au programme demandeur. Si la demande ne peut pas être traitée localement (c'est-à-dire que les informations de la demande ne sont disponibles que sur un serveur de fichiers), la demande est reconditionnée dans un paquet de données et transférée au serveur de fichiers via les cartes d'interface réseau (NIC) et les câbles les reliant. Le serveur reçoit la requête, exécute l'opération demandée et envoie un paquet de réponse au demandeur de l'interpréteur de commande. Le demandeur de l'interpréteur de commande transmet à son tour la réponse au programme demandeur. Notez que les informations contenues dans un paquet de réponse peuvent simplement indiquer si la fonction demandée a été exécutée avec succès ou non.

Le fait qu'un certain appel soit traité par l'interpréteur de commande, DOS ou un serveur de fichiers est transparent pour le programme demandeur. Les unités NwTP forment une couche entre l'application et l'interpréteur de commande, vous fournissant une interface Pascal au lieu d'une collection d'appels système de bas niveau. Les unités NwTP et les exemples couvriront la plupart des problèmes de programmation devant être traités et les appels système pour développer des applications pour Novell NetWare 3.x. La plupart des appels fonctionneront également sur les versions NetWare supérieures ou égales à 2.15 révision C.

L'interface ne peut pas être utilisée uniquement pour les programmes clients (c'est-à-dire les postes de travail). Actuellement, la seule façon de programmer des processus serveur (NLM) est d'utiliser le SDK NLM de Novell.



Dernière mise à jour : Dimanche, le 9 juillet 2023