5,329 research outputs found

    MobiThin management framework: design and evaluation

    Get PDF
    In thin client computing, applications are executed on centralized servers. User input (e.g. keystrokes) is sent to a remote server which processes the event and sends the audiovisual output back to the client. This enables execution of complex applications from thin devices. Adopting virtualization technologies on the thin client server brings several advantages, e.g. dedicated environments for each user and interesting facilities such as migration tools. In this paper, a mobile thin client service offered to a large number of mobile users is designed. Pervasive mobile thin client computing requires an intelligent service management to guarantee a high user experience. Due to the dynamic environment, the service management framework has to monitor the environment and intervene when necessary (e.g. adapt thin client protocol settings, move a session from one server to another). A detailed performance analysis of the implemented prototype is presented. It is shown that the prototype can handle up to 700 requests/s to start the mobile thin client service. The prototype can make a decision for up to 700 monitor reports per second

    Service-oriented mobility of java code in web services-based architectures

    Get PDF
    Dissertaรงรฃo apresentada na Faculdade de Ciรชncias e Tecnologias da Universidade Nova de Lisboa para a obtenรงรฃo do Grau de Mestre em Engenharia InformรกticaSoftware mobility consists of providing software components, the ability to migrate to a remote host with the purpose of interacting locally. In other words, this technology enables computations to be transferred from the current machine to a remote one. This powerful enhancement embodied in a traditional network fairly raises security concerns. For now, we believe that software mobility paradigm is confined to environments with bases of trust such as local area networks or middleware layers where security issues can be better controlled. Service-oriented computations reorganize the network architecture in the form of services, where components are more easily integrated, modified and removed. They have the ability to cooperate between them regardless the programming language used in their development. In addition, service-oriented computing is a widely accepted technology for the implementation of distributed applications, namely middleware. The work developed in this thesis consists of instantiating a model which combines software mobility and service-oriented paradigms as proposed by Paulino [20]. In this model, migrating sessions take advantage of the resources of a service-oriented network, creating thus an environment where the migration is modeled in terms of services instead of network nodes abstractions. In the instantiated model, we aim to apply the migration of Java programs in a context of a service-oriented architecture developed with Web services. This application comprises of a middleware layer that runs between the source program and the Web services technologies, and whose interface is the result of the mapping of the operations defined in the model. The evaluation performed to the instantiated model allows us to identify situations in which component migration to the server to interact locally is more advantageous in comparison to remote interacting with it

    Split and Migrate: Resource-Driven Placement and Discovery of Microservices at the Edge

    Get PDF
    Microservices architectures combine the use of fine-grained and independently-scalable services with lightweight communication protocols, such as REST calls over HTTP. Microservices bring flexibility to the development and deployment of application back-ends in the cloud. Applications such as collaborative editing tools require frequent interactions between the front-end running on users\u27 machines and a back-end formed of multiple microservices. User-perceived latencies depend on their connection to microservices, but also on the interaction patterns between these services and their databases. Placing services at the edge of the network, closer to the users, is necessary to reduce user-perceived latencies. It is however difficult to decide on the placement of complete stateful microservices at one specific core or edge location without trading between a latency reduction for some users and a latency increase for the others. We present how to dynamically deploy microservices on a combination of core and edge resources to systematically reduce user-perceived latencies. Our approach enables the split of stateful microservices, and the placement of the resulting splits on appropriate core and edge sites. Koala, a decentralized and resource-driven service discovery middleware, enables REST calls to reach and use the appropriate split, with only minimal changes to a legacy microservices application. Locality awareness using network coordinates further enables to automatically migrate services split and follow the location of the users. We confirm the effectiveness of our approach with a full prototype and an application to ShareLatex, a microservices-based collaborative editing application

    Web API Fragility: How Robust is Your Web API Client

    Full text link
    Web APIs provide a systematic and extensible approach for application-to-application interaction. A large number of mobile applications makes use of web APIs to integrate services into apps. Each Web API's evolution pace is determined by their respective developer and mobile application developers are forced to accompany the API providers in their software evolution tasks. In this paper we investigate whether mobile application developers understand and how they deal with the added distress of web APIs evolving. In particular, we studied how robust 48 high profile mobile applications are when dealing with mutated web API responses. Additionally, we interviewed three mobile application developers to better understand their choices and trade-offs regarding web API integration.Comment: Technical repor

    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์„
    • โ€ฆ
    corecore