solutions pour le web
Ndjin est un moteur applicatif développé spécifiquement pour une exploitation de type Cloud computing. Ndjin tourne indifféremment sur différentes Infrastructures as a Service (IaaS). Ndjin est accessible uniquement et entièrement via des appels web services. Ndjin est utilisable dans un environnement 100 % indépendant de la plateforme, via Internet (cloud based). Model NDJIN est une plate-forme conçue pour déployer des applications à partir de la définition de leur modèle (approche Model Driven Architecture : MDA).
Le modèle de données est défini à l'aide d'un diagramme de classe statique, d'un diagramme d'état et d'un ensemble de règles métiers associés aux objets définies dans le modèle. Une fois ces aspects définis, une application cliente est en mesure d'opérer sur les données à travers de web services (HTTP/REST au format JSON ou XML) qui s'assureront en permanence de la conformité des opérations avec le modèle. Cette approche garantit une cohérence maximale au niveau du serveur et minimise la marge d'erreur logicielle pour toutes les couches techniques.
Ndjin est une plate-forme applicative en ligne, ou Platform as a Service (PaaS) destinée à faciliter le déploiement d'applications en ligne (Software as a Service ou SaaS). Ndjin est un service web. Les développeurs interagissent avec le moteur applicatif via des interfaces publiques (API). Ndjin supporte une grande variété de méthodes communes d'appels de service web (REST, SOAP, ...) ainsi que de formats de données courants (XML, JSON ...). Des méthodes additionnelles d'accès aux données (Google Data par exemple) peuvent très facilement être implémentées au besoin.
L'interaction avec le moteur applicatif passe uniquement via des appels de type web services. Il n'existe pas de prime abord d'interface graphique Ndjin (de la même façon qu'il n'en existe pas pour les services EC2 ou S3 d'Amazon par exemple) ,mais SMK fournit toute une panoplie d'outils et de codes d'exemples pour aider les développeurs à créer leurs propres structures de données et implémenter leurs modèles métiers. Ces outils sont libres (open source) et chacun peut développer de nouveaux outils ou améliorer ceux déjà existant.
En utilisant les outils fournis, ou directement via des appels web services, un développeur peu décrire les structures de données dont il a besoin pour son application. Il peut également ajouter des relations entre les différentes structures de données, définir des états pour ces données, et mettre en place la logique métier nécessaire au traitement de ces données. Le développeur Ndjin a également accès à des services additionnels courants comme des services mails (entrant et sortant), d'authentification, de facturation, et bien entendu, n'importe quel web service externe fourni par un tiers. Le résultat de ces développements est un moteur applicatif métier, entièrement accessible via web services. Ainsi le développeur est libre de mettre en place tout type d'interface utilisateur, au travers de la technologie de son choix, et/ou de rendre tout ou partie des données et des mécanismes métiers accessibles à d'autres applications via Internet.
La plate-forme est développée en Java, les données sont stockées dans des graphes transactionnels et distribués sur des disques répliqués. La plate-forme fonctionne sur des serveurs Linux. Les applications sont hébergées sur des infrastructures en grille capable de s'adapter en fonction de la charge. SMK s'appuie actuellement sur la plate forme Amazon EC2 (Elastic Cloud Computing) pour l'hébergement et la bande passante de sa plate-forme applicative hébergée. SMK assume la surveillance continue de la disponibilité de ses serveurs, effectue des sauvegardes court terme et moyen terme en local et à distance. SMK couvre une reprise d'activité dans tous les cas de figures, allant d'une défaillance totale de son hébergeur à la défaillance d'un disque de ses machines.
SMK administre continuellement son parc de serveurs et effectue régulièrement les mises à jour de ses produits afin de garantir la meilleure qualité de services pour ses clients.
Pour des besoins spécifiques la plate-forme peut être déployée sur une ou des instances Linux dédiées à des clients afin de leur garantir une puissance machine adaptée à leur volumétrie.