Architecture

Overview

../_images/Architecture.png

Source code

The Viking source is available on Github

The source tree is divided into two main folders, clients and servers. Below is a bried description of each project.

Clients

Clients are built from the Viking.sln solution. We use Visual Studio 2013 at this time.

Viking: The Viking client used to annotate RC1. Built upon XNA and Windows Forms.

Jotunn: Prototype viewer built upon the Windows Presentation Foundation. Currently missing the annotations.

Libraries shared by Viking and Jotunn

VolumeModel: Model for loading sections and presenting them to a viewer as a single volume. Shared by Viking and Jotunn.

WebAnnotationModel: Model for loading annotations from the annotation web service. Shared by Viking and Jotunn

Servers

Servers are built from the Connectome Project.sln solution. We use Visual Studio 2017 for all projects except for the WebVisualization site.

Annotation Service: Windows Communication Foundation service which is used to provide authenticated read/writes to an annotation database

ConnectomeOpenData: An OData web service, mostly boilerplate generated by Visual Studio, which provides anonymous read-only access to annotation databases over the web.

DataExport: A web service which exports files directly to clients

WebAppSettings: A package shared across all web services containing application settings.

WebVisualization: The Visualization website. This also contains the authentication service that Viking uses to ensure users have logged in correctly. This project must be built with Visual Studio 2010.

Libraries

These libraries are shared by both client and server components

Geometry: Contains the computational geometry routines and transformation math Viking uses to transform tiles and annotations into volume space.

AnnotationVizLib: Contains shared routines to perform analysis of annotations.

GraphLib: Shared library for graphs

Utils: Code used by both clients and server components