Rappel sur les principes de SOA
L'architecture SOA est à toutes les sauces bien qu'il existe actuellement plus d'articles sur le sujet que d'implémentations réelles. Néanmoins, SOA permet de répondre à certaines problématiques de design et de développement :
- - Comment optimiser mon taux de réutilisation dans le développement
- - Comment interagir avec mon ecosystème (business, technique, externe ou interne)
SOA est un pattern d'architecture; ce n'est ni une recommendation, ni un standard et SOA ne vous apporte pas une solution toute faite.
Une architecture SOA sous-entend que l'architecture est composée de services. Ces services doivent suivre les quatre principes suivants :
- - être autonome
- - avoir des frontières explicites
- - partager des contrats et des schémas et non des implémentations ou des classes
- - compatibilité basée sur les policies
Stefan Tilkov propose six nouveaux principes qui permettent de caractériser les services :
- - expose des formats et non des API
- - orienté documents
- - faiblement couplé
- - standards compliant
- - indépendant des offres fournisseurs
- - piloté par les metadata
Très bonne interview sur WS-*, REST
par Sanjiva Weerawarana sur le site Infoq.
Best practices JEE IBM
IBM vient de mettre à jour une best practice J2EE datant de 2004 qui devient
une best practice JEE.
En vrac :
- Always use MVC
- Don't reinvent the Wheel
- Apply automated unit tests and test harnesses at every layer
- Prefer JSPs as your first choice of presentation technology.
- ...
La programmation par contrats
La programmation par contrat (design by contract) est une technique largement utilisée dans les architectures modernes.
Le principe est qu'une classe et ses client interagissent avec un contrat; cette idée a été reprise dans les architectures SOA.
Dans le langage objet, l'interface est une intention alors que la classe est une implémentation. L'interface est le concept de base de la programmation par contrats.
Ref : article de jm heidly
Les IHMs reviennent au goût du jour
Abandonnées il y a quelques années pour cause de webisation des applications, les IHMs reviennent au goût du jour dans la mouvance Web x.0 (x > 1).
Au début des années 90 au temps des applications client serveur, des spécialistes IHM travaillaient sur le design, l'ergonomie et l'efficacité des interfaces homme machine dans un contexte d'informatisation de l'entreprise. L'IHM prenait une place prépondérante dans les applications informatiques car ces applications s'adressaient, en majorité, à des personnes peu formées à l'utilisation d'un poste de travail (l'informatisation de certains métiers a engendré de nombreux changements de carrières et de spécialisations).
Ces métiers autour de l'IHM ont complètement disparu avec la mode des applications WEB dans l'entreprise; mode motivée principalement par des critères économiques (baisse de la maintenance et des coûts de formation des utilisateurs). Les IHMs sont prises en charge directement par les développeurs; les designers intervenant à la marge en fournissant un canevas (quelques fichiers css).
Cette démarche de délaissement des IHMs a fait naître le Web 2.0 sur l'Internet; mouvement social déclenché par les utilisateurs de la toile. De fait, l'IHM revient au premier plan mais elle reste encore une affaire de développeurs.
Avec la sortie des technologies WPF XAML de VISTA, des spécialistes travaillent de nouveaux sur les interfaces et desktop de demain (voir ce lien) avec des possibilités améliorées : interfaces en 3D, interactivité avec les entrées sorties.
Pour s'en convaincre, tester le NewYork Times reader ou le catalogue interactif de la FNAC.
Pour les développeurs, un article MSDN très intéressant.