Deals with Petals ESB, Petals Suite, SOA, PetalsLink…
Just a very short snippet to show how one may access schema elements from a WSDL definition by using WSDL4J.
javax.wsdl.xml.WSDLReader wsdlReader11 = javax.wsdl.factory.WSDLFactory.newInstance().newWSDLReader();
Definition def = wsdlReader11.readWSDL( wsdlUri );
for( Object o : def.getTypes().getExtensibilityElements()) {
if( o instanceof javax.wsdl.extensions.schema.Schema ) {
org.w3c.dom.Element elt = ((javax.wsdl.extensions.schema.Schema) o).getElement();
// Navigate in the DOM model of the schema
// You can use Schema#getImport() to work with imports
}
}
Obviously, one better approach could be to get the schema object from WSDL4J and pass it to a XML schema parser then, instead of navigating in the DOM model.
Anyway, I tried this approach, but it is quite heavy then. I will most probably migrate to EasyWSDL as soon as the next release is online. In a first time, it will replace WSDL4J for WSDL 1.1. And later, it should also replace Apache Woden for WSDL 2.0. I think I will talk in details of that soon.
In: Uncategorized
2 Dec 2010Petite recette pour générer un keystore java (JKS) contenant un certificat signé par une autorité de certification (CA ou « certificate authority), en utilisant openssl et keytool… Très utile, par exemple, pour activer SSL.
(note : j’ai mis « motDePasse » partout, comme mot de passe, y compris quand openssl ou keytool le demandent au prompt… le plus simple étant de remplacer çà par le votre, et d’utiliser aussi le même partout !)
Tout d’abord, si vous ne diposez pas déjà d’un certificat provenant d’une autorité de certification (CA – « certificate authority », comme par exemple Verisign, Gandi ou CertEurope), vous allez créer votre propre CA (et son certificat, qui sera utilisé pour signer le votre) :
openssl genrsa -out ca.key
openssl req -new -x509 -days 365 -key ca.key -out ca.crt
A partir de là, on considèrera que le certificat de la CA est « ca.crt » (qu’il provienne d’une véritable autorité de certification, ou que vous l’ayez créé vous-même, comme ci-dessus).
Vous allez maintenant créer votre clé privée (server.key), et un « certificate signing request » (CSR) utilisée pour demander à la CA de vous produire un certificat signé :
openssl genrsa -out server.key
openssl req -new -key server.key -out server.csr
Maintenant, muni du certificat de la CA et de votre CSR, vous allez générer votre certificat signé par la CA (server.crt) :
openssl x509 -req -days 365 -in server.csr -CA ca.crt -CAkey ca.key -set_serial 01 -out server.crt
Bien… Vous disposez de tout ce qu’il faut pour activer SSL, par exemple : à savoir, un certificat signé (server.crt) et une clé privée (server.key).
Supposons maintenant que vous souhaitez importer ceci dans un « keystore » java au format JKS (utilisé, par exemple, pour activer SSL dans un serveur d’appli java, comme jetty) : il faudra y stocker le certificat + la clé privée.
C’est possible avec keytool depuis le JDK 1.6 (sic… avant, il fallait écrire du code pour importer la clé !), moyennant quelques « incantations » : à savoir, génération d’un keystore au format PKCS12 contenant la clé + le certificat, et import de ce keystore dans un nouveau keystore au format JKS.
openssl pkcs12 -export -in server.crt -inkey server.key -out keystore.p12 -name monAlias -CAfile ca.crt -caname root
keytool -importkeystore -deststorepass motDePasse -destkeypass motDePasse -destkeystore server.jks -srckeystore keystore.p12 -srcstoretype PKCS12 -srcstorepass motDePasse -alias monAlias
Et voilà : votre keystore s’appelle server.jks ! Ouf…
Note : en ce qui concerne Petals, cetet recette sera utile pour activer SSL dans des composants encore en gestation, à l’heure où cet article est publié : à savoir, la prochaine release du BC-SOAP, et le BC-PRESTO (déjà disponibles dans les sources de Petals).
P.S. L’absence de clé privée dans le keystore (si vous y importez uniquement le certificat, par exemple) peut être la cause d’erreurs assez peu explicites. Dans mon cas :
- côté client (FireFox), « Impossible de communiquer en mode sécurisé avec le pair : aucun algorithme de chiffrement en commun (Code d’erreur : ssl_error_no_cypher_overlap) ».
- côté serveur (Jetty), « javax.net.ssl.SSLHandshakeException: no cipher suites in common »
In: ow2|Petals ESB
1 Dec 2010While I am blogging, let me seize the occasion to mention the talks some of my colleagues gave last week at the OW2 conference 2010.
This annual event was hold this year at La Cantine in Paris and lasted two days. The conference mainline theme was Open Source for Open Clouds.
I was not there, so I cannot give a lot of feedback.
However, the talks were filmed and the video are available here.
Among them, there is the one of Pierre-Yves Gibello, who presented the work made on PRESTO.
PRESTO is a communication protocol based on WS Reliable Messaging (WS-RM) and powered by French Government and Administration.
It is made up of a common library (a kit), that should be able to interoperate with several Software (and this is why Microsoft and Oracle also try to support it).
Petals Link is involved in both the development of the kit and in the development of a Petals connector for PRESTO.
You can watch this talk here.
The second talk for Petals Link was made by Christophe Hamerling about Petals and Cloud Computing.
The presentation is based upon the work that has been done in a European Research project called SOA 4 All. This project focus on both large-scaled service deployments (at the Internet scale) and on Web semantics. But it also defined the foundations of the usage of Petals in cloud solutions. These foundations also contribute to the OW2 Cloud Initiative (Christophe being among the technical leaders of this initiative).
You can watch his talk here. And take a look at his blog for more feedback about the conference.
In: Christophe Hamerling|java|opensource|ow2|Petals ESB|petalslink
30 Nov 2010
OW2Con 2010, la conférence annuelle du consortium OW2, se tenait la semaine dernière à Paris au co-working space ‘La Cantine‘. Pour la première année, cette manifestation n’était pas organisée pendant le salon Solution-Linux, mais ce n’est pas pour cela que le monde n’était pas au rendez-vous avec une grosse centaine de participants et un programme bien rempli. L’occasion d’écouter des présentations de qualité autour de l’open source, du cloud computing, des projets OW2 et de rencontrer les personnes que je côtoie depuis quelques années via les nouvelles technologies de communication…
Le ‘Cloud Summit’ de la première journée était je pense la partie la plus attendue et la plus suivi. Ce thème excite évidement beaucoup de monde en ce moment, et chez OW2, l’initiative Cloud est bien lancée avec de premiers résultats et prototype prévus pour l’an prochain.
Coté speakers, le niveau était là, ce qui m’a beaucoup amusé, c’est la présence de représentants des projets OpenNebula et OpenStack, deux solutions de virtualisation de ressources pour le Cloud qui se ressemblent fortement. Mis a part une solution EU et une autre US, les différences sont assez minimes (tout du moins dans ce qui a été présenté). Affaire a suivre sur le Net ou ici car j’aurais l’occasion de mettre en oeuvre très prochainement ces frameworks pour les travaux Cloud que je mène actuellement…
De la deuxième journée, je retiens principalement les présentations relatives aux projets OW2 : Jonas, XWiki, Talend, Bonita.
La démo combinée de Talend et de Bonita est simple mais efficace. Effectivement, on se doutait déjà que les deux produits marchait sans problèmes, là j’en suis sur, pas grand chose a dire de plus la dessus…
Je préfère approfondir un peu sur les présentations relatives à Jonas, le serveur J2EE principalement développé par Bull. Les slideshares cités dans un tweet de leur auteur (@florentbenoit):
@chamerling http://slidesha.re/dUjifT & http://slidesha.re/hASv0A for my #ow2con slides #ow2 #jonas #javaEE—
Florent BENOIT (@florentbenoit) November 26, 2010
Sur la partie ‘Reliable Asynchronous Web Services on JOnAS Java EE server’ fournissant un nouveau mode d’échange de message reliable et asynchrone à Apache CXF, mon constant est le suivant : L’approche est non lightweight et est plutôt orientée pour l’entreprise ie il faut des instances de Jonas pour faire tourner cette solution. Fini le bon vieux Endpoint e = Endpoint.publish(); . Mais disons ici que ce n’est pas le but. Le vrai but est démontré par une démo efficace; client et serveurs peuvent ‘tomber’, les messages seront de toute façon délivrés lorsque les parties intéressées seront de retour (A méditer pour Petals ESB…).
Sur la deuxième présentation ‘Secure your Java EE projects by using JOnAS audit tools’, je retiens la partie présentation des informations de monitoring qui permet de suivre le cheminement d’une invocation dans tout les modules entrant en jeu. La solution de présentation basée sur Flex est sexy, c’est vraiment mieux que de montrer des messages XML dans une pauvre table HTML… Cette partie aussi me semble très intéressante à extraire de Jonas et à rendre générique et disponible pour tous…
Tout cela (et tout ce que j’ai raté) confirme vraiment que les personnes impliquées dans OW2 fournissent vraiment un travail de qualité, que ce soit au niveau des projets, du management du consortium et sont vraiment motivés. Je pense vraiment que le travail autour des initiatives lancées cette année, que ce soit pour le Cloud ou le BI fourniront des solutions compétitives car les gens sont là, compétents et motivés!
Pour ceux qui ne suivent pas mes tweets, toutes les vidéos de ces deux journées sont disponibles en ligne.
In: Christophe Hamerling|opensource|ow2|Petals ESB|petalslink|soa
30 Nov 2010La semaine dernière je publiais les slides de mon talk sur la SOA et le Cloud à OW2Con 2010, cette semaine la vidéo est finalement en ligne…
Finalement, parler (en anglais) devant une centaine de personnes n’est pas si difficile et c’est même très motivant, il me tarde déjà la prochaine fois!
In: Uncategorized
30 Nov 2010
These maintenance versions correct a few bugs, including a fix for notifications in SE-BPEL.
| petals-se-bpel-1.0.6.zip | 30-Nov-2010 09:00 | 11M |
| petals-webconsole-ui-2.0.5.war | Mon Nov 22 10:37:16 CET 2010 | 5715360 |
Compatible with Petals ESB 3.1.1+
In: wsdl
29 Nov 2010Parmi les évolutions en cours dans le studio, en voici une qui va résolument faire gagner du temps aux utilisateurs.
Il s’agît d’afficher les opérations disponibles pour consommer un service dans Petals.
Pour rappel, consommer un service revient à invoquer l’une de ses opérations.
Dans certains cas, il est possible de déduire l’opération à invoquer depuis la requête (par exemple avec le mécanisme des actions SOAP). Dans d’autres cas, on a besoin d’indiquer dans la configuration du consommateur quelle opération invoquer. Jusqu’à présent, il fallait remplir cette partie à la main dans le studio. Sachant qu’un nom d’opération est un nom qualifié (avec un espace de nom), cela restait une tâche très lourde.
Désormais, il ne reste plus que certains cas pour lesquels cela devra être rempli à la main.
Avec le recul, il est facile de dire que cela aurait dû être fait dés le début. Mais ça n’a pas été le cas.
Lors de la définition d’un consommateur, si l’on s’aide de la boite de sélection de service…
… et si ce service est décrit par un WSDL, alors à la fin, on retrouve une liste déroulante avec toutes les opérations de ce service.
Pas la peine de se préoccuper du Message Exchange Pattern (MEP), celui-ci est géré en arrière-plan.
Dans le cas où ce service n’a pas de WSDL, les champs doivent être remplis manuellement.
Deux précisions tout de même :
Enfin, il y a un autre assistant qui a profité de ces améliorations, et c’est celui du composant EIP.
La boite de configuration d’un EIP s’appuie désormais sur des fonctions plus avancées, qui doivent permettre d’aller plus vite en réduisant les erreurs possibles.
Certes, cet assistant risque d’être moins utilisé avec l’éditeur graphique à venir pour les EIP.
Mais c’est une évolution d’appoint appréciable.
Aujourd’hui et demain se tient la conférence annuelle du consortium Open Source OW2 à Paris. Je prendrais un peu de temps pour raconter un peu tout ce qu’il s’est passé, mais en attendant voici quelques slides de ma présentation sur notre vision SOA dans le Cloud; “Cloud Aware Large Scale Distributed SOA” que j’avais introduit ici:
En attendant plus de détails, une phrase qui m’a bien plu ce matin, simple et efficace par Jean-Pierre Laisné, président de OW2 :
"Cloud can be foggy" #ow2con—
Christophe Hamerling (@chamerling) November 24, 2010
Pourquoi? Parce que le brouillard commence en bas, et en bas de la pile il y a l’infrastructure, facile mais à méditer…