top of page

Technology

I’m a paragraph . Double click here or click Edit Text to add some text of your own or to change the font. Tell your visitors a bit about your services.

Advantage of Naef

  1. Many actual usage

    • More than 15 years of use for bussiness operation of wide area ethernet service of Japanese telecom operators

    • More than 5 years of actual usage in bussiness operation of the VM and tenants slice in Japanese data center

    • etc

  2. Multivendor , multi protocol and multi service support

  3. openNaEF let you express all kinds of network topology

  4. openNaEF can schedule a change in the network configuration and makes you design in accordance with the schedule

  5. openNaEF is able to discover the difference between  the current reality of the network and the planned network configuration in accordance with schedule .

  6. openNaEF will support the real-time control of network configuration such like SDN and the job-based changes of network configuration.

OPEN

NETWORK

A*

Engineering

Framework

Technical features of NaEF

1.Sophisticated model for the network topology representation

2.Various knowledge

  1.Node-knowledge

  2.Vendor-knowledge

  3.Operation-knowledge

  4.Command-knowledge

  5.Discovery-knowledge

3.Capability of time axis management

It is possible to have a two-dimensional time axis for NaEF Object Field

•  The field which have a one-dimensional time axis (Version axis) can be, retrieved by specifying a version.

•  The field which have the two-dimensional time axis (Version axis × Schedule axis) can be retrieved  by specifying the version or/and date and time . 

2axis Time-series

Database

テキストです。ここをクリックし「テキストを編集」を選択して編集してください。「テキスト設定」からフォントや文字サイズ、文字色などを変更することもできます。

OpenNaEFのページは工事中です。

テストしてますテストしてます。テスト・テスト。

It's fine today. Have you ever seen the sky? Sunny.

Nice to meet you. I'm fine. How do you do?

​これは試験文章です。

MVO

MVO = Multiple Versioning Object

  • オブジェクトデータベースであり、Java 言語から POJO のように簡単に永続化オブジェクトを管理できる

  • 日時とともに状態が変化するオブジェクトを自然に扱うことができる

  • 変化をトランザクショナルに管理できる

  • 複数のデータベースインスタンス間でトランザクションを実施可能 (分散トランザクション)

  • データベースのリアルタイム複製が可能

MVO Database Engine 概要

  • Object Database

    • Java のオブジェクトを透過的に永続化できる

  • O/R Mapper のような余計な仕組みが一切不要

  • Time Engineering Support

    • オブジェクトに履歴 (version) を持たせることができる。

    • オブジェクトにスケジュール (time) を持たせることができる。

    • 任意のバージョン、任意のスケジュール時点のオブジェクト状態を取り出すことができる。

  • Transaction Support

    • オブジェクトに対する変更をトランザクショナルに処理可能

    • 複数のデータベースインスタンス間での分散トランザクションをサポート可能 (2PC)

  • High Reliability

    • Object Database を複数箇所にリアルタイムで複製可能

MVO の時系列管理方式

  • 時系列管理したい対象を MVO Entitiy として定義する

  • MVO Entity に MVO Field を与える

    • MVO Field は UML でいう関連/集約

  • MVO Field に時間軸を持たせることができる

    • 1次元時間軸 (Version 軸) を持つ MVO Field は、バージョンを指定して内容を取り出せる

    • 2次元時間軸 (Version 軸× Schedule 軸)を持つ MVO Field は、バージョンないし日時を指定して内容を取り出せる

​​

  • MVO は関連をスケジュールに基づき操作するエンジンである

MVO トランザクション

  • アイソレーションレベルは “Serializable”

    • 変更不可

  • 2 つのトランザクションモードをサポート

    • 更新トランザクション (read write transaction)

      • データベースインスタンスで同時に 1 スレッドだけ実施される

    • 参照トランザクション (read only transaction)

      • データベースインスタンスで同時に複数スレッド実施される

  • Global Transaction

    • Transaction Coordinator が必要。(標準添付)

    • Global Transaction を宣言すると、分散トランザクションが開始される

    • Global Transaction は関係する全データベースインスタンス上で同時に 1 スレッドのみ実施される

      • アプリケーションのバグ等により Global Transaction 処理にデッドロックが発生すると、全データベースインスタンスが事実上停止する。

スケジュールの競合

  • Overwrite モードと not overwrite モード

    • 指定されたスケジュールと conflict を起こすスケジュールが存在したときの振る舞いを規定

    • スケジュールが重複しても TEF は受け入れる

  • スケジュール重複チェックはアプリケーションの仕事

  • Overwrite モード

    • 指定されたスケジュールで、conflict を起こすスケジュールを上書き

  • Not overwrite モード

    • Conflictを起こすスケジュールを変えない

  • MVO は Overwrite モードのみサポート

TEF

TEF = Time Engineering Framework とは、MVO Database Engine 上に構築された、時系列管理システムを構築しやすくするための汎用的なアプリケーションフレームワーク。Logic/Shell/HTTP Plugin インターフェースを持ち、動的更新可能。

TEF のメリット

  • MVO 上に構築されている

    • 時系列管理システムを容易に構築可能

  • 開発生産性が高い

    • MVO は Object Database である = 永続化のための特別な仕組みや文法、非本質的な手続きが一切不要

    • Java の言語仕様を活用し、Java の生産性の高さを引き出す

    • 標準で shell/HTTP プラグインを持ち、アプリケーションを短時間で構築可能

  • 連続運用能力が高い

    • 動的に差し替え可能なプラグインをサポート、無停止で機能の変更や追加が可能

  • 障害追跡能力がきわめて高い

    • あらゆる変更をバージョンとして保持、ログとあわせて解析することで、問題が発生したときに原因を 100% 追跡可能

    • 100% の障害再現性

    • RDBMS はもとより、他の Object Database にも存在しないメリット

​更新可能なプラグイン

  • 3 種類のプラグインをサポート

    • どのプラグインも動的に差し替え可能

  • Logic Plugin

    • 動的に差し替え可能なロジックライブラリ

    • サーバを停止せずに機能の追加変更が可能

  • インターフェースの追加および変更は不可、インターフェースの実装のみ更新可能

  • Shell Plugin

    • telnet を用いたコマンドラインインターフェースを実装するためのプラグインフレームワーク

    • TEF の機能を利用するコマンドを簡単に記述できる

  • HTTP Plugin

    • HTTP リクエストを処理するためのプラグインフレームワーク

    • TEF の機能を利用する WEB アプリケーションを簡単に記述でき

    • Servlet 仕様には対応せず (独自仕様)

  • Servlet エンジンと連携することは可能

NaEF

TEF 上にネットワーク管理アプリを迅速に開発できる、ネットワークの様々なロジックを実装したライブラリ。

 

 

 

​​

NAEF Concept

  • ネットワークを素直にモデル化

    • プロトコルモデルをそのままモデルとして表現.

  • 特殊構成 (Q-in-Q や Virtual Router) も素直に表現.

    • プロトコルを追加するのが容易.

  • ネットワークを高度に抽象化

    • あらゆるプロトコルモデルに共通する特徴を抽出して 4 パターンですべてのネットワークを表現.

  • 新プロトコルも, 既存プロトコルと同じ方法で扱える.

  • 素直なモデル化と高度な抽象化を同時に実現している点に NAEF の特徴がある.

超基本要素

  • NAEF には言ってしまえば 6 つしか要素がない.

  • Node

    • Port を束ねる存在.

    • 厳密な定義としては「1つのConfigurationで制御される全体」となる.

  • Port (If)

    • プロコトルのエンドポイント.

    • 物理ポート, 論理ポートを区別しない.

  • Link

    • 2 つの Port 間を接続する存在.

  • Network

    • Port, Link を束ねてネットワーク全体を表現する存在.

  • Pool (Optional)

    • Network のグループ. ID 管理を行う. インベントリ管理用.

バリエーション

  • Node

    • 普通の Node

    • Virtual Node (VM, VR=Virtual Router etc.)

    • Redundant Node (Cluster)

  • Port

    • 物理ポート (eth-if, atm-if, pos-if etc.)

    • 論理ポート (lag-if, atm-pvc-if, ip-if, vpls-if, vlan-if etc.)

  • Link

    • 物理リンク (eth-link, atm-link etc.)

    • 論理リンク (eth-lag-link, vlan-link etc.) ※あまり使わない

  • Network

    • VLAN, VPLS, VRF, PseudoWire, IP-Subnet

  • Pool

    • VLAN Pool, VPLS Pool, VRF Pool, PseudoWire Pool

組み合わせ​

  • 仮想ノード対応のために特別な組み合わせ方法を追加.

    • Alias

  • 仮想ノードが持つポートが, 実ノードのあるポートそのものである場合に, 仮想ノード側に Alias を作成し実ポートと接続することで, その関係を表現する.

    • Ex. Fortigate 上の仮想 FW は、親ノードが持つイーサネットポートや VLAN サブインターフェースを, 自身のポートとして管理することができる. この場合, NAEF 上は親ノードの持つ Port に対応する Alias を仮想ノード上に作成することになる.

  • 動作上の特徴

    • Alias に対する set/get 等の操作は実ポートに対するものとして扱われる.

    • Alias を削除しても実ポートは削除されない.

    • 実ポートにつき, それを参照する Alias が存在する限り実ポートは削除できない.

  • 組み合わせ方法は 4 種類

    • Cross Connection

  • 横に連結する.

    • Ex. イーサネットポートと VLAN I/F を Untagged VLAN として接続する.

  • プロトコルエンドポイントと出口ポートを接続する一般的な方法.

    • Containment

  • 包含する.

    • Ex. イーサネットポートを LAG にまとめる.

  • LAG (APS) しか使っていない.

    • Stack

  • 重ねる.

    • Ex. イーサネットポート上に VLAN I/F を Tagged VLAN として重ねる.

  • プロトコル階層を作る最も一般的な方法.

    • Owner (Children)

  • 依存関係を作る. (Stack の強い表現)

    • Ex. イーサネットポート上に VLAN I/F (サブインターフェース) を作る.

  • 依存関係は非常に強い制約となるため, 乱用は危険.

  • 仮想ノード対応のために特別な組み合わせ方法を追加.

    • Alias

  • 仮想ノードが持つポートが, 実ノードのあるポートそのものである場合に, 仮想ノード側に Alias を作成し実ポートと接続することで, その関係を表現する.

    • Ex. Fortigate 上の仮想 FW は、親ノードが持つイーサネットポートや VLAN サブインターフェースを, 自身のポートとして管理することができる. この場合, NAEF 上は親ノードの持つ Port に対応する Alias を仮想ノード上に作成することになる.

  • 動作上の特徴

    • Alias に対する set/get 等の操作は実ポートに対するものとして扱われる.

    • Alias を削除しても実ポートは削除されない.

    • 実ポートにつき, それを参照する Alias が存在する限り実ポートは削除できない.

Build a miniture model of

your infrastracture inside NaEF

テキストです。ここをクリックし「テキストを編集」を選択して編集してください。「テキスト設定」からフォントや文字サイズ、文字色などを変更することもできます。

OpenNaEFのページは工事中です。

テストしてますテストしてます。テスト・テスト。

It's fine today. Have you ever seen the sky? Sunny.

Nice to meet you. I'm fine. How do you do?

​これは試験文章です。

bottom of page