Your SlideShare is downloading. ×
0
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
下載
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

下載

878

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
878
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Ad Hoc 無線網路 : Ad Hoc Network 是一種能夠在沒有事先建置基礎架構( infrastructure )的環境下, 由無線主機所臨時組成的網路。因為 Ad Hoc Network 具有自我組織( self-organization� 的能力,一方面它不但可以簡化網路的管理,提高其強健性 (robustness) 和彈性, 另一方面,它更能在處於動態的狀況如位置移動,不定的連結,和無法預測的流量負載 的既定基礎結構下,作最理想的資源有效使用。由於它容易佈建的特性, Ad Hoc Network 有許多實際的用途,如個人區域網路、家庭區域網路、軍事用途、緊急救災及搜救行動。 目前主要發展方向為 Ad Hoc Network routing, Transmission range control, Self-reconfiguration 等。 A mobile ad-hoc network ( MANet ) is a kind of wireless ad-hoc network , and is a self-configuring network of mobile routers (and associated hosts) connected by wireless links – the union of which form an arbitrary topology
  • 有限連接設備配置 ( Connected Limited Device Configuration , CLDC )
  • 有限連接設備配置 ( Connected Limited Device Configuration , CLDC )
  • 現在對集合點 (rendezvous/relays ) 做一簡單說明。真實的 JXTA 網路包含許多集合點。如果 Bob 和 Alice 透過 JXTA 網路進行通信,那麼他們都至少要知道一個集合點。他們知道的不一定是同一個集合點。 如果 Bob 知道集合點 R1 ,而 Alice 知道集合點 R2 ,並且集合點 R1 和 R2 知道一個共同的集合點 R3 ,那麼 Bob 和 Alice 就可以透過 JXTA 網路進行無縫通信。 JXTA 網路自動管理 peer 的發現, Bob 和 Alice 不用關心這些細節。這是 JXTA 技術的一個重要特性 Pipes are virtual connection between peers
  • PeerNetwork createInstance() 是個工廠( factory )函式,它傳回一個帶有指定對等點名稱的 PeerNetwork 實例。 connect() 方法連接至指定 HTTP URL 上的中繼。它傳回持久狀態資訊的位元組陣列;這個資訊應該通過 connect() 方法在所有到該中繼的後續連接中進行傳遞。 create() 方法通過中繼代理在 JXTA 網路上建立對等點、群組和管道。 search() 函式搜索對等點、群組和管道。 poll() 函式在中繼上輪詢發送給這個行動對等點的訊息。在伺服器線程中可以迭代地呼叫它。 listen() 和 close() 函式分別打開和關閉輸入管道。 send() 函式將訊息發送給指定的管道。
  • PeerNetwork createInstance() 是個工廠( factory )函式,它傳回一個帶有指定對等點名稱的 PeerNetwork 實例。 connect() 方法連接至指定 HTTP URL 上的中繼。它傳回持久狀態資訊的位元組陣列;這個資訊應該通過 connect() 方法在所有到該中繼的後續連接中進行傳遞。 create() 方法通過中繼代理在 JXTA 網路上建立對等點、群組和管道。 search() 函式搜索對等點、群組和管道。 poll() 函式在中繼上輪詢發送給這個行動對等點的訊息。在伺服器線程中可以迭代地呼叫它。 listen() 和 close() 函式分別打開和關閉輸入管道。 send() 函式將訊息發送給指定的管道。 建立新的管道。 搜索並循找它剛建立的管道。 通過那條管道將訊息發送給它自己。 接收那條訊息。
  • PeerNetwork createInstance() 是個工廠( factory )函式,它傳回一個帶有指定對等點名稱的 PeerNetwork 實例。 connect() 方法連接至指定 HTTP URL 上的中繼。它傳回持久狀態資訊的位元組陣列;這個資訊應該通過 connect() 方法在所有到該中繼的後續連接中進行傳遞。 create() 方法通過中繼代理在 JXTA 網路上建立對等點、群組和管道。 search() 函式搜索對等點、群組和管道。 poll() 函式在中繼上輪詢發送給這個行動對等點的訊息。在伺服器線程中可以迭代地呼叫它。 listen() 和 close() 函式分別打開和關閉輸入管道。 send() 函式將訊息發送給指定的管道。 建立新的管道。 搜索並循找它剛建立的管道。 通過那條管道將訊息發送給它自己。 接收那條訊息。
  • PeerNetwork createInstance() 是個工廠( factory )函式,它傳回一個帶有指定對等點名稱的 PeerNetwork 實例。 connect() 方法連接至指定 HTTP URL 上的中繼。它傳回持久狀態資訊的位元組陣列;這個資訊應該通過 connect() 方法在所有到該中繼的後續連接中進行傳遞。 create() 方法通過中繼代理在 JXTA 網路上建立對等點、群組和管道。 search() 函式搜索對等點、群組和管道。 poll() 函式在中繼上輪詢發送給這個行動對等點的訊息。在伺服器線程中可以迭代地呼叫它。 listen() 和 close() 函式分別打開和關閉輸入管道。 send() 函式將訊息發送給指定的管道。 建立新的管道。 搜索並循找它剛建立的管道。 通過那條管道將訊息發送給它自己。 接收那條訊息。
  • PeerNetwork createInstance() 是個工廠( factory )函式,它傳回一個帶有指定對等點名稱的 PeerNetwork 實例。 connect() 方法連接至指定 HTTP URL 上的中繼。它傳回持久狀態資訊的位元組陣列;這個資訊應該通過 connect() 方法在所有到該中繼的後續連接中進行傳遞。 create() 方法通過中繼代理在 JXTA 網路上建立對等點、群組和管道。 search() 函式搜索對等點、群組和管道。 poll() 函式在中繼上輪詢發送給這個行動對等點的訊息。在伺服器線程中可以迭代地呼叫它。 listen() 和 close() 函式分別打開和關閉輸入管道。 send() 函式將訊息發送給指定的管道。 建立新的管道。 搜索並循找它剛建立的管道。 通過那條管道將訊息發送給它自己。 接收那條訊息。
  • Transcript

    • 1. Getting Started with JXTA for J2ME Advisor : Dr. Ching-Long Yeh Report : DI.2, 洪泰昌 (89506005) Course: XML 文件管理
    • 2. Abstract <ul><li>Ad hoc networks : a self-configuring network of mobile </li></ul><ul><ul><li>Self-organization ability: simplify management, robustness, flexible </li></ul></ul><ul><ul><li>Well suited to the vicissitudes of wireless </li></ul></ul><ul><ul><li>P2P model enables “mobile devices” to assemble quickly </li></ul></ul><ul><li>JXTA (&quot;juxtapose&quot;) , a set of protocols for P2P networking </li></ul><ul><li>In this report: </li></ul><ul><ul><li>How the JXTA protocols are extended to MIDP </li></ul></ul><ul><ul><li>How to install and run JXTA demonstration programs for MIDP </li></ul></ul>
    • 3. Abstract <ul><li>JXTA demonstration programs for MIDP </li></ul><ul><ul><li>Chat MIDlet </li></ul></ul>JXME Proxy (Relay) DEMO
    • 4. Agenda <ul><li>Abstract </li></ul><ul><li>JXTA </li></ul><ul><li>Java ME (J2ME) </li></ul><ul><li>JXME </li></ul><ul><li>Summary </li></ul><ul><li>Appendix </li></ul><ul><ul><li>Prerequisite for implementation </li></ul></ul><ul><ul><li>Implementation of J2ME Chat MIDlet </li></ul></ul><ul><ul><li>Implementation of JXME Proxy </li></ul></ul><ul><ul><li>References and Resources </li></ul></ul>
    • 5. JXTA <ul><li>JXTA defines a set of open protocols for peer-to-peer networks </li></ul><ul><ul><li>JXTA (v2.0) Protocol Specification </li></ul></ul><ul><li>XML-based protocols </li></ul><ul><li>Functionalities </li></ul><ul><ul><li>peer discovery </li></ul></ul><ul><ul><li>endpoint routing </li></ul></ul><ul><ul><li>connection binding </li></ul></ul><ul><ul><li>basic query/response message exchange </li></ul></ul><ul><ul><li>network propagation through rendezvous peers </li></ul></ul>
    • 6. Java ME <ul><li>Java ME: </li></ul><ul><ul><li>Java Platform , Micro Edition (Java ME) provides a environment for applications running on mobile and other embedded devices </li></ul></ul><ul><ul><ul><li>mobile phones, personal digital assistants (PDAs), TV set-top boxes, and printers </li></ul></ul></ul><ul><li>MIDP: Mobile Information Device Profile (v2.0) </li></ul><ul><ul><li>Implementation Specification </li></ul></ul><ul><ul><li>Subset of Java SE (JDK)  limited capacity </li></ul></ul>
    • 7. Java ME <ul><li>MIDP: </li></ul><ul><ul><li>javax.microedition.rms </li></ul></ul><ul><ul><ul><li>Record Management System, persistence </li></ul></ul></ul><ul><ul><li>javax.microedition.midlet </li></ul></ul><ul><ul><ul><li>Environment, lifecycle </li></ul></ul></ul><ul><ul><li>javax.microedition.io </li></ul></ul><ul><ul><ul><li>Network </li></ul></ul></ul><ul><ul><li>javax.microedition.lcdui </li></ul></ul><ul><ul><ul><li>UI ( User Interface ) </li></ul></ul></ul><ul><ul><li>Java.lang.* java.util.* </li></ul></ul><ul><li>MIDlet : application </li></ul><ul><ul><li>javax.microedition.midlet.MIDlet </li></ul></ul>
    • 8. Java ME <ul><li>MIDlet: </li></ul><ul><ul><li>Managed by Application Management software (AMS) : Paused , Active , destroyed </li></ul></ul>
    • 9. JXME <ul><li>JXME : </li></ul><ul><ul><li>JXTA Java Micro Edition (MIDP/CLDC/CDC) Project </li></ul></ul><ul><li>The goal of the JXME project is to bring JXTA functionality to MIDP devices </li></ul><ul><ul><li>A framework </li></ul></ul><ul><li>Why JXME ?  The constraints of Mobile Device </li></ul><ul><ul><li>XML parser  memory limits of MIDP devices? </li></ul></ul><ul><ul><li>The state of the network  needs to be cached  memory limits of MIDP devices? </li></ul></ul><ul><ul><li>MIDP mandates support for HTTP, but socket and datagram connections are optional </li></ul></ul><ul><li>JXTA protocols exceed the minimum requirements of MIDP  JXTA relay </li></ul>
    • 10. JXME Architecture
    • 11. Rendezvous/relays
    • 12. Coordination between J2ME Edge Devices and JXTA Relays <ul><li>J2ME peer send HTTP request messages to a JXTA relay </li></ul><ul><li>JXTA relay parse each name-value pair in the HTTP request  XML messages (JXTA format)  relay the messages over the JXTA network </li></ul><ul><li>JXTA relay receives a message from the JXTA network  parse the XML format of the incoming message  author a corresponding HTTP response </li></ul><ul><li>Wait for the J2ME peer to send an HTTP poll request  send the HTTP response back to the J2ME peer </li></ul>1. 2. 3. 4. Response
    • 13. JXME API <ul><li>Element : elements of JXTA Message </li></ul><ul><li>Message : JXTA Message, access methods </li></ul><ul><li>PeerNetwork : </li></ul><ul><ul><li>createInstance(): create PeerNetwork instance </li></ul></ul><ul><ul><li>connect(): connect to relay </li></ul></ul><ul><ul><li>create(): peer, group, pipe </li></ul></ul><ul><ul><li>search(): peer, group, pipe </li></ul></ul><ul><ul><li>poll() poll the information from relay server </li></ul></ul><ul><ul><li>listen() and close(): open and close pipe </li></ul></ul><ul><ul><li>send(): send the message to the pipe </li></ul></ul>
    • 14. JXME Code Example <ul><li>Create pipe </li></ul>Create peer Connect to proxy create pipe
    • 15. JXME Code Example <ul><li>Find the pipe which we created </li></ul>
    • 16. JXME Code Example <ul><li>Send message through the pipe which we just find </li></ul>
    • 17. JXME Code Example <ul><li>Receive message </li></ul>
    • 18. Summary <ul><li>JXTA furnishes an XML-based, platform-independent set of protocols that enable P2P networking </li></ul><ul><li>JXME project brings JXTA functionality into the MIDP world </li></ul><ul><li>Vision: Ad hoc network  Every mobile device as “Server” </li></ul>
    • 19. Summary <ul><li>Not popular ? Why ? </li></ul><ul><ul><li>Cost: GPRS, 3G …? </li></ul></ul><ul><ul><li>Mobile device: Power consumption, UI ? </li></ul></ul><ul><li>In the future </li></ul><ul><ul><li>WiMax  cost down </li></ul></ul><ul><ul><li>Wireless  Leased-line network  connected anytime </li></ul></ul><ul><ul><li>Google Android platform ?  XMPP protocol </li></ul></ul><ul><li>Trends: P2P network + XML based protocol </li></ul>
    • 20. Appendix
    • 21. Prerequisite for implementation <ul><li>Required libraries from http://download.java.net/jxta/ </li></ul><ul><ul><li>jxse-lib-2.5.zip </li></ul></ul><ul><ul><ul><li>JXTA core </li></ul></ul></ul><ul><ul><ul><li>JMEX Proxy libraries </li></ul></ul></ul><ul><ul><li>jxme-2.1.3-bin.zip </li></ul></ul><ul><ul><ul><li>JXME framework </li></ul></ul></ul><ul><ul><ul><li>Chat MIDlet code and libraries </li></ul></ul></ul><ul><li>Tools: </li></ul><ul><ul><li>NetBeans (6.0) + Mobility pack </li></ul></ul><ul><ul><li>http:// www.netbeans.org / </li></ul></ul>
    • 22. Implementation of J2ME Chat MIDlet 1. New project  Mobile  mobile project from existing MIDP source
    • 23. Implementation of J2ME Chat MIDlet 2. Specify the source and JAD file
    • 24. Implementation of J2ME Chat MIDlet 3. Name and Location  name  chat
    • 25. Implementation of J2ME Chat MIDlet 4. Default Platform Selection : use default
    • 26. Implementation of J2ME Chat MIDlet 5. Add library : chat porject  right click  properties  add Jar/Zip  jxta-cldc.jar
    • 27. Implementation of J2ME Chat MIDlet 6. Run : chat project  right click  run project
    • 28. Implementation of J2ME Chat MIDlet <ul><li>Related files and locations </li></ul><ul><li>Chat source code </li></ul><ul><ul><li>jxme-2.1.3-binmidpdemochat </li></ul></ul><ul><li>JAD: </li></ul><ul><ul><li>jxme-2.1.3-binmidpdemochatinchat.jad </li></ul></ul><ul><li>Library: </li></ul><ul><ul><li>jxme-2.1.3-binmidpdemochatlibjxta-cldc.jar </li></ul></ul>
    • 29. Implementation of JXME Proxy 1. New project  General project  Java Application
    • 30. Implementation of JXME Proxy 2. name  proxy  finish
    • 31. Implementation of JXME Proxy 3. New Java class  place the code which we provide
    • 32. Implementation of JXME Proxy <ul><li>Code: </li></ul><ul><li>package tommy; </li></ul><ul><li>import java.io.File; </li></ul><ul><li>import net.jxta.platform.NetworkManager; </li></ul><ul><li>public class StartJXME_Proxy { </li></ul><ul><li>private NetworkManager manager; </li></ul><ul><li>public StartJXME_Proxy() { </li></ul><ul><li>} </li></ul><ul><li>private void startProxy() { </li></ul><ul><li>try { </li></ul><ul><li>manager = new NetworkManager(NetworkManager.ConfigMode.PROXY, &quot;ProxyeServer&quot;, new File(new File(&quot;.cache&quot;), &quot;ProxyeServer&quot;).toURI()); </li></ul><ul><li>manager.startNetwork(); </li></ul><ul><li>} catch (Exception e) { </li></ul><ul><li>e.printStackTrace(); </li></ul><ul><li>System.exit(-1); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul><ul><li>public static void main(String[] args){ </li></ul><ul><li>StartJXME_Proxy startJXME_proxy = new StartJXME_Proxy(); </li></ul><ul><li>startJXME_proxy.startProxy(); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
    • 33. Implementation of JXME Proxy 4. Add libraries  Libraries  Add Jar/folder  jxse-lib-2.5*.jar
    • 34. Implementation of JXME Proxy 5. Run  project  right click  run project
    • 35. References and Resources <ul><li>Getting Started with JXTA for J2ME, http://developers.sun.com/mobility/midp/articles/jxme/index.html </li></ul><ul><li>JXTA, https://jxta.dev.java.net/ </li></ul><ul><li>JXTA v2.0 Protocol Specification, https://jxta-spec.dev.java.net/ </li></ul><ul><li>JXTA Community Forum, http://forums.java.net/jive/forum.jspa?forumID=50&start=0 </li></ul><ul><li>JXTA JXSE Programmers Guide , https://jxta-guide.dev.java.net/ </li></ul><ul><li>J2ME tutorials, http:// developers.sun.com /mobility/learning/tutorial/ </li></ul><ul><li>Sun Java Wireless Toolkit , http:// java.sun.com/products/sjwtoolkit/download.html </li></ul><ul><li>NetBeans, http:// www.netbeans.org / </li></ul>
    • 36. References and Resources <ul><li>Code in Netbeans Project: </li></ul><ul><ul><li>網路硬碟二: share name  XML-JXME </li></ul></ul><ul><ul><li>Maybe you need to correct the location of libraries </li></ul></ul><ul><li>Public JXME proxy: </li></ul><ul><ul><li>http://rdv.jxtahosts.net/cgi-bin/relays.cgi?2 </li></ul></ul><ul><ul><li>http://192.18.37.36:9700 </li></ul></ul><ul><ul><li>http://192.18.37.37:9700 </li></ul></ul><ul><ul><li>http://192.18.37.38:9700 </li></ul></ul><ul><ul><li>http://192.18.37.39:9700 </li></ul></ul>

    ×