JiST/SWANS勉強会- 紹介とその他もろもろ -
JiST/SWANSとは?• JAVA in Simulation Time / Scalable Wireless Ad-Hoc  Network Simulator   –   Pure JAVAで作成されたネットワークシミュレータ   –...
特徴など• メモリの消費が少ない• 高速なシミュレーション• 大規模なネットワークに対応• Javaで記述されているためシナリオ作成  が容易• シミュレータのソースが公開されている• 拡張が容易
しかしいい事ばかりなはずはなく・・・
欠点・・・• 挙動が仕様通りか怪しい – 修正を施した物があるけど、元が中々曲者な   のでまだ残存する不具合はある• コミュニティが無い – 開発自体が停止  • つまり今後の修正は見込めない – なのにコミュニティない  • 使用者が増加し...
欠点・・・• JiST/SWANSを使用した論文にも修正したとし  か記述がないので、公開された不具合情報も少  ない• 期待をこめてIETFのMLを覗いても質問者「未実装項目があるんですが」開発者「不具合なども含めてわれわれも修正を行っていま...
本当に使えるの???• 欠点は修正されてきているので論文での  使用にも耐えられる• 現在も逐次修正中
JiST/SWANSの中身• OSIモデルに従った階層モデルを使用 – 各層を1クラスとしインターフェイスを使用   した接続を行っている – 各層はモジュールの概念を持ち上・下階層の   インターフェイス規約に則れば層を自作可能  • 自分の...
JiST/SWANSの中身アプリケーション    プレゼンテーション・セッ            ション層は明確に存在しないトランスポート     データリンク・物理層の明確            なモジュール上での区別は無          ...
JiST/SWANSの中身    • Log4Jやjargsなども含      む    • これが主要構成
開発方法• Eclipse上で開発 – JavaベースのフリーのIDE• JiST/SWANSのNSL版はNAS上から取得• 公式サイトからのDLはダメ• 後は普通のJavaのコーディング• Javadocは公式サイト上に
まずやること• サンプルを動かす – src/driverにあるもの – ルーティングプロトコル自体はsrc/jist/swans/routeに• サンプルソースの理解 – 基本的にsend/receiveメソッドで上下に繋がっている – Ec...
その次にやる事• 大まかな流れの理解が出来たら、早速何  か作る – シナリオに各ノードの作成・各パラメータを   記述しそこから実行 – driverに相当するもの – アプリケーションソフトと思えばおk
開発の流れ1.   提案方式を考案2.   実装方法を決定3.   シミュレータに実装4.   実行5.   デバッグ•    この繰り返し•    デバッグ実行はこまめに行う事推薦
デバッグの方向性• 不具合の切り分け – JiST/SWANS自体が大きなソフトなので、原   因が自分のコードにあるのかシミュレータに   あるのか切り分ける – ここでシミュレータの理解が乏しいと苦しむ – 流れがわかればある程度見通しがつく
少し突っ込んだ話• 詳しくはWEBは使えない・・・• このシミュレータは書いたソースを内部でバイ  トコードレベルで書き換えている• メソッド→エンティティと変換• イベント駆動に変更する事でシミュレーション  時間上にイベントを配置する• 再...
下位層なんて・・・• 理解しなくてもシナリオ書ける• そこは上手くモジュール化された恩恵• しかし、下をしらないと思わぬところで  足をすくわれるかも• 下位層にも目を通すべき
Upcoming SlideShare
Loading in …5
×

Jist swans勉強会

1,292 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Jist swans勉強会

  1. 1. JiST/SWANS勉強会- 紹介とその他もろもろ -
  2. 2. JiST/SWANSとは?• JAVA in Simulation Time / Scalable Wireless Ad-Hoc Network Simulator – Pure JAVAで作成されたネットワークシミュレータ – 大規模なシミュレーションが可能 – メモリ消費量が少ない – 高速なシミュレーションを実現 – イベント駆動型シミュレータ• 現在のVersion1.0.6 – 開発は停止 – 不具合を含む
  3. 3. 特徴など• メモリの消費が少ない• 高速なシミュレーション• 大規模なネットワークに対応• Javaで記述されているためシナリオ作成 が容易• シミュレータのソースが公開されている• 拡張が容易
  4. 4. しかしいい事ばかりなはずはなく・・・
  5. 5. 欠点・・・• 挙動が仕様通りか怪しい – 修正を施した物があるけど、元が中々曲者な のでまだ残存する不具合はある• コミュニティが無い – 開発自体が停止 • つまり今後の修正は見込めない – なのにコミュニティない • 使用者が増加しているけど、まだまだ少ない
  6. 6. 欠点・・・• JiST/SWANSを使用した論文にも修正したとし か記述がないので、公開された不具合情報も少 ない• 期待をこめてIETFのMLを覗いても質問者「未実装項目があるんですが」開発者「不具合なども含めてわれわれも修正を行っていますが、最終的には皆さんの Labで使いやすいように改変してね」俺涙目• そもそもググルと自分のBlogが出てくるとか異 常 – しかもGoogleランキング2位とか・・・ – 公式の次ってなに??
  7. 7. 本当に使えるの???• 欠点は修正されてきているので論文での 使用にも耐えられる• 現在も逐次修正中
  8. 8. JiST/SWANSの中身• OSIモデルに従った階層モデルを使用 – 各層を1クラスとしインターフェイスを使用 した接続を行っている – 各層はモジュールの概念を持ち上・下階層の インターフェイス規約に則れば層を自作可能 • 自分の提案モデルに応じて追加 • 基本は3層にルーティングアルゴリズムを実装 – 電波伝搬モデルもモジュール実装 – パケットも単なるクラス – モジュールの集合体という認識でいればおk
  9. 9. JiST/SWANSの中身アプリケーション プレゼンテーション・セッ ション層は明確に存在しないトランスポート データリンク・物理層の明確 なモジュール上での区別は無 い ネットワークデータリンク・物理 フィールド 空間
  10. 10. JiST/SWANSの中身 • Log4Jやjargsなども含 む • これが主要構成
  11. 11. 開発方法• Eclipse上で開発 – JavaベースのフリーのIDE• JiST/SWANSのNSL版はNAS上から取得• 公式サイトからのDLはダメ• 後は普通のJavaのコーディング• Javadocは公式サイト上に
  12. 12. まずやること• サンプルを動かす – src/driverにあるもの – ルーティングプロトコル自体はsrc/jist/swans/routeに• サンプルソースの理解 – 基本的にsend/receiveメソッドで上下に繋がっている – Eclipseの呼び出し元機能などを使えば大まかなデー タの流れがわかる • Eclipseすげー
  13. 13. その次にやる事• 大まかな流れの理解が出来たら、早速何 か作る – シナリオに各ノードの作成・各パラメータを 記述しそこから実行 – driverに相当するもの – アプリケーションソフトと思えばおk
  14. 14. 開発の流れ1. 提案方式を考案2. 実装方法を決定3. シミュレータに実装4. 実行5. デバッグ• この繰り返し• デバッグ実行はこまめに行う事推薦
  15. 15. デバッグの方向性• 不具合の切り分け – JiST/SWANS自体が大きなソフトなので、原 因が自分のコードにあるのかシミュレータに あるのか切り分ける – ここでシミュレータの理解が乏しいと苦しむ – 流れがわかればある程度見通しがつく
  16. 16. 少し突っ込んだ話• 詳しくはWEBは使えない・・・• このシミュレータは書いたソースを内部でバイ トコードレベルで書き換えている• メソッド→エンティティと変換• イベント駆動に変更する事でシミュレーション 時間上にイベントを配置する• 再帰を行ってもヒープエラーなどにはならない
  17. 17. 下位層なんて・・・• 理解しなくてもシナリオ書ける• そこは上手くモジュール化された恩恵• しかし、下をしらないと思わぬところで 足をすくわれるかも• 下位層にも目を通すべき

×