AlcionTech

Aller au contenu | Aller au menu | Aller à la recherche

lundi 9 mars 2009

Acualité : Google Apps - Quotero

Je reprends ici deux billets d'actualité publiés sur mon blog personnel :

  • le premier, qui a fait suite à l'indisponibilité des mails Google de ce 24 février. Ce billet fait suite à celui posté ici même, qui ventait les mérites des "Google Apps" : malgré la récente indisponibilité des mails et la "mini-crise virtuelle" qui a suivi, je persiste à croire que Google offre des solutions tout à fait viables pour les PME (mails, calendriers, etc.), avec de nouvelles fonctionnalités qui vont dans ce sens (Google pour mobiles, consultation et rédaction de mails hors-ligne, etc.).
  • le deuxième est un résumé de la conférence de lancement de Quotero 1.0 (à laquelle j'ai assisté), une GED Open Source.

lundi 1 décembre 2008

Javascript bouscule le modèle MVC

Vu sur Advogato : Javascript bouscule le modèle MVC.

''When HTML first came out, browsers could have been called "Application Thin Clients", if the buzzword had been in use at the time. The introduction of javascript made it possible to execute code on the client, and this turned browsers into something much more than just a "display" mechanism.

Before Javascript, Web application development was simple: everything was done server-side. The concept of MVC - Model View Controller - was easy: the HTML was generated, and that was the view. With Javascript being a full-blown programming language, the lines are being blurred between which code is responsible for the View, the Controller and even the Model. The resultant split of responsibility across client and server in wildly diverse programming languages is driving many developers to alternative technologies such as Flash, and causing headaches for those Web developers who remain.''

jeudi 14 février 2008

OpenBar le 21 février : Webservices B2B : étude de cas et panorama technologique

mike Jeudi 21 février à 18h30 au siège

5 ans après leur arrivée sur le terrain, les webservices sont devenu un mode privilégié de communication entre applications, notamment de part et d'autre d'une frontière organisationnelle, par exemple entre partenaires (clients, fournisseurs). Ils offrent un couplage moins fort que d'autres protocoles, et sont disponibles sur une grande variété de plate-formes.

Après un rappel, l'étude de cas que nous présentera Aziz sera l'occasion de resituer les différents concepts (XML, HTTP, SOAP, UDDI, WSDL, WS-Security...), puis de passer aux choses sérieuses en implémentant un cas d'école sur Weblogic 8 et 9 et sur Apache CXF.

lundi 10 décembre 2007

Mashups cartographiques...

MapifiedKayak.screenshot.jpgJe me fais un petit peu de pub:

Si vous êtes intéressés par les technos du Web 2.0 (javascript, html, css, php,...) et la représentation cartographique de données, je vous invites à faire un passage par mon site perso. Vous y trouverez plusieurs projets de veille technologique sur ces sujets, dont un à même eu le privilège d'être 'Mashup of the day" sur programmableweb.com.

  • Mapified Kayak: une jolie couche de présentation pour le métamoteur de recherche de voyages Kayak, et la possibilité de rechercher plusieurs destinations et dates d'un coup (Google Maps + Kayak API).
  • Overflown Countries: pour savoir quels pays vous survolez lors de vos voyages (Google Maps + Geonames API).
  • Mapified Stock Indices: une présentation géolocalisée des variations d'indices boursiers asiatiques (Google Maps + Geonames + Dapper API).
  • Mapified Rss: pour géolocaliser n'importe quel flux RSS et mettre en surbrillance les pays (Google Maps + Geonames API).
  • GoogleMaps vs YahooMaps: les 2 cartes sur la même page pour comparer facilement les niveaux de zoom disponibles. Une fonction de synchronisation est fournie (Google Maps + Yahoo Maps API).


Bien que personnels, ces projets constituent également des démos pour présenter notre offre E-business et les compétences des ingénieurs d'Alcion dans ce domaine. Dans cette optique, si vous êtes vous-mêmes ingénieurs d'Alcion, n'hésitez pas à faire partager vos projets logiciels sur ce blog.

vendredi 9 novembre 2007

Géomarquer ses données

Il est devenu très fréquent de voir des données affichées dans un composant cartographique de l'IHM d'une application. Les parisiens penseront peut-être tout de suite à celui de Velib' qui permet de localiser rapidement les stations et la disponibilités des vélos. Il est clair qu'une telle présentation est beaucoup plus ergonomique que le rendu dans une grille.
Pour atteindre un tel résultat, il convient de pouvoir répondre à 2 questions:

  • Comment géotaguer ses données?
  • Comment présenter ses données?


Comment géotaguer?
Il existe plusieurs services permettant de géotaguer ces données c'est à dire associer une longitude et latitude à une entité localisable (adresse, code postal,etc) . On recommendera ceux de Geonames.org et Google. Les formats de sortie sont au choix xml ou json.
On notera en particulier l'existence d'un service très intéressant de conversion de feed RSS vers geoRSS. C'est ce service qui est utilisé dans notre application sur les indices boursiers (voir billet précédent) ou bien pour localiser les dernières news planétaires.
Il peut parfois être intéressant de faire du géocodage inversé, c'est à dire associer une addresse (souvent approximative) à un couple (latitude, longitude). On trouvera ici plusieurs services intéressants. Notez que google ne propose pas (encore) de tels services.
Un autre besoin peut consister à localiser des addresses IP. Il existe là encore plusieurs services dont IP2Location utilisé par le fameux wikiscanner.


Nota: Pour des besoins locaux, Les BD sous-jacentes peuvent souvent être installées en local moyennant leur achat.

Comment présenter ses données?
L'insertion d'entités géotaguées dans une carte est assez direct chez Google map comme chez Yahoo! map. L'API Google utilise un objet GGeoXml dont le constructor prend le fichier de données géotaguées en paramètre. L'objet YGeoRss fait de même chez Yahoo! map.

lundi 15 octobre 2007

Des widgets aux mapplets

UPDATE DU 16/10/07: En complément du blog officiel de Google Map, je vous recommande le blog Google Maps Mania qui regorge d'informations fascinantes sur les mashups possibles avec Google Maps.

BILLET ORIGINAL:

Le 11 juillet dernier, Google annonçait le lancement d'un nouveau service appelé Mapplets. Il s'agit de mini-applications insérables dans google map, comme le précise le site officiel. Un certains nombres sont déja disponibles dans le Google Map Directory et sont pour la plupart superposables pour faire du recroisement d'informations.
L'intérêt des Mapplets est identique à celui des Widgets web: permettre aux utilisateurs d'installer gratuitement les services de tiers dans leur application & pages web. C'est à la charge de votre business model d'évaluer comment rentabiliser l'opération (un chercheur d'hôtels ou de cinémas avec commisions).

D'un point de vue technique il est très facile de transformer une application utilisant Google Map en Mapplet en suivant le protocole proposé. Et c'est ce que nous allons faire avec notre visualiseur de variation quotidienne des bourses asiatiques exposé dans le billet précédent. L'idée maitresse est d'encapsuler le code html, css et javascrit dans un fichier XML qui est servi en tant que mini page web (dans des balises <iframe>) sur le site de Google Map. Le fichier XML doit-être accessible depuis l'internet pour être récupéré à la demande par Google.
Notre application est accessible ici et insérable dans votre map en activant ce lien (Vous devez posséder un compte Google).

mapplet.screenshot.gif

L'opération a pris environ 1h mais l'application initiale était déja parfaitement fonctionnel. Le développement from scratch est plutôt délicat et nécessite de farcir son code d'alert(). Il est plutôt conseillé de développer dans un 1er temps une application standard AJAX puis de la mappletiser. Par ailleurs le code source est parfaitement lisible et donc récupérable par d'autres mais c'est le jeux: la plus-value de votre application vient du mode de présentation des données aux utilisateurs, pas de son algorithme.

PS: Sur le plan fonctionnel, on a maintenant une largeur de barre proportionnelle à la capitalisation boursière du pays. Par exemple, le marché japonais (4872 milliards $) n'a pas la même envergure que l'indonésien (166 milliards $) et cela est mis clairement en évidence.

vendredi 12 octobre 2007

API de Google et Yahoo! map

Dans un billet précédent de ce blog, nous avions vu qu'il était possible de construire des flux rss (dapper) et de géolocaliser leur contenu (yahoo!pipe). Nous avions pris comme exemple les variations des indices principaux des bourses asiatiques.
La présentation par défaut sur la page du pipe a le bon goût d'exister mais convenons que le rendu n'est pas percutant. Il faut en effet cliquer sur chaque marqueur pour avoir les informations.
L'idéal serait d'avoir des marqueurs représentatifs de la variation de l'indice, vert quand positif, rouge quand négatif, avec une taille proportionnelle à cette variation.
Pour arriver à ce résultat, il faut un peu programmer. Un API maps est fourni par Google et Yahoo! donc nous allons travailler avec les 2 pour comparer.
Le principe est relativement simple, dans chaque carte (YMap et GMap), pour chaque pays présent dans le flux RSS, on ajoute un marqueur (YMarker, GMarker) personnalisé (YImage ou GIcon). La hauteur du marqueur est ajustée par la formule Math.round(Math.abs(fChange) * 20) et donc d'avoir une hauteur de 20px pour une variation d'indice de 1%. Le fichier source est disponible en annexe (fonction fFillYahooMapWithGeo et fFillGoogleMapWithGeo).
Les résultats sont visibles ci-dessous, avec à gauche Google en haut et Yahoo en bas.

google.map.asian.stock.daily.change2.jpg yahoo.map.asian.stock.daily.change2.jpg

Sur le plan fonctionnel, un léger avantage à Yahoo! qui permet d'afficher un label par un simple passage de la souris sur le marqueur alors que Google nécessite de cliquer dessus.
Les métriques ne font pas apparaitre de différences significatives entre les 2 API:

  • Temps de chargement: environ 4s,
  • Nombre de requêtes: légèrement plus pour Yahoo (71 contre 54),
  • Octets téléchargés: environ 400kO,
  • Nombre de lignes de code propres aux API: une dizaine.

Les 2 API offrant un services de géolocalisation, nous pouvons donc essayer d'utiliser directement le flux RSS de Dapper (non géo-localisé) et confier la tâche de géolocalisation aux API. Yahoo le permet très simplement en remplacant un paramètre d'entrée du constructeur de YMarker mais les requêtes sont synchrones (fonction fFillYahooMapWithoutGeo dans le source). L'API Google est plus délicate à mettre en oeuvre car il faut utiliser un objet GClientGeocoder et utiliser une fonction de callback.
Dans les tests, il a été constaté un léger ralentissement (environ 1s) avec cette méthode à cause d'une plus forte utilisation du réseau (17 requêtes de plus).

Avis subjectif de l'auteur:

  • Aucune API ne se démarque de l'autre. Celle de Google est légèrement plus complexe mais compense par légèrement plus de fonctionnalités.
  • Notre application est bien exigeante en bande passante et temps d'UC puisqu'elle nécessite de mettre en forme le HTML chez Bloomberg, de transférer ce flux de Bloomberg à Dapper qui est alors retraité en RSS, de transférer de Dapper à Yahoo pour géolocaliser, puis enfin de Yahoo au client. Si Bloomberg (ou un autre) fournissait directement le flux rss (idéalement déja géolocalisé et gratuitement), on ne serait pas obligé de faire tout cela :)


PS: La démo utilise l'objet XMLhttpRequest qui n'autorise pas chez Firefox les requêtes hors du domaine courant, alors que si chez IE. Donc

  • si vous utilisez IE, mettez simplement "urlProxy":"" à la ligne 29 dans maps.htm,
  • si vous utilisez Firefox, installez un serveur local (localhost) avec la page php_proxy_simple.php fournie en annexe,

lundi 24 septembre 2007

Dapper ou le web scrapping pour les pros

Disons que nous concevons une application web de gestion de porte-feuille boursier et que nous avons besoin des cours de clôture à J-1 de l'indice CAC40 pour les retraiter ensuite suivant nos besoins. Comment allons-vous nous y prendre?
Le site d'Euronext présente quelque chose de bien intéressant: une table HTML avec les 40 valeurs de l'indice. Un service de téléchargement au format cvs ou excel est proposé mais ce n'est pas vraiment le flux de données le plus simple à traiter par notre application. Une autre solution peut consister à parser nous même le flux html pour extraire les informations pertinentes mais là encore le travail n'est pas simple. Alors?
dapper-logo.gifL'idée est de dapper le contenu du tableau grâce au service web proposé par Dapper. La simplicité de l'opération est tout simplement fantastique puisqu'il nous faut 10mn maximum pour créer un générateur de flux xml adapté à nos attentes et le rendre disponible en ligne ici. Dans le fichier de sortie, chaque action est présente sous la forme:

<action groupName="action" type="group">
    <libelle fieldName="libelle" href="http://www.euronext.com/trader/summarizedmarket/summarizedmarketRoot.jsp?lan=FR&amp;selectedMep=1&amp;idInstrument=18775&amp;isinCode=FR0000120073" originalElement="a" type="field">AIR LIQUIDE</libelle>
    <cloture fieldName="cloture" originalElement="td" type="field">94.57</cloture>
    <volume fieldName="volume" originalElement="td" type="field">138,637</volume>
    <varEnPourCentJsurJmoins1 fieldName="varEnPourCentJsurJmoins1" originalElement="td" type="field">-0.32</varEnPourCentJsurJmoins1>
</action>

nous pouvons également choisir le format de sortie json si nous préférons.

Tous les sites web deviennent ainsi potentiellement des web services grâce à ce web scraping.

mercredi 4 juillet 2007

Mémoire d'éléphant : au coeur de Myspace, Ebay...

7623.jpgLes grands de l'e-business rencontrent des problématiques logicielles sévères. Cependant, elles ne sont pas spécifiques aux mastodontes : elles se déclinent à toutes les échelles.
Une compilation de liens rares et précieux sur les secrets les mieux gardés de l'industrie.
Des jours et des jours de lecture captivante :-) !

MySpace : de 0 à 140 millions de comptes en peu de temps :
un article détaillé dans Baseline.

Une présentation technique détaillée d'Ebay, ses 2000To de données, pour (chaque jour) 1 milliards de pages vues (construites en XSL !) et 26 milliards de requêtes SQL. 100 000 lignes de code nouveau sont mises en production chaque semaine ! Et dans CIOInsight, la vision organisationnelle qui va avec.

Chez Amazon, une approche idéaliste de la SOA qui semble fonctionner : partitionner le gros problème en 50 petits, rendre une équipe responsable de chacun (par exemple : la page d'accueil, le profil utilisateur, le catalogue, le module de suggestions...) de bout en bout (ses propres serveurs, ses propres bases) avec une connexion SOA systématique entre modules afin de favoriser le découplage. Le détail dans une interview passionnante de Werner Vogels, leur directeur technique.

Et du côté de chez Google ? Après PageRank, l'algorithme qui nous a enfin permis de trouver quelque chose sur le web, GFS, innovation majeure dans le stockage (réunir plusieurs milliers de machines pour stocker un unique très gros fichier présenté comme tel aux applications), nous avons aimé :

  • cette interview d'Amit Singhal, en charge de l'algorithme de recherche et de la qualité des résultats, notamment sur les évolutions récentes ;
  • Le responsable des opérations parlant du fonctionnement des machines et de l'organisation des logiciels et des données ;
  • un article de fond offrant une vue détaillée de la technique et du business.

mercredi 7 mars 2007

Oracle libère TopLink!

Oracle a annoncé hier lors de la conférence EclipseCon que Toplink sera cédé à l’Open Source sous l’égide du Projet Eclipse.
Tout sauf des spécificités liées à Oracle AS est concerné (même les fonctionnalités encore en cours de developpement)

Lire la suite...

mardi 5 décembre 2006

Slides de la conference "Comment assurer la performance de vos nouvelles applications web à l'heure de la montée en puissance du SOA"

Bonjour,

Le 30 novembre j'ai assisté à la conférence de L'Atelier organisée par la société Atelier (Filliale de la BNP) en partenariat avec Wily Technology "Comment assurer la performance de vos nouvelles applications web à l'heure de la montée en puissance du SOA".

Vous trouverez ci-dessous le lien vers l'ensemble des présentations des intervenants:

veille et éditorial)

Pierre Baudin Directeur, Marketing et Alliances, Wily Technology Division

BEA Systems

lundi 4 décembre 2006

Concevoir des services Web facilement en Java : XFire, la solution ?

Les services Web sont utilisés depuis plusieurs années, mais ils présentent toujours des inconvénients majeurs. Il ne sera pas question ici de limitation d’ordre fonctionnel, mais plutôt de difficultés de mise en œuvre. Tout d’abord, dans le monde Java, sont proposés de nombreux – et même de trop nombreux – environnements d’exécution pour services Web, ce qui ne facilite pas toujours le choix de l’architecte logiciel. Citons, parmi les plus connus, Axis du projet Apache, JWSDP de Sun, WebLogic de BEA, WebSphere d’IBM, etc. XFire est un projet Open ayant pour objectif d'offrir une implémentation SOAP en Java aussi performante que simple d’utilisation. Le framework XFire est disponible à l’adresse http://xfire.codehaus.org.