Many scientific software platforms provide plugin mechanisms that simplify the integration, deployment, and execution of externally developed functionality. One of the most widely used platforms in the imaging space is Fiji, a popular open-source application for scientific image analysis. Fiji incorporates and builds on the ImageJ and ImageJ2 platforms, which provide a powerful plugin architecture used by thousands of plugins to solve a wide variety of problems. This capability is a major part of Fiji's success, and it has become a widely used biological image analysis tool and a target for new functionality. However, a plugin-based software architecture cannot unify disparate platforms operating on incompatible data structures; interoperability necessitates the creation of adaptation or "bridge" layers to translate data and invoke functionality. As a result, while platforms like Fiji enable a high degree of interconnectivity and extensibility, they were not fundamentally designed to integrate across the many data types, programming languages, and architectural differences of various software platforms.To help address this challenge, we present SciJava Ops, a foundational software library for expressing algorithms as plugins in a unified and extensible way. Continuing the evolution of Fiji's SciJava plugin mechanism, SciJava Ops enables users to harness algorithms from various software platforms within a central execution environment. In addition, SciJava Ops automatically adapts data into the most appropriate structure for each algorithm, allowing users to freely and transparently combine algorithms from otherwise incompatible tools. While SciJava Ops is initially distributed as a Fiji update site, the framework does not require Fiji, ImageJ, or ImageJ2, and would be suitable for integration with additional image analysis platforms.
翻译:许多科学软件平台提供插件机制,简化了外部开发功能的集成、部署和执行。在成像领域应用最广泛的平台之一是Fiji,这是一款用于科学图像分析的热门开源软件。Fiji整合并基于ImageJ和ImageJ2平台构建,这两个平台提供了强大的插件架构,被数千个插件用于解决各类问题。这一能力是Fiji成功的关键因素,使其成为广泛使用的生物图像分析工具以及新功能研发的目标平台。然而,基于插件的软件架构无法统一操作于不兼容数据结构的异构平台;互操作性要求创建适配或"桥接"层以转换数据并调用功能。由此,尽管Fiji等平台实现了高度的互联性和可扩展性,但其根本设计并未针对跨多种数据类型、编程语言及不同软件平台架构差异的集成需求。为应对这一挑战,我们提出了SciJava Ops——一个基础软件库,能够以统一且可扩展的方式将算法表达为插件。延续Fiji的SciJava插件机制的演进,SciJava Ops使用户能够在一个中央执行环境中调用来自不同软件平台的算法。此外,SciJava Ops可自动将数据适配为各算法最合适的结构,使用户能够自由且透明地组合来自原本不兼容工具的算法。尽管SciJava Ops最初以Fiji更新站点形式分发,但该框架不依赖Fiji、ImageJ或ImageJ2,适用于与其他图像分析平台的集成。