Many programs operate reactively patiently waiting for user input, running for a while producing output, and eventually returning to a state where they ale ready to accept another input (or occasionally diverging). Wh...
详细信息
ISBN:
(纸本)9781605583525
Many programs operate reactively patiently waiting for user input, running for a while producing output, and eventually returning to a state where they ale ready to accept another input (or occasionally diverging). When a reactive program communicates with multiple parties, we would like to be sure that it can be given secret information by one without leaking it to others Motivated by web browsers and client-side web applications, we explore definitions of noninterference for reactive programs and identify two of special interest one corresponding to termination-insensitive noninterference for a simple sequential language, the other to termination-sensitive noninterference. We focus on the former and develop a proof technique for showing that program behaviors are secure according to this definition To demonstrate the viability of the approach, we define a simple reactive language with an information-flow type system and apply our proof technique to show that well-typed programs are secure.
The amount of collected data increases exponentially and this exponential growth comes with a demand to analyze big volumes of data and to process the data fast and in real time. Business analysts have the expertise i...
详细信息
The amount of collected data increases exponentially and this exponential growth comes with a demand to analyze big volumes of data and to process the data fast and in real time. Business analysts have the expertise in the domain of the desired stream processing applications, but often lack the technical skills to create these kind of applications. Advanced software engineering skills are required in the development of these applications. This thesis aims to make real time stream processing available for the millions of spreadsheets users around the world. The thesis presents a novel spreadsheet model, that turns a spreadsheet into an effective integrated development environment for stream processing. The spreadsheet model is built upon the reactive extensions framework, a library for asynchronous programming with push based data streams. The spreadsheet model is implemented both as add-in for Microsoft Excel and as underlying part of a newly created spreadsheet application that was written in Scala.
Programování mobilních aplikací v systému iOS zavádí nebo doporučuje používání asynchronních volání procedur a paralelismus. Bývá obtížn&...
详细信息
Programování mobilních aplikací v systému iOS zavádí nebo doporučuje používání asynchronních volání procedur a paralelismus. Bývá obtížné v takovýchto aplikacích udržet přehled o toku událostí v programu. Zavádí se různé metodiky návrhu aplikací založených na asynchronnosti a paralelismu. Jednou z nich je tzv. reaktivní programovaní. Ve své práci se inspiruji metodikou nazývanou reactiveX a odvozuji z ní metodiku podobnou, o níž se domnívám, že vystihuje metodiku reactiveX v podstatných ohledech, je však jednodušší.
Computing systems have become more and more distributed and heterogeneous, making their manual administration difficult and error-prone. The Autonomic Computing approach has been proposed to overcome this issue, by au...
详细信息
Computing systems have become more and more distributed and heterogeneous, making their manual administration difficult and error-prone. The Autonomic Computing approach has been proposed to overcome this issue, by automating the administration of computing systems with the help of control loops called autonomic managers. Many research works have investigated the automation of the administration functions of computing systems and today many autonomic managers are available. However the existing autonomic manages are mostly specialized in the management of few administration concerns such as self-repair which handles server failures, and self-sizing which deals with dynamic server allocation. This makes necessary the coexistence of multiple autonomic managers for a complete system management. The coexistence of several such managers is required to handle multiple concerns, yet requires coordination mechanisms to avoid incoherent administration decisions. We investigate the use of control techniques for the design of coordination controllers, for which we exercise synchronous programming that provide formal semantics, and discrete controller synthesis to automate the construction of the controller. The paper details an application of the latter approach for the design of a coordination controller to orchestrate the execution of four self-repair and two self-sizing managers that address the availability and performance of a multi-tier replication-based system. We evaluate and demonstrate the benefits of our coordination solution by executing the RUBiS Benchmark web application. (C) 2014 Elsevier B.V. All rights reserved.
The proliferation of on-demand internet services delivered over a network of a heterogeneous set of computing devices has created the need for high-performing dynamic systems in real-time. Services such as audio and v...
详细信息
The proliferation of on-demand internet services delivered over a network of a heterogeneous set of computing devices has created the need for high-performing dynamic systems in real-time. Services such as audio and video streaming, self-driving cars, the Internet of things (IoT), or instant communication on social networks have forced system designers to rethink the architectures and tools for implementing computer systems. reactive programming has been advocated as a programming paradigm suitable for implementing dynamic applications with complex and heterogeneous architectural needs. However, there is no consensus on the core set of features that a reactive framework must-have. Furthermore, the current set of features proposed in reactive tools seems very restricted to cope with the actual needs for concurrency and distribution in modern systems. In this paper, several alternative semantics for distributed reactive languages are investigated, addressing complex open issues such as glitch avoidance, explicit distribution support, and constructs for explicit time management. First, we propose a reactive event-based programming language with explicit support for distribution, concurrency, and explicit time manipulation (reactiveXD). Second, we present a reactive event-based semantic framework called Distributed reactive Rewriting Framework (DRRF). The framework uses rewriting logic to model the components of a distributed base application, observables, and observers, and predicates supporting explicit time manipulation. Finally, to validate the proposal, the paper discusses the specification of the semantics of reactiveXD and a scenario describing a case of intrusion detection on IoT networks.
Modern software application development imposes standards regarding high performance, scalability, and minimal system latency. Multi-threading asynchronous programming is one of the standard solutions proposed by the ...
详细信息
Modern software application development imposes standards regarding high performance, scalability, and minimal system latency. Multi-threading asynchronous programming is one of the standard solutions proposed by the industry for achieving such objectives. However, the recent introduction of the reactive programming interface in Java presents a potential alternative approach for addressing such challenges, promising performance improvements while minimizing resource utilization. The research examines the migration process from the asynchronous paradigm to the reactive paradigm, highlighting the implications, benefits, and challenges resulting from this transition. To this end, the architecture, technologies, and design of a support application are presented, outlining the practical aspects of this experimental process while closely monitoring the phased migration. The results are examined in terms of functional equivalence, testing, and comparative analysis of response times, resource utilization, and throughput, as well as the cases where the reactive paradigm proves to be a solution worth considering. Across multiple scenarios, the reactive paradigm demonstrated advantages such as up to 12% reduction in memory usage, 56% faster 90th percentile response times, and a 33% increase in throughput under high-concurrency conditions. However, the results also reveal cases, such as data-intensive scenarios, where asynchronous programming outperforms reactive approaches. Additionally, possible directions for further research and development are presented. This paper not only investigates the design and implementation process but also sets a foundation for future research and innovation in dependable systems, collaborative technologies, sustainable solutions, and distributed system architecture.
Cílem této diplomové práce je popis návrhových vzorů a dalších ověřených programátorských praktik využívaných při vývoji aplikací pro OS Android. ...
详细信息
Cílem této diplomové práce je popis návrhových vzorů a dalších ověřených programátorských praktik využívaných při vývoji aplikací pro OS Android. V rámci teoretické části je proveden rozbor návrhových vzorů, programovacího jazyka Kotlin, dependency injection, reaktivního programování a automatického testování aplikací. Praktická část se zabývá návrhem a implementací aplikace, na které jsou demonstrovány výhody využívání návrhových vzorů a ověřených programátorských praktik popsaných v teoretické části.
SugarCubes is a set of Java classes used to implement dynamic, reactive, event-based, parallel systems. SugarCubes can be seen as a low-level basis upon which more complex reactive formalisms can be implemented. It al...
详细信息
SugarCubes is a set of Java classes used to implement dynamic, reactive, event-based, parallel systems. SugarCubes can be seen as a low-level basis upon which more complex reactive formalisms can be implemented. It also provides a convenient framework for prototyping experimental extensions to various reactive formalisms. SugarCubes is freely available on the Web. (C) 1998 John Wiley & Sons, Ltd.
While signals can express time-varying values well, they heavily rely on the semantics of dataflow programming and functional programming. Several research have developed mechanisms for using signals with imperative o...
详细信息
While signals can express time-varying values well, they heavily rely on the semantics of dataflow programming and functional programming. Several research have developed mechanisms for using signals with imperative object-oriented design and shown the benefits of its usage. However, they tend to introduce a class for signals, which thus results in the necessity of lifting up/down between variables and signals. We have already proposed an automation mechanism to expand event systems to support signals without introducing a class, and in this paper, we further extend it to a lightweight push-pull model by considering the direction of trigger. The push-pull automation mechanism allows programmers to choose between push and pull to declaratively express their intention and to reduce the overheads due to unnecessary propagation of value changes. To show the feasibility of our proposal, we implemented PuPPy as an extension to Python for helping programmers in declaring fields as signals. With PuPPy, programmers can use signals in Python without any event system and do not have to worry about the type of events and handlers. We evaluated PuPPy by running preliminary microbenchmarks and comparing with signal class libraries, pure event systems, and the implementation in our previous research.
Terra is a system for programming wireless sensor network (WSN) applications. It combines the use of configurable virtual machines with a reactive scripting language that can be statically analyzed to avoid unbounded ...
详细信息
Terra is a system for programming wireless sensor network (WSN) applications. It combines the use of configurable virtual machines with a reactive scripting language that can be statically analyzed to avoid unbounded execution and memory conflicts. This approach allows the flexibility of remotely uploading code on motes to be combined with a set of guarantees for the programmer. The choice of the specific set of components in a virtual machine configuration defines the abstraction level seen by the application script. We describe a specific component library built for Terra, which we designed taking into account the functionality commonly needed in WSN applications-typically for sense and control. We also discuss the programming environment resulting from the combination of a statically analyzable scripting language with this library of components. Finally, we evaluate Terra by measuring its overhead in a basic application and discussing its use and cost in a typical monitoring WSN scenario.
暂无评论