About
60
Publications
27,685
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
687
Citations
Citations since 2017
Additional affiliations
April 2004 - August 2011
Publications
Publications (60)
The advent of multi-core systems set off a race to get concurrent programming to the masses. One of the challenging aspects of this type of system is how to deal with exceptional situations, since it is very difficult to assert the precise state of a concurrent program when an exception arises. In this paper we propose an exception-handling model f...
The aim of ÆMINIUM is to study the implications of having a concurrent-by-default programming language. This includes language design, runtime system, performance and software engineering considerations.
We conduct our study through the design of the concurrent-by-default ÆMINIUM programming language. ÆMINIUM leverages the permission flow of object...
Writing concurrent applications is extremely challenging, not only in terms of producing bug-free and maintainable software, but also for enabling developer productivity. In this article we present the Æminium concurrent-by-default programming language. Using Æminium programmers express data dependencies rather than control flow between instruction...
The last decade has witnessed the emergence of business critical applications processing streaming data for domains as diverse as credit card fraud detection, real-time recommendation systems, call-center monitoring, ad selection, network monitoring, and more. Most of those applications need to compute hundreds or thousands of metrics continuously...
FINCoS is a set of benchmarking tools for load generation and performance measuring of event processing systems. It leverages the development of novel benchmarks by allowing researchers to create synthetic workloads, and enables users of the technology to evaluate candidate solutions using their own real datasets. An extensible set of adapters allo...
There has been an increasing interest both in academia and industry for systematic methods for evaluating the performance and scalability of event processing systems. A number of performance results have been disclosed over the last years, but there is still a lack of standardized benchmarks that allow an objective comparison of the different syste...
Software reliability and error handling are concepts that any programmer knows and deals with on a daily basis. Even so, studies suggest that the current approach to exception handling raises fundamental incompatibilities with object-oriented concepts, being a major cause for the lack of quality on error handling code. In this paper, we propose an...
This report updates CMU-ISR-10-125R to reflect the renaming of share blocks to split blocks. Abstract Writing concurrent applications is extremely challenging, not only in terms of producing bug-free and maintainable software, but also for enabling developer productivity. In this paper we present µAEMINIUM: a core calculus for the AEMINIUM concurre...
MapReduce has become a widely used tool for computing complex tasks that process massive amounts of data in large clusters. Support for MapReduce tasks in cloud environments has been provided but it is left to users to make best guesses on the number of nodes needed for a task to complete within acceptable time. Moreover, the time a task will take...
Software reliability and error handling are concepts that any programmer knows and deals with on a daily basis. Even so, studies suggest that the current approach to exception handling raises fundamental incompatibilities with object-oriented concepts, being a major cause for the lack of quality on error handling code. In this paper, we propose an...
Event Processing (EP) systems are being progressively used in business critical applications in domains such as algorithmic
trading, supply chain management, production monitoring, or fraud detection. To deal with high throughput and low response
time requirements, these EP systems mainly use the CPU-RAM sub-system for data processing. However, as...
Distributed data stream processing (DSP) is used to analyze information and raise alarms in business-critical scenarios such as financial fraud-detection, clickstream processing, network security, traffic control, or real-time KPI computations. Processing this information efficiently is very challenging because the nature of continuous streaming so...
Complex Event Processing (CEP) has attracted a lot of interest from academia and industry in recent years. It has been employed in a variety of domains (e.g. financial, health-care, military) as a way of promptly detecting and reacting to the occurrence of certain events/situations of interest. However, as a relatively new area, many people are sti...
The rise of the multicore era is catapulting concurrency into mainstream programming. Current programming paradigms build in sequentiality, and as a result, concurrency support in those languages forces programmers into low-level reasoning about execution order. In this paper, we introduce a new programming paradigm in which concurrency is the defa...
Everyday experience tells us that some errors are transient, but also that some can be handled simply by "retrying" the failed operation. For instance, a glitch on the network might turn a resource unreachable for a short period of time; or a sudden peak of work on a server can cause a momentary denial of service. In many occasions, without other k...
Many organizations have to manage an increasingly large number of software projects. In many cases, these projects are outsourced to different companies or developed across several departments. This creates a problem because it is increasingly difficult for a project manager, responsible for several projects, to have an accurate view of all activit...
The Internet contains thousands of Frequently Updated, Time-stamped, Structured (FUTS) data sources. This type of information represents a different class of information that is not properly handled by existing data management systems such as databases, data warehouses, search engines, pub-sub, event processing or information retrieval systems. In...
Event processing engines are used in diverse mission-critical scenarios such as fraud detection, traffic monitoring, or intensive
care units. However, these scenarios have very different operational requirements in terms of, e.g., types of events, queries/patterns
complexity, throughput, latency and number of sources and sinks. What are the perform...
Collaborative degree programs in software engineering are becoming more common as universities try to expand their offering globally and leverage their knowledge and expertise.Faculty training program intended to help academics learn how to teach courses from collaborating institutions is a complicated undertaking considering the need to pass along...
The Internet contains thousands of Frequently Updated, Time- stamped, Structured (FUTS) data sources. This type of information represents a different class of information that is not properly handled by existing data management systems such as databases, data warehouses, search engines, pub- sub, event processing, or information retrieval systems....
Exception handling mechanisms have been around for more than 30 years. Nevertheless, modern exceptions systems are not very different from the early models. Programming languages designers often neglect the exception mechanism and look at it more like an add-on for their language instead of central part. As a consequence, software quality suffers a...
Several new Complex Event Processing (CEP) engines have been recently released, many of which are intended to be used in performance sensitive scenarios - like fraud detection, traffic control, or health care systems. However, there is no standard means to assess the performance of a CEP engine. This omission is all the more relevant as there are c...
The emergence of exception handling (EH) mechanisms in modern programming languages made available a different way of communicating errors between procedures. For years, programmers trusted in correct documentation of error codes returned by procedures to correctly handle erroneous situations. Now, they have to focus on the documentation of excepti...
Most modern programming languages rely on exceptions for dealing with abnormal situations. Although exception handling was a significant improvement over other mechanisms like checking return codes, it is far from perfect. In fact, it can be argued that this mechanism is seriously limited, if not, flawed. This paper aims to contribute to the discus...
Most modern programming languages rely on exceptions for dealing with errors. Although exception handling was a significant improvement over other mechanisms like checking return codes, it's far from perfect. In fact, it can be argued that this mechanism is seriously flawed. In this paper we argue that exception handling should be automatically don...
This paper describes DGSchedSim, a trace driven simulator to evaluate scheduling algorithms focused on minimising turnaround time of applications executed in heterogeneous desktop grid systems. The simulator can be used to model task farming applications comprised of a set of independent and equal sized tasks similarly to numerous @Home public comp...
The emergence of exception handling mechanisms in modern programming languages made available a different way of communicating errors between procedures. For years, programmers trusted in the correct documentation for error codes returned by procedures to correctly handle erroneous situations. Now, they have to focus on the documentation of excepti...
Studies focusing on Unix have shown that the vast majority of workstations and desktop computers remain idle for most of the time. In this paper we quantify the usage of main resources (CPU, main memory, disk space and network bandwidth) of Windows 2000 machines from classroom laboratories. For that purpose, 169 machines of 11 classroom laboratorie...
Distributed data collector (DDC) is a framework to ease and automate repetitive executions of console applications (probes) over a set of LAN networked Windows personal computers. The framework allows for the remote execution of probes, providing support for collecting the execution output of probes (standard output and standard error). Additionall...
Studies focusing on Unix have shown that the vast majority of workstations and desktop computers remain idle for most of the time. In this paper we quantify the usage of main resources (CPU, main memory, disk space and network bandwidth) of Windows 2000 machines from classroom laboratories. For that purpose, 169 machines of 11 classroom laboratorie...
Code instrumentation is a mechanism that allows modules of programs to be completely rewritten at runtime. With the advent of virtual machines, this type of functionality is becoming more and more interesting because it allows the introduction of new functionality after an application has been deployed, easy implementation of aspect-oriented progra...
Imagine that you have downloaded an application for the .NET platform, and that for some reason you would like to know what it is accessing on the hard drive. In particular, you would like to know which files it is reading from and writing to. This can be a problem since you may not have access to the source code of the application, and using Ildas...
Mobile agents are typically referred as a very adequate paradigm for using in mobile and disconnected computing environments. They are autonomous, have a strong sense of location and are able to operate independently of a central server. Nevertheless, although this is true, for developing a mobile agent system that is capable of operating in a disc...
Mobile agents are a very interesting paradigm for structuring distributed applica- tions. By using them, distributed applications can implement part of their functionality as a set of loosely-coupled components, which are able to migrate. This allows the creation of very modular and extensible designs since it is quite easy to change the functional...
The Java Remote Method Invocation (RMI) API shields the developer from the details of distributed programming, allowing him to concentrate on application specific code. But to perform some operations that are orthogonal to the application, like logging, auditing, caching, QoS, fault tolerance, and security, sometimes it is necessary to customize th...
The mobile agent paradigm provides a new approach for developing distributed systems. During the last two years, we have been working on a project that tries to overcome some of the limitations found in terms of programmability and usability of the mobile agent paradigm in real applications. In the M&M framework there are no agent platforms. Instea...
Mobile Agents provide a new promising paradigm for developing distributed applications. Nevertheless, although the basic concept has been around for some years and many agent platforms are available both from the industry and research community, there are currently few examples where the technology has been deployed in the real world. One important...
Mobile agents provide a new abstraction for deploying functionality over the existing internet infrastructure. During the last two years, we have been working on a project that tries to overcome some of the limitations found in terms of programmability and usability of the mobile agent paradigm in real applications. In the M&M framework there are n...
Mobile agents are typically referred as a very adequate paradigm for using in mobile and disconnected computing environments. They are autonomous, have a strong sense of location and are able to operate independently of a central server. Nevertheless, although this is true, for developing a mobile agent system that is capable of operating in a disc...
Mobile agents provide a new abstraction for deploying functionality over the existing internet infrastructure. During the last two years, we have been working on a project that tries to overcome some of the limitations found in terms of programmability and usability of the mobile agent paradigm in real applications. In the M&M framework there are n...
This paper addresses the problem of managing distributed mobile agent infrastructures. First, the weaknesses of current mobile
agent implementations will be discussed and identified from the manageability viewpoint. The solutions devised and experimented
in order to alleviate these weaknesses in our own agent platform will then be presented. These...
In the Mobile Agent programming model, small threads of execution migrate from machine to machine, performing their operations locally. For being able to deploy such a model into real world applications, security is a vital concern. In the M&M project we have developed a system that departures from the traditional platform-based execution model for...
Over the last couple of years we have been working on the
development of mobile agents systems and their application to the areas
of telecommunications and network management. This work has produced
positive results: a competitive mobile agent platform was built, the
run-time benefits of mobile agents were proved, and our industrial
partners have d...
This paper addresses the problem of managing distributed mobile agent infrastructures. First, the weaknesses of current mobile agent implementations will be discussed and identified from the manageability viewpoint. The solutions devised and experimented in order to alleviate these weaknesses in our own agent platform will then be presented. These...
Over the last couple of years we have been working on the development of mobile agents systems and its application to the areas of telecommunications and network management. This work path produced positive results: a competitive mobile agent platform was built, the run-time benefits of mobile agents were proved, and our industrial partners have de...
Although mobile agents are a promising programming paradigm, the actual deployment of this technology in real applications has been far away from what the researchers were expecting. One important reason for this is the fact that in the current mobile agent frameworks it is quite difficult to develop applications without having to center them on th...
Mobile agents are a promising technology for developing applications in many application domains. However, it has not yet gained a large acceptance from the developers. One important reason for this is the difficulty of using generic mobile-agent platforms in specific application domains, which have very concrete requisites. In this paper, we prese...
Over the last few years, there has been a huge proliferation of mobile agent platforms, for the most different application domains. Although these platforms normally have a very interesting set of features, one common limitation found on most architectures is the lack of support for extensibility, i.e. the ability to add new features at runtime, af...
Introduction and Motivation The Mobile Agent (MA) paradigm has now been around for some years. Although there are many advantages associated to the use of mobile agents and many agent platforms are currently available from both the research community and industry, they have not reached a wide acceptance. In fact, mobile agents have gained the reput...
Over the last few years, the importance of mobile computing has been steadily increasing. While it is important to provide support for accessing databases in disconnected computing environments, many of the information systems being deployed today are using a three-tier architecture. It is becoming vital to find ways of providing reliable access to...
In order for mobile agents to be accepted as a basic technology
for enabling electronic commerce, proper security mechanisms must be
developed. Hosts must be protected from malicious agents, agents must be
protected from other agents and also agents must be protected from
malicious hosts. For solving the first three problems, existing
technology fr...
Although mobile agents are a promising technology, the large-scale deployment of agents and the existence of hosts running agencies will not happen until proper security mechanisms are well understood and implemented. When considering global open environments as the Internet, mobile agents can be the victims of attacks by malicious hosts. In this p...