Computer applications seeking to persist files remotely across the Internet are faced with a bewildering choice of mechanisms which tend to boil down to monolithic proprietary closed-source Vendor solutions. We introduce The Mikado Filesystem (mikfs), which provides an open simple lightweight interoperable portable extensible remote filesystem that is open source. mikfs consists of client applications accessing remote servers via RPC running over TCP/IP connections. mikfs is defined as a concrete set of API method calls over gRPC expressed in Google's Protocol Buffers' IDL. gRPC supports a wide variety of programming languages & platforms. For a given language + platform, the gRPC toolset can generate client- & server-side stubs from the IDL callable from client & server code in the selected languages, e.g., a client written in C# or java running on a Windows PC can access a server written in C++ running on Linux. mikfs consists of a virtual hierarchical tree of files & directories. This logical filesystem is not constrained to the limits and file naming conventions of the host's own physical native filesystem. API methods are provided for authentication; for atomic file-level operations on files & directories; for clients to register to receive notifications of file & directory changes on a server. The public API allows developers to write their own new servers and clients; allowing migration of hosted files between different implementations; extension with new methods & features; is Open Source code available for inspection and adaptation. gRPC provides secure authenticated connection & communication over HTTP/2; End-to-End Privacy & Security against eavesdropping of data in transit; support for multiple alternate user login mechanisms. mikfs is provided as source code, 'The Bootstrap Distribution', consisting of an ecosystem of clients, servers, tools and utilities.
翻译:计算机应用在互联网上远程持久化存储文件时,面临多种机制选择,而这些机制往往最终归结为封闭源代码的专有供应商解决方案。我们提出了Mikado文件系统(mikfs),它提供了一个开源、简单、轻量级、可互操作、可移植且可扩展的远程文件系统。mikfs由客户端应用通过基于TCP/IP连接的RPC访问远程服务器构成。mikfs定义为一系列基于gRPC且以Google Protocol Buffers IDL表达的API方法调用。gRPC支持多种编程语言和平台。对于给定的语言和平台组合,gRPC工具集可从IDL生成可在所选语言的客户端和服务端代码中调用的客户端与服务端存根,例如运行在Windows PC上的C#或Java客户端可访问运行在Linux上的C++服务端。mikfs构建于虚拟化分层目录树结构之上。这一逻辑文件系统不受主机物理原生文件系统的限制及文件命名约定的约束。API方法涵盖:身份验证;文件和目录的原子级文件操作;客户端注册以接收服务器上文件和目录变更的通知。公共API允许开发者自行开发新的服务端和客户端;支持在不同实现间迁移托管文件;可通过新增方法和特性进行扩展;其开源代码可供审查与改造。gRPC通过HTTP/2提供安全的认证连接与通信;实现传输数据防窃听的端到端隐私与安全保护;支持多种替代性用户登录机制。mikfs以源代码形式提供,即"引导发行版",包含客户端、服务端、工具和实用程序的完整生态系统。