Smart devices, such as personal assistants, mobile phone or smart cards, continuously spread and thus challenge every aspect of our lives. However, such environments exhibit specific constraints, such as mobility, high-level of dynamism and most often restricted resources. Traditional middle-wares were not designed for such constraints and, because of their monolithic, static and rigid architectures, are not likely to become a fit.In response, we propose a flexible micro-ORB, called Flex-ORB, that supports on demand export of services as well as their dynamic deployment and reconfiguration. Flex-ORB supports mobile code through an intermediate code representation. It is built on top of NEVERMIND, a flexible minimal execution environment, which uses a reflexive dynamic compiler as a central common language substrate upon which to achieve interoperability.Preliminary performance measurements show that, while being relatively small (120 KB) and dynamically adaptable, FlexORB outperforms traditional middlewares such as RPC, CORBA and Java RMI.
{"title":"A step towards ubiquitous computing: an efficient flexible micro-ORB","authors":"F. Ogel, B. Folliot, Gaël Thomas","doi":"10.1145/1133572.1133580","DOIUrl":"https://doi.org/10.1145/1133572.1133580","url":null,"abstract":"Smart devices, such as personal assistants, mobile phone or smart cards, continuously spread and thus challenge every aspect of our lives. However, such environments exhibit specific constraints, such as mobility, high-level of dynamism and most often restricted resources. Traditional middle-wares were not designed for such constraints and, because of their monolithic, static and rigid architectures, are not likely to become a fit.In response, we propose a flexible micro-ORB, called Flex-ORB, that supports on demand export of services as well as their dynamic deployment and reconfiguration. Flex-ORB supports mobile code through an intermediate code representation. It is built on top of NEVERMIND, a flexible minimal execution environment, which uses a reflexive dynamic compiler as a central common language substrate upon which to achieve interoperability.Preliminary performance measurements show that, while being relatively small (120 KB) and dynamically adaptable, FlexORB outperforms traditional middlewares such as RPC, CORBA and Java RMI.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125381961","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. Bouchenak, F. Boyer, E. Cecchet, Sébastien Jean, Alan Schmitt, J. Stefani
Clustering has become a de facto standard to scale distributed systems and applications. However, the administration and management of such systems still use ad-hoc techniques that partially fulfill the needs. The expertise needed to configure and tune these systems goes beyond the capacity of a single system administrator or software developer.We present a modular software infrastructure to build command and control loops to manage large scale distributed systems. Our approach uses a reflective component model in a systematic way for building a system model and every single stage in the supervision loop. This approach offers modularity, easy configuration, dynamic reconfiguration, as well as reusability. We illustrate how this architecture can be used to build self-manageable J2EE application server clusters.
{"title":"A component-based approach to distributed system management: a use case with self-manageable J2EE clusters","authors":"S. Bouchenak, F. Boyer, E. Cecchet, Sébastien Jean, Alan Schmitt, J. Stefani","doi":"10.1145/1133572.1133574","DOIUrl":"https://doi.org/10.1145/1133572.1133574","url":null,"abstract":"Clustering has become a de facto standard to scale distributed systems and applications. However, the administration and management of such systems still use ad-hoc techniques that partially fulfill the needs. The expertise needed to configure and tune these systems goes beyond the capacity of a single system administrator or software developer.We present a modular software infrastructure to build command and control loops to manage large scale distributed systems. Our approach uses a reflective component model in a systematic way for building a system model and every single stage in the supervision loop. This approach offers modularity, easy configuration, dynamic reconfiguration, as well as reusability. We illustrate how this architecture can be used to build self-manageable J2EE application server clusters.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"217 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125692948","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 is about on-the-fly migration of entire operating systems between physically different host computers. Resource allocation is often static; using migration allows applications to dynamically change bindings between programs and physical hosts as to improve utilisation. We first survey different approaches to migration and then present two prototypes that allow migration not only of an application but also of the operating system running the application. One of the prototypes includes a novel approach, self-migration, to operating system migration. Performance numbers show that migration can be done with merely subsecond suspension of the application.
{"title":"Self-migration of operating systems","authors":"J. Hansen, E. Jul","doi":"10.1145/1133572.1133616","DOIUrl":"https://doi.org/10.1145/1133572.1133616","url":null,"abstract":"This paper is about on-the-fly migration of entire operating systems between physically different host computers. Resource allocation is often static; using migration allows applications to dynamically change bindings between programs and physical hosts as to improve utilisation. We first survey different approaches to migration and then present two prototypes that allow migration not only of an application but also of the operating system running the application. One of the prototypes includes a novel approach, self-migration, to operating system migration. Performance numbers show that migration can be done with merely subsecond suspension of the application.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"120 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116436681","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}
Configuration is the process whereby components are assembled or adjusted to produce a functional system that operates at a specified level of performance. Today, the complexity of configuration is a major impediment to deploying and managing computer systems. We describe an approach to quantifying configuration complexity, with the ultimate goal of producing a configuration complexity benchmark. Our belief is that such a benchmark can drive progress towards self-configuring systems. Unlike traditional workload-based performance benchmarks, our approach is process-based. It generates metrics that reflect the level of human involvement in the configuration process, quantified by interaction time and probability of successful configuration. It computes the metrics using a model of a standardized human operator, calibrated in advance by a user study that measures operator behavior on a set of parameterized canonical configuration actions. The model captures the human component of configuration complexity at low cost and provides representativeness and reproducibility.
{"title":"An approach to benchmarking configuration complexity","authors":"Aaron B. Brown, J. Hellerstein","doi":"10.1145/1133572.1133609","DOIUrl":"https://doi.org/10.1145/1133572.1133609","url":null,"abstract":"Configuration is the process whereby components are assembled or adjusted to produce a functional system that operates at a specified level of performance. Today, the complexity of configuration is a major impediment to deploying and managing computer systems. We describe an approach to quantifying configuration complexity, with the ultimate goal of producing a configuration complexity benchmark. Our belief is that such a benchmark can drive progress towards self-configuring systems. Unlike traditional workload-based performance benchmarks, our approach is process-based. It generates metrics that reflect the level of human involvement in the configuration process, quantified by interaction time and probability of successful configuration. It computes the metrics using a model of a standardized human operator, calibrated in advance by a user study that measures operator behavior on a set of parameterized canonical configuration actions. The model captures the human component of configuration complexity at low cost and provides representativeness and reproducibility.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"146 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133831686","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}
G. Mainland, Laura Kang, Sébastien Lahaie, D. Parkes, M. Welsh
This paper presents market-based macroprogramming (MBM), a new paradigm for achieving globally efficient behavior in sensor networks. Rather than programming the individual, low-level behaviors of sensor nodes, MBM defines a virtual market where nodes sell "actions" (such as taking a sensor reading or aggregating data) in response to global price information. Nodes take actions to maximize their own utility, subject to energy budget constraints. The behavior of the network is determined by adjusting the price vectors for each action, rather than by directly specifying local node actions, resulting in a globally efficient allocation of network resources. We present the market-based macro-programming paradigm, as well as several experiments demonstrating its value for a sensor network vehicle tracking application.
{"title":"Using virtual markets to program global behavior in sensor networks","authors":"G. Mainland, Laura Kang, Sébastien Lahaie, D. Parkes, M. Welsh","doi":"10.1145/1133572.1133587","DOIUrl":"https://doi.org/10.1145/1133572.1133587","url":null,"abstract":"This paper presents market-based macroprogramming (MBM), a new paradigm for achieving globally efficient behavior in sensor networks. Rather than programming the individual, low-level behaviors of sensor nodes, MBM defines a virtual market where nodes sell \"actions\" (such as taking a sensor reading or aggregating data) in response to global price information. Nodes take actions to maximize their own utility, subject to energy budget constraints. The behavior of the network is determined by adjusting the price vectors for each action, rather than by directly specifying local node actions, resulting in a globally efficient allocation of network resources. We present the market-based macro-programming paradigm, as well as several experiments demonstrating its value for a sensor network vehicle tracking application.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114938123","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 solution to a number of modern computer problems takes the form of a manual, expert-guided search through a large space of computer configurations. For example, if a desktop computer is crashing or malfunctioning, a troubleshooter will use her knowledge of system features such as configuration files, registries, and dynamic library versions to apply a series of configuration changes until the system once again begins functioning. As another example, to obtain good performance from a complex system like a database or a web application, a specialized and highly paid administrator will explore the set of application and operating system parameters to find the optimal values.
{"title":"Using time travel to diagnose computer problems","authors":"Andrew Whitaker, Richard S. Cox, S. Gribble","doi":"10.1145/1133572.1133607","DOIUrl":"https://doi.org/10.1145/1133572.1133607","url":null,"abstract":"The solution to a number of modern computer problems takes the form of a manual, expert-guided search through a large space of computer configurations. For example, if a desktop computer is crashing or malfunctioning, a troubleshooter will use her knowledge of system features such as configuration files, registries, and dynamic library versions to apply a series of configuration changes until the system once again begins functioning. As another example, to obtain good performance from a complex system like a database or a web application, a specialized and highly paid administrator will explore the set of application and operating system parameters to find the optimal values.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"27 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117087836","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. Mislove, Gaurav Oberoi, Ansley Post, C. Reis, P. Druschel, D. Wallach
This paper describes a cooperative overlay network that provides anonymous communication services for participating users. The Anonymizing Peer-to-Peer Proxy (AP3) system provides clients with three primitives: (i) anonymous message delivery, (ii) anonymous channels, and (iii) secure pseudonyms. AP3 is designed to be lightweight, low-cost and provides "probable innocence" anonymity to participating users, even under a large-scale coordinated attack by a limited fraction of malicious overlay nodes. Additionally, we use AP3's primitives to build novel anonymous group communication facilities (multicast and anycast), which shield the identity of both publishers and subscribers.
{"title":"AP3: cooperative, decentralized anonymous communication","authors":"A. Mislove, Gaurav Oberoi, Ansley Post, C. Reis, P. Druschel, D. Wallach","doi":"10.1145/1133572.1133578","DOIUrl":"https://doi.org/10.1145/1133572.1133578","url":null,"abstract":"This paper describes a cooperative overlay network that provides anonymous communication services for participating users. The Anonymizing Peer-to-Peer Proxy (AP3) system provides clients with three primitives: (i) anonymous message delivery, (ii) anonymous channels, and (iii) secure pseudonyms. AP3 is designed to be lightweight, low-cost and provides \"probable innocence\" anonymity to participating users, even under a large-scale coordinated attack by a limited fraction of malicious overlay nodes. Additionally, we use AP3's primitives to build novel anonymous group communication facilities (multicast and anycast), which shield the identity of both publishers and subscribers.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134436750","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}
Device drivers account for the majority of an operating system's code base, and reuse of the existing driver infrastructure is a pragmatic requirement of any new OS project. New operating systems should benefit from the existing device driver code base without demanding legacy support from the kernel.Instead of trying to directly integrate existing device drivers we propose a more radical approach. We run the unmodified device driver, with its complete original OS, isolated in a virtual machine. Our flexible approach, requiring only minimal support infrastructure, allows us to run any existing device driver, independently of the OS or driver vendor.
{"title":"A sledgehammer approach to reuse of legacy device drivers","authors":"Joshua LeVasseur, Volkmar Uhlig","doi":"10.1145/1133572.1133617","DOIUrl":"https://doi.org/10.1145/1133572.1133617","url":null,"abstract":"Device drivers account for the majority of an operating system's code base, and reuse of the existing driver infrastructure is a pragmatic requirement of any new OS project. New operating systems should benefit from the existing device driver code base without demanding legacy support from the kernel.Instead of trying to directly integrate existing device drivers we propose a more radical approach. We run the unmodified device driver, with its complete original OS, isolated in a virtual machine. Our flexible approach, requiring only minimal support infrastructure, allows us to run any existing device driver, independently of the OS or driver vendor.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"121393838","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}
Petros Maniatis, T. J. Giuli, M. Roussopoulos, D. Rosenthal, Mary Baker
P2P systems are exposed to an unusually broad range of attacks. These include a spectrum of denial-of-service, or attrition, attacks from low-level packet flooding to high-level abuse of the peer communication protocol. We identify a set of defenses that systems can deploy against such attacks and potential synergies among them. We illustrate the application of these defenses in the context of the LOCKSS digital preservation system.
{"title":"Impeding attrition attacks in P2P systems","authors":"Petros Maniatis, T. J. Giuli, M. Roussopoulos, D. Rosenthal, Mary Baker","doi":"10.1145/1133572.1133601","DOIUrl":"https://doi.org/10.1145/1133572.1133601","url":null,"abstract":"P2P systems are exposed to an unusually broad range of attacks. These include a spectrum of denial-of-service, or attrition, attacks from low-level packet flooding to high-level abuse of the peer communication protocol. We identify a set of defenses that systems can deploy against such attacks and potential synergies among them. We illustrate the application of these defenses in the context of the LOCKSS digital preservation system.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"11 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127967464","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}
As sensitive data lifetime (i.e. propagation and duration in memory) increases, so does the risk of exposure. Unfortunately, this issue has been largely overlooked in the design of most of today's operating systems, libraries, languages, etc. As a result, applications are likely to leave the sensitive data they handle (passwords, financial and military information, etc.) scattered widely over memory, leaked to disk, etc. and left there for an indeterminate period of time. This greatly increases the impact of a system compromise.Dealing with data lifetime issues is currently left to application developers, who largely overlook them. Security-aware developers who attempt to address them (e.g. cryptographic library writers) are stymied by the limitations of the operating systems, languages, etc. they rely on. We argue that data lifetime is a systems issue which must be recognized and addressed at all layers of the software stack.
{"title":"Data lifetime is a systems problem","authors":"Tal Garfinkel, Ben Pfaff, Jim Chow, M. Rosenblum","doi":"10.1145/1133572.1133599","DOIUrl":"https://doi.org/10.1145/1133572.1133599","url":null,"abstract":"As sensitive data lifetime (i.e. propagation and duration in memory) increases, so does the risk of exposure. Unfortunately, this issue has been largely overlooked in the design of most of today's operating systems, libraries, languages, etc. As a result, applications are likely to leave the sensitive data they handle (passwords, financial and military information, etc.) scattered widely over memory, leaked to disk, etc. and left there for an indeterminate period of time. This greatly increases the impact of a system compromise.Dealing with data lifetime issues is currently left to application developers, who largely overlook them. Security-aware developers who attempt to address them (e.g. cryptographic library writers) are stymied by the limitations of the operating systems, languages, etc. they rely on. We argue that data lifetime is a systems issue which must be recognized and addressed at all layers of the software stack.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"64 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2004-09-19","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126238931","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}