Publish/subscribe research has so far been mostly focused on efficient event routing, event filtering, and composite event detection. The little research that has been published regarding security in publish/subscribe systems has been tentative at best. This paper presents a model for secure type names, and definitions for type-checked, content-based publish/subscribe systems. Our model provides a cryptographically verifiable binding between type names and type definitions. It also produces self-certifiable type definitions that guarantee type definition authenticity and integrity. We also consider type management in a large-scale publish/subscribe system and present a way for delegating management duties to type managers by issuing SPKI authorisation certificates. We feel that secure names are a prerequisite for most other security related work with publish/subscribe systems.
{"title":"Secure event types in content-based, multi-domain publish/subscribe systems","authors":"Lauri I. W. Pesonen, J. Bacon","doi":"10.1145/1108473.1108495","DOIUrl":"https://doi.org/10.1145/1108473.1108495","url":null,"abstract":"Publish/subscribe research has so far been mostly focused on efficient event routing, event filtering, and composite event detection. The little research that has been published regarding security in publish/subscribe systems has been tentative at best. This paper presents a model for secure type names, and definitions for type-checked, content-based publish/subscribe systems. Our model provides a cryptographically verifiable binding between type names and type definitions. It also produces self-certifiable type definitions that guarantee type definition authenticity and integrity. We also consider type management in a large-scale publish/subscribe system and present a way for delegating management duties to type managers by issuing SPKI authorisation certificates. We feel that secure names are a prerequisite for most other security related work with publish/subscribe systems.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"146 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":"127248479","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}
In any system, applications compete for a limited amount of resources. As long as there are enough resources, resource sharing based on a best effort policy is satisfactory. When resources become scarce, the system gives rise to uncontrol-lable degradations. From a global view of the system and according to the degrees of freedom of applications, Quality of Service (QoS) managers aim to adapt application behavior to deal with overload effects.This paper proposes a middleware for autonomic QoS management of a system in a dynamic environment. It associates a reinforcement learning technique with a control mechanism to improve and adapt the QoS management policy in an execution context that changes unexpectedly. The simulation of the QoS management of a set of heterogeneous applications illustrates our results.
{"title":"A middleware for autonomic QoS management based on learning","authors":"P. Vienne, J. Sourrouille","doi":"10.1145/1108473.1108475","DOIUrl":"https://doi.org/10.1145/1108473.1108475","url":null,"abstract":"In any system, applications compete for a limited amount of resources. As long as there are enough resources, resource sharing based on a best effort policy is satisfactory. When resources become scarce, the system gives rise to uncontrol-lable degradations. From a global view of the system and according to the degrees of freedom of applications, Quality of Service (QoS) managers aim to adapt application behavior to deal with overload effects.This paper proposes a middleware for autonomic QoS management of a system in a dynamic environment. It associates a reinforcement learning technique with a control mechanism to improve and adapt the QoS management policy in an execution context that changes unexpectedly. The simulation of the QoS management of a set of heterogeneous applications illustrates our results.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"7 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":"125155305","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}
Ö. Demir, Premkumar T. Devanbu, E. Wohlstadter, S. Tai
Middleware is often built using a layered architectural style. Layered design provides good separation of the different concerns of middleware, such as communication, marshaling, request dispatching, thread management, etc. Layered architecture helps in the development and evolution of the middleware. It also provides tactical side-benefits: layers provide convenient protection boundaries for enforcing security policies. However, the benefits of this layered structure come at a cost. Layered designs can hinder performance-related optimizations, and actually make it more difficult to adapt systems to conveniently address late-bound requirements such as dependability, access control, virus protection, and so on. We present some examples of this issue, and outline a new approach, under investigation at UC Davis, which includes ideas in middleware, architectures, and programming models.
{"title":"Optimizing layered middleware","authors":"Ö. Demir, Premkumar T. Devanbu, E. Wohlstadter, S. Tai","doi":"10.1145/1108473.1108481","DOIUrl":"https://doi.org/10.1145/1108473.1108481","url":null,"abstract":"Middleware is often built using a layered architectural style. Layered design provides good separation of the different concerns of middleware, such as communication, marshaling, request dispatching, thread management, etc. Layered architecture helps in the development and evolution of the middleware. It also provides tactical side-benefits: layers provide convenient protection boundaries for enforcing security policies. However, the benefits of this layered structure come at a cost. Layered designs can hinder performance-related optimizations, and actually make it more difficult to adapt systems to conveniently address late-bound requirements such as dependability, access control, virus protection, and so on. We present some examples of this issue, and outline a new approach, under investigation at UC Davis, which includes ideas in middleware, architectures, and programming models.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"197 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":"131882848","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}
This paper addresses the issues of test coverage analysis of J2EE [22] servers. These middleware are nowadays at the core of the modern information technology's landscape. They provide enterprise applications with several non functional services such as security, persistence, transaction, messaging, etc. In several cases, J2EE servers play a critical role when applied to e-business or banking applications. Therefore, ensuring the quality of such software layers becomes an essential requirement. However, in industrial context, professional middleware software are highly complicated and have a huge size which makes their maintenance and quality management a big challenge for testers and quality managers. The aim of this paper is to present our test and coverage analysis case study with and the JOnAS [23] J2EE server. The challenges of this work result from the size of the test suites and the size of the tested middleware (200,000 lines of code (LOC) for JOnAS)
{"title":"Experiences in coverage testing of a Java middleware","authors":"M. Kessis, Y. Ledru, G. Vandome","doi":"10.1145/1108473.1108483","DOIUrl":"https://doi.org/10.1145/1108473.1108483","url":null,"abstract":"This paper addresses the issues of test coverage analysis of J2EE [22] servers. These middleware are nowadays at the core of the modern information technology's landscape. They provide enterprise applications with several non functional services such as security, persistence, transaction, messaging, etc. In several cases, J2EE servers play a critical role when applied to e-business or banking applications. Therefore, ensuring the quality of such software layers becomes an essential requirement. However, in industrial context, professional middleware software are highly complicated and have a huge size which makes their maintenance and quality management a big challenge for testers and quality managers. The aim of this paper is to present our test and coverage analysis case study with and the JOnAS [23] J2EE server. The challenges of this work result from the size of the test suites and the size of the tested middleware (200,000 lines of code (LOC) for JOnAS)","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"26 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":"134123185","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}
Relatively mature integration technologies are available that make application integration tractable from an engineering perspective. However, integrating multiple heterogeneous data sources into applications is still a time-consuming, costly and error-prone engineering task, because existing integration technologies are based on static integration architectures. Such architectures tightly couple a data source to the data integration infrastructure. This paper describes the architecture and evolving prototype implementation of the Data Concierge, which provides a dynamic solution to integrate heterogeneous data sources. The core architecture and mechanisms in the Data Concierge can be used for dynamically attaching to a previously unidentified source of information, without the need for a pre-existing adapter component. In this paper, an ontology based API description mechanism supported by the Data Concierge is described, along with the architecture and prototype tools for describing the metadata necessary to facilitate dynamic integration. The use of an ontology and associated state machine to generate API calls to access data sources is illustrated using an FTP data source.
{"title":"Dynamic adapter generation for data integration middleware","authors":"P. Gong, I. Gorton, D. Feng","doi":"10.1145/1108473.1108476","DOIUrl":"https://doi.org/10.1145/1108473.1108476","url":null,"abstract":"Relatively mature integration technologies are available that make application integration tractable from an engineering perspective. However, integrating multiple heterogeneous data sources into applications is still a time-consuming, costly and error-prone engineering task, because existing integration technologies are based on static integration architectures. Such architectures tightly couple a data source to the data integration infrastructure. This paper describes the architecture and evolving prototype implementation of the Data Concierge, which provides a dynamic solution to integrate heterogeneous data sources. The core architecture and mechanisms in the Data Concierge can be used for dynamically attaching to a previously unidentified source of information, without the need for a pre-existing adapter component. In this paper, an ontology based API description mechanism supported by the Data Concierge is described, along with the architecture and prototype tools for describing the metadata necessary to facilitate dynamic integration. The use of an ontology and associated state machine to generate API calls to access data sources is illustrated using an FTP data source.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"8 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":"126090785","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}
F. Hauck, R. Kapitza, Hans P. Reiser, Andreas I. Schmied
This paper presents a CORBA-compliant middleware architecture that is more flexible and extensible compared to standard CORBA. The portable design of this architecture is easily integrated in any standard CORBA middleware; for this purpose, mainly the handling of object references (IORs) has to be changed. To encapsulate those changes, we introduce the concept of a generic reference manager with portable profile managers. Profile managers are pluggable and in extreme can be downloaded on demand. To illustrate the use of this approach, we present a profile manager implementation for fragmented objects and another one for bridging CORBA to the Jini world. The first profile manager supports truly distributed objects, which allow seamless integration of partitioning, scalability, fault tolerance, end-to-end quality of service, and many more implementation aspects into a distributed object without losing distribution and location transparency. The second profile manager illustrates how our architecture enables fully transparent access from CORBA applications to services on non-CORBA platforms.
{"title":"A flexible and extensible object middleware: CORBA and beyond","authors":"F. Hauck, R. Kapitza, Hans P. Reiser, Andreas I. Schmied","doi":"10.1145/1108473.1108489","DOIUrl":"https://doi.org/10.1145/1108473.1108489","url":null,"abstract":"This paper presents a CORBA-compliant middleware architecture that is more flexible and extensible compared to standard CORBA. The portable design of this architecture is easily integrated in any standard CORBA middleware; for this purpose, mainly the handling of object references (IORs) has to be changed. To encapsulate those changes, we introduce the concept of a generic reference manager with portable profile managers. Profile managers are pluggable and in extreme can be downloaded on demand. To illustrate the use of this approach, we present a profile manager implementation for fragmented objects and another one for bridging CORBA to the Jini world. The first profile manager supports truly distributed objects, which allow seamless integration of partitioning, scalability, fault tolerance, end-to-end quality of service, and many more implementation aspects into a distributed object without losing distribution and location transparency. The second profile manager illustrates how our architecture enables fully transparent access from CORBA applications to services on non-CORBA platforms.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"70 8","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2005-09-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"120844078","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}
This paper presents innovative program transformations for the efficient and accurate profiling of Java programs. The profiling is based on a deterministic sampling mechanism that exploits the number of executed JVM bytecode instructions to trigger a user-defined profiling agent in order to process samples of the call stack. The instrumentation is entirely portable, profiles are reproducible, and the sampling rate can be dynamically tuned. Moderate overhead and high profile accuracy make the profiling framework attractive for developers of complex systems, such as application servers.
{"title":"Portable, efficient, and accurate sampling profiling for java-based middleware","authors":"Walter Binder","doi":"10.1145/1108473.1108484","DOIUrl":"https://doi.org/10.1145/1108473.1108484","url":null,"abstract":"This paper presents innovative program transformations for the efficient and accurate profiling of Java programs. The profiling is based on a deterministic sampling mechanism that exploits the number of executed JVM bytecode instructions to trigger a user-defined profiling agent in order to process samples of the call stack. The instrumentation is entirely portable, profiles are reproducible, and the sampling rate can be dynamically tuned. Moderate overhead and high profile accuracy make the profiling framework attractive for developers of complex systems, such as application servers.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"8 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":"122088538","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}
Exception handling is a practical and important way to improve the reliability of a software system. In component based software engineering, exceptions are usually handled by the developers of reusable components. However, many exceptions are dependent on the context of a component in the target system. Such exceptions are difficult and sometimes impossible to be handled at the stage of development of reusable components. On the other hand, we found out that many exceptions can be successfully handled by some special mechanisms of middleware. In this paper, an approach to handling the exceptions in the component composition with the support of middleware is proposed. We define an exception handling model complementary to the software architecture for identifying and analyzing the exceptions and taking the knowledge of supporting middleware into the decision of exception handling. The feasibility and effectiveness of the approach are demonstrated through a J2EE blueprint program.
{"title":"Exception handling in component composition with the support of middleware","authors":"Yao-Dong Feng, Gang Huang, Yali Zhu, Hong Mei","doi":"10.1145/1108473.1108493","DOIUrl":"https://doi.org/10.1145/1108473.1108493","url":null,"abstract":"Exception handling is a practical and important way to improve the reliability of a software system. In component based software engineering, exceptions are usually handled by the developers of reusable components. However, many exceptions are dependent on the context of a component in the target system. Such exceptions are difficult and sometimes impossible to be handled at the stage of development of reusable components. On the other hand, we found out that many exceptions can be successfully handled by some special mechanisms of middleware. In this paper, an approach to handling the exceptions in the component composition with the support of middleware is proposed. We define an exception handling model complementary to the software architecture for identifying and analyzing the exceptions and taking the knowledge of supporting middleware into the decision of exception handling. The feasibility and effectiveness of the approach are demonstrated through a J2EE blueprint program.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"46 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":"131908025","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}
An SQL injection attack targets interactive web applications that employ database services. Such applications accept user input, such as form fields, and then include this input in database requests, typically SQL statements. In SQL injection, the attacker provides user input that results in a different database request than was intended by the application programmer. That is, the interpretation of the user input as part of a larger SQL statement, results in an SQL statement of a different form than originally intended. We describe a technique to prevent this kind of manipulation and hence eliminate SQL injection vulnerabilities. The technique is based on comparing, at run time, the parse tree of the SQL statement before inclusion of user input with that resulting after inclusion of input. Our solution is efficient, adding about 3 ms overhead to database query costs. In addition, it is easily adopted by application programmers, having the same syntactic structure as current popular record set retrieval methods. For empirical analysis, we provide a case study of our solution in J2EE. We implement our solution in a simple static Java class, and show its effectiveness and scalability.
{"title":"Using parse tree validation to prevent SQL injection attacks","authors":"G. Buehrer, B. Weide, P. Sivilotti","doi":"10.1145/1108473.1108496","DOIUrl":"https://doi.org/10.1145/1108473.1108496","url":null,"abstract":"An SQL injection attack targets interactive web applications that employ database services. Such applications accept user input, such as form fields, and then include this input in database requests, typically SQL statements. In SQL injection, the attacker provides user input that results in a different database request than was intended by the application programmer. That is, the interpretation of the user input as part of a larger SQL statement, results in an SQL statement of a different form than originally intended. We describe a technique to prevent this kind of manipulation and hence eliminate SQL injection vulnerabilities. The technique is based on comparing, at run time, the parse tree of the SQL statement before inclusion of user input with that resulting after inclusion of input. Our solution is efficient, adding about 3 ms overhead to database query costs. In addition, it is easily adopted by application programmers, having the same syntactic structure as current popular record set retrieval methods. For empirical analysis, we provide a case study of our solution in J2EE. We implement our solution in a simple static Java class, and show its effectiveness and scalability.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"551 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":"115246011","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}
Publish/subscribe infrastructures are used as the basic communication and integration framework in many application domains. The majority of those infrastructures, however, fall short of mechanisms that allow their customization and configuration to comply with the requirements of those application domains. In other words, they are not versatile enough to support new and evolving requirements demanded by different applications. The YANCEES (Yet ANother Configurable Extensible Event Service) addresses these versatility issues by relying on a combination of plug-in oriented architecture and extensible languages decomposed over different design dimensions of a publish/subscribe infrastructure. We demonstrate our approach, showing how the YANCEES platform can be useful in reducing the customization, extension and implementation effort of different publish/subscribe infrastructures to attend the demands of many application domains.
在许多应用程序领域中,发布/订阅基础结构被用作基本的通信和集成框架。然而,这些基础结构中的大多数缺乏允许其定制和配置以符合这些应用程序域需求的机制。换句话说,它们不够通用,无法支持不同应用程序所要求的新的和不断发展的需求。yanees (Yet ANother Configurable Extensible Event Service,另一种可配置可扩展事件服务)通过将面向插件的体系结构和可扩展语言结合起来,分解为发布/订阅基础设施的不同设计维度,从而解决了这些多功能性问题。我们演示了我们的方法,展示了YANCEES平台如何在减少定制、扩展和实现不同发布/订阅基础设施的工作方面发挥作用,以满足许多应用程序领域的需求。
{"title":"Striving for versatility in publish/subscribe infrastructures","authors":"R. S. Filho, D. Redmiles","doi":"10.1145/1108473.1108478","DOIUrl":"https://doi.org/10.1145/1108473.1108478","url":null,"abstract":"Publish/subscribe infrastructures are used as the basic communication and integration framework in many application domains. The majority of those infrastructures, however, fall short of mechanisms that allow their customization and configuration to comply with the requirements of those application domains. In other words, they are not versatile enough to support new and evolving requirements demanded by different applications. The YANCEES (Yet ANother Configurable Extensible Event Service) addresses these versatility issues by relying on a combination of plug-in oriented architecture and extensible languages decomposed over different design dimensions of a publish/subscribe infrastructure. We demonstrate our approach, showing how the YANCEES platform can be useful in reducing the customization, extension and implementation effort of different publish/subscribe infrastructures to attend the demands of many application domains.","PeriodicalId":344435,"journal":{"name":"Joint Conference on Lexical and Computational Semantics","volume":"13 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":"125190082","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}