Système personnel et collaboratif

Qu’est-ce que c’est ?

Le système d’information personnel doit permettre de stocker et de manipuler son information en toute sécurité et en toute liberté. Il doit être léger et mobile en se présentant sous la forme d’un boitier de type NanoPC. Il doit être modulaire et fabriqué à l’aide de matériels et de logiciels libres et open source. Il doit proposer une unité de stockage et de traitement sécurisés, des facilités de communication, la gestion de l’internet des objets. Il doit offrir un accès sécurisé pour les smartphones, tablettes ou tout autre dispositif électronique muni de capacités HTTPS ou SSH. Sa construction et son utilisation doivent être ouvertes à tous et documentées de bout en bout dans la langue de l’utilisateur.

Pour qui ?

Le système d’information personnel doit concourir à l’appropriation du numérique par les professionnel et les particuliers. Il doit offrir une réelle autonomie à tous les entrepreneurs ou les salariés qui souhaitent manipuler, organiser et traiter l’information de l’entreprise à partir de leur propre point de vue. Il doit répondre aux entreprises désireuses d’augmenter leur performance économique à travers une organisation agile et collaborative. Il doit répondre à tous les particuliers désireux d’apprendre à lire, écrire et compter l’information pour récupérer leur espace de liberté, la sécurité de leurs données, leur autonomie et leur capacité d’action au sein d’une société de plus en plus numérique.

A quoi ça sert ?

Le système d’information personnel doit permettre la pleine utilisation des facilités offertes par internet sans être obliger de passer par des plateformes tiers ou de logiciels propriétaires. Il doit sécuriser l’information, protéger la vie privée et lutter contre l’utilisation abusive des données à caractère personnel. Il doit permettre la création de scénarii pour stocker, échanger et partager ses informations privés en toute sécurité. Il doit rendre accessible la création, l’échange et le partage de processus personnels, de processus d’échanges ou de processus économiques. Il doit permettre la création d’architecture d’entreprise collaborative en étant le moins invasif possible vis à vis des systèmes d’information existants.

Comment ça marche ?

Le système d’information personnel doit permettre la création d’applications dans la langue de l’utilisateur. Les scénarii, les règles, les processus ou les algorithmes plus complexes doivent pouvoir être réalisés dans un langage de programmation de haut niveau et très simple. Il doit d’abord être réalisée en français puis très facilement déclinable dans d’autres langues. Un environnement de design et de développement complet devra être proposé au standard HTML5/CSS3 et embarqué sur le boitier.  

Combien ça coûte?

Le système d’information personnel ne doit pas excéder 100€. Le système d’exploitation et tous les logiciels devront être libres et gratuits. Les services d’accompagnement, de formation, de support, de gouvernance, de conformité, de qualité ou de virtualisation devront être payants pour les entreprises.

Quels sont les avantages ?

  • Sécurité pour l’entreprise et le particulier
  • Liberté pour créer de nouveaux usages
  • Mobilité pour le personnel de l’entreprise
  • Autonomie pour optimiser les processus métier
  • Maîtrise de l’internet des objets

La réponse

La solution retenue propose un système d’information personnel architecturé en réseau pair à pair et reposant sur trois piliers principaux :
  • un rapport interactif et sécurisé à l’information en correspondant mieux à la mécanique, au rythme et à l’échelle des organisations collaboratives et des êtres humains.
  • une bonne unité d’œuvre pour construire ou urbaniser des systèmes d’information d’organisations agiles, performantes et ouvertes sur leur écosystème.
  • la solution est libre, gratuite et documentée. L’approche «do it yourself – DIY » doit permettre à chacun de le fabriquer chez-soi ou dans un FabLab pour une réelle appropriation du numérique.
  • La solution facilite l’économie collaborative à titre individuel. Elle offre la capacité de mettre en place des groupes pour effectuer des achats groupés, des échanges de biens ou de services ou de la location entre particulier.

Des matériels libres

Nom Commentaire Lien
Les Nano-Ordinateurs sélectionnés

OLinuxIno
OLINUXINO est un nano-ordinateur Open Source et Open Hardware à architecture ARM et à un coût s d’environ 30 €. Il est capable de fonctionner à -25 +85 C.

Raspberry Pi
Raspberry Pi est un nano-ordinateur ouvert à un large public mais n’est pas complètement open source. Cependant, il peut faciliter la mise en place de prototype car il dispose d’une large communauté et de tutoriels riches et nombreux.

MinnowBoard
MinnowBoard est le premier nano-ordinateur proposé par Intel sur l’architecture x86 en Open Source. Il est équipé d’un processeur Intel Atom E640 cadencé à 1GHz.

BeagleBoard
BeagleBoard est un matériel libre produit par Texas Instruments en collaboration avec Digi-Key. La BeagleBoard a également été conçue en ayant à l’esprit le développement de logiciels open source.
Quelques options utiles sélectionnées

Disque Dur Le disque dur de type SATA-HDD-2.5-500GB.

Point de vue
Caméra
Un module IP/PTZ ou le module caméra PiNoir pour Raspberry Pi.

MK802-Linux
Le MK802-3 est un mini ordinateur facilement intégrable à une TV muni d’un port HDMI.
Point de vue
Arduino
Arduino est un circuit imprimé en matériel libre sur lequel se trouve un microcontrôleur qui peut être programmé de manière à effectuer des tâches très diverses comme la domotique.

GSM/GPRS
SIM900 GSM/GPRS est un module électronique additionnel  pour gérer les télécommunication.

RFID/NFC
RFID 13.56 MHz est un module électronique additionnel pour lire des tags RFID et d’interagir avec des dispositifs NFC.

Quelques exemples réalisés par des particuliers

Tablette Fabriquer soi-même une tablette tactile.
Boitier Réaliser soi-même le boitier à l’aide d’une imprimante 3D.
Robot Fabriquer soi-même un robot domestique.
VOIP – PABX Fabriquer soi-même son PABX domestique.
Caméra  Fabriquer soi-même une une caméra de surveillance vidéo.
Télésurveillance Fabriquer soi-même une centrale de télésurveillance
NAS Fabriquer soi-même un serveur réseau partagé

Un système d’exploitation libre et sécurisé

Système GNU/Linux

Une distribution spécifique et dédiée a été construite pour le système d’information personnel.
La réalisation a débuté en Janvier 2012 et est maintenue dans le cadre d’une l’initiative visant à promouvoir l’économie collaborative et qui se nome « Comme Un Olivier« .
La distribution se nome CUOLinux.
Nom Commentaire Langage
BuildRoot  2013.11 Buildroot est un outil de construction de systèmes GNU/Linux embarqués.
BusyBox 1.22.1 BusyBox est une version allégée des utilitaires UNIX.
Linux 2.6.18 Noyau linux de base. Langage C
LVM2 LVM2 permet de gérer les partition logiques et le cryptage du disque en mode simple ou en RAID. . Langage C
Glib 2.13.4 Glib fournit une librairie qui fournit les fonctions et les interfaces de base pour la manipulation des données structurées. Langage C
Libusb 0.1.8 LibUsb fournit une librairie qui fournit des facilités pour manipuler les drivers USB. Langage C
IpTables 1.3.6 IpTable fournit un pare feu en charge de la protection du système et de la stratégie de sécurité. Langage C
libmicrohttpd 0.9.17 LibMicroHttpd est une libraire simple, légère et rapide pour les développement web. Langage C
libgcrypt 1.6.0 Libgcrypt est une bibliothèque cryptographique d’usage général basée sur le code de GnuPG. Langage C
GnuTLS 3.2.11 GnuTLS fournit une bibliothèque de communication sécurisée pour les protocoles SSL, TLS et DTLS.  Langage C
OpenSSL 1.0.1 OpenSSL fournit une bibliothèque de communication sécurisée nécessaire à certains packages.  Langage C
OpenSSH 6.4 OpenSSH chiffre le trafic réseau de façon à déjouer les écoutes, les prises de contrôle de connexion et autres attaques réseaux. Langage C
OpenLDAP 2.3.27 OpenLDAP fournit une implémentation open source du Protocole Lightweight Directory Access. Langage C
zlib 1.2.8 Zlib fournit une bibliothèque logicielle de compression de données. Langage C
Libxml2-2.6.26 LibXml2 fournit une bibliothèque logicielle de manipulation de fichiers XML. Langage C
LibNFC 1.7.1 LibNFC fournit une bibliothèque logicielle de manipulation des technologies RFID et NFC. Langage C
LibLogicalAccess LibLogicalAccess est une alternative à LibNFC. Langage C
Boost 1.55 Boost fournit une bibliothèque logicielle de fonctionnalités additionnelles et d’optimisation. Langage C
Open Z-Wave Open Z-wave fournit une bibliothèque logicielle pour le protocole domotique Z-WAVE. Langage C

Les outils et les services de base

Nom Commentaire Langage
GNUnet 0.10.0 GNUnet fournit les technologies nécessaires à la construction d’un réseau chiffré P2P(pair à pair) entièrement libre.  Langage C
FFmpeg 2.1 FFmpeg fournit les technologies pour enregistrer, convertir et diffuser les formats audio et vidéo.  Langage C
OpenVPN 2.3.2 OpenVPN  fournit les services pour créer un réseau privé virtuel. Langage C
SIPWitch 1.8.7 SIPWitch  fournit les services pour mettre en œuvre une solution VoIP pair à pair sans intermédiaire. Langage C
OpenSIPS 2.0 OpenSIPS  fournit les services pour mettre en œuvre une solution VoIP. Langage C
PocketSphinx 0.8 PocketSphinx fournit les services de reconnaissance vocale. Langage C
eSpeak 1.48 eSpeak fournit les services de synthèse vocale. Langage C
GTK+ 3.11 GTK fournit une boites à outils pour la réalisation d’interfaces graphiques.  Langage C
WebKitGTK+ 2.2 WebKitGTK fournit un moteur de rendu pour HTML basé sur les services GTK. Langage C
SQLite 3.8.3.1 SQLite est un moteur de base de données SQL transactionnel. Langage C
R 3.0.3 R est un langage de programmation pour traiter et organiser des grandes masses de données à l’aide d’une approche mathématique.  Langage C
GNU Octave 3.8 GNU Octave est une alternative au langage R. Langage C
Samba 3.6 
Samba est une suite pour l’interopérabilité de programmes Windows vers Linux.
Git 1.9.0 Git fournit une boites à outils pour la gestion de projet et les évolutions de version des fichiers. Langage C

Les outils de développement et de test

Nom Commentaire
SysML 1.2.23  SysML est un outils de modélisation pour les systèmes embarqués.

Gcc 4.8.2 GCC est un compilateur C, C++, Objective C du projet GNU

qEmu 1.6.2 qEmu permet de virtualiser des machines et des systèmes d’exploitation.

VirtualBox 4.3.8 VirtualBox est une alternative à qEmu.

Eclipse 4.2 Eclipse est un environnement de développement logiciel multilangage et multiplateforme.

Android SDK

Android SDK est l’environnement de développement dédié à Android pour le langage Java.

Android NDK Android SDK est l’environnement de développement dédié à Android pour le langage C/C++.

iPhone SDK

iPhone SDK est l’environnement de développement dédié à iOS pour le langage Objective C.
Splint 3.1.2

Splint est un logiciel libre qui permet d’analyser les code sources des applications réalisées.

OpenSTA OpenSTA est un logiciel qui permet de tester les performances et les capacité en charge des applications réalisées.

SNORT 2.9.4

Snort est un logiciel libre qui permet d’auditer et de réaliser des tests d’intrusion sur les système et les réseaux.

Wireshark 1.8.4 Wireshark est un logiciel libre qui permet de superviser, d’auditer et de réaliser des tests d’intrusion.

Un cadre de travail

Un cadre de travail dédié au système d’information personnel est proposé

La réalisation a débuté en Janvier 2012 et est maintenue dans le cadre d’une initiative visant à promouvoir l’économie collaborative et qui se nome « Comme Un Olivier« (CUO). 
Le cadre de travail se nomme CUOFrameWork. Il est composé des modules suivants :
Le projet CUO(Comme Un Olivier) a pour vocation d’être libre et open source. Nous travaillons sur la documentation, les outils de publication et les spécificités concernant la mise en œuvre de la licence publique générale (GNU GPL). Notre objectif est d’ouvrir le projet le plus rapidement possible et au plus grand nombre afin de faciliter l’échange et le partage d’applications évoluées et collaboratives.

Un modèle de métadonnées – CUOMatrice

CUOMatrice est un modèle de données simple,  léger, persistant et adapté aux architectures distribuées de type pair à pair. Il est et orienté « transaction ».  Il est architecturé autour d’entités polymorphes et dynamiques sur le plan métier. Il permet la création de son propre environnement d’information et facilite les mises en correspondance des données existantes(Data Mapping).
Après création, la matrice se présente sous la forme d’un répertoire qui porte son nom et contient :

  • le fichier source XML contenant l’ensemble des métadonnées du propriétaire
  • l’optimisation binaire de ce fichier XML avec l’extension « .XNB » dédié à CUOVm
  • un sous répertoire nommé SERVICE contenant les applications du propriétaire
  • un sous répertoire nommé DOCUMENT contenant les fichiers sécurisés du propriétaire
  • un sous répertoire nommé UTILISATEUR contenant les configurations des groupes et des invités
  • un sous répertoire nommé CORBEILLE dédiés aux échanges réseaux sécurisés 
  • un sous répertoire nommé RAPPORT dédiés aux audits et à la gouvernance
Nom Commentaire Langage
Matrice
C’est le récipient de rang le plus élevé. Il contient l’ensemble des autres objets persistants ainsi que leur description comme les attributs, les opérations, les relations, les indexes, les règles, les agrégations, etc.

XML
Entité
Elle représente les acteurs comme les personnes morales, les personnes physiques ou les objets interactifs comme une maison, un entrepôt  ou un véhicule équipés de dispositifs électroniques communicants. Elle peut contenir des objets comme les critères, les états, la qualification déclarative et comportementale, etc.

XML
Ressource
Elle représente les objets susceptibles d’être utilisés ou échangés par les acteurs comme les produits, les articles, les documents, les contenus informationnels, etc. Elle peut contenir des objets comme la composition, le prix, le stock, etc.

XML
Transaction
Elle représente les interactions réalisées entre les acteurs comme un bon de commande, un événement domotique, une approbation, etc. Elle peut contenir des objets comme un message, une entête ou un pied de commande, un état de situation, un rapport, etc.

XML
Programme
Il représente le story-board de la gestion des processus métier, des processus d’échanges ou de collaboration. Il peut contenir des objets comme les scénarii, les règles, les événements, les APIs, les audits, les références, etc.

XML
Application
Elle représente les instructions réalisées en langage évolué CUOBasique. Elle peut contenir des objets comme le design d’interface homme machine, les événements, les opérations, les variables, etc.

XML
Utilisateur
Il représente le compte et les préférences pour l’utilisateur du système d’information personnel. Il peut contenir des objets comme les groupes, les droits,  le niveau de sécurité, etc.

XML
Configuration
Elle représente les spécification de déploiement et d’exécution du système d’information personnel. Elle peut contenir des objets comme le serveur, l’agent, le pilote, le réseau, la stratégie de sécurité, etc.

XML
Modèle Il représente des modèles de matrice informationnelles facilitant l’installation et l’initialisation du système :

  • matrice dédiée aux particuliers
  • matrice domotique dédiée aux particuliers
  • matrice business orientée consommateurs (B2C)
  • matrice business orientée entreprises (B2B)
  • matrice business orientée logistique (SCM)
  • matrice business orientée internet des objets (M2M)
  • matrice business domotique dédiée aux entreprises
XML

Une machine virtuelle – CUOVm

CUOVm est une machine virtuelle simple,  légère et multiplateforme. Elle prend en charge la compilation et l’exécution des applications réalisées en CUOBasique. Elle est portable sur les environnements UNIX, iOS, Androïd et Windows.

Nom Commentaire Langage
Bibliothèques pour la gestion du système
CUOMoteur.c Module temps réel de l’ensemble de la VM Langage C
CUOSysEvt.c Module d’abstraction des événements du système réel. Langage C
CUOSysFio.c Module d’abstraction des entrées/sorties du système réel. Langage C
CUOSysData.c Module d’abstraction des données du système réel. Langage C
CUOSysOs.c Module d’abstraction des principales api du système réel Langage C
CUOSysMain.c Module de gestion de la machine virtuelle coté applicatif Langage C
CUOSysCpu.c Module d’exécution du code binaire des applications Langage C
CUOSysApi.c Module d’exécution des fonctions API des applications Langage C
CUOSysSpi.c Module d’exécution des fonctions système des applications Langage C
CUOSysXpi.c Module d’exécution des fonctions XML des applications Langage C
Bibliothèques pour la gestion des réseaux
CUOReseau.c Module d’abstraction des réseaux du système réel. Langage C
CUOdorsale.c Primitives pour la synchronisation inter-CUOvm. Langage C
CUOhttp.c Primitives pour le protocole HTTP. Langage C
CUOMisc.c Primitives pour les protocoles les plus communs. Langage C
CUOIpTools.c Boites à outils facilitant la gestion des primitives réseaux Langage C
CUOIpCall.c Primitives pour les appels sortants Langage C
CUOIpRpc.c Primitives pour la gestion des API distribuées. Langage C
Bibliothèques pour la gestion du serveur d’applications
CUOApps.c Moteur du serveur d’application. Langage C
CUOClasses.c Module pour la manipulation des structures de données. Langage C
CUOSynchro.c Moteur pour la synchronisation inter-CUOvm.. Langage C
CUOOutils.c Boites à outils facilitant la gestion du serveur d’application. Langage C
CUOXml.c Moteur de gestion des binaires et de la mémoire pour XML. Langage C
CUOXQuery.c Moteur d’exécution des requêtes NoSQL Langage C
CUOXStat.c Moteur d’exécution des requêtes Statistiques Langage C
Bibliothèques pour la gestion des interfaces graphiques
CUOGraphics.c Boite à outils pour les interfaces graphiques. Langage C
CUOGtk.c Module de gestion des interfaces GTK. Langage C
CUOWin.c Module de gestion des interfaces Windows. Langage C
CUOHtml.c Module de gestion des interfaces HTML. Langage C
CUOIhmTools.c Boite à outils pour les interfaces graphiques. Langage C
CUOIhmCbo.c Primitives pour les objets graphiques dynamiques. Langage C
CUOIhmTree.c Primitives pour les objets graphiques arborescent. Langage C
CUOIhmStyle.c Primitives pour la gestion des styles CSS. Langage C
CUOIhmJs.js Librairie d’objets dédiés à HTML5 JavaScript
Bibliothèques pour la sécurité
CUOSecure.c Module de gestion des stratégies de sécurité Langage C
CUOSecLib.c Module d’abstraction des APIs externes de sécurité . Langage C
CUOSecTools.c Boite à outils pour les processus de sécurité. Langage C
CUOSecCrypto.c Primitives pour les protocoles de cryptographie. Langage C
Bibliothèques pour le compilateur d’applications réalisées en  CUObasique
CUOBasic.c Moteur de compilation et d’édition de liens Langage C
CUOBasLex.c Analyse syntaxique du langage CUOBasique Langage C
CUOBasDef.c Module de gestion des définitions externes. Langage C
CUOBasApi.c Module de gestion des fonctions externes. Langage C
CUOBasVar.c Module de gestion des variables Langage C
CUOBasObj.c Module de gestion des objets Langage C
CUOBasCode.c Module pour la génération du code binaire Langage C
CUOBasXML.c Module pour la gestion de projet Langage C
Bibliothèques pour le débogueur d’applications réalisées en CUObasique
CUODebug.c Moteur de débogue pas à pas. Langage C
CUODebugIhm.c Interface homme/machine pour le débogeur. Langage C
Bibliothèques pour la gestion des algorithmes génétiques
CUOGeneAPI.c Primitives pour la gestion des algorithmes génétiques. Langage C
CUOGeneBot.c Moteur pour l’évaluation et l’apprentissage. Langage C
Bibliothèques complémentaires
CUOBot.c Robot d’indexation pour les données internes et externes. Langage C
CUOGeo.c Primitives pour le calcul et les projections géographiques. Langage C
CUOODBC.c Primitives pour le protocole ODBC. Langage C
CUOdotnet.c Primitives pour les protocoles DCOM/COM. Langage C
CUOLibExt.c Primitives d’encapsulation pour les librairies externes. Langage C

Un langage de programmation évolué – CUOBasique

Ce langage se nome CUOBasique et correspond à une syntaxe simple, légère et accessible.
La conception a été réalisée pour la langue française.
Ce langage permet de simplifier la création de jeux d’instructions pour faciliter la manipulation de l’information numérique et la création de processus d’échanges entre les utilisateurs.

Commentaire Lien
Déclaration des jeux d’instructions Fonction
Déclaration des variables Variable
Syntaxe de base pour la réalisation des jeux d’instructions Syntaxe
Définition des interfaces homme machine Graphisme
Gestion et manipulation de l’information Information

Des exemples de modèles d’applications – CUOModèle

CUOModèle regroupe un ensemble de modèle d’applications visant à faciliter la création d’applications.
Chaque application se présente sous la forme d’un répertoire qui porte son nom. Ce dernier réside dans le répertoire SERVICE de la matrice du propriétaire :

  • un sous répertoire nommé BIN contenant les fichiers binaires exécutables pour la machine virtuelle
  • un sous répertoire nommé DONNÉE contenant les fichiers ressources (images, sons, vidéos, etc)
  • un sous répertoire nommé SCRIPT contenant les fichiers sources CUOBasique
  • un sous répertoire nommé TEMP contenant les fichiers temporaires de travail
Nom Commentaire Langage
COMMENCER Modèle d’application pour réaliser une première prise en main CUOBasique
BUREAU Modèle d’application pour réaliser un bureau personnel CUOBasique
AGENDA Modèle d’application pour réaliser un Agenda partagé CUOBasique
COMMANDE Modèle d’application pour réaliser une gestion de commande CUOBasique
RAPPORT Modèle d’application pour réaliser des rapports personnalisés CUOBasique
MISSION Modèle d’application pour réaliser une gestion de mission CUOBasique
IMPORT Modèle d’application pour importer des fichiers Excel CUOBasique
COURRIEL Modèle d’application pour réaliser une messagerie CUOBasique
RECHERCHE Modèle d’application pour réaliser une moteur de recherche CUOBasique
CONREST Modèle de connecteur respectant le protocole REST CUOBasique
CONSOAP Modèle de connecteur respectant le protocole SOAP/WSDL CUOBasique
FLOTTEM2M Modèle d’application de géolocalisation de véhicules CUOBasique

Des exemples d’applications – CUOApps

CUOApps est le terme générique pour définir les applications dédiées à la machine virtuelle CUOVm.
Chaque application se présente sous la forme répertoire qui porte son nom. Ce dernier réside dans le répertoire SERVICE de la matrice du propriétaire :

  • un sous répertoire nommé BIN contenant les fichiers binaires exécutables pour la machine virtuelle
  • un sous répertoire nommé DONNÉE contenant les fichiers ressources (images, sons, vidéos, etc)
  • un sous répertoire nommé SCRIPT contenant les fichiers sources CUOBasique et XML
  • un sous répertoire nommé TEMP contenant les fichiers temporaires de travail
Nom Commentaire Langage
PersoApps
Cette Application permet d’unifier et de sécuriser ses données en construisant sa matrice informationnelle à partir des comptes de ses réseaux sociaux, de ses courriels et de ses blogs.  Elle s’appuie sur les APIs proposées par Facebook, Twitter, Google, Linkedin, Viadéo, Tumblr, etc. 
Elle propose la gestion de ses flux, de ses contacts, de ses documents, de ses photos ou de ses vidéos en une interface homme machine unifiée. 
Elle permet la création de scénario pour les alertes et les tâches automatiques comme par exemple le filtrage du mur d’événements pour créer des réponses spécifiques ou des analyses statistiques personnalisées.
CUOBasique
NasApps
Cette application propose un système simple de stockage centralisé et sécurisé accessible par le réseau IP. Elle permet de servir des environnements hétérogènes comme les machines Windows, les caméras IP ou les imprimantes. Elle propose un agencement simplifié des fichiers et une configuration des niveaux de cryptage et des sécurités d’accès.
Elle permet la création de scénarios pour les alertes et les tâches automatiques comme par exemple le partage de fichiers sur plage horaire soumis à des conditions d’accès à distances personnalisées.

CUOBasique
TvApps

Cette application permet de créer son propre contenu télévisuel ou radiophonique. Elle s’appuie sur les chaines de TV et de radio libres et gratuites qui produisent un flux continu(Streaming) et en direct.
Interfacée avec un écran de télévision possédant un port HDMI, elle propose une expérience télévisuelle personnalisée.
Elle permet la création de scénarios pour les alertes et les tâches automatiques comme par exemple l’enregistrement de programme pour une utilisation privée.
Elle permet d’agréger ses propres contenus issues par exemple d’une caméra de télésurveillance ou de plateformes tiers comme YouTube ou Dailymotion.
CUOBasique
DomoApps

Cette application est un serveur domotique sécurisé. Elle permet d’intégrer les objets électroniques et les capteurs compatibles avec les protocoles ZigBee ou Z-Wave comme l’éclairage, le chauffage ou les serrures électroniques.
Elle propose un tableau de bord en temps réel et des interfaces de pilotage simplifiées.
Elle permet la création de scénarios pour les alertes et les tâches automatiques comme par exemple la gestion de la température sur des plages horaires.

CUOBasique
ProjetApps

Cette application propose une gestion de projet collaborative. Elle permet de gérer les personnes, les tâches, les dates, les ressources et les livrables.
Elle s’appuie sur un agenda partagé et peut s’interfacer avec des agenda tiers comme par exemple OutLook ou Google Agenda.
Elle permet la création de scénarios pour les alertes et les tâches automatiques comme par exemple pour signaler ou rappeler les tâches arrivées à échéance.

CUOBasique
ERPApps

Cette application propose un outil de gouvernance pour la gestion d’entreprise. Elle permet une gouvernance des processus de gestion commerciale, de comptabilité, de paie, de production ou de logistique. 
Elle est appuyée sur un connecteur encapsulant le logiciel libre et open source OpenERP.
Elle propose un tableau de bord et un pilotage simplifié des processus collaboratifs inter-entreprises.
Elle permet la création de scénarios pour les alertes et les tâches automatiques comme par exemple les rapports sur les indicateurs de suivi d’activités métier.

CUOBasique

Un studio de développement – CUOStudio

CUOStudio est un environnement de développement dédié à la modélisation et à la création d’applications pour le  langage CUOBasique. Il est accessible à travers les navigateur web respectant le standard HTML5 comme Firefox, Chrome ou Internet explorer. Il se présente comme un site web épuré, fonctionnel et simple d’utilisation.
Il propose un gestionnaire d’applications collaboratives, un gestionnaire de version ainsi qu’un espace de développement, de pré-production et de production.
Il est architecturé autour d’ateliers :

  • Atelier de modélisation pour créer des applications sans écrire de lignes d’instructions 
  • Atelier graphique pour créer des interfaces homme machine
  • Atelier applicatif pour créer des jeux d’instructions

Nom Commentaire Langage
Atelier de modélisation
Curseur Module de création de diagrammes de séquences fonctionnelles mettant en scène des acteurs, des références, des règles, des données et des opérations(APIs). CUOBasique
Référence Module de création de récipients caractérisés par des attributs et des opérations encapsulant les objets structurés.  CUOBasique
Règle Module de création  de conditions, de règles d’action, de règles de gestion ou de règles de calcul. CUOBasique
Requête Module de création des conditions d’une sélection de données. CUOBasique
Opération Module de création de récipient caractérisé par des attributs et des opérations encapsulant les APIs.  CUOBasique
Événement Module de création de gestionnaire d’événements. CUOBasique
Audit Module de création des contrôles d’anomalies, des rapports statistiques d’utilisation et des indicateurs déclaratifs ou comportementaux. CUOBasique
Atelier Graphique
Design Module de design et mise en forme d’écrans graphiques interactifs.  CUOBasique
Propriétés Module de gestion des propriétés associées aux écrans et aux objets graphiques. CUOBasique
Action Module de gestion des actions et des événements associés aux écrans et aux objets graphiques. CUOBasique
Atelier applicatif et de débogue
Éditeur Module de création des fonctions ou des routines (APIs). CUOBasique
Analyse Module de gestion et de correction de la syntaxe. CUOBasique
Matrice Module de création de requêtes avancées. CUOBasique
Débogueur Module d’exécution pas à pas de l’application. CUOBasique

Un système de gestion de la qualité

La gestion de la qualité est une priorité pour toutes les organisations et leur écosystème. 
Un système de gestion de la qualité est avant tout un fournisseur de principes et de bonnes pratiques pour améliorer les performances de façon continue.
Le numérique est une activité transverse qui supporte les processus métier et qui concoure à leur amélioration. Les points de vigilance sont articulés autour :

  • La gestion des projets numériques
  • La conformité juridique de l’open source
  • La cybersécurité
  • La gouvernance
Nom Commentaire Liens
La gestion des projets numériques

Approche
Un projet numérique est avant tout un projet de collaboration entre des personnes d’horizon, de cultures et de compétences différentes. Une formalisation simple structurant des idées claires et synthétiques est privilégiée. Ces marqueurs lisibles et accessibles à tous sont mis en action dans le cadre d’une approche itérative avec des jalons courts et tangibles.
Pour chaque itération :
  1. Cadrage, document qui synthétise la phase préparatoire contenant la formalisation des opportunités de marché, des besoins, de la faisabilité fonctionnelle et technique ainsi qu’un chiffrage concernant les ressources nécessaires, les coûts, les délais et les risques.
  2. Etudes, document qui synthétise la phase d’analyse des principaux cas d’utilisation et des chiffrages retenues au cours de la phase précédente. 
  3. Cahier des charges fonctionnel, document collaboratif et contractuel du projet pour les aspects fonctionnels.
  4. Cahier des charges techniques, document collaboratif et contractuel du projet pour les aspects techniques.
  5. Réalisation,  document collaboratif et contractuel de développement et de réalisation d’un prototype, de la preuve d’un concept ou de la mise en production.
Méthode
Nos choix se sont portés sur les méthodes agiles et les outils simple de gestion de projet collaboratif. Ils offrent une structuration itérative, collaborative et adaptative des cycles de développement. 
Ces approches répondent mieux à nos exigences :
  • Collaboration efficace de l’équipe projet
  • Intégration de l’écosystème (clients et fournisseurs)
  • Mise à disposition rapide
  • Evolution et changement rapide
RAD
Management
Les projets numériques et collaboratifs demande de l’implication et de la motivation à toutes les parties prenantes. Le responsable de projet est avant tout un médiateur qui s’inscrit dans une démarche de communication, de compréhension et de bonnes relations entre tous les acteurs pour donner la motricité nécessaire.

Formation
Approche
Nos choix se sont orientés vers la fondation linux. 
En effet, elle a lancé un programme de conformité à l’open source. Ce programme vise à simplifier la gestion de la compatibilité et de la conformité des licences utilisées :
  • Formation, un programme de formation et d’éducation.
  • Outils, pour automatiser l’analyse de code.
  • Standard, pour la gestion des packages.
  • Communauté, avec les acteurs majeurs du marché.
  • Modèles, pour la mise en place de politique et de bonne pratique
Programme
Sources
Nos choix se sont portés sur le langage C. Nos développements et les logiciels open source embarqués sur le système d’information personnel sont exclusivement réalisés avec ce langage. C’est le plus populaire chez les développeurs car il présente un excellent compromis entre performance, pérennité et portabilité. 
  • Simplicité, un langage natif simple et impératif.
  • Lisibilité, une analyse de code automatique facile à mettre en place.
  • Maintenabilité, une fusion des sources issues de packages différents facilement automatisable.
  • Documentation, Un modèle de documentation pour la transparence et la traçabilité de l’open source.
Standard
CyberSécurité

Approche
La cybersécurité a guidé nos choix tout au long de la réalisation du système d’information personnel. La sécurité de l’architecture, des logiciels, des réseaux et du matériel ont structuré nos études et nos développements.
L’anticipation des situations comme les vols physiques, les logiciels piégés, les attaques intérieurs ou extérieurs, l’usurpation d’identité, le reniement d’actions et la protection des données de l’utilisateur nous ont conduit à privilégier :
  • Information distribuée sur une réseau pair à pair, pour éviter toute centralisation et faiblesses du système. 
  • Matériels et logiciels libres, pour avoir accès aux sources et vérifier leur bonne conformité
  • Authentification, un système d’information personnel dédié à chaque personne.
  • Cryptage, de bout en bout pour le stockage et le réseau.
  • Traçabilité, des actions et des transactions passives ou actives.
  • Stratégie, pédagogie orientée utilisateur associant comportement et risque.
CNIL
Risques Les normes de la famille ISO 27001-5 propose une approche méthodique pour aider les entreprises à mettre en place une stratégie de sécurité des système d’information.

ISO 27005
Méthodes Plusieurs méthodes sont disponibles pour mettre en oeuvre une stratégie de sécurité des systèmes d’information de l’entreprise.

  • EBIOS, Expression des Besoins et Identification des Objectifs de Sécurité
  • OWASP, Open Web Application Security Project
  • CC, Critères Communs
ANSSI
Gouvernance

Approche
Nous nous sommes orientés vers une approche par processus en  privilégiant les indicateurs clés de performance issues des séquences identifiées de création de valeur économique.
La solution réalisée pour l’architecture d’entreprise collaborative à partir du système d’information personnel  donne au métier plus de marges de manœuvre :
  • Modélisation simplifiée grâce aux méta-données et aux APIs
  • Sélection facilitée des indicateurs clés de performance
  • Exécution rapide, le langage métier est partagé par la technique 

Ces indicateurs sont regroupés sur des tableaux de bord en temps réel pour faciliter un pilotage métier agile et réactif.