10 nov. 2008

Bonnes pratiques JDBC

Voici une liste de bonnes pratiques d'utilisation de l'API JDBC et généralement de l'accès aux données en JAVA et JEE :

- Utiliser un driver JDBC de type 4
- Séparer l’accès aux données de la couche métier (DAO)
- Utiliser un Framework ou une API de persistance

- Fermer les objets JDBC dans un bloc finally dans la même méthode (Connection, Statement, ResultSet)
- Utiliser un pool de connexion (en réutilisant celui du serveur d'application ou en utilisant celui de Apache : Commons-DBCP)
- Utiliser les instructions paramétrées (PreparedStatements) au lieu des instructions standards
- Limiter l’utilisation des instructions spécifiques au SGBD
- Spécifier la liste des colonnes dans les instructions Select et Insert
- Utiliser des objets Date, Time et Timestamp au lieu de String pour récupérer les valeurs temporelles
- Utiliser le bon niveau d’isolation des transactions
- Mettre setAutoCommit à false pour éviter des commit implicites à chaque instruction
- Pas de procédures stockées en langage propriétaire
- Utiliser getGeneratedKeys() pour récupérer les clés générées par la BD
- Utiliser un RowSet pour charger les données de paramétrage en cache
- Utiliser un Statement.setFetchSize(100) p.ex pour les requêtes qui retournent beaucoup de résultats
- Utiliser les MAJ en lot (batch updates)
- Utiliser Connection.setReadOnly(true) dans le cadre des modules en consultation seulement
- Utiliser Connection.releaseSavepoint() pour vider la pile des points de sauvegarde

16 juil. 2008

Green IT : Technologies d'avenir

Avec le social networking et l'Entreprise 2.0 et d'autres technologies, le Green IT constitue l'un des Next Big Things in IT dans les 3 années à venir. Gartner et IDC sont d'accord sur cela et les ont inclus dans leurs trend reports.

On a parlé sommairement des réseaux socciaux ainsi que de l'Entreprise 2.0, mais c'est quoi encore ce nouveau terme : Green IT

C'est à mon avis une étape importante dans le développement des nouvelles technologies

C'est quoi donc ce nouveau terme?

En fait le Green IT n'est pas une nouvelle technologie mais plutôt une nouvelle tendance dans la production, l'acquisition, l'utilisation des produits informatiques consciencieues de l'écologie, de la consommation d'énérgie (Prix du pétrole oblige!) et du développement durable.

Cela commence par l'utilisation d'un ordinateur (arrêt de l'ordinateur, extinction de l'écran..), des imprimantes, des serveurs (virtualisation et Grid Computing) à la construction même des systèmes informatiques. Ainsi des constructeur ou éditeur sont labellé Green IT Vendor.

Mais je crois que pour un utilisateur de l'informatique il y a pas mal de gestes simple non coûteux qui permettent de sauver l'énérgie et d'épargner la nature. 

Je publierais dans un prochain post une liste des actions responsables pour devenir un Green IT User certifié.

15 juil. 2008

Evaluation de solution d'intégration (EAI/ESB)

Dans le cadre de mon travail en tant qu'Architecte j'ai fait une évaluation de solution d'intégration pour une grand ecompagnie d'assurance en italie. Le résultat de l'évaluation a été assez intéressant puisque des solutions open source (associés à un support commercial) ont emergé comme les mieux adaptées (cela dépend bien entendu des poids qu'on met sur les critères).

Les solutions evalué sont les suivantes :

Open source solutions

  • IONA Fuse ESB (based on Apache ServiceMix)
  • Mule ESB
  • OpenAdaptor
  • JBoss ESB

Commercial solutions (Group standards)

  • IBM Websphere MQ Integrator
  • Sun Seebeyond eGate
  • Microsoft Biztalk

Open source solutions

  • +Good technical quality
  • +No initial cost (a support cost is required)
  • +Standardized and open
  • +Rich community support
  • -Support is less present and effective
  • -Less references by and large

Commercial solutions

  • +Robust
  • +Good support and presence
  • +Integrated with other tools from same editor
  • -High cost of licence and support
  • -Complex solutions
  • -No openness (tied to editor)

Je vais publier plus tard le détail de l'évaluation avec le tableau récapitulatif mais voici déjà les recommendations finales :

- If the most important thing is to address the integration problem quickly and the support as soon as the solution works is not critical, OpenAdaptor provides for a good to-the-point solution 

- On the other hand for a longer term strategic solution an open source ESB with a good support like Mule ESB or IONA Fuse is recommended. These solution address perfectly the most frequent integration problems and give more features for future needs especially for deploying a SOA infrastructure.

- If support is highly critical and we can manage the time required for deploying such solutions and its cost IBM Websphere MQ Integrator is recommended.


14 juil. 2008

Qu'est ce que l'Architecture?

Après une longue absence dûe entre autre à des engagements professionnels à l'étranger je reviens avec ce post fondamental.

Qu'est ce que l'Architecture? La question m'a été posé à maintes reprise à cause (ou grâce) à ce métier un peu original que j'exerce: architecte des SI. J'ai éludé la question des fois, et répondu comme on peut d'autres fois. Mais la question restait posé en arrière plan dans mon cerveau. Et c'est en tombant un peu par hazard sur une définition édifiantes que j'ai trouvé la réponse.

D'après cette définition qui date déjà de 22 siècles et qui est souscrite dans le traité le plus ancien sur le sujet "De Architectura" l'oeuvre de l'architecte romain Vitruve 

« L'architecture est une science qui embrasse une grande variété d'études et de connaissances ; elle connaît et juge de toutes les productions des autres arts. Elle est le fruit de la pratique et de la théorie. La pratique est la conception même, continuée et travaillée par l'exercice, qui se réalise par l'acte donnant à la matière destinée à un ouvrage quelconque, la forme que présente un dessin. La théorie, au contraire, consiste à démontrer, à expliquer la justesse, la convenance des proportions des objets travaillés.»

D'après ce traité, l'architecture recherche à établir une combinaison harmonieuse et équilibrée de trois principes contradictoires :

  • Beauté (Venustas)
  • Solidité (Firmitas)
  • Utilité (Utilitas)

Je trouve que la définition elle même est architecturalement parfaite faisant preuve d'une combinaison harmonieuse de beauté, solidité et utilité.

C'est tout simplement ça l'architecture! Chercher à établir un équilibre parfait entre fonction, structure et forme. Après cette définition tout le reste n'est que détails.

Cette définition est valable pour un édifice, un ouvrage de génie civile, un engin de guerre ou un système d'information.

En mappant ces attributs fondamentaux pour les systèmes d'information avec celles du standard international pour l'évaluation de la qualité logiciel ISO 9126 on se retrouve avec : 

L'Utilité réfère aux caractéristiques : Functionality et Usability

La Solidité réfère aux caractéristiques : Reliability et Efficiency

La Beauté réfère aux caractéristiques : Maintainability et Portability

Je me retrouve à aimer plus ce métier après cette définition!

22 janv. 2008

Certifications techniques en ligne avec Brainbench

J'avais découvert il y a quelques années un service de certification en ligne qui s'appelle Brainbench (www.brainbench.com).
Je vous invite à l'utiliser pour des certifications professionnelles en ligne ou pour préparer des certifications réelles.
Il y a un ensemble de tests de certification techniques gratuits dont ASP.Net, C#, Java, J2EE, Administration Linux, DB2, SQL Server. Il y a également des tests de personnalités et de langues. Pour les autres certifications elles sont payantes (de l'ordre de 50$ américains).
Sinon vous avez également un ensemble intéressant de fonctionnalités pour gérer votre carrière en définissant un plan de carrière et un plan des tests qui vont avec.

9 janv. 2008

Web 2.0, Entreprise 2.0, Société 2.0

Pour ceux qui croient que c'est encore un nouvel effet de mode venu d'outre-mers, ou ceux qui croient que la technologie est un simple outil je dédie ces articles intéressant du blog de Louis Naugès qui illustrent comment la technologie peut transformer l'entreprise et la société.



2008, année des réseaux sociaux professionnels Web 2.0 ?

http://nauges.typepad.com/my_weblog/2007/11/2008-anne-des-r.html

Web 2.0, au service de l’efficacité économique d’un pays ?

http://nauges.typepad.com/my_weblog/2007/12/web-20-au-ser-1.html

Les 7 piliers de l’Entreprise 2.0 (première partie)

http://nauges.typepad.com/my_weblog/2007/12/les-7-piliers-d.html

Les 7 piliers de l’Entreprise 2.0 (deuxième partie)

http://nauges.typepad.com/my_weblog/2007/12/les-7-piliers-1.html

8 janv. 2008

avec le WIFI vos données sont surrement à l'extremité de la rue

Partout dans le monde , dans toutes les ruelles dans la planete .. on detecte un signal Wifi ... c'est un signe d'evolution téchnologique de ce petit bijou devenu la solution de tous les internautes pour naviger aisement alors qu'on est dans la cuisine , dans le lit ou meme dans le jardin .... Sauf que le risque a aussi évolué avec l'arrivé de ces technologies ANTI-FIL ... en effet des chercheurs de l'université d'INDIANA affirment qu'une attaque pourrait toucher au moins 20 000 routeurs sur la ville de Newyork en moins d'une semaine... le probleme provient principalement du fait que la plutpart des routeurs wifi sont installé avec la configuration par defaut ... et qui est surement non sécurisée...Meme avec le fameux mécanisme WEP (Wired Equivalent Privacy) les réseaux wifi sont piraté facilement ... mois de 10 minutes c'est trés réalisable ....cependant avec le mécanisme WPA (Wifi Protected Access) les chercheurs estiment que c'est trés difficile de rompre la sécurité du routeur wifi....

pour ceci je rappelle :


WPA (Wi-Fi Protected Access) dispose de deux très différents modes de fonctionnement:

- Nécessite un serveur d'authentification
  1. RADIUS utilise des protocoles d'authentification et de la distribution des clés
  2. Centralise la gestion de l'identification d'un utilisateur
- Ne nécessite pas de serveur d'authentification

  1. Secret partagé est utilisé pour l'authentification
  2. Dispositif de gestion axée sur les pouvoirs de l'utilisateur


Le PSK (Pre-Shared Key) Mode de WPA est vulnérable aux mêmes risques que toute autre communauté de passe système, telles que les attaques de dictionnaire. Mode PSK aussi souffre des mêmes difficultés que la gestion des clefs de tout système où la clé est partagée entre plusieurs utilisateurs, tels que les difficultés de la suppression d'un utilisateur une fois que l'accès a été accordé.
Le mode de WPA Enterprise bénéficie de la maturité de l'architecture RADIUS -, mais il a besoin d'un serveur RADIUS. Ce n'est pas quelque chose qui profitera à la plupart des utilisateurs à la maison.
Les améliorations apportées à la sécurité WPA (Wi-Fi Protected Access)
WPA offre une sécurité supplémentaire par:
Exiger l'authentification 802.1X utilisant
Exiger de ré-entrer en utilisant TKIP
Accroître l'ICV (Integrity Check Value) avec un MIC (Message Integrity Check), pour protéger l'en-tête ainsi que de la charge utile
Mise en œuvre d'un cadre contraire à décourager la reprise des attaques
WPA2
En plus de WPA, certains vendeurs mettent également en oeuvre WPA2, qui permet l'utilisation de l'AES au lieu de RC4.


Pour ceux qui croit que ce que je dis est une extrapolation da la loi de Gauss appliquée aux espaces ouvert! je les invite à voir cette vidéo qui démontre comment on peut cracker un réseau wifi en 10 minutes chrono... intérdit au moins de 5 ans :) ...

5 janv. 2008

Netvibes : Page de démarrage personnalisée

Vous avez probablement déjà utilisé une page de démarrage personnalisée. MyYahoo et iGoogle sont des exemples liée aux deux géants de services internet que sont Yahoo et Google.

C'est quoi d'abord une page de démarrage personnalisée: C'est tout simplement une page qui vous permet de personnaliser le contenu web que vous utilisez le plus pour un accès plus rapide. Ce contenu peut être de la messagerie, des pages web, des applications de productivité (Calendrier, Gestionnaire des tâches, Convertisseur de devise,...etc) ou des flux web affichant les actualités et les nouveautés de certains sites ou blogs.

J'ai déjà utilisé MyYahoo il y a quelques années mais depuis que j'utilise Gmail comme messagerie Internet, iGoogle est devenu mon favoris. Ceci dit, je trouve que le nombre de widgets offerts par iGoogle et le degré de personnalisation permis reste en deçà des attentes.

J'ai redécouvert ces derniers temps un must des pages de démarrage personnalisées qui 'est Netvibes. Netvibes n'est certes pas adossé à un géant des services internet mais reste la page de démarrage la plus utilisé des internautes loin devant Pageflakes, iGoogle, MyYahoo ou Live de Microsoft.

Il est caractérisé par la convivialité de son interface et la richesse de ses widgets. On peut notamment afficher sa messagerie (Gmail, Yahoo ou toute messagerie POP), afficher les actualités de différentes sources, discuter via les services de messagerie instantanée Google Talk, MSN ou yahoo via Meebo ou importer un flux RSS ou Atom de n'importe quel site web.

L'interface est suffisamment intéractive via l'utilisation d'AJAX (voir notre précédant message) permettant ainsi de placer les widget là ou on veut via un drag & drop et de modifier le look and feel de la page.

Les widgets sont regroupées dans des onglets facilitant ainsi leur catégorisation. Vous pouvez ajouter à votre page, des widgets individuellement ou à travers un onglet contenat des widgets cohérentes.

La bonne nouvelle pour les amateurs de réseaux sociaux est que Netvibes va trés rapidement ajouter des fonctionnalité de socialisation avec la nouvelle version Ginger qui va être lancé dans quelques jours ou semaines au plus.

Pour le contenu spécifique au Maroc, on peut trouver des flux de AtlasVista de YaBiladi mais également ceux des blogs de mes amis Rachid JANKARI et Larbi

J'ai crée pour le plaisir une widget affichant le flux de ce blog téléchargeable à l'adresse :
http://eco.netvibes.com/widgets/229316/maroctic