Home
Navigate space
Project currently in incubation
Current Release: 1.8.0 (7/6/10)
New feature highlights in 1.8.x:
- Added "What is impacted" question that allows one to view the footprint of a given service or see what instances on which a given service element relies.
Download the iteco client software
The production iteco system is client-server. Copy the client software tarball or zipfile to a folder on your computer and unpack it. If you are using the client to view ITServices' IT Ecosystem, then there should be no need to edit the configuration file -- it will connect your client to the iteco server so that we all use a common IT Ecosystem model. If you are using the client to view another ecosystem, then the urls need to be modified to point to that ecosystem's server location. If you want to administer such an ecosystem, then you need to download the IT Ecosystem server bundle package. The server code runs in a servlet container such as Apache Tomcat. See the "ItecoServer/WEB-INF/README.txt" file for further configuration instructions. A stand-alone monolithic client requiring no external server or authentication has also been created for demonstration purposes and contains an anonymous version of the model data. Here is a link to the monolithic client version.
The iteco client is a java program. You'll need java version 1.5 or later to run the client.
Run the iteco client
Just click or double-click on the iteco-launcher.jar file in the main unpacked folder. You will be asked to supply the username and password set up on the server instance. If using a local monolithic client instance, you can enter whatever you like.
The iteco client will display "Questions" and "Graph" tabs if you have Read privilege, and also a "Data Maintenance" tab if you have Write privilege. Also the additional "edit" context menu option in graphs is only available if you have Write privilege.
Brief how-to
The iteco model contains a variety of "elements" (such as hosts, databases, web servers, applications, etc) and a variety of dependency relations between pairs of elements. These form a large directed graph of dependency paths through our infrastructure that can be explored visually on the "Graph" tab or reported on in the "Questions" tab. These provide different ways to select and report on certain sets of dependency paths.
The types of elements and dependency relations are defined in the
IT Ecosystem Ontology section below. You can do simple reporting on numbers, types, and properties of the elements and relations in the iteco model by using the Instance Query tool (Questions ? Instance property filtering ? Start). This works exactly like Thunderbird's mail filter, of which it is a shameless knock-off. The instance query tool also allows you export the properties of the matching instances to either comma-separated value (csv) or Excel (xls) format. Clicking the "export" button brings up a dialog where you can select the properties to export, choose the destination file, and select the file format.
The Graph Tab
This is the visualization tool for the iteco model, which enables you to roam around in our technology infrastructure.
There are three modes of use. The first is to select an element from the list and click Go Graph. This brings up a view of the selected element and all others that are one hop away, together with all relations among those elements. This graph is said to be centered on the selected element - the center is the highlighted one.
The second mode of use, most impressive but probably least useful, is to see the entire model at once. If you've been using the graph tool you may need to click on the "Clear Item" button to ensure that it will give you this biggest picture. It will take a good while to settle down unless you hit the Stop button.
The third mode is to show a constrained graph, either centered or not, obtained by selecting element, relation, and/or criticality constraints. This enables you to wander around a subset of the whole model, as constrained by your specifications.
You can wander around in the iteco visualization by clicking on an element, causing the display to be centered on it. If you let the mouse tarry over a relation link, it will pop up a brief description of it. Mousing-over an element identifies its type or types. Links and elements are also color-coded, with each color signifying a different type of dependency relation or element type. The Legend on the View menu at top left shows the color coding scheme and also allows you to save two alternate color schemes as pre-sets, making it easier to adapt your copy of iteco to one or two particular projectors, for example.
Each element and relation has a context menu (right-click in Windows). You can
View node |
Look at element or relation's properties and types. |
Expand node |
Include further elements one hop away from this one, if any. |
Collapse node |
Undo expand node, although it isn't very good at collapsing. |
Hide node |
Just like it sounds. |
Bridge to |
Available if this element acts as a bridge between one or more layers in the model. A graph of the other end of the bridge is displayed in a new window. |
Edit node |
Change the properties or type(s) of an element or relation, replace one element with another, or delete an element or relation. |
The "Replace" option selected from the "Edit node" option in the context menu for elements allows one element to be "swapped-out" with another one. A "swapped-out" element transfers all of its relations to its replacement element, leaving it as an unconnected node in the global graph. The element selected when replace is clicked is the one to be "swapped-out." After selecting the "replace" menu option, a dialog for selecting the replacement is shown. After selecting the replacement element from the list, the properties of the two elements can be modified before submitting the replacement operation to the server. The "Submit" button on this form performs both the replacement operation and any property updates. The whole operation can be canceled with the "Cancel" button.
There are also several controls that use the slider at the top. The control is selected in the drop-down list at top-left. The "Zoom" control zooms. The "Locality" control sets how many hops wide the viewable display will be. The "Rotate" control rotates.
Type a search string into the blank near top-right and click on the Search button to do a substring search for an element in the graph instead of just eyeballing it. The Refresh button rereads the database from the server and updates the displayed graph with new data. This is very handy when you're editing the model - just keep a graphical view of the area you're working on open, and click the Refresh button after you've done some editing in the Data Maintenance tab to instantly see the results of your work. The Stop button at top-right is a bit mysterious. It stops the algorithm from trying to continue finding the best representation of the displayed graph. For graphs with a large number of elements and relations showing, it can take a while to settle down. The Stop button is for the impatient.
The state of the graph is now saved during navigation, so you can "undo" and "redo" your actions. The "undo" and "redo" options are available by clicking the arrow buttons in the controls panel at the top of the graph. Before an expand, collapse, hide, or locality change operation is performed, the state of the graph is saved. This allows you to "undo" these operations and restore your previous view of the graph. A Refresh operation that changes the state of the graph resets the history.
You can also save and load graphs. To save, click on File -> Export when you've got your graph looking right. There are three export formats:
TG |
An XML format that can be reloaded into the iteco software (either yours or someone else's with whom you wish to share it). Produces <filename>.tg. |
SVG |
A standard vector-graphic format that can be loaded into many image manipulation programs. Produces two files: <filename>.svg, and <filename>_legend.svg. The legend contains just those elements and relationship types that appear in your graph. |
A PDF file with embedded vector graphic rendering of the graph and associated text. The result contains the save date, legend, and other text to produce a reasonable poster image of the graphic. Produces 5 files: <filename>.pdf, <filename>.svg, <filename_legend.svg>, <filename>_combo.svg, and <filename>_template.svg. |
To load, on the Graph tab do File -> Import Graph->Open. If you've had a saved graph around for a while, click on Refresh after it's loaded to update it. Saved graphs are just files, so you can also send them to others for viewing in their iteco client.
The graph is somewhat whimsically flexible. You can "pull" an element one way or another, and it pulls the others along and then springs back. Or sometimes it springs into a new steady state. You might be able to coax it into a more satisfying representation - it doesn't hurt to try.
Data Maintenance tab
This is the data entry tool for the iteco model, supporting the create, read, update, and delete activities. It is available if you have write-access to the model. The interface on the left side of the window is used for the reading, updating, and deleting data in the model. A separate list is used to display the elements and relations. Selecting a single element or relation gives you the following options:
- View: Read-only view of the properties of the selected instance.
- Edit: Write-enabled view of the properties of the selected instance. Clicking the "submit" button at the bottom of the window sends the changes to the server.
- Types: Allows you to add/remove types to an instance. An element can have one or more types, while a relation can have only one type.
- Delete: Removes the instance from the model. An alert pops up, giving you a chance to cancel.
Multiple elements and relations can also be selected in these lists. To form the selection from a property query, click the Select button below the respective list (elements or relations). After clicking the "evalulate" button in the query interface, the instances in the query are selected in the lists of the maintenance screen, and the query dialog can be closed. The instances can also be selected from the contents of a "tgd" file by selecting the File->Import Graph->Select menu item. Both the elements and relations are selected appropriately from the loaded tgd.
In multi-selection mode, the following options are available:
- Edit: Allows you to edit the values for the common properties of the selected elements or relations. Check the appropriate properties that you wish to edit in the opened dialog and type in the values to use. Remember, all the selected instances will have the values for these properties.
- Delete: Removes all the selected instances from the model. An alert pops up, giving you a chance to cancel.
The right side of the window is for creating new elements and relations. An element is created by selecting a type from the tree in the "Create Element" frame, giving it a name, and then clicking "Create." A property window then opens, allowing you to set the properties for the newly-created element. A relation is created by selecting a source and dest element, a type, the criticality of the relationship, and then clicking "Create." The relation is auto-named by the system in the form [source].[s|D].[dest].
Preferences Window
The client contains a "Preferences" window accessed from the main client window menu under File->Preferences. Currently this contains user preferences for general client behavior, the graph, and the new data filter option for filtering instances of the selected type(s). A new "Apply" button has been added to the window to apply changed preferences without the preferences window closing.
In the Graph preferences tab option, checking anti-aliasing improves the rendering quality by smoothing the "jagged-ness" of lines that occurs due to the monitor's finite resolution. By default anti-aliasing of nodes is enabled to improve the quality of the icons, and this option selection should not noticeably impair the graph's performance on lower-end machines with integrated graphics cards. The export behavior of svg and pdf graphs can be modified through the "Export" settings sub-panel. The hidden edge count superscripts rendered at the top-left corner of nodes can be disabled during export by checking the "No node superscripts" option in the dialog. You can also disable the generation of the intermediate svg files mentioned in the pdf export description above by checking the "Pdf only" option.
The new Data Filter preferences tab option can be used to filter instances by their declared type(s) from all the views in the client. Types can be moved to and from the filter list by using the "Add" and "Remove" buttons below the "Available Types" and "Filtered Types" lists, respectively. When the "Apply" or "Ok" button is clicked, the filter changes are applied and the data views are updated. Two other data filter related options are available under the General preferences tab option. Toggling the "Enable data filters" option will enable or disable data filtering without removing the current types selection. Checking the "Save data filters" option will save the state of the filters when the client exits normally and restore them when the client is relaunched. A warning message box will be displayed when the client next starts if active data filters are reloaded.
The Questions tab
Each of the several questions or report types on the Questions tab is described below. Some common capabilities are described here.
A selection box is used to identify an element of interest for some questions or reports. A type-ahead function helps you to more quickly select the element you wish to report on. Double-clicking one brings up its properties window, which should have a little bit of information to help you further identify it, if it's name isn't sufficient.
A "type" or "relation" selection box is used in some questions to constrain the report to one kind of element or one of the various dependency relationships.
Any element in a text report can be clicked on to either pop up its properties window or a graph centered on it, depending on the Hyperlink Popup Type radio buttons. See below for more about using the
iteco visualization tool.
The rows in a text report can be sorted either alphabetically or by a numerical parameter depending on report type (either rank or path length) depending on the Sort By radio buttons.
All reports allow selection of dependency paths by the criticality of hops along the path. Criticality is ultimately a judgment call on the part of the person originating this bit of information in the iteco model.
1. What are an element's dependents and/or dependencies?
This reports on what elements a selected element depends on (its dependencies), or what depends on it (its dependents). You can select whether you want to list only the element's dependents or its dependencies. The report will list all direct and indirect dependents or dependencies. The path-length in the report is the number of dependency hops between it and the element being reported on. You can also constrain the report to include just those dependents or dependencies for which at least one intervening relationship is marked critical.
2. Which elements rank highest in number of dependents or dependencies?
This report lists elements (of the selected type, if so constrained) in order of how many elements depend on them or in order of how many dependencies they have. You can select whether you want to report only on dependents or on dependencies. You can select whether or not only direct dependencies should be counted, and whether only dependency paths containing at least one critical hop should be considered.
This is the "Top N" list of things most subject to, or potential cause of, undesirable side-effects in our infrastructure.
3. What are all the relation paths for a particular element?
This is an advanced form of the first question. In addition to showing the elements at the end of a relationship path, it lists all of the elements and hops in between in language that resembles the lyrics to The House That Jack Built, and gives finer control over selecting paths in the iteco model. Further, the report can be shown in text or graphical format.
One or a set of sources can be selected manually or as the result set of a query in the Instance Query tool that's brought up when you click on the Set Selection button. This is used to report the answers to questions such as "What are all of the Applications that depend on an oracle database?". In this example, the set of oracle databases can be obtained using the Instance Query tool, and the results are automatically selected as sources. Choose "Constrain Type", "End Point", "Application" and run the report.
In addition to the graphical pop-up of individual elements common to all reports, clicking on any link within the text of a relationship path brings up a graphical representation of that path.
Note that in the graphical form of this report you can only roam around within the selected elements and relations. You can not navigate across the full iteco model.
IT Ecosystem ontology
Following are the names and definitions of the classes and relations used in the iteco model. A few are used little and one not at all thus far, others might need to be introduced. An experimental class called "DataCharacteristic" and its sole subclass "SSN" are visible in the model but not documented here. The ontology itself can be changed if necessary. We can add to it, and add existing instances to new classes, without having to rebuild the iteco model. We can remove classes, and although instances that are solely members of a removed class will also be removed, those inheriting from more than one class will remain.
The 1.3.0 client allows more than one "Layer" in the model to be viewed in the context of the graph. Currently all instances in the model are in the "functional_layer," and all data maintenance operations in the Iteco Client are performed on this layer. Work on the "prodShop_layer," which models the Production Shop for ITServices is in progress.
Element |
All elements that interact within our IT "ecosystem" are instances of subclasses of Element. |
Application |
A single process, image, context, or code that is executed by a Platform. Also, a tightly integrated suite of such that is referred to in aggregate as a single Application instance. |
Database |
A collection of data, electronic or hardcopy. Not the technology that renders access to the database (that's often a DBServer). Some databases are "bundled" with an Application and are not represented by a separate Database instance. |
Hardware |
The actual bare metal underlying other, more ephemeral, Elements. |
GeneralProcessor |
General-purpose hardware, such as a Dell, IBM, or Sun computer. Unused as yet. |
SpecialProcessor |
Special-purpose hardware, such as a load balancer. |
Storage |
Storage-specific hardware, such as SAN and NAS devices. |
Liveware |
People, groups of people, and activities conducted by these. Don't want an org chart here. Rather, some Liveware instances may be necessary to have a self-contained portrayal of interrelated Elements. |
Group |
A collection of Persons undertaking a common Program. |
Person |
A specific human, or a role that one might occupy. |
Program |
A suite of related activities carried out by people in support of some identified aspect of the organization's mission. Example: "help desk" (4tech). |
Platform |
A software Element that Hosts other Elements. |
AppServer |
An application server, such as JBOSS, Tomcat, or ColdFusion. |
ASP |
Application Service Provider |
DBServer |
A database server that may Host one or more Databases. Usually an instance of a relational database technology such as Oracle, MS SQL Server, or MySQL. |
Host |
A physical or virtual machine, i.e., a general purpose operating system platform which runs software processes. |
VMPresenter |
A platform that virtual machines run on. |
WebServer |
An HTTP server. |
ITEcoRelation |
All reified relations among instances of the Element class are subclasses of ITEcoRelation. |
Hosts |
Provides (part of) the environment in which the hosted instance operates. |
Is-part-of |
Constitutes an essential part of a larger aggregate. Allows the aggregate to be the referent of a relationship which may in fact refer to one or more of its parts. |
Is-server-to |
A run-time relationship in which the destination Element opens a connection to or initiates a transaction with the source Element. |
Modifies |
Changes the content or configuration of. |
Other |
Other or unknown types of relationships. If you must use Other, make sure to say something meaningful in its Notes property. |
Supports |
Provides a benefit to without hosting, serving, or being a part of. |
Xfers-data-to |
Transfers data to, exclusive of run-time client-server interactions. Typically a batch export/import. |
Properties of Elements & Relations in the IT Ecosystem
Properties are like the columns of a database table. Properties are associated with classes, and instances of a class inherit the class's properties. But unlike a relational database, an instance can belong to more than one class and inherit properties from them all. The set of properties available to us, like the ontology itself, is also changeable.
Some properties are shown as "deprecate". These are holdovers from early experiments and probably should be removed from the model, unless there is need and will to maintain them. A few are "deprecated", which means they will be removed before long.
Property |
Classes |
Description |
Note |
---|---|---|---|
contact |
Element |
How to contact someone operationally responsible for this element. |
not used enough |
depth |
ITEcoRelation |
This indicates level of criticality. Values are "D" for "deep" or critical and "s" for "simple" or non-critical. Criticality is from the perspective of the receiving end of the relation. To first order, "D" means that the receiving end is useless if the relation fails, and "s" means that it can continue to fulfill its function, perhaps at a reduced level. |
used |
dest |
ITEcoRelation |
System-maintained name of element at the receiving end of this relation. |
used |
element_name |
Element |
Essentially an alias for the element. |
used |
label |
All |
Name for the element or relation. |
used |
last_update |
All |
System-maintained time at which this instance was last changed. Iteco only included this capability as of January 18, 2007. |
used |
modified_by |
All |
System-maintained username of the user who last changed this instance. Iteco only included this capability as of January 18, 2007. |
used |
:NAME |
All |
System-maintained identifier of the element or relation. |
used |
notes |
All |
Whatever ought to be noted. |
used |
prodShop |
Xfers-data-to |
Indicates whether this data flow is managed by ProdShop. |
incompletely used |
purpose |
Element |
Brief description of the element's purpose. Often contains a product name or proper noun to help identify it. |
used |
relations-dep |
Element |
System-maintained list of this element's dependencies. |
used |
relations-srv |
Element |
System-maintained list of this element's dependents. |
used |
responsible-dept |
Element |
Indication of who's responsible for this element. |
used |
source |
ITEcoRelation |
System-maintained name of element at the source end of this relation. |
used |
SSN-has |
Xfers-data-to |
Show if data flow contains SSNs. |
deprecate |
New feature highlights in 1.7.x:
- Added "Expand Edge to..." option in graph that allows expansion of only one edge of a node instead of
all of them - Improved performance of PDF exports
- Improved mouse-over behavior of nodes and edges in the graph
- Improved efficiency and behavior of "Replace" action in graph
- Added "Deselect Focus Element" option to graph
- Added "Reverse" edit option to relations editor of DataMaintenance tab and graph edge context menu
New feature highlights in 1.6.x:
- Added a separate type filter that applies only to the current graph
- Added a "Graph All" option to the Instance Query Tool that graphs all the instances in the result set and
their connecting relations for elements and endpoint elements for relations - Plugin framework now includes client extension points to existing interfaces in addition to tab plugins
New feature highlights in 1.5.x:
- Graph elements now have a transparent highlighting rectangle when they are marked of interest
- Added data filters to preferences window allowing you filter out instances of the selected types
- Usability improvements in the preferences window
- Improved icon and edge alignment for the graph
Feature highlights in 1.4.0:
- Greatly improved user interfaces and tool-tip help system
- Improved MacOS integration
- Faster graph rendering
- Multiple type constraints can now be selected in graph queries
Feature highlights in 1.3.2:
- Icons for elements in the graph installed on the server
- A recognizable graphical icon replaces the colored rectangles in the graph, making elements more recognizable by their types
- Anti-aliasing of graph nodes added to make the icons look their best
- Graph "Options" menu migrated to a standard Preferences dialog in the main client window
Feature highlights in 1.3.0:
- Graph maintains history of actions allowing you to "undo" and "redo"
- Export Options added to customize the export of svgs and pdfs
- Multi-Select capabilities in data maintenance tab
- Multiple elements and/or relations can be selected at once through the contents of a loaded tgd or from a property query selection
- The selected instances can have their common properties edited, or the instances can be deleted
- Instance property query exports to comma-separated value or Excel format
- Replacement of one element with another in the graph
- Support for multiple layers