jeudi 8 décembre 2005

Petit déjeuner SQLi sur Java / Swing



Un autre petit déjeuner; avec le groupe SQLi ou j'y ai présenté ReachPeople
Voici le lien de l'annonce de cette demi journée.

vendredi 18 novembre 2005

Ajax, Hector, et leur talon d'Achille

Laurent Bédé*, 01 Informatique (n° 1836), le 18/11/2005 à 00h00


C'est ainsi, la communauté informatique a besoin de ses jeux du cirque. Après l'affrontement pour le titre du meilleur mécanisme de persistance objet, place au combat que se livrent, d'un côté, les défenseurs du web enrichi et, de l'autre, les partisans du client lourd. Ce dernier regroupe l'ensemble des technologies dont le prérequis à l'exécution est le téléchargement du code de l'application sur le poste de l'utilisateur. On en distingue deux catégories : celles basées sur une machine virtuelle Java, et les autres. La première oppose deux bibliothèques de composants graphiques : SWT, promue par Eclipse - et IBM -, et Swing, poussée par Sun. La seconde héberge surtout Microsoft Winform . Net, Macromedia Flash, ainsi que tous les L4G propriétaires - Powerbuilder et Delphi en tête.

Il n'y a donc pas un seul client lourd, mais un ensemble d'environnements concurrents et incompatibles, qui se disputent le droit de rivaliser avec l'autre type de client - riche, celui-là -, porté par la technologie Ajax (1) . .

Le client Java en panne de standard

La proposition de Sun se distingue nettement des autres challengers, comme le montre une récente étude d'Evans Data Corporation sur l'adoption des technologies. En 2005, Java/Swing arrive en tête des outils de développement pour client lourd : 47 % des développeurs interrogés l'utilisent, soit 27 % de mieux qu'en 2004.

Si ce rapport ne concerne que les Etats-Unis, au vu du choix de Fiducia AG, l'Europe pourrait confirmer, sinon accentuer ce résultat. Cet hébergeur allemand de logiciels bancaires, en mode hébergé, déploie son logiciel client Java/Swing de 120 Mo sur plus de 100 000 postes clients avec Java Web Start au travers de bandes passantes souvent réduites à 64 Kbit/s.

Swing, appelons-le Hector (2) pour la métaphore mythologique, serait l'alpha et l'oméga des interfaces riches et de la transparence du déploiement. Peut-être, mais pas en l'état, car Hector souffre de ne pas être spécifiquement dédié aux applications de gestion. A tel point que rien n'empêche de bâtir sur ses fondations une console de supervision de centrale nucléaire ou un simulateur de cockpit d'avion de ligne. En théorie, c'est un gage de souplesse. En pratique, le coût pour spécialiser cette bibliothèque à l'informatique de gestion est prohibitif pour les projets de petite et moyenne envergure. D'où la pauvreté de l'offre de frameworks répondant au problème. Et pour cause : il manque un standard dédié au client Java - à l'instar de J2EE pour le serveur -, qui pérenniserait des investissements nécessairement importants. La notion de « conteneur client lourd » reste à inventer, et son modèle de programmation avec.

Ajax écartèle le modèle MVC

Si Hector entre dans l'arène en quête d'une plus grande reconnaissance, Ajax, le populaire, harangue la foule en délire. Ce n'est pas un outil, mais un modèle évolutionniste, qui s'appuie sur les standards existants et promet d'élever le web au rang des meilleures interfaces homme-machine. Mais la puissance d'Ajax ne s'exprimera pas si facilement. D'abord, parce qu'il écartèle le contrôleur du fameux modèle MVC (Model-View-Controller) entre le serveur et le client, sans pour autant en spécifier de substitut. Ensuite, parce qu'il repousse le HTML, les feuilles de style CSS, le Javascript et l'invocation asynchrone XML aux limites de leurs implémentations propriétaires par les navigateurs. Enfin, parce que la pléthore d'outils estampillés Ajax n'est pas le signe d'une grande maturité.

Le HTML pourrait ne jamais atteindre la richesse génétique du client lourd. Le prix à payer pour enrichir une interface web avec Ajax est une fonction exponentielle de la valeur ajoutée. Swing inverse cette formule, mais augmente l'investissement initial.

Ironie de l'histoire, Ajax vénère trop de dieux, alors que Hector s'en cherche un désespérément. Si l'on en croit la mythologie, il n'y eut qu'un seul combat entre ces deux héros. Combat qui ne vit ni vainqueur ni vaincu : à la nuit tombée, ils échangèrent leurs armes et firent la paix.

(1) Ajax fut, après Achille, le plus vaillant des Grecs.(2) Hector fut le plus fort et le plus vaillant des Troyens.* directeur technique du projet AceTP chez BNP Paribas Securities Services.

mercredi 16 novembre 2005

Ce qu'ils pensent d'Ajax

Anicet Mbida, 01 Informatique (n° 1835), le 16/11/2005 à 07h00

Le sceptique : Laurent Bédé (BNPParibas Securities Services)

« Il ne faut pas enterrer le client lourd. »

« Le déploiement en client-serveur n'est plus un problème. Avec un nombre fini d'utilisateurs, des outils comme Java Web Start assurent un déploiement transparent. Fiducia AG, par exemple, a déployé automatiquement une application Java/Swing de 120 Mo sur plus de 100 000 postes. Derrière Ajax,il y a un bricolage incroyable. Même si les outils s'améliorent, les meilleures bibliothèques d'aujourd'hui atteignent à peine le niveau de ce que faisait Visual Basic il y a dix ans. Quel intérêt y a-t-il à rester centré sur le navigateur ? C'est le nivellement par le bas. Le client du futur, le téléphone, a depuis longtemps opté pour un modèle avec des applets. »

mardi 8 novembre 2005

Petit déjeuner OCTO Technology sur Java / Swing à l'ATELIER BNPParibas


En partenariat avec Octo Technology, j'y ai présenté le framework client riche Java / Swing ReachPeople développé au sein de mes équipes entre 2002 et 2005 dans le cadre du project AceTP.
Page de l'agenda de cet événement.

jeudi 15 septembre 2005

ReachPeople Overview

ReachPeople est un framework Java/Swing developpé dans le cadre du projet AceTP par mes équipes. Je me suis investi dans sa conception et sa promotion à l'intérieur et extérieur du groupe BNPParibas. Le texte qui suit est la factsheet présentant ReachPeople.
ReachPeople: empower rich desktop client applications

ReachPeople is a framework for building rich client applications above Sun’s Java / Swing standard in such domains as finance, accounting, CRM, insurance and healthcare.

It is the solution of choice for replacing old proprietary client server applications and boosting poor usability of HTML Web like applications. It fits in any kind of architecture topology: client-server, n-tier, offline or standalone application.

ReachPeople bridges the gap between low level Swing APIs and the need of business applications developers to work with very high level rendering components and technical services.

It is crafted by people for other people: end-users, architects, developers and IT managers.

For end-users

A consistent desktop, a homogeneous look and feel, a standardized screen behavior, make application easier to learn and faster to use. Messages like errors and warnings are normalized, in terms of content and display.

A set of high level rendering business components give more control to users than ever:

  • PowerTable that leverages on most common used features of spreadsheet softwares, while providing unlimited user customization capacity.
  • Setting management let user customize each component individually, and save as many settings as needed.
  • Selector is an overboosted combo-box for selecting one or more values, among virtually unlimited lists.

All graphical components are designed and tested to be keyboard driven, for maximum end-user productivity. Powerful surface controls and formatting abilities help users to correct typein mistakes, at the earliest possible time.

User’s performance is also adressed with the management of background tasks, keeping application usable while long-lasting operations only freeze affected GUI subpart. Low memory and CPU footprints let more room to retrieve more data from the server than you ever dreamed considering Web-based applications.

And the nightmare of deployment with first-generation client / server, or cross-browser Web applications is over: ReachPeople is Java WebStart™ ready.

For architects and developers

ReachPeople provides the backbone of a rich client application, with unified window collaboration scheme, and well-defined client / server conversation model.

This conversation model takes advantage of a thin invocation layer for hiding the underlying protocol(s) like JDBC, RMI, SOAP, HTTP. Of course, implementations are pluggable. As a benefit, it is possible to use remote invocation over HTTP for preserving existing Webapp architecture. Security concerns are handled through simple patterns and a pluggable architecture to fit in any security infrastructure.

A bi-directional, type-safe binding API provides a productive and innovative way to bind “model” objects to visual components. An internal message bus enables inter-windows communication.

Application tuning is taken to heart, with explicit error messages and fine- grained logging provided by the framework.

A complete documentation provides startup guide, know-how, FAQ, release notes, sample applications, javadocs, code samples, best practices and patterns.

For IT managers

ReachPeople meets high quality standards, with 96,000 lines of production-ready code (including 39,000 lines of comments) covered by more than 1000 unit tests. Those tests include “live” GUI testing with Abbot. With Cenqua’s Clover, measured code coverage is near 70%.

ReachPeople does not depend on any proprietary / commercial library, but well-recognized open-source libraries (with liberal licences), neither it sticks to one particular development environment.

It perfectly fits in a software factory and automated build process. The framework itself is built with Apache Maven.

ReachPeople has serious references. BNP Paribas successfully deployed it in production since March 2005. It empowers the AceTP project, the core mission-critical system of BNP Paribas Securities Services. With 500 screens and 200 developers, it is one of the biggest Swing/J2EE project in Europe. During an audit led by ATOS in 2005, ReachPeople has been recognized as a key factor of success.

Contact

Laurent BEDE – BNP Paribas Securities Services

See some screenshots below; the PowerTable in action:








jeudi 30 juin 2005

La fin des bases de données relationnelles


Laurent Bédé* , 01 Informatique (n° 1821), le 30/06/2005 à 00h00

Le langage SQL a joué un rôle de précurseur en sacrifiant vingt années d'alternatives sur l'autel du « on peut sûrement faire mieux, mais c'est un standard, et on s'en accommode » . Au début des années 80, l'apparition des systèmes de gestion de bases de données relationnelles (SGBDR) offre un cadre structuré et normalisé aux données. La nécessité de travailler avec un langage standard d'interaction avec les données et de fournir l'accès à ces informations à un utilisateur lambda donne naissance à SQL. On assiste alors à une extraordinaire arnaque intellectuelle, en retombant dans le piège de logiciels toujours trop compliqués pour un néophyte, ou trop limités pour un informaticien.

Aujourd'hui, après le télescopage du client-serveur et du web, les architectures à la mode nous font marcher sur la tête. Ainsi, les données stockées en mode relationnel sont extraites en SQL, de façon à alimenter un modèle objet, qui doit être à nouveau mis à plat pour l'ultime conversion à des fins de représentations tabulaires. Vu sous cet angle, la question se pose de savoir qui, de la base de données ou du serveur d'applications, doit rendre son tablier.

D'un aspect purement pragmatique, il faudrait détruire la brique du milieu, supprimant la double distorsion (relationnel/objet et objet/représentation tabulaire), et par là même quelques décennies d'avancées technologiques. N'en déplaise aux conservateurs, je préfère une autre option.

Les serveurs d'applications prennent le relais

Car, en regardant de plus près, les SGBDR représentent « le » point faible des architectures à plusieurs niveaux. Risques d'indisponibilité, problèmes de performances, évolutivité trop verticale... Leur mode d'interaction n'est plus du tout en phase avec les standards de développement objet et XML. En outre, les futurs ingénieurs ne sont plus formés au SQL, et encore moins aux formes normales. Mais alors, si la base de données disparaît, qui prend le relais ? Les serveurs d'applications bien sûr. Un exemple : même si dans le monde Java, les premières spécifications des EJB Entity ont échoué pour donner naissance dans la foulée à JDO, d'un côté, et à Hibernate, de l'autre, elles proposent une façon ­ plutôt incompatible ­ de résoudre la différence d'impédance objet/scalaire. Peu importe, la bataille acharnée que se livrent les partisans des deux camps, tous ceux qui ont expérimenté ce mapping objet/relationnel (ORM), dressent un même constat : la différence se fait autour de la gestion du cache.

Un langage d'interrogation objet pour remplacer SQL

Une unification des ORM est attendue en fin 2005. Le cache, lui, restera encore longtemps loin de toute normalisation. Qu'il s'agisse de celui de niveau 1, propre à chaque session (ou transaction) qui assure qu'un objet n'est instancié qu'une seule fois ; ou de celui de niveau 2, qui propose des services de réplication transactionnelle interserveurs, de tolérance aux pannes, de gestion de conflit sur mise à jour concurrente, et, enfin, de tolérance à l'absence de base de données. Ce cache en écriture, réparti sur toutes les instances d'une grappe de serveurs d'applications, supprime de facto le goulet d'étranglement inhérent aux moteurs de persistance classiques. Un langage d'interrogation orienté objet remplace alors SQL ; la distorsion objet/relationnel est éliminée, et avec elle le mapping. Cerise sur le gâteau, on administre les composants exécutables et leurs données depuis une console unifiée. Les conditions optimales pour l'arrivée d'un mode de persistance asynchrone, distribué et à évolutivité horizontale et linéaire, se trouvent donc réunies. Une telle technologie peut donc ­ en théorie ­ prétendre se substituer au SGBDR et le reléguer au rang des bandes magnétiques d'archivage.

Bien entendu, tout cela n'en est encore qu'au stade préhistorique. Les fournisseurs se défendent en faisant la promotion du Datagrid ; d'autres mettent l'accent sur les développements Javaspace, JCache ou propriétaires.

* directeur technique du projet AceTP chez BNP Paribas Securities Services