Les solutions développées par Geomatys reposent sur des technologies dûment éprouvées. Nous créons de nouveaux projets seulement lorsque cela est nécessaire et privilégions la réutilisation de librairies de haute-qualité.
Langages de développement
Nous nous focalisons sur quelques langages pour notre travail de développement :
| Langages | |
|---|---|
| | Java est notre langage socle pour le code géospatial, pour des algorithmes fonctionnels et pour toutes tâches complexes. Nous utilisons Java dans l'ensemble de nos produits, de Geotoolkit à MapFaces. Java est un langage intéressant pour les logiciels de classes d'entreprise :
Java est très populaire et il y a donc beaucoup d'outils pour le développement et une grande quantité de développeurs qui comprennent ce langage. |
| | SQL est le fil conducteur de notre travail sur JavaDB, PostgreSQL, MySQL et Oracle. Nous utilisons SQL pour implémenter nos modèles de relations et nos correspondances entre objets utilisant JDBC. SQL est le langage de-facto standard pour les bases de données relationnelles, ce qui garantit la portabilité de notre travail selon les implémentations. Nous suivons également avec attention les projets poussés par la dynamique NoSQL dans une optique résolument tournée vers le Cloud Computing. |
| | Ce langage de balisage nous permet de décrire la structure des vues présentées à l'utilisateur. Nous l'utilisons dans le cadre de nos développements de clients web légers. HTML est interprété par le navigateur web de l'utilisateur. Son évolution et les standards de plus en plus respectés par les navigateurs web permettent de concevoir une pérennité de nos développements ainsi qu'une grande capacité d'évolution de nos produits. Nous faisons évoluer nos solutions vers HTML5/CSS3 de façon à bénéficier des avancées majeures que cette évolution procure. |
| | Javascript apporte des fonctionnalités riches au client léger proposé à l'utilisateur (via son navigateur web). Javascript est géré par tous les navigateurs web modernes et ne nécessite pas d'installations supplémentaires sur le poste de l'utilisateur. L'utilisation de librairies, comme jQuery ou OpenLayers, très réputées, maintenues et très robustes assurent aux composants web conçus par Geomatys une stabilité et de bonnes performances. |
| | CSS permet d'amener un style graphique aux pages web proposés aux clients légers de nos applications. La séparation de l'aspect graphique global et de la structure de la page (HTML) nous permet de proposer des interfaces modulables selon le besoin, la thématique de l'utilisateur. |
Il nous arrive de développer avec d'autres langages quand cela est nécessaire pour une tâche ou une intégration avec des systèmes existants. Nous développons du code en C, C++ et PHP, des scripts dans des langages shell variés. Nous utilisons le langage UML pour la modélisation des systèmes d'informations que nous devons concevoir. Nous définissons des schémas XML avec XSD, utilisons R pour de l'analyse statistique et composons de la documention avec Docbook. Nous explorons également régulièrement de nouveaux langages, comme Fortress ou Scala pour sa puissance scientifique et sa conception multi-thread.
Technologies et Framework
Nous utilisons de nombreuses technologies différentes dans le cadre de nos développements.
| Technologies et Framework | |
|---|---|
| Couche Présentation | |
| | Java Server Faces est un Framework de présentation JEE sur lequel MapFaces se base. Il permet de décrire le comportement des composants d'une application web aux différents moments du cycle de la requête. JSF nous permet de développer nos fonctionnalités sous forme de composant et ainsi d'améliorer continuellement chacune de ces fonctions au fil de nos recherches et de nos prestations. L'utilisation de MapFaces dans une application web est l'assurance que cette application aura une durée de vie supérieure à une autre : la maturation des composants de MapFaces est la garantie que vos applications gagneront toujours en performances, en innovation et en robustesse. |
| | Struts est un Framework de présentation JEE que nous utilisons dans le cadre de développement de portails. Il nous permet de créer rapidement des composants fonctionnels du site (comme par exemple un formulaire d'inscription au portail). |
| | Java Server Pages est une technique permettant de générer du contenu web par le biais de balises et de langages d'expression (EL, OGNL etc.). Les JSP peuvent être enrichis de bibliothèques. JSF, par exemple, offre une panoplie de composants pré-programmés comme la Datatable. |
| | Facelets est une alternative à JSP dans un contexte JSF : il s'agit d'un moteur de template web qui permet de générer du contenu riche. Il utilise également des langages d'expression. La différence majeure avec les JSP réside dans la vitesse d'exécution de ces pages : Facelets, contrairement à JSP, n'a pas de phase de compilation au niveau du serveur et donc accroît la vitesse de chargement de la page. |
| | OpenLayers est une librairie javascript libre qui offre des outils de cartographie. Elle a été intégrée au Framework MapFaces afin d'offrir des outils cartographiques web performants et totalement synchronisés aux traitements réalisés en Java côté serveur. |
| Couche Traitement | |
| Couche Accès aux données | |
Librairies de code
Notre travail de développement réutilise des librairies existantes, des composants et des frameworks que nous avons jugé légers, stables, bien conçus et écrits et dont les termes de la licence assurent à nos clients d'être capable de réutiliser et étendre le travail.
| Java | Java Advanced Imaging (JAI), vecmath, JSR-275, JavaDB et les bibliothèques JEE... |
| Géospatial | GeoAPI, GeoTK, Constellation-SDI, MapFaces... |
| JSF | AJAX4JSF, l'implémentation Mojarra... |
| Serveurs d'applications | Glassfish, Tomcat, JBoss... |
| Serveur d'identification | OpenSSO, CAS... |
| Installeurs | IzPack... |