Growler 是一个基于 C 开发的分布式对象和事件架构。支持 C 的对象序列化作为远程方法调用、事件通道和 IDL 接口定义语言的一部分。
Its primary application has been in support of interactive, distributed visualization, computational steering, and concurrent visualization, but it is a general purpose system for distributed programming. Growler is suitable for application to high-performance LAN environments as well the internet. Its features include strong integration with C++, selective distributed reference counting, and efficient well-typed event channels for local as well as remote event broadcast, with support for low-latency/low-perturbation events via a loss-tolerant event model.
Several key aspects of growler distinguish it from existing software tools, particularly when taken together:
A C++-based distributed object architecture, based on an Interface Definition Language, plus user-defined object serialization.
A component-oriented framework for local and distributed components.
A “reader-writer buffer” (rwbuffer) communication model for high-performance event channels.
A “Signal/Selector” notification model for concurrent, event-driven programming.
Event channels supporting “composite state representations”, for synchronized access to interrelated events.
Efficient and robust access transparency, via user-defined serialization and copy-minimizing event channels.
Growler provides the architectural underpinnings for another open source project developed within NASA: NodeMon. It was also instrumental in the development of the Concurrent Visualization pipeline described in [1]. [1] Concurrent Visualization in a Production Supercomputing Environment David Ellsworth, Bryan Green, Chris Henze, Patrick Moran, Timothy Sandstrom IEEE Transactions on Visualization and Computer Graphics. 2006.