SMB

SMB2

SMB3

CIFS

YNQ™ SMB Library For Embedded Devices

YNQ™

YNQ™は、Visuality Systemsの組込み向けSMB実装です。非Windows系組込みシステムにWindowsマシンとの相互接続性をもたせることが可能な、SMBのサーバ・クライアントソリューションです。YNQ™のファイル共有機能により、複数の組込みデバイス間で、共有フォルダをリモートでブラウズできるようになります。また、読み込み、書き込み、編集、コピー、削除といったファイル操作により、相互にファイルをアップデートすることができます。全てのファイル操作で、ファイルをデバイスのローカルディスクやメモリーに移動する必要はありません。

Visuality Systemsの組込み向けSMB実装は、1999年の最初の製品リリース時には「CIFS NQ™」と呼ばれていました。その後2014年に「NQE™」と改名され、2019年にはNQ製品ファミリーの新世代として「YNQ™」が、アジャイル開発手法の下で開発、リリースされました。

YNQ™ のホワイトペーパーは、 こちら からダウンロードできます。

ネイティブでSMBでの通信が可能なWindowsやMacintoshといったPCやサーバは、SMBによる接続性からの恩恵を受けている一方、組込み業界の事情はより複雑です。YNQ™があれば、Linux/Unix、またはVxWorks、ThreadX、IntegrityやQNXといった様々なリアルタイムOS(RTOS)や、iOS、Windows CEなどのオペレーティングシステム上で開発された組込みデバイスでも、Windowsネットワークに接続されると可視化され、ユーザーはSMBでのファイル共有が可能になります。

OS、CPU、コンパイラ問わず、どんな環境でもインテグレーション可能な柔軟性とともに設計されたYNQ™は、MicrosoftのSMB/SMB2/SMB3の仕様に完全準拠し、最新のSMBバージョンに対応しています。1998年の設立当初から、Visuality SystemsはMicrosoftと緊密に連携し、弊社のSMBソリューションが常に最新のSMB仕様に追随し、今日の市場要件を満たしていることをお客様に約束しています。

弊社のGPLフリーのSMBスタックは、オープンソースのSambaとは対照的に、フットプリントが小さく、また現在の市場環境や要求を満たすよう常にアップデートされています。Visuality Systemsの組込み向けSMBソリューションYNQ™は、商用SMB実装製品市場において、シェア90%以上を誇る最も信頼されたブランドです。YNQ™は、スキャナ、プリンター、家庭用ルータ、モバイルデバイス、X線機械、オートメーションデバイス、車載機器、航空宇宙防衛機器といった、MicrosoftのWindowsネットワーク環境において完全なファイル共有機能を必要とする、あらゆる組込みデバイスに搭載されています。

YNQ™製品とコンポーネント

モジュラーライブラリであるYNQ™は、4つの製品から構成されています:

  1. Pure Client – 基本的なSMBクライアント機能
  2. Corporate Client – 企業のActive Directory (AD)へのマシン登録機能の追加
  3. Standalone Server – 基本的なSMBサーバ機能
  4. Corporate Server – 企業のActive Directory (AD)へのサーバ登録機能の追加.

YNQ™はSMBサーバ、SMBクライアント、またはNetBIOSデーモンとして表示されています。

YNQ™のアーキテクチャレイヤー

YNQ™は最新のソフトウェア構成をとり、3つのモジュールに分かれています:

  • High: API/プロトコルレベル– APIs (NQ)、サーバ機能、クライアント機能、NetBIOS
  • Medium: サービスレベル – 認証機能、共通機能、ネットワーク
  • Low: OSレベル– システム、ユーザー定義、ドライバ

Architecture LayersLevel1とLevel2のコンポーネントはシステム非依存ですが、Level3のコンポーネントは移植・実装の際に変更が可能です。

YNQ™は、お客様システムへのインテグレーションがすぐに可能です。完全商用GPLフリーのYNQ™ネットワークスタックがあれば、お客様は貴重なR&Dの時間とお金を節約し、中核となる技術にフォーカスすることが可能です。

YNQ™のアプリケーション

  • スキャナ、MFP
  • ルータとゲートウェイ
  • テレビ、セットトップボックス
  • カメラ
  • メディアプレーヤー
  • スマートフォン、タブレット
  • 産業用ロボット
  • 航空機
  • 医療機器

YNQ™のマーケット

  • コンシューマー向け機器
  • 法人向け機器
  • 医療用機器
  • 産業自動化製品(FA製品)
  • 航空宇宙及び防衛機器
  • スマートデバイス

YNQ™の対応OS

  • VxWorks
  • Linux
  • Integrity
  • Windows
  • ThreadX
  • Nucleus
  • iOS
  • Android
  • Itron
  • QNX
  • 他のOS応相談

YNQ™ のハイライト

  • プラットフォームを選ばない高い移植性
  • ハードウェア非依存 - どんなプロセッサーでも動作可能
  • 小さいフットプリント
  • 高パフォーマンス
  • カスタマイズが容易
  • マーケットで最も完成度の高いCIFS/SMB実装
  • ANSI規格C言語のソースコード

準拠と接続

YNQ™ は、Microsoft SMB/SMB2/SMB3仕様に完全準拠。NTLM 0.12から3.1.1までのすべてのSMBバージョンに対応済みです。Microsoft、Apple Macintosh、Sambaのあらゆるクライアントバージョンからの接続性を保証します。

YNQ™ のソースコード例

Mount


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

Open, read, write and delete file


// 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");
 

Delete file by name


// 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");
 

Browsing directory


// 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 developed a Java based product. JCIFS is a Java SMB solution that support SMB1 with no further support in SMB2 or SMB3 protocols. JCIFS latest update was in 2014 and therefore the Visuality Systems SMB code written in Java is a good alternative for the open source JCIFS.

Follow Us

News

2019年5月6日

Visuality Systemsは、組込みシステム向けNQ製品の新バージョン「YNQ™」をリリースしました。アジャイル手法による開発及びコードのモジュール化を導入し、お客様製品の市場に出るまでの時間を短縮。どんな組込みデバイスにもすぐにインテグレーション可能です。

2019年3月8日

Visuality Systemsは、JavaクライアントSMBライブラリー「jNQ」の最新バージョン「1.0.2-br-5」をリリースしました。
本バージョンは、バグ修正に加え、多くの新機能(IPv6、DNS及びNetBIOSトラフィックを含むインターナルパケットキャプチャ機能や、マウントコマンドの向上、パターンマッチングによるディレクトリ検索等)が搭載されています。

2018年11月6日

Visuality Systemsは, 2019年1月30日にIsraelのTel Avivにある、Sheraton Hotelで開催される「SDC EMEA カンファレンス」にスポンサーとして参加します。
本イベントは、SMB相互テストの場として1月28日~31日に行われる「SMB Plugfest」と同時開催となります。
詳細はこちらをご覧ください

 2018年8月12日

Windows XPとWindows Server 2003 でSMBv1が使えない問題を抱えたユーザーは、「NQE™サーバー」を使用し、

古いSMBv1スタックを暗号機能のあるSMBv3の最新バージョンに、シームレスにアップグレードすることが可能です。

2018年7月31日Visuality Systemsは,「jNQ™ 1.0.1」を正式リリースしました。

今までのSMB3.1.1のNQ Javaライブラリーに、セキュリティ機能の追加及びパフォーマンスの向上を行いました。