Tip:
Highlight text to annotate it
X
Welcome to the second screencast of project Kuwaiba
Today we're going to review the modules...
"Navigation Tree" and "Containment Manager"
This is the login window.
In the bottom of the window we can see...
some particular settings
For this demo, the server, as well as the client...
has been installed in the same computer...
so it's not necessary to change anything, but...
depending on where you deployed the application,
you may need to change the IP address or the port.
Remember that the default user and password are...
"admin"/"kuwaiba"
The first time you open the client...
you might experience a short delay since the server...
hasn't cached any call yet.
This is the Containment Manager
As described in the documentation...
Kuwaiba is a system completely object oriented,...
which means that its data model is based on classes, attributes...
and all the relationships that may exist between them.
The containment is the way how....
the objects are contained ones into others in the real world.
For example, within a country...
we find states, and into theses states there are cities...
and into the cities there are houses, buildings...
or any other kind of facilities.
Depending on your particular needs...
you can neglect some levels of containment...
to make your model simpler.
In the left side we can see a list...
with all the classes available
from an AC distribution unit (ACDistributionBoard) to a XDSL modem (XDSLModem).
If... for your particular business
you think there are some classes missing here...
you can... go to the project web page...
and make your requests here...
http://bit.ly/fBpwNu
If you think that, for example, "BTS" is missing
in case you're a mobile operator...
or any element in your current IT infrastructure...
you just have to post it here and it will be added...
in next releases.
at this moment (version 0.2), the data model is static...
which means that the classes here...
cannot be changed to add or remove...
at least not at *run time*, that's why you need...
to make your requests to increase the class base.
It is expected for future releases to make
the model completely dynamic
so the users can add or remove classes
on the fly detending on their needs...
Back to the containment tree...
we can see the class list
and this little red flag....
that represents the navigation tree root.
The navigation tree can be invoked...
by pressing this button...
or by going to the menu "Tools --> Navigation Tree"
or using the shortcut "CTRL+N"
Here we can see it more clearly....
This is... the tree root
and it's related to the red flag icon...
which doesn't represent it self a class,
but a dummy node that represents...
the root of all containment hierarchy.
Now if we right click the root to create
a new element, it says it's not possible....
because we haven't configured anything yet.
Under "Navigation Tree Root" no classes have been added.
We're going to do something simple,
so we're going to make it
only accepts countries (class "Country") into the root
Now when we right ,click we see...
that it's possible to add countries
here it is...
If we want to change the name in-line
we must press F2
and put the name. Let's use "Germany"
...in english...
Now, if we want to see the details...
for this object, we simply
open "Windows-->Properties"
It's often better to place it...
below the Navigation Tree.
Here we have all attributes,
related to the Country class...
But that's something we'll check out later
Likewise, we can add as many classes as we need...
for instance, "Continent"...
Well, now it's possible to add continents to the root.
Now we repeat this operation...
until the whole conatinment hierarchy is complete.
In this case we're going to make...
the country to contan only cities (class "City")
so we search for "City" in the left panel.
If we select the panel and type...
what we're searching for...
This little search box will appear
and it will select the matching the node.
Now we're gonna make the city to contain buildings (class "Building")...
and having selected the right panel we can type the name as well
...building... to search
If you want to remove a possible children class
just right click the node and select "Remove".
If you remove a class, you'll have to restart...
the application for the changes to take effect.
Now it's possible to...
Sorry, I forgot to add...
"City" to "Country"
So we do it now.
This way is now possible to create cities..
within countries
Let's say this one is "Berlin".
And we can add a building.
Let's name it "One"
And now let's add another two buildings
building "Two"....
and building "Three"
For each element there are default actions...
For example, I can...
update the object information
in case there is some external change
that requieres a manual refresh to show them properly.
"View in other window" ... is useful to show...
an object's detail permanently because as you may notice...
every time you select a node...
the default "Properties" window updates automatically
But if we always want to see the object information...
we simply use the "View in other window"...
and it will stay until we close it.
while this one changes every time...
a new object is selected.
We can delete, copy or paste the object as well.
"Explore from here" provides a way to...
display a smaller tree in those cases...
where the element is too deep into the main containment tree
For example, over "Berlin" we use "Explore from here"...
And then the application creates a new tree...
having the object we selected as root (the city)
Back to the containment hierarchy...
We''ll build the rest of the model
Under "Building" we can have...
equipments...
Here we'll introduce an important concept:
The Generics.
All those classes whose name starts with "Generic"...
are not normal classes
but, they're part of a class hierarchy
They represent a group of elements, not a single one
Technically, they're abstract classes used as superclasses
for other "normal" classes to inherit.
For Kuwaiba in particular, these classes are used as...
categories for a group of equipments that share...
common features (attributes)
For example, If we'd like to make...
any kind of equipment used...
in the Application Layer [refer to the OSI model]
to be available under a Building (i.e. a server or a PC)...
then we should search for "GenericApplicationElement"
and we add it to building.
Now, after adding GenericApplicationElement...
if I try to create a new object...
there are these three options right here
which are classified so far...
as Application Layer equipments
"Server", "Laptop" and "Workstation".
Then we can create a server here...
and there we are...
Likewise, we could do it for the rest of generics
We can add...
objects...
belonging to the Data Link Layer ("GenericDataLinkElement")
Now we can create these ones
a SDH multiplexer, for example ("SDHMux")
Going on with containment hierarchy construction...
we're going to tell him that the servers can only...
contain ports
So, let's search for "Server" here...
and in the other side "GenericPort"
"GenericPort" is a generic for all possible ports
[OpticalPort, ElectricalPort, VirtualPort, etc]
I could constraint the type of ports supported...
to USB ports only.
As this class doesn't currently exist...
Electrical ports ("ElectricalPort") shall make the work too
since they're the most similar by now...
so we add them here...
and when we try to create a new port
we see that ElectricalPort is available
and even better because these can be PS/2, USB, VGA, etc
and so on, you can...
continue adding levels...according to your needs.
This was the first part of the second screencasr of project Kuwaiba...
in the next one we'll review another two useful modules
See you later!