Introduction Model contains different kinds of elements (such as hosts, databases, web servers, applications, etc) Relations between these elements are dependency-oriented (Hosts,Is-server-to, Transfers-data-to, modifies,etc.) Together the elements and relations form connected components representing a highlevel view of our infrastructure Uses Impact Analysis – Change management: what happens if I change application x – Failure analysis: If system x fails what else is affected Operational Awareness – How does my stuff fit into the bigger picture of the organization IT Ecosystem Software Developed using Java Production system is client/server Components are flexible, and the server code is not dependent on one particular application server (Tomcat,JBoss,WebLogic,etc.) Monolithic version that contains both the client and server components in the same distribution with no application server has been created – This allows an individual to create their own model and manipulate it for their private use Demo Server overview Communicates with clients using Java Object Serialization, where different kinds of client requests are wrapped in objects RESTful Web service API in progress Highly configurable Logs transactions for accountability and recovery in case of an error Read/write access authorization model Pluggable authentication and authorization model Data Model Overview Uses the Web Ontology Language (OWL) to describe the schema – W3C standard: http://www.w3.org/TR/owl-features/ More flexible than a traditional relational database, allowing new data types to be added at any time Collection of classes and properties together form an ontology describing a domain Xml file format allows many tools to process the schema Data Model Overview OWL allows the definition of different classes (types) of objects and the properties associated with those types Types can be sub-classed, allowing the creation of hierarchies of objects An object of a type is called an “instance” An instance can have more than one type, unlike a relational database Data Model Overview The IT Ecosystem has two hierarchies of types: “Element” and “ITEcoRelation” where all the element and relation types are defined, respectively We refer to the instances of an element type as an “element” and instances of a relation type as a “relation” The system currently constrains relations to have only a single type since the semantic consequences of multiple relation types is unnecessarily complicated Data Model Overview Properties are used to store the attributes of an instance and act like the columns of a relational database The properties are attached to the classes in the model An instance of multiple types inherits properties from all those types Model Extensibility Schema is easily adaptable to individual needs Changes can be made to the element and relation types and properties Tutorial for extending schema given in documentation Server: Data Model Plug and play database schemes: currently two implementations are available Neo4j with OWL support – Good performance and memory usage for large data sets (100,000+) and is the preferred scheme – http://neo4j.org/ – Obstacle: neo4j community edition has moved from AGPL (Apache 2.0-like) to GPL so currently version locked Protégé 3.3.2 – Faster for small databases (< 500 elements + relations) – Must maintain all data in memory – unsuitable for large datasets – http://protege.stanford.edu Server: Authentication and Authorization Pluggable model allows new authentication schemes to be developed Currently supports LDAP, file-based, and none (only practical for monolithic client) Read/write based authorization model Integrations Java client framework to feed information from other systems into the IT Ecosystem – Simple grammar developed to load elements, relations, and their properties from a text file – If above insufficient, can build clients with provided client framework and Java API that uses serialized objects over HTTP RESTful web service API in progress Framework for creating user interface extensions that are dynamically loaded as plugins Integrations Zenoss monitoring system – Nightly batch load of monitored hosts through web service api VMWare integration with ESX – Virtual hosts through batch dump of information from VIConsole interface Roadmap RESTful web service API Web front-end Further Graph enhancements – Neighborhood clustering – Improved layout physics – Property overlays Roadmap Network integration – switches, VLANs Storage management integration with EMC ServiceNow integration Object tagging Object creation templates/patterns Jasig semantic web experience Configuration of different ontology for use with other Jasig projects Refactor authentication/authorization to be more in line with other Jasig projects uPortal integration? Call for contributors – Email me at jmontgomery@uchicago.edu