vendredi 18 septembre 2009

La technologie Captacha dans le giron de Google : numériser tous les livres du monde

Google met la main sur ReCaptcha et sa technologie de numérisation.

Basé à Pittsburgh, aux Etats-Unis, ReCaptcha est une émanation de l'université Carnegie Mellon, emploie moins de dix personnes.

 

ReCaptcha a lancé la technologie Captcha (Completely Automated Public Turing test to tell Computers and Humans Apart) permettant de forcer la saisie d’un code dessiné dans une image, et distinguer ainsi les utilisateurs humains d'un site des robots logiciels.

SNAG-603OCR et numérisation

Ce qui intéresse google c’est le savoir faire en reconnaissance optique de caractères (OCR) de l’équipe de ReCaptcha.

Le projet de numérisation du savoir papier du Monde entier, a besoin de ce type de technologie.

Ainsi, Goggle va pourvoir améliorer la qualité de numérisation de livres anciens via Google Books. Tout l’enjeu est de pouvoir augmenter la pertinence des recherches de son moteur destiné aux livres et de générer derrière de la publicité.

La question qui persiste, Que va faire Goggle pour les livres chinois, arabe et autres langues … ?

Mais ceci est un autre sujet.

mercredi 16 septembre 2009

Tutorial Mule ESB : les principales composantes

NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)

Présentation

Usage simple de Mule pour réaliser une intégration synchrone entre deux services

clip_image002

Ce tutorial contient plusieurs leçons,

Le didacticiel contient des leçons qui vous guident à travers la création d'un projet Mule et de nouveaux fichiers de configuration et d'application.

Une simple application Mule qui présente les concepts EIP et qui montre l’usage des nampaces, ses connecteurs, ses transformateurs et des points de connexion (Endpoints)

Installer Mule et son IDE

Installer Mule

Comme la majorité des applications Java, l’installation de Mule est très simple. Il suffit d’avoir Java 5 installé sur son poste pour que tout fonctionne sans problème.

Deux étapes

1) installer Java :

la version 1.5 + (la version 1.6 est recommandée)

2) installer Mule :

Nous allons utiliser la version 2.2.1 (mule-standalone-2.2.1.zip est la version stable en Juillet 2009). La version 3.0.0 est encours de finalisation et ajoute le support d’OSGI

Télécharger Mule à partir du site web de Mule http://www.mulesource.org/display/MULE/Download

1) Il suffit de décompresser le fichier mule-standalone-2.2.1.zip, dans un répetoire

2) Créer une variable d’environnement MULE_HOME F:\01_Tools\mule2.2.1

clip_image004

3) Ajouter %MULE_HOME%\bin au Path

clip_image005

4) Tester l’installation

clip_image006

5) Tester l’exemple echo :

%MULE_HOME%\examples\echo\echo.bat

Le résultat devrait être comme suit :

clip_image008

6) Mule est opérationnel et prêt à l’emploi.

Installer l’IDE de Mule

Suivant l’exemple des solutions commerciales (Biztalk, Websphere, Sonic …) Mule propose des outils d’aide à la création de projets d’intégration avec son ESB : un IDE pour simplifier la création de configuration Mule.

Comme tous les leaders de la communauté Java, Mule a compris qu’il a intérêt à suivre la mouvement Eclipse : l’IDE de Mule est proposé en tant que Plugin’Eclispe.

Nous allons supposer l’usage de la version Ganymede de Eclispe : la 3.4.x

1) Le site de mise à jour est le suivant : http://dist.muleforge.org/mule-ide/updates/3.4/

Une fois installé, la configuration de Eclipse est simple

Allez dans Window > Preferences.

Cliquer Mule, et Add.

Indiquer le répertoire Home de Mule

clip_image010

Eclipse, est maintenant informé de la version de Mule sur votre environnement de développement

Vous pouvez commencer à créer des projets d’intégration avec Mule

mais, ceci est un autre sujet …

dimanche 13 septembre 2009

Tutorial Mule ESB 2.x: une introduction

NB : cet article fait partie d’une série de présentation et de tutoriaux pour démystifier Mule ESB : http://net-progress.blogspot.com/)

C’est quoi Mule

clip_image001

Mule est un framework de messagerie basé sur une architecture EDA et mettant en ouvre les principes d’intégration du fameux livre Enteprise Integration Patterns by Gregor Hohpe et Bobby Woolf.

Le cœur du système est le bus de message, qui route les messages entre les applications.

La version 2.x de Mule a innové dans le sens où elle n’a pas suivi l’approche classqiue des ESB/EAI qui consiste à convertir systématiquement tout message transitant dans le Bus en un format pivot. Mule convertit seulement les données qui sont nécessaires.

Mule n’exige pas l’usage d’un seul format commun de message et la nécessité d’adaptateurs pour convertir du format de l’application cible vers le format pivot..

L’information est envoyée sur un canal de communication, comme HTTP ou JMS, et est transformée seulement si nécessaire au cours du traitement.

Ainsi, Mule améliore les performances et réduit les coûts de développement par rapport à un ESB traditionnel.

Au niveau le plus simple, quand on connecte les applications à Mule, il lit les données venant d’une application, les transforme si c’est nécessaire pour que l’application cible puisse les lire, et les envoie vers une autre application.

Un message est simplement un paquet de données manipuler et envoyer entre les applications sur un spécifique channel (aussi appelée une queue).

Intégration de Mule

· Les composants MuleESB

o Les connectors

o Le container léger Spring

o Les routers

o Les transformers

clip_image003

Quand un message est envoyé par une application (comme la facture par Order Entry ) , Mule relève le message, l’envoie à un service qui le traite avec sa logique métier (comme la vérification du client, l’inventaire des données en bases), et ensuite le route correctement vers une autre application (comme l’application Order Fulfillment). Mule contient plusieurs parties qui gère le traitement et le routage des messages.

clip_image005

La part principale du service est le service component. Le service component exécute la logique métier sur les messages, comme lire l’objet Facture, lui ajouter des informations qui provient de la base données clients, et ensuite le forwarder vers l’application Order Fullfillment.

Un point important est que le service component ne contient pas de code spécifique Mule ; il peut être un simple objet Java POJO, un bean Spring, ou un web service contenant la logique métier pour traiter les données de façon spécifique.

Mule gère le service component, le lie à une configuration et l’expose comme un service, et s’assure que l’information qui lui est envoyée est correcte ceci en se basant sur les informations du service que l’on a spécifié dans le fichier de configuration de Mule.

qu’est ce qu’un service Mule

- Le service component contient la logique métier pour traiter les données dans le message. Il ne contient aucune information sur comment est reçu ou sont envoyés les messages eux mêmes.

  • - Pour être sur que le service component reçoit le bon message et le route correctement après traitement, on spécifie lors de la configuration de Mule un inbound router et un outbound router qui encapsule le service component.

  • - Un Inbound router spécifie quels messages le composant service va traiter. Il peut filtrer les messages entrants, les agréger ou les re-séquencer avant de les router vers un autre service component. Par exemple, si un service souscrit à un fil RSS, le inbound router peut filtrer quels messages recevoir sur ce fil.

  • - Après qu’un service est traité un message, le outbound router spécifie où dispatcher le message. On peut définir de multiples contraintes de routages entrant et sortant et même chaîner des routeurs ensembles de telle façon qu’un service component reçoivent et routent les messages exactement comme requis.

clip_image007

Séparer la logique métier de la logique de routage

clip_image009

Multi protocoles

-Mule peut gérer des messages qui sont envoyés par de nombreux protocoles.

Par exemple, si une facture peut toujours être au format XML, elle peut arriver par HTTP dans un cas et dans un message JMS dans l’autre, cela dépend de quelle application a créée la facture.

- le service component ne sait pas comment lire les messages parce que par défaut les services components sont indépendants du format du message.

A la place, un composant transport apporte le message et des transformers change l’objet du message dans un format compréhensible par le service component avant que le routeur ne lui transmette. Par exemple, si une facture xml est envoyé par http, le http transporte le message, les routeurs envoient le message à chaque service qui doivent le traiter, et les transformers change la facture du xml en objet comme attendu par le service.

Transparence

-Tout le transport, les transformations, et le routage du message sont complètement transparent pour le service component.

Les transformers sont essentiels pour échanger des données, parce qu’ils permettent à Mule de convertir les données dans un format compréhensible par un autre composant ou une autre application. Plus important, les données sont transformées seulement si besoin. A la place de convertir tous les messages dans un format commun, les messages et leurs données sont transformés seulement si pour le composant ou l’application cible, c’est nécessaire.

Changer le protocole d’accès sans toucher au métier

-Enfin, on peut utiliser différents types de transport pour gérer différents canaux, comme envoyer le message sur du HTTP et ensuite le forwarder sur du JMS après qu’il ait été traité par le service Customer Data Component.

- La séparation de la logique métier de l’envoi et de la transformation des messages permet une grande flexibilité dans la mise en place de l’architecture et fait que c’est plus simple de modifier la logique métier sans avoir à se soucier des divers formats dans lequel le message peut arriver.

Oracle lance un défi à IBM : la viabilité de SUN Sparc et SUN Solaris est garantie par Oracle

Quelques jours après l’acceptation par les autorités américaines de l’achat de SUN par oracle, le PDG d’Oracle lance un défi à l’attention de IBM : « Oui, je m’intéresse au Hardware, Non je ne vais pas morceler SUN»

Pour affirmer, cette décision, Oracle a choisit de payer une Publicité dans Wall Street Journal (version Europe). source http://www.oracle.com/features/suncustomers.html



Oracle promet d’investir massivement dans SUN, de coté HArdware : SPARC et Solaris.

Voilà, qui va contrarier IBM, tout en rassurant, peut être, les employés, les partenaires et clients de SUN.

Oracle est seul fournisseur qui offre toutes les palettes de l’informatique d’entreprise : infrastructure Hardware, plateforme logicielles et solutions métiers (IBM n’offre pas d’applications métiers et Microsoft n’offre pas de hardware).

Pour contrer Oracle, Microsoftdevrait achéter HP par exemple, et IBM devrait acquérir SAP ou Sage.

Big Red va-t-il supplanter Big Blue.

Mais ceci est un autre sujet.


autres sujets :

Oracle & SUN : Quel avenir pour l’unique solution MDM open source, SUN MDM Suite?

Oracle a acheté SUN : Que va-t-il se passer ?


Ce qu’on peut lire sur le site d’Oracle :

http://www.oracle.com/us/sun/030020.htm

This acquisition combines best-in-class enterprise software and mission-critical computing systems. Oracle plans to engineer and deliver an integrated system—applications to disk—where all the pieces fit and work together so customers do not have to do it themselves. Customers benefit as their systems integration costs go down while system performance, reliability, and security go up.

Oracle's ownership of two key Sun software assets, Java and Solaris, is expected to provide our customers with significant benefit. Java is one of the computer industry's best known brands and most widely deployed technologies. Oracle Fusion Middleware is built on top of Sun's Java language and software. Oracle can now ensure continued innovation and investment in Java technology for the benefit of customers and the Java community.

The Sun Solaris operating system is the leading platform for the Oracle database. With the acquisition of Sun, Oracle can optimize the Oracle database for some of the unique, high-end features of Solaris. Oracle is as committed as ever to Linux and other open platforms, and will continue to support and enhance our strong industry partnerships.

Our customers have been asking us to step up to a broader role to reduce complexity, risk, and cost by delivering a highly-optimized standards-based product stack. Oracle plans to deliver these benefits by offering a broad range of products, including servers and storage, with all the integrated pieces: hardware operating system, database, middleware and applications. We plan to preserve and enhance investments made by our customers, while we continue to work with our partners to provide customers with choice.

Architecte SOA & Professionnel Open Source Headline Animator

 
Khaled BEN DRISS
Cloud Computing, SOA et Web 2.0 : Des sujets techniques sur SOA et l'Open Source : de Java & .Net, PHP5, Symfony, à SaaS / PaaS en passant par Azure, google appengine, le BPM, la Modélisation et d'autres sujets du coté du serveur et cloud computing.