L'intéret de cette tech serait qu'elle soit disponible directement dans tout navigateur, grace à une quelconque surcouche js je pense (les gens ne changeront pas de navigateur juste pour ça)
Ce qui me gêne, c'est que tu me dis que les ressources représentent un type de donnée...sauf qu'ils sont organisés de manière hiérarchique? Quel est l'intérêt? Pour moi, ça pose un gros problème de compréhension : la "ressource root" ne représente aucun type de données, je ne vois même pas quelle interface peut lui correspondre. Sauf si ça fonctionne comme une succession de filtres, et que dans ce cas root représente toutes les ressources?
Quant à l'interface, elle est de quel type, web (HTML/CSSS/JS), ou il faut employer une technologie particulière pour décrire son rendu graphique?
- Edité par Genroa 10 novembre 2015 à 9:38:41
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
Oui c'est pour ça que je l'ai rendu compatible avec le web, c'était dans un but de transition. J'ai ajouté un module hdd qui permet de servir d'explorateur de fichier local, en JS je ne sais pas si c'est possible
Une ressource n'est pas un type de donnée, c'est une information structurée qui peut posséder un ou plusieurs types. Ensuite elles sont connectées entre elles (je génère l'arborescence à partir des connexions)
La ressource root sert de noeud pour y connecter les autres ressources. Quand tu arrives sur un serveur, tu tombes sur cette ressource et tu explores toutes les connexions en partant de ce point. Je me suis fait une interface home pour cette ressource, ça me sert de page d'accueil.
Par exemple pour ma gestion de série, j'ai une ressource Série qui sert de noeud et je connecte les ressources de type serie à ce noeud, puis j'ajoute l'interface à ce noeud qui va lister toutes les séries.
Les interfaces peuvent être côté client ou serveur, soit on récupère les données de rendu depuis le serveur, soit on utilise une interface client qui récupère les données depuis le serveur.
Sur le client nex, on peut avoir plusieurs moteurs de rendu, actuellement web et j'ai teste avec openGL. Par défaut c'est du web et pour changer il faut le spécifier dans le protocole :
NEX:1.0/render:gl;/nxs::res_get;id=10;;
Imaginons que la ressource 10 représente une molécule, on pourrait donc la visualiser en 3D.
Désolé, mais je ne saisis toujours pas le concept de "ressource". Tu n'aurais pas une image simple pour représenter le concept, comme les classes en prog objet, ou je ne sais pas moi? ^^' pour moi le terme "ressource" n'est absolument pas correct ou approprié
Qu'est-ce qui permet à un client de savoir, lorsqu'il récupère une "ressource", qu'elle possède ou non une interface appropriée pour l'afficher? Ca ne peut être par un simple id je suppose
/!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
J'ai fait un module de chat pour tester quelques nouveaux trucs :
Le client exécute les commande d'interface envoyée par le serveur, si l'interface est active, la commande est appelée sinon une notification est ajoutée.
Exemple :
Le serveur envoie nexcom:new_message;msg=salut;
Le client appelle la fonction new_message de l'interface active puis affiche le message.
On peut donc utiliser l'interface client ou serveur (à voir comment choisir sur le client)
Salut, j'ai pas tout suivie, mais est-il possible d'inclure Nex à un projet C++.
De façon minimal, quels en sont les dépendances? Ce "protocole" pourrais être inclue de base à GZE, et aussi d'autre projets comme CpcDos avec lequel je collabore.
C'est open source?
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
Actuellement, j'utilise boost asio, filesystem et serialization en librairie statique et botan / sqlite en amalgamation.
Si tu veux moins de dépendances, il est possible de virer filesystem, serialization et botan assez facilement.
Après il faut voir les besoins du projet, pour l'instant je ne m'occupe pas des performances.
C'est fait pour être intégré à d'autres projets par exemple, tu peux rajouter un header assez facilement dans le protocole, côté base de donnée, j'essaie de faire des requêtes style sql pour n'importe quel sgbd du style :
Je trouve l'idée intéressante, par contre je suis un peu retissant par les dépendance que tu cite.
En fait j'ai besoin de quelque chose de très très léger pour gérer des ressources Web. Je suis très difficile, il faut que ça soit léger pour plusieurs raison, la taille du binaire, le temps de compilation et surtout la portabilité.
Si on prend CpcDos par exemple qui à une interface Web un peu rudimentaire, ça serait très intéressant d'y ajouté ton projet et pouvoir naviguer dans les ressources Web
Par exemple si tu veux porter ton projet sous CpcDos, celui-ci va te fournir quelques fonctions de base, comme des requête FTP, connexion à une DB. L'idéal est d'utiliser le moins de fonction externe possible, ensuite il est aisé de mapper les fonctions et de trouver les équivalents
Je lance l'idée, tu peux y penser, même commencé à rendre ton projet modulable, de pouvoir en désactiver certain monceaux, etc.
Sinon, quel en est la licence?
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
Oui j'ai vu que tu n'aimais pas les dépendances, mais ce n'est pas dans mes priorités de recoder ces dépendances.
Le projet était déjà modulable et il le sera encore plus dans cette 2e version, tu peux choisir les types de connexions que tu utilises, les protocoles, les sgbd etc ...
Mais la gestion des ressources est liée à la partie db, tes ressources web sont stockées comment ? ce sont juste de fichiers ?
Pour la licence, je ne sais pas, je ne me suis pas posé la question
Pour les ressources, javais pensé entre autre à un format sur lequel je travail en ce moment. Un format qui a pour but d'être portable, et qui peut exécuter/interpréter du C++, tout ça en JIT. On peut imaginer des jeux ou applications.
Ce qui serait parfaitement adapté pour ton système, qui peut traiter des ressources à partir de Linux, Windows, etc.
Mais Nex peut-il servir aussi de serveur pour entreposé et faire des backup de fichiers? Ou bien, obtenir la dernière version d'un programme, pour faire des mises à jours automatique?
Mais je ne pense pas qu'une DB soit nécessaire pour ça?
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
En fait j'utilise une DB pour stocker la structure d'une ressource.
J'appelle "ressource" une information structurée qui peut avoir :
- des types (film, image, contact ...)
- des propriétés (email, volume, adresse ...)
- des interfaces (pour visualiser l'information)
- des connexions de différents types (pour avoir un lien logique entre les différentes ressources)
A long terme, l'idéal serait d'avoir un sgdb interne qui gère tout ça mais en attendant j'utilise sqlite.
Pour la partie serveur, tu peux ajouter les commandes que tu veux, je compte faire quelques fonctionnalités de bases puis on peut ajouter des modules / interfaces (c++, html, python prévus) pour ajouter des commandes ou faire des interfaces persos.
Par exemple, la commande pour envoyer des fichiers ressemble à ça :
void file_add(nxs::nex& nex)
{
std::string path = nxs::config::network_download_path;
std::string name = "";
for (size_t i = 0; i < nex.input().data_count(); i++)
{
name = nex.input().param("name", i);
if (name == "") name = "file_" + std::to_string(i);
nxs::file::rename(nex.input().data(i).get(), name);
}
nex.output().add("NXS_TRANSFER_COMPLETE");
}
Je me permet d'intervenir, car j'ai quelques infos qui pourraient vous aider tous les deux.
_______________________
Concernant SQLite, qui est semble-t-il très léger (utilisé en embarqué) et portable (que la bibliothèque standard du C comme dépendance), il semble possible de l'utiliser sous FreeDOS (la base de CpcDOS d'après ce que j'avais compris après ma dernière discussion avec un des membres du projet), via DJGPP.
Par contre, il faut voir si un programme est utile et utilisable pour CpcDOS, car il se peut qu'il y ait déjà des outils du projet GNU intégrer dans FreeDOS d'une part, et d'autre part il semble que d'après une information que Maeiky m'a envoyée le projet CpcDOS utilise maintenant Clang comme compilateur (surtout pour LLVM de ce que j'ai compris), alors que DJGPP repose sur GCC.
Bref, à voir et à étudier pour voir de quoi il en retourne.
Voici un lien supplémentaire que j'ai trouvé sur la compilation de SQLite avec DJGPP.
______________
Concernant un futur remplacement du SQLite, il serait intéressant de regarder du côté du système de fichiers de Haïku (système d'exploitation descendant de BeOS et se voulant sa continuation Open Source): (Open)BFS.
Pour plus d'informations, je vous laisse fouiller sur le site du projet Haiku, où il y aura sûrement des personnes qui pourront répondre à vos éventuelles questions sur le sujet.
______________________
Enfin, concernant les mises à jour logicielles, il devrait être possible d'implémenter avec Nex un système similaire aux systèmes des paquets et des dépôts que l'on retrouve dans les distributions GNU/Linux.
En effet, on pourrait définir comme ressource un "paquet" avec comme propriété une dépendance ou plusieurs dépendances (tel logiciel a besoin de telle bibliothèque de telle version pour fonctionner).
Pour la gestion des dépendances (qui peut vite devenir un casse-tête avec les dépendances inverses et cycliques), il serait utile de regarder comment les gestionnaires de paquets arrivent à les gérer comme Pacman (famille ArchLinux) ou le couple APT/dpkg (famille Debian), et de s'en inspirer.
Mais là, c'est plutôt le rôle du client type NXI (à créer justement), qui permet en même temps d'accéder au réseau Nex.
____________________________
Voilà, en espérant que mon intervention vous ait été utile à tous les deux.
Bonne soirée.
Projet: cours "Histoire des OS" (titre provisoire). Stade: annulé
Je continue donc l'UI (nxi). Le but est d'avoir une interface entièrement personnalisable et flexible. Une fois la gestion de la sauvegarde terminée, je montrerai quelques features du navigateur !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.
GZE, un moteur multiplateforme, adapté pour de la 2D, 3D et création de logiciels.