dimanche 9 août 2009

Grails, Groovy, xFire & SoapUI : créer un web service et le tester en 22 lignes de codes, 7 commandes et 5 minutes

Préambule : Avant de commencer, s’agissant de publier des services, je rappelle que je reste adepte du concept Contrat-first. Mais, ce tutoriel est destiné à montrer la puissance de l’approche Grails. Il doit être affiné pour suivre l’approche contract-first. Qu'il s'agisse d'une solution java développée 'from scratch' ou basée sur du 'java software' payé en $$ ou sur du .net basée sur Biztalk : l'essentiel c'est que le contrat soit défini dès le début

Question : comment créer un web service en exposant la liste à partir d’une base de données

Contexte : confronté, sur un nouveau projet, à une demande du client qui souhaite rapidement : apprendre à consommer des web services, dans un projet classique JSF/Spring/Hibernate . L’idée est d’utiliser Spring webservice template, mais, Il a fallu fournir des web services rapidement, pour les consommer

Réponse : le simple c’est d’utiliser Grails (yes it's a java software from Spring cretors, based on Groovy : a dynamique java software from the Spring source ...)

Des webservices en moins de 5 minutes, 6 commandes et 22 lignes de codes …

En prime : les écrans de gestion de l’entité cible dans la base de donnée

Etape 1: installer Grails

http://www.objis.com/formation-java/tutoriel-grails-installation.html

Etape 2 : créer une application

(Commande 1)>grails create-app webservice-xfire

(Commande 2)>cd webservice-xfire

(Commande 3)>grails create-domain-class com.oxia.att.grails.Role

Ajouter ce code (en somme du Plain old Groovy objects, dit POGO)

1:  package com.oxia.att.grails
2: class Role {
3: String name
4: static constraints = {
5: name(blank: false, size: 1..20)
6: }
7: public String toString() {
8: return name
9: }
10: }


(commande 4)>grails create-controller com.oxia.att.grails.Role



Etape 2 : installer le plugin xFire



http://www.grails.org/plugin/xfire



(commande 5)> grails install-plugin xfire


Etape 3 : générer les bases du service en relation avec le POGO Role

(commande 6)> grails create-service com.oxia.att.grails.Role

Etape 4 : ajouter un peu de code Groovy pour exposer le métier

1:  class RoleService {
2: static expose=['xfire']
3: def serviceMethod(Role dc) {
4: return true
5: }
6: Role[] getRoles(){ Role.list() as Role[] }
7: }

clip_image001[4]

Etape 5 : lancer

(commande 7)> grails run-app
http://localhost:8080/webservice-xfire/services/role?wsdl
clip_image003[4] Avant de tester le web service : ajouter au moins 1 Role (le fameux admin…) ( les écrans d’administration ont été générés aussi) clip_image004[4]

Etape 6 : tester avec SoapUI

Créer un projet avec SOAP UT à partir du WSDL

clip_image005[4]

SOAPUI va créer ce projet

clip_image006[4]

Lancer le teste

clip_image008[4]

Le résultat n’est pas « orienté » Contrat-first

Mais … avec du XPATH on pourra se débrouiller !

Avouons qu’il faut travailler encore le CONTRAT

Etape 7: statistique

Code utile : 22 lignes de codes (les tests unitaires sont aussi utiles mains non comptabilisées dans ce cas)

 +----------------------+-------+-------+
| Name | Files | LOC |
+----------------------+-------+-------+
| Controllers | 1 | 4 |
| Domain Classes | 1 | 10 |
| Services | 1 | 8 |
| Unit Tests | 3 | 36 |
+----------------------+-------+-------+
| Totals | 6 | 58 |
( sans formatage de texte )

Etape 8 : consommer le service

Utiliser Spring Web service template

Mais, ceci est un autre sujet

--------------------------------------------------

autres sujets Grails

-- Groovy & Grails : L’instabilité en vue du coté JRuby, une opportunité de plus pour Groovy & Grails

-- Groovy et Grails dans le giron de SpringSource : Un bel avenir pour les langage dynamique
--------------------------------------------------

autres sujets à venir

- le concept Java 3G : Grails, Groovy et Google appengine

- les plugins Grails


jeudi 6 août 2009

Twitter, Faut il envisager la vie sans : Twitter a subit sa première cyber-attaque

Twitter touché par un déni de service attaque DDOS : la nouvelle paru dans CNN il y a à peine quelques heures (CNN.com et reteurs ) , ce jeudi 06 juillet 2009.

L’attaque, coordonnée, sur Twitter a causé la fermeture du site de réseautage social, dit de microbloging, pour au moins deux heures.

En théorie cette attaque de twitter.com devrait, perturber uniquement les twitteurs.

Le principale problème, dans cette histoire, est que la panique généralisée a touché essentiellement les faceboukeurs dépendant (remarquons qu’avec l’addiction, il faut faire attention à la coupure brutale et envisager servage lors de toute thérapie …),

Trois points sont à retenir :

1. Twitter devient le talon d’Achille du réseautage social : La panique n’a pas touché seulement, les utilisateurs directs de Twitter, mais les utilisateurs des autres sites liés et référent twitter (un nombre croissant d’applications ping Twitter pour des infos). Ce type d‘attaque est accentué par les utilisateurs de twitter eux-mêmes qui en paniquant envoient plus de

http://lonewolflibrarian.files.wordpress.com/2009/05/twitterverse.jpg

( selon Lone Wolf Librarian)

clip_image002

2. Un site dépendant des services de twitter, comme FaceBook, doit être conçue en envisageant la vie sans : La place que prend twitter dans le paysage du réseautage social, devient de plus en plus handicapante pour les sites liés, lorsque l’architecte n’a pas envisagé quoi faire lorsque twitter est HS (hors service)

3. les infrastructures de twitter ont montré leur fragilité, twitter gagnerait à les renforcer en attendant de trouver le bon modèle économique pour les rentabiliser ...

Cette attaque sur twitter, n’est peut être qu’un exercice militaire, la suite cette été, comme ce qu’a subi l’Estonie, été 2007

Mais ceci est un autre histoire suivre, …

pour plus d’info

http://www.stumbleupon.com/s/#2IQI48/mashable.com/2009/08/06/twitter-outage//

http://www.stumbleupon.com/s/#2IQI48/mashable.com/2009/08/06/twitter-outage//

http://edition.cnn.com/2009/TECH/08/06/twitter.attack/index.html

http://www.reuters.com/article/rbssITServicesConsulting/idUSN0612153720090806

lundi 3 août 2009

Groovy & Grails : L’instabilité en vue du coté JRuby, une opportunité de plus pour Groovy & Grails

Il semble que la chance sourit encore à Groovy & Grails.

Après le support total de SpringSource, allant jusqu’à l’acquisition, voilà qu’une tempête se profile de coté de son principal conçurent dans le monde Java, le fameux Jruby.

L’info tombé en ce fin du mois de juillet : les principaux développeurs derrière le projet JRuby ont quitté SUN pour rejoindre la société Engine Yard spécialisée en hébergement Ruby On Rails et se présente comme l'une des plus importantes entreprises de l'écosystème de Ruby on Rails

Les transfuges ont prétexté de l’incertitude autour du sort du projet JRuby, suite à l’acquisition de SUN par Oracle. Le plus difficile pour un Techos c’est l’absence de décision : « Supporte » ou « ne supporte pas » : or Oracle excelle dans l’art de cacher les intentions… , après tout on décidera dans quelques mois, lorsqu’on aurait ouvert tous les cartons de SUN …

D’un autre coté, Engine Yard mise sur l'adoption de JRuby par les développeurs Web Java et qui manquait jusque là d'experts dans ses équipes

Rappelons que Grails, suit le chemin tracé par Rails & Rubby "coding by convention", mais en se basant sur Groovy, le langage dynamique de référence du monde Java.

En privilégiant le concept de « Convention not Configuration », Grails cherche à simplifier le développement des applications Web.

De plus, la capacité d’heberger Garils & Groovy sur le Google AppEngine, leur ouvre de nouvelles perspectives et met en danger les hébergeurs web en générale et Engine Yard en particulier.

Mais, souhaitons que le projet JRubby puisse continuer à avance, la concurrence stimule, et la compétition génère de l’innovation. Et surtout espérerons que la prochaine version de JRuby (1.4) soit livrée à temps : en Septembre.

Finalement, ne pas oublier que la concurrence réelle pour Grails reste l’écosystème Rubby on Rails, qui lui continue son chemin, tranquillement …

Le monde Java a maintenant de bonnes réponses à Ruby en Groovy, Scala, et Clojure et de bonnes réponses à Rails dans Grails...

Mais ceci est un autre sujet..

---------------------------------

source :http://www.computerworld.com/s/article/9135958/Sun_s_JRuby_team_jumps_ship_to_Engine_Yard


-----------------

autres sujets : Grails




mercredi 29 juillet 2009

Microsoft-Yahoo Vs Google : La guerre des moteurs ou la recherche moteur de la guerre

En ce mois de juillet 2009, un accord, pour sauver les bénéfices de Yahoo, en chute libre depuis quelques mois

Enfin, un accord de 10 ans pour mettre sur les rails le nouveau moteur de recherche de Microsoft BING (et à dieu msn).

Enfin un accord sur les rôles : Microsoft pour la technologie recherche et Yahoo pour la gestion des annonces.

Un accord entre le numéro 2 et numéro 3,

Bing-yahoo est désormais le numéro 2 de la recherche sur le web

Une alternative sérieuse pour les annonceurs face à l’hégémonie de Google dans le domaine de la publicité en ligne.

Quelle serait la réaction du coté de Google ?

et ne me dites pas qu'il a encore deux ans devant lui avant que la fusion des technlogies de Bing et yahoo ne soient effectives.

Google, a déjà lancé des attaques frontales avec Microsoft sur les thèmes de : cloud et Google AppEngine, les appstore, les OS, les navigateurs, les suite bureautique, les outils collaboratives (Wave, messagerie en ligne, messagerie instantanée, Plateform de blog, wiki ..) … Google cherche à mener ses batailles sur le terrain de l’enemi,

Le voilà, attaqué sur son propre terrain, Il va falloir relire les conseils de Sun Tzu.

Rappelons que la guerre est aussi lancée sur le front de la présentation des résultats: trop tabulaire, trop classique, peu précise.

Nous entendons de plus parler de "fact engine" à la place de "search engine",

Ça me rappelle une ancienne bloque sur le CNRS : « on y trouve des chercheurs on, mais on cherche des, toujours, des trouveurs» ..

C’est ce que propose Goggle Squared ou le tout nouveau Walfram Alpha (créateur Matimatica de mon application préféré, lorsque je travaillais sur le théorie du chaos et la modélisation des phénomènes non linaires…, bref le bon vieux temps).

clip_image001

clip_image003

Walfram Alpha est supposé comprendre des questions formulés en langage naturel, il peine à le faire pour le moment, mais espérons qu’il réussisse.. ;

clip_image004

Goggle Squared propose ce type d’information (copié souvent chez Wekipedia)

clip_image006

Car, s’il devient vraiment performant, le moteur de recherche deviendra Le vrai assistant personnel, un moteur d’aide à la décision, de l’internaute : qui l’assistera à explorer, chercher, et trouver ce qu’il souhaite…

Suite à ce rapprochement, il reste une question à régler : à qui appartiendra les données sur le comportement des internautes ?

Mais, ceci est un autre sujet

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.