SFA (Slicebased Federation Architecture) is the de-facto standard for testbed federation. Although it's not in our roadmap for the first year, we should start our development to match as close as possible to the way SFA does things to ease the integration in the future.
Right now, the APIs of SFA are not very clear nor well documented (evolving continuously). Hopefully, we'll get a better picture in the following weeks.
What is clear is that we need a way to advertise our resources to other testbeds (and our users!). The SFA way is to do it by XML documents called RSpec. Our way could be simply expose our information in the server's database through a web-interface. In any case, here is a UML diagram of the classes we should consider (I'm not a UML/Database expert, sorry). This UML diagram could be translated to a XML schema (xsd, rnc, etc.) or to a JSON schema (is there any standard?).
As you'll see, there are already some questions in the diagrams themselves which remains to be answered – and hopelly will be usefull to clarify even more the node architecture.
The xmi files (UML standard format) as well as the gaphor files (the program I used) are posted in here (so you can modify them):
It should be understood as the information we are going to store on the server's database and show on our server's web.
Potentially external to the testbed to allow other SFA-compliant testbeds to know which resources are available
Basically, it states that our network (CONFINE testbed) is composed of several nodes with a certain CPU, Memory and storage capacity and a set of available links with different characteristics.
We could think here on how to leverage the information on the nodes from the Common Node DB?
It should be understood as the options the researcher is going to see on its slice webpage on our server.
potentially external to the testbed to allow other SFA-compliant testbeds to allocate resources on CONFINE
From the set of resources advertised by the testbed, the researcher can request a slice (subset) of such resources. The slice is defined as a set of users (associated to that slice) and a set of nodes where a sliver is going to be created. The sliver is a subset of the available CPU, mem, and network resources.
Internal to the testbed, information needed to configure the nodes
The sliver in this RSpec contains the same information as the sliver element on the Slice Request RSpec.
It highly depends on the use cases we want to support.
However, the communication between the server and CONFINE nodes could be as simple as:
update(Credentials, NodeConfigRSpec): updates the configuration of the node according to the NodeConfigRSpec. Only allowed by an authority certified by the testbed (the server).