NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET MASTEROPPGAVE

Size: px
Start display at page:

Download "NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET MASTEROPPGAVE"

Transcription

1 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK MASTEROPPGAVE Kandidatens navn: Anders Rene Sveen, Lars Kirkhus Fag: Datateknikk Oppgavens tittel (engelsk): MOWAHS - Mobile Collaboration Framework Oppgavens tekst: This assignment will explore the area of mobile collaboration on mobile devices. Through scenarios, common characteristics for mobile collaboration is to be extracted, resulting in a requirements specification. This specification will be used to initiate development of a framework for supporting collaborative applications on mobile phones. Oppgaven gitt: 20. januar 2004 Besvarelsen leveres innen: 15. juni 2004 Besvarelsen levert: 15. juni 2004 Utført ved: Institutt for datateknikk og informasjonsvitenskap Veileder: Alf Inge Wang Trondheim, 15. juni 2004 Alf Inge Wang Faglærer

2

3 Abstract In this thesis the domain of Computer Supported Collaborative Work, CSCW, on mobile phones is examined, and a framework is designed. CSCW on mobile phones is a relatively new research area and largely undiscovered. Third party applications for mobile phones has not been possible until just recently, and few solutions exists for development frameworks. A framework for collaboration on mobile phones will help decrease development costs and increase the spread of applications on mobile phones. Earlier studies has shown that Java 2 Micro Edition, J2ME, would be the best choice as a technology platform for applications. This is mainly because of its popularity on current mobile phones. It has a wide spread on many hardware platforms, and the mobile manufacturers are committed to continue supplying mobile phones with new versions of J2ME. J2ME will thus be the focus of the designed framework. Framework development is an extensive task and requires careful planning and broad knowledge of the problem domain. A framework is meant to cover a wide range of applications and must be extensible and flexible enough to handle most usage scenarios. Analysing the domain and developing requirements is therefore just as important as the design which is based upon it. In this thesis we develop five scenarios which are analysed to extract domain knowledge and find common characteristics. This results in a complete requirement specification for a collaborative framework on mobile phones. The requirements forms the basis for our design process of the framework. During the design two scenarios were used to verify that the requirements and design were in line with the scenarios. The application of these scenarios helped us greatly in making the design less abstract and our reasoning more realistic. We find that the framework covers the requirements as well as the two applied scenarios, and that it will make a good foundation for implementation and testing. Due to the continuous nature of framework development, later iterations will bring forth changes to the framework. But the extensive domain knowledge, thorough analysis and design of this thesis will be an important resource for future improvements. 3

4 Preface This thesis has been carried out by Lars Kirkhus and Anders René Sveen during the spring semester of The project is related to the course TDT4900, Software Engineering, Master thesis, which is part of the Masters degree at the Norwegian University of Science and Technology [18]. It has been assigned by the Software Engineering Group [19] at the Department of Computer and Information Science [17]. Acknowledgements We would especially like to thank Associated Professor Alf Inge Wang for his guidance in writing this report. It has been of invaluable help to us to hear his viewpoints and benefit from his experience. Trondheim, June 15th, 2004 Lars Kirkhus Anders R. Sveen 4

5 Contents 1 Introduction Motivation Limitation of Scope Problem Definition Context Method Readers Guide I Prestudy 18 2 Previous Work Mobile devices Development platform Wireless technology Technology solution New Technological Developments J2ME Phones Summary Related Work P2P and ad-hoc networks The Anhinga project Jadabs Proem JXTA and JXME Summary Designing Frameworks Implications of J2ME Connected Limited Device Configuration (CLDC) Mobile Information Device Profile (MIDP) The Kilobyte Virtual Machine (KVM) Conclusions Framework development Layered systems The framework and its parts Development phases Our Approach 35 5

6 CONTENTS II Scenario and Requirements Analysis 36 7 System Scenarios Strategy game Goals and preconditions Normal action sequence Critical exceptions and error checking Information exchange Goals and precondition Normal action sequence Critical exceptions and error checking Business card exchange Goals and precondition Normal action sequence Critical exceptions and error checking Tank game Goals and preconditions Normal action sequence Critical exceptions and error checking Synchronisation Goals and preconditions Normal action sequence Critical exceptions and error checking Scenario Analysis Goal analysis Scenario Goals Inbound event analysis Event identification Requirements elaboration Output requirements analysis Event identification Requirements elaboration Requirements Requirements list Requirements prioritising III Design Tools Modelling language Computer software Features Diagram implications Code synchronisation Requirements Resolution Requirements summary Requirements and implications Domain Concepts Main structure Transport interface

7 CONTENTS 12.3 The domain Node Group Service Application interface Framework Design Main package structure The Core package The Transport package The Domain package Internal relationships in Spectre Application Design Using the Framework Use cases Business Card Exchange Strategy Game Class diagrams Business Card Exchange Strategy Game Sequence diagrams Startup business card exchange Startup strategy game Search Connect Join group request Group change notification Transfer Receive Execute turn Full battle Fulfilled Requirements 102 IV Evaluation Findings and Contributions Findings Computer Supported Cooperative Work Mobile design Software design Contributions Discussion Methods Requirements Design Method summary The design Applications Transports Interfaces Design summary

8 CONTENTS 18 Conclusion Future Work Long term goal Implementation Transports Transactions CDC Profile Other devices Our Experience 116 V Appendix 119 Index 121 Bibliography 122 8

9 List of Tables 9.1 Prioritised functional requirements

10 List of Figures 4.1 Anhinga architecture Jadabs architecture Proem architecture JXTA/JXME architecture Scenario analysis steps Spectre main package structure Spectre main package structure Spectre core package Spectre transport package Spectre domain package Spectre transport and framework packages Exchange business card: Startup Strategy game: Start game Strategy game: Execute turn Business Card Exchange package Strategy Game package Strategy Game in relation to system Business card exchange: Startup Strategy game: Startup Business card exchange: Search for devices Business card exchange: Connect Strategy game: Join group request Strategy game: Group change notification Business card exchange: Transfer card Business card exchange: Receive card Strategy game: Execute turn Strategy game: Full Battle

11 Chapter 1 Introduction Technology that enables collaboration regardless of geographical location is a large research field. It has been explored for a long time, but the continuous emergence of new technologies has made it an never ending research field. The development of the fax-machine has enabled people to share written information faster than through ordinary mail. The development of the Internet has put vast amounts of searchable information at the fingertips of common people, and the emergence of mobile technologies is creating an always available culture where you can reach anyone, anytime, anywhere. Through our fall project [13] we researched mobile collaboration and possible implementation platforms. J2ME were decided upon, but no framework for collaborative applications could be found. In this thesis we wish to explore collaboration on mobile devices, and seek to ease future development of applications through developing a framework for this purpose. One of the many possible applications for a framework like this is a business card exchange application that allows users to exchange and store business cards with people they meet at e.g. a conference. Such an application would require discovery of other persons able to exchange cards, authenticating, connecting and transfer of data. All of these operations can be provided by a framework in a way that abstracts away the low level details and the type of transport technology used. This means less code in the application, and the ability to use several technologies based on the same code. In the following chapter we will outline our focus and the problems we are facing. 11

12 Introduction 1.1 Motivation Collaboration across mobile heterogeneous devices requires a common language, more precisely termed as a common protocol. Even though devices might not share the same operating system and programming environment, it is possible for them to communicate through such protocols. But even though different platforms can communicate, a program is rarely implemented for all the available platforms. This would require much resources, and few software vendors have the resources available to support multiple platforms. Many programs are just made available on a few selected platforms, and this is especially true for the mobile phone market, where there exists no dominant operating systems and features. Java 2 Micro Edition (J2ME) has the promise of uniting all these different operating systems through a common programming environment that runs on most available platforms today. In our previous project [13] we explored different platforms and found J2ME to be the best platform based on its support for many devices and platforms. By choosing a common programming language that are deployable on several heterogeneous devices, we reduce the effort it takes to develop applications. It is also common to use third party libraries and frameworks to further reduce the programming effort needed. These libraries and frameworks provides easy to use components and functions that covers a certain problem domain, and thus gives the developers out of the box functionality. The field of programming on mobile devices, and especially Java on mobile phones is relatively new, and there are few frameworks available. Today, developing applications that utilise network enabled phones requires a lot a development and understanding about how to use these features. By creating a general framework handling the problems associated with collaboration we wish enable developers to save time and money on development of applications [14]. A framework would also help increasing the number of applications made available. 12

13 1.2 Limitation of Scope 1.2 Limitation of Scope According to the assignment for this thesis, we will start development of a framework for collaboration on mobile phones. Such an development is a large undertaking which will require careful planning and a extensive knowledge of the problem domain. The planning and understanding of the problem domain is very important for the final outcome, and it should be attended carefully. Devoting time and resources to these subjects early in the process, will help us avoid time consuming mistakes later on. This thesis will therefore devote special attention to analysis and extracting requirements through documented methods and the design of a framework. This will all be in preparation for implementation and testing that will be left for later, and hopefully be carried out by other participants of the MOWAHS project. 13

14 Introduction 1.3 Problem Definition Development of software is a complicated process. Often programmers spend time implementing the same features on different projects, and solving the same problems. This is cost intensive and time consuming, and is something most companies would like to avoid. In fact most programmers would also like to avoid doing the same tasks over and over again. Programming J2ME on mobile phones is a new field of expertise and has not had the time to mature like standard Java (Java 2 Standard Edition). The availability of extra libraries and frameworks are currently limited, but should increase over time. The industry relies on these libraries to reduce costs and save time, and the J2ME platform will need these to succeed. One of the strengths of standard Java today, is exactly the plethora of libraries and frameworks. Java has over the years become a popular language and has a high momentum regarding releases of new applications. We hope that the development of J2ME applications can be eased by new frameworks and libraries and hopefully gain some of the momentum that Java is experiencing today. We will look at a solution for supporting developers, and wish to make development of collaborative applications easier. By doing this, we hope to promote mobile collaboration, and increase the number of available options for consumers in this area. We will propose a design of a framework related to the problem domain of collaboration on mobile devices. We will analyse the problem domain to find its common characteristics and to create a framework supporting these tasks. The framework will be aimed at J2ME development and strive to save developers time and efforts in creating new collaborative applications. 14

15 1.4 Context 1.4 Context This thesis is written for the Software Engineering Group at NTNU. They have many projects and interests, and this thesis is in conjunction to the MOWAHS [21] project. MOWAHS is short for MObile Work Across Heterogeneous Systems and it focuses on collaboration technology for the distributed workplace. The MOWAHS goals are as following: Helping to understand and to continuously assess and improve work processes in virtual organisations. Providing a flexible, common work environment to execute and share real work processes and their artifacts, applicable on a variety of electronic devices (from big servers to small PDAs). Disseminating the results to colleagues, students, companies, and the community at large. The MOWAHS project has two sub-projects that are both working to fulfil these goals: Process support for mobile users using heterogeneous devices. Cooperating transactions support, and distributed workspaces. The area of cooperating transactions is focusing on how to maintain valid transactions over fragile communications links. When a user is on the move he may start a transaction which gets broken, or he might even start a transaction while offline. This must be committed when the user comes back online, and one must ensure that no information is lost. Our focus will be within the other area; process support. We will explore how to support mobile collaboration, while leaving the transaction aspects for later exploration. 15

16 Introduction 1.5 Method As described in limitation of scope, Section 1.2, this is not a project that aims to do both design and implement the system. Our focus will be to do extensive research into the problem domain, as well as create a design for future implementation. The following is a rough plan for the execution of this thesis: Research : As we are fairly inexperienced with framework design it will be an important task to research the theory surrounding it. A framework design requires special considerations, and it will be important to understand these. In addition it will be important to obtain insight as to which limitations is imposed by the targeted hardware platform. Domain knowledge : The domain knowledge is important and creates the whole base for the framework. Incorrect information about the domain results in a framework covering other requirements than those of the domain. It is therefore essential to find methods to extract the domain knowledge, and the requirements for the framework. Design : The design is based on the domain knowledge and the requirements. It, together with the discussion is the final results of this thesis, and will make up the foundation for later iterations. Discussion and future : As this thesis aims to create a solid foundation for future work it will be important to describe the strengths and weaknesses of the design. Any assumptions made, and possible directions will be an important starting point for the next iteration. Writing a thesis with thorough methods for analysis and planning will in many ways be an new experience to us. Many projects undertaken earlier in our education has had an clear focus on producing code, and maybe drawing attention away from the planning and preparations. While many projects has produced executable code it has also shown that this code usually is thrown away after the completion. This is often due to an unstructured and poorly planned approach to the development. In this thesis we hope to lay down a solid platform for future development, and a framework that will live well beyond our thesis. 16

17 1.6 Readers Guide 1.6 Readers Guide In this section we will give a short overview to guide you through the rest of this thesis. It aims at giving the reader a better understanding of which parts we consider interesting and important, and let you skim through the parts with information not needed or previously known for your reading. This report is divided into the following parts and chapters: Part I Prestudy - Reviews the background information necessary for this thesis. Useful to understand what principles has been guiding us when designing the framework. Chapter 2 Previous work - Describes the relevant findings from our previous project. Chapter 3 New Technological Developments - Describes technological changes since the previous project. Chapter 4 Related Work - Describes projects and software related to this thesis. Chapter 5 Designing Frameworks - Theory of framework design. Chapter 6 Our Approach - Describes our approach for the rest of the thesis. Part II Scenario and Requirements Analysis - Describes the scenarios and analyses them. The details of the analysis is only for specially interested parties. The average reader should take a look at the requirements, and read the scenarios to understand where the requirements are found. Chapter 7 System Scenarios - All the scenarios that will be used to extract our requirements are described in detail in this chapter. Chapter 8 Scenario Analysis - Analysis of the scenarios to extract the requirements. Chapter 9 Requirements - The resulting requirements. Prioritised for this thesis. Part III Design - The main result of this thesis, and important to understand the framework. Chapter 13 contains the main framework, while the other chapters are support to explain and clarify the concepts. Chapter 10 Tools - Describes the tools used and some of the implications. Chapter 11 Requirements Resolution - Describes special considerations to take when designing the framework. Chapter 12 Domain Concepts - Describes the concepts used in the design of the framework. Chapter 13 Framework Design - The main framework design. Chapter 14 Application Design Using the Framework - Two applications is applied to the design and used to develop and verify the framework. Chapter 15 Framework Fulfilment of Requirements - Summarises how the framework fulfils the requirements, and discusses shortcomings and possible problems. Part IV Evaluation - Describes our findings and discussion of the thesis. Appendix Chapter 16 Findings and Contributions - Describes the findings of the previous parts and summarises our our contributions. Chapter 17 Discussion - Discussion of process and design. Strengths, weaknesses and problems that might arise. Chapter 18 Conclusion - The conclusions made from our work. Chapter 19 Future Work - Describes possible future work, and topics not covered in this thesis. Chapter 20 Our Experience - Describes our experience with writing this thesis and the problems we have encountered. 17

18 Part I Prestudy 18

19 This thesis will be based on some of the findings of our project [13] that was carried out during the autumn of The project title was An examination of mobile devices for spontaneous collaboration and examined several types of mobile devices and development platforms which could be user for developing collaborative applications. It also described some related projects for mobile collaboration. This part will summarise the findings of our previous project, if there has been any new technological developments since our previous project, related work and an examination on how to design frameworks. 19

20 Chapter 2 Previous Work In our previous report [13] we examined the usage of mobile devices for spontaneous collaboration. As our initial setting we used a series of articles [10, 12, 16, 20] describing various types of collaborative support applications that included programmable name tags, wearable computers and modified PDAs. All of these supported spontaneous collaboration in one way or another. One of these projects was especially interesting, the Proem project [10]. Much of our work were based on the concept described in this project. The Proem project aimed at supporting informal collaboration through exchange of profiles between users. It relied on wearable computers that featured wireless networking. When two users came close to each other, the two devices would find each other and exchange profiles. Each device would then match the newly downloaded profile against a set of rules. These rules would determine if the profile should be stored for later usage or if the user should be notified. In our prestudy we set out to find the most suitable mobile device for collaboration. The attributes that we used when evaluating the possibilities were the following: Spread: Is this a technology common or has it the potential to become widely used? Transparency: Is this a technology that are familiar to the users and easy to use? Mobility: Is this technology something most users would bring with them without thinking about it? Non-centralised network: Can this technology establish ad-hoc connections with others without relying on a centralised infrastructure? These attributes were weighted after importance and evaluated against each technology. The resulting grades were used to find the most suitable technology within each category. For more information about this, see Chapter 3 in our previous report [13]. The choice of technology made in the previous report will be used in this thesis, and form the basis of our technology platform. The following sections will describe the technology choices made. 2.1 Mobile devices When considering our evaluation attributes we found that there were only two mobile devices that would satisfy our demands: Personal Digital Assistants (PDA) and mobile phones. The evaluation 20

21 2.2 Development platform concluded that mobile phones had a clear advantage over PDAs when considering spread, transparency and mobility. It was therefore natural to focus on the available phones in the consumer market and technologies available on such phones. 2.2 Development platform Mobile phones comes several different development platforms. It was important for us to find a technology that would satisfy our evaluation attributes and make a solid foundation for future development. J2ME 1 (Java 2 Micro Edition) is a lightweight version of Java designed for small and limited devices. It includes a subset of the standard Java API and some new API s focused on small devices. Mophun 2 is a development platform for game development on mobile phones. It includes C, C++ and assembler programming interfaces. BREW 3 (Binary Runtime Environment) is an application platform for mobile devices and based on C/C++. It is by many considered as the main competitor for J2ME, but the spread outside North-America is still limited. Symbian 4 is an operating system for mobile devices which offers solutions for developing thirdparty applications. Symbian is C/C++ based. Microsoft Smartphone 5 is an operating system and is based on Windows CE. It supports C/C++ development as well as the.net framework. Palm OS 6 is an operating system developed for Palm PDAs and includes C/C++ support for application development. There were several viable options, but after our evaluation we decided on J2ME because of its spread in the consumer market. The prospects for the future also suggests that J2ME will become even more common on mobile phones in the coming years. J2ME includes several programming libraries and has the promise of becoming the de facto application platform for mobile devices. For a more detailed description of J2ME, see Section Wireless technology Choosing a network medium was next on our list. We knew from the start that it had to be a wireless technology to ensure mobility. The wireless technologies we examined were the following: IR - Infra-Red WLAN - Wireless Local Area Network

22 Previous Work Bluetooth IR has the drawback of being short range (about 1 meter), and can only connect two devices at the same time. The users also have to align the devices with a clear line of sight to connect. We were looking for a technology which would be more transparent for the user. After evaluating WLAN we came to the conclusion that it is usually only included in larger devices such as PDAs or laptops, partly due the high power consumption. Bluetooth on the other hand is becoming a common feature for high-end mobile phones and is being embraced by most mobile phone manufacturers. Bluetooth was chosen for its large spread. 2.4 Technology solution As we described in the last three sections, we came to the following conclusions about what technologies to use: Mobile device: Mobile phones Development platform: J2ME Wireless technology: Bluetooth After choosing the most suitable technologies for our research we proceeded to study and test some of the main features of the technologies. As mentioned earlier the choice of platform is considered to still apply to this thesis. An exception would be for Bluetooth, since we will be looking to create a framework that is flexible enough to support several types of communication technologies. Alternatives might be both WLAN as mentioned above, as well as GPRS. In the next chapter we will look at new developments, and check that no changes has occurred that makes our choice of platform invalid. 22

23 Chapter 3 New Technological Developments The field of computer technology has evolved rapidly the last 20 years, and continues to develop at a fast pace. In these sections we will discuss the current situation compared to the fall project [13], and describe some of the new technological advances. As mentioned in Section 2 the technology chosen was J2ME on mobile phones. Since all our technologies are rather new, they are not expected to undergo large changes in the near future. The standards are finalised, and it will take a lot of work before they are changed again. One exception is the Bluetooth standard [6], but this is not considered critical since this thesis will not rely on Bluetooth. The other technologies is described below. 3.1 J2ME J2ME is a fairly new technology that we discuss in depth in our fall project [13]. For mobile phones the Connected Limited Device Configuration (CLDC) 1.0 and Mobile Information Device Profile (MIDP) 1.0 and 2.0 profiles are relevant. MIDP 2.0 was released towards the end of last year, and there has not been many implemented applications for these standards. We are now starting to see more applications available, and the number of devices implementing MIDP 2.0 should increase. A new version of CLDC, 1.1, is scheduled for release in late This will take time to implement on phones, and planning for this new specification should not be a priority at this stage. 3.2 Phones Both SonyEricsson and Nokia has lately released phones that are compatible with CLDC 1.0 and MIDP 2.0, and there are generally more phones available than last fall. These were the standards decided upon in our fall project [13], and we will continue to use them in this thesis. There are currently two phones available; the SonyEricsson P900 and the Nokia There has also been several announcements of new phones that should be available in the second quarter of We should see a great incline in phones supporting these standards in The first phones will be high-end business phones, while the cheaper consumer market phones will follow later on. We expect the already wide adaptation of MIDP 1.0 on mobile phones to extend to MIDP 2.0 as more and more people upgrade their phones. 23

24 New Technological Developments 3.3 Summary The available technologies and solutions has not changed significantly since our report last fall. This is partly because we knew about announced products that would be available, and because three to four months is not a very long time when it comes to cutting edge technology. The preconditions set out for choosing technologies in our fall project still apply, and we will not do another extensive technology evaluation in this thesis. 24

25 Chapter 4 Related Work This section will describe some of the related projects for this thesis. Most of these projects are aimed at custom built devices and devices that are more inconvenient to carry around than modern mobile phones. They also have far more processing power than mobile phones, and many of the experiments have utilised Java 2 Standard Edition (J2SE). Because of this the frameworks described in this chapter will mostly be of inspiration to us when designing our own framework. Some of the concepts will be hard to transfer to Java 2 Micro Edition while some of the concepts will be useful and worth absorbing in our own framework. 4.1 P2P and ad-hoc networks The following projects all utilise some form of networking to communicate. Many of them define their networks as ad-hoc, while others define it as peer-to-peer (P2P). The following is a short explanation of the differences between ad-hoc and P2P. According to [7] P2P refers to a class of systems and applications that employ distributed resources to perform a critical function in a decentralised manner. Some might argue that this is a quite narrow definition of P2P, but it does create a clean distinction between P2P and ad-hoc networks. Ad-hoc means temporary or for one purpose only. This is what happens when several units supporting ad-hoc networking comes close. They create a temporary network, that lasts for a limited time and is created for the purpose of exchanging information in that setting. Two ad-hoc networks are rarely identical and usually different for each context. This means that P2P networks might have temporary and ad-hoc-like properties, but ad-hoc networks are not P2P networks. The P2P model also includes requirements for more advanced routing, and resource management, while an ad-hoc network does not impose any requirements of this kind other than that the devices can communicate through the network. 25

26 Related Work 4.2 The Anhinga project The Anhinga project 1 is being developed by the Department of Computer Science, Rochester Institute of Technology. It aims to create a distributed computing infrastructure to support collaborative applications on wireless ad-hoc networks. It focuses on a decentralised structure and execution on mobile devices. Anhinga is based on Many-2-Many Invocation which means that each invocation is broadcast throughout the entire network and every object that has receptors for that kind of invocation will execute it. This eliminates the need for central servers and advanced routing, which makes it ideal for ad-hoc networks with low computational power [1]. The architecture of the Anhinga Project is illustrated in Figure 4.1. Figure 4.1: Anhinga architecture Main features of the Anhinga project include: Broadcast based Many-2-Many invocation for distributed applications Object oriented invocation of distributed functions Low computational overhead The project has been implemented and tested with example applications and concept code, and the libraries are available for download. Even though the project is aimed at mobile devices, it uses J2SE, and will not run on J2ME devices. Its main focus is towards PDAs like the Sharp Zaurus or the ipaq which can run a complete J2SE version

27 4.3 Jadabs 4.3 Jadabs The Jadabs project 2 is being developed by the Information and Communication Systems Research Group at the Swiss Federal Institute of Technology, Zurich. Its aim is to build a dynamic framework to enable mobile devices to insert, replace and remove applications at runtime. Communication is handled by an ad-hoc network and supports both UDP and Bluetooth connections. It does not support collaboration specific operations, and focuses on hot deployment of new applications in adhoc networks during runtime. The Jadabs architecture can be seen in Figure 4.2, and the main part if its code is contained in the core layer. Figure 4.2: Jadabs architecture Main features of the Jadabs project include: Hot deployment of new applications at runtime Ad-hoc network support over UDP and Bluetooth Standard based communication through JXME Jadabs is an interesting architecture that would enable propagation of applications to new people you meet on the street. It is not a relevant framework for our use, because this kind of propagation requires support that is only available in the CDC configuration and not CLDC, see [13] for further details about the relationship between CDC and CLDC. The CLDC lacks important functionality like reflection, which is common for frameworks, and necessary for the Jadabs project to utilise. Because of this, Jadabs in its current form will not run on J2ME enabled mobile phones. For more information about J2ME limitations see Section Proem The Proem platform 3 was one of the first frameworks for supporting collaboration on mobile devices. It focuses on the exchange of personal information through user profiles, and is a proven technology

28 Related Work It was designed to run on wearable computers that support standard Java runtime (J2SE). These computers were made by picking apart standard laptop computers. Main features of the Proem project include: Profile exchange Profile security mechanisms Profile search Event handling for ad-hoc networks (ex. User close by, user signed on) Figure 4.3: Proem architecture Figure 4.3 shows how profiles is an integral part of the Proem architecture. It is an interesting framework centred around location based encounters. Its focus is mainly on information search in profiles, but the framework is extensible enough to support other types of applications. Sadly Proem has not had any activity for a long time and there will probably never be a J2ME port of it. 4.5 JXTA and JXME JXTA 4, short for Juxtapose - meaning side by side, is an open source Java initiative from Sun Microsystems 5, focusing on P2P networks. The framework initially started as a J2SE project targeted on desktop computers, but with the introduction of J2ME the need for support on small mobile devices became evident. JXME 6, JXTA for J2ME, is targeted at both the CDC and CLDC configuration. Because CLDC is the configuration available on mobile phones, it is the implementation we will be looking into

29 4.6 Summary Figure 4.4: JXTA/JXME architecture Because the MIDP profiles, both 1.0 and 2.0, does not support XML, and XML is part of the data format in JXTA, the implementors of JXME needed to make some simplifications. This resulted in JXME not being a complete P2P solution (one that does not rely on a central server), but relies on a centralised relay node that does the heavy processing and communicates with the phones. This node is usually a desktop computer and communicates with the rest of the JXTA network on behalf of the J2ME nodes. It parses the XML and serialises it to a format the J2ME nodes is able to understand, see Figure 4.4 for JXME architecture. The JXTA and JXME project are advanced P2P projects that has matured over the last years. Because the J2ME version relies on a centralised server it is not a viable option for our use. However, a proxy less version is under development, but progress on this has been extremely limited the last year. The advanced P2P architecture of JXTA is hard to implement on resource constrained devices like mobile phones. The basic ideas of the JXTA framework will be an important inspiration for us when designing our framework. 4.6 Summary Although there are some closely related projects being developed for J2ME, not many of them are ready for real world usage just yet. Common for many of them is that they target the CDC platform and thus are not available on mobile phones. There are some speculation that phones in the future will migrate to CDC because of their increased processing power, but this is just speculations. We are looking for solutions currently available for CLDC. 29

30 Related Work When designing a framework for collaboration we recognise the trouble associated with the J2ME platform and heavy computing. We will be looking to create a simple framework that has a reasonable chance of being deployed in the near future. It will enable developers to create simple collaborative applications while implementing advanced P2P functionality at a later stage. 30

31 Chapter 5 Designing Frameworks Design of frameworks differs some from the design of applications. The level of abstraction is higher and the range of problems it is supposed to solve needs to fit with several applications. The following sections will study the technology and the limitations it enforces on the design, as well as theory associated with framework design. 5.1 Implications of J2ME J2ME shares its syntax and programming style with regular Java, but to be able to fit this runtime environment into small devices like mobile phones some parts of the Java language had to be removed. These devices have limited memory, CPU power and display sizes and had to be reflected in the J2ME implementation. This section will describe J2ME and try to anticipate any limitations that need to be taken into consideration when developing a framework. J2ME consist of three parts: runtime engine, configuration and profile. The configuration specifies the minimum features available on a device, as well as the limitations for applications. The profile is concerned with the high level details as screen size and user interface. The runtime is an implementation of the configuration and the requirements set forth by it. Most mobile phones adheres to the CLDC specification. The profile implemented is the MIDP profile. For an in-depth description of the parts and the relation between them, see our fall project [13] Connected Limited Device Configuration (CLDC) The CLDC specifies the limitations, features available, and the basic APIs that are supported in the runtime environment. To make the implementation as compact as possible some features from J2SE was left out. This includes [22]: The Java Native Interface User-defined class loaders Reflection Thread groups and daemon threads Finalisation 31

32 Designing Frameworks Weak references AWT Floating point number The most important exclusions to note is the removal of reflection [11], AWT and floating point numbers. AWT defines a user interface suitable for desktop computing. When creating software for smaller devices this GUI had to be redesigned, and AWT was not needed any more. The MIDP profile takes care of the GUI for mobile phones, it will be described shortly. Floating point numbers are rarely supported by the hardware of these small devices, and could not be included in the specification. The CLDC also defines many of the APIs available. Specifically the java.io, java.lang, java.util and javax.microedition.io packages [22]. In these packages there are classes that share their interface with the equivalent J2SE implementation, as well as other classes that are a cut down version of the J2SE classes. Some APIs might not support the functions we are used to from J2SE. This will not be a big problem though, and will only impose some minor limitations. A new version of the CLDC is planned, and will be available for mobile phones late this year. This is version 1.1 and amongst other things adds floating point calculations and weak references. It is backwards compatible and is an evolution of the 1.0, and thus should be easy to upgrade to when its spread has become sufficient. As mentioned earlier the spread of this new configuration will take and our focus will be on the 1.0 specification. The configuration does not handle user interfaces, and leaves that part to the profiles. Because of this CLDC often exists on a multitude of different devices with different profiles, ex. mobile phones and pagers Mobile Information Device Profile (MIDP) The MIDP profile defines APIs for supporting devices with small screens, limited user input options and little memory. This includes supported networking protocols, interface classes and persistent storage. Persistent storage in MIDP is implemented as a recordstore. It is under heavy security constraints and belong to the specified MIDlet. This means that one MIDlet can not access information in the persistent storage that belongs to another MIDlet. The network protocols defined by the MIDP will also restrain what communications that can be implemented between devices. The MIDP 1.0 implementations had some very noticeable constraints, as missing TCP server sockets and no Bluetooth support. This has been fixed in the MIDP 2.0 specification and it is regarded a more complete implementation. We will target the 2.0 specification, and even though many weaknesses has been corrected it is important to take these limitations into consideration The Kilobyte Virtual Machine (KVM) The KVM is the runtime environment for J2ME as implemented by Sun. It is a small footprint java virtual machine, and it must be installed on a phone to enable Java execution. Because the features are dictated by the configuration implemented, the KVM should impose no extra limitations beside the ones in the CLDC specification. 32

33 5.2 Framework development Conclusions Although Java is a familiar language to us, the J2ME implementation impose some restrictions. It also redefines some of the APIs as well as limiting the number of available APIs. We need to take this into consideration when designing our framework. Some of these limitations will become evident in an implementation, while others can be predicted earlier on. We know that the float type is not supported, and we know that reflection is not supported either. Many frameworks today utilise a combination of XML files and reflection to allow dynamic configuration, but this is of course not an option for us. 5.2 Framework development Good framework design is expensive and has many aspects that needs to be taken into consideration. While it must be simple enough to be learned, it must also provide the features needed so it can be used quickly. Another important aspect is to provide hooks for new features, and features that are likely to change [8]. In this section we will outline some of the concepts to take into consideration when designing such a framework. We will later utilise this knowledge when looking at our requirements and designing the framework Layered systems According to Bachmann et al. [9] the layered view of an architecture is one of the most commonly used views in software architecture. Some even try to describe non-layered architectures with a layered view, thus giving a false impression that it is layered. This only shows us that layered architectures are common and desirable from a system development point of view. According to Bachmann et al. a layered system is described by several characteristics: A layer is a separate unit of cooperating components, that has a interface which it delivers its service through. The choice in design of layers is based on considerations as coupling, cohesion and likelihood of change. The relationship between layers are specified by implementation allowed to use. Use in this case is specified as layer A uses layer B if As correctness depends on the correctness of B as well. The allowed to use relations follow a top-down pattern where the lower layers does not use layers above. Many different allowed to use relations that does not follow a top-down manner suggests the system has a bad design. Lower layers tend to be closer to the hardware than the upper layers. Also according to Bachmann et al. the quality attributes, modifiability and portability are affected by the layer structure of the software system. It is an important tool to manage complexity and communicate the structure of software, and will be an important part of our design. 33

The Peer2Me Framework A Framework for Mobile Collaboration on Mobile Phones. Carl-Henrik Wolf Lund and Michael Sars Norum

The Peer2Me Framework A Framework for Mobile Collaboration on Mobile Phones. Carl-Henrik Wolf Lund and Michael Sars Norum The Peer2Me Framework A Framework for Mobile Collaboration on Mobile Phones Carl-Henrik Wolf Lund and Michael Sars Norum June 2, 2005 2 Abstract This project continues the work started in our depth study

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Mobile application development J2ME U N I T I I

Mobile application development J2ME U N I T I I Mobile application development J2ME U N I T I I Overview J2Me Layered Architecture Small Computing Device requirements Run Time Environment Java Application Descriptor File Java Archive File MIDlet Programming

More information

Project: E290 - MOBILE COMMERCE APPLICATION DEVELOPMENT

Project: E290 - MOBILE COMMERCE APPLICATION DEVELOPMENT Undergraduate Research Opportunity Programme (UROP) Project: E290 - MOBILE COMMERCE APPLICATION DEVELOPMENT Supervisor Professor Kong Pe Hin Hinny Nanyang Technological University Email: ephkong@ntu.edu.sg

More information

Mobile Operating Systems. Week I

Mobile Operating Systems. Week I Mobile Operating Systems Week I Overview Introduction Mobile Operating System Structure Mobile Operating System Platforms Java ME Platform Palm OS Symbian OS Linux OS Windows Mobile OS BlackBerry OS iphone

More information

Introduction to SunOne Development Tools by Mr. Mickey Fan, Java Architect, Sun Microsystems. Good morning. Ladies and Gentlemen.

Introduction to SunOne Development Tools by Mr. Mickey Fan, Java Architect, Sun Microsystems. Good morning. Ladies and Gentlemen. Introduction to SunOne Development Tools by Mr. Mickey Fan, Java Architect, Sun Microsystems Good morning. Ladies and Gentlemen. the mobile edition. I am glad to be invited to be here. Today my topic is

More information

Java Platform, Micro Edition (Java ME) Mokoena F.R. The 7046 Team

Java Platform, Micro Edition (Java ME) Mokoena F.R. The 7046 Team Java Platform, Micro Edition (Java ME) Mokoena F.R The 7046 Team 1. Introduction Java Platform, Micro Edition (Java ME) technology is one of the popular mobile application runtime. It provides developers

More information

1.1.1 Introduction to Cloud Computing

1.1.1 Introduction to Cloud Computing 1 CHAPTER 1 INTRODUCTION 1.1 CLOUD COMPUTING 1.1.1 Introduction to Cloud Computing Computing as a service has seen a phenomenal growth in recent years. The primary motivation for this growth has been the

More information

Development of Java ME

Development of Java ME Y39PDA Development of Java ME application České vysoké učení technické v Praze Fakulta Elektrotechnická Content What is Java ME Low Level a High Level API What is JSR LBS Java ME app. life-cycle 2/29 Is

More information

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK HOVEDOPPGAVE Kandidatens navn: Joachim Lund Fag: Systemutvikling, Datateknikk Oppgavens tittel

More information

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK HOVEDOPPGAVE

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK HOVEDOPPGAVE NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK HOVEDOPPGAVE Kandidatens navn: Fag: Oppgavens tittel (norsk): Oppgavens tittel (engelsk):

More information

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK OG ELEKTROTEKNIKK HOVEDOPPGAVE Kandidatens navn: Øivind Wang Fag: Systemutvikling, Datateknikk Oppgavens tittel

More information

Integrating the Internet into Your Measurement System. DataSocket Technical Overview

Integrating the Internet into Your Measurement System. DataSocket Technical Overview Integrating the Internet into Your Measurement System DataSocket Technical Overview Introduction The Internet continues to become more integrated into our daily lives. This is particularly true for scientists

More information

Microsoft Exchange ActiveSync Administrator s Guide

Microsoft Exchange ActiveSync Administrator s Guide Microsoft Exchange ActiveSync Administrator s Guide Copyright 2005 palmone, Inc. All rights reserved. palmone, HotSync, Treo, VersaMail, and Palm OS are among the trademarks or registered trademarks owned

More information

REALbasic versus Visual Basic

REALbasic versus Visual Basic REALbasic versus Visual Basic By Jerry Lee Ford, Jr. November 2006 When is comes to the development of Windows applications, REALbasic s main competitor it Microsoft s Visual Basic programming language.

More information

ENABLING WIRELESS DATA COMMUNICATION IN CONSTRUCTION MANAGEMENT SYSTEM

ENABLING WIRELESS DATA COMMUNICATION IN CONSTRUCTION MANAGEMENT SYSTEM ENABLING WIRELESS DATA COMMUNICATION IN CONSTRUCTION MANAGEMENT SYSTEM Liu Yanxiang & Yow Kin Choong School of Computer Engineering Nanyang Technological University Nanyang Avenue, Singapore 639798 Keywords:

More information

Embracing Microsoft Vista for Enhanced Network Security

Embracing Microsoft Vista for Enhanced Network Security Embracing Microsoft Vista for Enhanced Network Security Effective Implementation of Server & Domain Isolation Requires Complete Network Visibility throughout the OS Migration Process For questions on this

More information

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations

Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations Mobile-PC Suite: Using Mobile Phone as Remote to Control PC Operations R.S.S.Vishnu Priya, P.Panini Sai, K.Ruth Ramya, N.Chandra Sekhar, K.Venkata Prasad, P.D.Nageswara Rao Dept. of CSE, KLCE Vaddeswaram,

More information

Java ME Clients for XML Web Services

Java ME Clients for XML Web Services 66 Java ME Clients for XML Web Services Paul POCATILU Academy of Economic Studies, Bucharest Using Web services in developing applications has many advantages like the existence of standards, multiple

More information

Glassfish Architecture.

Glassfish Architecture. Glassfish Architecture. First part Introduction. Over time, GlassFish has evolved into a server platform that is much more than the reference implementation of the Java EE specifcations. It is now a highly

More information

HYBRID JINI FOR LIMITED DEVICES

HYBRID JINI FOR LIMITED DEVICES HYBRID JINI FOR LIMITED DEVICES VINCENT LENDERS, POLLY HUANG AND MEN MUHEIM ETH Zürich E-mail: lenders, huang @tik.ee.ethz.ch, men@ife.ee.ethz.ch We envision a future of heterogeneous mobile devices collaborating

More information

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper. The EMSX Platform A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks A White Paper November 2002 Abstract: The EMSX Platform is a set of components that together provide

More information

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The

More information

How to audit your business strategy

How to audit your business strategy How to audit your business strategy Andrew Carey Why conduct a business strategy audit? Nearly all the major initiatives undertaken by corporate executives today are called strategic. With everything having

More information

Building Web-based Infrastructures for Smart Meters

Building Web-based Infrastructures for Smart Meters Building Web-based Infrastructures for Smart Meters Andreas Kamilaris 1, Vlad Trifa 2, and Dominique Guinard 2 1 University of Cyprus, Nicosia, Cyprus 2 ETH Zurich and SAP Research, Switzerland Abstract.

More information

A Comparison of Mobile Peer-to-peer File-sharing Clients

A Comparison of Mobile Peer-to-peer File-sharing Clients 1. ABSTRACT A Comparison of Mobile Peer-to-peer File-sharing Clients Imre Kelényi 1, Péter Ekler 1, Bertalan Forstner 2 PHD Students 1, Assistant Professor 2 Budapest University of Technology and Economics

More information

SQL Server. SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases

SQL Server. SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases SQL Server SQL Server 100 Most Asked Questions: Best Practices guide to managing, mining, building and developing SQL Server databases SQL Server 100 Success Secrets Copyright 2008 Notice of rights All

More information

Mobile Development Discovery Document

Mobile Development Discovery Document Mobile Development Discovery Document Prepared By: Abdul Wadood, Atifa Nadeem, Naima Khan and Haris Khan All Rights Reserved No part of this publication may be reproduced, reformatted or transmitted in

More information

What Is the Java TM 2 Platform, Enterprise Edition?

What Is the Java TM 2 Platform, Enterprise Edition? Page 1 de 9 What Is the Java TM 2 Platform, Enterprise Edition? This document provides an introduction to the features and benefits of the Java 2 platform, Enterprise Edition. Overview Enterprises today

More information

API Management Introduction and Principles

API Management Introduction and Principles API Management Introduction and Principles by Vijay Alagarasan, Principal Architect, Enterprise Architecture and Strategy of Asurion Abstract: This article is focused on providing solutions for common

More information

An Easier Way for Cross-Platform Data Acquisition Application Development

An Easier Way for Cross-Platform Data Acquisition Application Development An Easier Way for Cross-Platform Data Acquisition Application Development For industrial automation and measurement system developers, software technology continues making rapid progress. Software engineers

More information

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE

NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET HOVEDOPPGAVE NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET FAKULTET FOR INFORMASJONSTEKNOLOGI, MATEMATIKK, OG ELEKTROTEKNIKK HOVEDOPPGAVE Kandidatens navn: Linda Kristiansen Fag: Datateknikk Oppgavens tittel (norsk):

More information

Developing Wireless GIS: Using Java and XML Technologies

Developing Wireless GIS: Using Java and XML Technologies Developing Wireless GIS: Using Java and XML Technologies Hossein Mohammadi GIS Dept., Faculty of Geodesy and Geomatics Eng. K.N. Toosi University of Technology Vali_Asr St., Mirdamad Cross, Tehran, Iran,

More information

CONDIS. IT Service Management and CMDB

CONDIS. IT Service Management and CMDB CONDIS IT Service and CMDB 2/17 Table of contents 1. Executive Summary... 3 2. ITIL Overview... 4 2.1 How CONDIS supports ITIL processes... 5 2.1.1 Incident... 5 2.1.2 Problem... 5 2.1.3 Configuration...

More information

Methods and tools for data and software integration Enterprise Service Bus

Methods and tools for data and software integration Enterprise Service Bus Methods and tools for data and software integration Enterprise Service Bus Roman Hauptvogl Cleverlance Enterprise Solutions a.s Czech Republic hauptvogl@gmail.com Abstract Enterprise Service Bus (ESB)

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto lft@inescporto.pt Luís Teixeira INESC Porto, Universidade Católica Portuguesa lmt@inescporto.pt Luís Corte-Real

More information

Software as a Service Business Model (Introducing SOA and Web Service)

Software as a Service Business Model (Introducing SOA and Web Service) Software as a Service Business Model Guide Insight into Software as a Service Business Model (Introducing SOA and Web Service) By Sumantra Mukherjee Chief Technology Officer Nature Technologies Pvt Ltd

More information

Planning a Successful Visual Basic 6.0 to.net Migration: 8 Proven Tips

Planning a Successful Visual Basic 6.0 to.net Migration: 8 Proven Tips Planning a Successful Visual Basic 6.0 to.net Migration: 8 Proven Tips Jose A. Aguilar January 2009 Introduction Companies currently using Visual Basic 6.0 for application development are faced with the

More information

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications.

What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. What can DDS do for You? Learn how dynamic publish-subscribe messaging can improve the flexibility and scalability of your applications. 2 Contents: Abstract 3 What does DDS do 3 The Strengths of DDS 4

More information

Mobile Software Development Services

Mobile Software Development Services Mobile Software Development Services Rapidsoft Systems has extensive domain knowledge when it comes to wireless and mobile application solutions. We like to build smart phone applications for cellular

More information

Mobile Software Application Development. Tutorial. Caesar Ogole. April 2006

Mobile Software Application Development. Tutorial. Caesar Ogole. April 2006 Mobile Software Application Development Tutorial By Caesar Ogole April 2006 About the Tutorial: In this tutorial, you will learn how to build a cross-platform mobile software application that runs on the

More information

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS

GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS Embedded Systems White Paper GETTING STARTED WITH ANDROID DEVELOPMENT FOR EMBEDDED SYSTEMS September 2009 ABSTRACT Android is an open source platform built by Google that includes an operating system,

More information

The Convergence of IT Operations

The Convergence of IT Operations SOLUTION WHITE PAPER The Convergence of IT Operations A Case for IT Service and Asset Process Integration and Automation TABLE OF CONTENTS TODAY S REALITY: THE FUTURE IS NOW. 1 AUTOMATION & INTEGRATION:

More information

Manjrasoft Market Oriented Cloud Computing Platform

Manjrasoft Market Oriented Cloud Computing Platform Manjrasoft Market Oriented Cloud Computing Platform Innovative Solutions for 3D Rendering Aneka is a market oriented Cloud development and management platform with rapid application development and workload

More information

Used as content for outbound telesales programmes and (potentially) inbound telesales response.

Used as content for outbound telesales programmes and (potentially) inbound telesales response. Upgrading from Hosted E-mail to a Unified Communication Suite Telesales scripts This document provides recommendations and sample scripts that could be used to target customers for upgrade from hosted

More information

VPN. Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu

VPN. Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu VPN Date: 4/15/2004 By: Heena Patel Email:hpatel4@stevens-tech.edu What is VPN? A VPN (virtual private network) is a private data network that uses public telecommunicating infrastructure (Internet), maintaining

More information

TOP TEN CONSIDERATIONS

TOP TEN CONSIDERATIONS White Paper TOP TEN CONSIDERATIONS FOR CHOOSING A SERVER VIRTUALIZATION TECHNOLOGY Learn more at www.swsoft.com/virtuozzo Published: July 2006 Revised: July 2006 Table of Contents Introduction... 3 Technology

More information

Resource Utilization of Middleware Components in Embedded Systems

Resource Utilization of Middleware Components in Embedded Systems Resource Utilization of Middleware Components in Embedded Systems 3 Introduction System memory, CPU, and network resources are critical to the operation and performance of any software system. These system

More information

Building Motion and Noise Detector Networks from Mobile Phones

Building Motion and Noise Detector Networks from Mobile Phones Building Motion and Noise Detector Networks from Mobile Phones Péter Ekler 1111 Budapest, Magyar Tudósok körútja 2. IL208, peter.ekler@aut.bme.hu Hassan Charaf Dr. 1111 Budapest, Magyar Tudósok körútja

More information

Become A Paperless Company In Less Than 90 Days

Become A Paperless Company In Less Than 90 Days Become A Paperless Company In Less Than 90 Days www.docuware.com Become A Paperless Company...... In Less Than 90 Days Organizations around the world feel the pressure to accomplish more and more with

More information

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents

Agent Languages. Overview. Requirements. Java. Tcl/Tk. Telescript. Evaluation. Artificial Intelligence Intelligent Agents Agent Languages Requirements Overview Java Tcl/Tk Telescript Evaluation Franz J. Kurfess, Cal Poly SLO 211 Requirements for agent Languages distributed programming large-scale (tens of thousands of computers)

More information

Mobile Operating Systems Lesson 07 Symbian OS

Mobile Operating Systems Lesson 07 Symbian OS Mobile Operating Systems Lesson 07 Symbian OS Oxford University Press 2007. All rights reserved. 1 Oxford University Press 2007. All rights reserved. 2 Symbian OS multi-modal communication support OS for

More information

Address IT costs and streamline operations with IBM service desk and asset management.

Address IT costs and streamline operations with IBM service desk and asset management. Asset management and service desk solutions To support your IT objectives Address IT costs and streamline operations with IBM service desk and asset management. Highlights Help improve the value of IT

More information

Salutation Architectures and the newly defined service discovery protocols from Microsoft and Sun

Salutation Architectures and the newly defined service discovery protocols from Microsoft and Sun Salutation Architectures and the newly defined service discovery from Microsoft and Sun How does the Salutation Architecture stack up A Salutation White Paper June 6, 1999 Bob Pascoe, Technical Consultant

More information

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona

Progress Report Aspect Oriented Programming meets Design Patterns. Academic Programme MSc in Advanced Computer Science. Guillermo Antonio Toro Bayona Progress Report Aspect Oriented Programming meets Design Patterns Academic Programme MSc in Advanced Computer Science Guillermo Antonio Toro Bayona Supervisor Dr. John Sargeant The University of Manchester

More information

Future of Mobile Java and Mobility Middleware

Future of Mobile Java and Mobility Middleware Future of Mobile Java and Mobility Middleware Jon Bostrom CTO okia Java Platform copyright 2004 by OSGi Alliance All rights reserved. The Mobile Application Ecosystem >100 operators deployed Java >300

More information

UPnP Control Point for Mobile Phones in Residential Networks

UPnP Control Point for Mobile Phones in Residential Networks 1 UPnP Control Point for Mobile Phones in Residential Networks Andreas Häber 1, Frank Reichert 2, and Andreas Fasbender 3 Abstract Together, Ericsson and HiA are studying the role of WiFi-enabled mobile

More information

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development

Nokia 9210i/9290 Communicators and PersonalJava TM Application Development Nokia 9210i/9290 Communicators and Personal TM Application Development 05-03-2002 Nokia 9210i/9290 Communicators and PersonalTM Application Development Table of contents 1. DIFFERENT JAVA TECHNOLOGIES...

More information

The Study on Mobile Phone-oriented Application Integration Technology of Web Services 1

The Study on Mobile Phone-oriented Application Integration Technology of Web Services 1 The Study on Mobile Phone-oriented Application Integration Technology of Web Services 1 Li Luqun 1, 2 Li Minglu 1 Cui Xianguo 2 1. Department of Computer Science of Shanghai Jiaotong University, 1954 Huashan

More information

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters

COMP5426 Parallel and Distributed Computing. Distributed Systems: Client/Server and Clusters COMP5426 Parallel and Distributed Computing Distributed Systems: Client/Server and Clusters Client/Server Computing Client Client machines are generally single-user workstations providing a user-friendly

More information

Visionet IT Modernization Empowering Change

Visionet IT Modernization Empowering Change Visionet IT Modernization A Visionet Systems White Paper September 2009 Visionet Systems Inc. 3 Cedar Brook Dr. Cranbury, NJ 08512 Tel: 609 360-0501 Table of Contents 1 Executive Summary... 4 2 Introduction...

More information

MIDlet development with J2ME and MIDP

MIDlet development with J2ME and MIDP MIDlet development with J2ME and MIDP ibm.com/developerworks Table of Contents If you're viewing this document online, you can click any of the topics below to link directly to that section. 1. Introduction...

More information

Qlik UKI Consulting Services Catalogue

Qlik UKI Consulting Services Catalogue Qlik UKI Consulting Services Catalogue The key to a successful Qlik project lies in the right people, the right skills, and the right activities in the right order www.qlik.co.uk Table of Contents Introduction

More information

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB

Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB Highly Available Mobile Services Infrastructure Using Oracle Berkeley DB Executive Summary Oracle Berkeley DB is used in a wide variety of carrier-grade mobile infrastructure systems. Berkeley DB provides

More information

Middleware support for the Internet of Things

Middleware support for the Internet of Things Middleware support for the Internet of Things Karl Aberer, Manfred Hauswirth, Ali Salehi School of Computer and Communication Sciences Ecole Polytechnique Fédérale de Lausanne (EPFL) CH-1015 Lausanne,

More information

Optimization in a Secure Windows Environment

Optimization in a Secure Windows Environment WHITE PAPER Optimization in a Secure Windows Environment A guide to the preparation, configuration and troubleshooting of Riverbed Steelhead appliances for Signed SMB and Encrypted MAPI September 2013

More information

System Center Configuration Manager

System Center Configuration Manager System Center Configuration Manager Software Update Management Guide Friday, 26 February 2010 Version 1.0.0.0 Baseline Prepared by Microsoft Copyright This document and/or software ( this Content ) has

More information

SSL VPN Technology White Paper

SSL VPN Technology White Paper SSL VPN Technology White Paper Keywords: SSL VPN, HTTPS, Web access, TCP access, IP access Abstract: SSL VPN is an emerging VPN technology based on HTTPS. This document describes its implementation and

More information

Applying 4+1 View Architecture with UML 2. White Paper

Applying 4+1 View Architecture with UML 2. White Paper Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was

More information

Nokia E90 Communicator Using WLAN

Nokia E90 Communicator Using WLAN Using WLAN Nokia E90 Communicator Using WLAN Nokia E90 Communicator Using WLAN Legal Notice Nokia, Nokia Connecting People, Eseries and E90 Communicator are trademarks or registered trademarks of Nokia

More information

Software design (Cont.)

Software design (Cont.) Package diagrams Architectural styles Software design (Cont.) Design modelling technique: Package Diagrams Package: A module containing any number of classes Packages can be nested arbitrarily E.g.: Java

More information

MySQL and Virtualization Guide

MySQL and Virtualization Guide MySQL and Virtualization Guide Abstract This is the MySQL and Virtualization extract from the MySQL Reference Manual. For legal information, see the Legal Notices. For help with using MySQL, please visit

More information

Integrating Mobile Devices into the Computer Science Curriculum

Integrating Mobile Devices into the Computer Science Curriculum Integrating Mobile Devices into the Computer Science Curriculum Qusay H. Mahmoud Centre for Mobile Education Research Department of Computing and Information Science University of Guelph, Guelph, ON, N1G

More information

Unifying IT How Dell Is Using BMC

Unifying IT How Dell Is Using BMC Unifying IT Management: How Dell Is Using BMC Software to Implement ITIL ABSTRACT Companies are looking for ways to maximize the efficiency with which they plan, deliver, and manage technology services.

More information

Towards Distributed Service Platform for Extending Enterprise Applications to Mobile Computing Domain

Towards Distributed Service Platform for Extending Enterprise Applications to Mobile Computing Domain Towards Distributed Service Platform for Extending Enterprise Applications to Mobile Computing Domain Pakkala D., Sihvonen M., and Latvakoski J. VTT Technical Research Centre of Finland, Kaitoväylä 1,

More information

PC & EMBEDDED CONTROL TRENDS

PC & EMBEDDED CONTROL TRENDS PC & EMBEDDED CONTROL TRENDS Bjoern Falke, Phoenix Contact Inc., Harrisburg, PA Abstract - The trend to reduce machine size and cost while increasing productivity requires new approaches to control systems.

More information

Downsizing : Client/Server Computing Joe Wang, The Upjohn Company, Kalamazoo, MI (616)329-8421

Downsizing : Client/Server Computing Joe Wang, The Upjohn Company, Kalamazoo, MI (616)329-8421 Downsizing : Client/Server Computing Joe Wang, The Upjohn Company, Kalamazoo, MI (616)329-8421 ABSTRACT Client/Server "fever" is spreading across Corporate America like wild fire. Does your company want

More information

OIT Cloud Strategy 2011 Enabling Technology Solutions Efficiently, Effectively, and Elegantly

OIT Cloud Strategy 2011 Enabling Technology Solutions Efficiently, Effectively, and Elegantly OIT Cloud Strategy 2011 Enabling Technology Solutions Efficiently, Effectively, and Elegantly 10/24/2011 Office of Information Technology Table of Contents Executive Summary... 3 The Colorado Cloud...

More information

Building Applications Using Micro Focus COBOL

Building Applications Using Micro Focus COBOL Building Applications Using Micro Focus COBOL Abstract If you look through the Micro Focus COBOL documentation, you will see many different executable file types referenced: int, gnt, exe, dll and others.

More information

Why Your Business Needs a Website: Ten Reasons. Contact Us: 727.542.3592 Info@intensiveonlinemarketers.com

Why Your Business Needs a Website: Ten Reasons. Contact Us: 727.542.3592 Info@intensiveonlinemarketers.com Why Your Business Needs a Website: Ten Reasons Contact Us: 727.542.3592 Info@intensiveonlinemarketers.com Reason 1: Does Your Competition Have a Website? As the owner of a small business, you understand

More information

SUPPORTING AD HOC COLLABORATIONS IN PEER-TO-PEER NETWORKS

SUPPORTING AD HOC COLLABORATIONS IN PEER-TO-PEER NETWORKS SUPPORTING AD HOC COLLABORATIONS IN PEER-TO-PEER NETWORKS Ismail Bhana, David Johnson, Nia Alexandrov Advanced Computing and Emerging Technologies Centre, School of Systems Engineering, The University

More information

Copyright www.agileload.com 1

Copyright www.agileload.com 1 Copyright www.agileload.com 1 INTRODUCTION Performance testing is a complex activity where dozens of factors contribute to its success and effective usage of all those factors is necessary to get the accurate

More information

Automatic Configuration and Service Discovery for Networked Smart Devices

Automatic Configuration and Service Discovery for Networked Smart Devices Automatic Configuration and Service Discovery for Networked Smart Devices Günter Obiltschnig Applied Informatics Software Engineering GmbH St. Peter 33 9184 St. Jakob im Rosental Austria Tel: +43 4253

More information

Peer-to-Peer Networks

Peer-to-Peer Networks Peer-to-Peer Networks Chapter 1: Introduction Jussi Kangasharju Chapter Outline Course outline and practical matters Peer-to-peer (P2P) overview Definition of P2P What is P2P and how it is different from

More information

Proposal for a Vehicle Tracking System (VTS)

Proposal for a Vehicle Tracking System (VTS) Proposal for a Vehicle Tracking System (VTS) 2 Executive Summary Intelligent Instructions is an IT product development and consulting company. At Intelligent Instructions, we focus on the needs of the

More information

Mobility Solutions in IBM

Mobility Solutions in IBM Mobility Solutions in IBM Cecelia Yu yuyc@tw.ibm.com Mobile Collaboration, CDL, IBM 2007 IBM Corporation Agenda 1. Introduction 2. Mobility Strategy 2.1 Connectivity 2.2 E-Mail 2.3 Social Network 2.4 Instant

More information

Selecting the Right NAS File Server

Selecting the Right NAS File Server Selecting the Right NAS File Server As the network administrator for a workgroup LAN, consider this scenario: once again, one of your network file servers is running out of storage space. You send out

More information

HEALTHCARE SOLUTIONS

HEALTHCARE SOLUTIONS HEALTHCARE SOLUTIONS Healthcare solutions HEALTHCARE COMMUNICATIONS THE CHALLENGES The organisation is asking for improved communications, but resources and budget will not extend to a huge IP communications

More information

Android Phone Controlled Robot Using Bluetooth

Android Phone Controlled Robot Using Bluetooth International Journal of Electronic and Electrical Engineering. ISSN 0974-2174, Volume 7, Number 5 (2014), pp. 443-448 International Research Publication House http://www.irphouse.com Android Phone Controlled

More information

Accelerating Business Value by

Accelerating Business Value by Accelerating Business Value by Mobilizing Backend Enterprise Applications To find out how GAVS can be engaged as your dedicated co-sourcing partner to improve business outcomes, please write to us at cosource@gavsin.com.

More information

RoadSync. Administrator s Guide. www.dataviz.com/roadsync. Mobilizing Microsoft Office Life for Businesses & Professionals Around the World

RoadSync. Administrator s Guide. www.dataviz.com/roadsync. Mobilizing Microsoft Office Life for Businesses & Professionals Around the World Access Corporate Outlook E-mail & Data on the World s Most Popular Smartphones via Secure, Wireless & Direct Synchronization with Microsoft Exchange 2003 RoadSync Administrator s Guide Mobilizing Microsoft

More information

Next Generation Intelligent, Mobile, Widely Distributed Applications: Solving Tomorrow s Software Development Challenges Today

Next Generation Intelligent, Mobile, Widely Distributed Applications: Solving Tomorrow s Software Development Challenges Today Next Generation Intelligent, Mobile, Widely Distributed Applications: Solving Tomorrow s Software Development Challenges Today By Bob DeAnna, Chief Technology Officer, Recursion Software We are on the

More information

A Peer-to-Peer Approach to Content Dissemination and Search in Collaborative Networks

A Peer-to-Peer Approach to Content Dissemination and Search in Collaborative Networks A Peer-to-Peer Approach to Content Dissemination and Search in Collaborative Networks Ismail Bhana and David Johnson Advanced Computing and Emerging Technologies Centre, School of Systems Engineering,

More information

ABSTRACT INTRODUCTION SOFTWARE DEPLOYMENT MODEL. Paper 341-2009

ABSTRACT INTRODUCTION SOFTWARE DEPLOYMENT MODEL. Paper 341-2009 Paper 341-2009 The Platform for SAS Business Analytics as a Centrally Managed Service Joe Zilka, SAS Institute, Inc., Copley, OH Greg Henderson, SAS Institute Inc., Cary, NC ABSTRACT Organizations that

More information

Efficiency of Web Based SAX XML Distributed Processing

Efficiency of Web Based SAX XML Distributed Processing Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences

More information

Dynamic Bluetooth File Sharing With Cellular Devices. Project Goals

Dynamic Bluetooth File Sharing With Cellular Devices. Project Goals Dynamic Bluetooth File Sharing With Cellular Devices Steve Brar George Chen Michael Hair Jon Wagoner Project Goals Establishing a Bluetooth connection Download application software to client Look up existing

More information

E-Business Technologies for the Future

E-Business Technologies for the Future E-Business Technologies for the Future Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh spring@imap.pitt.edu http://www.sis.pitt.edu/~spring Overview

More information

GHG Protocol Product Life Cycle Accounting and Reporting Standard ICT Sector Guidance. Chapter 7:

GHG Protocol Product Life Cycle Accounting and Reporting Standard ICT Sector Guidance. Chapter 7: GHG Protocol Product Life Cycle Accounting and Reporting Standard ICT Sector Guidance Chapter : Guide for assessing GHG emissions related to software DRAFT January 0 Table of Contents GHG Protocol ICT

More information

Eastern Illinois University information technology services. strategic plan. January,

Eastern Illinois University information technology services. strategic plan. January, Eastern Illinois University information technology services strategic plan January, 2014 Introduction With the selection of emerging technologies as one of the six themes of the university s recent strategic

More information

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS

INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS INTRODUCTION TO CLOUD COMPUTING CEN483 PARALLEL AND DISTRIBUTED SYSTEMS CLOUD COMPUTING Cloud computing is a model for enabling convenient, ondemand network access to a shared pool of configurable computing

More information