首页 > 最新文献

Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications最新文献

英文 中文
Using events for the scalable federation of heterogeneous components 将事件用于异构组件的可伸缩联合
J. Bates, J. Bacon, K. Moody, M. D. Spiteri
The thesis of this paper is that, using our eventbased development principles, components that were not designed to interoperate, can be made to work together quickly and easily. The only requirement is that each component must be made event-based by adding an interface for registering interest in events and an interface for injecting actions. A component noti es an event to a distributed client if the parameters of an event, internal to the component, match the parameters of a particular registration. Heterogeneous components can be federated using event-based rules; rules can respond to events from any component by injecting actions into any other component. We show that the event paradigm is scalable by illustrating how event-based components can be located worldwide, using a federation of event brokers. Additionally, we illustrate with 3 event-based systems we have developed: a component-based multimedia system, a multi-user virtual worlds system and an augmented reality system for mobile users. Finally, we show how the event paradigm is also scalable enough to allow event federation of entire systems, not just single components. We illustrate by showing how we have federated the operation of the 3 featured eventbased systems. This enables, for example, real-world mobile users to appear as avatars in the appropriate locations in the VR world, and for these avatars to move in response to actual user movements. 1 Principles of Event-based Systems This section introduces distributed systems development using events. The framework presented here uses events to glue" together components. By using events as a uniform way of informing other components of activities that have occurred, systems/applications can be built around a generic eventresponse paradigm. Using this approach, the entire Internet can become a plug-and-play domain. An event is an asynchronous message containing parametrised details of an activity that has occurred within a component, or has been detected by the component. Services publish details of classes of event they actively monitor for, clients register interest with services, and services notify clients, as appropriate. Single events, or events as part of an ordered combination of events, noti ed to clients, can be used to trigger further actions within the system/application. Using events as the uniform interchange of activity between the possibly distributed components, simplies the construction of a complex system/application. Our recent work is making fundamental contributions to the diÆcult problem of how to compose or federate existing systems to achieve interoperability. A related problem that is relevant within a single domain is how to add new object types (in our case, event classes) to a dynamically running system. In this paper, we use the term active system to describe a large system or application composed of components interoperating via event federation. 1.1 Components and Glue Event-based programming relies
本文的主题是,使用我们的基于事件的开发原则,可以使那些没有被设计为互操作的组件快速而轻松地协同工作。唯一的要求是,每个组件必须是基于事件的,方法是添加一个用于注册对事件感兴趣的接口和一个用于注入操作的接口。如果组件内部事件的参数与特定注册的参数匹配,则组件将事件通知给分布式客户端。异构组件可以使用基于事件的规则进行联合;规则可以通过向任何其他组件注入动作来响应来自任何组件的事件。通过说明如何使用事件代理联盟在全球范围内定位基于事件的组件,我们展示了事件范式是可伸缩的。此外,我们用我们开发的3个基于事件的系统来说明:一个基于组件的多媒体系统,一个多用户虚拟世界系统和一个面向移动用户的增强现实系统。最后,我们将展示事件范式如何具有足够的可伸缩性,以允许整个系统(而不仅仅是单个组件)的事件联合。我们通过展示如何联合这3个基于事件的系统的操作来进行说明。例如,这使得现实世界的移动用户可以在虚拟现实世界的适当位置以虚拟形象出现,并且这些虚拟形象可以响应实际用户的移动。1基于事件的系统原理介绍基于事件的分布式系统开发。这里介绍的框架使用事件将组件“粘合”在一起。通过使用事件作为将已发生的活动通知其他组件的统一方式,系统/应用程序可以围绕通用的事件响应范例构建。使用这种方法,整个Internet可以成为即插即用域。事件是一个异步消息,其中包含组件中发生的或已被组件检测到的活动的参数化详细信息。服务发布它们主动监视的事件类的详细信息,客户端向服务注册感兴趣的事件,服务根据需要通知客户端。通知客户端的单个事件或作为有序事件组合一部分的事件可用于触发系统/应用程序内的进一步操作。使用事件作为可能分布的组件之间统一的活动交换,简化了复杂系统/应用程序的构造。我们最近的工作是对如何组合或联合现有系统以实现互操作性的diÆcult问题做出基本贡献。与单个域相关的一个相关问题是如何向动态运行的系统添加新的对象类型(在我们的示例中是事件类)。在本文中,我们使用术语“活动系统”来描述由通过事件联合进行互操作的组件组成的大型系统或应用程序。基于事件的编程依赖于两个主要概念:现有的基于事件的组件被用作应用程序的构建块。这些文件可能分布在本地网络或Internet上。它们可以将相关事件通知感兴趣的用户,例如移动用户位置的变化。基于事件的系统构建的强大之处在于,没有组件被设计为专门与任何其他组件一起工作。要将许多基于事件的组件组合到一个活动系统中,必须编写联邦器组件。这是系统的定制部分,由基于事件的规则组成,这些规则描述了响应来自系统内组件的某些事件所采取的操作。规则充当分布式系统集成粘合剂,使用来自任何组件的任何事件类,通过注入任何操作来驱动任何其他组件。例如,将用户界面移动到应用程序所有者的新位置以响应用户已移动的事件,或重新定位多媒体应用程序以响应详细描述带宽可用性变化的事件。在本文中,我们通过以下方式指定基于事件的规则:rule =;{}在多用户应用程序中,例如多媒体会议,每个用户拥有一组组件,但整个系统由所有用户组件的交互集组成。在这种情况下,很可能每个用户都有一个单独的联邦组件来处理他/她自己的组件。在本节的其余部分中,我们将使用两个案例研究来说明基于事件的编程概念。第一部分展示了如何将独立绘图板做成基于事件的,然后将其用作CSCW应用程序中的组件。第二部分展示了事件服务如何允许客户定制他们感兴趣的范围。为此,我们使用位置服务的示例,它是我们的增强环境框架的一部分。位置服务负责保持客户端位置感知。1.
{"title":"Using events for the scalable federation of heterogeneous components","authors":"J. Bates, J. Bacon, K. Moody, M. D. Spiteri","doi":"10.1145/319195.319205","DOIUrl":"https://doi.org/10.1145/319195.319205","url":null,"abstract":"The thesis of this paper is that, using our eventbased development principles, components that were not designed to interoperate, can be made to work together quickly and easily. The only requirement is that each component must be made event-based by adding an interface for registering interest in events and an interface for injecting actions. A component noti es an event to a distributed client if the parameters of an event, internal to the component, match the parameters of a particular registration. Heterogeneous components can be federated using event-based rules; rules can respond to events from any component by injecting actions into any other component. We show that the event paradigm is scalable by illustrating how event-based components can be located worldwide, using a federation of event brokers. Additionally, we illustrate with 3 event-based systems we have developed: a component-based multimedia system, a multi-user virtual worlds system and an augmented reality system for mobile users. Finally, we show how the event paradigm is also scalable enough to allow event federation of entire systems, not just single components. We illustrate by showing how we have federated the operation of the 3 featured eventbased systems. This enables, for example, real-world mobile users to appear as avatars in the appropriate locations in the VR world, and for these avatars to move in response to actual user movements. 1 Principles of Event-based Systems This section introduces distributed systems development using events. The framework presented here uses events to glue\" together components. By using events as a uniform way of informing other components of activities that have occurred, systems/applications can be built around a generic eventresponse paradigm. Using this approach, the entire Internet can become a plug-and-play domain. An event is an asynchronous message containing parametrised details of an activity that has occurred within a component, or has been detected by the component. Services publish details of classes of event they actively monitor for, clients register interest with services, and services notify clients, as appropriate. Single events, or events as part of an ordered combination of events, noti ed to clients, can be used to trigger further actions within the system/application. Using events as the uniform interchange of activity between the possibly distributed components, simplies the construction of a complex system/application. Our recent work is making fundamental contributions to the diÆcult problem of how to compose or federate existing systems to achieve interoperability. A related problem that is relevant within a single domain is how to add new object types (in our case, event classes) to a dynamically running system. In this paper, we use the term active system to describe a large system or application composed of components interoperating via event federation. 1.1 Components and Glue Event-based programming relies ","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"32 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122283865","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}
引用次数: 53
DROPS: OS support for distributed multimedia applications DROPS:对分布式多媒体应用的操作系统支持
Hermann Härtig, Robert Baumgartl, M. Borriss, Claude-Joachim Hamann, Michael Hohmuth, F. Mehnert, Lars Reuther, S. Schönberg, J. Wolter
The characterising new requirement for distributed multimedia applications is the coexistence of dynamic real-time and non-real-time applications on hosts and networks. While some networks (e.g., ATM) in principle have the capability to reserve bandwidth on shared links, host systems usually do not. DROPS (Dresden Real-time OPerating System) is being built to remedy that situation by providing resource managers that allow the reservation of resources in advance and enforce that reservations. It allows the coexistence of timesharing applications (with no reservations) and real-time applications (with reservations). By outlining the principle architecture, some design decisions, and first results, the paper demonstrates how these objectives can be met using straightforward OS technology. It argues that middleware for diverse platforms cannot meet these objectives efficiently without proper core operating system support.
分布式多媒体应用的新要求是动态实时和非实时应用在主机和网络上的共存。虽然某些网络(例如ATM)原则上具有在共享链路上保留带宽的能力,但主机系统通常没有。正在构建的DROPS (Dresden Real-time OPerating System,德累斯顿实时操作系统)通过提供资源管理器来纠正这种情况,这些管理器允许提前预订资源并强制执行这些预订。它允许分时应用程序(不带保留)和实时应用程序(带保留)共存。通过概述原理体系结构、一些设计决策和初步结果,本文演示了如何使用简单的操作系统技术来满足这些目标。它认为,如果没有适当的核心操作系统支持,各种平台的中间件无法有效地满足这些目标。
{"title":"DROPS: OS support for distributed multimedia applications","authors":"Hermann Härtig, Robert Baumgartl, M. Borriss, Claude-Joachim Hamann, Michael Hohmuth, F. Mehnert, Lars Reuther, S. Schönberg, J. Wolter","doi":"10.1145/319195.319226","DOIUrl":"https://doi.org/10.1145/319195.319226","url":null,"abstract":"The characterising new requirement for distributed multimedia applications is the coexistence of dynamic real-time and non-real-time applications on hosts and networks. While some networks (e.g., ATM) in principle have the capability to reserve bandwidth on shared links, host systems usually do not. DROPS (Dresden Real-time OPerating System) is being built to remedy that situation by providing resource managers that allow the reservation of resources in advance and enforce that reservations. It allows the coexistence of timesharing applications (with no reservations) and real-time applications (with reservations). By outlining the principle architecture, some design decisions, and first results, the paper demonstrates how these objectives can be met using straightforward OS technology. It argues that middleware for diverse platforms cannot meet these objectives efficiently without proper core operating system support.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116360918","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}
引用次数: 105
Dynamically reconfiguring multimedia components: a model-based approach 动态重新配置多媒体组件:基于模型的方法
S. Mitchell, Hani Naguib, G. Coulouris, T. Kindberg
Distributed multimedia systems are potentially subject to frequent and ongoing evolution of application structures. In such systems it is often unacceptable for reconfigurations to fail or to only partially succeed. This paper describes the reconfiguration architecture of the DJINN multimedia programming framework. We introduce the concept of multimedia transactions for structuring changes into atomic units that preserve application consistency and extend these with the smoothness condition to maintain temporal as well as data integrity across reconfigurations. We present a technique for scheduling configuration changes that trades off the perceived level of smoothness against the available resources and the desired timeliness of the reconfiguration.
分布式多媒体系统可能受到应用程序结构频繁和持续发展的影响。在这样的系统中,重新配置失败或仅部分成功通常是不可接受的。本文描述了DJINN多媒体编程框架的重构体系结构。我们引入了多媒体事务的概念,用于将更改结构化为原子单元,以保持应用程序的一致性,并使用平滑条件对其进行扩展,以在重新配置时保持时间和数据完整性。我们提出了一种调度配置更改的技术,该技术将感知到的平滑程度与可用资源和重新配置的期望及时性相权衡。
{"title":"Dynamically reconfiguring multimedia components: a model-based approach","authors":"S. Mitchell, Hani Naguib, G. Coulouris, T. Kindberg","doi":"10.1145/319195.319202","DOIUrl":"https://doi.org/10.1145/319195.319202","url":null,"abstract":"Distributed multimedia systems are potentially subject to frequent and ongoing evolution of application structures. In such systems it is often unacceptable for reconfigurations to fail or to only partially succeed. This paper describes the reconfiguration architecture of the DJINN multimedia programming framework. We introduce the concept of multimedia transactions for structuring changes into atomic units that preserve application consistency and extend these with the smoothness condition to maintain temporal as well as data integrity across reconfigurations. We present a technique for scheduling configuration changes that trades off the perceived level of smoothness against the available resources and the desired timeliness of the reconfiguration.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"29 5","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"131623537","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}
引用次数: 33
An unconventional proposal: using the x86 architecture as the ubiquitous virtual standard architecture 一个非常规的建议:使用x86架构作为无处不在的虚拟标准架构
J. Liedtke, N. Islam, T. Jaeger, Vsevolod Panteleenko, Yoonho Park
There are 100+ million computers in the world. Even smaller organizations have easily 100+ machines; 10,000+ are typical for medium-sized organizations like a university or a bank. Current network technology is so ubiqitious and so powerful that we increasingly use these crowds of computers as one “technical being” instead of thinking of them as single machines. Consequently, we try to support distributed applications, not only by moving data around but also by remote execution of downloaded/uploaded code (applets, servlets) and even dynamically migrating active objects, i.e., curently executing programs (agents, load distribution). Unfortunately, not all of these 100+ million machines are compatible with each other. Currently, in the workstation/PC/NC segment, we see about 7 different hardware architectures: x86, PowerPC, Alpha, Mips, Sparc, PA-Risc, 68K. Some architectures are likely to disappear over time, e.g. 68K; however, new ones will show up (perhaps Intel’s IA-64). Heterogeneity will probably remain a problem over the next decade. More or less compatible OS APIs and tools, in particular compilers, help to move a source program from an x-machine to a y-machine. Moving a compiled program is harder; moving a currently executing program (migrating) between x and y is the hardest. One approach to move compiled programs between architectures is based on architectureindependent intermediate representations for compiled programs, e.g. Java bytecodes [10] or slim binaries [6]. However, it does not seem likely that in the near future all compilers will use a single intermediate language. (The language community has dreamed about the UNCOL (unitary compiler language) approach for nearly 40 years [15]. The UNCOL idea is to have a single language-independent code generation interface and thus architectureindependent compilers.) So the mentioned approach is restricted to certain programming languages and does not (yet?) give us general mobility for compiled programs. To solve the inter-architecture mobility problem for portable agents and for load distribution, we must be able to migrate a currently executing program with all its data, including temporary stack and heap data. A first approach to this problem is the ubiquitous interpreter. For example, the Aglets system [9] uses a JVM; Ara [11] uses Tcl. A second approach [14] is based on generating special (native) code that permits migration at certain synchronization points (“bus stops”) (Per architecture, a native-code version was generated when the source was compiled.). Similar to the techniques mentioned in the previous paragraph, both solutions suffer from the fact that they are specific to a single language.
世界上有1亿多台电脑。即使是较小的组织也很容易拥有100多台机器;在大学或银行等中等规模的机构中,通常会有1万多名员工。当前的网络技术是如此无处不在,如此强大,以至于我们越来越多地将这些计算机群作为一个“技术存在”来使用,而不是将它们视为单个机器。因此,我们尝试支持分布式应用程序,不仅通过移动数据,还通过远程执行下载/上传的代码(applet, servlet),甚至动态迁移活动对象,即当前正在执行的程序(代理,负载分发)。不幸的是,并非所有这1亿多台机器都彼此兼容。目前,在工作站/PC/NC领域,我们看到大约7种不同的硬件架构:x86、PowerPC、Alpha、Mips、Sparc、PA-Risc、68K。有些架构可能会随着时间的推移而消失,例如68K;然而,新的将会出现(可能是英特尔的IA-64)。未来十年,异质性可能仍将是一个问题。或多或少兼容的OS api和工具,特别是编译器,有助于将源程序从x机移动到y机。移动一个编译过的程序比较困难;在x和y之间移动当前正在执行的程序(迁移)是最难的。在体系结构之间移动已编译程序的一种方法是基于已编译程序的与体系结构无关的中间表示,例如Java字节码[10]或精简二进制文件[6]。然而,在不久的将来,所有编译器似乎不太可能使用单一的中间语言。近40年来,语言社区一直梦想着UNCOL(统一编译语言)方法[15]。UNCOL的想法是有一个独立于语言的代码生成接口,从而独立于架构的编译器。因此,上述方法仅限于某些编程语言,并不能(还没有?)为我们提供编译程序的通用移动性。为了解决可移植代理和负载分配的架构间移动性问题,我们必须能够迁移当前正在执行的程序及其所有数据,包括临时堆栈和堆数据。解决这个问题的第一种方法是无处不在的解释器。例如,Aglets系统[9]使用JVM;Ara[11]使用Tcl。第二种方法[14]是基于生成特殊的(本地)代码,允许在某些同步点(“公交车站”)进行迁移(每个架构,在编译源代码时生成本地代码版本)。与前一段提到的技术类似,这两种解决方案都有一个缺点,即它们特定于一种语言。
{"title":"An unconventional proposal: using the x86 architecture as the ubiquitous virtual standard architecture","authors":"J. Liedtke, N. Islam, T. Jaeger, Vsevolod Panteleenko, Yoonho Park","doi":"10.1145/319195.319231","DOIUrl":"https://doi.org/10.1145/319195.319231","url":null,"abstract":"There are 100+ million computers in the world. Even smaller organizations have easily 100+ machines; 10,000+ are typical for medium-sized organizations like a university or a bank. Current network technology is so ubiqitious and so powerful that we increasingly use these crowds of computers as one “technical being” instead of thinking of them as single machines. Consequently, we try to support distributed applications, not only by moving data around but also by remote execution of downloaded/uploaded code (applets, servlets) and even dynamically migrating active objects, i.e., curently executing programs (agents, load distribution). Unfortunately, not all of these 100+ million machines are compatible with each other. Currently, in the workstation/PC/NC segment, we see about 7 different hardware architectures: x86, PowerPC, Alpha, Mips, Sparc, PA-Risc, 68K. Some architectures are likely to disappear over time, e.g. 68K; however, new ones will show up (perhaps Intel’s IA-64). Heterogeneity will probably remain a problem over the next decade. More or less compatible OS APIs and tools, in particular compilers, help to move a source program from an x-machine to a y-machine. Moving a compiled program is harder; moving a currently executing program (migrating) between x and y is the hardest. One approach to move compiled programs between architectures is based on architectureindependent intermediate representations for compiled programs, e.g. Java bytecodes [10] or slim binaries [6]. However, it does not seem likely that in the near future all compilers will use a single intermediate language. (The language community has dreamed about the UNCOL (unitary compiler language) approach for nearly 40 years [15]. The UNCOL idea is to have a single language-independent code generation interface and thus architectureindependent compilers.) So the mentioned approach is restricted to certain programming languages and does not (yet?) give us general mobility for compiled programs. To solve the inter-architecture mobility problem for portable agents and for load distribution, we must be able to migrate a currently executing program with all its data, including temporary stack and heap data. A first approach to this problem is the ubiquitous interpreter. For example, the Aglets system [9] uses a JVM; Ara [11] uses Tcl. A second approach [14] is based on generating special (native) code that permits migration at certain synchronization points (“bus stops”) (Per architecture, a native-code version was generated when the source was compiled.). Similar to the techniques mentioned in the previous paragraph, both solutions suffer from the fact that they are specific to a single language.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"265 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134209820","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}
引用次数: 4
Composing distributed applications through generative communication 通过生成式通信组合分布式应用程序
T. Holvoet, Y. Berbers
Component-oriented approaches to software development aim to support cost-effectiveness in building applications. Components are defined as reusable entities. In this paper, we present CO3PS, a software development method for building agent-based software. Agents coordinate through generative communication. We employ generative communication to define reusable CO3PS components. Components are entities that export object spaces, i.e. places from which they can retrieve data objects and in which they can put data objects. Components can be reused by assembling them with other components through defining a mapping of their respective object spaces. The high degree of reusability that is achieved is due to the anonymous and uncoupled nature of generative communication. 1 I n t r o d u c t i o n Various terms referring to the words component or composition have been introduced recently. The marketing value of such terms is undoubtedly one important reason, as these words have a connotat ion of "support for distribution" and "reuse" and hence for cost-effective software development. Two categories of what can generally be called component-related approaches can be distinguished. A first category is concerned with s u p p o r t i n g c o m m u n i c a t i o n between software entities that may be distributed over several hosts in a network environment. As object technology has evolved rapidly over the past decade, recent proposals in this category focus on objectto-object communication. Components in this category are hence objects, while the term composition refers to the fact that distributed objects can communicate easily, i.e. with a syntax and semantics that resemble object communication in a non-distributed environment. This is the basic starting point for systems like CORBA [Obj93], the ISO reference model of open distributed processing (RMODP) [ISO95] and Java's RMI (Remote Method Invocation) lAG96]. These approaches heavily rely on remote references. Such systems are vulnerable for dangling references and require non-trivial naming schemes: A second category of component-related approaches concerns techniques for developing reusable software, mostly referred to as "component-oriented software development". The underlying philosophy is the following. System requirements typically change frequently. Class hierarchies are the soul reuse mechanism supported by object-oriented languages, but it is obvious that this does not suffice for all reuse purposes. Components are defined as generic "entities that are designed to be composed and reused" [ND95]. Component-oriented software development methods need to define components as well as composition techniques. Composition allows to combine existing components in order to constitute more complex components or applications. Only few approaches are thoroughly discussed in the current literature. E.g. components in Darwin [MK96] (as well as in related approaches that are called "Architectural Description L
面向组件的软件开发方法旨在支持构建应用程序的成本效益。组件被定义为可重用的实体。本文提出了一种基于agent的软件开发方法——CO3PS。代理通过生成式通信进行协调。我们使用生成式通信来定义可重用的CO3PS组件。组件是导出对象空间的实体,即它们可以从中检索数据对象并将数据对象放入其中的位置。通过定义各自对象空间的映射,可以将组件与其他组件组装在一起,从而重用组件。由于生成式通信的匿名性和解耦性,实现了高度的可重用性。最近引入了许多与成分或组成有关的术语。这些术语的市场价值无疑是一个重要的原因,因为这些词具有“支持分发”和“重用”的内涵,因此具有成本效益的软件开发。可以将通常称为组件相关方法的两类方法区分开来。第一类涉及的是在网络环境中可能分布在多台主机上的软件实体之间的数据传输。随着对象技术在过去十年中迅速发展,这一类别中最近的建议集中在对象与对象之间的通信。因此,此类别中的组件是对象,而术语组合指的是分布式对象可以轻松通信的事实,即使用类似于非分布式环境中的对象通信的语法和语义。这是像CORBA [Obj93]、开放分布式处理(RMODP)的ISO参考模型[ISO95]和Java的RMI(远程方法调用)lAG96]这样的系统的基本出发点。这些方法严重依赖于远程引用。这样的系统容易受到悬空引用的攻击,并且需要非平凡的命名方案:第二类与组件相关的方法涉及开发可重用软件的技术,通常称为“面向组件的软件开发”。其基本理念如下。系统需求通常会频繁变化。类层次结构是面向对象语言支持的核心重用机制,但很明显,这并不足以满足所有重用目的。组件被定义为通用的“设计用于组合和重用的实体”[ND95]。面向组件的软件开发方法需要定义组件以及组合技术。组合允许组合现有组件,以构成更复杂的组件或应用程序。在目前的文献中,只有少数几种方法得到了深入的讨论。例如,Darwin [MK96]中的组件(以及被称为“架构描述语言”的相关方法)是识别输入和输出端口的实体。因此,组件的组合是组件组合实体的输入和输出端口之间绑定的结果。在本文中,我们提出了组件和组合机制的定义,作为面向组件的软件开发方法(称为C03PS)的一部分。C03PS基于通用实时通信技术。生成式通信允许实现组件的高可重用性和系统开放性(系统可以允许软件片段轻松成功地与新的先验未知实体合作)。本文组织如下。在第2节中,我们描述了生成式沟通。指出了该协调模型的主要优点,并对其进行了说明。第3节介绍了C03PS的原理,包括代理的定义、被动对象、代理协调和配置。然后,我们在第4节中定义C03PS中的组件和组合。我们区分静态组合和动态组合,前者与所谓的体系结构描述语言(adl)共享其目标,后者表示用于组装软件实体的运行时机制。我们通过一个主/辅助设置的示例来说明组件。最后,第五节是结束语。生成式通信(Generative communication)是一种在协调领域得到广泛研究的通信范式[Cia90, MC94, GC92]。在生成式通信中,通信实体不直接交换消息,而是通过共享的数据空间进行交换。并发实体可以在数据空间中删除(或“生成”)项,其他实体可以使用关联匹配从数据空间检索项。这种沟通方式本质上使沟通过程分离。数据项的发送者不直接与另一个发送者联系。R方,并且阅读器只在实际需要数据时才与共享空间联系。 读者甚至不必在产生时就存在。这导致了生成通信的另一个主要优势:活动实体能够进行通信,尽管它们彼此是匿名的。这种非耦合和匿名通信风格直接有助于并行和分布式应用程序的设计:非耦合通信允许从合作实体的细节(如标识和接口)中抽象出来。相反,重点是每个实体需要和产生的协调数据。由于这些优点,基于生成通信的协调模型优于消息传递或基于交易的方案,因为它们都依赖于关于接收者或服务器身份的知识。PfinOob Printer PrinUob Creator Printer Creator <共享数据空间> ~图1:使用生成通信的生产者/消费者设置。图1展示了使用生成式通信的生产者/消费者设置的情况。许多生产者实体(称为PrintJobCreators)重复生成需要消费(打印)的项目(打印作业)。消费者实体(打印机)反复地从数据空间检索项目并使用这些项目。任何一个实体的行为都独立于另一个实体的名称或类型。例如,如果呈现另一个Printer,则可以无缝地将其添加到系统中,而无需更改现有实体。另外,如果现有的打印机被删除,这不会影响printjobcreator的行为,因为它们没有对它的直接或间接引用。Linda [GC92]是一种生成式协调语言。它支持一组最小的语言原语,用于从数据空间存储和检索数据项。C03pS [Ho197]是一种基于生成式通信的面向对象方法和用于开发分布式应用程序的执行环境。分布式应用程序被建模为一组相互协作的活动对象(称为代理)。代理通过创建和操作被动对象来执行计算。被动对象不会在代理之间共享,并且“没有自主行为”。CO - 3pS协调模型可以简单地解释如下。每个代理都附加到一个或多个对象空间。对象空间是可以在代理之间共享的特定对象。代理通过对象空间交换被动对象进行通信。它们使用在对象空间上定义的接口操作来实现这一点。C03P5主要从三个方面对Linda进行了增强:对象匹配:与Linda不同,Linda是根据记录字段的内容对共享数据空间中的项进行匹配,而C03ps中的对象匹配是根据对象类型和相应类型接口定义的谓词进行匹配;实体(代理)可以从对象空间中放置和检索的项目是(被动)对象;•对象空间上的非阻塞多集操作:对象空间上定义的操作(主要是对象的插入和检索)都带有超时值注释;这对于处理系统故障是必要的,这在开放的分布式系统中是不可能的;此外,对操作进行了扩展,使得可以在对象空间中自动插入或从对象空间中检索多组匹配对象。•多对象空间:只有一个对象空间是不可行的,主要有两个原因:可扩展性(对于一个庞大的代理集,从实用的角度来看,一个全局共享黑板是站不下去的)和通信结构(使用一个黑板作为多组密切相关的代理的通信媒介会带来不必要的复杂性);由于对象空间是对象之间交流的论坛,多个对象空间可以用于单独的目标,即密切相关的对象应该使用相同的对象空间(见图2);由多个代理和对象空间组成的设置称为C03ps配置。
{"title":"Composing distributed applications through generative communication","authors":"T. Holvoet, Y. Berbers","doi":"10.1145/319195.319228","DOIUrl":"https://doi.org/10.1145/319195.319228","url":null,"abstract":"Component-oriented approaches to software development aim to support cost-effectiveness in building applications. Components are defined as reusable entities. In this paper, we present CO3PS, a software development method for building agent-based software. Agents coordinate through generative communication. We employ generative communication to define reusable CO3PS components. Components are entities that export object spaces, i.e. places from which they can retrieve data objects and in which they can put data objects. Components can be reused by assembling them with other components through defining a mapping of their respective object spaces. The high degree of reusability that is achieved is due to the anonymous and uncoupled nature of generative communication. 1 I n t r o d u c t i o n Various terms referring to the words component or composition have been introduced recently. The marketing value of such terms is undoubtedly one important reason, as these words have a connotat ion of \"support for distribution\" and \"reuse\" and hence for cost-effective software development. Two categories of what can generally be called component-related approaches can be distinguished. A first category is concerned with s u p p o r t i n g c o m m u n i c a t i o n between software entities that may be distributed over several hosts in a network environment. As object technology has evolved rapidly over the past decade, recent proposals in this category focus on objectto-object communication. Components in this category are hence objects, while the term composition refers to the fact that distributed objects can communicate easily, i.e. with a syntax and semantics that resemble object communication in a non-distributed environment. This is the basic starting point for systems like CORBA [Obj93], the ISO reference model of open distributed processing (RMODP) [ISO95] and Java's RMI (Remote Method Invocation) lAG96]. These approaches heavily rely on remote references. Such systems are vulnerable for dangling references and require non-trivial naming schemes: A second category of component-related approaches concerns techniques for developing reusable software, mostly referred to as \"component-oriented software development\". The underlying philosophy is the following. System requirements typically change frequently. Class hierarchies are the soul reuse mechanism supported by object-oriented languages, but it is obvious that this does not suffice for all reuse purposes. Components are defined as generic \"entities that are designed to be composed and reused\" [ND95]. Component-oriented software development methods need to define components as well as composition techniques. Composition allows to combine existing components in order to constitute more complex components or applications. Only few approaches are thoroughly discussed in the current literature. E.g. components in Darwin [MK96] (as well as in related approaches that are called \"Architectural Description L","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"55 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133875725","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}
引用次数: 1
A dynamically configurable, multi-language execution platform 一个动态配置的多语言执行平台
B. Folliot, Ian Piumarta, F. Riccardi
Writing efficient applications is difficult for two reasons. A given problem domain often demands a particular programming language and execution environment. Together these provide a "paradigm" in which the programmer can concentrate on the problem rather than the implementation. Secondly, most operating systems have a rigid architecture. Adapting them to the needs of modern applications, such as cooperative work, embedded systems, and multimedia, requires ad-hoc solutions, increasing development costs and reducing both reliability and efficiency. We present a multi-language, hardware independent, execution platform, that is dynamically extensible and adaptable to each application's needs. An application is associated with a virtual machine decription, that allows to translate the application into a language neutral internal representation. The novel virtual machine architecture described in this paper allows programs written in an arbitrary bytecoded language to be executed safely and efficiently. Its single execution model provides interoperability, and effectively promotes reuse of existing software modules. 1 I n t r o d u c t i o n Applications are becoming larger, clumsier, and buggier. Notable examples are Netscape and Microsoft Office, which contain their own implementat ions of typical operat ing-system services: distribution, QoS, security, and so on. Such services belong in the operat ing system. "Also with the LIP6, Paris.
编写高效的应用程序很困难,原因有两个。给定的问题域通常需要特定的编程语言和执行环境。它们一起提供了一种“范式”,在这种范式中,程序员可以将注意力集中在问题而不是实现上。其次,大多数操作系统都有严格的体系结构。使它们适应现代应用程序的需要,例如协同工作、嵌入式系统和多媒体,需要特别的解决方案,这增加了开发成本,降低了可靠性和效率。我们提出了一个多语言、独立于硬件的执行平台,它可以动态扩展并适应每个应用程序的需求。应用程序与虚拟机描述相关联,虚拟机描述允许将应用程序转换为与语言无关的内部表示。本文描述的新型虚拟机体系结构允许用任意字节码语言编写的程序安全高效地执行。它的单一执行模型提供了互操作性,并有效地促进了现有软件模块的重用。应用程序正变得越来越大、越来越笨拙、越来越多bug。值得注意的例子是Netscape和Microsoft Office,它们包含它们自己的典型操作系统服务的实现:分发、QoS、安全性等等。这些服务属于操作系统。“还有LIP6,巴黎。
{"title":"A dynamically configurable, multi-language execution platform","authors":"B. Folliot, Ian Piumarta, F. Riccardi","doi":"10.1145/319195.319222","DOIUrl":"https://doi.org/10.1145/319195.319222","url":null,"abstract":"Writing efficient applications is difficult for two reasons. A given problem domain often demands a particular programming language and execution environment. Together these provide a \"paradigm\" in which the programmer can concentrate on the problem rather than the implementation. Secondly, most operating systems have a rigid architecture. Adapting them to the needs of modern applications, such as cooperative work, embedded systems, and multimedia, requires ad-hoc solutions, increasing development costs and reducing both reliability and efficiency. We present a multi-language, hardware independent, execution platform, that is dynamically extensible and adaptable to each application's needs. An application is associated with a virtual machine decription, that allows to translate the application into a language neutral internal representation. The novel virtual machine architecture described in this paper allows programs written in an arbitrary bytecoded language to be executed safely and efficiently. Its single execution model provides interoperability, and effectively promotes reuse of existing software modules. 1 I n t r o d u c t i o n Applications are becoming larger, clumsier, and buggier. Notable examples are Netscape and Microsoft Office, which contain their own implementat ions of typical operat ing-system services: distribution, QoS, security, and so on. Such services belong in the operat ing system. \"Also with the LIP6, Paris.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"30 24 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125681428","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}
引用次数: 27
High-level constructs in the READY event notification system READY事件通知系统中的高级构造
R. Gruber, B. Krishnamurthy, E. Panagos
There is growing interest in the use of general-purpose even t notification services as “middleware” for gluing together independently-developed distributed applications. This approach was first discussed by Oki et.al.in 1993 [14], where an early version of the (now) TIBCO Information Bus [20] was described. Since then, many other commercial products have been developed that accept events from event suppliers (publishers) and deliver them to event consumers (subscribers). Publish-subscribe mechanisms have also been retro-fitted to existing middleware products, including pe rsistent message queue products and TP monitors. There is also standards work in this area, including the CORBA Event Service [15] and more recently the CORBA Notification Service [16], a feature-enriched version of the Event Service. Despite all of these products and the standardization efforts, and despite the fact that event-driven computation i s not a new idea, there has been relatively little work on highlevel constructs for event services. The most basic event service has four kinds of entities (supplier, consumer, eve nt, event service) and three basic functions (supply an event to the service, register interest in a kind of event, unregiste r nterest). Existing commercial event services do not provide event models that are much richer than this most basic service. For example, there are typically no constructs that en able operations over multiple entities. This paper describes high-level constructs (operating ove r multiple events, multiple consumers, etc.) provided by READY, an event notification system being developed at AT&T Labs [7]. Entities in the READY model include: consumer specifications that match over both single and compound event patterns; communication sessions that manage quality of service (QoS) and ordering properties for event delivery; grouping constructs for both specifications and s essions; event domains and boundary routers that bound the scope of event distribution and control the mapping of event s across domains. The result is a more powerful and flexible event service. The remainder of the paper is organized as follows. Section 2 offers an overview of related systems. In Section 3, we focus on client interactions with READY. Section 4 introduces READY event types. Section 5 describes specifications, which control the actions performed by READY servers due to supplied events. Section 6 describes constructs for managing boundaries between event domains. Finally, Section 7 discusses the current status of READY as well as some general issues raised by our work. We are in the process of completing an initial implementation of READY. At the same time we are exploring the merits of READY's high-level constructs by using READY as a core component of a unified messaging system [2]. Some of the examples presented here are taken from that domain.
人们对使用通用的甚至是通知服务作为“中间件”来粘合独立开发的分布式应用程序越来越感兴趣。Oki等人在1993年[14]中首次讨论了这种方法,其中描述了(现在的)TIBCO信息总线[20]的早期版本。从那时起,已经开发了许多其他商业产品,它们接受来自事件提供者(发布者)的事件并将其交付给事件消费者(订阅者)。发布-订阅机制也被重新安装到现有的中间件产品中,包括持久化消息队列产品和TP监视器。在这个领域也有一些标准工作,包括CORBA事件服务[15]和最近的CORBA通知服务[16],这是事件服务的一个功能丰富的版本。尽管有了所有这些产品和标准化工作,尽管事件驱动的计算并不是一个新概念,但在事件服务的高级构造方面的工作相对较少。最基本的事件服务有四种实体(提供者、消费者、用户、事件服务)和三个基本功能(向服务提供事件、注册对某种事件的兴趣、注销对某种兴趣的兴趣)。现有的商业事件服务没有提供比这个最基本的服务丰富得多的事件模型。例如,通常没有允许对多个实体进行操作的构造。本文描述了由READY提供的高级结构(操作多个事件、多个消费者等),READY是AT&T实验室[7]开发的一个事件通知系统。READY模型中的实体包括:匹配单一事件模式和复合事件模式的消费者规范;管理服务质量(QoS)和事件交付排序属性的通信会话;规范和会话的分组构造;事件域和边界路由器,它们约束了事件分布的范围,并控制了事件跨域的映射。结果是一个更强大、更灵活的事件服务。本文的其余部分组织如下。第2节提供了相关系统的概述。在第3节中,我们将重点关注客户端与READY的交互。第4节介绍READY事件类型。第5节描述规范,规范控制READY服务器根据提供的事件执行的操作。第6节描述了管理事件域之间边界的构造。最后,第7节讨论了READY的现状以及我们工作中提出的一些一般性问题。我们正在完成READY的初步实施。同时,我们通过使用READY作为统一消息传递系统[2]的核心组件来探索READY的高级构造的优点。这里提供的一些示例就来自该领域。
{"title":"High-level constructs in the READY event notification system","authors":"R. Gruber, B. Krishnamurthy, E. Panagos","doi":"10.1145/319195.319225","DOIUrl":"https://doi.org/10.1145/319195.319225","url":null,"abstract":"There is growing interest in the use of general-purpose even t notification services as “middleware” for gluing together independently-developed distributed applications. This approach was first discussed by Oki et.al.in 1993 [14], where an early version of the (now) TIBCO Information Bus [20] was described. Since then, many other commercial products have been developed that accept events from event suppliers (publishers) and deliver them to event consumers (subscribers). Publish-subscribe mechanisms have also been retro-fitted to existing middleware products, including pe rsistent message queue products and TP monitors. There is also standards work in this area, including the CORBA Event Service [15] and more recently the CORBA Notification Service [16], a feature-enriched version of the Event Service. Despite all of these products and the standardization efforts, and despite the fact that event-driven computation i s not a new idea, there has been relatively little work on highlevel constructs for event services. The most basic event service has four kinds of entities (supplier, consumer, eve nt, event service) and three basic functions (supply an event to the service, register interest in a kind of event, unregiste r nterest). Existing commercial event services do not provide event models that are much richer than this most basic service. For example, there are typically no constructs that en able operations over multiple entities. This paper describes high-level constructs (operating ove r multiple events, multiple consumers, etc.) provided by READY, an event notification system being developed at AT&T Labs [7]. Entities in the READY model include: consumer specifications that match over both single and compound event patterns; communication sessions that manage quality of service (QoS) and ordering properties for event delivery; grouping constructs for both specifications and s essions; event domains and boundary routers that bound the scope of event distribution and control the mapping of event s across domains. The result is a more powerful and flexible event service. The remainder of the paper is organized as follows. Section 2 offers an overview of related systems. In Section 3, we focus on client interactions with READY. Section 4 introduces READY event types. Section 5 describes specifications, which control the actions performed by READY servers due to supplied events. Section 6 describes constructs for managing boundaries between event domains. Finally, Section 7 discusses the current status of READY as well as some general issues raised by our work. We are in the process of completing an initial implementation of READY. At the same time we are exploring the merits of READY's high-level constructs by using READY as a core component of a unified messaging system [2]. Some of the examples presented here are taken from that domain.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"50 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116497883","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}
引用次数: 31
A transactional workflow based distributed application composition and execution environment 基于分布式应用程序组合和执行环境的事务性工作流
S. Shrivastava, S. Wheater
We have designed a fault-tolerant application composition and execution environment for distributed applications whose executions could span arbitrarily large durations. A preliminary version of the system has been implemented (both in C++ and Java) using distributed object and CORBA middleware technologies. In effect, we have implemented a transactional workfIow system that enables sets of inter-related tasks to be carried out and supervised in a dependable manner. Our system has been designed to meet the requirements of interoperabiIity, scalability, flexible task composition, dependability, dynamic reconfiguration and auditability.
我们为分布式应用程序设计了一个容错的应用程序组合和执行环境,这些应用程序的执行可以跨越任意长的持续时间。系统的初步版本已经使用分布式对象和CORBA中间件技术实现(包括c++和Java)。实际上,我们已经实现了一个事务性工作流系统,它能够以一种可靠的方式执行和监督一组相互关联的任务。我们的系统被设计为满足互操作性、可扩展性、灵活的任务组合、可靠性、动态重构和可审计性的要求。
{"title":"A transactional workflow based distributed application composition and execution environment","authors":"S. Shrivastava, S. Wheater","doi":"10.1145/319195.319207","DOIUrl":"https://doi.org/10.1145/319195.319207","url":null,"abstract":"We have designed a fault-tolerant application composition and execution environment for distributed applications whose executions could span arbitrarily large durations. A preliminary version of the system has been implemented (both in C++ and Java) using distributed object and CORBA middleware technologies. In effect, we have implemented a transactional workfIow system that enables sets of inter-related tasks to be carried out and supervised in a dependable manner. Our system has been designed to meet the requirements of interoperabiIity, scalability, flexible task composition, dependability, dynamic reconfiguration and auditability.","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"12 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133212799","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}
引用次数: 6
Controllled flexibility in system design 系统设计的可控灵活性
Allen Brady Montz, L. Peterson
1 Challenge Historically, applications have been distributed in order to access more resources than a lone machine could supply, such as CPU power, disks, or the computers themselves (for fault tolerance). We are increasingly seeing applications which are distributed because they are meant to be used by multiple people, and multiple people generally have multiple machines. These applications are distributed by definition. A good example of this is a distributed multimedia application such as multicast video, email, or the World Wide Web. It is well understood how the interaction of software with people.makes the software more complicated; we are entering the realm of software which exists purely to glue people together. The popular focus on multimedia is on video and audio applications. While these certainly challenge current computers and profit companies, they are merely a shadow of the possibilities. This potential is not the ability of a computer to display one medium, but the ability to gracefully and efficiently handle a wide variety of data flows with differing requirements, many of which did not exist when that computer or its operating system was designed. The variation of types and topology of such flows is limited only by the creativity and whims of the human users. What sort of information flows will computers serve to us? What kinds of hardware and software will these machines need and have? How will these systems interact? We do not know. Nobody does. And we have to design our software to face this environment. This is the challenge of multimedia, and it parallels the general challenges facing these diffusely distributed applications in the near future. The important issue is not that software needs to be flexible and easily reconfigurable. We need to be able to control, predict, and modify the behavior of our software, and this requires that we have a firm understanding of and control over how software is configurable. We should not strive to make endlessly extendable systems-rather we should strive to make systems which are exactly as extendable as required. It is in this context that we are designing the Scout[6] system. Software designers have always been challenged to keep pace with the increasing demands placed on computers. Software, once written, is released into a dynamic world. Therefore, a fundamental property of successful software is that it can be changed. Most of the attention to this has been placed on static changes …
从历史上看,应用程序的分布是为了访问比单个机器所能提供的更多的资源,例如CPU电源、磁盘或计算机本身(用于容错)。我们越来越多地看到分布式应用程序,因为它们是为多人使用而设计的,而多人通常有多台机器。这些应用程序是按定义分发的。分布式多媒体应用程序就是一个很好的例子,例如多播视频、电子邮件或万维网。众所周知,软件是如何与人互动的。使软件更加复杂;我们正在进入一个纯粹为了把人们粘合在一起而存在的软件领域。多媒体的流行焦点是视频和音频应用。虽然这些技术无疑会挑战当前的计算机并使公司盈利,但它们只是各种可能性的一个缩影。这种潜力不是计算机显示一种媒体的能力,而是优雅而有效地处理具有不同需求的各种数据流的能力,其中许多数据流在设计计算机或其操作系统时并不存在。这种流的类型和拓扑结构的变化只受到人类用户的创造力和奇思妙想的限制。计算机将为我们提供什么样的信息流?这些机器需要和拥有什么样的硬件和软件?这些系统将如何相互作用?我们不知道。没有人。我们必须设计我们的软件来面对这种环境。这就是多媒体所面临的挑战,它与这些分散分布的应用程序在不久的将来所面临的一般挑战相似。重要的问题不是软件需要灵活和易于重新配置。我们需要能够控制、预测和修改软件的行为,这就要求我们对软件是如何配置的有一个坚定的理解和控制。我们不应该努力使系统具有无限的可扩展性——相反,我们应该努力使系统完全按照要求具有可扩展性。正是在这种背景下,我们正在设计Scout[6]系统。软件设计师一直面临着跟上对计算机日益增长的需求的挑战。软件一旦被编写出来,就会被发布到一个动态的世界。因此,成功软件的一个基本属性是它可以被改变。对此的大部分关注都放在了静态变化上……
{"title":"Controllled flexibility in system design","authors":"Allen Brady Montz, L. Peterson","doi":"10.1145/319195.319233","DOIUrl":"https://doi.org/10.1145/319195.319233","url":null,"abstract":"1 Challenge Historically, applications have been distributed in order to access more resources than a lone machine could supply, such as CPU power, disks, or the computers themselves (for fault tolerance). We are increasingly seeing applications which are distributed because they are meant to be used by multiple people, and multiple people generally have multiple machines. These applications are distributed by definition. A good example of this is a distributed multimedia application such as multicast video, email, or the World Wide Web. It is well understood how the interaction of software with people.makes the software more complicated; we are entering the realm of software which exists purely to glue people together. The popular focus on multimedia is on video and audio applications. While these certainly challenge current computers and profit companies, they are merely a shadow of the possibilities. This potential is not the ability of a computer to display one medium, but the ability to gracefully and efficiently handle a wide variety of data flows with differing requirements, many of which did not exist when that computer or its operating system was designed. The variation of types and topology of such flows is limited only by the creativity and whims of the human users. What sort of information flows will computers serve to us? What kinds of hardware and software will these machines need and have? How will these systems interact? We do not know. Nobody does. And we have to design our software to face this environment. This is the challenge of multimedia, and it parallels the general challenges facing these diffusely distributed applications in the near future. The important issue is not that software needs to be flexible and easily reconfigurable. We need to be able to control, predict, and modify the behavior of our software, and this requires that we have a firm understanding of and control over how software is configurable. We should not strive to make endlessly extendable systems-rather we should strive to make systems which are exactly as extendable as required. It is in this context that we are designing the Scout[6] system. Software designers have always been challenged to keep pace with the increasing demands placed on computers. Software, once written, is released into a dynamic world. Therefore, a fundamental property of successful software is that it can be changed. Most of the attention to this has been placed on static changes …","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"158 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133650931","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}
引用次数: 0
The PerDiS FS: a transactional file system for a distributed persistent store PerDiS FS:用于分布式持久存储的事务性文件系统
J. Garcia, P. Ferreira, P. Guedes
Companies cooperating in the framework of a virtual enterprise have increasing demands for systems on which to base applications for their particular environment: groups of workers on distant independent LANs. In this paper, we present a transactional file system for a distributed persistent store designed to support cooperative engineering applications. The system integrates techniques, such as optimistic consistency protocols and versioning, tailored to provide efficient sharing of data, between users (at LAN scale) and between companies (at WAN scale).
在虚拟企业框架中合作的公司对基于其特定环境的应用程序的系统的需求越来越大:远程独立lan上的工作人员组。在本文中,我们提出了一个用于分布式持久存储的事务性文件系统,旨在支持协同工程应用。该系统集成了乐观一致性协议和版本控制等技术,为用户之间(局域网规模)和公司之间(广域网规模)提供有效的数据共享。
{"title":"The PerDiS FS: a transactional file system for a distributed persistent store","authors":"J. Garcia, P. Ferreira, P. Guedes","doi":"10.1145/319195.319224","DOIUrl":"https://doi.org/10.1145/319195.319224","url":null,"abstract":"Companies cooperating in the framework of a virtual enterprise have increasing demands for systems on which to base applications for their particular environment: groups of workers on distant independent LANs. In this paper, we present a transactional file system for a distributed persistent store designed to support cooperative engineering applications. The system integrates techniques, such as optimistic consistency protocols and versioning, tailored to provide efficient sharing of data, between users (at LAN scale) and between companies (at WAN scale).","PeriodicalId":335784,"journal":{"name":"Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"1998-09-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129745693","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}
引用次数: 10
期刊
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
全部 Acc. Chem. Res. ACS Applied Bio Materials ACS Appl. Electron. Mater. ACS Appl. Energy Mater. ACS Appl. Mater. Interfaces ACS Appl. Nano Mater. ACS Appl. Polym. Mater. ACS BIOMATER-SCI ENG ACS Catal. ACS Cent. Sci. ACS Chem. Biol. ACS Chemical Health & Safety ACS Chem. Neurosci. ACS Comb. Sci. ACS Earth Space Chem. ACS Energy Lett. ACS Infect. Dis. ACS Macro Lett. ACS Mater. Lett. ACS Med. Chem. Lett. ACS Nano ACS Omega ACS Photonics ACS Sens. ACS Sustainable Chem. Eng. ACS Synth. Biol. Anal. Chem. BIOCHEMISTRY-US Bioconjugate Chem. BIOMACROMOLECULES Chem. Res. Toxicol. Chem. Rev. Chem. Mater. CRYST GROWTH DES ENERG FUEL Environ. Sci. Technol. Environ. Sci. Technol. Lett. Eur. J. Inorg. Chem. IND ENG CHEM RES Inorg. Chem. J. Agric. Food. Chem. J. Chem. Eng. Data J. Chem. Educ. J. Chem. Inf. Model. J. Chem. Theory Comput. J. Med. Chem. J. Nat. Prod. J PROTEOME RES J. Am. Chem. Soc. LANGMUIR MACROMOLECULES Mol. Pharmaceutics Nano Lett. Org. Lett. ORG PROCESS RES DEV ORGANOMETALLICS J. Org. Chem. J. Phys. Chem. J. Phys. Chem. A J. Phys. Chem. B J. Phys. Chem. C J. Phys. Chem. Lett. Analyst Anal. Methods Biomater. Sci. Catal. Sci. Technol. Chem. Commun. Chem. Soc. Rev. CHEM EDUC RES PRACT CRYSTENGCOMM Dalton Trans. Energy Environ. Sci. ENVIRON SCI-NANO ENVIRON SCI-PROC IMP ENVIRON SCI-WAT RES Faraday Discuss. Food Funct. Green Chem. Inorg. Chem. Front. Integr. Biol. J. Anal. At. Spectrom. J. Mater. Chem. A J. Mater. Chem. B J. Mater. Chem. C Lab Chip Mater. Chem. Front. Mater. Horiz. MEDCHEMCOMM Metallomics Mol. Biosyst. Mol. Syst. Des. Eng. Nanoscale Nanoscale Horiz. Nat. Prod. Rep. New J. Chem. Org. Biomol. Chem. Org. Chem. Front. PHOTOCH PHOTOBIO SCI PCCP Polym. Chem.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1