21 research outputs found

    A Programming Language for Web Service Development

    Get PDF
    There is now widespread acceptance of Web services and service-oriented architectures. But despite the agreement on key Web services standards there remain many challenges. Programming environments based on WSDL support go some way to facilitating Web service development. However Web services fundamentally rely on XML and Schema, not on contemporary programming language type systems such as those of Java or .NET. Moreover, Web services are based on a messaging paradigm and hence bring forward the traditional problems of messaging systems including concurrency control and message correlation. It is easy to write simple synchronous Web services using traditional programming languages; however more realistic scenarios are surprisingly difficult to implement. To alleviate these issues we propose a programming language which directly supports Web service development. The language leverages XQuery for native XML processing, supports implicit message correlation and has high level join calculus-style concurrency control. We illustrate the features of the language through a motivating example

    Domain architecture a design framework for system development and integration

    Get PDF
    The ever growing complexity of software systems has revealed many short-comings in existing software engineering practices and has raised interest in architecture-driven software development. A system\u27s architecture provides a model of the system that suppresses implementation detail, allowing the architects to concentrate on the analysis and decisions that are most critical to structuring the system to satisfy its requirements. Recently, interests of researchers and practi-tioners have shifted from individual system architectures to architectures for classes of software systems which provide more general, reusable solutions to the issues of overall system organization, interoperability, and allocation of services to system components. These generic architectures, such as product line architectures and domain architectures, promote reuse and interoperability, and create a basis for cost effective construction of high-quality systems. Our focus in this dissertation is on domain architectures as a means of development and integration of large-scale, domain-specific business software systems. Business imperatives, including flexibility, productivity, quality, and ability to adapt to changes, have fostered demands for flexible, coherent and enterprise--wide integrated business systems. The components of such systems, developed separately or purchased off the shelf, need to cohesively form an overall compu-tational environment for the business. The inevitable complexity of such integrated solutions and the highly-demanding process of their construction, management, and evolution support require new software engineering methodologies and tools. Domain architectures, prescribing the organization of software systems in a business domain, hold a promise to serve as a foundation on which such integrated business systems can be effectively constructed. To meet the above expectations, software architectures must be properly defined, represented, and applied, which requires suitable methodologies as well as process and tool support. Despite research efforts, however, state-of-the-art methods and tools for architecture-based system development do not yet meet the practical needs of system developers. The primary focus of this dissertation is on developing methods and tools to support domain architecture engineering and on leveraging architectures to achieve improved system development and integration in presence of increased complexity. In particular, the thesis explores issues related to the following three aspects of software technology: system complexity and software architectures as tools to alleviate complexity; domain architectures as frameworks for construction of large scale, flexible, enterprise-wide software systems; and architectural models and representation techniques as a basis for good” design. The thesis presents an archi-tectural taxonomy to help categorize and better understand architectural efforts. Furthermore, it clarifies the purpose of domain architectures and characterizes them in detail. To support the definition and application of domain architectures we have developed a method for domain architecture engineering and representation: GARM-ASPECT. GARM, the Generic Architecture Reference Model, underlying the method, is a system of modeling abstractions, relations and recommendations for building representations of reference software architectures. The model\u27s focus on reference and domain architectures determines its main distinguishing features: multiple views of architectural elements, a separate rule system to express constraints on architecture element types, and annotations such as “libraries” of patterns and “logs” of guidelines. ASPECT is an architecture description language based on GARM. It provides a normalized vocabulary for representing the skeleton of an architecture, its structural view, and establishes a framework for capturing archi-tectural constraints. It also allows extensions of the structural view with auxiliary information, such as behavior or quality specifications. In this respect, ASPECT provides facilities for establishing relationships among different specifications and gluing them together within an overall architectural description. This design allows flexibility and adaptability of the methodology to the specifics of a domain or a family of systems. ASPECT supports the representation of reference architectures as well as individual system architectures. The practical applicability of this method has been tested through a case study in an industrial setting. The approach to architecture engineering and representation, presented in this dissertation, is pragmatic and oriented towards software practitioners. GARM-ASPECT, as well as the taxonomy of architectures are of use to architects, system planners and system engineers. Beyond these practical contributions, this thesis also creates a more solid basis for expbring the applicability of architectural abstractions, the practicality of representation approaches, and the changes required to the devel-opment process in order to achieve the benefits from an architecture-driven software technology

    RICIS Software Engineering 90 Symposium: Aerospace Applications and Research Directions Proceedings Appendices

    Get PDF
    Papers presented at RICIS Software Engineering Symposium are compiled. The following subject areas are covered: flight critical software; management of real-time Ada; software reuse; megaprogramming software; Ada net; POSIX and Ada integration in the Space Station Freedom Program; and assessment of formal methods for trustworthy computer systems

    The Mashup Component Description Language

    Get PDF
    ABSTRACT Mashups can be seen as the result of software composition applied to the Web. One of the characteristics of mashup development is the heterogeneity of its building components in terms of logical layering (e.g., user interface, application logic, and data), access method (e.g., REST, SOAP), and composition technique (e.g., scraping vs. clipping, synchronous vs. asynchronous interaction, discrete vs. streaming). This poses a challenge towards the design of mashup tools aiming at lowering the barriers of mashup development, as this heterogeneity needs to be abstracted. In this paper, we address this challenge by proposing a new JSONbased domain-specific language for describing heterogeneous mashup components, called the Mashup Component Description Language (MCDL). MCDL lies at the core of a meta-model for mashup component modeling, and can be used for component discovery and classification but also for user-centric mashup development as it decouples the interface of a mashup component from its underlying implementation technologies

    AuSCL -- Another unified Service Composition Language

    Get PDF
    Creating software systems by composing already existing reusable software is a vision which has been driving the development of software technologies and paradigms for a long time. By combining visual modelling and service oriented architecture, this thesis proposes a visual language for composition of heterogeneous service, called AuSCL (Another unified Service Composition Language). The thesis presents requirements for service composition in general, and additional requirements introduced by the use of heterogeneous service technologies. Existing visual languages such as UML2 and BPMN has been investigated and evaluated in three case studies. This has lead to a list of potential improvements for UML2 and BPMN which have been used in the design of AuSCL. AuSCL is a UML2 profile, introducing a set of stereotypes to enhance UML2 functionality and a domain specific structure of model views for modelling a heterogeneous service composition from a set of viewpoints. This structure consists of a set of model views and are introduced to narrow the extensive modelling possibilities provided by UML2. The model views are divided into abstract and concrete views, and does also separate between internal and external aspects. AuSCL extends UML2 to support dynamic service selection (service discovery and and runtime selection) for late binding and a consistent way of combinig activities and interactions to model communication. AuSCL is evaluated against the identified requirements and by implementation of the same case studies used in the evaluation of UML2 and BPMN. The evaluation shows that AuSCL is better suited than UML2 and BPMN for visual modelling of heterogeneous service composition for the identified requirements and case studies

    An Adaptive Integration Architecture for Software Reuse

    Get PDF
    The problem of building large, reliable software systems in a controlled, cost-effective way, the so-called software crisis problem, is one of computer science\u27s great challenges. From the very outset of computing as science, software reuse has been touted as a means to overcome the software crisis issue. Over three decades later, the software community is still grappling with the problem of building large reliable software systems in a controlled, cost effective way; the software crisis problem is alive and well. Today, many computer scientists still regard software reuse as a very powerful vehicle to improve the practice of software engineering. The advantage of amortizing software development cost through reuse continues to be a major objective in the art of building software, even though the tools, methods, languages, and overall understanding of software engineering have changed significantly over the years. Our work is primarily focused on the development of an Adaptive Application Integration Architecture Framework. Without good integration tools and techniques, reuse is difficult and will probably not happen to any significant degree. In the development of the adaptive integration architecture framework, the primary enabling concept is object-oriented design supported by the unified modeling language. The concepts of software architecture, design patterns, and abstract data views are used in a structured and disciplined manner to established a generic framework. This framework is applied to solve the Enterprise Application Integration (EM) problem in the telecommunications operations support system (OSS) enterprise marketplace. The proposed adaptive application integration architecture framework facilitates application reusability and flexible business process re-engineering. The architecture addresses the need for modern businesses to continuously redefine themselves to address changing market conditions in an increasingly competitive environment. We have developed a number of Enterprise Application Integration design patterns to enable the implementation of an EAI framework in a definite and repeatable manner. The design patterns allow for integration of commercial off-the-shelf applications into a unified enterprise framework facilitating true application portfolio interoperability. The notion of treating application services as infrastructure services and using business processes to combine them arbitrarily provides a natural way of thinking about adaptable and reusable software systems. We present a mathematical formalism for the specification of design patterns. This specification constitutes an extension of the basic concepts from many-sorted algebra. In particular, the notion of signature is extended to that of a vector, consisting of a set of linearly independent signatures. The approach can be used to reason about various properties including efforts for component reuse and to facilitate complex largescale software development by providing the developer with design alternatives and support for automatic program verification

    Abschlussbericht des Verbundprojekts Tools4BPEL

    Get PDF
    Unternehmensübergreifende Geschäftsprozesse werden zunehmend nach dem Paradigma der Services organisiert. Dabei stellen sich Fragen nach der Komponierbarkeit, Fehlerbehandlung, sowie der Rücksetzbarkeit (Kompensation) im Fehlerfall. In diesem Vorhaben werden Methoden und Werkzeuge zum Umgang mit solchen Fragen entwickelt und am Beispiel der Geschäftsprozess-Modellierungssprache BPEL und im Modellierungswerkzeug der Firma MEGA international erprobt. Es wurde zum einen der Übersetzer BPEL2oWFN entwickelt, der anhand einer Petrinetzsemantik für BPEL einen BPEL-Prozess in ein (offenes) Petrinetz transformiert. Zum anderen wurden Korrektheitskriterien (wie Bedienbarkeit und Verhaltenskompatibilität) für Services erarbeitet, Algorithmen zu ihrer Überprüfung entworfen und in Fiona implementiert. Die Algorithmen sind Petrinetz-basiert. Damit spielen Übersetzung und Analyse eng zusammen und ein vorhandener BPEL-Prozess kann auf bspw. Bedienbarkeit hin untersucht werden. In diesem Vorhaben wurden die Modellierungssprache BPEL4Chor, Choreographie-Erweiterungen für BPMN entwickelt, sowie die Transformation von BPMN nach BPEL angepasst, um den Weg von BPMN nach BPEL4Chor zu unterstützen. Weiterhin wurden Konzepte entwickelt, wie sich partner-übergreifende Fehlerbehandlung, Rücksetzbarkeit, sowie die Autonomie der Partner mittels BPEL4Chor darstellen lassen. BPEL4Chor kann als Standardsprache zur Spezifikation von Protokollen, die zwischen mehreren Partnern ablaufen, verwendet werden. Durch seine enge Verbindung mit BPEL kann BPEL4Chor sehr gut als Startpunkt für eine Webservice-Lösung verwendet werden
    corecore