A Bluetooth-based JXME infrastructure
?
Carlo Blundo and Emiliano De Cristofaro Dipartimento di Informatica e Applicazioni, Universit` a degli Studi di Salerno Via Ponte Don Melillo - I-84084 Fisciano (SA), Italy. {carblu, emidec}@dia.unisa.it
Abstract. Over the last years, research efforts have led the way to embed computation into the environment. Much attention is drawn to technologies supporting dynamicity and mobility over small devices which can follow the user anytime, anywhere. The Bluetooth standard particularly fits this idea, by providing a versatile and flexible wireless network technology with low power consumption. In this paper, we describe an implementation of a novel framework named JXBT (JXME over Bluetooth), which allows the JXME infrastructure to use Bluetooth as the communication channel. By exploiting the JXME functionalities we can overcome Bluetooth limitations, such as the maximum number of interconnectable devices (7 according to the Bluetooth standard) and the maximum transmission range (10 or 100 meters depending on the version). To test the lightness of JXBT, we designed and evaluated BlueIRC, an application running on top of JXBT. This application enables the set up of a chat among Bluetooth-enabled mobile devices, without requiring them to be within transmission range.
1
Introduction
In the last years, much effort has been placed on developing services for mobile devices. Smartphones are nowadays small and powerful enough to turn into fundamental working instruments. Technology advances also involved mobile communication technologies, as with the growth of Bluetooth [12]. This technology is a versatile and flexible short-range wireless network technology with low power consumption. It operates in a license-free frequency, so that user is not charged for accessing the network nor he needs an account with any company, thus allowing a relevant decrease of communication costs. Furthermore, it provides the possibility of automatically discovering other devices (and services exposed by them) within their communication range, thus allowing a dynamic set up of an ad-hoc network. For more details about this technology, we refer to the extended version of this paper [11]. Moreover, the evolution of smartphones drove researchers to develop collaborative protocols targeted to mobile devices. These protocols, can be used as the underlying technologies for complex distributed applications. In particular, ?
This work has been partially supported by the European Commission through the IST program under contracts FP6-1596 (AEOLUS).
much attention has been placed on peer-to-peer protocols fitting mobile environments where devices have limited resources. In this paper, we focus on one of the most diffused Java-based peer-to-peer protocol, JXTA and in particular on its version for the mobile environment, JXME. The JXTA technology is a set of open protocols that allows any connected device on the network to communicate and collaborate in a peer-to-peer style [8, 22]. Its main features are: (i) interoperability, overcoming the problem of binding each peer-to-peer system to a single service and to a single infrastructure; (ii) platform and programming language independence; (iii) ubiquity, being implementable on every device ranging from mobile devices, PDAs, to PCs and servers. JXTA provides several features, such as: discovering other peers in the network; self set-up in peer groups; exposing and discovering network services; communicating in a direct way through pipes; monitoring other peers’ activities. The JXME project [10] is aimed to bring JXTA functionality to mobile devices with limited resources within the Java 2 Micro Edition. In fact, JXTA cannot be ported on the J2ME environment as it is. First, JXTA messages are XML-structured and require a parser, whose installation on a J2ME device is not straightforward. Then, maintenance of caches is too memory-consuming. Finally, JXTA peers are always in listening mode and this might not be achievable within J2ME environment. Because of resource limitations, the JXME architecture heavily relies on JXTA relays. Relays are JXTA peers, which are able to manage pipes, advertisements, groups, routing. They act as access points to the JXTA network for mobile peers. These mobile peers communicate with the relay through a binary HTTP connection, using messages compliant to JXTA ones. Relay peers are in charge of creating resources, searching resources, messages sending and receiving. The JXME architecture is presented in Figure 1 [23]. This version of JXME
Fig. 1. The JXME Architecture
is called Proxy-based, since a relay peer is needed to enter an existing JXTA network. On the other hand, the need of a proxyless version has become more and more insistent in order to achieve a full ad-hoc P2P scenario. However, to the best of our knowledge, no version of Proxyless JXME has been released for the J2ME Connected Device Limited Configuration (CLDC) [16], but only for the J2ME Connected Device Configuration (CDC) [16], thus restricting peers
to run over relatively powerful devices, such as PDAs. In our work, we focus on CLDC in order to allow the creation of JXME networks among smartphones, which are nowadays in widespread use. More details on the JXTA, J2ME, and JXME technologies can be found in the extended version of the paper [11]. From the synergy of the JXME and the Bluetooth technologies, we want to achieve a twofold goal. First, we want to provide JXME with the required support to use Bluetooth as the communication channel. Second, we want to exploit JXME functionalities in order to overcome Bluetooth limitations, such as the maximum number of interconnectable devices (7 according to the Bluetooth standard) and the maximum transmission range (10 or 100 meters depending on the version). Hence, we developed a novel framework, JXBT (JXME over Bluetooth). The JXBT infrastructure allows us to interconnect more piconets1 in a transparent way. As a result, users can exploit all the classical Bluetooth features (such as file exchanging or chat services) without requiring peers to be within transmission range. In order to provide a proof-of-concept for testing the lightness of JXBT, we designed and evaluated BlueIRC, an application running on top of JXBT. This application enables the set up of a chat among Bluetooth-enabled mobile devices, without requiring them to be within the range. More details are presented in Section 4. We evaluated the performances and usability of our framework on devices nowadays available on the market at average costs. Indeed, JXBT and BlueIRC have been tested on real mobile devices such as Nokia N70 and Nokia N73 smartphones. Our performance evaluation (presented in Section 5) shows that JXBT is efficient and stable. It can used as the underlying technology for developing complex and useful applications which can be released for final users owning standard Bluetooth-enabled mobile phones.
2
The JXBT project
Bluetooth standard suffers of some constraints as maximum number of interconnectable devices (seven according to the Bluetooth standard) and limited transmission range (i.e., 10 or 100 meters). To this aim we provided the JXTA-JXME infrastructure with the Bluetooth’s support as the communication channel enabling interactions over a P2P infrastructure. For this goal, we implemented a dedicated framework that we named JXBT (JXME over Bluetooth). Using JXBT, we are able to extend Bluetooth functionalities by providing a transparent middleware, which allows users to overcome the above mentioned limitations. Hence, users can exploit all the classical Bluetooth features (such as file exchanging or chat services) without requiring peers to be within the transmission range. Actually, the Bluetooth standard defines scatternets, i.e., sets of piconets connected through sharing devices, but it does not specify a scatternet formation algorithm. Although much effort is being put in the research of an optimal algorithm (see for instance [26], [20]), scatternet features are not yet well-developed 1
A piconet is the network formed by devices within each other’s Bluetooth range.
in practice and to the best of our knowledge, there is no support for scatternet formation within J2ME. 2.1
Design
The JXME technology allows to instaurate communications based on TCP and UDP, within the J2ME environment. While porting JXME to use Bluetooth as the communication channel, several issues have to be considered. TCP and UDP are widely supported for Bluetooth connections, but not within J2ME environment which is the programming environment of the JXTA/JXME framework. Furthermore, neither IP addresses nor domain names can be used to identify and address peers. As a consequence, we had to implement the required support for the dynamic discovering of peers and to handle point-to-point connections between peers and the relay. To this aim, we used the JAWBT API [7], defined by the JSR-82, to support Bluetooth connections in J2ME devices. As shown in Figure 2, the JXBT framework architecture recalls the JXTA/JXME one. It contains the JXTA network and the relay peers, the JXME networks and the mobile peers. However, the Bluetooth layer has to be inserted in order to support transmissions. This layer lies both on the relay peer and on the mobile peer, it is implemented by a Bluetooth stub in a J2ME class using the JSR-82 API. The physical communication is carried out by the Bluetooth stubs in the classical master/slave way. To this aim, two dedicated classes have been implemented, namely BTMaster and BTSlave. In our implementation, mobile peers act as masters (i.e., they generate and expose a Bluetooth service), while, relay peers act as slaves (i.e., they perform the Bluetooth inquiry and instaurate the connection). This choice is driven by efficiency: we tried to move the maximum amount of workload from mobile peers (which usually have limited resources) to the relay peers (which can be a standard non-mobile computer). Therefore, we let the relay peer periodically perform the inquiry to discover new peers or peers that have recovered after a fault. In fact, inquiry operation is a quite expensive task, especially if it has to be performed periodically. Furthermore, in order to forward messages, the relay peers has to know which mobile peers are within its range, and, for all of them, it has to keep track on the group to which they belong. The relay peer can read this information when discovering the mobile peer. Moreover, our choice supports peers’ mobility: peers can move and change the reference relay peer and the infrastructure takes care of the synchronization. On the other hand, the choice of implementing the relay peer as master would slow down the computation, requiring relay peers to ask mobile peers to send a special message containing all the needed information (e.g., peer identity and/or group identity). The main task of the JXBT framework is to provide to the core JXME class, PeerNetwork, the support for using Bluetooth as communication channel. To this aim, we had to implement an intermediate layer, represented by the BTPeerNetwork class. The resulting software structure is presented in Figure 3. The class BTPeerNetwork extends the PeerNetwork class in order to implement
Fig. 2. The JXBT Framework Architecture
I/O operations on a Bluetooth channel, addressing either the BTMaster or the BTSlave class, according to the role of the peer. This strategy has been borrowed from Jadabs’ implementation [4], more details can be found in Section 3. We have reused some utility classes of Jadabs to handle queues and to parse received messages. However, although a different thread was generated for each queue, no synchronization was provided in [4]. Therefore, we had to manage the synchronization of the multithreaded programming. Furthermore, we had to implement classes for groups and pipes management, as required by JXME: PeerGroup and Pipe (groups and pipes creation and searching), PeerGroupHandle and PipeHandle (management of queues for users joining some groups or listening on some pipes). These classes are needed to maximize the standardization and the compatibility with the JXME specification. In such way, the P2P developer is not required to know all implementation details about JXME requests addressed to the relay peer and about result retrieval.
Fig. 3. The PeerNetwork abstraction over Bluetooth within JXBT
We also remark that this design supports mobility because it allows a mobile peer to disconnect from a relay peer and re-connect to another. Pipes and groups memberships remain unaltered and allows the peer to recover messages not received while disconnected, thanks to the use of pipes and acknowledgments. In our implementation, relay peers hold a pool of Bluetooth connections and periodically perform inquiry to check whether a new mobile peer has come within range. Whenever a mobile peer is discovered, the relay peer recovers and stores information about its identity and the group to which it belongs. Then, it sends to the new peer the state of available groups and pipes. In this way, mobile peers are not loaded by any computation: in order to use Bluetooth to communicate with other peers, mobile peers just have to generate a service and wait to be discovered. As for the relay peer, the Bluetooth stub is to be implemented not only to support Bluetooth interactions. In fact, it also has to provide a proxy mechanism to convert Bluetooth raw messages traveling in the JXBT environment into HTTP-formed messages traveling in JXTA network over HTTP and viceversa. Moreover, since for the JXTA network only the relay peer is connected, the relay peer is in charge of associating peers to pipes and groups. We remark that after a mobile peer has been discovered, it is logically connected to other peers as they were within the Bluetooth transmission range, though belonging to other piconets. In fact, more JXBT networks are interconnected to each other through the use of JXTA, allowing mobile peers to ignore whether other peers are within transmission range (see Figure 2). Moreover, application developers that want to use JXBT do not have to take care of any implementation detail related to the use of the Bluetooth channel, since all the work is performed by our API. Programmers develop their application as for the standard JXME architecture but they can exploit the Bluetooth facilities in a transparent way. The only difference is to instantiate BTPeerNetwork objects, rather than PeerNetwork ones.
2.2
Mobile peer implementation
Whenever a mobile peer wants to enter a JXBT network, it has to initialize the connection, start a new thread, and perform the connection. The main classes needed to initialize the connection are:
1. PeerNetwork. When creating an instance of it, the user specifies the name of the peer, the group id, the inquiry maximum timeout, the URL, and whether the peer is the relay. 2. BTPeerNetwork. It is contained in the PeerNetwork. It uses the Messenger utility class to perform communications. The role of the peer (relay or mobile) is also to be specified together with the URL. 3. BTEndPoint. It is contained in the BTPeerNetwork, together with a connection pool and a message queue. It implements all the physical details of the Bluetooth communications. It is in charge of maintaining the Bluetooth connections, implementing the messenger mechanisms, and above all sending and receiving actual data. Once the connection has been initialized, the main steps needed to create the connection are: 1. Adding a message listener on the Bluetooth channel, through the BTPeerNetwork object. 2. Performing the connection on the Bluetooth channel, through the BTEndpoint object. 3. Instantiating a PeerGroup object for the groups and a Pipe object for the pipes. As a result, JXBT mobile peers have to run simple and short portions of code in order to connect themselves to the network. The Java fragment which has to be written is showed in Figure 4.
try { // open a service _service = ( S t r e a m C o n n e c t i o n N o t i f i e r ) Connector . open ( _serviceURL ) ; } catch ( IOException e ) { e . g e t L o c a l i z e d M e s s a g e () ; } while ( true ) { try { localDevice = LocalDevice . getLocalDevice () ; // accept c o n n e c t i o n s S tr e a m C o n n e c t i o n conn = _service . acceptAndOpen () ; ... synchronized ( this ) { _newConnect ion = true ; this . notifyAll () ; } } }
Fig. 4. Java code for mobile peer service generation and to wait for discovering
2.3
Relay peer implementation
Whenever a relay peer is started, as for the mobile peer, it has to initialize the connection, start a new thread, and perform the connection in order to boot as JXME relay peer.
The main classes needed to initialize the connection from the relay side are: 1. PeerNetwork. When creating an instance of it, the user specifies the identity of the peer, the inquiry maximum timeout, the URL, and that the peer is going to be the relay. 2. BTPeerNetwork. As for mobile peers, it is contained in the PeerNetwork object and uses a Messenger utility class to perform communications. The role of the peer is to be specified, together with the URL. 3. BTEndPoint. As for mobile peers, it is contained in the BTPeerNetwork object. This object handles all details about Bluetooth communication. The main steps carried out during the connection creation are: 1. Adding a message listener on the Bluetooth channel, through the BTPeerNetwork object. 2. Performing the connection on the Bluetooth channel, through the BTEndpoint object. 3. Instantiating a PeerGroup object for the groups and a Pipe object for the pipes. 4. Setting the peer ID. As a result, the relay peer has to inquiry and connect to available mobile peers. This operation is straightforward, thanks to the Bluetooth standard and the JSR-82 API. The Java code showed in Figure 5 is devoted to such task.
public void connect () throws NoPeerAvailableException , IOException { // JXME peers d i s c o v e r i n g ... _agent . startInquiry ( Dis coveryAgent . GIAC , this ) ; // wait for d i s c o v e r i n g peers - service di scover for ( int index = 0; index < _deviceCounter ; index ++) { ... int transactionId = _agent . searchService s ( _attrSet , _uuids , _devices [ index ] , this ) ; ... } // open a c o n n e c t i o n on the d i s c o v e r e d service for ( index = 0; index < _ serviceCounter ; index ++) { ... // try to connect try { ... St r e a m C o n n e c t i o n conn = ( StreamConn ec ti on ) Connector . open ( _services [ index ]) ; RemoteDevice remoteDevice = RemoteDevice . getRe mot eD evi ce ( conn ) ; B T C o n n e c t i o n H a n d l e handle = new B TC o nn e ct i on H an d le ( conn , remoteDevice ) ; _ co n ne c ti on P oo l . addConnection ( handle ) ; ... } } }
Fig. 5. Java code for connection of a relay peer to a discovered mobile peer
More details about our implementation can be found in the extended version of this paper [11].
3
Related Work
Both P2P and ubiquitous computing are actual topics in the scientific community. Therefore, researchers have put a lot of effort on designing P2P protocols which are suitable for mobile wireless devices. In [14] it has been presented Jadabs, a dynamic lightweight architecture for resource constrained device, Jadabs allows to build a distributed peer to peer infrastructure similar to JXTA. However, Jadabs cannot run on CLDC/MIDP because of the limitations imposed by CLDC (reflection and dynamic class loading are not supported). Therefore, the Jadabs-CLDC project [3] was carried out in order to overcome this limit. Such a project is based on the synergy between Jadabs and JXME. The project Jadabs-JXME-BT [4] was aimed to provide Bluetooth support to Jadabs-CLDC. However, this project cannot be considered as a real implementation of JXME over Bluetooth. In fact, Jadabs-JXME-BT only implements the JXME messaging system, it does not provide mechanisms to create and handle pipes and groups. Finally, it lacks of the management of modules and advertisement. As a result, Jadabs-JXME-BT does not provide a full JXME-compliant interface. Other research is targeted to achieve a synergy between MANET and P2P in mobile environment. For instance, PROEM [17] is a mobile middleware for ad-hoc networks based on WLAN within J2ME. Mobile Chedar [19] is similar to PROEM, but it provides support for peers with fixed P2P network connections. It uses Bluetooth as the underlying communication channel for supporting Chedar P2P protocol (see [18]). The Java Community Process released the JSR-259 Ad-Hoc Networking API [5] to support communication between nodes in an ad-hoc network implemented in J2ME, allowing developers to deploy P2P application over mobile phones. However, no implementation is available yet. Other interesting works are targeted to cooperative peer-to-peer applications running on mobile phones. For instance, issues related to development of peerto-peer games in J2ME using Bluetooth has been deeply investigated in [24]. A peer-to-peer framework to support rapid development of mobile collaborative applications has been presented in [25]. It uses Bluetooth as the communication channel. Both papers rely on the P2P framework Peer2ME [21] which is targeted to Bluetooth-enabled mobile devices. However, none of the cited projects achieves our goal of providing JXME with the required support to use Bluetooth as the communication channel. The JXBT framework fulfills our requirements. In Figure 6, we summarize the main differences among JXBT and some related projects.
Properties Lightweight Full compliance to JXME Support for groups Support for pipes Support for synchronized multithreaded queues Open-Source Based on standard protocol Overcome piconet range constrain
Peer2 ME Yes No Yes No
Mobile JadabsChedar JXME-BT Yes Yes No No No No No No
JXBT Yes Yes Yes Yes
No
No
No
Yes
No No
No No
Yes Yes
Yes Yes
No
Yes
Yes
Yes
Fig. 6. Differences between JXBT and related projects
4
The BlueIRC application
In order to provide a proof-of-concept of the applicability of our framework in a real world scenario, we developed an application, named BlueIRC working on top of the JXBT framework. BlueIRC is essentially an application enabling the creation of a chat among Bluetooth-enabled mobile devices, without requiring them to be within Bluetooth’s transmission range. This application has been tested both in a simulation environment and by using real smartphones. As we have shown in Figure 2, peers within the Bluetooth’s range (piconet) are interconnected through the JXBT infrastructure. Then, relay peers provide access to the JXTA networks, thus allowing piconets to interconnect to each other. In this way, mobile devices network using Bluetooth are not bounded to the range of the Bluetooth layer. Furthermore, peers do not even need to know whether interacting peers are effectively within their transmission range. Figure 7 gives an overview of how BlueIRC works; Message 1 is exchanged within the same JXME network; while, Message 2 is handled by the framework and it is sent in a transparent way to a peer belonging to a different JXME network. As we can see in Figure 7, even when two mobile peers are in the same piconet, messages have to be processed by the relay peer. This limitation is due to the fact that the JXME proxyless version, as yet, only supports devices using CDC, not CLDC, eliminating mobile phones. However, as soon as an implementation will be released, we plan to release the updated version of JXBT. The BlueIRC chat provides two different chat modalities: the One-on-One Chat and the Public Chat Room. In the first case the user interacts with a single user of a group; while, in the second case, the user interacts with all the users of a group. The BlueIRC application provides users with several features, such as: selection of groups, selection of the chat modality (single or multicast), sending and receiving of messages and/or files, management of files and directory, contacts, and personal agenda. Once the BlueIRC application has been started, the user has to confirm the connection to the system. As stated in Section 2, any peer entering the networks
Fig. 7. How BlueIRC works
has to wait to be discovered from the JXTA relay peer. At this stage, the relay peer contacts via Bluetooth the new peer, which sends an identifying JXME message and gets the list of available groups. Now, the peer is connected to the JXTA network and he can choose a group sending a request to join it. As a response, it gets the list of all the peers in the group, both the ones in the same piconet and the ones reachable through the JXTA middle layer. At this point, the user can exploit all the BlueIRC’s features. As an example, the Figure 8 shows a screenshot of BlueIRC running in the One-on-One Chat modality. Whenever a user sends a message, a JXME message is sent to the relay peer. This checks whether the receiver is in the list of local (in-the-range) mobile devices. In this case, it delivers the message (see Message 1 of Figure 7), otherwise it has to route the message in the JXTA network over a pipe, so that the correspondent relay peer can appropriately deliver the message (see Message 2 of Figure 7). Figure 9 shows an example of the Public Chat Room modality. The relay peer receiving the message broadcasts the message to local (in-the-range) peers of the group. It also sends the message on the JXTA network over the pipe to allow other relay peers to spread the message to other peers of the group. BlueIRC is designed to handle the two chat modalities simultaneously allowing users to easily switch between them. In fact, the BlueIRC user interface presents two windows, a bigger one with the active chat modality and a smaller one for the not active one. Moreover, if the application is in the One-on-One Chat modality and a broadcasted message is received (i.e., the message is sent in the Public
Fig. 8. BlueIRC in the One-on-One Chat modality
Chat Room modality), then it will not be discarded but it will be prompted in the smaller window. The same happens in the opposite situation. Using the BlueIRC application, users can send and receive files. In fact, it has been implemented the support to access and manage devices’ filesystem. Users can also browse files, see and edit their properties, or delete them. This feature was realized through the use of the JSR-75 API [6], which nowadays it is supported by almost all J2ME-powered smartphones.
5
Performance Evaluation
In this section, we analyze the performance of JXBT and BlueIRC in order to evaluate their lightness and usability in real world scenarios. To this aim we set up the following test bed: – JXTA network: 2 PCs IBM ThinkCentre 50, Pentium 4 2,6 GHz with 760 MB RAM, running Windows XP Professional SP 2, acting as relay peers for the JXME networks. The two PC were equipped with Bluetooth TrendNet TBW-102UB USB dongles. We used the BlueCove [2] implementation of the JSR-82 Bluetooth API for J2ME. – Peer 1: Nokia N73 mobile phone running Symbian OS 9.1, compliant with MIDP 2.0, JSR-82, and JSR-75 standards. – Peer 2: Nokia N70 mobile phone running Symbian OS 8.1a, compliant with MIDP 2.0 and JSR-82 standards. The first test was run to evaluate the overhead taken by our framework to send a file within the BlueIRC application. We have compared times to send files for the following applications: 1. BlueIRC in One-on-One modality.
Fig. 9. BlueIRC in the Public Chat Room modality
2. A simple J2ME midlet sending files over Bluetooth. Actually, only using BlueIRC it is possible to exchange files over Bluetooth without requiring devices to be within Bluetooth transmission range. However, we wanted to evaluate the overhead required by the JXBT infrastructure, so we restricted this test to a scenario where two devices were within range and were using the same relay peer to enter the JXTA/JXME network. We remark that JXBT suffers from the limitation of requiring all communications to be routed through the relay peer. However, this limitation is related to the lack of a proxyless JXME implementation for the CLDC. As soon as it will be released, we plan to update JXBT so that it will use the proxyless JXME rather than the proxy-based version. Figure 10 shows times required to send files of size ranging from 1 KB to 55 KB with an incremental step of 1 KB. Times show that BlueIRC performs around 2.2 times slower than the simple J2ME application which exchanges data directly without the use of an intermediate device (relay peer). However, to use J2ME, devices must be within Bluetooth transmission range; while, in our framework this is not required. With the introduction of a proxyless version of JXME for CLDC, the differences in Figure 10 will be drastically reduced. The 2.2 factor is what we have to pay to overcome the Bluetooth transmission range limitation. In order to allow two Bluetooth device to communicate even though they are not within transmission range, we should add to times of Figure 10 the delay of the JXTA network, but this is independent from our JXBT framework. All JXTA-based applications incur in such a delay. Actually, several works evaluating JXTA performance have been published during last years, such as [15], [13], and [9]. The second test was aimed to evaluate the efficiency in exchanging messages within chat applications. We have compared times to exchange messages for the following applications:
Fig. 10. Times for sending a file
1. BlueIRC in One-on-One modality. 2. BlueChat [1], the most famous chat application for J2ME and Bluetoothenabled mobile phones. BlueChat does require two devices to be within Bluetooth transmission range to exchange a message, while BlueIRC does not. As for the first test, also in this test we do not consider the transmission delay induced by the JXTA framework. Figure 11 shows times required to send a simple Hello message. Tests were repeated 50 times in order to compute a significant average. Times show BlueIRC
Fig. 11. Times for sending a message
performs around 3 times slower than BlueChat, which exchanges data directly without the use of an intermediate device (relay peer).
6
Conclusions and future works
Limitation Textual message exchange No broadcast/groups support Communication within piconet range Message routed through a relay peer
Midlet
Blue BlueIrc Chat
Solution
Yes
Yes
No
None
Yes
Yes
No
None
Yes
Yes
No
No
No
Yes
Use scatternets if a formation algorithm is released for J2ME Update JXBT with J2ME proxyless version for CLDC
Fig. 12. Limitations of analyzed applications and possible solutions
In this paper, we have presented JXBT a Bluetooth-based implementation for a JXME infrastructure. We also proposed a useful chat application, namely BlueIRC, running on top of JXBT. We notice that using JXBT results in a performance degradation compared to other available chat applications. But, this is due to the JXME proxyless constrain for CLDC that, instead of allowing devices to communicate directly, forces to route all communications through the relay peer. We will easily overcome this limitation as soon as a proxyless implementation of JXME for the CLDC will be released. We remark that, only using JXBT users can interconnect more piconets and exploit all Bluetooth features beyond Bluetooth transmission range. It would be possible to interconnect more piconets to form a scatternet. But, to our knowledge, only theoretical results are available, no real implementation has been deployed yet. In Figure 12, we summarized the limitations of the three applications we analyzed in this paper as well as possible solutions. As future works, we will release a new version of JXBT as soon as the JXME proxyless version for CLDC will be available. Moreover, we plan to set up a simulation environment in order to test the framework scalability both in the number of supported relay peers and in the number of connected mobile peers. We also want to tune all parameters and timeouts in order to improve performance. Finally, we would deploy more mobile peers in order to compare simulation results against real world devices in noisy or crowded environments.
References 1. 2. 3. 4.
BlueChat. http://www.getjar.com/products/7545/BluetoothChat. BlueCove. http://sourceforge.net/projects/bluecove/. Jadabs-CLDC. http://jadabs.berlios.de/jadabs-cldc/. Jadabs-JXME-BT. http://jadabs.berlios.de/jadabs-cldc/multiproject/jxme-btj2me/.
5. JSR 259: Ad-Hoc Networking API. http://jcp.org/en/jsr/detail?id=259. 6. JSR 75: PDA Optional Package for the J2ME Platform. http://jcp.org/en/jsr/detail?id=75. 7. JSR 82: Java APIs for Bluetooth. http://www.jcp.org/en/jsr/detail?id=82. 8. The JXTA Project. http://www.jxta.org. 9. G. Antoniu, P. Hatcher, M. Jan, and D. A. Noblet. Performance evaluation of JXTA communication layers. In Proceedings of the Fifth IEEE International Symposium on Cluster Computing and the Grid (CCGrid’05), volume 1, pages 251–258, 2005. 10. A. Arora, C. Haywood, and K. S. Pabla. JXTA for J2ME Extending the Reach of Wireless With JXTA Technology. JavaOne Conference, 2002. 11. C. Blundo and E. D. Cristofaro. JXBT: JXME over Bluetooth. Technical report, Universit` a di Salerno, http://www.dia.unisa.it/dottorandi/emidec/JXBTExtended.pdf. 12. B. Chatschik. An overview of the Bluetooth wireless technology. IEEE Communication Magazine, 39:86–94, 2001. 13. Z. Dai, Z. Fang, X. Han, F. Xu, and H. Yang. Performance Evaluation of JXTA Based P2P Distributed Computing System. In Proceedings of the 15th International Conference on Computing (CIC’06), pages 391–398, 2006. 14. A. Frei and G. Alonso. A dynamic lightweight Platform for Ad-Hoc Infrastructures. In Proceedings of the Third IEEE International Conference on Pervasive Computing and Communications (PerCom 2005), pages 372–382, 2005. 15. E. Halepovic and R. Deters. The jxta performance model and evaluation. Future Gener. Comput. Syst., 21(3):377–390, 2005. 16. J. E. Keogh. J2ME: The Complete Reference. McGraw-Hill, 2003. 17. G. Kortuem. PROEM: A Middleware Platform for Mobile Peer-to-Peer computing. SIGMOBILE Mob. Comput. Commun. Rev., 6(4):62–64, 2002. 18. N. Kotilainen, M. Vapa, M. Weber, J. T¨ oyryl¨ a, and J. Vuori. P2PDisCo - Java Distributed Computing for Workstations Using Chedar Peer-to-Peer Middleware. In Proceedings of the 19th IEEE International Parallel and Distributed Processing Symposium (IPDPS’05), pages 182–185, 2005. 19. N. Kotilainen, M. Weber, M. Vapa, and J. Vuori. Mobile Chedar - A Peerto-Peer Middleware for Mobile Devices. In Proceedings of the Third IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOMW ’05), pages 86–90, 2005. 20. C. Law, A. K. Mehta, and K.-Y. Siu. A new Bluetooth scatternet formation protocol. Mobile Networks and Applications, 8(5):485–498, 2003. 21. C.-H. W. Lund and M. S. Norum. The Peer2Me Framework - A Framework for Mobile Collaboration on Mobile Phones. Master’s thesis, Department of Computer and Information Science - Norwegian University of Science and Technology, 2005. 22. R. Schollmeier. A Definition of Peer-to-Peer Networking for the Classification of Peer-to-Peer Architectures and Applications. In Proceedings of the First International Conference on Peer-to-Peer Computing (P2P’01), pages 101–102, 2001. 23. O. Tomarchio. Progetto IS-MANET: JXTA Middleware for Mobile Ad-Hoc Networks. Technical report, http://zeus.elet.polimi.it/ismanet/Documenti/bo20040721-diit.ppt. 24. A. I. Wang, M. S. Norum, and C.-H. W. Lund. Issues related to development of wireless peer-to-peer games. In Proceedings of the Advanced International Conference on Telecommunications and International Conference on Internet and Web Applications and Services (AICT-ICIW’06), pages 115–120, 2006.
25. A. I. Wang, M. S. Norum, and C.-H. W. Lund. A peer-to-peer framework for mobile collaboration. In Proceedings of the 10th IASTED International Conference on Software Engineering and Applications (SEA 2006), 2006. 26. G. V. Zaruba, S. Basagni, and I. Chlamtac. Bluetrees-Scatternet Formation to Enable Bluetooth-Based Ad Hoc Networks. In Proceedings of the IEEE International Conference on Communications, ICC2001, volume 1, pages 273–277, 2002.