Article

Strategies for Supporting Application Portability

Authors:
To read the full-text of this research, you can request a copy directly from the author.

Abstract

A range of system-design strategies that can be used to support portability and the ways in which these strategies have been employed by past and present systems are examined. The strategies are grouped into three categories: (1) strategies that maintain identical execution-time interfaces by porting system components that form the interface, (2) strategies that maintain identical or nearly identical interfaces for different system components by adhering to appropriate standards, and (3) strategies that assist in the adaptation of programs to a target environment. The principal emphasis is on operating-system issues. User interface portability, dynamic portability in a network, and international exchange of programs are briefly considered.< >

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

... From buyers point of view this prevents competive bidding between providers and stands as a obstacle for future savings [10]. The opposite situation, where application can transported without any changes from platform to another, is portability [18]. Portability in Platform as a Service (PaaS) is a concern for new application development, particularly when platforms require proprietary languages and run-time environments. ...
... For application portability purposes platform independent programming languages should be preferred [18]. Web Application implementation is developed using programming language and possible framework. ...
... Application portability divides into source and binary portability according to Mooney [18]. Java has code and binary portability. ...
Article
Enterprises have started adopting Cloud Computing to re-duce operating and owning costs for Information and Com-munication Technology. Another benefits for Cloud Com-puting are increased reliability, decreased latency and on demand scaling. Developers can leverage Cloud Comput-ing provider's Application Programming Interfaces (API) and frameworks for building and delivering Web Applica-tions and services. Freedom of choice for Cloud Computing provider holds the key to protect investment on developed applications. That freedom requires portability and interop-erability for applications and services. Portable application allows buying computational resources from many Cloud Computing providers rather than submitting to billing pol-icy of single provider. Because in practice full portability is almost impossible achieve, sufficient portability in practice can be described as Write Once, Run Anywhere (WORA) principle. To be applicable WORA requires a strategy to support automated application deployment for cloud. This strategy is migration process which harmonizes differences between Cloud Computing Providers. Interoperable cloud services provide information exchange between diverse sys-tems and organizations in Cloud Computing environment. In this paper we propose migration strategy for portability and interoperability between Cloud Foundry 1 from VMWare and OpenShift 2 from RedHat. We study Java's Spring framework and focus on Data Storage and Messaging APIs.
... Code portability is broadly recognised as a desirable nonfunctional requirement for software products, and there are a few contributions in the literature providing a way to assess it. The most practical and established portability metric consists of counting the number of instructions that use types defined in platform specific libraries or APIs [17], [12], such as e.g. method calls to access the file system or parse an XML data stream, etc. ...
... Further portability metrics have been proposed, stated as "the percentage of target dependent statements" [17], and as "how much modifying and adapt the code to a new environment is cheaper than redevelop it" [12]. The above metric definitions suggest that the first step in assessing code portability is to identify the program points that are bound to an underlying environment. ...
... Portability strategies highly depend on targeting architectures and platforms. As indicated in [5], strategies for supporting portability in software can be grouped in three categories: ...
... Used design patterns are based on industry standard resources in GOF book [5] and other tested and proven game development patterns [6]. Mapping between design goals and design patterns for the proposed game engine is described below: ...
Conference Paper
Nowadays, increasing number of game engines are being developed for mobile platforms. As game engines developed for mobile platforms are small scale compared to console and desktop alternatives, game engine development in mobile platforms uses basic software development methods. However, as mobile platforms enhance and development of more complex games become possible, basic development methods will not scale well for advanced game development requirements. This paper examines design of a mobile game engine that provides software maturity by using design goals and design patterns. Our results show that developing a game engine by using a design goal and a design pattern based approach provides a more regular and a clear path for building each aspect of the engine with a high-level perspective of design.
... The term "environment" refers to all elements of a total system with which an application explicitly interacts, either during development or during execution. These elements typically include an operation system, language processors, procedure libraries, hardware units, and users [Mooney, 1990]. ...
... The porting process itself has two major activities: transportation and adaptation [Mooney, 1990]: ...
... Diversas estratégias tem sido adotadas para permitir a portabilidade da aplicação, diminuindo desta forma os custos de engenharia recorrente. O uso de interfaces de chamadas de sistema (e.g POSIX, WIN32, MOSI) [8] é um exemplo. Seu uso permite que aplicações executem em sistemas operacionais que a contemplem. ...
... Máquinas virtuais (VM) e camadas de abstração de hardware (HAL) são duas outras estratégias utilizadas para se obter portabilidade em sistemas operacionais e consequentemente, suas aplicações [8]. Embora máquinas virtuais ofereçam um bom nível de portabilidade, esta estratégia acarreta em um excessivo overhead de processamento e memória, restringido seu uso em sistema embarcados. ...
Conference Paper
Full-text available
Embedded software often needs to be ported from one system to another. This may happens for a number of reasons among which are the need for using less expensive hardware or the need for extra resources. Application portability can be achieved through an architecture-independent software/hardware interface. This is not a straight-forward task in the realm of embedded systems, since they often have very specific platforms. This work shows how an application- oriented component-based operating system was developed to allow system and application portability. Case studies present two embedded applications running in different platforms, showing that application source code is totally free of architecture-dependencies.
... Diversas estratégias tem sido adotadas para permitir a portabilidade da aplicaçaplicaç˜aplicação, diminuindo desta forma os custos de engenharia recorrente. O uso de interfaces de chamadas de sistema (e.g POSIX, WIN32, MOSI) [Mooney 1990] ´ e um exemplo. Seu uso permite que aplicaçaplicaç˜aplicações executem em sistemas operacionais que a contemplem. ...
... Máquinas virtuais (VM) e camadas de abstraçabstraç˜abstração de hardware (HAL) são duas outras estratégias utilizadas para se obter portabilidade em sistemas operacionais e consequentemente em suas aplicaçaplicaç˜aplicações [Mooney 1990]. Embora máquinas virtuais ofereçam um bom nível de portabilidade, esta estratégia acarreta em um excessivo overhead de processamento e memória, restringido seu uso em sistema embarcados. ...
Conference Paper
Full-text available
Several reasons may cause the change of a embedded application hardware platform, like the need for using less expensive hardware or the need for extra resources. The use of a architecture-independent software/hardware interface brings several benefits to the process of embedded system develop-ment. However, the definition of this interface in the realm of embedded systems is not a straight-forward task, since these platform present a huge architectu-ral variability. This work shows how an application-oriented component-based operating system was developed to allow application portability. Case studies present two embedded applications running in different platforms, showing that application source code is totally free of architecture-dependencies. Finally, an ongoing work of Co-Design on proposed system is presented. Resumo. Diversos motivos, tais como a necessidade do uso de um hardware mais barato ou pela necessidade de recursos adicionais podem ocasionar a mudança da plataforma de hardware de um sistema embarcado. O uso de uma interface software/hardware independente traz diversos benefícios para o processo de desenvolvimento destes sistemas, contudo definir tal interface no domínio de sistemas embarcados nãó e uma tarefa trivial, já que as pla-taformas utilizadas por esses sistemas apresentam uma grande variabilidade arquitetural. Este trabalho demonstra como um sistema operacional orientadò a aplica ao e baseado em componentes foi desenvolvido facilitando a porta-bilidade do sistema. Os estudos de caso apresentam dois sistemas embarca-dos executando em plataformas diferentes, evidenciando que o código-fonte da aplica aó e livre de dependências arquiteturais da plataforma. Por fim, um trabalho em andamento de Co-Design no sistema propostó e apresentado.
... Software with a high degree of portability is transportable to a more diverse set of platforms. The system components with the greatest impact on portability include the hardware platform, operating system, and compilers [7]. Other development tools, system libraries, and build processes have a lesser effect. ...
... Portability is rarely a standalone software engineering topic, but references can be found in every area of computer science: computer languages, operating systems, parallel programming, and system virtualization, to name a few. An exception is the seminal work of Mooney [1,6,7] which has information about the software engineering aspects of portability, including basic principles, strategies for portability, a portability metric, and a discussion of portability and software lifecycle. We reference two more papers that fit in the generic portability category, including a paper on using cross-platform toolkits [10], and a book on cross-platform practices in the Mozilla project [11]. ...
Article
Portability is a measure of the ease with which software can be moved between heterogeneous computing platforms. Software with a high degree of portability is valuable because it reaches more users. Commercial developers expend a considerable effort to make software that can run on multiple platforms. Scientific programmers have the same motivation to make their software portable, but their requirements differ in some respects from those of commercial software. Scientists have a unique need for collaboration and the independent replication of results at geographically diverse sites. Scientific algorithms tend to be expensive computationally, so scientific developers are more likely to use parallel computing. The fast pace of evolution for High-Performance Computing (HPC) systems affects scientific organizations inordinately, causing diversity in their computing platforms. These factors combine to make portability a critical issue for scientific computing. In addition, scientific institutions may also lack the resources which are available to commercial developers, and this can influence selection of a portability strategy. In this paper we propose criteria for evaluating the portability of a scientific application and we survey existing portability techniques with respect to those criteria. We identify the set of portability methods which are most applicable to scientific computing, and we identify future research problems. 1. Introduction Modern scientific research depends on computer technology to organize and analyze large data sets. Computers provide the ability to process the complex models that are common in the scientific domain. Scientific inquiry requires that information be shared with other scientists. It follows that software used for scientific purposes should be distributable to the widest possible base of potential users, in other words it should be made portable. In practice, portability is a difficult goal for the scientific developer [4,13]. The great diversity of computer hardware and software poses a fundamental threat to software portability [1,4]. Advances in hardware platforms and operating systems, and the evolution of programming languages and programming standards inhibit portability. Scientific computing imposes unique constraints of its own, including large computational demands which have made parallel programming of critical importance to scientific developers [3,12]. HPC systems used for scientific computing evolve quickly, so scientific organizations often accumulate extremely heterogeneous computing environments [2,3,4,5,8]. These concerns interact to increase the importance of code and performance portability for scientific applications. Many scientific applications are developed using open source environments such as Linux [4,17]. Binary compatibility is not an attribute of Linux, so applications are customarily released as source code packages. Scientific developers often lack the time and resources needed to port and verify their software in multiple environments. As a result, end users can become responsible for making programs run on their own systems. In essence they must take on the task of porting the software. This problem is very well known in the scientific community [4,5,7,8]. Portability is frequently ignored by scientific developers [13]. In the rare case where portability is addressed, it is done in an ad hoc manner, despite the availability of better methods. The lack of information on portability makes the problem worse. The current literature has no comprehensive survey of existing portability techniques, nor is there a systematic comparison of the costs and benefits of the various portability methods. In this paper we make the following contributions: A portability model based on hardware and software configuration spaces. Expanded criteria for evaluating the portability of scientific applications. A comprehensive survey of portability techniques used for cross-platform development. The introduction of the concept of environmental adaptation for software portability. A process for selecting a portability strategy early in the development process. Our paper is organized as follows: Section 2 summarizes our research references and introduces a portability model, Section 3 describes the unique requirements of scientific computing, and Section 4 presents our criteria for evaluating portability. Section 5 surveys existing portability techniques. Section 6 evaluates these techniques against our criteria, and Section 7 discusses the selection of a portability strategy and presents our conclusions. Section 8 explores future research topics. 2. Portability Overview Software which can run on diverse platforms is more valuable because it is available to more users, and portable software has increased longevity because it can migrate from older to newer platforms [1]. We define software portability as the ability to move between computing environments that differ in a significant way. Software with a high degree of portability is transportable to a more diverse set of platforms. The system components with the greatest impact on portability include the hardware platform, operating system, and compilers [7]. Other development tools, system libraries, and build processes have a lesser effect. Portability has been a longstanding goal of software developers, but no single solution has been proposed that comprehensively solves the problem [1].
... An example is the use of system call interfaces (e.g. POSIX, WIN32, MOSI) [1]. Their use allow applications to run in any operating systems that implements them. ...
... Virtual Machines (VM) and Hardware Abstraction Layers (HAL) are two other strategies used to obtain portability for operating systems and, consequently, applications [1]. Although virtual machines offer a good level of portability, this strategy often incurs in excessive processing and memory overheads, restricting their use in embedded systems. ...
Conference Paper
Full-text available
Embedded software often needs to be ported from one system to another. This may happen for a number of reasons among which are the need for using less expensive hardware or the need for extra resources. Application portability can be achieved through an architecture-independent software/hardware interface. This is not a straight-forward task in the realm of embedded systems, since they often have very specific platforms. This work shows how an application-oriented component-based operating system was developed to allow system and application portability. Case studies present two embedded applications running in different platforms, showing that application source code is totally free of architecture-dependencies
... Portability [27] and interoperability both affect the type of BCI applications that can be considered. Most commercial EEG systems are tethered to immobile processing hardware, making them difficult to deploy outside of the clinic or laboratory. ...
Article
Full-text available
Objective: We designed and validated a wireless, low-cost, easy-to-use, mobile, dry-electrode headset for scalp electroencephalography (EEG) recordings for closed-loop brain–computer (BCI) interface and internet-of-things (IoT) applications. Approach: The EEG-based BCI headset was designed from commercial off-the-shelf (COTS) components using a multi-pronged approach that balanced interoperability, cost, portability, usability, form factor, reliability, and closed-loop operation. Main Results: The adjustable headset was designed to accommodate 90% of the population. A patent-pending self-positioning dry electrode bracket allowed for vertical self-positioning while parting the user’s hair to ensure contact of the electrode with the scalp. In the current prototype, five EEG electrodes were incorporated in the electrode bracket spanning the sensorimotor cortices bilaterally, and three skin sensors were included to measure eye movement and blinks. An inertial measurement unit (IMU) provides monitoring of head movements. The EEG amplifier operates with 24-bit resolution up to 500 Hz sampling frequency and can communicate with other devices using 802.11 b/g/n WiFi. It has high signal–to–noise ratio (SNR) and common–mode rejection ratio (CMRR) (121 dB and 110 dB, respectively) and low input noise. In closed-loop BCI mode, the system can operate at 40 Hz, including real-time adaptive noise cancellation and 512 MB of processor memory. It supports LabVIEW as a backend coding language and JavaScript (JS), Cascading Style Sheets (CSS), and HyperText Markup Language (HTML) as front-end coding languages and includes training and optimization of support vector machine (SVM) neural classifiers. Extensive bench testing supports the technical specifications and human-subject pilot testing of a closed-loop BCI application to support upper-limb rehabilitation and provides proof-of-concept validation for the device’s use at both the clinic and at home. Significance: The usability, interoperability, portability, reliability, and programmability of the proposed wireless closed-loop BCI system provides a low-cost solution for BCI and neurorehabilitation research and IoT applications.
... Despite disagreement about the exact meaning of "Portability", we can consider (Def.14) as working definition. According to James D. Mooney [45] the primary goal of portability is to facilitate the activity of porting an application from an environment in which it currently operates to a new or target environment. This activity has two major aspects: We skip "Adaptation" which involves higher level modifications that might be necessary to adjust the program to work with aspects of the new environment that are intentionally or unavoidably different from the old one. ...
Thesis
Full-text available
Topological features of an object are fundamental in image processing. In many applications, including medical imaging, it is important to maintain or control the topology of the image. However the design of such transformations that preserve topology and geometric characteristics of the input image is a complex task, especially in the case of parallel processing. Parallel processing is applied to accelerate computation by sharing the workload among multiple processors. In terms of algorithm design, parallel computing strategies profits from the natural parallelism (called also partial order of algorithms) present in the algorithm which provides two main resources of parallelism: data and functional parallelism. Concerning architectural design, it is essential to link the spectacular evolution of parallel architectures and the parallel processing. In effect, if parallelization strategies become necessary, it is thanks to the considerable improvements in multiprocessing systems and the rise of multi-core processors. All these reasons make multiprocessing very practical. In the case of SMP machines, immediate sharing of data provides more flexibility in designing such strategies and exploiting data and functional parallelism, notably with the evolution of interconnection system between processors. In this perspective, we propose a new parallelization strategy, called SD&M (Split Distribute and Merge) strategy that cover a large class of topological operators. SD&M has been developed in order to provide a parallel processing for many topological transformations. Based on this strategy, we proposed a series of parallel topological algorithm (new or adapted version). In the following we present our main contributions: (i) A new approach to compute watershed transform based on MSF transform, that is parallel, preserves the topology, does not need prior minima extraction and suited for SMP machines. Proposed algorithm makes use of Jean Cousty streaming approach and it does not require any sorting step, or the use of any hierarchical queue. This contribution came after an intensive study of all existing watershed transform in the discrete case. (ii) A similar study on thinning transform was conducted. It concerns sixteen parallel thinning algorithms that preserve topology. In addition to performance criteria, we introduce two qualitative criteria, to compare and classify them. New classification criteria are based on the relationship between the medial axis and the obtained homotopic skeleton. After this classification, we tried to get better results through the proposal of a new adapted version of Couprie’s filtered thinning algorithm by applying our strategy. (iii) An enhanced computation method for topological smoothing through combining parallel computation of Euclidean Distance Transform using Meijster algorithm and parallel Thinning–Thickening processes using the adapted version of Couprie’s algorithm already mentioned.
... Software portability is mostly acquired by ad-hoc techniques when trying to port existing products [8]. In any particular case of a software unit, software portability is achieved based on several factors including software structure, and the properties of a targeted environment (e.g., hardware, programming language, and operating system) [14]. To accomplish software portability between different software-hardware environments, it is important to focus on several methods such as reusing binary files or source code and using interpretable code, API emulators virtualization, or web technologies [20]. ...
... Software portability is mostly acquired by ad-hoc techniques when trying to port existing products [8]. In any particular case of a software unit, software portability is achieved based on several factors including software structure, and the properties of a targeted environment (e.g., hardware, programming language, and operating system) [14]. To accomplish software portability between different software-hardware environments, it is important to focus on several methods such as reusing binary files or source code and using interpretable code, API emulators virtualization, or web technologies [20]. ...
Conference Paper
Full-text available
Software developers agree that software portability is a desirable attribute for their software quality. Software portability is mostly acquired by ad-hoc techniques when trying to port existing products. There is a lack of unified measuring approach of software portability in most computing platforms. This paper presents preliminary results of a systematic literature review, conducted to collect evidence on measuring software portability. The evidence was gathered from selected studies and based on a set of meaningful and focused questions. 49 studies of these were selected for data extraction performed against the research questions. We provide an overview of used\proposed measurement metrics of software portability. Our results suggested that there are scattered efforts to understand measurement of software portability, and no census has been achieved.
... • Portability: A measure of the degree to which application transports and adapts to a new environment to save the cost of redevelopment [22]. The purpose is to provide a service with the ability to run across multiple clouds' infrastructures from different cloud environments. ...
Chapter
Full-text available
Cloud applications, also known as software as a service (SaaS), provide advantageous features that increase software adoption, accelerate upgrades, reduce the initial capital costs of software development, and provide less strenuous scalability and supportability. Developing software with these features adds new dimensions of complexity to software development that conventional software development methodologies often overlook. These complexities necessitate additional efforts in the software development process to fully utilize cloud qualities (e.g., on-demand, pay-per-use, and auto-scalability). Cloud applications can utilize one or more of these qualities based on software and business requirements. It is noteworthy that present software methodologies (traditional and agile) are deficient to a certain extent in supporting cloud application qualities. In this chapter, therefore, we propose a systematic requirement engineering approach to address this deficiency and facilitate building SaaS with cloud qualities in mind. The proposed cloud requirements engineering approach relies on identifying the number of cloud qualities to be utilized in SaaS and consequently addresses any existing shortcomings. First, we examine different deployment approaches of a cloud application. We then identify the cloud applications’ qualities and highlight their importance in the cloud application development process. These qualities are used to derive additional considerations in the form of questions to guide software engineers throughout the requirement engineering process. We demonstrate how these considerations can be used in the requirement engineering process and how the proposed approach effectively produces high-quality cloud applications. This work advocates the need for a systematic approach to support cloud applications requirements engineering.
... Thus, experience portability as described by Mooney 6 is enabled. Furthermore, the extraction of a complete formal description of the code semantic is very costly and most probably not worth the effort. ...
Article
Cross‐platform development nowadays is a key issue in software engineering, since software developers have to target multiple platforms in order to reach a larger number of users. Often, software is developed initially for one platform before being extended to multiplatform development. However, most of the existing technical support and methods for cross‐platform development are applicable only to projects that develop a software product from scratch. They do not address the frequent situation that an existing mature software shall be ported rather than being reimplemented for an additional platform. In this article, we present a flexible transformation method from single to multiplatform development that systematically leverages existing and novel tools. For facilitating coordinated evolution of the original and the target platform code, we establish traceability across the two versions and develop a common architecture across both the original and target platform implementations. As an economic advantage, the method allows to keep the original mature application and reduces maintenance redundancies compared with reimplementation. As a validation, the approach has been applied to port two mobile apps and a Java library to new platforms resulting in high portions of commonly used convertible code, structural equivalences across the original and target platform implementation and traceability between them. We introduce a method for porting software to new platforms that reduces the effort for subsequent evolution tasks. The method enforces similarities between the original and the ported implementation. Furthermore, it introduces explicit trace links between the implementations and utilizes them for the code's coordinated co‐evolution.
... Throughout this work we will use the definition of software portability provided in [2]: ...
Article
Full-text available
Building and deploying software on high-end computing systems is a challenging task. High performance applications have to reliably run across multiple platforms and environments, and make use of site-specific resources while resolving complicated software-stack dependencies. Containers are a type of lightweight virtualization technology that attempt to solve this problem by packaging applications and their environments into standard units of software that are: portable, easy to build and deploy, have a small footprint, and low runtime overhead. In this work we present an extension to the container runtime of Shifter that provides containerized applications with a mechanism to access GPU accelerators and specialized networking from the host system, effectively enabling performance portability of containers across HPC resources. The presented extension makes possible to rapidly deploy high-performance software on supercomputers from containerized applications that have been developed, built, and tested in non-HPC commodity hardware, e.g. the laptop or workstation of a researcher.
... Despite disagreement about the exact meaning of "Portability", we can consider (Def.14) as working definition. According to James D. Mooney [45] the primary goal of portability is to facilitate the activity of porting an application from an environment in which it currently operates to a new or target environment. This activity has two major aspects: We skip "Adaptation" which involves higher level modifications that might be necessary to adjust the program to work with aspects of the new environment that are intentionally or unavoidably different from the old one. ...
... operating systems and middleware platforms). In literature, a software application is defined as portable when the cost and effort to port and adapt it to a new environment is less than the cost of redevelopment of a new version and training of the developers [70,144]. Portability is a desirable property for SaaS applications [32,166]. ...
Thesis
Full-text available
Software as a Service (SaaS) has been increasingly adopted by software vendors as their main software delivery model, as it provides the opportunity to offer their software applications to a larger market and to benefit from the economies of scale. One of the key enablers to leverage economies of scale is multi-tenancy: resources are shared among multiple customer organizations (the so-called tenants), which leads to higher resource utilization and scalability. The highest degree of resource sharing is achieved with application-level multi-tenancy. However, this focus on increased resource sharing typically results in a one-size-fits-all approach. As a consequence, multi-tenant SaaS applications are inherently limited in terms of flexibility and variability, and cannot be customized to the different and varying requirements of the different tenants. This dissertation presents both a middleware framework and a software engineering method to facilitate the development, operation and management of customizable, multi-tenant SaaS applications. More specifically, the middleware framework improves the flexibility of multi-tenant SaaS applications by enabling tenant-specific customizations, while preserving the economies of scale and limiting the application engineering complexity. The focus is on dynamically composing software variants on a per tenant basis as well as on enforcing tenant-specific performance SLAs throughout the SaaS application. The service line engineering (SLE) method aims to reduce the management complexity of many co-existing tenant-specific configurations as well as the effort to provision tenants and to update and maintain the customizable SaaS application. This work has been validated and evaluated in the context of two types of industry-relevant SaaS applications, i.e. a request-driven online hotel booking application and a batch-driven document processing application. We have implemented different prototypes on top of existing cloud platforms and the evaluation shows the effectiveness of our solution while introducing only a very limited performance overhead.
... operating systems and middleware platforms). In literature, a software application is defined as portable when the cost and effort to port and adapt it to a new environment is less than the cost of redevelopment of a new version and training of the developers [51,29]. Portability is a desirable property for SaaS applications [14,61]. ...
Article
Full-text available
Software vendors increasingly aim to apply the Software-as-a-Service (SaaS) delivery model instead of the traditional on-premise model. Platforms-as-a-Service (PaaS), such as Google App Engine and Windows Azure, deliver a computing platform and solution stack as a service, but they also aim to facilitate the development of cloud applications (SaaS). Such PaaS offerings should enable third parties to build and deliver multi-tenant SaaS applications while shielding the complexity of the underpinning middleware and infrastructure. This paper compares, on the basis of a practical case study, three different and representative PaaS platforms with respect to their support for SaaS application development. We have reengineered an on-premise enterprise application into a SaaS application and we have subsequently deployed it in three PaaS-based cloud environments. We have investigated the following qualities of the PaaS platforms from the perspective of SaaS development: portability of the application code base, available support for creating and managing multi-tenant-aware applications, and quality of the tool support.
... 7 Quellcode-Portabilität: Durch Neukompilierung des Quellcodes kann eine ausführbare Datei für das Zielsystem erstellt werden (s.a. [Moo90]). ...
... Another research question was whether the system could support remote monitoring and management of patients. To evaluate this we introduced one more feature; portability (Mooney, 1990). ...
Article
Full-text available
Recent studies have shown that long-term monitoring of asthma severity can reduce asthma exacerbations, optimise drug therapy and decrease the cost of asthma management [National Heart, Lung and Blood Institute, 1997]. The management of a chronic patient is a collective and cooperative enterprise that may exploit Information Technologies (IT) to improve the overall quality of care [Int. J. Med. Informatics 55 (1999) 87]. The aim of this paper is to present a web based asthma tool that significantly enhances public information and awareness to support illness prevention, patients independent living through user profiling and personalisation and collaborative work between health professionals, therapists, caregivers and patients through Tele-Care and Tele-Consultation. The system has been tested through a preliminary survey that took place in UK and Greece.
... The OSE/RM does not provide much detail by itself, but it forms the foundation for many of the other models. The interface model that will form the basis for our study is the Static Interface Model (SIM), originally proposed by the author (Mooney, 1990). This model assumes that the software to be ported is an application program, although other software units would lead to a similar form. ...
Article
Software portability is often cited as desirable, but rarely receives systematic attention in the software development process. With the growing diversity of computing platforms, it is increasingly likely that software of all types may need to migrate to a variety of environments and platforms over its lifetime. This tutorial is intended to show the reader how to design portability into software projects, and how to port software when required. Full Text at Springer, may require registration or fee
... Even though source portability allows some code to be changed, the goal remains to change as little code as possible. In an earlier article, Mooney (1990) mentions a third, and least optimal solution: experience portability. This does not concern moving code from one environment to another, but instead focuses on the porting of ideas and algorithms. ...
Article
When building an application for a mobile platform, there are many aspects to consider; portability, speed, and the user interface are just a few. Because there are several mobile devices that are capable of running custom applications and the costs associated with software development continue to increase, software portability is often a desired attribute of mobile applications. In addition, mobile devices are typically constrained with respect to memory and processor performance. Unfortunately, the effect of design and implementation decisions relative to these limitations will often conflict with the portability and usability of the software. If an application is easy to move from one device to another, the application is considered portable and less time is needed to create releases for new devices as well as maintaining updates for all devices. However, the design and implementation requirements associated with portability often create conflicts with other desirable attributes of the application. Mobile devices tend to have limited computing power and memory relative to a conventional desktop, which requires developers to become more conscious of the processing and memory efficiency of their application. While limited memory and processing power can be viewed as similar problems between many of the mobile platforms, the user interface creates a new problem for developers. Whereas desktop environments generally have the same de facto layout, user interfaces for mobile devices vary significantly and impose additional constraints on software design and implementation Leveraging from recent experience developing a commercial prototype of a language translation application, this paper will explore options the developer has to choose from in terms of programming language...
... This section briefly reviews some concepts related to portability, and introduces some preferred terminology. Most of the ideas in this section are discussed more fully in [3]. ...
Article
Portability is recognized as a desirable attribute for the vast majority of software products. Yet the literature on portability techniques is sparse and largely anecdotal, and portability is typically achieved by ad hoc methods. This paper proposes a framework for incorporating portability considerations into the software process. Unlike reuse, portability can be effectively attained for individual projects, both large and small. Maximizing portability, however, is more than an implementation detail; it requires reexamination of every phase of the software lifecycle. Here we identify issues and propose guidelines for increasing and exploiting portability during each of the key activities of software development and maintenance. Keywords Software portability, software reuse INTRODUCTION Portability is recognized as a desirable attribute for the vast majority of software products. In an age of ubiquitous computing and fast moving technology, there are few software products that can...
Article
Full-text available
The watershed transform is considered as the most appropriate method for image segmentation in the field of mathematical morphology. In the following paper, we present an adapted topological watershed algorithm suited for a rapid and effective implementation on Shared Memory Parallel Machine (SMPM). The introduced algorithm allows a parallel watershed computing while preserving the given topology. No prior minima extraction is needed, nor the use of any sorting step or hierarchical queue. The strategy that guides the parallel watershed computing, labeled SDM-Strategy (equivalent to Split-Distributes and Merge), is also presented. Experimental analyses such as execution time, performance enhancement, cache consumption, efficiency and scalability are also presented and discussed.
Chapter
The design of systems and components during the design stage of the systems life cycle requires specific purposeful actions to ensure effective designs and viable systems. Designers are faced with a number of adaptation concerns that they must embed into the design in every instance of thinking and documentation. The ability for a system to adapt is essential to its continued survival and ability to provide requisite functions for its stakeholders. Adaptation concerns includes the non-functional requirements for extensibility, portability, reusability, and self-descriptiveness. Purposeful design requires an understanding of each of these requirements and how to measure and evaluate each as part of an integrated systems design.
Chapter
This paper considers some problems which may arise in the quest for software portability, especially those relating to the system interface, and evaluates the CTRON specification to determine if these problems may be avoided. The literature on portability is reviewed, especially case studies describing porting experience. The portability-related tasks performed by several classes of software developers and implementors are examined. These considerations lead to identification of four potential problem areas: subsets, specification level, range and performance guarantees, and language bindings. The CTRON specification is then examined in relation to these problem areas, and several recommendations are stated.
Article
Recently as the demand of smart devices increases, the porting of embedded operating systems such as Google Android, Microsoft Windows Mobile, and Embedded Linux, becomes more important. Consequently, the importance of efficient, systematic porting is also raised. Generally, developers initiate embedded operating system porting from getting operating system source codes and materials. After they get source codes, they modify the source codes, and then they test them. To identify porting in detail, we investigated a small porting team which has fifteen members. In this team, each developer has done porting depending on his or her knowledge and experience. Therefore, we tried to find studies for efficient, systematic porting, but we couldn't find sufficient study results. This study aims to analyze porting process in a small organization. Also, we'll suggest productive a porting process and evaluate productivity of the new process through a case study.
Article
Portability is becoming universally recognized as a desirable attribute for most software products, and porting is a recognized technique for extending the value and life of a software unit. However, most porting is still done by ad hoc techniques. Portability is not addressed explicitly either by software engineering curricula or by common software development methodologies. Moreover, there are few reports in the literature of academic research focused on portability issues. Many studies deal with reuse issues, and porting is a special case of reuse. However, these studies have not addressed the specialized problems of reuse across substantially different operating environments. A portability research group has been established at West Virginia University to help meet this need. Our overall goal is to develop improved methodologies for addressing portability in a cost-effective way for a wide range of software. A major obstacle to meeting this goal is the lack of established mechanisms to specify and measure portability. In this presentation we propose some initial approaches to the development of such mechanisms. We first describe briefly the issues that arise in developing portable software, and in reimplementing or porting existing software. This analysis is used to identify specification types and metrics that may aid in making effective portability-related decisions when performing these activities. We argue the need for specifications to describe interfaces and environmental attributes and to characterize the "degree of portability" of a software unit. Some approaches to formalizing these concepts are discussed. Cost metrics for software development and porting activities are also discussed, and we consider their use in comparing development and implementation alternatives. A formal definition for degree of portability is proposed, and some relevant software quality measures are briefly considered. Some simple examples are also presented to illustrate these concepts.
Article
Parallel computer architectures require innovative software solutions to utilize their capabilities. This statement is true for system software no less than for application programs. File system development for the IBM SP product line of computers started with the Vesta research project, which introduced the ideas of parallel access to partitioned files. This technology was then integrated with a conventional Advanced Interactive Executive™ (AIX™) environment to create the IBM AIX Parallel I/O File System product. We describe the design and implementation of Vesta, including user interfaces and enhancements to the control environment needed to run the system. Changes to the basic design that were made as part of the AIX Parallel I/O File System are identified and justified.
Conference Paper
This paper describes an experimental course on the topic of software portability, and initial experience in teaching this course. With the continuing proliferation of both applications and computing environments, the need for portability is being increasingly recognized. A large proportion of the software now being developed will eventually need to be ported to new environments. Yet this topic is missing from most computer science and software engineering curricula. The course described here was designed to explore practical issues in the development of portable software. Lectures and discussions on portability topics are combined with the ongoing development of a simple software project designed to expose a variety of portability problems. During the course the project is ported to several environments and redesigned to improve its portability. This course has been taught experimentally with encouraging results. Student assignments have used novel and effective methods to overcome portability barriers. Feedback from student indicates that they have become more aware of portability issues to be considered in software development, and have gained experience with system interface issues in several programming environments.
Article
Recent times have witnessed rapid advances in microprocessor technology resulting in an order of magnitude performance improvement every few years. These developments in hardware have been paralleled by several prominent trends in operating system design, ...
Article
Efforts to identify high payback functions performed by the Office of Space Science Applications (OSSA) data systems package existing operationally proven implementations as system building blocks and foster their use in the OSSA environment. An overview is given of the current state of OSSA data systems and the major challenges facing system developers over the next five years. Current trends in system commonality are discussed, and development is examined in the context of system design. Central system engineering approaches to solving the commonality and interoperability challenges are described. Efforts to package three diverse building blocks and to foster their reuse are documented.
Article
Full-text available
Chronic care patients are demanding to be more actively involved in the care of their condition. Self-monitoring of blood glucose and blood pressure is strongly advocated for people with type 2 diabetes. We are developing a DI@L-log system that replaces the traditional paper logbook used by diabetes patients, enabling them to send their data to the point of care on a weekly basis using spoken dialogue technologies over the telephone. The motivation for our system is to enhance care by providing patients with a voice and therefore empowering individuals to become active self-managers of diabetes.
Article
Full-text available
Recent studies have shown that long-term monitoring of asthma severity can reduce asthma exacerbations, optimise drug therapy and decrease the cost of asthma management. The management of a chronic patient is a collective and cooperative enterprise that may exploit Information Technologies (IT) to improve the overall quality of care. The aim of this paper is to present a web based asthma tool that significantly enhances public information and awareness to support illness prevention, patients independent living through user profiling and personalisation and collaborative work between health professionals, therapists, caregivers and patients through Tele-Care and Tele-Consultation. The system has been tested through a preliminary survey that took place in UK and Greece.
Conference Paper
The authors have been studying ways to configure APLICOT (application platform for integrated database and data communication), a common in-house application program (AP) development environment with the aim of simplifying the job flow of in-house online system building at NTT. The authors report the techniques used to design AP interfaces (APIs) in the APLICOT project and also include an appraisal of their usefulness. APLICOT breaks down all of the different kinds of online application processing at NTT into six major types based on the processing types of messages and files. APLICOT then provides a set of 54 API parts for each type to standardize AP development environments. This set minimizes the total development cost of AP and these API parts. APLICOT's purpose is to standardize AP development support systems while allowing flexibility in the number of required AP programmers and in their tasks
Article
Computer programs are portable to the extent that they can be moved to new computing environments with much less effort than it would take to rewrite them. In the limit, a program is perfectly portable if it can be moved at will with no change whatsoever. Recent C language extensions have made it easier to write portable programs. Some tools have also been developed that aid in the detection of nonportable constructions. With these tools many programs have been moved from the pdp-11 on which they were developed to other machines. In particular, the unix* operating system and most of its software have been transported to the Interdata 8/32. The source-language representation of most of the code involved is identical in all environments.
Article
Computer programs are portable to the extent that they can be moved to new computing environments with much less effort than it would take to rewrite them. In the limit, a pro- gram is perfectly portable if it can be moved at will with no change whatsoever. Recent C language extensions have made it easier to write portable programs. Some tools have also been developed that aid in the detection of nonportable constructions. With these tools many programs have been moved from the PDP-11 on which they were developed to other machines. In particular, the UNIX operating system and most of its software have been transported to the Interdata 8/32. The source-language representation of most of the code involved is identical in all environments.
Article
An attempt lo transport an operating system and some associated software from one machine to another is described. Some comments are made on the suitability of the system for such a task, and some recommendations are put forward to future operating system writers to assist in making their systems more portable.
Article
This paper describes a technique for producing a machine-independent operating system with a high level of performance. The technique is based on the definition of a hypothetical ideal machine, which acts as the target computer for the operating system. The characteristics of this ideal machine are described in detail.
Article
This paper describes some of the problems incurred when transporting the SOLO operating system from a PDP 11/45 to a smaller Modular One. Some comments are made about the intrinsic portability of operating systems written in high level languages and their flexibility in use.
Article
The Common Programming Interface (CPI), one of the four key elements of Systems Application Architecture, comprises a growing set of programming languages and services. The CPI indirectly offers end-user access through the Common User Access by providing the application developer with the necessary interfaces. The CPI addresses the application development requirement for portability of applications and programmer skills. As the CPI continues to expand, it addresses the requirements for access to host data through intelligent workstations and for transparent access to remote data and applications.
Article
Thoth is a real-time operating system which is designed to be portable over a large set of machines. It is currently running on two minicomputers with quite different architectures. Both the system and application programs which use it are written in a high-level language. Because the system is implemented by the same software on different hardware, it has the same interface to user programs. Hence, application programs which use Thoth are highly portable. Thoth encourages structuring programs as networks of communicating processes by providing efficient interprocess communication primitives.
Article
There are several successful operating systems for mini-computers written in high level languages and the time is now ripe for the development of portable systems for such machines. The system described in this paper is primarily designed to provide a friendly interactive multiprocessing environment for a single user. From his point of view, substantial parts of the system are completely machine independent. These include, for instance, the filing system, the command language, text editors, overlaying facilities and interprocess communication primitives. The system is suitable for many different application areas ranging over process control, data acquisition, data communication, text handling, data base systems and teaching.
Article
Recent technological advances in memory management architectures, multiprocessor systems, and software architectures dictate a reevaluation of the virtual memory management support provided by an operating system. The problems posed by multiprocessor systems and the portability issues raised by the large variety of memory management units available have not been satisfactorily addressed by past virtual memory systems. In addition, increases in virtual memory functionality that can be provided by memory managed architectures have gone largely unnoticed by system designers. This paper describes the design, implementation, and evaluation of the Mach virtual memory management system. The Mach virtual memory system exhibits architecture indepedence, multiprocessor and distributed system support, and advanced functionality. The performance of this virtual memory system is shown to often exceed that of commercially developed memory management systems targeted at specific hardware architectures.
The Pick Operating System, Part 2; System Control
  • R Cook
  • J Brandon
MUSS -- A Portable Operating System," &lt;i&gt;Software -- Practice and Experience&lt
  • . C J Theaker
  • G R Frank
An Exercise in the Transportation of an Operating System," &lt;i&gt;Software -- Practice and Experience&lt
  • . C R Snow
TRIPOS -- A Portable Operating System for Minicomputers," &lt;i&gt;Software -- Practice and Experience&lt
  • . M Richards