SMB

SMB2

SMB3

CIFS

Bibliothèque SMB pour dispositifs embarqués

YNQ™

YNQ™ est une solution client SMB et serveur SMB développées pour les systèmes embarqués non Windows afin d'assurer l'interopérabilité avec les machines basées sur Windows.

Vous pouvez télécharger le livre blanc sur YNQ™ ici.

Conçu pour s'intégrer dans pratiquement n'importe quel environnement, qu'il s'agisse d'un système d'exploitation, d'un CPU ou d'un compilateur, YNQ™ est entièrement conforme aux spécifications Microsoft SMB/SMB2/SMB3 et prend en charge les derniers dialectes SMB. Une fois connecté à un réseau Windows, l'appareil gagne en visibilité sur le réseau, permettant aux utilisateurs d'effectuer des fonctions de partage de fichiers.

En tant que première solution SMB embarquée au monde, cette pile SMB non GPL est peu encombrante, contrairement à la solution open source Samba, et actualisée pour répondre aux scénarios et aux exigences du marché actuel. YNQ™ fonctionne dans des millions d'appareils embarqués tels que des scanners, des imprimantes, des routeurs domestiques, des appareils mobiles, des appareils à rayons X, des appareils d'automatisation, des appareils automobiles, aérospatiaux et de défense et pratiquement tout appareil requis pour exécuter des fonctions complètes de partage de fichiers dans un environnement réseau Microsoft Windows.

YNQ™ peut également remplacer l'ancienne SMB1 par le dernier dialecte SMB des systèmes Windows existants tels que Win XP, Server 2000 et Server 2003.

Couches d'architecture YNQ™

Les composants indiqués en bleu sont indépendants du système, tandis que ceux en beige peuvent être modifiés pendant le portage ou l'intégration.

YNQ™ Core

Composants NQ

YNQ™ peut être considéré comme un serveur SMB, un client SMB ou un daemon NetBios.

NQ Components

Le partage de fichiers YNQ™ permet à plusieurs périphériques embarqués de naviguer à distance dans les dossiers partagés SMB et mutuellement de lire, écrire, modifier, copier, supprimer et mettre à jour les fichiers. Toutes les opérations exécutées sans qu'il soit nécessaire de transférer l'intégralité du fichier vers ou depuis le disque local ou la mémoire de l'appareil.

YNQ™ a été initialement lancé en 1999 sous le nom de CIFS NQ™. Depuis, il a évolué parallèlement à l'évaluation en protocole SMB. En 2014, CIFS NQ a été rebaptisé YNQ™.

La dernière version 2.00 de YNQ™ est maintenant disponible pour l'intégration. Cette version prend en charge SMB 3.1.1, qui apporte une protection plus sophistiquée grâce aux dernières améliorations telles que Pre Logon Integrity.

L'acquisition de la pile réseau commerciale, non GPL, YNQ™, permet à nos clients de gagner du temps et de faire des économies de coûts R&D et de mettre l'accent sur leur technologie principale.

 

Applications YNQ™

Marchés YNQ™

  • Appareils grand public
  • Entreprises
  • Médical
  • Automatisation industrielle
  • Aérospatiale et défense
  • Appareils intelligents

OS YNQ™ cible

  • VxWorks
  • Linux
  • Integrity
  • Windows
  • ThreadX
  • Nucleus
  • iOS
  • Android
  • Itron
  • QNX
  • Tout OS sur demande

Éléments-clés YNQ™

  • Bibliothèque hautement portable vers n'importe quelle plate-forme
  • Indépendant du matériel
    – fonctionne sur n'importe quel processeur
  • Petite empreinte
  • Performances rapides
  • Hautement personnalisable
  • L'implémentation CIFS / SMB la plus complètesur
    le marché
  • Code source ANSI C

Exemples de code YNQ™

Montage


// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\192.168.19.1\\sharedFolder", 1);
 

Ouverture, lecture, écriture et suppression de fichier


// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\192.168.19.1\\sharedFolder", 1);    
// Create a file on a remote share
NQ_HANDLE fileHandle = ccCreateFileA("\\mountPoint\\file.txt",
                                FILE_AM_WRITE,
                                FILE_SM_EXCLUSIVE,
                                FILE_LCL_UNKNOWN,
                                FALSE,
                                0,
                                FILE_CA_CREATE,
                                FILE_OA_FAIL
                                );
NQ_BYTE data[DATA_SIZE];
NQ_UINT dataSize = DATA_SIZE;
NQ_UINT writtenSize, readSize;
// Write to remote file 
ccWriteFile(fileHandle, data, dataSize, &writtenSize);
// Read from a remote file 
ccReadFile(fileHandle, data, dataSize, &readSize);
// Close file handle 
ccCloseHandle(fileHandle);
// Delete a file on a remote share
ccDeleteFileA("\\mountPoint\\file.txt");
 

Suppression de fichier par nom


// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\192.168.19.1\\sharedFolder", 1);
// Delete a file on a remote share
ccDeleteFileA("\\mountPoint\\file.txt");
 

Répertoire de navigation


// Mount remote share using credentials
udSetCredentials("userName", "password", "domain");
nqAddMountA("\\mountPoint", "\\\\192.168.19.1\\sharedFolder", 1);    
// Open a directory on remote share
FindFileDataA_t fileData;
NQ_HANDLE dirHandle = ccFindFirstFileA("\\\\192.168. 19.1\\sharedFolder\\*", &fileData, 0);
if (dirHandle != NULL)
{
    // Get next file in the directory
    while (ccFindNextFileA(dirHandle, &fileData))
    {
        printf("Filename: %s, fileSize:%u \n", fileData.fileName, fileData.allocationSizeLow);
    }
    // Close directory handle
    ccFindClose(dirHandle);
}
 

Visuality Systems a développé un produit basé sur Java. JCIFS est une solution Java SMB qui prend en charge SMB1 sans prise en charge supplémentaire dans les protocoles SMB2 ou SMB3. La dernière mise à jour de JCIFS date de 2014 et le code de Visuality Systems SMB écrit en Java est donc une bonne alternative pour le JCIFS open source.