Archi & techno

Technologies de l’informatique de gestion pour les applications temps réel

Introduction

En musique, jouer trop tard la note de bonne hauteur fait finalement une fausse note ! Mais bien qu’en informatique de gestion l’instant exact de réponse du système à une demande n’ait pas beaucoup d’importance, certains usages sont sensibles à la réponse en un temps limité garanti. Dans ce post, nous abordons des technologies disponibles pour réaliser des systèmes déterministes dans le temps (appelés « Temps réel dur »).

Ce type de système est bien connu des industriels (contrôle-commande), des avionneurs (calculateurs de vol), des spécialistes du traitement du signal (streaming audio vidéo)…
Lire la suite

Archi & techno

Optimiser les performances de vos applications web sur mobile

La part du web consulté par des terminaux mobiles augmente très vite, et proposer à ces utilisateurs une version mobile devient un véritable enjeu stratégique. Malheureusement, le web mobile n’a pas grand chose à voir avec celui qu’on connaît sur desktop : du fait des faibles performances des appareils mobiles par rapport au desktop, des contraintes qui n’existaient plus vraiment sur nos ordinateurs sont de nouveaux d’actualité :
Lire la suite

Archi & techno

Les 3 S de l’administrateur UNIX, saison 3

Nous avons vu dans les articles précédents comment ssh permettait à Bob de chiffrer ses connexions aux serveurs, comment sudo permettait de restreindre et de tracer qui fait quoi, et comment screen pouvait éviter à Bob de perdre du temps. Fort des ces outils, Bob a commencé à automatiser plusieurs tâches, mais se heurte à des problèmes d’échelle : taper une fois un mot de passe passe, mais cent fois trois mots de passe ne passe plus. Lire la suite

Archi & techno

Utiliser la fédération d’identité sur votre site Web ?

2 mots sur la fédération d’identité

Pour le  grand public, le principal avantage de la fédération d’identité est de disposer d’une identité unifiée, utilisable sur divers sites Web indépendants.
La fédération permet d’orienter les applications compatibles vers un gestionnaire d’identité unifié et ainsi :

  • De disposer d’un identifiant / mot de passe unique et du “Single Sign On” sur l’ensemble des applications fédérées ;
  • De mettre à la disposition des applications une fiche d’identité paramétrable (nom, prénom, date de naissance, sexe, email, etc.)
  • De conserver un lien vers cette fiche d’identité pour connaître ses évolutions

Lire la suite

Archi & techno

Un DSL SQL pour Java

Alors que Hibernate est très largement répandu dans les projets Java pour accéder à une base de données relationnelle, il arrive que l’utilisation en direct de l’API JDBC reste pertinente.
En effet, il demeure intéressant de rester en SQL « pur » plutôt que de sortir la grosse artillerie lorsque :

  • les données de la base sont plutôt pensées tuple qu’objet : le modèle de données ne présente pas de relations complexes entre
    elles.
  • lors de la reprise d’un existant, il arrive que du code métier soit implémenté en PL/SQL par exemple. Les requêtes peuvent alors faire régulièrement appel à ces fonctions.

Lorsque nous sommes arrivés sur un projet de migration d’une application existante qui cumulait les contraintes précédentes (surtout beaucoup de procédures stockées), JDBC nous semblait une bonne idée. Seulement voilà, lorsqu’il a fallu écrire la requête à 60 critères de recherche qui étaient présents selon les critères que l’utilisateur avait entré sur sa belle IHM, je me suis posé la question de comment faire pour construire ladite requête.
Fallait-il faire des tas de « if » pour tester la présence d’une valeur dans chacun des critères de recherche ? Faire les jointures nécessaires selon les critères fournis ? J’ai entraperçu quelque chose de pas très sympa à écrire et à maintenir.

Pourquoi ne pas encapsuler le choix d’ajouter les clauses SQL à ma requête derrière une API qui le ferait selon les valeurs que je lui donne ? Et puis pourquoi pas faire ressembler cette API à du SQL pour pas inventer une nouvelle API ?
Lire la suite

Évènement

Octo @ ScalaDays 2010

Les 15 et 16 avril, la première rencontre de la communauté Scala s’est déroulée à l’EPFL à Lausanne, ville d’origine de ce langage.

100 % compatible avec le Java, le Scala est un langage orienté objets et fonctionnel et qui tourne sur la JVM. C’est un langage plus expressif mais dans lequel les concepts de Java se retrouvent facilement.

J’ai eu la chance de pouvoir participer à cette conférence. Elle regroupait 155 personnes venant principalement d’Europe, mais aussi des États-Unis et même du Japon ! Il y avait à peu près autant d’universitaires que de personnes issues de l’industrie informatique.

Je vais présenter les conférences qui m’ont semblé les plus intéressantes. Par souci de lisibilité, j’ai classé celles-ci de la moins « geek » à la plus « geek ».
Lire la suite

Méthode

Des rituels pour changer

Un double paradoxe

Le titre de ce billet est doublement paradoxal. Le terme de « rituel » lui-même surprend en milieu professionnel. Souvent associé à un contexte religieux, il appartient au registre de l’anthropologue et pas du professionnel ou du consultant en entreprise. Qui plus est, il est associé plutôt à des actions répétées dans un ordre fixe et immuable, et pas au changement

Pourquoi alors ce terme apparait-il, notamment mais pas seulement dans l’Agile?

Lire la suite

Méthode

Résistance, équilibre et renforcement

Just Do It ?

– Qu’est-ce que tu crois que je devrais faire ?
– Moi à ta place j’arrêterais tout simplement de faire X et je commencerais à faire Y.
– Oui, facile à dire…
– C’est une question de discipline. Il suffit de s’y mettre.

Nous avons tous vécu cette scène du conseil d’ami, comme émetteur et comme receveur. C’est un antipattern; comme tous les antipattern, il part d’une bonne idée: dans certaines circonstances, la résistance à faire le premier pas représente le seul obstacle réel au changement. Il suffit de faire!

Lire la suite

Archi & techno

Performances de build Java sous Linux ?

Un matin, j’en ai eu assez d’attendre 15 min à chaque construction mon application par l’usine de développement. Sur mon Mac Book Pro, cela mets deux fois moins de temps. Je suis donc aller chez le revendeur informatique d’à coté, pour acheter un serveur tout neuf. J’installe un Linux (Ubuntu 9.10), je lance mon build, je patiente, et je constate que cela mets 11 minutes. C’est toujours plus lent que sur mon Mac Book Pro; quelle déception ! Effectivement, mon Mac Book Pro est puissant, mais le nouveau serveur contient quand même un coreI5 quad core (le plus rapide que j’ai trouvé), avec 6Go de Ram DDR3 et des disques en RAID 1 !

Pour couronner le tout, un collègue arrive et me dit : j’ai un Windows Seven 32 bits sur une clé USB, on peut essayer si tu veux … On installe, on build, 5 min 30. Ce n’est donc pas le hard qui est en cause …
Lire la suite