258 research outputs found
Recommended from our members
Towards an aspect weaving BPEL engine
This position paper proposes the use of dynamic aspects and
the visitor design pattern to obtain a highly configurable and
extensible BPEL engine. Using these two techniques, the
core of this infrastructural software can be customised to
meet new requirements and add features such as debugging,
execution monitoring, or changing to another Web Service
selection policy. Additionally, it can easily be extended to
cope with customer-specific BPEL extensions. We propose
the use of dynamic aspects not only on the engine itself
but also on the workflow in order to tackle the problems of
Web Service hot deployment and hot fixes to long running
processes. In this way, composing aWeb Service "on-the-fly"
means weaving its choreography interface into the workflow
Aspect-oriented interaction in multi-organisational web-based systems
Separation of concerns has been presented as a promising tool to tackle the design of complex systems in which
cross-cutting properties that do not fit into the scope of a class must be satisfied. Unfortunately, current proposals
assume that objects interact by means of object-oriented method calls, which implies that they embed interactions with
others into their functional code. This makes them dependent on this interaction model, and makes it difficult to reuse
them in a context in which another interaction model is more suited, e.g., tuple spaces, multiparty meetings, ports, and
so forth. In this paper, we show that functionality can be described separately from the interaction model used, which
helps enhance reusability of functional code and coordination patterns. Our proposal is innovative in that it is the first
that achieves a clear separation between functionality and interaction in an aspect-oriented manner. In order to show
that it is feasible, we adapted the multiparty interaction model to the context of multiorganisational web-based systems
and developed a class framework to build business objects whose performance rates comparably to handmade implementations;
the development time, however, decreases significantly.Comisión Interministerial de Ciencia y Tecnología TIC2000-1106-C02-0
An aspect-oriented framework for orthogonal persistence
The life cycle of software applications in general is very short and with extreme volatile requirements. Within these conditions programmers need development tools and techniques with an extreme level of productivity. We consider the code reuse as the most prominent approach to solve that problem. Our proposal uses the advantages provided by the Aspect-Oriented Programming in order to build a reusable framework capable to turn both programmer and application oblivious as far as data persistence is concerned, thus avoiding the need to write any line of code about that concern. Besides the benefits to productivity, the software quality increases. This paper describes the actual state of the art, identifying the main challenge to build a complete and reusable framework for Orthogonal Persistence in concurrent environments with support for transactions. The present work also includes a successfully developed prototype of that framework, capable of freeing the programmer of implementing any read or write data operations. This prototype is supported by an object oriented database and, in the future, will also use a relational database and have support for transactions
Early aspects: aspect-oriented requirements engineering and architecture design
This paper reports on the third Early Aspects: Aspect-Oriented Requirements Engineering and Architecture Design Workshop, which has been held in Lancaster, UK, on March 21, 2004. The workshop included a presentation session and working sessions in which the particular topics on early aspects were discussed. The primary goal of the workshop was to focus on challenges to defining methodical software development processes for aspects from early on in the software life cycle and explore the potential of proposed methods and techniques to scale up to industrial applications
Improving Reuse of Distributed Transaction Software with Transaction-Aware Aspects
Implementing crosscutting concerns for transactions is difficult, even using Aspect-Oriented Programming Languages (AOPLs) such as AspectJ. Many of these challenges arise because the context of a transaction-related crosscutting concern consists of loosely-coupled abstractions like dynamically-generated identifiers, timestamps, and tentative value sets of distributed resources. Current AOPLs do not provide joinpoints and pointcuts for weaving advice into high-level abstractions or contexts, like transaction contexts. Other challenges stem from the essential complexity in the nature of the data, operations on the data, or the volume of data, and accidental complexity comes from the way that the problem is being solved, even using common transaction frameworks. This dissertation describes an extension to AspectJ, called TransJ, with which developers can implement transaction-related crosscutting concerns in cohesive and loosely-coupled aspects. It also presents a preliminary experiment that provides evidence of improvement in reusability without sacrificing the performance of applications requiring essential transactions. This empirical study is conducted using the extended-quality model for transactional application to define measurements on the transaction software systems. This quality model defines three goals: the first relates to code quality (in terms of its reusability); the second to software performance; and the third concerns software development efficiency. Results from this study show that TransJ can improve the reusability while maintaining performance of TransJ applications requiring transaction for all eight areas addressed by the hypotheses: better encapsulation and separation of concern; loose Coupling, higher-cohesion and less tangling; improving obliviousness; preserving the software efficiency; improving extensibility; and hasten the development process
Experiences In Migrating An Industrial Application To Aspects
Aspect-Oriented Software Development (AOSD) is a paradigm aiming to solve
problems of object-oriented programming (OOP). With normal OOP it’s often
unlikely to accomplish fine system modularity due to crosscutting concerns being
scattered and tangled throughout the system. AOSD resolves this problem by its
capability to crosscut the regular code and as a consequence transfer the crosscutting
concerns to a single model called aspect. This thesis describes an experiment on
industrial application wherein the effectiveness of aspect-oriented techniques is
explained in migration the OOP application into aspects. The experiment goals at
first to identify the crosscutting concerns in source code of the industrial application
and transform these concerns to a functionally equivalent aspect-oriented version. In
addition to presenting experiences gained through the experiment, the thesis aims to
provide practical guidance of aspect solutions in a real application
Weaving Aspects in a Persistent Environment
This paper discusses two mechanisms for weaving aspects in persistent environments founded on object-oriented databases. The first mechanism is based on exploiting existing aspect languages and their associated weavers while the second mechanism is based on building weaving functionality into the database management system (DBMS). The first mechanism has been used to integrate AspectJ and its associated weaver with the Jasmine ODBMS. The second approach has been used to implement a weaver within the SADES object database evolution system
Aspects and Exception Handling: The Case of Explicit Join Points
Several authors have debated the modularity and obliviousness of aspects in AOP and the links between these two notions, noting that obliviousness is not always desirable or achievable. Many proposals have appeared, mainly in the context of AspectJ, to mitigate these issues by restricting upfront, or "inferring" and documenting, where aspects can apply. As pointed out, sacrificing certain facets of obliviousness can not only increase safety but even increase modularity. This paper presents and evaluates a simple extension to AspectJ, consisting in explicit join points (EJPs) which denote potential occurrences of aspects in the base code and enable information passing between base code and aspects. The evaluation takes place in the context of exception handling; by picking up on a recent study of the use of aspects for the same purpose, we quantifg the benefits of our extensions for various common measures of code quality in the context of AOP, such as separation of concerns or coupling
- …