Title: Getting Started with JXTA for J2ME
1Getting Started with JXTA for J2ME
- Advisor Dr. Ching-Long Yeh
- Report DI.2, ??? (89506005)
- Course XML????
2Abstract
- 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
3Abstract
- JXTA demonstration programs for MIDP
- Chat MIDlet
JXME Proxy (Relay)
DEMO
4Agenda
- Abstract
- JXTA
- Java ME (J2ME)
- JXME
- Summary
- Appendix
- Prerequisite for implementation
- Implementation of J2ME Chat MIDlet
- Implementation of JXME Proxy
- References and Resources
5JXTA
- 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
6Java 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
7Java 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
8Java ME
- MIDlet
- Managed by Application Management software (AMS)
Paused,Active,destroyed
9JXME
- 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
10JXME Architecture
11Rendezvous/relays
12Coordination 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.
Response
3.
4.
13JXME 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
14JXME Code Example
Create peer
Connect to proxy
create pipe
15JXME Code Example
- Find the pipe which we created
16JXME Code Example
- Send message through the pipe which we just find
17JXME Code Example
18Summary
- 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
19Summary
- 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
20Appendix
21Prerequisite for implementation
- Required libraries from http//download.java.net/j
xta/ - 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/
22Implementation of J2ME Chat MIDlet
1. New project ?Mobile ? mobile project from
existing MIDP source
23Implementation of J2ME Chat MIDlet
2. Specify the source and JAD file
24Implementation of J2ME Chat MIDlet
3. Name and Location ? name ? chat
25Implementation of J2ME Chat MIDlet
4. Default Platform Selection use default
26Implementation of J2ME Chat MIDlet
5. Add library chat porject ? right click ?
properties ? add Jar/Zip ? jxta-cldc.jar
27Implementation of J2ME Chat MIDlet
6. Run chat project ? right click ? run project
28Implementation of J2ME Chat MIDlet
- Related files and locations
- Chat source code
- \jxme-2.1.3-bin\midp\demo\chat
- JAD
- \jxme-2.1.3-bin\midp\demo\chat\bin\chat.jad
- Library
- \jxme-2.1.3-bin\midp\demo\chat\lib\jxta-cldc.jar
29Implementation of JXME Proxy
1. New project ? General project ? Java
Application
30Implementation of JXME Proxy
2. name? proxy ? finish
31Implementation of JXME Proxy
3. New Java class ? place the code which we
provide
32Implementation 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(NetworkMa
nager.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()
33Implementation of JXME Proxy
4. Add libraries ?Libraries ? Add
Jar/folder?\jxse-lib-2.5\.jar
34Implementation of JXME Proxy
5. Run ? project ? right click ? run project
35References and Resources
- Getting Started with JXTA for J2ME,
http//developers.sun.com/mobility/midp/articles/j
xme/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?forumID50start0 - JXTA JXSE Programmers Guide, https//jxta-guide.de
v.java.net/ - J2ME tutorials, http//developers.sun.com/mobility
/learning/tutorial/ - Sun Java Wireless Toolkit , http//java.sun.com/pr
oducts/sjwtoolkit/download.html - NetBeans, http//www.netbeans.org/
36References 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.369700
- http//192.18.37.379700
- http//192.18.37.389700
- http//192.18.37.399700