Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "講義日程予定 第 1 回 「ガイダンス」 第 2 回 「ユビキタスシティ検討ワーキング中間とりまとめ」 第 3 回 「次世代ネットワーク技術:情報家電」 第 4 回 「次世代ネットワーク技術:ホームネットワーク」 第 5 回 「次世代ネットワーク技術:インターネット技術」 第 6 回 「次世代ネットワーク技術:次世代インターネット技."— 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 ObjectServer/Remote Object StubSkeleton Method Invocation with arguments Return Value

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 ObjectServer/Remote Object Lookup()Registry Look up reference Rebind Obtains Remote Reference

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. Lookup4. 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 などによるグラウンディン グ 通信路での解決 – 各種ゲートウェイの開発 – 仕様の拡大化


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

Similar presentations


Ads by Google