434 research outputs found
Next Generation Middleware Technology for Mobile Computing
Current advances in portable devices, wireless technologies, and distributed systems have created a mobile computing environment that is characterized by a large scale of dynamism. Diversities in network connectivity, platform capability, and resource availability can significantly affect the application performance. Traditional middleware systems are not prepared to offer proper support for addressing the dynamic aspects of mobile systems. Modern distributed applications need a middleware that is capable of adapting to environment changes and that supports the required level of quality of service. This paper represents the experience of several research projects related to next generation middleware systems. We first indicate the major challenges in mobile computing systems and try to identify the main requirements for mobile middleware systems. The different categories of mobile middleware technologies are reviewed and their strength and weakness are analyzed
Towards a mobile computing middleware: a synergy of reflection and mobile code techniques
The increasing popularity of wireless devices, such as mobile phones, personal digital assistants, watches and the like. is enabling new classes of applications that present challenging problems to designers. Applications have to be aware of, and adapt to, frequent variations in the context of execution, such as fluctuating network bandwidth, decreasing batten, power, changes in location or device capabilities, and so on. In this paper, we argue that middleware solutions for wired distributed systems cannot be used in a mobile setting, as the principle of transparency that has driven their design runs counter to the new degrees of awareness imposed by mobility: We propose a synergy of reflection and code mobility as a means for middleware to give applications the desired level of flexibility to react to changes happening in the environment, including those that have not necessarily been foreseen by middleware designers. We ruse the sharing and processing of images as an application scenario to highlight the advantages of our approach
Reflective mobile middleware for context-aware applications
The increasing popularity of mobile devices, such as mobile phones and personal digital
assistants, and advances in wireless networking technologies, are enabling new classes
of applications that present challenging problems to application designers. Applications
have to be aware of, and adapt to, variations in the execution context, such as
fluctuating
network bandwidth and decreasing battery power, in order to deliver a good quality of
service to their users.
We argue that building applications directly on top of the network operating system
would be extremely tedious and error-prone, as application developers would have to
deal with these issues explicitly, and would consequently be distracted from the actual
requirements of the application they are building. Rather, a middleware layered between
the network operating system and the application should provide application developers
with abstractions and mechanisms to deal with them.
We investigate the principle of reflection and demonstrate how it can be used to support
context-awareness and dynamic adaptation to context changes. We offer application engineers
an abstraction of middleware as a dynamically customisable service provider, where
each service can be delivered using different policies when requested in different contexts.
Based on this abstraction, current middleware behaviour, with respect to a particular
application, is reified in an application profile, and made accessible to the application for
run-time inspection and adaptation. Applications can use the meta-interface that the
middleware provides to change the information encoded in their profile, thus tailoring
middleware behaviour to the user's needs. However, while doing so, conflicts may arise;
different users may have different quality-of-service needs, and applications, in an attempt
to full these needs, may customise middleware behaviour in conflicting ways. These conflicts have to be resolved in order to allow applications to come to an agreement, and thus
be able to engage successful collaborations.
We demonstrate how microeconomic techniques can be used to treat these kinds of conflicts. We offer an abstraction of the mobile setting as an economy, where applications
compete to have a service delivered according to their quality-of-service needs. We have
designed a mechanism where middleware plays the role of the auctioneer, collecting bids
from the applications and delivering the service using the policy that maximises social
welfare; that is, the one that delivers, on average, the best quality-of-service.
We formalise the principles discussed above, namely reflection to support context-awareness
and microeconomic techniques to support conflict resolution. To demonstrate their effectiveness
in fostering the development of context-aware applications, we discuss a middleware
architecture and implementation (CARISMA) that embed these principles, and report
on performance and usability results obtained during a thorough evaluation stage
A Methodology for Engineering Collaborative and ad-hoc Mobile Applications using SyD Middleware
Todayās web applications are more collaborative and utilize standard and ubiquitous Internet protocols. We have earlier developed System on Mobile Devices (SyD) middleware to rapidly develop and deploy collaborative applications over heterogeneous and possibly mobile devices hosting web objects. In this paper, we present the software engineering methodology for developing SyD-enabled web applications and illustrate it through a case study on two representative applications: (i) a calendar of meeting application, which is a collaborative application and (ii) a travel application which is an ad-hoc collaborative application. SyD-enabled web objects allow us to create a collaborative application rapidly with limited coding effort. In this case study, the modular software architecture allowed us to hide the inherent heterogeneity among devices, data stores, and networks by presenting a uniform and persistent object view of mobile objects interacting through XML/SOAP requests and responses. The performance results we obtained show that the application scales well as we increase the group size and adapts well within the constraints of mobile devices
Middleware for mobile computing: awareness vs. transparency (position summary)
Middleware solutions for wired distributed systems cannot be used in a mobile setting, as mobile applications impose new requirements that run counter to the principle of transparency on which current middleware systems have been built. We propose the use of reflection capabilities and meta-data to pave the way for a new generation of middleware platforms designed to support mobility
Exploiting logical mobility in mobile computing middleware
We consider the following forms of mobile interactions: client/server interactions, whereby the request of a client triggers the execution of a unit of code in a server and returns the results to the client; remote evaluation, where a device can send code to another host, have it executed and retrieve the result; code on demand, where a host can request a unit of code from another device to be retrieved and executed; and mobile agents, where an agent is an autonomous unit of code that decides when and where to migrate. Moreover, we consider devices that can be nomadically connected to a fixed network, devices that are constantly connected to a fixed network over a wireless connection, devices that are connected to adhoc networks and any combinations of the above
Handheld Computing and Programming for Mobile Commerce.
Using Internet-enabled mobile handheld devices to access the World Wide Web is a promising addition to the Web and traditional e-commerce. Mobile handheld devices provide convenience and portable access to the huge information on the Internet for mobile users from anywhere and at anytime. However, mobile commerce has not enjoyed the same level of success as the e-commerce has so far because mobile Web contents are scarce and mostly awkward for browsing. The major reason of the problems is most software engineers are not familiar with handheld devices, let alone programming for them. To help software engineers better understand this subject, this article gives a comprehensive study of handheld computing and programming for mobile commerce. It includes live major topics: (i) mobile commerce systems, (ii) mobile handheld devices, (iii) handheld computing, (iv) server-side handheld computing and programming, and (v) client-side handheld computing and programming. The most popular server-side handheld applications are mostly functioning through mobile Web contents, which are constructed by using only few technologies and languages. On the other hand, various environments/languages are available for client-side handheld computing and programming. Five of the most popular are (i) BREW, (ii) J2ME, (iii) Palm OS, (iv) Symbian OS, and (v) Windows Mobile. They are using either C/C++ or Java programming languages. This article will explain J2ME, a micro version of Java, and Palm OS programming, using C, by giving step-by-step procedures of J2ME and Palm application development
Software engineering and middleware: a roadmap (Invited talk)
The construction of a large class of distributed systems can be simplified by leveraging middleware, which is layered between network operating systems and application components. Middleware resolves heterogeneity and facilitates communication and coordination of distributed components. Existing middleware products enable software engineers to build systems that are distributed across a local-area network. State-of-the-art middleware research aims to push this boundary towards Internet-scale distribution, adaptive and reconfigurable middleware and middleware for dependable and wireless systems. The challenge for software engineering research is to devise notations, techniques, methods and tools for distributed system construction that systematically build and exploit the capabilities that middleware deliver
- ā¦