# OCS Inventory

OCS Inventory NG soit Open Computer and Software Inventory est une application permettant de réaliser un inventaire sur la configuration matérielle des machines du réseau, sur les logiciels qui y sont installés et de visualiser ces informations grâce à une interface web. Il comporte également la possibilité de télé-déployer des applications sur un ensemble de machines selon des critères de recherche.

## Fonctionnement interne

Le dialogue entre les machines clientes et le serveur de gestion est basé sur les standards actuels, protocole HTTP et formatage des données en XML.

### Le serveur

Le serveur de communication (aussi appelé moteur) fonctionne avec Apache/MySQL/Perl. Il fonctionne uniquement sous UNIX.
Sa conception et l'utilisation de mod_perl donne des performances serveurs permettant à une machine modeste d'inventorier plusieurs milliers de machines.
Il est l'interface entre les agents et la base de données d'où il peut prendre sa configuration. À ce titre, il active et paramètre le lancement sur les agents d'un ensemble extensible de modules (inventaire, "sniffeur d'ip", requêtes sur le registre, télé-déploiement, recherche sur disque dur, etc.) et prend en charge diverses requêtes (événement de changement d'ip, notification événementielle d'état de télé-déploiement...).
C'est également lui qui assure la gestion automatique des doublons.
Chaque moteur peut être interfacé avec deux serveurs de base de données (un maitre et un esclave).

### Les agents

Afin de collecter le maximum d'information, des clients (agents) sont installés sur les machines à inventorier. Les clients supportent de nombreuses plateformes (Windows, Linux, FreeBSD, NetBSD, OpenBSD, Mac OS X, Sun Solaris, IBM AIX, Android).

### Interface web

Une interface web écrite en PHP permet la visualisation des données et le paramétrage de l'application :
* consultation de l'inventaire (recherches multi-critères)
* consultation des données réseau
* utilisation du télé-déploiement (création de paquets, activation, affectation aux machines...)
* gestion des groupes de machines (statiques et dynamiques)
* paramétrage des fonctionnalités agent (registre, ipdiscover, fréquence d'inventaire, rapidité télé-déploiement...)

## Extension - service web

L'application exposant un ensemble de services web basés sur SOAP, il est possible d'y connecter facilement toute sorte d'applications. OCS Inventory peut notamment être utilisé pour alimenter le gestionnaire d'inventaire GLPI et offre ainsi une solution puissante de gestion de parc. Ces services web permettent d'extraire les données, offrent des services de suivi d'historique (effacement, fusion...) et donnent la possibilité de paramétrer le fonctionnement de l'application.

## Modularité

Depuis la version 1.0rc3, la majorité des fonctionnalités de OCS-Inventory peuvent être adaptées ou étendues via un système de modules.

## Extensibilité

L'architecture permet de faciliter l'adaptation d'OCS à la charge ainsi qu'aux contraintes du réseau.
Plusieurs architectures sont ainsi possibles dont les principales :
* un moteur (frontend) devant une base de données (backend) (+ éventuellement une base de données esclave)
* plusieurs moteurs devant une base de données maitre (+ une ou plusieurs bases de données esclaves jusqu'à une par moteur)
* plusieurs couples moteur/bdd indépendants et une fédération des données d'inventaire dans un serveur central de plus haut niveau ("multi-entité")
Dans les trois cas, l'interface web permettra de limiter la vue (et les privilèges) des utilisateurs décentralisés.

## Licence

OCS Inventory est un logiciel libre publié sous la licence GNU GPL. Les développeurs sont directement détenteurs des droits d'auteurs.