Most of CERN experiments are using Linux systems for data collection so EOS was designed to work primarily with Linux. But there are some high demanding users that are using Windows systems for data collection. Possible solution for them is to use Samba to mount Linux file system as Windows drive. Most of Windows users are used to get instant applications and instant file systems, and consequently, they try to avoid the use of a combination of different programs for wanted functionality. And that it is not just a users’ caprice – using a mixture of different programs is not a Windows way to work. Such a compilation also degrades the performance of EOS file system.
The solution for Windows high-performance users is EOS-wnc – an EOS Windows Native Client and a direct interface between Windows and EOS cluster. EOS Windows Native Client (EOS-wnc) provides EOS administration and file-related operations between local Windows file system and remote EOS file system on Linux. It is designed and implemented to directly access EOS cluster from Windows platform. Development of such a client is based on CERN-Comtrade collaboration on EOS Productisation project that has been living and growing since 2015.
The EOS-wnc project started with investigation of Windows file systems as an upgrade of Comtrade’s extensive knowledge about EOS. Studied were many possible implementations for Windows file system:
* XtreemFS, github.com/xtreemfs
* Chef infra, chef.io/products/chef-infra
* UrBackup, urbackup.org
* Syncthing, syncthing.net
* Duplicati, duplicati.readthedocs.io
* Bacula, bacula.org
The natural decision was to provide EOS client on Windows environment. There were two options to do it:
* Use Windows Subsystem for Linux (Microsoft WSL)
* Write a new Windows EOS client
As the first option did not solve high-performance demands, there following options to write a new EOS client for Windows were studied:
* Win32 API (Windows API)
* Windows Presentation Foundation (WPF)
* Windows Forms (.NET)
* Universal Windows Platform (UWP)
* Extension to the Windows Runtime (WinRT)
Furthermore, there were two possible directions of development:
* Port the existing XrootD and existing EOS Linux client to Window
* Write a completely new EOS client for Windows with a new architecture
Naturally, we decided to develop a completely new EOS Windows native client. The architecture of this new EOS client is different that the architecture of EOS client on Linux. The result is an implementation that leverages the advantages of Windows system and implements a completely new EOS client: EOS-wnc. This will be the first public live presentation of EOS-wnc after some CERN internal live demo presentations.