N. Cacho, T. Batista, Alessandro F. Garcia, C. Sant'Anna, G. Blair
Reflective middleware has been proposed as an effective way to enhance adaptability of component-oriented middleware architectures. To be effectively adaptable, the implementation of reflective middleware needs to be modular. However, some recently emerged applications such as mobile, pervasive, and embedded applications have imposed more stringent modularity requirements to the middleware design. They require support for the conception of a minimal middleware while promoting finegrained modularity of reflective middleware features. The key problem is that fundamental mechanisms for decomposing reflective middleware implementations, such as object-oriented ones, suffer from not providing the proper means to achieve the required level of localizing reflection-specific concerns. This paper presents a systematic investigation on how aspect-oriented programming scales up to improve modularity of typical reflection-specific crosscutting concerns. We have quantitatively compared Java and AspectJ implementations of an OpenORB-compliant reflective middleware using separation of concerns metrics.
{"title":"Improving modularity of reflective middleware with aspect-oriented programming","authors":"N. Cacho, T. Batista, Alessandro F. Garcia, C. Sant'Anna, G. Blair","doi":"10.1145/1210525.1210534","DOIUrl":"https://doi.org/10.1145/1210525.1210534","url":null,"abstract":"Reflective middleware has been proposed as an effective way to enhance adaptability of component-oriented middleware architectures. To be effectively adaptable, the implementation of reflective middleware needs to be modular. However, some recently emerged applications such as mobile, pervasive, and embedded applications have imposed more stringent modularity requirements to the middleware design. They require support for the conception of a minimal middleware while promoting finegrained modularity of reflective middleware features. The key problem is that fundamental mechanisms for decomposing reflective middleware implementations, such as object-oriented ones, suffer from not providing the proper means to achieve the required level of localizing reflection-specific concerns. This paper presents a systematic investigation on how aspect-oriented programming scales up to improve modularity of typical reflection-specific crosscutting concerns. We have quantitatively compared Java and AspectJ implementations of an OpenORB-compliant reflective middleware using separation of concerns metrics.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"105 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115106872","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
We present a new publish-subscribe middleware called REDS (REconfigurable Dispatching System) designed to tolerate dynamic reconfigurations of the dispatching infrastructure, like those occurring in scenarios characterized by fluid topologies as in mobile and peer-to-peer networks. We illustrate the modular architecture of REDS, which enables programmers to change the internal configuration of the middleware to suit the deployment scenario, focusing on the aspects concerned with the dynamic reconfiguration of the dispatching network.
{"title":"REDS: a reconfigurable dispatching system","authors":"G. Cugola, G. Picco","doi":"10.1145/1210525.1210530","DOIUrl":"https://doi.org/10.1145/1210525.1210530","url":null,"abstract":"We present a new publish-subscribe middleware called REDS (REconfigurable Dispatching System) designed to tolerate dynamic reconfigurations of the dispatching infrastructure, like those occurring in scenarios characterized by fluid topologies as in mobile and peer-to-peer networks. We illustrate the modular architecture of REDS, which enables programmers to change the internal configuration of the middleware to suit the deployment scenario, focusing on the aspects concerned with the dynamic reconfiguration of the dispatching network.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"39 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"123442991","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Matthias Merdes, R. Malaka, Dima Suliman, B. Paech, D. Brenner, C. Atkinson
In this paper we describe a new approach for increasing the reliability of ubiquitous software systems. This is achieved by executing tests at run-time. The individual software components are consequently accompanied by executable tests. We augment this well-known built-in test (BIT) paradigm by combining it with resource-awareness. Starting from the constraints for such resource-aware tests (RATs) we derive their design and describe a number of strategies for executing such tests under resource constraints as well as the necessary middleware. Our approach is especially beneficial to ubiquitous software systems due to their dynamic nature - which prevents a static verification of their reliability - and their inherent resource limitations.
{"title":"Ubiquitous RATs: how resource-aware run-time tests can improve ubiquitous software systems","authors":"Matthias Merdes, R. Malaka, Dima Suliman, B. Paech, D. Brenner, C. Atkinson","doi":"10.1145/1210525.1210538","DOIUrl":"https://doi.org/10.1145/1210525.1210538","url":null,"abstract":"In this paper we describe a new approach for increasing the reliability of ubiquitous software systems. This is achieved by executing tests at run-time. The individual software components are consequently accompanied by executable tests. We augment this well-known built-in test (BIT) paradigm by combining it with resource-awareness. Starting from the constraints for such resource-aware tests (RATs) we derive their design and describe a number of strategies for executing such tests under resource constraints as well as the necessary middleware. Our approach is especially beneficial to ubiquitous software systems due to their dynamic nature - which prevents a static verification of their reliability - and their inherent resource limitations.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"6 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125734607","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
The IT industry is beginning to mirror a trend of specialization and outsourcing that has been present for decades in other industries, such as the automotive industry. We are beginning to see the emergence of specialist service providers, such as CRM services and market places, payment and settlement services, bill presentment services and many others. Organizations increasingly use these services in complex enterprise application systems using web service infrastructures. Unlike the automotive industry, however, the IT industry does not yet have an agreed way to manage web service quality. In this talk, I will focus on managing the service quality of web services that are used across organizational boundaries. I discuss the systematic definition of formal service level agreement languages that support the precise definition of service quality, such as latency, throughput, availability and reliability. I present how service level agreements written in these languages can be used and describe how service level agreements can be policed. I conclude the talk by sketching further research that is necessary before we have a similar grip on quality as other engineering disciplines.
{"title":"Managing web service quality","authors":"W. Emmerich","doi":"10.1145/1210525.1210527","DOIUrl":"https://doi.org/10.1145/1210525.1210527","url":null,"abstract":"The IT industry is beginning to mirror a trend of specialization and outsourcing that has been present for decades in other industries, such as the automotive industry. We are beginning to see the emergence of specialist service providers, such as CRM services and market places, payment and settlement services, bill presentment services and many others. Organizations increasingly use these services in complex enterprise application systems using web service infrastructures. Unlike the automotive industry, however, the IT industry does not yet have an agreed way to manage web service quality. In this talk, I will focus on managing the service quality of web services that are used across organizational boundaries. I discuss the systematic definition of formal service level agreement languages that support the precise definition of service quality, such as latency, throughput, availability and reliability. I present how service level agreements written in these languages can be used and describe how service level agreements can be policed. I conclude the talk by sketching further research that is necessary before we have a similar grip on quality as other engineering disciplines.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"36 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132978775","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A content-based publish/subscribe system is a message-oriented communication facility based on the idea of interest-driven routing. A message, published by the sender without a set destination, is delivered to any and all the receivers that expressed an interest in its content. We refer to this communication style and to the distributed infrastructure that realizes it as content-based communication and content-based networking, respectively. In this paper we review what we consider the foundations of content-based networking, including some of the major advances of the past years. We then present a vision for further research in this area as well as for the practical realization of a content-based network. In particular, we discuss the implications of content-based communication for the network, the middleware, and applications.
{"title":"Content-based communication: a research agenda","authors":"Antonio Carzaniga, Cyrus P. Hall","doi":"10.1145/1210525.1210529","DOIUrl":"https://doi.org/10.1145/1210525.1210529","url":null,"abstract":"A content-based publish/subscribe system is a message-oriented communication facility based on the idea of interest-driven routing. A message, published by the sender without a set destination, is delivered to any and all the receivers that expressed an interest in its content. We refer to this communication style and to the distributed infrastructure that realizes it as content-based communication and content-based networking, respectively. In this paper we review what we consider the foundations of content-based networking, including some of the major advances of the past years. We then present a vision for further research in this area as well as for the practical realization of a content-based network. In particular, we discuss the implications of content-based communication for the network, the middleware, and applications.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"2 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129283834","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
S. Munroe, S. Miles, L. Moreau, Javier Vázquez-Salceda
Provenance is a concept often used in the Art world to refer to the documented history of an artifact, providing information about the artifact's lineage and authenticity. Provenance-aware applications similarly allow their users to have confidence about the data they produce, and can enable users to make judgements relating to notions of trust, accountability, validation, replication and compliance of their data. PrIMe is a software engineering methodology for adapting applications to enable them to interact with a provenance middleware layer, thereby making them provenance-aware. Such applications allow users to answer questions about provenance use cases, which are descriptions of scenarios in which a user interacts with a system by performing particular functions on that system. In order to illustrate how PrIMe can make applications provenance-aware, an Organ Transplant Management example application is used.
{"title":"PrIMe: a software engineering methodology for developing provenance-aware applications","authors":"S. Munroe, S. Miles, L. Moreau, Javier Vázquez-Salceda","doi":"10.1145/1210525.1210535","DOIUrl":"https://doi.org/10.1145/1210525.1210535","url":null,"abstract":"Provenance is a concept often used in the Art world to refer to the documented history of an artifact, providing information about the artifact's lineage and authenticity. Provenance-aware applications similarly allow their users to have confidence about the data they produce, and can enable users to make judgements relating to notions of trust, accountability, validation, replication and compliance of their data. PrIMe is a software engineering methodology for adapting applications to enable them to interact with a provenance middleware layer, thereby making them provenance-aware. Such applications allow users to answer questions about provenance use cases, which are descriptions of scenarios in which a user interacts with a system by performing particular functions on that system. In order to illustrate how PrIMe can make applications provenance-aware, an Organ Transplant Management example application is used.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"45 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114171504","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Businesses increasingly provide and use services, applying formal (Web) services technology for the description, composition, and management of software as services. At the same time, social communities are emerging on the Web, applying less formal practices and Web 2.0 technology for the dissemination and aggregation of diverse content. In this paper, we are interested in the combination of these two trends in the form of service communities: social and business communities exchanging services. We discuss applications of service communities and introduce the concept of Service Clubs as a structuring mechanism for communities. Clubs have been specifically designed to support community-based, per-project interaction and composition of services.
{"title":"Service communities: applications and middleware","authors":"S. Tai, N. Desai, P. Mazzoleni","doi":"10.1145/1210525.1210531","DOIUrl":"https://doi.org/10.1145/1210525.1210531","url":null,"abstract":"Businesses increasingly provide and use services, applying formal (Web) services technology for the description, composition, and management of software as services. At the same time, social communities are emerging on the Web, applying less formal practices and Web 2.0 technology for the dissemination and aggregation of diverse content. In this paper, we are interested in the combination of these two trends in the form of service communities: social and business communities exchanging services. We discuss applications of service communities and introduce the concept of Service Clubs as a structuring mechanism for communities. Clubs have been specifically designed to support community-based, per-project interaction and composition of services.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"17 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124808223","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Rubén Mondéjar, P. López, Carles Pairot, A. Gómez-Skarmeta
In this paper we present Damon, a decentralized wide-area runtime aspect middleware built on top of a structured peer-to-peer (p2p) substrate and a dynamic Aspect Oriented Programming (AOP) framework. By using this methodology, we provide innovative benefits like aspect persistence and discovery, a high performance one-to-one/one-to-many messaging system, reflective skills, and a decentralized aspect container. Furthermore, new pointcut abstractions (anypointcut, manypointcut and multipointcut) are introduced, which allow development of shared aspect functionalities in a transparent way. We believe that such middleware is a novel solution for allowing decentralized crosscutting concerns like fault-tolerance or load-balancing for distributed systems. This paper describes these ideas and it presents a use case of our middleware implementation.
{"title":"Damon: a decentralized aspect middleware built on top of a peer-to-peer overlay network","authors":"Rubén Mondéjar, P. López, Carles Pairot, A. Gómez-Skarmeta","doi":"10.1145/1210525.1210533","DOIUrl":"https://doi.org/10.1145/1210525.1210533","url":null,"abstract":"In this paper we present Damon, a decentralized wide-area runtime aspect middleware built on top of a structured peer-to-peer (p2p) substrate and a dynamic Aspect Oriented Programming (AOP) framework. By using this methodology, we provide innovative benefits like aspect persistence and discovery, a high performance one-to-one/one-to-many messaging system, reflective skills, and a decentralized aspect container. Furthermore, new pointcut abstractions (anypointcut, manypointcut and multipointcut) are introduced, which allow development of shared aspect functionalities in a transparent way. We believe that such middleware is a novel solution for allowing decentralized crosscutting concerns like fault-tolerance or load-balancing for distributed systems. This paper describes these ideas and it presents a use case of our middleware implementation.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"743 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116092556","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
Embedded systems are rapidly growing in size, complexity, distribution, and heterogeneity. As a result, the traditional practice of developing one-off embedded applications that are often rigid and unmanageable is no longer acceptable. Recent studies have suggested that an effective approach to developing software systems in this domain is to employ the principles of software architecture. However, for software architectural concepts to be truly useful in a development setting, they must be accompanied by support for their implementation and evolution. This has motivated our work over the past several years on an architectural middleware, called Prism-MW, that provides implementation-level support for the development of software systems in terms of the software architectural constructs (e.g., components, connectors). Prism-MW was initially developed in Java and used in several domains. Recently, as part of an on-going project, we were required to implement Prism-MW in ANSI C++. This experience proved to be more challenging than we initially anticipated, mainly due to the inherent heterogeneity of the computing substrate. As a result of this experience, we had to reconsider some of our earlier assumptions of what constitutes an architectural middleware and its role in the software development process. In this paper, we provide an overview of our experience and the lessons we have learned along the way.
{"title":"Tailoring an architectural middleware platform to a heterogeneous embedded environment","authors":"S. Malek, Chiyoung Seo, N. Medvidović","doi":"10.1145/1210525.1210539","DOIUrl":"https://doi.org/10.1145/1210525.1210539","url":null,"abstract":"Embedded systems are rapidly growing in size, complexity, distribution, and heterogeneity. As a result, the traditional practice of developing one-off embedded applications that are often rigid and unmanageable is no longer acceptable. Recent studies have suggested that an effective approach to developing software systems in this domain is to employ the principles of software architecture. However, for software architectural concepts to be truly useful in a development setting, they must be accompanied by support for their implementation and evolution. This has motivated our work over the past several years on an architectural middleware, called Prism-MW, that provides implementation-level support for the development of software systems in terms of the software architectural constructs (e.g., components, connectors). Prism-MW was initially developed in Java and used in several domains. Recently, as part of an on-going project, we were required to implement Prism-MW in ANSI C++. This experience proved to be more challenging than we initially anticipated, mainly due to the inherent heterogeneity of the computing substrate. As a result of this experience, we had to reconsider some of our earlier assumptions of what constitutes an architectural middleware and its role in the software development process. In this paper, we provide an overview of our experience and the lessons we have learned along the way.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2006-11-10","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"128854141","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
A software connector is an abstraction capturing interactions among components. Apart from middleware independence, connectors provide additional services (e.g., adaptation, synchronization, etc.). They play a major role in heterogeneous deployment (i.e., building applications from components implemented in different component models) where they are invaluable for solving distribution and overcoming incompatibilities stemming from coexistence of different component models and middleware. However, to make the use of connectors in heterogeneous deployment possible, it is imperative to have means of generating them automatically. In this paper, we show how to create an extensible connector generator with features needed for heterogeneous deployment. The work is based on our experience with designing and implementing such an extensible connector generator for SOFA, Fractal and EJB component models.
{"title":"Generating connectors for heterogeneous deployment","authors":"Ondrej Galik, T. Bures","doi":"10.1145/1108473.1108486","DOIUrl":"https://doi.org/10.1145/1108473.1108486","url":null,"abstract":"A software connector is an abstraction capturing interactions among components. Apart from middleware independence, connectors provide additional services (e.g., adaptation, synchronization, etc.). They play a major role in heterogeneous deployment (i.e., building applications from components implemented in different component models) where they are invaluable for solving distribution and overcoming incompatibilities stemming from coexistence of different component models and middleware. However, to make the use of connectors in heterogeneous deployment possible, it is imperative to have means of generating them automatically. In this paper, we show how to create an extensible connector generator with features needed for heterogeneous deployment. The work is based on our experience with designing and implementing such an extensible connector generator for SOFA, Fractal and EJB component models.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"43 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134090260","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}