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}
The architecture of an operating system, e.g. micro kernel or monolithic kernel, is usually seen as something static. Even during the long lasting evolution of operating system code it is extremely hard and, thus, expensive to change the architecture. However, our experience is that architectural evolution is often required and an architecture-neutral way to develop operating system components should be found. After analyzing why architectural flexibility is so difficult to achieve, we propose Aspect-Oriented Programming (AOP) as a solution. An example from the PURE OS family, which is implemented in an aspect-oriented programming language called AspectC++, will demonstrate the usefulness of the approach, which allows to separate the code that implements architectural properties from the core functionality.
{"title":"Using AOP to develop architectural-neutral operating system components","authors":"O. Spinczyk, D. Lohmann","doi":"10.1145/1133572.1133582","DOIUrl":"https://doi.org/10.1145/1133572.1133582","url":null,"abstract":"The architecture of an operating system, e.g. micro kernel or monolithic kernel, is usually seen as something static. Even during the long lasting evolution of operating system code it is extremely hard and, thus, expensive to change the architecture. However, our experience is that architectural evolution is often required and an architecture-neutral way to develop operating system components should be found. After analyzing why architectural flexibility is so difficult to achieve, we propose Aspect-Oriented Programming (AOP) as a solution. An example from the PURE OS family, which is implemented in an aspect-oriented programming language called AspectC++, will demonstrate the usefulness of the approach, which allows to separate the code that implements architectural properties from the core functionality.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"353 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":"122792017","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}
J. Blanquer, Antoni Batchelli, K. Schauser, R. Wolski
In this paper we argue that the best approach to providing Quality of Service (QoS) guarantees to current Internet services is to use admission control and traffic shaping techniques at the entrance points of Internet hosting sites. We propose a black-box approach that does not require knowledge, instrumentation, or modification of the system (hardware and software) that implements the services provided by the site.We maintain that such a non-intrusive QoS solution achieves better resource utilization, has lower cost, and is more flexible than the current approaches of physical partitioning and hardware over-provisioning. Furthermore, we contend that our solution is easier to deploy, less complex to implement, and easier to maintain than more intrusive approaches which embed the QoS logic into the operating system, distributed middleware, or application code. We demonstrate empirically that despite being decoupled from the internal mechanisms implementing the site, a black-box approach provides effective response times and capacity guarantees.
{"title":"QoS for internet services: done right","authors":"J. Blanquer, Antoni Batchelli, K. Schauser, R. Wolski","doi":"10.1145/1133572.1133596","DOIUrl":"https://doi.org/10.1145/1133572.1133596","url":null,"abstract":"In this paper we argue that the best approach to providing Quality of Service (QoS) guarantees to current Internet services is to use admission control and traffic shaping techniques at the entrance points of Internet hosting sites. We propose a black-box approach that does not require knowledge, instrumentation, or modification of the system (hardware and software) that implements the services provided by the site.We maintain that such a non-intrusive QoS solution achieves better resource utilization, has lower cost, and is more flexible than the current approaches of physical partitioning and hardware over-provisioning. Furthermore, we contend that our solution is easier to deploy, less complex to implement, and easier to maintain than more intrusive approaches which embed the QoS logic into the operating system, distributed middleware, or application code. We demonstrate empirically that despite being decoupled from the internal mechanisms implementing the site, a black-box approach provides effective response times and capacity guarantees.","PeriodicalId":285758,"journal":{"name":"EW 11","volume":"203 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":"123045905","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}