Eric Wohlstadter

dblp:w/EricWohlstadter · DBLP profile ↗
← Back
15ranked-venue papers
6as first author
0since 2021 · last 2015
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 11 · 6 first-authorDatabases, data management, data science and information retrieval · 4Applied, interdisciplinary, general and emerging computing · 2Artificial intelligence and machine learning · 1

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
8 papers
Services computing and microservices · 19% Operating systems · 17% Software testing · 14%
Computer architecture, parallel and distributed computing, and storage systems
1 paper
Cloud and datacenter computing · 100%

Topics — the 13 heaviest of 18, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Program analysis › symbolic execution
dynamic symbolic execution
0.212015
Generating Fixtures for JavaScript Unit Testing (T) · ASE 2015
Software testing
unit testing
0.212015
Generating Fixtures for JavaScript Unit Testing (T) · ASE 2015
Services computing and microservices
middleware
0.132004
GlueQoS: Middleware to Sweeten Quality-of-Service Policy Interactions · ICSE 2004
Design and Implementation of Distributed Crosscutting Features with DADO · ICSE 2004
DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems · ICSE 2003
Programming languages and type systems › dynamic languages
javascript
0.112010
Automated object persistence for JavaScript · WWW 2010
Operating systems › persistence
object persistence
0.112010
Automated object persistence for JavaScript · WWW 2010
Software maintenance and evolution › software modularization
crosscutting concern modularization
0.122004
Design and Implementation of Distributed Crosscutting Features with DADO · ICSE 2004
DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems · ICSE 2003
Services computing and microservices › middleware
distributed middleware
0.122004
Design and Implementation of Distributed Crosscutting Features with DADO · ICSE 2004
DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems · ICSE 2003
Runtime systems and virtual machines › dynamic language implementation
javascript runtime
0.012013
Imagen: runtime migration of browser sessions for javascript web applications · WWW 2013
Requirements engineering and software design › software architecture
component-based software engineering
0.012004
GlueQoS: Middleware to Sweeten Quality-of-Service Policy Interactions · ICSE 2004
Services computing and microservices
quality-of-service management
0.012004
GlueQoS: Middleware to Sweeten Quality-of-Service Policy Interactions · ICSE 2004
Services computing and microservices
service-oriented architecture
0.012001
Generating Wrappers for Command Line Programs: The Cal-Aggie Wrap-O-Matic Project · ICSE 2001
Software maintenance and evolution › software reengineering
software modernization
0.012001
Generating Wrappers for Command Line Programs: The Cal-Aggie Wrap-O-Matic Project · ICSE 2001
Compilers and program optimization
program transformation
0.012008
Dynamic round-trip GUI maintenance · ICSE 2008

Methods — techniques the papers use, named apart from their topics

dynamic symbolic execution · 0.2benchmark · 0.2snapshotting · 0.2javascript · 0.2static checking · 0.1dynamic analysis · 0.1
YearPublicationVenuePosition
2015 Generating Fixtures for JavaScript Unit Testing (T)
abstract
In today's web applications, JavaScript code interacts with the Document Object Model (DOM) at runtime. This runtime interaction between JavaScript and the DOM is error-prone and challenging to test. In order to unit test a JavaScript function that has read/write DOM operations, a DOM instance has to be provided as a test fixture. This DOM fixture needs to be in the exact structure expected by the function under test. Otherwise, the test case can terminate prematurely due to a null exception. Generating these fixtures is challenging due to the dynamic nature of JavaScript and the hierarchical structure of the DOM. We present an automated technique, based on dynamic symbolic execution, which generates test fixtures for unit testing JavaScript functions. Our approach is implemented in a tool called ConFix. Our empirical evaluation shows that ConFix can effectively generate tests that cover DOM-dependent paths. We also find that ConFix yields considerably higher coverage compared to an existing JavaScript input generation technique.
Amin Milani Fard, Ali Mesbah 0001, Eric Wohlstadter
ASE3
2013 Cross-Tier Application and Data Partitioning of Web Applications for Hybrid Cloud Deployment
Nima Kaviani, Eric Wohlstadter, Rodger Lea
Middleware2
2013 Imagen: runtime migration of browser sessions for javascript web applications
abstract
Due to the increasing complexity of web applications and emerging HTML5 standards, a large amount of runtime state is created and managed in the user's browser. While such complexity is desirable for user experience, it makes it hard for developers to implement mechanisms that provide users ubiquitous access to the data they create during application use. This paper presents our research into browser session migration for JavaScript-based web applications. Session migration is the act of transferring a session between browsers at runtime. Without burden to developers, our system allows users to create a snapshot image that captures all runtime state needed to resume the session elsewhere. Our system works completely in the JavaScript layer and thus snapshots can be transfered between different browser vendors and hardware devices. We report on performance metrics of the system using five applications, four different browsers, and three different devices.
James Teng Kin Lo, Eric Wohlstadter, Ali Mesbah 0001
WWW2
2012 MANTICORE: A framework for partitioning software services for hybrid cloud
abstract
Hybrid cloud deployment can be an attractive option for companies wanting to deploy software services on scalable public clouds, while still assuming local control over sensitive data resources. A hybrid deployment, despite providing better control, is difficult to design since code must be partitioned and distributed efficiently between public and private premises. This paper describes our research into automated partitioning of software services for hybrid clouds. We have identified two specific shortfalls of existing partitioning research which are important to a hybrid cloud setting: (i) inflexibility in placement of software function execution between public/private hosts and (ii) no support for making explicit tradeoffs between monetary cost and performance. We propose a new software profiling and partitioning framework (called MANTICORE) which addresses these problems. Experiments on an open-source Web application show that the new approach ensures better performance without increasing costs.
Nima Kaviani, Eric Wohlstadter, Rodger Lea
CloudCom2
2011 Profiling-as-a-Service: Adaptive Scalable Resource Profiling for the Cloud in the Cloud
Nima Kaviani, Eric Wohlstadter, Rodger Lea
ICSOC2
2010 Automated object persistence for JavaScript
abstract
Traditionally web applications have required an internet con-nection in order to work with data. Browsers have lacked any mechanisms to allow web applications to operate offline with a set of data to provide constant access to applica-tions. Recently, through browser plug-ins such as Google Gears, browsers have gained the ability to persist data for offline use. However, until now it’s been difficult for a web developer using these plug-ins to manage persisting data both locally for offline use and in the internet cloud due to: synchronization requirements, managing throughput and la-tency to the cloud, and making it work within the confines of a standards-compliant web browser. Historically in non-browser environments, programming language environments have offered automated object persistence to shield the de-veloper from these complexities. In our research we have cre-ated a framework which introduces automated persistence of data objects for JavaScript utilizing the internet. Un-like traditional object persistence solutions, ours relies only on existing or forthcoming internet standards and does not rely upon specific runtime mechanisms such as OS or in-terpreter/compiler support. A new design was required in order to be suitable to the internet’s unique characteristics of varying connection quality and a browser’s specific restric-tions. We validate our approach using benchmarks which show that our framework can handle thousands of data ob-jects automatically, reducing the amount of work needed by developers to support offline Web applications.
Brett Cannon, Eric Wohlstadter
WWW2
2009 Script InSight: Using Models to Explore JavaScript Code from the Browser View
Eric Wohlstadter
ICWE2
2009 Web Service Mashup Middleware with Partitioning of XML Pipelines
abstract
Traditionally, the composition of Web services to create mashups has been achieved by using an application server as a mediator between a client browser and services. To avoid this bottleneck, mashups are sometimes implemented so that Web service composition takes place directly from the end userpsilas browser. Creating such implementations is difficult because developers must manage the separation of software into various distributable pieces, in different languages, and coordinate their communication. In this paper we describe a middleware for managing Web service mashups in a disciplined, and flexible way. We build upon the established abstraction of XML pipelines, but describe a new approach for selectively partitioning pipeline components between a browser client and application server. We provide a performance evaluation for a common mashup application scenario.
Eric Wohlstadter, Brett Cannon
ICWS1
2008 Dynamic round-trip GUI maintenance
abstract
One difficulty in software maintenance is that the relationship between observed program behavior and source code is not always clear. This is true for the maintenance of graphical user interfaces (GUIs), because user interface code can be scattered across the decomposition of applications. A popular approach to develop and maintain GUIs is to use "What you see is what you get" editors. They allow developers to work directly with a graphical design view instead of scattered source elements. Unfortunately GUI editors are limited by their ability to statically reconstruct dynamic collaborations between objects. In our research we investigate the combination of a hybrid dynamic and static approach to allow for round-trip maintenance of GUIs. Dynamic analysis reconstructs object relationships, providing a concrete context in which maintenance can be performed. Static checking guides the reconciliation between the GUI editors' design view and source. We implemented a prototype IDE plugin and evaluate our approach by applying it to five open source projects.
Eric Wohlstadter
ICSE2
2006 A Service-oriented Middleware for Runtime Web Services Interoperability
abstract
A major goal of service-oriented architectures is to enable software interoperability in heterogeneous and dynamic environments. Web services standards and protocols aim to support this goal and middleware systems implementing these standards and protocols consequently are needed. Maintenance and administration of middleware is made difficult due to variations in standards and their constant evolution. In this paper, we introduce a new service-oriented middleware architecture for runtime Web services interoperability. Different from other middleware systems our approach applies service-oriented computing principles on the middleware layer, thereby establishing an on-demand model for middleware features. Clients can use middleware as services, dynamically discovering and using the services as interoperability requirements are determined. Further, middleware as services allows middleware to be provided and managed separately from its clients. We present the policy-based programming model, architecture, and details of our middleware, and discuss new challenges that arise in this context, such as distribution of middleware services. The approach is validated through a scenario integrating Web service transaction middleware
Eric Wohlstadter, Stefan Tai, Thomas A. Mikalsen, Judah Diament, Isabelle Rouvellou
ICWS1
2004 Design and Implementation of Distributed Crosscutting Features with DADO
abstract
Some "non-" or "extra-functional" features, such as reliability, security, and tracing, defy modularization mechanisms in programming languages. With distributed, heterogeneous (DH) systems, these features induce complex implementations which crosscut different languages, OSs, and hardware platforms, while still needing to share data and events. The DADO approach helps program crosscuting features by improving DH middleware. A DADO service comprises pairs of adaplets which are explicitly modeled in IDL. DADO supports flexible and type-checked interactions (using generated stubs and skeletons) between adaplets and between objects and adaptlets. Adaptlets can be attached at run-time to an application object.
Eric Wohlstadter, Stoney Jackson, Premkumar T. Devanbu
ICSE1
2004 GlueQoS: Middleware to Sweeten Quality-of-Service Policy Interactions
abstract
A holy grail of component-based software engineering is write-once, reuse everywhere. However, in modern distributed, component-based systems supporting emerging application areas such as service-oriented e-business (where Web services are viewed as components) and peer-to-peer computing, this is difficult. Non-functional requirements (related to quality-of-service (QoS) issues such as security, reliability, and performance) vary with deployment context, and sometimes even at run-time, complicating the task of re-using components. In this paper, we present a middleware-based approach to managing dynamically changing QoS requirements of components. Policies are used to advertise non-functional capabilities and vary at run-time with operating conditions. We also provide middleware enhancements to match, interpret, and mediate QoS requirements of clients and servers at deployment time and/or runtime.
Eric Wohlstadter, Stefan Tai, Thomas A. Mikalsen, Isabelle Rouvellou, Premkumar T. Devanbu
ICSE1
2004 Transaction policies for service-oriented computing
Stefan Tai, Thomas A. Mikalsen, Eric Wohlstadter, Nirmit Desai, Isabelle Rouvellou
Data Knowl. Eng.3
2003 DADO: Enhancing Middleware to Support Crosscutting Features in Distributed, Heterogeneous Systems
abstract
Some "non-" or "extra-functional" features, such as reliability, security, and tracing, defy modularization mechanisms in programming languages. This makes such features hard to design, implement, and maintain. Implementing such features within a single platform, using a single language, is hard enough With distributed, heterogeneous (DH) systems, these features induce complex implementations which cross-cut different languages, OSs, and hardware platforms, while still needing to share data and events. Worse still, the precise requirements for such features are often locality-dependent and discovered late (e.g., security policies). The DADO/sup 1/ approach helps program cross-cutting features by improving DH middleware. A DADO service comprises pairs of adaplets which are explicitly modeled in IDL. Adaplets may be implemented in any language compatible with the target application, and attached to stubs and skeletons of application objects in a variety of ways. DADO supports flexible and type-checked interactions (using generated stubs and skeletons) between adaplets and between objects and adaplets. Adaplets can be attached at run-time to an application object. We describe the approach and illustrate its use for several cross-cutting features, including performance monitoring, caching, and security. We also discuss software engineering process, as well as run-time performance implications.
Eric Wohlstadter, Stoney Jackson, Premkumar T. Devanbu
ICSE1
2001 Generating Wrappers for Command Line Programs: The Cal-Aggie Wrap-O-Matic Project
abstract
Software developers writing new software have strong incentives to make their products compliant to standards such as CORBA, COM, and Java Beans. Standards compliance facilitates interoperability, component based software assembly, and software reuse, thus leading to improved quality and productivity. Legacy software, on the other hand, is usually monolithic and hard to maintain and adapt. Many organizations, saddled with entrenched legacy software, are confronted with the need to integrate legacy assets into more modern, distributed, componentized systems that provide critical business services. Thus, wrapping legacy systems for interoperability has been an area of considerable interest. Wrappers are usually constructed by hand which can be costly and error-prone. We specifically target command-line oriented legacy systems and describe a tool framework that automates away some of the drudgery of constructing wrappers for these systems. We describe the Cal-Aggie Wrap-O-Matic system (CAWOM), and illustrate its use to create CORBA wrappers for: a) the JDB debugger, thus supporting distributed debugging using other CORBA components; and b) the Apache Web server, thus allowing remote Web server administration, potentially mediated by CORBA-compliant security services. While CORBA has some limitations, in several relatively common settings it can produce better wrappers at lower cost.
Eric Wohlstadter, Stoney Jackson, Premkumar T. Devanbu
ICSE1