2,278 research outputs found
A Study of Concurrency Bugs and Advanced Development Support for Actor-based Programs
The actor model is an attractive foundation for developing concurrent
applications because actors are isolated concurrent entities that communicate
through asynchronous messages and do not share state. Thereby, they avoid
concurrency bugs such as data races, but are not immune to concurrency bugs in
general. This study taxonomizes concurrency bugs in actor-based programs
reported in literature. Furthermore, it analyzes the bugs to identify the
patterns causing them as well as their observable behavior. Based on this
taxonomy, we further analyze the literature and find that current approaches to
static analysis and testing focus on communication deadlocks and message
protocol violations. However, they do not provide solutions to identify
livelocks and behavioral deadlocks. The insights obtained in this study can be
used to improve debugging support for actor-based programs with new debugging
techniques to identify the root cause of complex concurrency bugs.Comment: - Submitted for review - Removed section 6 "Research Roadmap for
Debuggers", its content was summarized in the Future Work section - Added
references for section 1, section 3, section 4.3 and section 5.1 - Updated
citation
Recommended from our members
Righting Web Development
The web browser is the most important application runtime today, encompassing all types of applications on practically every Internet-connected device. Browsers power complete office suites, media players, games, and augmented and virtual reality experiences, and they integrate with cameras, microphones, GPSes, and other sensors available on computing devices. Many apparently native mobile and desktop applications are secretly hybrid apps that contain a mix of native and browser code. History has shown that when new devices, sensors, and experiences appear on the market, the browser will evolve to support them.
Despite the browser\u27s importance, developing web applications is exceedingly difficult. Web browsers organically evolved from a document viewer into a ubiquitous program runtime. The browser\u27s scripting language for web designers, JavaScript, has grown into the only universally supported programming language in the browser. Unfortunately, JavaScript is notoriously difficult to write and debug. The browser\u27s high-level and event-driven I/O interfaces make it easy to add simple interactions to webpages, but these same interfaces lead to nondeterministic bugs and performance issues in larger applications. These bugs are challenging for developers to reason about and fix.
This dissertation revisits web development and provides developers with a complete set of development tools with full support for the browser environment. McFly is the first time-traveling debugger for the browser, and lets developers debug web applications and their visual state during time-travel; components of this work shipped in Microsoft\u27s ChakraCore JavaScript engine. BLeak is the first system for automatically debugging memory leaks in web applications, and provides developers with a ranked list of memory leaks along with the source code responsible for them. BCause constructs a causal graph of a web application\u27s events, which helps developers understand their code\u27s behavior. Doppio lets developers run code written in conventional languages in the browser, and Browsix brings Unix into the browser to enable unmodified programs expecting a Unix-like environment to run directly in the browser. Together, these five systems form a solid foundation for web development
Building Web Based Programming Environments for Functional Programming
Functional programming offers an accessible and powerful algebraic model for computing. JavaScript is the language of the ubiquitous Web, but it does not support functional programs well due to its single-threaded, asynchronous nature and lack of rich control flow operators. The purpose of this work is to extend JavaScript to a language environment that satisfies the needs of functional programs on the Web. This extended language environment uses sophisticated control operators to provide an event-driven functional programming model that cooperates with the browser\u27s DOM, along with synchronous access to JavaScript\u27s asynchronous APIs. The results of this work are used toward two projects: (1) a programming environment called WeScheme that runs in the web browser and supports a functional programming curriculum, and (2) a tool-chain called Moby that compiles event-driven functional programs to smartphones, with access to phone-specific features
FACT -- Operation of the First G-APD Cherenkov Telescope
Since more than two years, the First G-APD Cherenkov Telescope (FACT) is
operating successfully at the Canary Island of La Palma. Apart from its purpose
to serve as a monitoring facility for the brightest TeV blazars, it was built
as a major step to establish solid state photon counters as detectors in
Cherenkov astronomy.
The camera of the First G-APD Cherenkov Telesope comprises 1440 Geiger-mode
avalanche photo diodes (G-APD aka. MPPC or SiPM) for photon detection. Since
properties as the gain of G-APDs depend on temperature and the applied voltage,
a real-time feedback system has been developed and implemented. To correct for
the change introduced by temperature, several sensors have been placed close to
the photon detectors. Their read out is used to calculate a corresponding
voltage offset. In addition to temperature changes, changing current introduces
a voltage drop in the supporting resistor network. To correct changes in the
voltage drop introduced by varying photon flux from the night-sky background,
the current is measured and the voltage drop calculated. To check the stability
of the G-APD properties, dark count spectra with high statistics have been
taken under different environmental conditions and been evaluated.
The maximum data rate delivered by the camera is about 240 MB/s. The recorded
data, which can exceed 1 TB in a moonless night, is compressed in real-time
with a proprietary loss-less algorithm. The performance is better than gzip by
almost a factor of two in compression ratio and speed. In total, two to three
CPU cores are needed for data taking. In parallel, a quick-look analysis of the
recently recorded data is executed on a second machine. Its result is publicly
available within a few minutes after the data were taken.
[...]Comment: 19th IEEE Real-Time Conference, Nara, Japan (2014
3D Visualization Architecture for Building Applications Leveraging an Existing Validated Toolkit
The diagnostic radiology space and healthcare in general is a slow adopter of new software technologies and patterns. Despite the widespread embrace of mobile technology in recent years, altering the manner in which societies in developed countries live and communicate, diagnostic radiology has not unanimously adopted mobile technology for remote diagnostic review. Desktop applications in the diagnostic radiology space commonly leverage a validated toolkit. Such toolkits not only simplify desktop application development but minimize the scope of application validation. For these reasons, such a toolkit is an important piece of a company’s software portfolio. This thesis investigated an approach for leveraging a Java validated toolkit for the purpose of creating numerous ubiquitous applications for 3D diagnostic radiology. Just as in the desktop application space, leveraging such a toolkit minimizes the scope of ubiquitous application validation. Today, the most standard execution environment in an electronic device is an Internet browser; therefore, a ubiquitous application is web application. This thesis examines an approach where ubiquitous applications can be built using a viewport construct provided by a client-side ubiquitous toolkit that hides the client-server communication between the ubiquitous toolkit and the validated visualization toolkit. Supporting this communication is a Java RESTful web service wrapper around the validated visualization toolkit that essentially “webifies” the validated toolkit. Overall, this ubiquitous viewport is easily included in a ubiquitous application and supports remote visualization and manipulation of volumes on the widest range of electronic devices. Overall, this thesis provided a flexible and scalable approach to developing ubiquitous applications that leverage an existing validated toolkit that utilizes industry standard technologies, patterns, and best practices. This approach is significant because it supports easy ubiquitous application development and minimizes the scope of application validation, and allows medical professionals easy anytime and anywhere access to diagnostic images
Collaborative Study Web Platform
Online learning is gaining importance in Universities, in student communities, and companies. Learning Management Systems (LMS) are the prevailing software solutions for education and e-learning. These systems are evolving from simple containers of courses information, syllabus, and documents or files, to offer more intricate features, associated with social and collaboration-oriented software. Aside from LMS, students often use multiple web applications for studying and doing projects. LMS may not offer a workspace where users can organize and share information, which is segmented on several online tools. Some solutions may even entirely restrict creation of content by students.
With this in mind, a system was designed and implemented with the goal of providing
an alternative or complementary solution to other LMS. In general, educational institutions deploy these systems, with restricted access within their peers. On the contrary, the proposed approach provides a set of collaboration and content organization tools. It is a web application provided under a software as a service (SaaS) model, to which potentially anyone can access and register.
The platform is organized into groups, which hold content elements and place users
together. Each group member has his/her set of roles inside the group, defining corresponding permissions, which are enforced by an access control system. Permissions are set in respect to users, groups and content.
An emphasis is given on providing a way to assess or rate users through both their
actions and content creation, hypothesizing this as a factor for user engagement and
trust. Users, through several feedback elements such as voting and commenting, evaluate content. A presentation is done of the studied rating calculation methods and simulation of several of these methods.
The resulting web platform sets a basis to explore different approaches for content creation and sharing collaboratively. The use cases in the system are analysed and discussed,considering this system as a foundation for a web application focused on collaborative and group-based study
A Comparative Analysis of Node.js (Server-Side JavaScript)
Node.js (also termed Node) is a platform built on Google Chrome V8 JavaScript runtime engine for easily building fast, scalable, and lightweight applications.V8 and Node are mostly implemented in C and C++ focusing on performance and low memory consumption. In this paper, we provide an overview of Node by comparing it to a conventional server-side scripting programming language, PHP. Initially, we focus on Node’s modularity, its in-built package manager labeled Node Package Manager and Node’s working architecture. The main feature of Node is its use of non-blocking event-driven I/O with an asynchronous programming model to remain lightweight and efficient in handling concurrency. These comprise the underlying features of Node which we discuss in detail. Node differs from JavaScript which we describe by emphasizing some major deficiencies in JavaScript that Node remediates. Likewise, by introducing AJAX, and its pros and cons, we show how Node surpasses AJAX in real-time application development usability. With Node.js, complex real-time applications can be built that can scale to millions of client connections. We also discuss factors supporting choosing Node and why developers should use it. We describe some of the security holes in Node with solutions to handle them. In order to clarify where Node succeeds and where it fails, we present two different benchmarks comparing Node with PHP. We conclude by highlighting some of the limitations of Node and we discuss the current developments in process to remediate Node’s deficiencies
VIOLA - A multi-purpose and web-based visualization tool for neuronal-network simulation output
Neuronal network models and corresponding computer simulations are invaluable
tools to aid the interpretation of the relationship between neuron properties,
connectivity and measured activity in cortical tissue. Spatiotemporal patterns
of activity propagating across the cortical surface as observed experimentally
can for example be described by neuronal network models with layered geometry
and distance-dependent connectivity. The interpretation of the resulting stream
of multi-modal and multi-dimensional simulation data calls for integrating
interactive visualization steps into existing simulation-analysis workflows.
Here, we present a set of interactive visualization concepts called views for
the visual analysis of activity data in topological network models, and a
corresponding reference implementation VIOLA (VIsualization Of Layer Activity).
The software is a lightweight, open-source, web-based and platform-independent
application combining and adapting modern interactive visualization paradigms,
such as coordinated multiple views, for massively parallel neurophysiological
data. For a use-case demonstration we consider spiking activity data of a
two-population, layered point-neuron network model subject to a spatially
confined excitation originating from an external population. With the multiple
coordinated views, an explorative and qualitative assessment of the
spatiotemporal features of neuronal activity can be performed upfront of a
detailed quantitative data analysis of specific aspects of the data.
Furthermore, ongoing efforts including the European Human Brain Project aim at
providing online user portals for integrated model development, simulation,
analysis and provenance tracking, wherein interactive visual analysis tools are
one component. Browser-compatible, web-technology based solutions are therefore
required. Within this scope, with VIOLA we provide a first prototype.Comment: 38 pages, 10 figures, 3 table
- …