Mobile Communication Middleware

Size: px
Start display at page:

Download "Mobile Communication Middleware"

Transcription

1 Mobile Communication Middleware Lekometsa Mokhesi Supervised by: Prof. Ken MacGregor Department of Computer Science University of Cape Town October 2007

2 Abstract This report presents a mobile middleware toolkit, which is a framework that enables application developers to develop ubiquitous, protocol and communication technology independent applications. Currently, communication between mobile devices and other mobile devices and servers requires the knowledge of the type of communication and the appropriate communication protocol. This has unfortunate results in that an application which uses one of the SMS protocols cannot be run using an Always on protocol such as used by GPRS without being changed. Presented in this report is a Mobile Middleware toolkit which provides an application developer with a series of Application Programming Interface which can be used irrespective of the underlying protocol to be used. Thus, the reconfiguration for different network protocol takes place in reconfiguring the Middleware and the application remains unchanged. Keywords: Middleware, Mobile Computing, Networks, Wireless, Interoperability 2

3 3

4 Table of contents 1. Introduction Motivation Project Outcomes Background and Related Concepts Message Oriented Middleware Message queuing Publish/Subscribe Java Messaging Service JMS overview JMS API Architecture Message Queuing Publish-Subscribe JMS API Programming Model JMS API Building Blocks JMS Administered Objects Wireless Networks Wireless LANs Mobile Cellular Networks Personal Area Networks Java 2 Micro Edition Configurations Profiles Optional Packages CVM and KVM J2ME and JMS Design Middleware Overview Middleware Requirements Design Decisions Choosing Application Layer Protocols Choosing a JMS platform Asynchronous Messaging Platform Mobile devices as JMS clients Jtom (Java to Mobile) Jtom Technology Overall toolkit design Communication in disruptive environments

5 4. Implementation Overview Jtom v JBoss Application Server Full API Project Evaluation Conclusion Future Work More Protocols Autonomic Communication.21 8 References.22 5

6 List of figures Figure 1: Basic architecture of JMS System..4 Figure 2: Point to Point Messaging...5 Figure 3: Publish/Subscribe Messaging....6 Figure 4: JMS API Programming Model.. 7 Figure 5: Java 2 Micro Edition (J2ME).8 Figure 6: ibus/mobile Architecture.11 Figure 7: Architectural overview of jtom 18 Figure 8: Class diagram for the JMS framework in toolkit Figure 9: Components of the JMS-SIP System Figure 10: JMSIPO welcome screen Figure 11: JMSIPO JMS settings.24 Figure 12: JMSIPO chat sending and receiving

7 1. Introduction Computing is becoming increasingly mobile and ubiquitous. We are approaching a point whereby there is an increased demand for a number of applications and services for mobile users [1]. Mobility has now become the central aspect of everyday life with mobile users expecting to be always-best-connected in whatever location they are and in whatever task they are performing [2]. This creates a serious need for the development of ubiquitous applications. In the ubiquitous paradigm, the user can have access to services or run their applications anywhere, at any time, and with any terminal device he or she desires to use. This notion of anywhere/anytime access behaviour of such ubiquitous applications necessitates the availability of multitechnology systems and software supporting flexible communication 1.1. Problem Statement Ubiquitous applications in multi-technology systems introduce great challenges to application developers. This is because; communication-technology based applications are currently inflexible in that they are built specific to a communication technology and protocol to be used. Consequently, if the application has to run on an alternative protocol, it has to be changed, or at worse redesigned. For instance, because of perpetual compromise of security systems in financial institutions i.e. banks, strong security measures are constantly being re-evaluated and implemented to counteract this adamant security attacks. One of the measures is the use of one-time passwords in banks for the use in electronic banking. This password is often sent from the bank s backend application to the customer s mobile phone via SMS and can be used only for that session. SMS utilizes asynchronous communication and has a delivery validity of 48 hours. This means, in high GSM network usage, the customer might not receive the password immediately, but might be forced to wait to up to 48 hours to receive the password or in worst case, not receive it at all because it expired. This is undesirable, especially in electronic transactions, hence; demands for a new kind of approach that allows alternative methods of messaging to be used Proposed Solution The ability for a mobile application to utilize any application layer protocol that satisfies its requirement becomes increasingly important. As a result, application developers overload can be considerably reduced by means of middleware, which provides a level of abstraction for the application layer and hides the common functionalities and complexity of the underlying infrastructure behind generic and 7

8 simple interfaces [1], together with a toolkit that provides application programming interfaces which can be used irrespective of the underlying communication protocol to be used Project Outcomes The project developed a middleware toolkit which is built on a synergy of two representative application layer protocols. This toolkit is to provide application developers a series of interfaces which can be used irrespective of the underlying protocol to be used Project Evaluation To test the effectiveness of the toolkit, a test application will be developed using the toolkit. This test application will be developed for one protocol and observing how easy it is to port it to another protocol Division of Work The middleware functionality caters for two types of applications: Synchronous/Real time and asynchronous/loosely coupled messaging applications. As such both were divided into separate sections and assigned accordingly to the two member of the Mobile Middleware team. For synchronous applications, SIP (Session Initiated Protocol) was investigated, and JMS (Java Messaging Service) for loosely coupled applications Report Outline The report is divided as follows: section 2 gives the background and related concepts, section 3 gives the middleware design, section 4 will follow with the implementation, section 5 with project evaluation, section 6 gives the conclusion and section 7 will conclude with the future work. 8

9 2. Background and Related concepts 2.1. Middleware Middleware refers to software that mediates between an applications program and other entities e.g. the network, operating system or other applications programs. It manages the interaction between disparate applications across the heterogeneous computing platforms. Middleware, essentially, is a tool to make a distributed system deployment easier. One of the advantages of middleware is it provides location transparency, which means that components can be migrated between computers without any changes required to other components. There are different types of middleware including transactional middleware, message oriented middleware, object middleware and procedural middleware. This report will deal exclusively with message oriented middleware particularly in mobile computing paradigm. Before continuing with MoM (Message oriented middleware), a brief description of the other types of middleware is given Transactional Middleware Transactional middleware supports the development of systems involving transactions running across multiple hosts. A transaction ensures that the operations required will occur either on all hosts in the system, or no hosts in the system. Transactional middleware uses the two-phase commit (2PC) protocol to implement these transactions. The Distributed Transaction Processing (DTP) protocol defines a programmatic interface for 2PC, which is used by most relational database management systems. This allows servers and database management systems to be easily integrated. Transactional middleware supports both synchronous and asynchronous communication between hosts [23] Procedural Middleware Procedural middleware supports remote procedure calls (RPC) as its communication model. In this model, communications can be made by using primitives similar to local procedure calls. Specifically, a server exports several procedures for communication and a client invokes these procedures. Then, procedural middleware marshals an RPC into several messages and vice versa [23] Object Middleware 9

10 Object middleware is an evolution from procedural middleware. It adds to middleware the concept of object-oriented programming such as object identification through references and inheritance. This type of middleware enables independent development and distribution of each component since each interaction of components is defined by interfaces [23] Message Oriented Middleware Message Oriented Middleware MoM is a specific class of middleware that supports the exchange of general-purpose messages in a distributed, also referred to as uncoupled or loosely coupled application environment. MoM operates on the principles of message passing and/or message queuing supporting both synchronous and asynchronous interactions between distributed computing processes. MoM system ensures message delivery by using reliable queues and by providing the directory, security, and administrative services required to support messaging [19]. The loosely coupled architecture of MoM provides several advantages over traditional client/server systems. These advantages include: High degree of anonymity between message producer and consumer in a system, as for a consumer it does not matter which producer sent a given message. This in turn makes messaging systems very flexible and highly scalable, as entire subsystems can be replaced without the need to replace other parts of the system [3]. Persistent storage to back up the message transfer medium. This means that the sender and receiver do not need to connect to the network at the same time (asynchronous delivery). This becomes particularly useful when dealing with intermittent connections, such as those in mobile communications Latency hiding: In client/server systems, a client is typically suspended while its request is transmitted to the server, processed by the server, and a reply sent back to the client. With MoM, however, the request and reply phases are fully decoupled. Once a request message from the client is transmitted, the client can be freed and continue with other tasks. There are two common messaging paradigms supported by current MoM systems: Message queuing and Publish/Subscribe Message queuing 10

11 The message queuing paradigm is a one-to-one model, where a message sent by a message producer gets delivered to one of the interested message consumers. The main difference between this and the publish/subscribe paradigm is that only one of the interested message consumers will receive any one message. This one-to-one message distribution is useful in applications where there needs to be a one-to-one communication, but where the identity of the receiving client is less important [3]. An example of a messaging product using the message queuing model is that of IBM s MQSeries [4] Publish/Subscribe Also referred to as topic-based messaging is an asynchronous messaging paradigm whereby the providers of information (publishers) are decoupled from the consumers of that information (subscribers) using a broker [5].Subscribers express interest in one or more classes, and only receive messages that are of interest, without knowledge of what (if any) publishers there are [6]. An example of a messaging product using the publish/subscribe model is that of Tibco Inc. [7]. JMS is the MoM standard for Java Java Messaging Service JMS overview The Java Message Service (JMS) is a specification developed by Sun Microsystems that provides a common way for Java applications to access each other via messageoriented middleware (MoM). The Java Message Service (JMS) was designed to make it easy to develop business applications that asynchronously send and receive business data and events. It defines a common enterprise messaging API that is designed to be easily and efficiently supported by a wide range of enterprise messaging products JMS API Architecture JMS Producer JMS Sever JMS Consumer Point-to-Point Queues Message Producer Messages Messages Message Consumer Publish- Subscribe Topics Fig 1: Basic architecture of JMS System 11

12 The JMS system is composed of the following parts: JMS provider (JMS Server) is a messaging system that implements the JMS interfaces and provides the administrative and control features. JMS clients are the programs or components that produce or consume messages. Messages are the objects that communicate information between JMS clients. Administered objects are preconfigured JMS objects created by an administrator for the use of clients. The two kinds of JMS administered objects are destinations and connection factories Message Queuing Message queuing also referred to as point-to-point (PTP) built around the concept of message queues, senders, and receivers. Each message is addressed to a specific queue, and receiving clients extract messages from the queue(s) established to hold their messages. Queues retain all messages sent to them until the messages are consumed or until the messages expire [8]. Msg Msg Client 1 Client 2 Queue Consumes Sends Acknowledges Fig 2: Point to Point Messaging Publish-Subscribe [8] In this model clients address messages to some node in the content hierarchy. Publishers and subscribers are generally anonymous and may dynamically publish or subscribe to the content hierarchy. The system takes care of distributing the messages arriving from a node s multiple publishers to its multiple subscribers. 12

13 The destination in the publish/subscribe domain is called a topic. The simple publish/subscribe example in the diagram below contains a single topic and two clients. One client subscribes to the topic and the other publishes messages to the topic. The topic takes care of distributing messages from the publisher to the subscriber. Assume the topic and both clients already exist and are connected as illustrated. Subscribes Client 2 Client 1 Msg Publishes Topic Delivers Msg Subscribes Client 3 Delivers Msg Fig 3: Publish/Subscribe Messaging 2.4. JMS API Programming Model JMS API Building Blocks The basic building blocks of a JMS application consist of: Administered objects: connection factories and destinations. Connections Message producers Message consumers Messages Fig 3 shows how all these objects fit together in a JMS client application. 13

14 Connection Factory Creates Connection Creates Message Producer Creates Session Creates Message Consumer Sends to Creates Receives from Message Destination Destination Fig 4: JMS API Programming Model JMS Administered Objects Two parts of a JMS application, destinations and connection factories, are best maintained administratively rather than programmatically. This is because the way in which these two entities are implemented can vary greatly from JMS provider to JMS provider. JMS clients access these objects through interfaces that are portable, so a client application can run with little or no change on more than one implementation of the JMS API. The other objects are handled programmatically. A connection factory is the object a client uses to create a connection to a provider. A connection factory encapsulates a set of connection configuration parameters that has been defined by an administrator. A destination is the object a client uses to specify the target of messages it produces and the source of messages it consumes. In the PTP messaging domain, destinations are called queues. In the pub/sub messaging domain, destinations are called topics. A JMS application can use multiple queues or topics (or both). 14

15 A connection encapsulates a virtual connection with a JMS provider. A connection could represent an open TCP/IP socket between a client and a provider service daemon. You use a connection to create one or more sessions. A session is a single-threaded context for producing and consuming messages. A session can be used to create the message producers, message consumers, messages, queue browsers, temporary queues and topics. A message is the entity sent between producers and consumers and can be an arbitrary Java object. A message producer is an object that is created by a session and used for sending messages to a destination. If the destination is a queue, the producer is called a sender; if the destination is a topic, the producer is called a publisher. A message consumer is an object that is created by a session and used for receiving messages sent to a destination. If the destination is a queue, the consumer is called a receiver; if the destination is a topic, the consumer is called a subscriber. A message listener is a type of message consumer used to consume messages asynchronously. A message listener will be set by a JMS client on a destination, and if a message is due to the client, the message listener s onmessage() method will be called. In the onmessage() method, the appropriate action upon message receipt needs to be defined Wireless Networks It is imperative in the context of mobile applications to briefly discuss wireless networks. A bearer is defined as that which carries messages or is sent on errands. In the context of wireless bearers, it means anything that can transport information from one device to the other of which one or both of these devices are mobile. Wireless bearers can be characterised as: Wireless Area Networks, Mobile Cellular Networks and Personal area networks Wireless LANs A wireless LAN or sometimes called a Local Area Wireless Network is one in which a use can connect to the local area network through a wireless radio connection Mobile Cellular Networks A Mobile cellular network can be characterised as xg, where x refers to the number corresponding to the level and G is the generation. Mobile Cellular Networks can also be classified as either connection oriented or packet switched. In connection oriented 15

16 networks, the sender of the information establishes a connection with the service provider before any data can be send. In packet switched networks, a device can send and receive packets without the need to connect to the service provider. The bearers in the mobile cellular networks are: 1G - First generation. 1G refers to the initial category of mobile wireless networks that used only analog technology and were developed primarily for voice services. 2G - Second generation. 2G refers generically to a category of mobile wireless networks and services that use digital technology. 2G wireless networks introduce support for data services. These networks have rather low speed. Examples include: GSM - GSM (Global System for Mobile communication) offers data transmission speeds of up to 9,600 bps. AMPS/DAMPS - sometimes spelled DAMPS, is a digital version of Advanced Mobile Phone Service. HSCSD - High-Speed Circuit-Switched Data (HSCSD) is circuit-switched wireless data transmission for mobile users at data rates up to 38.4 kbps, four times faster than the standard data rates of GSM. 2.5 G - Second generation plus. 2.5G refers generically to a category of mobile wireless networks that have a packet data overlay built on top of the circuit-switched voice network to support higher data rates than 2G mobile networks (2G networks support data in a circuit-switched model). Examples include: GPRS - General Packet Radio Services (GPRS) is a packet-based wireless communication service that promises data rates from 56 up to 114 Kbps and continuous connection to the Internet for mobile phone and computer users. GPRS is based on Global System for Mobile (GSM) communication and complements existing services such circuit-switched cellular phone connections and the Short Message Service (SMS). EDGE - Enhanced Data Rates for Global Evolution, a faster version of the GSM wireless service, is designed to deliver data at rates up to 384 kbps and enables the delivery of multimedia and other broadband applications to mobile phone and computer users. EDGE is a packet-oriented bearer delivering much higher speed than GPRS, anticipating the speed advances of UMTS. 3G - Third generation. 3G refers generically to a category of next-generation mobile networks which operate at a higher frequency bandwidth (typically 2.1 GHz and higher) and have a larger channel bandwidth. This enables 3G networks to support very high data rates, up to 2 Mbps. With the higher bandwidth, more data and 16

17 multimedia services are possible. 3G refers to the radio network and RF technology, and does not affect the switching core Personal Area Networks A personal area network (PAN) is the interconnection of information technology devices within the range of an individual person, typically within a range of 10 meters. Personal area network bearers include: Bluetooth - Bluetooth is an industrial specification for wireless personal area networks (PANs). Bluetooth provides a way to connect and exchange information between devices such as mobile phones, laptops, PCs, printers, digital cameras, and video game consoles over a secure, globally unlicensed short-range radio frequency [10]. Infrared - IR wireless is the use of wireless technology in devices or systems that convey data through infrared (IR) radiation. Infrared is electromagnetic energy at a wavelength or wavelengths somewhat longer than those of red light [11] J2ME (Java 2 Micro Edition) Java ME platform is a collection of technologies and specifications that can be combined to construct a complete Java runtime environment specifically to fit the requirements of the small device market [9]. Essentially, J2ME was introduced to provide programmers with a programming language with the benefits of Java, such as portability and familiarity, which would run on a large number of mobile devices. In order to achieve this, J2ME is not simply a cut down version of Java, but is designed to be modular, so as to best fit onto the full spectrum of resource availability [3]. There are three concepts that undergird J2ME technology: Configurations, Profiles and Optional packages. 17

18 Java 2 Enterpris e Edition (J2EE) Java 2 Standard Edition (J2SE) CDC MIDP CLDC Profile Level Configurati on Level Java Virtual Machine KVM Fig 5 Java 2 Micro Edition (J2ME) Configurations Configuration is a complete java runtime comprising of three components: A java virtual machine to execute java bytecode. Native code to interface to the underlying system. A set of core java runtime classes. Different configurations define different requirements in order for device to use them. Although does not provide a complete java environment, the set of core classes is small and hence should be enhanced with additional classes provided by J2ME profiles. J2ME defines tow configurations: The Connected Limited Device Configuration (CLDC) and the Connected Device Configuration (CDC). CLDC defines a base set of application interfaces and virtual machines for resource constrained devices like mobile phones, pagers and personal digital assistants. These devices are characterised by small amounts of memory and/or slow processors. The CDC on the other hand includes a full java virtual machine and much larger set of core classes Profiles A profile adds domain-specific classes to the configuration to complement the missing functionalities. More specifically, it defines classes for building interactive applications. Several profiles have been defined up to age. Mobile Information Device Profile (MIDP) which is the main focus, a CLDC-based profile for running 18

19 applications on cell phones and pagers with small screens, wireless HTTP connectivity and limited memory. Other profiles include: Personal Digital Assistant Profile (PDAP), Foundation Profile (PF) and the Personal Basis Profile Optional Packages An optional package is a set of Application Programming Interfaces in addition to common functionalities that are not really to any specific classification, configuration or profile. For example, Bluetooth support is defined as an optional package. It cannot be part of a profile because none of the behaviours of a profile can be optional. If a device supports a profile, it must support it in its entirety. This would however limit the profile only to Bluetooth enabled devices CVM and KVM The other important concepts in J2ME are: KVM and CVM. These are the names of the java virtual machines for the CLDC (KVM) and the CDC (CVM). These were written specifically to work in the resource constrained environments of handheld or embedded devices J2ME and JMS JMS provides an acceptable method for communicating in the wireless domain, where unreliable connectivity is expected. As discussed by [12], JMS describes the interface to the messaging middleware; the implementation of the middleware is not specified. Also, integration of wireless mobile devices (such as phones, pagers, personal digital assistants or laptops) is not specified. Existing messaging middleware allows one to access the middleware from non-mobile devices (personal computers or server computers) over wired networks. These networks usually run communication protocols such as TCP/IP, HTTP or SSL. Supporting wireless mobile devices requires the vendor of the middleware to implement a message transmission protocol atop a wireless transport protocol (such as WAP, GSM, SMS, GPRS, or UMTS) and to integrate this message transmission protocol into the middleware. This leads to limited applicability for the following reasons: State of the art JMS messaging middleware requires more computer memory than is available on mobile devices. Mobile devices, which are often disconnected from a corporate network, are unsupported in state of the art JMS messaging middleware products. 19

20 Wireless protocols such as WAP, SMS, GPRS or UMTS are not supported by state of the art JMS messaging middleware products, unless the TCP/IP, HTTP or SSL protocol is used atop those wireless protocols. Though state of the art JMS messaging middleware products support communication protocols such as TCP/IP, HTTP, and SSL, they do not support any other communication protocols. Further, there are considerable performance impacts, as TCP, HTTP or SSL were designed for wired networks and thus do not perform well on wireless networks [12]. Because of the challenges outlined above, the implementation of JMS on mobile devices has not received much attention from the research community. Most of the solutions are either geared towards J2ME applications or JMS desktop applications but not the synergy of both. An example is Nirvana [13] which is a message oriented middleware solution that supports JMS. Nirvana comes with two products: Nirvana Enterprise and Nirvana JMS. Nirvana JMS provides only JMS functionality, while Nirvana Enterprise includes other MoM functionalities together with JMS. Nirvana provides a JMS implementation that is built on top of the Nirvana API. Nirvana's JMS implementation provides topic and queue functionality as per the JMS 1.1 specification [13]. Although, Nirvana defines a J2ME API that allows transparent access to content across Nirvana servers, this does not include JMS implementation on J2ME, hence can not be used as a JMS client. Other wireless MoM solutions in the market do not provide full implementation of the JMS on J2ME but rather build their J2ME messaging functionality on the Wireless Messaging API [14]. Example of such a middleware solution is jtom (Java to Mobile) [15]. jtom is a message-oriented middleware for interactive communication with application servers and legacy systems. It offers the developer a JNDI (Java Naming and Directory Interface) for the access to remote systems. Based on JNDI jtom enables the use JMS (Java Messaging Service). The implementation of the JMS-interface inside the jtom-framework is oriented at the WMA-implementation (Wireless Message API, JSR-120) for sending and receiving SMS/MMS. For the moment there is no difference between sending a SMS or a JMS [15]. As such, this provides a very limited functionality of JMS, the developer is only limited to the use of JNDI in order to lookup JMS objects on the JMS provider. The jtom server handles part of the JMS programming for the developer. E.g. JMS defines two administered objects: Connection factory and destinations. Jtom provides the JDNI to lookup this objects, and thereafter, the jtom server creates either a topic connection factory or a queue connection factory depending on the JDNI lookup object. Thereafter, the server creates and maintains a session on behalf of the J2ME client to the JMS provider. Ultimately, the server does a WMA to JMS conversion on messages to and from the JMS provider. 20

21 The developer does not have other JMS functionalities like: creating their own temporary JMS queues, which exist at runtime only for the duration of a connection. Only that connection can create MessageConsumers for the temporary JMS queue; for example, for use as the JMSReplyTo queue for service requests [20]. The only product in the market at the date of writing this document that provides full JMS implementation on J2ME is ibus//mobile from SoftWired [16], ibus//mobile makes use of wireless JMS (WJMS), a lightweight implementation of JMS. WJMS is capable of implementing both point-to-point and publish/subscribe in a Java library of only 70k, and at run-time, an ibus//mobile application requires as little as 50k heap space. The figure below shows the ibus//mobile architecture Fig 6 ibus/mobile Architecture 1 The components of this architecture are a JMS provider, a mobile JMS gateway, and the WJMS client library. The JMS gateway sits in between the clients and JMS provider. To the JMS provider, the gateway appears to be a regular JMS client. From the clients' point of view, however, the gateway acts as a communications hub and message format translator. The gateway guarantees delivery of messages to the receiving party. The WJMS client library is intended for deployment on programmable wireless devices, but as shown above, the ibus//mobile architecture also caters for nonprogrammable devices, such as pagers and cellular phones [17]. 21

22 Therefore, it could be said that the client library is optional and depends on the nature of the client device. Scalability is addressed by having several gateways, each supporting hundreds or thousands of mobile devices. The JMS provider would implement load sharing and fault tolerance to cope with the increased demand for resources. Furthermore, two or more JMS providers in a wide area network can be connected using HTTP or SSL. This configuration may appear where a company implements data centers in different regions of a country or even in different countries [17]. The ibus//mobile product provides access controls in the form of userid/ password combinations for queues and topics, and encrypts data transmitted between mobile devices and the gateway. ibus//mobile is able to run on top of most wireless bearers using an appropriate protocol stack. Protocol stacks are instantiated by protocol loaders, and protocol loaders are available for SMS, GPRS, and TCP, among others [17]. 22

23 3. Design 3.1. Middleware Overview The middleware functionality has been divided into two distinct components, to target two communication types between mobile applications: synchronous and asynchronous communication. A suitable framework for each communication type had to be carefully chosen in order to facilitate a robust platform for development of such applications Middleware Requirements The requirement for the middleware was to provide specifically a middleware toolkit that will assist mobile application developers in developing protocol independent applications. This protocol independency is primary focused at the application level. Hence, the exercise was to find an abstraction on the commonalities in functionalities of the protocols and create a singe API henceforth Design Decisions Choosing Application Layer Protocols Two representative protocols from the mobile communication paradigm had to be chosen in order to implement the functionality of the middleware which merges both synchronous and asynchronous communication. JMS and SIP (Session Initiation Protocol) were the two chosen protocols that the middleware toolkit is built upon Choosing a JMS platform Since the focus of this part of the work is on JMS messaging, a suitable JMS platform has to be chosen. As already outlined previously, JMS defines a specification for sending messages between two or more clients, but the implementation is left to third party vendors. Two of the competing frameworks were: ibus//mobile and jtom. Although ibus//mobile provides the full implementation of JMS on J2ME, there are few problems associated with it. ibus//mobile wireless JMS client library for MIDP includes some classes in the javax. namespace. However, since the release of MIDP 2.x Sun enforced their namespace policy with the release of MIDP platforms to not accept third-party javax package code. A solution to this is obfuscation. However, the obfuscation procedure performed had negative results in that the tools used for obfuscation allow different levels of obfuscation. When the level is to low, the MIDP does not allow third party javax package hence cannot compile the package. If the level to high, the obfuscation deletes some of the classes included in the javax package hence, cannot execute due to runtime errors on missing classes. Therefore, ibus//mobile client library could not be used. The only option left was jtom. 23

24 3.4. Asynchronous Messaging Platform The contribution to the middleware outlined in this document is on wireless platforms that facilitates development of asynchronous applications. The chosen platform for such applications is jtom (Java to Mobile) message oriented middleware. Jtom is a framework the implements the message oriented middleware infrastructure for mobile devices (mobile phones, smart phones, PDAs) with server side systems [15]. Before we discuss jtom, it might be worthwhile to review some of the concepts from JMS and discuss how they now relate to mobile devices Mobile devices as JMS clients To act as a JMS client, the Mobile device needs to implement the client-side set of JMS functions. This generally includes implementing the support of the following JMS client features: The ability to use connection factories to establish connections with the provider. This means you need to implement the QueueConnectionFactory and TopicConnectionFactory classes in the Mobile device. This lets you the developer create QueueConnection and TopicConnection objects using their respective connection factories. The ability to create and maintain Queue and Topic objects corresponding to the queues and topics maintained on the provider. The inclusion of Mobile client features such as message authoring, message sending and receiving, and session-related JMS client-side classes [18]. The Mobile device also must provide a JNDI client, which can hook into a server and ask it for JNDI lookup. The JNDI client enables the Mobile device to look up different administered objects used to communicate with the JMS provider. JMS clients look up connection factories and destination objects on the provider. After a client has a valid connection factory, it creates connections and sessions using the factory. Then, it writes JMS messages and uses the connection and session objects to send and receive messages [18]. Naturally, it cannot be expected for mobile device with just 160 KB of memory to do all these. The JMS API was not designed with low-end, limited-resource devices in mind. Every machine running a JMS client might not be a powerful server, but it will at least be a desktop machine with reasonable processing capability [18]. The reduced processing capabilities and inherent mobility of a Mobile device make it difficult to run JMS client applications directly on it. However, you can still enable mobile devices to act as messaging clients. You can use a middleware entity (a proxy or a relay) to achieve messaging between mobile clients and enterprise systems. The Mobile device won't actually need to do any heavy processing. It simply issues orders and commands to the relay, which do all the necessary processing. For example, the Mobile device will ask the relay to perform the JNDI lookup; the relay performs the lookup (for example, communication with the server) and sends the result back to the device. This configuration lets the low-resourced mobile device be 24

25 part of a JMS network, without performing the heavy processing that normal JMS clients require [18] Jtom (Java to Mobile) Jtom is a java framework which supports the development process for mobile distributed applications [21]. With jtom a message-oriented middleware (MOM) is developed for an interactive communication with application servers and legacy systems. jtom delivers interfaces to connect to relevant application servers like BEA, IBM, WebSphere, JBoss. jtom provides the developer with a JNDI (Java Naming and Directory Interface) in order to access backend systems remotely. Based on JNDI jtom enables you to use JMS (Java Messaging Service). With this technology messages can be exchanged over the air between server and client Jtom Technology The architecture of jtom consists of a client component, a server component and a management system. Fig 7: Architectural overview of jtom 2 25

26 The client program developed with jtom contains the technical logic and further the jtom client component for the communication with an application server. This program runs on J2ME compatible mobile devices. Based on jtom the mobile device initialises a secure connection via the internet (WLAN, GPRS, and UMTS) to a servlet engine (e.g. tomcat) and communicates with the jtom server component. jtom server component features a secure session management and allows to continue the course of business after a connection failure Overall toolkit design The overall toolkit is to provide a framework for developing an application that can run on both JMS and SIP infrastructure. Which means, what is required is an abstraction of the JMS and SIP methodologies that allow an application that uses JMS to be ported to SIP and vice versa without being changed. An additional functionality to the middleware is to enable protocol transparency. By protocol transparency we mean being able for a mobile client to communicate for instance with another mobile client regardless of the protocol used by either clients. This functionality can be realised if only the two participating protocols utilize an intermediary entity for communication. In the case of SIP, an intermediary entity (SIP server) is usually used to establish communication between two clients. After the communication is established, the clients can communication directly. On the other hand, with JMS, since it employs asynchronous mode of communication, there is always an intermediary entity (JMS provider) involved Communication in disruptive environments The middleware functionality is to be extended to cater for communication in disruptive environments. This aspect is particularly applicable if the client establishing a communication is using SIP. Since SIP is connection oriented, clients have to establish a connection before communicating. If the other client is not available for communication, then the client that tried to establish communication can send them a JMS message. Furthermore, if the connection between two SIP clients is disrupted, then the middleware should reroute the affected messages via JMS. Again, SIP clients can enable to receive their JMS messages while connected via SIP. 26

27 4. Implementation 4.1. Overview The asynchronous messaging of the framework was implemented using jtom v This framework essentially enables the development of JMS clients on CLDC 1.0 and MIDP 2.0. This client library enables connection to a JMS provider, sending and receiving messages to and from defined messages queues on the JMS provider. The library also includes the implementation of messages buffering on the client side in case of network failures and the ability to reconnect henceforth. The library also allows the implementation of a JMS client within a SIP connection. This functionality allows the SIP connection to have access to their JMS messages without the need to reconnect using JMS. Lastly, the library contains a JMS client that receives messages from the SIP server and sends them to the relevant queues in the case of network failure within a SIP connection. Below is the class diagram of the API. This diagram illustrates the JMS framework in the API. Fig 8: Class diagram for the JMS framework in toolkit Connector The connector class, which is inherited from the jtom.microedition.io.connector is an interface for opening a connection. In the JMS context, this connector implements connector.open(connectionurl) which basically opens a connection to the specified host in the ConnectionURL. The URL has the following structure: 27

28 wma2jms:// - protocol for sending and receiving JMS-messages - URL for the jtom-servlet jtom/connection; - bean for the mapping between WMA- and JMS-messages factory=connectionfactory; - relevant for JMS name= anisaqueue; - name of the existing queue in the JMS-provider type=queue; - Destination type (could also be a TOPIC) user=anisa; - user associated with the destination (optional) password=middleware - password for the queue destination (optional) MessageConnection MessageConnection defines the functionality for sending and receiving messages. MessageListener this is set by the MessageConnection, The MessageListener interface provides a mechanism for the application to be notified of incoming messages. When an incoming message arrives, the notifyincomingmessage() method is called. The notifyincomingmessage(), calls a receive method. The receive method has different variations depending on how the application intends on receiving the messages. The variations are: receiveall(), receivesome(selector), receive(). JMSIPFactory this is created by the MessageConnection, and it provides the mechanism for setting a specific connection type. For a JMS connection, this implements a method for creating a JMS message. JMSIPMessage This interface provides functionality on either a JMS or a SIP message. The implemented methods are: addheader(),getpayload(),setpayload(),getconfig(),setjmsmessage(),getjmsmessag e(). On the server side, the library also has JMS client implementation that can be used in disruptive environments, where network connectivity is intermittent. Below is the description of the components involved. LAN SIP Server SIP Servlet JMSClent Wireless Network SIP Client Sends Message Receives message JMS provider 28

29 Fig 9: Components of the JMS-SIP System The SIP servlet component does the user registry with the SIP server, binding the user s URI with their IP address. An internal database is maintained for mapping a sip user s URI with their JMS queue. In case of a network failure between a SIP session, the SIP servlet sends the affected messages to the JMS client which the forwards the messages to the appropriate queues in the JMS provider. The implementation was tested on JBoss Application Server as a JMS provider Jtom v2.1.3 The latest version of jtom (2.1.3) provided a client library that allowed a smaller JAR size. This aspect is advantageous, particularly since mobile devices are resource constrained. This version also facilitated authentication against the JMS provider with a combination of a username and password JBoss Application Server JBoss AS 4.0 implements the JMS (Java Messaging Service) 1.1 specification instead of the JMS 1.0 in JBoss AS 3.2. In JMS 1.0, client programming for the Point-to- Point and Pub/Sub domains was done using similar but separate class hierarchies. In JMS 1.1, there is now a domain-independent approach to programming the client application [22] Full API The full API is a combination of the JMS and SIP frameworks. The core communication interfaces of the combined API are: JMSIPConnector MessageListener SipClientConnectionListener clientlistener, SipServerConnectionListener serverlistener notifyincomingmessage notifyresponse The middleware is also bearer agnostic in that it utilises any bearer infrastructure that is supported by the mobile device as long as that particular application type is supported. 29

30 5. Project Evaluation In order to evaluate the effectiveness of the toolkit, a sample chat application (JMSIPO chat) was built which could either connect using SIP of JMS for communication. When the application starts, the user can either decide to connect using JMS or SIP as shown below: Fig 10: JMSIPO welcome screen After the user selects their protocol of choice, then they have to configure their JMS setting, which includes: Server IP, Own Queue, and Destination Queue Name 30

31 Fig 11: JMSIPO JMS settings Server IP - This signifies the JMS provider. Own Queue - The user s own queue for listening for messages Destination Queue Name - The recipients queue name If the user selects SIP, then additional parameters, such as the recipients URI are provided. Then the users can start sending and receiving messages 31

32 Fig 12: JMSIPO chat sending and receiving Particular to JMS, the application maintained an internal queuing for messages that failed to due to connection failure. These messages are resend as soon as a connection to the JMS provider is re-established. This functionality ensures that messages are not lost due to network failures. On the other hand, particular to SIP, the application enabled JMS message retrieval while still connected via SIP. This functionality allows the SIP clients to retrieve their messages that may have been sent to them while offline if they decide to connect using SIP. 6. Conclusion The aim of the project was develop a mobile communication middleware toolkit which provides application developers with a series of application programming interfaces that enable them to develop application layer- independent protocols. The representative application layer protocols that were used for this middleware are JMS (Java Messaging Service), for asynchronous, loosely coupled communication and SIP (Session initiation Protocol) for synchronous, connection oriented communication. The resulting middleware classes enables developers to create a single application that can run on both JMS and SIP. 7. Future Work 7.1. More Protocols 32

33 An apparent extension to this middleware is to include more application layer protocols, for instance such as those used in instant messaging applications and sms Autonomic Communication Since the middleware is bearer agnostic, one of the possible extensions is to incorporate an autonomic behaviour to the middleware for handling network handover. Meaning, the middleware should be able to detect and do network handover based on certain condition e.g. quality of service, user preferences etc. For quality of service, the middleware should do a network handover from when the quality of service degrades on the bearer that the application is currently running and provide an alternative to shift to another bearer that is suitable for the application to run on. On user preferences, if say the user is running the application on a commercial network such as GPRS etc and they walk into a local WIFI network, the middleware should provide handover. In this case the handover will be triggered by user preferences relating to costs. 33

34 8 References: [1] Salminen T & Riekki J, Lightweight middleware architecture for mobile phones. Proc International Conference on Pervasive Systems and Computing, Las Vegas, NE, , 2005 [2] Ghizzioli, R., Greenwood, D, "The RASCAL System for Managing Autonomic Communication in Disruptive Environments" in proc. of the 1st IEEE Workshop on Autonomic Communication and Network Management (ACNM), as part of the 10 th IFIP/IEEE International Symposium on Integrated Network Management, Munich, Germany, [3] Einar, V, Extending an enterprise messaging system to support mobile devices Department of Computing Science, Newcastle University, 2001 [4] IBM s MQSeries product overview page, accessed October 2007 [5] IBM Websphere Message Broker, Publish Subscribe, version 6, release 0 ftp://ftp.software.ibm.com/software/integration/wbibrokers/docs/v6.0/messagebroker _Publish_Subscribe.pdf accessed October 2007 [6] Wikipedia Publish Subscribe, accessed October 2007 [7] The Tibco website, accessed October 2007 [8] Sun Microsystems, Java Messaging Service accessed October 2007 [9] Sun Microsystems, Java 2 Micro Edition Specification Accessed October 2007 [10] Wikipedia Bluetooth, accessed October 2007 [11] TechTarget, Infrared Definition accessed October 2007 [12] FreePatentsOnline, Message Proxy System Accessed October 2007 [13] My-Channels, Nirvana, accessed October 2007 [14] Sun Microsystems, Wireless Messaging API, accessed October

Introduction to Messaging using JMS

Introduction to Messaging using JMS Introduction to Messaging using JMS Evan Mamas emamas@ca.ibm.com IBM Toronto Lab Outline Basic Concepts API Architecture API Programming Model Advanced features Integration with J2EE Simple applications

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware MOM MESSAGE ORIENTED MOM Message Oriented Middleware MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS Peter R. Egli 1/25 Contents 1. Synchronous versus asynchronous interaction

More information

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management

Distributed Systems. Messaging and JMS Distributed Systems 1. Master of Information System Management Distributed Systems Messaging and JMS 1 Example scenario Scenario: Store inventory is low This impacts multiple departments Inventory Sends a message to the factory when the inventory level for a product

More information

IP Mobility vs. Session Mobility

IP Mobility vs. Session Mobility IP Mobility vs. Session Mobility Securing wireless communication is a formidable task, something that many companies are rapidly learning the hard way. IP level solutions become extremely cumbersome when

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

JXTA for J2ME Extending the Reach of Wireless With JXTA Technology

JXTA for J2ME Extending the Reach of Wireless With JXTA Technology JXTA for J2ME Extending the Reach of Wireless With JXTA Technology Akhil Arora Carl Haywood Kuldip Singh Pabla Sun Microsystems, Inc. 901 San Antonio Road Palo Alto, CA 94303 USA 650 960-1300 The Wireless

More information

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol)

Mobile Station Execution Environment (MExE( MExE) Developing web applications for PDAs and Cellphones. WAP (Wireless Application Protocol) Developing web applications for PDAs and Cellphones Mobile Station Execution Environment (MExE( MExE) MExE is a standard for defining various levels of wireless communication These levels are called classmarks

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

An Introduction to Wireless JMS

An Introduction to Wireless JMS An Introduction to Wireless JMS Dr. Silvano Maffeis, CTO Softwired AG, Zürich silvano.maffeis@softwired-inc.com http://www.softwired-inc.com/ Intended audience: Project managers, developers, analysts.

More information

Overview of Java 2 Platform, Micro Edition (J2ME )

Overview of Java 2 Platform, Micro Edition (J2ME ) CHAPTER2 Overview of Java 2 Platform, Micro Edition (J2ME ) 2.1 Java 2 Platform Recognizing that one size does not fit all, Sun Microsystems has grouped Java technologies into three editions, each aimed

More information

COMMUNICATION PROTOCOLS

COMMUNICATION PROTOCOLS COMMUNICATION PROTOCOLS Index Chapter 1. Introduction Chapter 2. Software components message exchange JMS and Tibco Rendezvous Chapter 3. Communication over the Internet Simple Object Access Protocol (SOAP)

More information

The COLDEX Metadata Synchronisation Service (MSS) and other services

The COLDEX Metadata Synchronisation Service (MSS) and other services The COLDEX Metadata ynchronisation ervice () and other services LTC Group, UNED, October 2003 1 Technological options for the... 1 1.1 Distributed Java Objects... 1 1.2 Web ervices and OAP... 2 1.3 Messaging...

More information

Session 4 Networks II

Session 4 Networks II 15.561 Information Technology Essentials Session 4 Networks II Copyright 2005 Thomas Malone, Chris Dellarocas Acknowledgments: Slides marked CD are adapted from Chris Dellarocas, U. Md.. Outline Network

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

Introduction to Networking

Introduction to Networking Introduction to Networking Chapters 1 and 2 Outline Computer Network Fundamentals Defining a Network Networks Defined by Geography Networks Defined by Topology Networks Defined by Resource Location OSI

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36 Communication address calls class client communication declarations implementations interface java language littleendian machine message method multicast network object operations parameters passing procedure

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

ESIR SR. Unit 10a: JGroups. François Taïani

ESIR SR. Unit 10a: JGroups. François Taïani ESIR SR Unit 10a: JGroups François Taïani Overview of the Session n What is JMS n Messages vs. RPC See lecture on indirect communication n Interaction Styles n Main JMS Classes n Advanced Features F. Taiani

More information

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host

Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components

More information

Wireless Personal Area Networks & Wide Area Networks

Wireless Personal Area Networks & Wide Area Networks Wireless Personal Area Networks & Wide Area Networks Patrick J. Stockreisser p.j.stockreisser@cs.cardiff.ac.uk Lecture Outline In the lecture we will: Look at PAN s in more detail Look at example networks

More information

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Minimal List Common Syntax is provided by XML To allow remote sites to interact with each other: 1. A common

More information

Middleware Mediated Transactions & Conditional Messaging

Middleware Mediated Transactions & Conditional Messaging Middleware Mediated Transactions & Conditional Messaging Expert Topic Report ECE1770 Spring 2003 Submitted by: Tim Chen John C Wu To: Prof Jacobsen Date: Apr 06, 2003 Electrical and Computer Engineering

More information

Communication. Overview

Communication. Overview Communication Chapter 2 1 Overview Layered protocols Remote procedure call Remote object invocation Message-oriented communication Stream-oriented communication 2 Layered protocols Low-level layers Transport

More information

WebSphere Application Server, Version 5. What s New?

WebSphere Application Server, Version 5. What s New? WebSphere Application Server, Version 5 What s New? 1 WebSphere Application Server, V5 represents a continuation of the evolution to a single, integrated, cost effective, Web services-enabled, J2EE server

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Sentinet for Microsoft Azure SENTINET

Sentinet for Microsoft Azure SENTINET Sentinet for Microsoft Azure SENTINET Sentinet for Microsoft Azure 1 Contents Introduction... 2 Customer Benefits... 2 Deployment Topologies... 3 Cloud Deployment Model... 3 Hybrid Deployment Model...

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

Getting Started with JMS

Getting Started with JMS Summary An introductionto using JMS with AltioLive. The example shows using Altio DB with JBoss 2. Level: Basic Applies to: AltioLive version 5.2 Date: February 2009 Integra SP 88 Wood Street London EC2V

More information

Distributed Systems COMP 212. Lecture 15 Othon Michail

Distributed Systems COMP 212. Lecture 15 Othon Michail Distributed Systems COMP 212 Lecture 15 Othon Michail RPC/RMI vs Messaging RPC/RMI great in hiding communication in DSs But in some cases they are inappropriate What happens if we cannot assume that the

More information

Wireless Access Protocol(WAP) architecture

Wireless Access Protocol(WAP) architecture Wireless Access Protocol(WAP) architecture While the evolution of cellular networks has resulted in many mobile services, such services are primarily for voice. Mobile phone users do have the desire to

More information

Java Enterprise Edition

Java Enterprise Edition Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

Introduction Abstract. 1.2 Overview. This specification describes the objectives and functionality of the Java TM Message Service (JMS).

Introduction Abstract. 1.2 Overview. This specification describes the objectives and functionality of the Java TM Message Service (JMS). Introduction 1 1.1 Abstract This specification describes the objectives and functionality of the Java TM Message Service (JMS). JMS provides a common way for Java programs to create, send, receive and

More information

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology Review Questions for exam Preparation (22-07-2017) 1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology 2. What is the Internet? "network

More information

Mobile Services for Java-enabled Devices on 3G Wireless Networks. 1 Introduction

Mobile Services for Java-enabled Devices on 3G Wireless Networks. 1 Introduction Mobile Services for Java-enabled Devices on 3G Wireless Networks Dr. Silvano Maffeis, CTO, Softwired AG silvano.maffeis@softwired-inc.com http://www.softwired-inc.com/ 1 Introduction The usage of mobile

More information

Indirect Communication

Indirect Communication Indirect Communication Today l Space and time (un)coupling l Group communication, pub/sub, message queues and shared memory Next time l Distributed file systems xkdc Indirect communication " Indirect communication

More information

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course?

Who am I? Wireless Online Game Development for Mobile Device. What games can you make after this course? Are you take the right course? Who am I? Wireless Online Game Development for Mobile Device Lo Chi Wing, Peter Lesson 1 Email: Peter@Peter-Lo.com I123-1-A@Peter Lo 2007 1 I123-1-A@Peter Lo 2007 2 Are you take the right course? This

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

Gateway:A Message Hub with Store-and-forward Messaging in Mobile Networks

Gateway:A Message Hub with Store-and-forward Messaging in Mobile Networks :A Message Hub with Store-and-forward Messaging in Mobile Networks Eiko Yoneki and Jean Bacon University of Cambridge Computer Laboratory, William Gates Building, J J Thomson Avenue Cambridge CB3 0FD,

More information

SAI/ST course Distributed Systems

SAI/ST course Distributed Systems SAI/ST course Distributed Systems 2013, Sep. 26 Oct 01 Lecture 3: Communication Agenda Overview Concepts Organization in layers IPC primitives Direct communication Indirect communication R.H. Mak 27-9-2013

More information

Application Servers in E-Commerce Applications

Application Servers in E-Commerce Applications Application Servers in E-Commerce Applications Péter Mileff 1, Károly Nehéz 2 1 PhD student, 2 PhD, Department of Information Engineering, University of Miskolc Abstract Nowadays there is a growing demand

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

Contents. Mobile Middleware Course. Introduction and Overview Sasu Tarkoma. Lecture Outline. Course Book. Mobile Evolution.

Contents. Mobile Middleware Course. Introduction and Overview Sasu Tarkoma. Lecture Outline. Course Book. Mobile Evolution. Contents Mobile Middleware Course Introduction and Overview Sasu Tarkoma Lecture outline Motivation Mobile middleware overview Examples Summary Lecture Outline Course Book 16.3. 16-18 Introduction and

More information

Connect Applications and Services Together with the Enterprise Service Bus

Connect Applications and Services Together with the Enterprise Service Bus Connect s and Services Together with the On Demand Insurance Business Problems 1. We lose customers because we process new policy applications too slowly. 2. Our claims processing is time-consuming and

More information

Chapter 2 Distributed Computing Infrastructure

Chapter 2 Distributed Computing Infrastructure Slide 2.1 Web Serv vices: Princ ciples & Te echno ology Chapter 2 Distributed Computing Infrastructure Mike P. Papazoglou mikep@uvt.nl Slide 2.2 Topics Distributed computing and Internet protocols The

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK CONTROLLING PC THROUGH MOBILE PHONE MISS. MUKTA N. PATIL, PROF. SHEETAL P. GAWANDE

More information

In the most general sense, a server is a program that provides information

In the most general sense, a server is a program that provides information d524720 Ch01.qxd 5/20/03 8:37 AM Page 9 Chapter 1 Introducing Application Servers In This Chapter Understanding the role of application servers Meeting the J2EE family of technologies Outlining the major

More information

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery

Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Solace JMS Broker Delivers Highest Throughput for Persistent and Non-Persistent Delivery Java Message Service (JMS) is a standardized messaging interface that has become a pervasive part of the IT landscape

More information

CM0256 Pervasive Computing

CM0256 Pervasive Computing CM0256 Pervasive Computing Lecture 17 Software Development Approaches Tom Goodale t.r.goodale@cs.cardiff.ac.uk Lecture Outline In this lecture we: J2ME applications Palm. Device Limitations Limited Power

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

M.SARAVANA KARTHIKEYAN

M.SARAVANA KARTHIKEYAN PERVASIVE COMPUTING Unit II Part A 1. What is XML? XML stands for EXtensible Markup Language XML is a markup language much like HTML XML was designed to carry data, not to display data XML tags are not

More information

ECE 650 Systems Programming & Engineering. Spring 2018

ECE 650 Systems Programming & Engineering. Spring 2018 ECE 650 Systems Programming & Engineering Spring 2018 Networking Introduction Tyler Bletsch Duke University Slides are adapted from Brian Rogers (Duke) Computer Networking A background of important areas

More information

WebSphere 4.0 General Introduction

WebSphere 4.0 General Introduction IBM WebSphere Application Server V4.0 WebSphere 4.0 General Introduction Page 8 of 401 Page 1 of 11 Agenda Market Themes J2EE and Open Standards Evolution of WebSphere Application Server WebSphere 4.0

More information

MOBILE COMPUTING (Common to Computer Science & Engineering and Information Technology)

MOBILE COMPUTING (Common to Computer Science & Engineering and Information Technology) Code No: R41054 R10 Set No. 1 1 a) Explain functional architecture of GSM. [8] b) Write and explain novel applications of Mobile Computing. [7] 2 a) Explain in detail about IEEE 802.11 MAC Data frames.

More information

ThinAir Server Platform White Paper June 2000

ThinAir Server Platform White Paper June 2000 ThinAir Server Platform White Paper June 2000 ThinAirApps, Inc. 1999, 2000. All Rights Reserved Copyright Copyright 1999, 2000 ThinAirApps, Inc. all rights reserved. Neither this publication nor any part

More information

Chapter 1: Distributed Information Systems

Chapter 1: Distributed Information Systems Chapter 1: Distributed Information Systems Contents - Chapter 1 Design of an information system Layers and tiers Bottom up design Top down design Architecture of an information system One tier Two tier

More information

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016

Internet Technology. 06. Exam 1 Review Paul Krzyzanowski. Rutgers University. Spring 2016 Internet Technology 06. Exam 1 Review Paul Krzyzanowski Rutgers University Spring 2016 March 2, 2016 2016 Paul Krzyzanowski 1 Question 1 Defend or contradict this statement: for maximum efficiency, at

More information

XML Gateway. Factsheet. J System Solutions. Version 1.1

XML Gateway. Factsheet. J System Solutions.   Version 1.1 XML Gateway Factsheet J System Solutions Version 1.1 Introduction... 3 Product features... 4 Overall architecture... 6 How is the product different from others?... 7 Installation... 7 Compatibility...

More information

1100 Dexter Avenue N Seattle, WA NetMotion Mobility Architecture A Look Under the Hood

1100 Dexter Avenue N Seattle, WA NetMotion Mobility Architecture A Look Under the Hood TM 1100 Dexter Avenue N Seattle, WA 98109 206.691.5555 www.netmotionwireless.com NetMotion Mobility Architecture A Look Under the Hood NetMotion Mobility Architecture A Look Under the Hood Wireless networking

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

Internet Technology 3/2/2016

Internet Technology 3/2/2016 Question 1 Defend or contradict this statement: for maximum efficiency, at the expense of reliability, an application should bypass TCP or UDP and use IP directly for communication. Internet Technology

More information

IMS Client Framework for All IP-Based Communication Networks

IMS Client Framework for All IP-Based Communication Networks IMS Client Framework for All IP-Based Communication Networks D. Jayaram, S. Vijay Anand, Vamshi Raghav, Prashanth Kumar, K. Riyaz & K. Kishan Larsen & Toubro InfoTech Limited Research and Development Group,

More information

CHAPTER -1. Introduction to Computer Networks

CHAPTER -1. Introduction to Computer Networks CHAPTER -1 Introduction to Computer Networks PRELIMINARY DEFINITIONS computer network :: [Tanenbaum] a collection of autonomous computers interconnected by a single technology. communications network ::a

More information

WAP/ WML : Wireless Protocol wireless protocol

WAP/ WML : Wireless Protocol wireless protocol Device Connectivity Device Connectivity Pervasive computing devices do not develop their full potential unless they are connected to applications and services through the Internet. Device connectivity

More information

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java

EJB ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY. EJB Enterprise Java EJB Enterprise Java EJB Beans ENTERPRISE JAVA BEANS INTRODUCTION TO ENTERPRISE JAVA BEANS, JAVA'S SERVER SIDE COMPONENT TECHNOLOGY Peter R. Egli 1/23 Contents 1. What is a bean? 2. Why EJB? 3. Evolution

More information

Indirect Communication

Indirect Communication Indirect Communication To do q Today q q Space and time (un)coupling Common techniques q Next time: Overlay networks xkdc Direct coupling communication With R-R, RPC, RMI Space coupled Sender knows the

More information

CICS solutions White paper Delivering e-business access to CICS: strategic options.

CICS solutions White paper Delivering e-business access to CICS: strategic options. CICS solutions White paper Delivering e-business access to CICS: strategic options. By Dr. Geoff Sharman, Mark Cocker, IBM Software Group June 2004 Page 2 Contents 2 What is e-business access? 3 What CICS

More information

Advanced Distributed Systems

Advanced Distributed Systems Course Plan and Department of Computer Science Indian Institute of Technology New Delhi, India Outline Plan 1 Plan 2 3 Message-Oriented Lectures - I Plan Lecture Topic 1 and Structure 2 Client Server,

More information

Bikash Sadhukhan. M.Tech(CSE) Lecturer. Dept of CSE/IT Techno India College of Technology

Bikash Sadhukhan. M.Tech(CSE) Lecturer. Dept of CSE/IT Techno India College of Technology Bikash Sadhukhan. M.Tech(CSE) Lecturer. Dept of CSE/IT Techno India College of Technology Mobile Communication Entails transmission of data to and from handheld devices Two or more communicating devices

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

General requirements for ID/locator separation in NGN

General requirements for ID/locator separation in NGN Draft Recommendation ITU-T Y.2015 (Y.ipsplit) General requirements for ID/locator separation in NGN Summary This Recommendation begins with showing the limitations of the conventional IP architecture,

More information

Enterprise Application Integration (EAI) Chapter 7. An Introduction to EAI and Middleware

Enterprise Application Integration (EAI) Chapter 7. An Introduction to EAI and Middleware Enterprise Application Integration (EAI) Chapter 7. An Introduction to EAI and Middleware All programmers are playwrights and all computers are lousy actors. Chapter 7 An Introduction to EAI and Middleware

More information

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV

INTRODUCTION TO Object Oriented Systems BHUSHAN JADHAV INTRODUCTION TO Object Oriented Systems 1 CHAPTER 1 Introduction to Object Oriented Systems Preview of Object-orientation. Concept of distributed object systems, Reasons to distribute for centralized objects.

More information

BlackBerry Java Development Environment (JDE)

BlackBerry Java Development Environment (JDE) 1 BlackBerry Java Applications for Accessing SAP Applications BlackBerry Java Development Environment The BlackBerry Java Development Environment (JDE) is a fully integrated development and simulation

More information

Agent-Environment for Small Mobile Devices

Agent-Environment for Small Mobile Devices -Environment for Small Mobile Devices Thomas Strang and Melanie Meyer {firstname.lastname}@dlr.de German Aerospace Center (DLR), Site Oberpfaffenhofen Institute of Communications and Navigation (KN-S)

More information

Network Communications Standards. Applied Information Technology

Network Communications Standards. Applied Information Technology Network Communications Standards Applied Information Technology Network Standards Why do we need network standards? Defined guidelines for how computers or networked devices communicate Think of it as

More information

An Overview of WebSphere MQ Telemetry and How to Utilize MQTT for Practical Solutions

An Overview of WebSphere MQ Telemetry and How to Utilize MQTT for Practical Solutions IBM Software Group An Overview of WebSphere MQ Telemetry and How to Utilize MQTT for Practical Solutions Valerie Lampkin vlampkin@us.ibm.com WebSphere MQ Technical Resolution Support May 15, 2012 WebSphere

More information

Distributed Computing Environment (DCE)

Distributed Computing Environment (DCE) Distributed Computing Environment (DCE) Distributed Computing means computing that involves the cooperation of two or more machines communicating over a network as depicted in Fig-1. The machines participating

More information

Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway

Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway Using the Cisco ACE Application Control Engine Application Switches with the Cisco ACE XML Gateway Applying Application Delivery Technology to Web Services Overview The Cisco ACE XML Gateway is the newest

More information

LTE : The Future of Mobile Broadband Technology

LTE : The Future of Mobile Broadband Technology LTE : The Future of Mobile Broadband Technology Erick Setiawan tukangbajaksawah@gmail.com 1 Become a necessity today, where the wireless broadband technology needed to meet increasing expectations in terms

More information

Enterprise JavaBeans. Layer:01. Overview

Enterprise JavaBeans. Layer:01. Overview Enterprise JavaBeans Layer:01 Overview Agenda Course introduction & overview. Hardware & software configuration. Evolution of enterprise technology. J2EE framework & components. EJB framework & components.

More information

King Fahd University of Petroleum & Minerals Computer Engineering g Dept

King Fahd University of Petroleum & Minerals Computer Engineering g Dept King Fahd University of Petroleum & Minerals Computer Engineering g Dept COE 540 Computer Networks Term 121 Dr. Ashraf S. Hasan Mahmoud Rm 22-420 Ext. 1724 Email: ashraf@kfupm.edu.sa 9/1/2012 Dr. Ashraf

More information

Chapter 4: Communication Technology. Solutions

Chapter 4: Communication Technology. Solutions Chapter 4: Communication Technology Solutions Summative Assessment Multiple-Choice Questions (MCQs) 1. Two examples of network are telephone and. a. Radio b. Transmission c. Globe d. All of the above 2.

More information

Module 2 Overview of Computer Networks

Module 2 Overview of Computer Networks Module 2 Overview of Computer Networks Networks and Communication Give me names of all employees Who earn more than $00,000 ISP intranet backbone satellite link desktop computer: server: network link:

More information

Module 2 Overview of. Computer Networks

Module 2 Overview of. Computer Networks Module Overview of Networks and Communication Give me names of all employees Who earn more than $00,000 ISP intranet backbone satellite link desktop computer: server: network link: CS454/654 - Issues How

More information

Chapter 2 System Models

Chapter 2 System Models CSF661 Distributed Systems 分散式系統 Chapter 2 System Models 吳俊興國立高雄大學資訊工程學系 Chapter 2 System Models 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 2 A physical

More information

Nirvana A Technical Introduction

Nirvana A Technical Introduction Nirvana A Technical Introduction Cyril PODER, ingénieur avant-vente June 18, 2013 2 Agenda Product Overview Client Delivery Modes Realm Features Management and Administration Clustering & HA Scalability

More information

Distributed Systems: Models and Design

Distributed Systems: Models and Design Distributed Systems: Models and Design Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Architectural Models 2. Interaction Model 3. Design Challenges 4. Case Study: Design of a Client-Server

More information

the Corba/Java Firewall

the Corba/Java Firewall Firewall Security for Corba and J2EE/EJB with the IIOP Domain Boundary Controller Corba and Java-RMI based applications can be directly and securely made accessible to users outside the internal network,

More information

RFID in Internet of things: from the static to the real-time

RFID in Internet of things: from the static to the real-time RFID in Internet of things: from the static to the real-time ETSI Workshop on RFID and The Internet Of Things, 3rd and 4th December 007 Fabio Forno, Ph. D. Mikhail Simonov Introduction Outline Complexity

More information

java message service marek konieczny

java message service marek konieczny java message service marek konieczny Agenda Introduction to message oriented computing basic communication models and domains Java Message Service API Communication API Message structure Selectors API

More information

CHAPTER 17 - NETWORK AMD DISTRIBUTED SYSTEMS

CHAPTER 17 - NETWORK AMD DISTRIBUTED SYSTEMS CHAPTER 17 - NETWORK AMD DISTRIBUTED SYSTEMS OBJECTIVES Provide a high-level overview of distributed systems and the networks that interconnect them Discuss the general structure of distributed operating

More information

Example Purchase request JMS & MDB. Example Purchase request. Agenda. Purpose. Solution. Enterprise Application Development using J2EE

Example Purchase request JMS & MDB. Example Purchase request. Agenda. Purpose. Solution. Enterprise Application Development using J2EE Enterprise Application Development using J2EE Shmulik London Lecture #8 JMS & MDB Example Purchase request Consider an online store A customer browse the catalog and add items to his/her shopping cart

More information

Middleware example EPC Global Infrastructure Vertical approach EPC middleware EPC middleware DNS ONS Exchange Identification Capture ONS SOAP/HP SOAP

Middleware example EPC Global Infrastructure Vertical approach EPC middleware EPC middleware DNS ONS Exchange Identification Capture ONS SOAP/HP SOAP RFID in Internet of things: from the static to the real-time ESI Workshop on RFID and he Internet Of hings, rd and 4th December 007 Fabio Forno, Ph. D. Mikhail Simonov Outline Introduction Complexity of

More information

High Volume Messaging with IBM MessageSight for use in Mobile, Web and M2M solutions

High Volume Messaging with IBM MessageSight for use in Mobile, Web and M2M solutions High Volume Messaging with IBM MessageSight for use in Mobile, Web and M2M solutions Dave Locke IBM Software Group Trademark Statement IBM and the IBM logo are trademarks of International Business Machines

More information

1.2. Terminal Configuration Use-Cases SyncML Device Management

1.2. Terminal Configuration Use-Cases SyncML Device Management MOBILE DEVICE MANAGEMENT WITH SYNCML Alan Bok, Alan.Bok@motorola.com, Sandeep Adwankar, Sandeep.Adwankar@motorola.com, John Grosspietsch, John.Grosspietsch@motorola.com, Venu Vasudevan, venuv@labs.mot.com,

More information