190 likes | 265 Views
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 .)
E N D
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 high-level 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
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