Conclusion: Mathias se lance sur .Net Server

Au cours des 12 derniers épisodes, je vous ai un peu raconté ma vie…
Mais je vous ai surtout fait partagé ce qui m’a sans doute le plus influencé dans le monde du développement .Net/Java.

Maintenant la boucle est bouclée: je me suis lancé sur le développement d’un serveur d’application .Net avec pour influence:

  • EasyPHP
  • Tomcat
  • Spring DM Server
  • OSGI
  • Spring.net
  • COM
  • Gigaspaces
  • Google Chrome
  • Eclipse RCP

Si je reviens au premier épisode d’introduction : Mathias est heureux… mais pourquoi ? je vous montre une pauvre screenshot d’une petite application Winform… mais qu’est-ce que ça cache?

Et bien, cette application exploite mon "moteur à la OSGI" pour :

  • charger des plugins, soit dans un AppDomain, soit dans un processus
  • démarrer dynamiquement les instances de service IService qui font office de point d’entré du plugin
  • demander aux services de se dessiner dans la fenêtre principale

Cela donne quelque chose similaire à Google Chrome, puisque si vous "killer" un process correspondant à un plugin, cela n’affecte pas l’application.

Les plugins peuvent dépendre les uns des autres, ce qui veut dire que le moteur va démarrer les dépendances avant.
Les plugins peuvent communiquer entre eux, comme le fait l’application principale avec le point d’entré IService. Cette communication est faite en .Net remoting (pipe).

Mais ce moteur peut aussi  être utilisé en mode console pour agir comme un serveur d’application!
Vous pouvez alors:

  • lister les "Bundles" qui tourne
  • stopper/démarrer un Bundle, ce qui  va bien sûr démarrer les dépendances nécessaires
  • les bundles sont isolés dans des AppDomains ou Processus différents
  • installer un Bundle à partir d’un ZIP
  • installer un Bundle à partir d’un "repository" (comme dans Spring DM Server)
  • dans le cas de l’installation à partir d’un repository, le serveur va aussi télécharger et installer les dépendances, en tenant compte de la version bien sûr

Vous en voulez plus?

  • Le Repository de Bundle n’est autre qu’une application de type Bundle
  • un Bundle peut être de type "Web", ce qui va démarrer une instance de XSP (serveur ASP.net de Mono)
  • le Bundle "BundleRepository.Web" fournit une interface Web à la gestion du Repository
  • le Bundle "WebManager" fournit une interface Web à la gestion des Bundles et du serveur d’application

Pas mal non?
Ce qui manque à tout cela:

  • Une meilleur gestion des dépendances, exprimée à l’aide d’un XML descripteur de service (comme le XML des plugin Eclipse) basé sur Spring.net
  • Une meilleur communication inter-processus que .Net Remoting, avec gestion d’un annuaire et d’un descripteur de service (comme un WSDL)
  • Des Bundles de type "Job schedulé", avec gestion de Workflow, tout cela avec une interface Web pour leur gestion
  • Le déploiement des Bundles sur plusieurs instances de serveurs (cluster) avec gestion de faillover
  • Un Bundle fournissant une couche de sécurité transverse
  • Un Bundle fournissant un accès à une source de donnée hébergé (SQLite)
  • Un Bundle fournissant un service de type cache (Memcache?)
  • Un Bundle fournissant un service de type Bus (Laharsub?)
  • Un Bundle fournissant un service de "Perf. Counter"
  • Un Bundle fournissant un service de logging transverse
  • Une console d’administration à distance
  • Garantir la compatibilité avec Mono+Linux
  • Des gens motivés pour participer à ce projet OpenSource!
  • Héberger un "Plateform as a Service" sur le Could!!
  • Conquérir le Monde!!!

Alors, qu’en pensez-vous?

Le code source est sur BitBucket (il est aussi sur Github mais beaucoup plus vieux): https://bitbucket.org/grozeille/nsynapse

(PS: je suis super mauvais en nom, j’aurai du l’appeler "carotte" ça passerait mieux)

About these ads

À propos Mathias Kluba
Nom : Kluba Prénom : Mathias Né à Łódź (Pologne) le 11 août 1983 Vie à Issy-les-Moulineaux (France) J'aime : - l'informatique - la musique - le dessin de temps en temps... - le cinéma - refaire le monde

2 Responses to Conclusion: Mathias se lance sur .Net Server

  1. Ping : Introduction : Mathias est heureux… mais pourquoi ? « The World is mine

  2. Reblogged this on {IMHO} and commented:
    Très impressionnant Mathias, bravo !

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

Suivre

Recevez les nouvelles publications par mail.

%d bloggers like this: