vendredi 18 décembre 2009

La boucle est bouclée

Il y 40 ans, à l'age d'or des mainframes (les jeunes ingénieurs ne savent même pas ce que cela veut dire), les applications sont toutes centralisées sur une machine unique. On y accéde depuis un terminal banalisé.
L'ensemble des fonctionnalités, des droits d'accès, les mécanismes de getion des transactions sont fournies par le serveur "mainframe".

Puis les PCs apparaissent, suivis par une interface graphique plus ou moins ergonomique, mais avec des couleurs, ce qui plait beaucoup aux utilisateurs qui veulent en profiter pour leurs applications quotidiennes.
Un énorme chantier d'environ 10 ans se déroule alors, permettant de redévelopper l'ensemble du parc applicatif des entreprises dans des environnements dits de "nouvelle technologie".
C'est d'abord l'avènement du "client/serveur" (outillé petit à petit par des outils "L4G" tels que PowerBuilder et les premièrs versions de Microsoft VB). Ce qui se traduit par l'éclatement de l'intelligence des logiciels sur les postes des utilisateurs et de multiples serveurs de bases de données.
Ce premier modèle étant ruineux en termes de déploiement et de coûts de maintenance, vient le règne des premiers outils "multi-tiers", ancêtres du fameux modèle MVC (Model - View - Controller). Les outils Natstar et Forté, déjà équipés de frameworks, sont les plus productifs que l'industrie du logiciel ait connu. On commence à rappatrier l'intelligence des logiciels sur les serveurs.

Puis Sun a la bonne idée de concevoir Java, une architecture multi plate-forme, censer unifier les développements. On fait un bond de 10 ans en arrière en termes de productivité des développements.
Microsoft prend le train en marche et construit son architecture .Net.
On jette donc à la poubelle le parc applicatif et on le redéveloppe, ce qui prend encore environ 10 ans.

Pendant ce temps, internet monte en puissance et le système d'information des entreprises s'ouvre de plus ne plus vers l'extérieur : partenaires, fournisseurs, clients et grand public.
On commence par bricoler des couches web par dessus les architectures existantes, on fait évoluer tant bien que mal HTML (+ CSS + Javascript) pour essayer d'être le plus proche possible des interfaces "riches" (en bugs ?).
Les navigateurs internet (les terminaux de demain) se font la guerre et Microsoft fait de la résistance face à la standardisation des technologies Web.
Adobe en profite pour faire évoluer son plugin Flash et en faire un outil (une plate-forme ?) de développement web.

Coté serveurs, on les virtualise pour essayer de diminuer leur coût et maîtriser leur multiplication. On commence sérieusement à envisager d'externaliser les logiciels de l'entreprise sur le web, dans une sorte de nébuleuse : le "cloud". Ces fameux clouds (privés ou publics) se traduisent par des nuées de serveurs. Les applications s'affichent dans les navigateurs sur nos PCs, laptops, netbooks, smartphones et autres smartbooks.
Google est le visionnaire actuel et le moteur de ces nouvelles architectures.

On peut imaginer que le chantier des 10 prochaines années va être de migrer les applications des entreprises vers un mode web natif.
Les applications qui n'ont pas été conçues selon le modèle MVC (Model - View - Controller) sont condamnées à plus ou moins long terme à être jetées à la poubelle et redéveloppées pour supporter ce nouveau mode de déploiement (rapide) et d'utilisation (massive).

Si on résume :
  • Années 1970 - 1980 : mainframes
    1 serveur - des terminaux
  • Années 1990 : "nouvelles technologies"
    des serveurs - des PCs
  • Années 2000 : Java / .Net / Internet
    des serveurs - des PCs - des navigateurs
  • Années 2010 : Web
    le cloud (boite noire qui remplace le mainframe d'antan) et des navigateurs (nos nouveaux terminaux)

On a donc bouclé la boucle.
L'histoire ne s'arrétant pas dans 10 ans, je vous laisse imaginer la suite ....

Après son smartphone, Google pourrait sortir son propre netbook sous Chrome OS

Lancée par TechCrunch, la rumeur assure que Google a déjà commencé à travailler avec un fabricant sur un netbook Chrome OS. Il pourrait être commercialisé fin 2010, en vente direct et auprès d’un opérateur ....
Lire la suite ...

mercredi 9 décembre 2009

Chrome : les versions Mac, Linux et les extensions enfin disponibles - Actualités - ZDNet.fr

Attendues de longue date, les versions Mac et Linux ainsi que les extensions pour Chrome sont disponibles en version bêta pour le moment. De quoi permettre au navigateur de Google de vraiment décoller auprès des internautes ?
Lire la suite ...

lundi 7 décembre 2009

Le SI dans les nuages


Les nouveaux smartphones débarquent sur le marché : ces fêtes de Noël devraient consacrer leur succès.
Les netbooks portent le marché de l'industrie informatique en ces temps de crise.
Bientôt vont arriver sur le marché les tablettes (ou smartbooks) : à mi chemin entre les smartphones et les netbooks.
Le point commun de tous ces appareils est leur connectivité à internet omniprésente, via wifi ou réseau 3G.

Parallèlement, Google est en train de préparer l'OS du futur : un OS dédié à ces nouveaux matériels et à leur mode de fonctionnement : très lèger, sans logiciel (ou très peu) installé sur la machine.
Nous entrons doucement dans l'ère post windows/mac.

Les avantages ?
Regardez les logiciels Google (Mail, Calendar, Apps, Wave) : les versions s'enchaînent, s'enrichissent de manière transparente pour nous, utilisateurs. Des millions de postes clients sont instantanément à jour. Nous y accédons, quel que soit le poste de travail utilisé : au travail, à la maison, dans un web café, à l'aéroport, sur notre PC, portable, téléphone, tablette.

Mais les logiciels existants aujourd'hui n'ont pas été conçus pour ce modèle.
Il est temps de concevoir de nouveaux logiciels pour les faire fonctionner nativement dans ce mode :
  • Utilisation de langages et frameworks adaptés : PHP + Symfony, Ruby + Rails, .Net + ASP, Java + ??? (là, je sèche ;-)
  • Conception systématique en MVC (Modèle / Vue / Controller), les vues étant dispersées entre pages web standards, pages pour terminaux mobiles et services web, la logique métier doit rester unique
  • Penser aux performances dés la conception : votre application sera peut être utilisée par des centaines de milliers d'utilisateurs
  • Concevoir les fonctions en mode collaboratif dés le départ : utilisation de composants de workflow
  • Penser au mode déconnecté : il peut arriver qu'un utilisateur soit déconnecté momentanément du réseau : il doit pouvoir continuer à travailler, la synchronisation se faisant automatiquement lorsque le réseau est à nouveau disponible
De même, le process de développement doit également être adapté : les cycles de développement en V, avec des phases interminables de spécifications, peuvent être oubliés.
Les processus agiles semblent les mieux adaptés au développement de ces nouveaux logiciels :
  • Itérations / livraisons fréquentes (outillées afin de limiter la perte de temps et les risques d'erreurs)
  • Conception des tests / des jeux de tests avant le développement
  • Interactions permanentes avec les utilisateurs
Le trio gagnant selon moi :
  • logiciel conçu nativement pour le web, avec une plate-forme de développement adaptée
  • Industrialisation du développement à base de framework MVC et scripts d'automatisation
  • Process de développement / déploiement agile

jeudi 3 décembre 2009

Cartographie et geolocalisation : Quelles utilisations ?


Google Maps : tout le monde connait et l'utilise
Google Maps Navigation : bientôt disponible sur nos téléphones

La géolocalisation et les applications cartographiques ont été démocratisées par Google. De nombreux sites et applications utilisent ses services pour représenter des données sur une carte.
Les métiers de la supply chain et notamment le transport sont des clients tout désignés de ce type d'applications.

Listons quelques unes des utilisations possibles :
  • localisation des sites d'une société : usines, entrepôts, magasins, sites transport, ...
  • localisation des camions d'une flotte ou d'un sous-ensemble d'une flotte
  • suivi des flux en temps plus ou moins réel => affichage sur la carte des évènements : retards sur site, blocages (bouchon, accident, ...), ... tout reste à inventer
  • affichage d'indicateurs sur fond géographique (CA par région, département, taux de remplissage par sens des flux, ...)
Avec l'arrivée et bientôt la démocratisation des "smartphones" (téléphones intelligents) connectés en quasi permanence à internet (et forfaits illimités qui vont avec) et dotés du GPS, notamment Android, on peut imaginer dans un avenir proche de mettre à disposition des chauffeurs des outils leur permettant d'être en relation quasi permanente avec le système d'information :
  • récupération d'une mission de transport sur le terminal
  • couplage avec les fonction de navigation GPS pour l'amener à bon port
  • saisie des évènements du transport : arrivée, départ, mise à quai, retards, ...
  • reroutage depuis l'exploitation en fonction des évènements
  • saisie du retour de tournée, validation du destinataire
  • ... ... 
Et tout ceci à des coûts défiant toute concurrence (cf. le modèle Google)

mercredi 2 décembre 2009

Comparatif Data Exchanger / Talend

Chez Id Logistics, nous utilisons depuis 6 ans Data Exchanger, qui nous rend de bons services.
Ses caractéristiques :
  • Plate-forme cible : Windows Server (et windows pour les postes de développement)
  • Exécution des scripts de manière interprétée
  • Consoles d'administration et de supervision en mode web
Ses points forts :
  • Facilité d'installation, de paramétrage et de déploiement
  • Facilité de prise en main par les techniciens, voire par des super utilisateurs
  • Performances très acceptables (dans certaines limites : voir ci-dessous)
Ses points faibles :
  • Accès aux données via ODBC
    => performances limites sur de gros volumes de données
    (la future version utilisera probablement les drivers .Net et devrait résoudre ce problème)
  • Impossibilité de croiser les données de tables provenant de bases de données différentes
    => obligation de passer par des tables de travail dans la base cible
    (là encore, la future version va proposer de nouveaux composants dédiés à l'ETL qui résoudront ces limitations)
Depuis quelques mois, à titre de veille technologique, nous avons étudié l'offre Talend (qui n'en a pas entendu parler ?)
Ses caractéristiques :
  • Multi Plate-formes : génération de code Java et outil de développement en Java (basé sur l'outil Eclipse)
  • Plusieurs outils d'administration et de suivi, soit en mode web, soit basé sur l'outil Eclipse
Ses points forts :
  • Multi Plate-formes 
  • connecteurs BD optimisés
  • Nombreux composants
Ses points faibles :
  • Offre d'outils d'administration et de supervision disparate (certains outils en mode web, d'autres basés sur l'outil Eclipse) 
  • et pas complète (il manque notamment un véritable ordonnanceur une administration des déclencheurs dans le référentiel)

En résumé, l'offre data exchanger est une offre complète et bien intégrée, simple à installer et administrer. Ses 2 points faibles sont l'outil de développement qui a une génération de retard sur son concurrent et les accès BD qui doivent être améliorés (drivers .Net + jointures multi bases). Tout ceci sera probablement disponible dans la future version.
Quand à l'offre Talend, elle est très prometteuse mais ne fournit pas encore une palette complète et surtout intégrée d'outils d'aministration et de supervision.

A suivre ....