1 / 32

講義日程予定

講義日程予定. 第 1 回 「ガイダンス」 第 2 回 「ユビキタスシティ検討ワーキング中間とりまとめ」 第 3 回 「次世代ネットワーク技術:情報家電」 第 4 回 「次世代ネットワーク技術:ホームネットワーク」 第 5 回 「次世代ネットワーク技術:インターネット技術」 第 6 回 「次世代ネットワーク技術:次世代インターネット技術」 第 7 回 「次世代ネットワーク技術: アドホックネットワーク」 第 8 回 「次世代ネットワーク技術: P2P ネットワーク」 第 9 回 「センシング技術:センサネットワーク」

Download Presentation

講義日程予定

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 講義日程予定 • 第 1 回 「ガイダンス」 • 第 2 回 「ユビキタスシティ検討ワーキング中間とりまとめ」 • 第 3 回 「次世代ネットワーク技術:情報家電」 • 第 4 回 「次世代ネットワーク技術:ホームネットワーク」 • 第 5 回 「次世代ネットワーク技術:インターネット技術」 • 第 6 回 「次世代ネットワーク技術:次世代インターネット技術」 • 第 7 回 「次世代ネットワーク技術: アドホックネットワーク」 • 第 8 回 「次世代ネットワーク技術: P2Pネットワーク」 • 第 9 回 「センシング技術:センサネットワーク」 • 第10回 「富士通のユビキタス事業紹介」 • 第11回 「センシング技術:RFIDと測位技術」 • 第12回 「サービスアーキテクチャ:基盤ソフトウェア技術」 • 第13回 「内田洋行のユビキタス事業紹介」 • 第14回 「サービスアーキテクチャ:プライバシとセキュリティ」 • 第15回 「期末定期試験」

  2. 期末試験用課題 1 • 家庭内でまだネットワークにつながっていない家電に適切なホームネットワークを適用した情報家電を各自考案し800字程度で以下について述べよ. • それを用いた機能,利用例について以下を明確にして述べよ • なぜそのような情報家電を考案したのか • ネットワーク接続手法をどう選択したのか • 供給した企業の販売後の戦略について考察せよ • 普及後に展開できるサービスは何か • 他のネットワーク機器との連携は • 保守,アップデートは

  3. 期末試験用課題 2 • 次世代ネットワーク技術として,IPv6,P2Pネットワーク,アドホックネットワーク,センサネットワークの中から一つ選択して800字程度で, • その技術について説明し, • 応用例を述べよ. • またその技術を企業がビジネス化する可能性について述べよ.

  4. 期末試験用課題3 • 測位システムの利用には,測位精度,設備の容易さ(イニシャルとランニングコスト,設定の手間など),プライバシー確保の容易さ,といった導入基準がある.Cambridge大学のActiveBatシステムとGPSを上記の項目に照らして比較し,利害得失を800字程度で論じなさい.

  5. 期末試験用課題4 • Java言語にはRMIという遠隔メソッド呼出しの機構があるが, • この機構について400字程度で説明し, • それを用いたサービスアーキテクチャを実例をあげて400字程度で説明しなさい.

  6. 2006年度前期情報システム構成論2第12回 「サービスアーキテクチャ」 西尾 信彦 nishio@cs.ritsumei.ac.jp 立命館大学 情報理工学部

  7. 分散システム構成法 • 分散システムとは何か? • 例えば,サーバとクライアントによる通信 • プロセスの壁を越える • 仮想メモリ管理を越える • ホストの壁を越える • ネットワークを利用 • 分散システムをどう構築するか? • OSとライブラリでネットワーク利用 • ソケットプログラミング • プログラミング言語がネットワークを隠す • RPC: Remote Procedure Call • プログラマにとっては関数呼び出し • 呼び出された関数は別ホストで稼動

  8. RPC: 遠隔手続き呼出し • Sun MicrosystemsのSunRPCが有名 • UNIXにおける初期のかな漢字変換システムであるJserverなどがRPCによって実装されていた. • かなの文字列を引数にかな漢字変換用の関数(RPC)を呼出すと漢字変換されて戻ってくる

  9. RPC: 遠隔手続き呼出し • RPC呼び出し側 • 引数を用意して関数呼び出し • 呼出し先と引数をまとめてリモートホストに送る • 返信を待つ • 返信を受けて,返り値を取り出し,スタックに戻す • 呼出しもとにリターン

  10. RPC: 遠隔手続き呼出し • RPC呼出され側 • ネットワーク越しの要求を待つ • 届いた要求パケットから呼出され先を特定 • 引数をスタックに取り出し,コール • RPC本体が動いて,返り値がスタックにつまれる • 返り値をまとめて,呼出し側に送信 • また要求待ちに戻る

  11. RPC: 遠隔手続き呼出し • プログラマの手間 • クラアント,サーバ双方に余計なインタフェース部分が必要 • これらをスタブ(切り株)と呼ぶ • スタブを手で書いたら楽にならない • スタブ自動生成のためのスタブジェネレータがある • スタブジェネレータに渡すRPCの仕様を記述するインタフェース記述言語IDLが必要 • 適切なスタブを静的もしくは動的にリンク • 動的にやるなら相手先を見つけるサーバが必要

  12. RMI: 遠隔メソッド呼出し • オブジェクト指向プログラミング言語におけるRPCのこと • 別プロセスに位置するオブジェクトのメソッドを呼出す • リモートオブジェクト,値呼出し/参照呼出し • JavaではJavaRMIというクラスが実装されている.

  13. なぜ皆がJavaを使うのか? • 新しいプログラミング言語である • 成長中の言語である • いま重要な要素が入っている • オブジェクト指向 • アーキテクチャ中立 • セキュリティ • ネットワーク • 開発環境が近代的に充実している • Eclipse… • UML関連

  14. Java Remote Method Invocation • Object-oriented • Mobile behavior • Design Patterns • Safe and Secure • Easy to Write/Easy to Use • Connects to Existing/Legacy Systems • Write Once, Run Anywhere • Distributed Garbage Collection • Parallel Computing • The Java Distributed Computing Solution

  15. Stub and Skeleton Client Object Server/Remote Object Method Invocation with arguments Method Invocation with arguments Return Value Return Value Stub Skeleton

  16. Designing Interface RemoteDictionary.java: import java.rmi.*; public interface RemoteDictionary extends Remote { Object answer( Object key ) throws RemoteException; Object[] keys() throws RemoteException; }

  17. Implement Remote Object RemoteDictionaryImpl.java: import java.util.*; import java.rmi.*; import java.rmi.server.*; public class RemoteDictionaryImpl extends UnicastRemoteObject implements RemoteDictionary { private Hashtable dictionary; public RemoteDictionaryImpl() throws RemoteException { super(); dictionary = new Hashtable(); dictionary.put( "nishio", "Nobuhiko Nishio\nAssociate Professor\nUbiquitous Computing" ); dictionary.put( "mouri", "Koichi Mouri\nAsistant Professor\nContext-Aware Software" ); dictionary.put( "okubo", "Eiji Okubo\nProfessor\nOperating System" ); } public Object answer( Object key ) throws RemoteException { return dictionary.get( key.toString() ); } public Object[] keys() throws RemoteException { Enumeration enum = dictionary.keys(); Vector vector = new Vector(); while( enum.hasMoreElements() ) vector.addElement( enum.nextElement() ); Object[] keys = new Object[ vector.size() ]; for( int i=0; i<vector.size(); i++ ) keys[i] = vector.elementAt(i); return keys; } }

  18. Building Server DictionaryServer.java: import java.rmi.*; public class DictionaryServer { public static void main( String argv[] ) { System.setSecurityManager( new RMISecurityManager() ); try { RemoteDictionaryImpl object = new RemoteDictionaryImpl(); Naming.rebind( "rmi:///RemoteDictionaryServer", object ); System.out.println( "Remote Dictionary Service Starts." ); } catch( Exception e ) { System.err.println( "Error:" + e.getMessage() ); System.exit(-1); } } }

  19. Rebind and Look up Client Object Server/Remote Object Look up reference Obtains Remote Reference Rebind Lookup() Registry

  20. Building Client SingleLineClient.java: import java.rmi.*; public class SingleLineClient { public static void main( String argv[] ) { try { RemoteDictionary dictionary = (RemoteDictionary)Naming.lookup( "rmi://" + argv[0] + "/" + "RemoteDictionaryServer" ); Object value = dictionary.answer( argv[1] ); if( value != null ) System.out.println( value.toString() ); } catch( Exception e ) { System.err.println( "Error:" + e.getMessage() ); System.exit(-1); } } }

  21. Procedure for Execution • Compile Java sources • Compile RMI-related files • Prepare Security Policy • Launch RMI Registry Program • Launch Server Program • Execute Client Program Policy: grant { permission java.security.AllPermission; };

  22. Jini • JavaRMIをベースとしたサービスアーキテクチャの一つ • Sun Microsystemsが開発 • クライアントオブジェクトがルックアップサーバを経由して,リモート(サーバ)オブジェクトのプロクシーを獲得し,それ経由でサービスを受ける.

  23. Jini Characters

  24. Jini Overview 1. Discovery 2. Join 3. Lookup 4. Service Invocation

  25. Lookup Service: registrar

  26. Client Lookup

  27. Proxy

  28. Proxy vs Service:サイズの問題 • Thin proxy and fat service. • RMI implementation • Fat proxy and non service • Half and half approach • Other implementations than RMI

  29. リモートサービスの課題 • どのようにサービスを発見するか • ディスカバリ機構 • AppleのBonjourなど • そのサービスが何をするのか • サービス記述 • メソッド呼出しにおけるセマンティクス • 値呼出しか参照呼出しか • 参照呼出しをいかに実現するか • 最初のスタブをいかに入手するか • 新たに参加したサービスのインタフェースをどう知るか?

  30. セキュリティの確保 • 適切な人が適切なサービスを実行する • 利用時のユーザのログイン認証 • パスワード,RFID(ICOCA),バイオメトリクス • ケイバビリティの生成 • 偽造できない許可証 • One-timeパスワードつき • Man-in-the-middle攻撃対策 • 有効期限つき • 通信路の暗号化 • IPSecやVPN • どこまでやるのかも問題 • やりすぎたら使いものにならない

  31. 異種サービス間連携の問題 • 世の中には多くのサービスアーキテクチャが • Jini,UPnP,DLNA,SOAP • 通信路も多種多様 • Bluetooth,PLC,携帯電話公衆回線,WiFi • WiMAX,UWB,3.5G/4G • 個人認証も多様 • 次世代型RFID,生体認証 • ではあるが,統一されるのはもっと恐しい

  32. 異種サービス間連携の問題(続き) • サービスアーキテクチャでの解決 • サービスのXMLを利用した記述 • オブジェクトの直列化(object serialization) • RPC/RMI自体をXMLで記述する • セマンティックウェブ技術の発達 • WSDL,RDF,OWL/Sなどによるグラウンディング • 通信路での解決 • 各種ゲートウェイの開発 • 仕様の拡大化

More Related