- KonferenzbeitragThe role of reflective middleware in supporting flexible security policies(NODe 2006 – GSEM 2006, 2006) Xu, Na; Blair, Gordon S.; Myrvang, Per Harald; Stabell-Kulø, Tage; Grace, Paul; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardNext generation middleware must support applications in the face of increasing diversity in interaction paradigms, end system types and network styles. Therefore, to secure applications, security policies must be configured and indeed reconfigured at runtime. In this paper, we propose an approach combining the openness of reflective middleware with the flexibility of programmable security to meet such demands. In particular, we build a security architecture based on the Gridkit reflective middleware platform and the Obol security protocol programming language. The paper then describes a case study that uses flexible policies in order to secure remote procedure calls and secure group communication. We also present the benefits of this approach in terms of flexibility, ease of use and extensibility.
- KonferenzbeitragGDT: A toolkit for grid service development(NODe 2006 – GSEM 2006, 2006) Friese, Thomas; Smith, Matthew; Freisleben, Bernd; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardThe inherent complexity of Grid application development is an obstacle to the widespread adoption of service oriented Grid technology. In this paper, a software development environment for service oriented Grid applications integrated into the Eclipse platform is presented. Its design is based on model-driven software development principles, allowing domain experts to rapidly develop Grid applications by hiding the complexities of Grid middleware. The functionality of the three main components supporting service creation, process creation and interactive debugging are presented, and implementation issues is discussed.
- KonferenzbeitragExplicit high-level rules for the customization of web services management(NODe 2006 – GSEM 2006, 2006) Cibrán, María Agustina; D'Hondt, Maja; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardCurrent Web Services integration approaches fail at supporting a highly flexible service selection and management. To overcome these problems, the Web Services Management Layer was proposed in previous work. However, this layer presents some limitations due to the implicit representation of service criteria that guide its customization. In this paper we propose externalizing these criteria as highlevel business rules. Moreover, the specification of new unanticipated business rules is also supported. We do this by employing a high-level business rule language proposed in previous work. We show how this rule language can be used to customize the WSML, enhancing flexibility. The originality of our approach is the application of a general-purpose business rule language to the domain of Web Services management.
- KonferenzbeitragAvoiding infinite recursion with stratified aspects(NODe 2006 – GSEM 2006, 2006) Bodden, Eric; Forster, Florian; Steimann, Friedrich; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardInfinite recursion is a known problem of aspect-oriented programming with AspectJ: if no special precautions are taken, aspects advising aspects can easily and unintentionally advise themselves. We present a compiler for an extension of the AspectJ programming language that avoids self reference by associating aspects with levels, and by automatically restricting the scope of pointcuts used by an aspect to join points of lower levels. We report on a case study using our language extension, and provide numbers of the changes necessary for migrating existing applications to it. Our results suggest that we can make programming with AspectJ simpler and safer, without restricting its expressive power unduly.
- KonferenzbeitragPath expression pointcuts: Abstracting over non-local object relationships in aspect-oriented languages(NODe 2006 – GSEM 2006, 2006) Al-Mansari, Mohammed; Hanenberg, Stefan; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardIn aspect-oriented programming, aspects require access to join point information for selecting join points within pointcuts as well as for specifying aspect-specific behavior at such join points within advice. Unfortunately, aspectoriented systems typically provide only local information about join points, i.e. information that is directly accessible from the execution context at the corresponding join points like the target object within a method call. However, there are many situations where the needed information is not directly available and relies on object information that is non-local concerning the execution context at the corresponding join points. As a consequence, developers are forced to specify a number of work-arounds – pointcuts and advice that neither reflect on the conceptual join point selection nor purely on the conceptual aspect behavior. In this paper, we show recurring situations in which "local" join point information is not sufficient for specifying aspects. We propose so called "path expression pointcuts" that permit to abstract over (non-local) object-relationships within pointcuts – and show that this overcomes the problem.
- KonferenzbeitragPatterns for re-usable aspects in object teams(NODe 2006 – GSEM 2006, 2006) Sokenou, Dehla; Mehner, Katharina; Herrmann, Stephan; Sudhof, Henry; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardAspect-oriented software development still lacks practical evidence. While aspects are claimed to be useful in adapting existing applications there is also first evidence that they might themselves be re-usable. We present results from two case studies with the aspect-oriented programming language ObjectTeams/Java that investigate the re-usability of aspects in developing a security framework. During the development of the framework we have identified patterns for re-usable aspects that increase the flexibility when applying a framework to a given application.
- KonferenzbeitragStatic architecture evaluation of open source reuse candidates(NODe 2006 – GSEM 2006, 2006) Knodel, Jens; Muthig, Dirk; Naab, Matthias; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardOpen source software systems provide a variety of field-tested components offering software development organizations the potential to reuse and adapt such components for their own purposes. The main challenge before achieving the reuse benefits is to acquire a thorough understanding of open source software systems (i.e., the reuse candidates) in order to reason about alternative solutions, to learn about the points where to adapt the system and eventually to decide whether or not to invest into reuse. Manually analyzing even small systems is a time-consuming, complex and costly task. In this paper we present a case study where we analyzed the Apache Tomcat web server supported by a software architecture visualization and evaluation tool and demonstrate how the tool facilitated our comprehension tasks to learn about the architectural means and concepts.
- KonferenzbeitragFIPA agents messaging grounded on web services(NODe 2006 – GSEM 2006, 2006) Soto, Esteban León; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardMessaging mechanisms for Web Services are tending towards an agent paradigm which is based on very flexible addressing and semantics of messages on top of communication protocols that aim at macro objectives shared by a group of participants. Recent improvements in Web Services make it possible to integrate agents and Web Services in a common messaging framework that includes both architectures integrally. The present work describes the integration based on the properties of both scenarios. The proposed integrated architecture is discussed and related work reviewed to conclude with a numerous set of research areas that are enabled by this elemental step.
- Editiertes BuchNODe 2006 – GSEM 2006(2006) Hirschfeld, Robert; Polze, Andreas; Kowalczyk, Ryszard
- KonferenzbeitragDesign and implementation of a backward-in-time debugger(NODe 2006 – GSEM 2006, 2006) Hofer, Christoph; Denker, Marcus; Ducasse, Stéphane; Hirschfeld, Robert; Polze, Andreas; Kowalczyk, RyszardTraditional debugging and stepping execution trace are well-accepted techniques to understand deep internals about a program. However in many cases navigating the stack trace is not enough to find bugs, since the cause of a bug is often not in the stack trace anymore and old state is lost, so out of reach from the debugger. In this paper, we present the design and implementation of a backward-in-time debugger for a dynamic language, i.e., a debugger that allows one to navigate back the history of the application. We present the design and implementation of a backward-in-time debugger called UNSTUCK and show our solution to key implementation challenges.