784 research outputs found

    A Component Based Approach to Scientific Workflow Management

    Get PDF
    CRISTAL is a distributed scientific workflow system used in the manufacturing and production phases of HEP experiment construction at CERN. The CRISTAL project has studied the use of a description driven approach, using meta- modelling techniques, to manage the evolving needs of a large physics community. Interest from such diverse communities as bio-informatics and manufacturing has motivated the CRISTAL team to re-engineer the system to customize functionality according to end user requirements but maximize software reuse in the process. The next generation CRISTAL vision is to build a generic component architecture from which a complete software product line can be generated according to the particular needs of the target enterprise. This paper discusses the issues of adopting a component product line based approach and our experiences of software reuse

    Fine Grained Component Engineering of Adaptive Overlays: Experiences and Perspectives

    Get PDF
    Recent years have seen significant research being carried out into peer-to-peer (P2P) systems. This work has focused on the styles and applications of P2P computing, from grid computation to content distribution; however, little investigation has been performed into how these systems are built. Component based engineering is an approach that has seen successful deployment in the field of middleware development; functionality is encapsulated in ā€˜building blocksā€™ that can be dynamically plugged together to form complete systems. This allows efficient, flexible and adaptable systems to be built with lower overhead and development complexity. This paper presents an investigation into the potential of using component based engineering in the design and construction of peer-to-peer overlays. It is highlighted that the quality of these properties is dictated by the component architecture used to implement the system. Three reusable decomposition architectures are designed and evaluated using Chord and Pastry case studies. These demonstrate that significant improvements can be made over traditional design approaches resulting in much more reusable, (re)configurable and extensible systems

    A component based approach to scientific workflow management

    Get PDF

    Attribute based component design: Supporting model driven development in CbSE

    Get PDF
    In analysing the evolution of Software Engineering, the scale of the components has increased, the requirements for different domains become complex and a variety of different component frameworks and their associated models have emerged. Many modern component frameworks provide enterprise level facilities and services, such as instance management, and component container support, that allow developers to apply if needed to manage scale and complexity. Although the services provided by these frameworks are common, they have different models and implementation. Accordingly, the main problem is, when developing a component based application using a component framework, the design of the components becomes tightly integrated with the framework implementation and the framework model is embedded in the component functionality, and hence reduces reusability. Another problem arose is, the designers must have in-depth knowledge of the implementation of a component framework to be able to model, design and implement the components and take advantages of the services provided. To address these problems, this research proposes the Attribute based Component Design (AbCD) approach which allows developers to model software using logical and abstract components at the specification level. The components encapsulate the provided functionality, as well as the required services, runtime requirements and interaction models using a set of attributes. These attributes are systemically derived by grouping common features and services from light weight component frameworks and heavy weight component frameworks that are available in the literature. The AbCD approach consists of the AbCD Meta-model, which is an extension of the ąøšML meta-model, and the Component Design Guidelines (CDG) that includes core Component based Software Engineering principles to assist the modelling process for designers. To support the AbCD approach, an implementation has been developed as a set of plug-ins, called the AbCD tool suite, for Eclipse IDE. An evaluation of the AbCD approach is conducted by using the tool suite with two case studies. The first case study focuses on abstraction achieved by the AbCD approach and the second focuses on reusability of the components. The evaluation shows that the artefacts produced using the approach provide an alternative architectural view to the design and help to re-factor the design based on aspects. At the same time the evaluation process identified possible improvements in the AbCD meta-model and the tool suite constructed. This research provides a non-invasive approach for designing component based software using model driven development

    An integrated component-oriented framework for effective and flexible enterprise distributed systems development

    Get PDF
    Although component-based platforms and technologies such as CORBA, COM+/.NET and Enterprise Java Beans (EJB) are now widely used for implementation and deployment of complex systems, the component way of thinking is still immature. Current CBD best practices, concepts, approaches and methods do not provide a full and consistent support for various component concepts, and therefore are not able to provide a full benefit of the CBD paradigm. This paper defines a new approach to components through an Integrated Component- Oriented Framework that provides a comprehensive component-oriented support for enterprise systems development. The framework enables that the same component way of thinking and the same consistent set of technology- independent component concepts can be applied in different aspects of enterprise systems development, from business services to distributed components

    Survey of Technologies for Web Application Development

    Full text link
    Web-based application developers face a dizzying array of platforms, languages, frameworks and technical artifacts to choose from. We survey, classify, and compare technologies supporting Web application development. The classification is based on (1) foundational technologies; (2)integration with other information sources; and (3) dynamic content generation. We further survey and classify software engineering techniques and tools that have been adopted from traditional programming into Web programming. We conclude that, although the infrastructure problems of the Web have largely been solved, the cacophony of technologies for Web-based applications reflects the lack of a solid model tailored for this domain.Comment: 43 page

    Automated Coevolution of Source Code and Software Architecture Models

    Get PDF
    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

    Controlling Reuse in Pattern-Based Model-to-Model Transformations

    Get PDF
    Model-to-model transformation is a central activity in Model-Driven Engineering that consists of transforming models from a source to a target language. Pattern-based model-to-model transformation is our approach for specifying transformations in a declarative, relational and formal style. The approach relies on patterns describing allowed or forbidden relations between two models. These patterns are compiled into operational mechanisms to perform forward and backward transformations. Inspired by QVT-Relations, in this paper we incorporate into our framework the so-called check-before-enforce semantics, which checks the existence of suitable elements before creating them (i.e. it promotes reuse). Moreover, we enable the use of keys in order to describe when two elements are considered equal. The presented techniques are illustrated with a bidirectional transformation between Web Services Description Language and Enterprise Java Beans models.Work partially supported by the Spanish Ministry of Science and Innovation, with projects METEORIC (TIN2008-02081) and FORMALISM (TIN2007-66523), and the R&D program of the Community of Madrid (S2009/TIC-1650, project ā€œe-Madridā€). Moreover, part of this work was done during a post-doctoral stay of the first author at the University of York, and sabbatical leaves of the second and third authors to the University of York and TU Berlin respectively, all with financial support from the Spanish Ministry of Science and Innovation (grant refs. JC2009-00015, PR2009-0019 and PR2008-0185).Publicad

    Managing the consistency of distributed documents

    Get PDF
    Many businesses produce documents as part of their daily activities: software engineers produce requirements specifications, design models, source code, build scripts and more; business analysts produce glossaries, use cases, organisation charts, and domain ontology models; service providers and retailers produce catalogues, customer data, purchase orders, invoices and web pages. What these examples have in common is that the content of documents is often semantically related: source code should be consistent with the design model, a domain ontology may refer to employees in an organisation chart, and invoices to customers should be consistent with stored customer data and purchase orders. As businesses grow and documents are added, it becomes difficult to manually track and check the increasingly complex relationships between documents. The problem is compounded by current trends towards distributed working, either over the Internet or over a global corporate network in large organisations. This adds complexity as related information is not only scattered over a number of documents, but the documents themselves are distributed across multiple physical locations. This thesis addresses the problem of managing the consistency of distributed and possibly heterogeneous documents. ā€œDocumentsā€ is used here as an abstract term, and does not necessarily refer to a human readable textual representation. We use the word to stand for a file or data source holding structured information, like a database table, or some source of semi-structured information, like a file of comma-separated values or a document represented in a hypertext markup language like XML [Bray et al., 2000]. Document heterogeneity comes into play when data with similar semantics is represented in different ways: for example, a design model may store a class as a rectangle in a diagram whereas a source code file will embed it as a textual string; and an invoice may contain an invoice identifier that is composed of a customer name and date, both of which may be recorded and managed separately. Consistency management in this setting encompasses a number of steps. Firstly, checks must be executed in order to determine the consistency status of documents. Documents are inconsistent if their internal elements hold values that do not meet the properties expected in the application domain or if there are conflicts between the values of elements in multiple documents. The results of a consistency check have to be accumulated and reported back to the user. And finally, the user may choose to change the documents to bring them into a consistent state. The current generation of tools and techniques is not always sufficiently equipped to deal with this problem. Consistency checking is mostly tightly integrated or hardcoded into tools, leading to problems with extensibility with respect to new types of documents. Many tools do not support checks of distributed data, insisting instead on accumulating everything in a centralized repository. This may not always be possible, due to organisational or time constraints, and can represent excessive overhead if the only purpose of integration is to improve data consistency rather than deriving any additional benefit. This thesis investigates the theoretical background and practical support necessary to support consistency management of distributed documents. It makes a number of contributions to the state of the art, and the overall approach is validated in significant case studies that provide evidence of its practicality and usefulness
    • ā€¦
    corecore