IOLink  IOL_v1.2.0_release
Introduction

IOLink is a library developed and used by Thermofisher Scientifics software teams for Images manipulation. It is designed to work as a unified data model.

Why do I need a DataModel?

A data model is the solution to problems observed in any software companies whose products:

  • must handle huge data of any type, of any source
  • must efficiently exchange data with each other
  • must master their ressources management
Software package without DataModel

Without any DataModel, each product can have its own reader to extract data and a copy is probably done in memory for processing. And if the result of processing must be exchanged with another product, adapters can be needed to make data compatible and a copy must probably be done again.

A DataModel is the basis to bring homogeneity into your software pipeline, and IOLink is the response to this need. The goal is to unify data access and exchange between applications, and also to avoid useless memory copies.

Software package using IOLink

IOLink is part of the IOSuite project, a set of tools based on IOLink. For now, IOSuite is composed of IOLink and IOFormat, the second being a library to allow access to encoded formats using the IOLink interface.

Overview IOSuite

Difference with other DataModels

IOLink simply provides interfaces to unify the access to data. These interfaces are generic but simple, wrappable, and can respond to most of user cases. IOLink provides a generic implementation, but you can also decide to create your own implementation from these interfaces, dedicated to your own application domain, and still remain compatible with external tools also based on IOLink.

IOLink is also interesting for its capability to handle data directly from a file or a server. It does not force you to load your whole data in memory.

What is User Guide for ?

This user guide is for any developers:

  • who directly want to use IOLink datamodel into their own software application
  • who use a software application using IOLink in its API

It details IOLink basic concepts, give an overview of available features, and offers actual code snippets.

User guide organization

Document is composed of following sections:

  • Capabilities: IOLink development is still active, and you will find here a status of available features, and possible future features.
  • Overview: You will find a quick overview of IOLink concepts. Quick to read, it should give you an idea of IOLink goals.
  • Installation: If you decide to test IOLink, this chapter is for you, and you should be able to quickly integrate it in your project.
  • View concept: Mandatory chapter if you want to look deeper inside IOLink main concept. No code snippet here, but a complete explanation of views possibilities.
  • DataStorage and DataAccess: Another mandatory chapter if you want to master your data consumption
  • Getting started: a fast entrance inside IOLink usage. You will be able to handle IOLink views for most common operations.
  • Fundamentals: This chapter will always be in progress to be enriched with new features. If you have any questions about how to do something, this should be helpful.
  • Custom implementation: Chapter to the attention of those who want/need to re-implement IOLink interfaces.