Key Terms and Concepts¶
Before you jump into reading the core GENI documentation, you should become familiar with the terminology used when discussing the project. Because GENI is a recently-developed, global platform, an evolving set of terms is used to described the details.
Throughout the definitions, we’ll refer the figure below for reference. This is Flack, the visual interface used to interact with GENI. Flack is described in further detail below and in the Flack guide.
Figure 1: Flack
The list of terms below is organized in a way that the items further up on the list will help build your understanding of the terms toward the end of the list. Terms mentioned within definitions are in italics.
A resource is a generic term used to describe anything you can request and use on the GENi platform. It may include physical machine, virtual machines, network hardware and more. in the image of Flack above, the types of resources you can request from GENI are in the drop-down menu in the center of the screen (All types, firewall, etc).
Your credentials are your keys to using the GENI environment. Once you have GENI credentials, you may begin setting up environments, requesting resources, and using the various tools that have been developed for GENI. Your credentials come in the form of a username, SSH key, and a password.
Flack is pictured at the top of this document. It’s is a visual tool for setting up experiment environments (known as a slice), requesting resources (such as a sliver), and setting up network paths between them. Much of your interfacing with GENI in experiments and examples will be through Flack. You can learn more about using Flack here.
Omni is a command-line tool for interacting with GENI. You can allocate resources like you can do with Flack, but without the visual interface. Omni is a powerful utility, which you can learn more about here.
A slice is an environment and conceptual container that your resources reside in. A single slice is recognized globally throughout the GENI environment. Within each slice, you can request resources from any GENI authority. Note that in the image of Flack above, A slice named “TestSlice” has been created.
a sliver is a set of resources that are reserved in an AM for a slice, i.e. slivers are what a user has in specific AMs
Up until now, we have referred to the different computing and network components that you allocate within GENI as resources. On GENI, you may have resources in many different places. For example, maybe you have resources allocated in Utah, and you have other resources allocated in Washington DC.
In GENI terminology, a sliver refers to the set of resources in a single location. So that group of resources in Utah is one sliver, and the grouping of resources in Washington DC is another sliver.
Your slivers are all part of the same Slice.
In the Image of Flack above, you can see the sliver that is going to be allocated for the slice named ‘TestSlice’: 1 Virtual Machine (VM), 1 Physical Machine (PC), and network interfaces to link them (lan0).
A Clearinghouse is a GENI authority that is capable of signing users up to experiment with GENI. In the GENI architecture, there are multiple clearinghouses. If you are gaining credentials through the The Mozilla Ignite App Challenge, your clearinghouse will be located at
This is the general idea that once you receive your GENi credentials from a Clearinghouse, you can use them to request resources and slivers anywhere. In visual tools such as Flack, this is largely transparent.
Management Authority (Authority)
Resources around the world are managed by what is called a Management Authority. This is typically an organization or institution that manages the servers and virtual machines on their premises, and makes them available to GENI as a whole. In the image of Flack above, the “Managers” list on the far left are the Management Authorities.
Resource Specification (RSpec)
Also largely transparent to the end user when using tools such as Flack, a Resource Specification, more commonly called an RSpec, is an XML document that lists resources. It is used in two primary cases:
- When querying a Management Authority on what types of resources it has available. Before you ask for a few machines for your experiment, you need to know what is available to you, right? This is called an Advertisement RSpec.
- Once you get a list of resources available to you, and you decide what you need, you send an RSpec that describes the resources you are requesting to the appropriate Management Authorities.
Again, with a visual tool such as Flack, you don’t have a reason to build or read RSpecs manually. Flack does the work for you. If you are curious although, Flack allows you to both read the RSpecs it has created for you, and import RSpecs that you have written yourself or saved prior.
When a request is made for resources (And an RSpec is sent out), the Management Authorities typically issues Tickets, which is essentially a promise to fulfill the request. Sometimes, requests cannot be fulfilled for various reasons.
Seattle is another project under the GENI umbrella which allows you allocate virtual machines around the globe and run experiments. Some of these virtual machines reside on physical machine, host virtual machines, and even mobile devices. Because of the transient connectivity of some devices, it is very helpful for simulating what the internet is really like for experiments. You do not need GENI credentials to use Seattle. Anyone can sign up.