560 research outputs found

    ES6 자바스크립트의 스냅샷 기반 마이그레이션

    Get PDF
    학위논문(석사) -- 서울대학교대학원 : 공과대학 전기·정보공학부, 2021.8. 문수묵.최근 웹 플랫폼 및 자바스크립트의 인기와 함께, 자바스크립트로 작성된 프로그램을 위한 앱 마이그레이션 기술이 연구된 바 있다. 이는 이종의 기기 간에 연속적인 워크플로우를 제공해 새로운 사용자 경험을 제공하는 기술을 일컫는다. 여러 선행 연구에서 스냅샷 기반 방법론을 사용해 앱의 런타임 상태를 텍스트 형태로 직렬화 및 복원하는 시도를 했다. 그러나, 기존 연구들은 구 버전 자바스크립트 상에서 진행됐다는 한계가 있다. 이에 비해 ECMAScript2015 (ES6) 업데이트 이후 자바스크립트에 다양한 기능이 도입되었기 때문에, 기존 방법들은 오늘날 real-world 애플리케이션을 마이그레이션하기 어렵다. 본 논문은 [19]에서 소개된 우리의 프레임워크를 소개한다. 우리는 선행 연구에서 다뤄지지 않은 block scope, module, class syntax와 같은 ES6의 주요 기능을 분석했으며 이러한 새로운 기능을 사용하는 앱을 마이그레이션 하기 위한 알고리즘을 제안했다. 또한, 우리는 최신 자바스크립트 엔진에 대한 분석을 통해 실행 중인 자바스크립트 프로그램의 런타임 상태를 scope tree라는 자료구조 상에 직렬화하고, 후처리를 거친 scope tree로부터 스냅샷 코드를 생성했다. 이러한 방법론을 V8 자바스크립트 엔진인 상에 구현했으며, 복잡한 최신 자바스크립트 기능을 사용하는 벤치마크 프로그램에 대해 실험했다. 실험 결과를 통해 이러한 방법이 모바일 기기 간에 5개의 벤치마크 프로그램을 성공적으로 마이그레이션 시킨다는 것을 보였다. 복잡도가 가장 높은 앱 (ML 벤치마크, 소스 코드 크기 213KB)에 대한 실험에서 프레임워크로 인한 시간 부하를 측정한 결과, X86 랩톱에서 200ms 미만, ARM 기반 임베디드 보드에서 800ms 미만이었다. 이러한 결과를 통해 자원이 제한된 IoT 기기 등에 대한 적용 가능성을 검증했으며, 추가적으로 프레임워크의 활용 방안 및 향후 연구 방향에 대해 논의한다.With the growing popularity of the web platform and JavaScript, an interesting user experience called application (app) migration has been proposed for JavaScript programs. To enable a non-breaking workflow across different devices, recent studies have proposed snapshot-based techniques in which an app’s runtime state is serialized into a text form that can be restored back later. A limitation of existing literature, however, is that they are based on old JavaScript specifications. Since major updates introduced by ECMASCript2015 (a.k.a. ES6), JavaScript supports various features that cannot be migrated correctly with existing methods. Some of these features are heavily used in today’s real-world apps and thus greatly reduces the scope of previous works. In this thesis, I will mainly introduce my work presented in [19]. In the paper, we analyzed ES6 features such as block scopes, modules, and class syntax that were previously uncovered in app migration. We presented an algorithm that enables migration of apps implemented with these new features. Based on the standards adopted in modern JavaScript engines, our approach serializes a running program into a scope tree and reorganizes it for snapshot code generation. We implemented our idea on the open source V8 engine and experiment with complex benchmark programs of modern JavaScript. Results showed that our approach correctly migrates 5 target programs between mobile devices. Our framework could migrate the most complex app of source code size 213KB in less than 200ms in a X86 laptop and 800ms in an embedded ARM board, showing feasibility in resource-constrained IoT devices. I will also discuss possible use cases and research directions and conclude.Chapter 1. Introduction 1 1.1. JavaScript App Migration 1 1.2. Purpose of Research 2 Chapter 2. Background 4 2.1. Snapshot-based Approach 4 2.2. Function Closure and Scope Tree 6 2.3. Limitations of Previous Works 6 Chapter 3. Proposed Approach 10 3.1. Module Profiling 10 3.2. Migrating Modified Built-in Objects 11 3.3. Scope Tree Building 11 3.4. Syntax-Aware Tree Re-ordering 12 3.5. Tree Partitioning 13 3.6. Snapshot Code Generation 13 Chapter 4. Evaluation 17 4.1. Implementation and Setup 17 4.2. Scope Tree Analysis 18 4.3. Snapshot Code Sizes 19 4.4. Framework Time Overhead 20 Chapter 5. Discussion 22 5.1. Limitations 22 5.2. Alternative Approach 22 5.3. Potential Use Cases 23 Chapter 6. Conclusion 24 Bibliography 25 Abstract in Korean 27석

    ThingsMigrate: Platform-Independent Migration of Stateful JavaScript IoT Applications

    Get PDF
    The Internet of Things (IoT) has gained wide popularity both in academic and industrial contexts. As IoT devices become increasingly powerful, they can run more and more complex applications written in higher-level languages, such as JavaScript. However, by their nature, IoT devices are subject to resource constraints, which require applications to be dynamically migrated between devices (and the cloud). Further, IoT applications are also becoming more stateful, and hence we need to save their state during migration transparently to the programmer. In this paper, we present ThingsMigrate, a middleware providing VM-independent migration of stateful JavaScript applications across IoT devices. ThingsMigrate captures and reconstructs the internal JavaScript program state by instrumenting application code before run time, without modifying the underlying Virtual Machine (VM), thus providing platform and VM-independence. We evaluated ThingsMigrate against standard benchmarks, and over two IoT platforms and a cloud-like environment. We show that it can successfully migrate even highly CPU-intensive applications, with acceptable overheads (about 30%), and supports multiple migrations

    Liquid stream processing on the web: a JavaScript framework

    Get PDF
    The Web is rapidly becoming a mature platform to host distributed applications. Pervasive computing application running on the Web are now common in the era of the Web of Things, which has made it increasingly simple to integrate sensors and microcontrollers in our everyday life. Such devices are of great in- terest to Makers with basic Web development skills. With them, Makers are able to build small smart stream processing applications with sensors and actuators without spending a fortune and without knowing much about the technologies they use. Thanks to ongoing Web technology trends enabling real-time peer-to- peer communication between Web-enabled devices, Web browsers and server- side JavaScript runtimes, developers are able to implement pervasive Web ap- plications using a single programming language. These can take advantage of direct and continuous communication channels going beyond what was possible in the early stages of the Web to push data in real-time. Despite these recent advances, building stream processing applications on the Web of Things remains a challenging task. On the one hand, Web-enabled devices of different nature still have to communicate with different protocols. On the other hand, dealing with a dynamic, heterogeneous, and volatile environment like the Web requires developers to face issues like disconnections, unpredictable workload fluctuations, and device overload. To help developers deal with such issues, in this dissertation we present the Web Liquid Streams (WLS) framework, a novel streaming framework for JavaScript. Developers implement streaming operators written in JavaScript and may interactively and dynamically define a streaming topology. The framework takes care of deploying the user-defined operators on the available devices and connecting them using the appropriate data channel, removing the burden of dealing with different deployment environments from the developers. Changes in the semantic of the application and in its execution environment may be ap- plied at runtime without stopping the stream flow. Like a liquid adapts its shape to the one of its container, the Web Liquid Streams framework makes streaming topologies flow across multiple heterogeneous devices, enabling dynamic operator migration without disrupting the data flow. By constantly monitoring the execution of the topology with a hierarchical controller infrastructure, WLS takes care of parallelising the operator execution across multiple devices in case of bottlenecks and of recovering the execution of the streaming topology in case one or more devices disconnect, by restarting lost operators on other available devices

    USER INTERFACES FOR MOBILE DEVICES: TECHNIQUES AND CASE STUDIES

    Get PDF
    The interactive capabilities of portable devices that are nowadays increasingly available, enable mobile computing in diverse contexts. However, in order to fully exploit the potentialities of such technologies and to let end users benefit from them, effective and usable techniques are still needed. In general, differences in capabilities, such as computational power and interaction resources, lead to an heterogeneity that is sometimes positively referred to as device diversity but also, negatively, as device fragmentation. When designing applications for mobile devices, besides general rules and principles of usability, developers cope with further constraints. Restricted capabilities, due to display size, input modality and computational power, imply important design and implementation choices in order to guarantee usability. In addition, when the application is likely to be used by subjects affected by some impairment, the system has also to comply with accessibility requirements. The aim of this dissertation is to propose and discuss examples of such techniques, aimed to support user interfaces on mobile devices, by tackling design, development and evaluation of specific solutions for portable terminals as well as for enabling interoperability across diverse devices (including desktops, handhelds, smartphones). Usefulness and usability aspects are taken into great consideration by the main research questions that drove the activities of the study. With respect the such questions, the three central chapters of the dissertation are respectively aimed at evaluating: hardware/software solutions for edutainment and accessibility in mobile museum guides, visualization strategies for mobile users visiting smart environments, and techniques for user interface migration across diverse devices in multi-user contexts. Motivations, design, implementation and evaluation about a number of solutions aimed to support several dimensions of user interfaces for mobile devices are widely discussed throughout the dissertation, and some findings are drawn. Each one of the prototypes described in the following chapters has been entirely developed within the research activities of the laboratory where the author performed his PhD. Most activities were related to tasks of international research projects and the organization of this dissertation reflects their evolution chronology

    User Interface Migration of Web Applications with Task continuity and Platform Adaptation Support

    Get PDF
    This thesis shows the work undertaken for supporting user interface migration of web applications. Interface migration occurs when a user interacting with an application switches to a different device and the application interface is transferred onto the new device. Migration must be supported by a platform aware system able to perform interface adaptation that keeps into account the different features of the devices involved, in order to keep the interface usability. Beside adaptation, continuity is the main matter. Once the interface migrates onto a new device, the interaction can be continued without having to restart the application from the beginning. Different types of migration can occur and supporting them poses different level of difficulty. This thesis analyses the various types of migration and describes the client-server architecture implemented for supporting all of them. The thesis shows how the migration service evolved starting from a first core of basic functionalities supporting the easiest situation to the most challenging one

    Internal Framework Refactor/Improvement

    Get PDF
    The FCN (Fusion CoNsole) is a framework created with the purpose of providing developers with the rapid development of internal management applications that bundles solutions for common requisites in medium to large companies, reducing the setup boilerplate for the teams. The developed applications are available under a single hostname to provide its users with a single point of access. However, the current version of the FCN has several problems and bottlenecks that resulted from the lack of opportunity to solve them and due to the technology stack used becoming outdated. Such problems sometimes lead to time expensive processes and dependencies that, otherwise, could be avoided. From these needs, IAP – Internal Applications Platform – is born. IAP goals are to be a new version of the FCN where the raised problems are solved. The purpose of this thesis is to raise, understand, and solve the current problems of the framework. Such was achieved through a deep analysis of the current architecture, technologies that could be used to solve them or enhance the current version and to study and design solutions that allow to overcome them. It is hoped that the presented solutions not only solve the raised problems but improve the overall usability for developers and applications’ users. In the end, the presented solution not only solves the raised problems as it improves IAP’s usability for software developers and users of the applications built on top of it.O FCN (Fusion CoNsole) é uma framework criada com o propósito de fornecer aos desenvolvedores de software um rápido desenvolvimento de aplicações de gestão interna que contém soluções para requisitos comuns em médias e grandes empresas, reduzindo todo o trabalho inicial de configuração de uma nova aplicação. As aplicações desenvolvidas com o FCN estão disponíveis através de um único hostname de forma a garantir um ponto de acesso único. Apesar de poder ser visto como apenas uma coleção de componentes e ferramentas para desenvolvimento frontend, o FCN tenta, não só, promover o padrão da utilização e criação de componentes web reutilizáveis, bem como tenta facilitar o desenvolvimento de tais componentes utilizando um único tema definido pela empresa. O FCN é, ainda, implantado sobre uma plataforma que apresenta uma arquitetura de micro-serviços desenvolvida internamente. Tal permite quer a adição quer a utilização de serviços disponíveis para compor aplicações que tenham como objetivo vir a ser usadas por toda a empresa. Uma aplicação desenvolvida com o FCN, terá uma aparência e experiência de utilização semelhante a todas as aplicações desenvolvidas dentro da empresa, o que torna a experiência mais suave e ameniza a mudança de contexto entre as aplicações. Contudo, a versão atual do FCN apresenta vários problemas e limitações que resultam da falta de oportunidade para a resolução dos mesmos e devido à utilização de tecnologias desatualizadas. Problemas esses que levam, muitas vezes, a processos mais lentos e a dependências indesejadas que, caso contrário, poderiam ser evitadas. Nasce desta necessidade o IAP – Internal Applications Platform. O IAP tem como objetivo ser uma nova versão do FCN em que os problemas identificados estão resolvidos e/ou minimizados. Esta tese tem como objetivo o levantamento, a compreensão e a resolução dos problemas da atual framework. Tal foi alcançado através de uma profunda análise da arquitetura atual, das tecnologias que podiam ser utilizadas para ajudar a resolver e melhorar tais problemas e do estudo e design de soluções que possibilitem a sua resolução. No final, a solução apresentada neste documento não só resolve os problemas levantados como também melhora a usabilidade para os desenvolvedores de software e utilizadores das respetivas aplicações

    Framework for supporting JavaScript-Based Mobile Agents

    Get PDF
    The evolution of technology in interconnection solutions, such as networks or the Internet, and the emergence both of wireless sensors networks and distributed systems allowed many communication architectures to appear, being the Client-server architecture the most common. Here, we present a dissertation work about the mobile agents computing paradigm. A middleware and a mobile agent framework have been developed using the JavaScript language that allows the development, execution and the ability to move JavaScript mobile agents through the local network and Internet using Node.js for desktop operating systems and React Native for mobile operating systems, such as Android and iOS. This initiative arose as a way of dealing with problems raised by the considerable amount of existing Java based mobile agents platforms, which force the installation of the Java Virtual Machine on the devices, making complicated its execution in operating systems like macOS, iOS and others operating systems not compatible with Java

    Web-IDE for Low-Code Development in OutSystems

    Get PDF
    Due to the growing popularity of cloud computing and its numerous benefits, many desktop applications have been, and will continue to be, migrated into the cloud and made available through the web. These applications can then be accessed through any device that has access to a browser and internet connection, eliminating the need for installation or managing dependencies. Moreover, the process of introduction to the product is much simpler, faster and collaboration aspects are facilitated. OutSystems is a company that provides software that enables, through an Integrated Development Environment (IDE) and a specific Low-Code language, users to securely and rapidly build robust applications. However, there are only available desktop versions of this IDE. For this reason, the objective of the proposed thesis is to understand what would be the best path for developing a Web-based version of the IDE. To achieve this, it is important not only to understand the OutSystems Platform and, more specifically, the architecture of the Service Studio IDE, which is the component IDE provided by the product, but also to explore the state-of-the-art technologies that could prove to be beneficial for the development of the project. The goal of this work is to debate different architectural possibilities to implement the project in question and present a conclusion as to what the adequate course of action, given the context of the problem. After distinguishing what are the biggest uncertainties and relevant points, a proof of concept is to be presented accompanied with the respective implementation details. Finally, this work intends to determine what would be a viable technological architecture to build a Web-based IDE that is capable of maintaining an acceptable performance, similarly to Service Studio IDE, while also insuring that the this system is scalable, in order to be able to provide the service to a large amount of users. That is to say, to present a conclusion regarding the feasibility of the project proposed.Devido ao aumento de popularidade de tecnologias de computação cloud e as suas inúmeras vantagens, aplicações desktop estão e vão continuar a ser migradas para a cloud para que possam ser acedidas através da web. Estas aplicações podem ser acedidas através de qualquer dispositivo que tenha acesso à internet, eliminando a necessidade de instalação e gestão de dependências. Além disso, o processo de introdução ao produto é simplificado, mais rápido e a colaboração é facilitada. A OutSystems é uma empresa que disponibiliza um software que faz com que utilizadores, através de um IDE e uma linguagem de baixo nível, possam criar aplicações robustas de forma rápida e segura. No entanto, atualmente só existem versões deste IDE para desktop. Como tal, o objetivo da tese proposta é perceber qual será a melhor forma de desenvolver uma versão do IDE sobre a Web. Para alcançar isto, é importante não só compreender a Plataforma OutSystems e, mais especificamente, a arquitetura do Service Studio IDE, que é o principal componente disponibilizado pelo produto, mas também explorar as tecnologias estado de arte que podem ser benéficas para o desenvolvimento do projeto. O objetivo deste trabalho é debater diferentes arquiteturas possíveis para a implementação do projeto e concluir qual será o curso de ação adequado, dado o contexto do problema. Após distinguir quais são os maiores pontos de incerteza, uma prova de conceito é apresentada juntamente com os respetivos detalhes de implementação. Finalmente, este trabalho tem como intenção detalhar uma arquitetura tecnológica viável para construir um IDE na web capaz de manter uma performance aceitável, semelhante à do Service Studio IDE, e garantir a escalabilidade do sistema, de forma a conseguir oferecer o serviço a um número elevado de utilizadores. Por outras palavras, apresentar uma conclusão em relação à viabilidade do projeto proposto
    corecore