自动指令声音捕捉:走向更智能的会议室

J. Flanagan
{"title":"自动指令声音捕捉:走向更智能的会议室","authors":"J. Flanagan","doi":"10.1109/MIS.1999.757625","DOIUrl":null,"url":null,"abstract":"this kind of activity. The two most important have proved to be logging and general object-state access. Logging. I can't argue strongly enough for our object-network OS to support a ubiquitous, low-impact logging facility. It's equally important that object implementations are fully instrumented with log output and that such instrumentation never be removed. Once a system is having a problem, it's too late to think about adding logging to the code. We have had many complicated and hard-to-reproduce problems what I'll call nth-order feedback classes of problems such as oscillation. Without the ability to snoop around and watch log activity, problems would be nearly impossible to diagnose. Using our project's implementation as an example, let me describe what I think are the key aspects of a suitable logging facility. First, it is very useful to classify log-record output hierarchically. Typically , there would be classes and subclasses for maintenance, error, warning, and trace kinds of output. From the programmer's perspective, the logging primitives should be right there as part of their programming model and runtime environment. We keep a store-and-forward log facility object on each machine, whose job is to very quickly buffer local log activity into a disk-based FIFO queue, then forward that queue's content asynchronously to another facility (typically a central store that can be monitored on the fly). In addition , we can turn on and off different levels of log output at the object-instance level. Typically, our system runs objects with all trace output turned off, but if we're tracking down a problem we can reach in while an object is instantiated and modify its output log filter. This approach has proven essential in our system. Without such logging facilities, a system even an order of magnitude smaller would be impossible to operate. General object-state access. The ability to probe the general state of an object instance while it's instantiated is also very useful. If we think about the general nature of the objects within our object-network OS, we see a high degree of common behavior. For example, any object can publish and subscribe to properties, listen for events, or reference and be referenced by other objects. In our implementation, this list of common traits is even longer. It would be very nice to be able to ask any object in the system to dump its current state. As with logging, this kind of facility is …","PeriodicalId":393423,"journal":{"name":"IEEE Intelligent Systems and their Applications","volume":"22 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1999-03-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"10","resultStr":"{\"title\":\"Autodirective sound capture: towards smarter conference rooms\",\"authors\":\"J. Flanagan\",\"doi\":\"10.1109/MIS.1999.757625\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"this kind of activity. The two most important have proved to be logging and general object-state access. Logging. I can't argue strongly enough for our object-network OS to support a ubiquitous, low-impact logging facility. It's equally important that object implementations are fully instrumented with log output and that such instrumentation never be removed. Once a system is having a problem, it's too late to think about adding logging to the code. We have had many complicated and hard-to-reproduce problems what I'll call nth-order feedback classes of problems such as oscillation. Without the ability to snoop around and watch log activity, problems would be nearly impossible to diagnose. Using our project's implementation as an example, let me describe what I think are the key aspects of a suitable logging facility. First, it is very useful to classify log-record output hierarchically. Typically , there would be classes and subclasses for maintenance, error, warning, and trace kinds of output. From the programmer's perspective, the logging primitives should be right there as part of their programming model and runtime environment. We keep a store-and-forward log facility object on each machine, whose job is to very quickly buffer local log activity into a disk-based FIFO queue, then forward that queue's content asynchronously to another facility (typically a central store that can be monitored on the fly). In addition , we can turn on and off different levels of log output at the object-instance level. Typically, our system runs objects with all trace output turned off, but if we're tracking down a problem we can reach in while an object is instantiated and modify its output log filter. This approach has proven essential in our system. Without such logging facilities, a system even an order of magnitude smaller would be impossible to operate. General object-state access. The ability to probe the general state of an object instance while it's instantiated is also very useful. If we think about the general nature of the objects within our object-network OS, we see a high degree of common behavior. For example, any object can publish and subscribe to properties, listen for events, or reference and be referenced by other objects. In our implementation, this list of common traits is even longer. It would be very nice to be able to ask any object in the system to dump its current state. As with logging, this kind of facility is …\",\"PeriodicalId\":393423,\"journal\":{\"name\":\"IEEE Intelligent Systems and their Applications\",\"volume\":\"22 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1999-03-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"10\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"IEEE Intelligent Systems and their Applications\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/MIS.1999.757625\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"IEEE Intelligent Systems and their Applications","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/MIS.1999.757625","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 10

摘要

这种活动。其中最重要的两个已被证明是日志记录和一般对象状态访问。日志记录。我们的对象网络操作系统应该支持一个无处不在的、低影响的日志记录工具,这一点我再怎么强烈也说不过去。同样重要的是,对象实现完全使用日志输出进行检测,并且永远不要删除这种检测。一旦系统出现问题,再考虑在代码中添加日志记录就太晚了。我们遇到过很多复杂的,难以重现的问题我称之为n阶反馈类的问题,比如振荡。如果没有窥探和监视日志活动的能力,几乎不可能诊断问题。以我们的项目实现为例,让我描述一下我认为合适的日志记录工具的关键方面。首先,对日志记录输出进行分层分类是非常有用的。通常,会有用于维护、错误、警告和跟踪输出的类和子类。从程序员的角度来看,日志原语应该作为编程模型和运行时环境的一部分。我们在每台机器上保留一个存储转发日志设施对象,它的工作是非常快速地将本地日志活动缓冲到基于磁盘的FIFO队列中,然后将该队列的内容异步转发到另一个设施(通常是一个可以动态监控的中央存储)。此外,我们可以在对象实例级别打开和关闭不同级别的日志输出。通常,我们的系统在关闭所有跟踪输出的情况下运行对象,但是如果我们正在跟踪一个问题,我们可以在对象实例化时进入并修改其输出日志过滤器。事实证明,这种方法在我们的系统中是必不可少的。如果没有这样的记录设备,即使是小一个数量级的系统也无法操作。一般对象状态访问。在对象实例被实例化时探测对象实例的一般状态的能力也非常有用。如果我们考虑对象网络操作系统中对象的一般性质,我们会看到高度的共同行为。例如,任何对象都可以发布和订阅属性,监听事件,或者引用和被其他对象引用。在我们的实现中,这个共同特征列表甚至更长。如果能够要求系统中的任何对象转储其当前状态,那将是非常好的。与伐木一样,这种设施是……
本文章由计算机程序翻译,如有差异,请以英文原文为准。
Autodirective sound capture: towards smarter conference rooms
this kind of activity. The two most important have proved to be logging and general object-state access. Logging. I can't argue strongly enough for our object-network OS to support a ubiquitous, low-impact logging facility. It's equally important that object implementations are fully instrumented with log output and that such instrumentation never be removed. Once a system is having a problem, it's too late to think about adding logging to the code. We have had many complicated and hard-to-reproduce problems what I'll call nth-order feedback classes of problems such as oscillation. Without the ability to snoop around and watch log activity, problems would be nearly impossible to diagnose. Using our project's implementation as an example, let me describe what I think are the key aspects of a suitable logging facility. First, it is very useful to classify log-record output hierarchically. Typically , there would be classes and subclasses for maintenance, error, warning, and trace kinds of output. From the programmer's perspective, the logging primitives should be right there as part of their programming model and runtime environment. We keep a store-and-forward log facility object on each machine, whose job is to very quickly buffer local log activity into a disk-based FIFO queue, then forward that queue's content asynchronously to another facility (typically a central store that can be monitored on the fly). In addition , we can turn on and off different levels of log output at the object-instance level. Typically, our system runs objects with all trace output turned off, but if we're tracking down a problem we can reach in while an object is instantiated and modify its output log filter. This approach has proven essential in our system. Without such logging facilities, a system even an order of magnitude smaller would be impossible to operate. General object-state access. The ability to probe the general state of an object instance while it's instantiated is also very useful. If we think about the general nature of the objects within our object-network OS, we see a high degree of common behavior. For example, any object can publish and subscribe to properties, listen for events, or reference and be referenced by other objects. In our implementation, this list of common traits is even longer. It would be very nice to be able to ask any object in the system to dump its current state. As with logging, this kind of facility is …
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信