698 research outputs found
Theory and Practice of Transactional Method Caching
Nowadays, tiered architectures are widely accepted for constructing large
scale information systems. In this context application servers often form the
bottleneck for a system's efficiency. An application server exposes an object
oriented interface consisting of set of methods which are accessed by
potentially remote clients. The idea of method caching is to store results of
read-only method invocations with respect to the application server's interface
on the client side. If the client invokes the same method with the same
arguments again, the corresponding result can be taken from the cache without
contacting the server. It has been shown that this approach can considerably
improve a real world system's efficiency.
This paper extends the concept of method caching by addressing the case where
clients wrap related method invocations in ACID transactions. Demarcating
sequences of method calls in this way is supported by many important
application server standards. In this context the paper presents an
architecture, a theory and an efficient protocol for maintaining full
transactional consistency and in particular serializability when using a method
cache on the client side. In order to create a protocol for scheduling cached
method results, the paper extends a classical transaction formalism. Based on
this extension, a recovery protocol and an optimistic serializability protocol
are derived. The latter one differs from traditional transactional cache
protocols in many essential ways. An efficiency experiment validates the
approach: Using the cache a system's performance and scalability are
considerably improved
Final Technical Report for Grant DE-FG01-96EW56093 Nevada Risk Assessment/Management Program (NRAMP)
The Nevada Risk Assessment/Management Program (NRAMP) was part of a national effort by the U.S. Department of Energy (DOE) to develop new sources of information and approaches to risk assessment, risk management, risk communication and public outreach as these objectives relate to the ecological and human health effects of radioactive and hazardous material management and site remediation activities. This final report presents a synopsis of the NRAMP effort that occurred from 1995 to 2000. Included in this report is a brief history of NRAMP including a description of the DOE Notice of Program Interest (NOPI) goals and how the NRAMP objectives tied in with the NOPI goals, a brief description of risk assessment activities related to the Nevada Test Site (NTS), and recommendations for future work
Method-based caching in multi-tiered server applications
Abstract
In recent years, application server technology has become very
popular for building complex but mission-critical systems such
as Web-based E-Commerce applications. However, the resulting
solutions tend to suffer from serious performance and
scalability bottlenecks, because of their distributed nature and
their various software layers. This paper deals with the problem
by presenting an approach about transparently caching results of
a service interface\u27s read-only methods on the client side.
Cache consistency is provided by a descriptive cache
invalidation model which may be specified by an application
programmer. As the cache layer is transparent to the server as
well as to the client code, it can be integrated with relatively
low effort even in systems that have already been implemented.
Experimental results show that the approach is very effective in
improving a server\u27s response times and its transactional
throughput.
Roughly speaking, the overhead for cache maintenance is small
when compared to the cost for method invocations on the server
side. The cache\u27s performance improvements are dominated by the
fraction of read method invocations and the cache hit rate. Our
experiments are based on a realistic E-commerce Web site
scenario and site user behaviour is emulated in an authentic
way. By inserting our cache, the maximum user request throughput
of the web application could be more than doubled while its
response time (such as perceived by a web client) was kept at
a very low level.
Moreover, the cache can be smoothly integrated with traditional
caching strategies acting on other system tiers (e.g. caching of
dynamic Web pages on a Web server). The presented approach as
well as the related implementation are not restricted to
application server scenarios but may be applied to any kind of
interface-based software layers
A Comparison between EJB and COM+ Business Components, Case Study: Response Time and Scalability
Most distributed system architectures are designed as a three-tier systems consisting of a thin-client, middleware and a database. The overall performance of such systems depends on the performance of each tier individually and the overhead incurred by the collaboration between these three tiers. Nowadays, the two most popular middleware systems are: Microsoft’s .NET platform and Sun’s Java 2 Enterprise Edition (J2EE) platform. In J2EE, the middle tier infrastructure is called Enterprise JavaBeans (EJB) and in the .NET framework, it is called Component-Oriented Middle-Tier (COM+). Usually, the middle tier provides the business logic (any code that is not specifically related to storing and retrieving data, or formatting data for display to the user) and the performance of this tier is crucial to the overall performance of the distributed system
A Prelimanary Exploration on component based software engineering
Component-based software development (CBD) is a methodology that has been
embraced by the software industry to accelerate development, save costs and
timelines, minimize testing requirements, and boost quality and output.
Compared to the conventional software development approach, this led to the
system's development being completed more quickly. By choosing components,
identifying systems, and evaluating those systems, CBSE contributes
significantly to the software development process. The objective of CBSE is to
codify and standardize all disciplines that support CBD-related operations.
Analysis of the comparison between component-based and scripting technologies
reveals that, in terms of qualitative performance, component-based technologies
scale more effectively. Further study and application of CBSE are directly
related to the CBD approach's success. This paper explores the introductory
concepts and comparative analysis related to component-based software
engineering which have been around for a while, but proper adaption of CBSE are
still lacking issues are also focused
Automated Coevolution of Source Code and Software Architecture Models
Zur Entwicklung komplexer Softwaresysteme, werden neben dem Quelltext zusätzliche Artefakte, wie beispielsweise Architekturmodelle, verwendet. Wenn die verwendeten Architekturmodelle während der Entwicklung und Evolution eines Softwaresystems konsistent mit dem Quelltext sind, können Softwarearchitekten und Softwareentwickler bei der Entwicklung der Systeme besser unterstützt werden. Architekturmodelle, die auf dem aktuellem Stand sind, vereinfachen Entwicklungs- und Evolutionssaufgaben, da einfacher beantwortet werden kann wie und wo neue Funktionen implementiert werden sollen. Außerdem ist es möglich, modellbasierte Analysen mit Hilfe der Softwarearchitekturmodelle vorzunehmen. Beispielsweise können mit dem Palladio Komponentenmodell (PCM) Performanzvorhersagen durchgeführt werden, wenn ein Architekturmodell des Softwaresystems vorhanden ist und dieses Verhaltensspezifikationen beinhaltet.
Wenn Architekturmodelle bei der Softwareentwicklung und Softwareevolution verwendet werden, können die beiden bekannten Probleme Architekturdrift und Architekturverletzung auftreten. Diese Probleme treten für gewöhnlich auf, wenn bei voranschreitender Entwicklung des Quelltextes die Architektur nicht konsistent zu diesem gehalten wird. Dies führt zu veralteten und schlussendlich nutzlosen Architekturmodellen. Viele existierende Ansätze, zur Vermeidung dieser Probleme, zielen darauf ab, Quelltext und UML-Klassendiagramme konsistent zu halten, oder sie zielen darauf ab, Architekturinformationen in den Quelltext einzubetten. In letzterem Fall wird die Notwendigkeit, die Architektur konsistent mit dem Quelltext zu halten, umgangen, da die Architektur integraler Bestandteil des Quelltextes ist. In der vorliegenden Dissertation beschreiben wir einen neuen Ansatz, um komponentenbasierte Architekturmodelle, welche sich auf einer hohen Abstraktionsebene befinden, konsistent mit dem Quelltext zu halten. Wir beschreiben, wie Instanzen des PCMs konsistent mit Java-Quelltext gehalten werden können. Um Konsistenz zu erreichen, werden Architekturelemente erzeugt, gelöscht oder geändert, sobald ihre entsprechende Quelltextelemente geändert wurden, und umgekehrt. Für die Umsetzung der Konsistenzerhaltung stellen wir einen änderungsgetriebenen Ansatz vor. Dieser verwendet benutzerdefinierte, änderungsgetriebene Abbildungsregeln, um die Konsistenz zwischen den beteiligten Modellen sicherzustellen.
In dieser Dissertation stellen wir vier konkrete Mengen von Abbildungsregeln zwischen Architekturmodellen und Quelltext vor. Diese haben wir in einer prototypischen Implementierung des Ansatzes umgesetzt. Wir stellen außerdem einen Mechanismus vor, der mit den Benutzern des Konsistenzerhaltungsansatzes interagiert, wenn die Konsistenz nicht automatisch erhalten werden kann, sondern die Benutzer zuerst ihre Intention, die sie mit einer bestimmten Änderung verfolgen, dem Ansatz mitteilen müssen. In diesem Fall müssen die Benutzer das genaue Vorgehen für die Konsistenzerhaltung spezifizieren. Da der vorgestellte Ansatz änderungsgetrieben funktioniert, ist es notwendig, dass wir alle Änderungen in den beteiligten Architektur- und Quelltexteditoren aufzeichnen können. Um es Benutzern zu erlauben, vorhandene Editoren, mit denen sie sich auskennen, wiederverwenden zu können, haben wir Beobachter für diese Editoren implementiert. Diese Beobachter zeichnen alle Änderungen an einem Modell auf und informieren unseren Ansatz über jede durchgeführte Änderung. Der in dieser Dissertation vorgestellte Ansatz erlaubt es auch, verhaltensbeschreibende Architekturmodelle konsistent mit dem Quelltext zu halten. Um dies zu erreichen, haben wir einen Ansatz implementiert, der es ermöglicht, Service Effect Specifications des PCMs inkrementell aus Methoden zu erstellen, nachdem diese geändert wurden. Die Service Effect Specifications werden innerhalb des PCMs genutzt, um das Verhalten einer Komponente zu spezifizieren. Um bereits bestehende Architekturmodelle und bestehenden Quelltext innerhalb unseres Ansatzes verwenden zu können, stellen wir je eine Integrationsstrategie für die Architektur und den Quelltext vor. Um bestehende Architekturmodelle zu integrieren, simulieren wir deren Erstellung. Während dieses Erstellvorgangs zeichnen wir die Änderungen auf, die nötig sind, um das Architekturmodell zu erstellen. Diese Änderungen werden als Eingabe für den Konsistenzerhaltungsprozess verwendet, um daraus den entsprechenden Quelltext zu erzeugen. Um vorhandenen Quelltext einzubinden, stellen wir einen Ansatz vor, der auf Architekturrekonstruktionsverfahren basiert, d.h., zuerst wird die Architektur eines bestehenden Softwaresystems rekonstruiert. Die erstellte Architektur wird anschließend zusammen mit dem bestehenden Quelltext in unseren Coevolutionsansatz integriert. Oftmals ist bestehender Quelltext jedoch nicht so aufgebaut, wie es die Abbildungsregeln vorschreiben. Innerhalb der Integrationsstrategie für Quelltext stellen wir deshalb einen Ansatz vor, der in der Lage ist, solche Quelltexte dennoch zu integrieren. Dieser Ansatz ermöglicht es, nicht nur diese Art von Quelltext zu integrieren, sondern diesen auch mit speziell definierten Abbildungsregeln automatisch konsistent zu halten.
Wir haben unseren Ansatz in verschiedenen Fallstudien evaluiert. Dabei haben wir zunächst gezeigt, dass es möglich ist vorhandene Architekturmodelle zu integrieren, indem ihr Aufbau simuliert wird. In der durchgeführten Fallstudie ist es mit unserem Ansatz und den vorgestellten Abbildungsregeln möglich, zwischen 98% und 100% der unterstützten Elemente zu integrieren. Als nächstes haben wir gezeigt, dass unser Ansatz in der Lage ist, existierenden Quelltext zu integrieren und Änderungen am integrierten Quelltext konsistent mit der Architektur zu halten. Für diese Fallstudie haben wir zunächst den Quelltext von vier quelloffenen Projekten in den Ansatz integriert. Als nächstes haben wir gezeigt, dass es möglich ist, Änderungen am Quelltext konsistent mit der Architektur zu halten. Dazu haben wir eine alte Version des Quelltextes integriert und Änderungen die zwischen einer alten und neueren Version durchgeführt wurden, aus einem Versionskontrollsystem extrahiert und erneut auf den Quelltext angewendet. Im Rahmen dieser Evaluation haben wir auch gezeigt, dass es möglich ist Änderungen, die innerhalb von Methoden durchgeführt werden, mit einem Verhaltensmodell konsistent zu halten. Wir haben außerdem eine Evaluation der Leistungsfähigkeit unseres Ansatzes durchgeführt und gezeigt, dass unser Ansatz in den meisten Fällen in der Lage ist, die Architektur in einer Zeit zwischen einer und fünf Sekunden konsistent zu halten, nachdem eine Änderung am Quelltext durchgeführt wurde. Als letztes haben wir gezeigt, dass es möglich ist, coevolvierte Modelle für die Performanzvorhersage zu verwenden. Dazu haben wir zuerst die Modelle in einem Parametrisierungsschritt mit den nötigen Ressourcenverbräuchen angereichert. Als nächstes konnten wir die Performanzvorhersage durchführen. In unserer Fallstudie zeigte sich, dass der Vorhersagefehler für die Antwortzeit eines Systems bei ca. 10% liegt, und damit die coevolvierten Modelle für die Abschätzung der Performanz eines realen Systems verwendet werden können
An electronic healthcare record server implemented in PostgreSQL
This paper describes the implementation of an Electronic Healthcare Record server inside a PostgreSQL relational database without dependency on any further middleware infrastructure. The five-part international standard for communicating healthcare records (ISO EN 13606) is used as the information basis for the design of the server. We describe some of the features that this standard demands that are provided by the server, and other areas where assumptions about the durability of communications or the presence of middleware lead to a poor fit. Finally, we discuss the use of the server in two real-world scenarios including a commercial application
Corpus Annotation for Parser Evaluation
We describe a recently developed corpus annotation scheme for evaluating
parsers that avoids shortcomings of current methods. The scheme encodes
grammatical relations between heads and dependents, and has been used to mark
up a new public-domain corpus of naturally occurring English text. We show how
the corpus can be used to evaluate the accuracy of a robust parser, and relate
the corpus to extant resources.Comment: 7 pages, LaTeX (uses eaclap.sty
Towards implementing integrated building product libraries
Electronic product catalogues and brochures are gaining
popularity but there is little agreement on content, format and
searching methods. This limits their usability and integration with
existing construction software tools. This paper examines a productmodelling
approach to delivering building product information and
describes a proposed multi-tier client-server environment. ISO/STEP
and IAI/IFC building product models are considered to facilitate
representation, exchange and sharing of product information. The
proposed architecture incorporates scalability with middleware
components that would provide single or few points of entry to
integrated product information. This paper is part of a research
project, which builds on the results of related projects including
ConstructIT Strategy, PROCAT-GEN, Active Catalog, COMBINE and ARROW,
towards implementing the required software components
- …