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
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

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

    ×