Définition
UNO (Universal Network Objects) est un environnement qui vise à permettre à des objets de communiquer à travers les réseaux de façon indépendante de leur localisation physique et des langages de programmation utilisés. Il s'agit à ce titre d'un framework que l'on peut comparer à CORBA ou à DCOM. L'intérêt d'UNO pour OpenOffice.org est qu'il permet de manipuler, notamment en utilisant des languages de script, les fonctionnalités de l'application qui sont exposées à UNO via une API (Application Programming Interface) définie à l'aide d'un langage de définition d'interfaces (IDL).
Il est ainsi possible non seulement d'automatiser les tâches
répétitives sous OpenOffice.org, mais également d'étendre ses
fonctionnalités pour fournir des solutions métier adaptées aux besoins
des utilisateurs. Il est enfin possible de piloter OpenOffice.org à l'aide d'UNO depuis des applications extérieures, faisant ainsi
d'OpenOffice.org un "client lourd universel" pour les cas où un
navigateur web ne suffit pas à fournir toutes les fonctionnalités
nécessaires aux utilisateurs.
Architecture
D'un point de vue architecturel, UNO permet de scinder les
fonctionnalités d'OpenOffice.org en composants élémentaires, aux
interfaces bien définies, chacuns développés par un sous-groupe de la
communautés des développeurs OpenOffice.org, et assemblés comme un
"Lego" logiciel. C'est, on l'a vu pour de nombreux autres projets Open
Source (le noyau Linux, Apache, Mozilla, KDE, Zope...) le meilleur
moyen de permettre à tous les développeurs intéressés de rejoindre la
communauté sans avoir à appréhender au préalable l'intégralité du code
source de l'application (7,5 millions de lignes de C++), et en
utilisant leur langage de programmation favori, pourvu qu'il soit
supporté par UNO (ex: Java, JavaScript, C++, Python, Basic...). Il est
également possible d'accéder à UNO à l'aide d'OLE Automation ou du CLI
.NET sous Windows, ou via les web services (SOAP).
Avantages
Cela permet enfin d'envisager de distribuer des variantes d'OpenOffice.org, bâties à l'aide de ces "briques" élémentaires, adaptées aux besoins précis des projets, en enlevant toutes les fonctionnalités superflues. L'utilisation de langages de script, tels Python, Basic ou JavaScript, pour étendre ou customiser les fonctionnalités d'OpenOffice.org est un facteur considérable de productivité pour les développeurs affectés à ces tâches. En effet, outre leur simplicité d'apprentissage qui rend les développeurs beaucoup plus rapidement opérationnels, il est également reconnu que l'utilisation d'un langage de script permet de gagner un facteur 5 à 10 en productivité pour ce type de tâches par rapport à des langages "système" comme C++ ou Java.
