Tutorial Introduction

This tutorial will guide you through the process of creating distributed applications using the JStyx library. We will start with very simple systems and build up to more complex ones, showing how even quite sophisticated applications can be created with little effort.

This is the tutorial for the JStyx library. The tutorial for the Styx Grid Services system is here.

Basic concepts

As you may be aware, in Styx systems all resources are represented as one or more virtual files. These resources may be literal files on disk, chunks of RAM, databases, physical devices or interfaces to programs. A Styx server may serve up any number of files in a hierarchical fashion, very much like a filesystem on a hard disk. In Styx, this hierarchy of virtual files is called a namespace.

In essence, the creation of a Styx server is very simple. You assemble a hierachy of files and directories, then run a server program that listens for connections on a given port. Clients can then make connections to this server and perform standard file operations on the files in the namespace that the server is exposing. Most of these file operations will be very familiar: opening and reading files and directories, creating new files, writing and appending to existing files and so forth. All these operations are handled using high-level API calls in the JStyx library and you will never need to know the nuts and bolts of the Styx protocol. (If you do want to know more about the Styx specification, see http://www.vitanuova.com/inferno/man/5/INDEX.html).

Tutorial contents

You can follow this tutorial online or, if you prefer to work from a printed copy, you can download a PDF version of this entire website. The tutorial sections are: