J’ai eu l’occasion d’interviewer Benjamin Mestrallet, PDG de la société eXo Platform grâce à Dimitri Baeli. Editeur de logiciel français, eXo Platform est le leader des solutions de portails basées sur la JSR 168 et JSR 286. Les solutions disponibles en open-source, sont aussi livrées sous la forme de produits avec licences. eXo est un acteur très actif de la communauté Java. Au delà du socle technique dont nous allons parler, il est intéressant de comprendre la démarche et la vision d’eXo.
Nous avons discuté pendant deux heures. J’ai vraiment apprécié notre rencontre, Benjamin ayant une vision très solide du futur, et surtout très réaliste. C’est ce que nous allons voir dans cet entretien.
Pour commencer, l »actualité d’eXo Platform a été riche en cette fin d’années. Beaucoup d’actualités, de voyages comme lu sur ton feed twitter (@benjmestrallet). En quelques mots peux-tu me parler de l’entreprise et de tes équipes ?
En effet, 2008 a été une année riche. L’année 2009 sera l’année de la stabilisation. 2008 a été l’année du lancement de beaucoup de produits et nous n’annonçons pas pour l’instant de nouveaux produits pour 2009.
Concernant l’entreprise, en effet nous avons aussi recruté beaucoup de personnes. La société se compose de plusieurs centres de développement : le Viet-nam, l’Ukraine, la Tunisie et la France. eXo Platform représente environ 95 personnes aujourd’hui.
Si tout va bien nous devrions démarrer aussi aux USA avec un bureau là-bas.
A propos du nom « eXo Platform », j’ai entendu plusieurs histoires, mais donc il semble que cela vienne du nom de ton projet de fin d’étude, tout simplement appelé « exo » comme exercice, et que finalement tu aurais gardé. Vrai ou pas vrai ? Légende urbaine ou pas ?
C’est vrai.
Comment l’aventure a commencé ?
Nous avons publié un article sur The Server Side à propos des portails. Cet article a été repéré par un membre du Department of Defense en 2003, l’équivalent de la DGA en France, au moment de la guerre en Irak. De fil en aiguille, en effet notre premier client a été le DoD. J’avoue que la première fois qu’un email avec « @jfcom.mil » arrive dans ta boîte aux lettres, tu n’y crois pas…
Le code source a été placé sur SourceForge, c’était l’implémentation de la JSR 168, basée sur Pico Container, un des premiers frameworks d’inversion de contrôle. Nous avons été contacté afin d’écrire plusieurs articles sur les portails collaboratifs, et c’est de cette façon que notre premier client a démarré l’aventure eXo Platform, courant 2004.
La société a été créé à Vannes ?
En fait j’ai commencé à Paris, en banlieue parisienne.
… dans un garage ? Important le garage !
*rires*, oui le garage en effet.
Nous avons commencé ensuite à Vannes, cela nous a donné la possibilité de démarrer rapidement, entre autre grâce à François Moron, qui est le directeur des opérations aujourd’hui chez eXo.
Comment se passe la répartition des équipes entre les différents centres de R&D ?
Nous sommes répartis par couche technique. L’implémentation de spécification se fait plutôt en Ukraine, le Viet-Nâm se concentrant sur l’intégration et la réalisation des produits. La Tunisie démarre afin d’offrir un support francophone et surtout, le support des écritures right-to-left comme l’arabe, l’hébreu et le persan. Nous souhaitons démarrer très rapidement de nouveaux projets en Afrique du Nord et au Moyen-Orient. Le support des utilisateurs francophones en Tunisie nous permet aussi de renforcer nos équipes et d’offrir un service de qualité à nos clients en Europe.
A propos nous recrutons en Tunisie, et nous cherchons des personnes motivées afin de renforcer nos équipes à Tunis (voir le site http://www.exoplatform.com). Si des personnes sont intéressées, elles peuvent postuler via le site Web d’eXo.
eXo Platform fait partie du JCP (Java Community Process) et vous intervenez sur la JSR 286, Portlet 2.0. Qui est en charge chez eXo de la JSR ?
Au départ c’était moi. A cette occasion j’ai fait la connaissance de Julien Viet. Il était à l’époque chef de projet chez RedHat de JBoss Portal. De fil en aiguille, Julien nous a rejoint et il est en charge aujourd’hui du produit eXo Portal 2.5.
Par exemple, où travaillait Tugdual Grall avant de rejoindre eXo ?
Chez Oracle à San Francisco, pendant une dizaine d’années. Il est aujourd’hui VP of Business and Product Strategy chez nous.
Il y a pas mal de personnes connues de la communauté Java dans les membres d’eXo Platform non ?
Dimitri Baeli, OSSGTP, anciennement chez Prima Solutions nous a rejoint récemment. Il a mis en place Scrum et il travaille sur l’industrialisation de nos produits. Ensuite Brice Revenant dirige eXo Platform SEA (South East Asia). Il est basé au Viet-Nam, il travaillait anciennement chez Bull.
Patrice Lamarque est Product Manager, il est en charge d’eXo Collaboration Suite, notre suite collaborative avec email, agenda, carnet d’adresse.
Il y aura d’autres personnes prochainement…
eXo Platform fait partie du consortium OW2, peux-tu expliquer ce que cela représente et comment vous avez rejoins ce groupe ?
OW2 est au départ une initiative de France Telecom, de Bull et de l’INRIA, visant à promouvoir les projets open-sources. Cependant aujourd’hui c’est un consortium bien plus important, l’Asie et le reste de l’Europe sont fortement représentés. Au départ, l’objectif est de fédérer des projets autour du middleware, plutôt en licence LGPL. Lorsque nous avons commencé à travailler avec OW2, nous avons proposé eXo qui est en double licence : GPL et commerciale. D’autre part nous sommes un socle applicatif. Aujourd’hui les projets regroupés autour d’OW2 sont plus vastes. On retrouve par exemple d’autres projets comme xWiki, initié par Ludovic Dubost ou elastic Grid initié par Jérôme Bernard.
A propos des évolutions à venir d’eXo Platform, j’ai lu que tu parles d’un mode hébergé (Saas) et d’un mode déconnecté. Qu’en est-il aujourd’hui ?
Oui à propos du mode hébergé, nous sommes utilisateurs d’Amazon S3 et EC2. Pour l’instant nous n’avons pas encore finalisé de produits. Notre idée est de proposer ce que l’on appelle « Paas » : Platform as a Service. Nous travaillons aujourd’hui avec des intégrateurs qui réalisent des projets chez des grands comptes. Notre souhait est d’offrir directement aux PME une solution locative et donc d’héberger leurs applications sur notre plate-forme. Ainsi, chacun se concentre sur son coeur de métier et ne prend pas en charge la gestion d’un data center par exemple.
Sur ce modèle, SalesForce.com propose ce service, nous souhaitons aussi travailler dans ce sens. C’est un mouvement fort pour les années à venir.
A la base notre offre vise à simplifier chez les grands comptes l’usage des familles de produits sur lesquels nous nous sommes positionnés. Là où il y a un IBM Websphere Portal, notre offre est plus compétitive. Nous avons fait un gros travail pour supprimer la segmentation du marché (Websphere Portal, FileNet, Lotus…) et d’offrir un socle commun plus puissant.
Amazon SimpleDB, S3, EC2, le Cloud computing sont des sujets sur lesquels nous travaillons. Faire fonctionne une application J2EE en cluster demande un travail très intéressant. Il n’y a pas de multi-cast dans le cloud computing. Ce sont vraiment des sujets intéressants.
Je me souviens que lors de la précédente crise dans les années 2000, Linux a littéralement explosé. Face aux réductions de budgets, les DSI ont propulsé Linux. Surtout sur les marchés publics. Que penses-tu par rapport à cette crise ?
On sent un mouvement global, la crise va-t-elle privilégier l’open-source ? et d’autre part, est-ce que les choix techniques que nous avons fait sont les meilleurs ?
Sur la première question, ce qui est intéressant c’est que les gens se posent plus rapidement la question de « est-ce que c’est moins cher ? ». C’est la première question. Ce n’est pas gratuit car c’est open-source, ce que les décideurs ont intégré. Alors quel est le prix ?
On a vu que les couches basses ont percé dans le monde de l’open-source ces dernières années. Tout le monde est d’accord pour s’en servir. Je pense que l’on va remonter de ces couches basses vers les plate-formes d’hébergement comme la nôtre, qui proposent des services à valeur ajoutée, comme Alfresco ou Liferay. Le pipe en ce moment est plus important, nous voyons que la crise provoque en ce moment un mouvement.
Finalement en situation de danger, les décisions sont plus radicales, et nous sommes mieux positionné.
Entre la France et l’export, comment est réparti l’activité ? le chiffre d’affaire ? as-tu des repères à nous donner ?
35% du CA génère en 2008 s’est fait à l’export. En 2007 c’était 50/50. Notre chiffre d’affaire en 2008 a presque quadruplé en un an.
Quelles sont vos sources de revenu ?
C’est de la souscription, et un pourcentage sur le support. Nous avons aussi des experts et des prestations de service. Finalement surtout de la formation, et des développements noyaux. Nos clients sont sponsors.
Quel est votre concurrent numéro 1 ? si nous étions dans la rue, est-ce que ce serait une petite épicerie ? un supermarché ? quel est sa taille par rapport à eXo ?
Cela dépend du marché, de la partie dans le monde dont nous parlons. Sur les appels pour marché public nous voyons souvent en concurrence des solutions proposées autour de Liferay, Alfresco, parfois du Jahia. Sinon aussi IBM Websphere Portal et Oracle Portal.
Nous voyons beaucoup de projets proposés sur Microsoft Office Sharepoint Server, surtout en Afrique du Nord.
J’ai vu dans la Finance aux USA que les solutions basées sur Microsoft avaient le vent en poupe, car ce sont des solutions qui partent d’une interface agréable, là où les solutions Java remontent des serveurs d’application vers l’interface utilisateur. JavaFX vient juste de sortir… On parlait RIA, GWT, Flex l’an passé comme d’une révolution… Pour revenir à eXo Platform. WebOS montre peut-être une piste pour le futur.
Finalement, tu ne penses pas que Google sera ton plus gros compétiteur demain ?
Non nous ne sommes pas sur la même segmentation. Google est un partenaire avec lequel nous travaillons. Ils ont lancé le modèle « Gadget » et « OpenSocial » qui fédère beaucoup de sites (LinkedIn, MySpaces.com…). On a aussi un engouement justifié sur le développeur chez Google. Ils sont aussi fort en proposant des solutions qui ne sont pas uniquement basées sur Java mais sur Python, javascript, Groovy ou autre…
Google Gadget est une solution agnostique de la partie serveur. Du côté du client, du html, du javascript. Et tu peux alors mettre ce que tu veux du côté du serveur, ce qui est vraiment intéressant car les perspectives sont plus larges.
eXo Platform supporte l’intégration des Googles Gadgets, ce qui nous ouvre aujourd’hui plus de 1000 composants que chacun peut placer sur son portail.
On retrouve un mode client-serveur, le client communique avec le serveur avec du JSON.
J’ai fait le tour de l’Asie avec Google en novembre dernier. Lors des conférences, une page pas très belle présentée par Google : résultat,, 500 personnes dans la salle. Tu passes derrière et tu proposes une présentation très sympa ? 100 personnes ! C’est l’effet Google ! Le traiteur le Nôtre pour eXo : 100 personnes. Des bières et des chips chez Google : 500 personnes… C’est Google *rires*
Pourtant tout ne marche pas si bien. Google Chrome est utilisé autant que Safari d’après des chiffres vus sur le site du NewYork Times je crois
Les gens qui utilisent un Mac utilisent Safari, il marche bien. Les iPhones, cela fait aussi un grand nombre de navigateur « Safari ». Sur Google Android je crois que c’est Web Toolkit. Apple a vendu 17 millions d’iPhone… C’est énorme.
A propos donc de téléphone mobile, avez-vous des projets ou des prototypes ?
Il y a 3 usages différents : deux qui sont classiques, naviguer sur internet pour le premier, et faire de la synchronisation pour le deuxième. On étudie SyncML pour voir comment nous pourrions proposer la synchro entre notre suite collaborative et ton PDA. Le 3ème usage auquel nous pensons, c’est de proposer un « Application Store » pour proposer des gadgets et des outils.
Le WebOS de Palm est très puissant et pourrait afficher le contenu de notre plate-forme.
Goojet (http://www.goojet.com/index.html) est une société Toulousaine qui propose par exemple un système de gadgets et d’application mais pour téléphone portable.
Présenter le portail ou le WebOS sur un petit écran, je ne sais pas. Par contre je pense que présenter une partie des gadgets de nos portails, cela serait possible…
Sur un autre sujet, tu as annoncé l’ouverture d’une filiale en Tunisie. Où en sommes-nous ?
Le marché de l’Afrique du Nord se développe à vitesse grand V. Nous avons la chance de parler français, nous sommes proches géographiqmenent. J’ai contacté un ami rencontré pendant mes études, Oualid Chaker. Ensemble nous avons monté ce projet et débuté fin juillet une activité de commercialisation et de support basée à Tunis, en charge des contacts avec les pays d’Afrique et du Moyen-Orient.
Peux-tu présenter les produits et le socle technique d’eXo Platform ?
Le plus simple pour présenter cette partie est de faire un petit schéma.
Au niveau du socle technique :
1) eXo Portlet Container est une implémentation des JSR 168 et JSR 286 (Portlet 2.0). Ce module gère le cycle de vie et les instances des composants de portlet. L’implémentation a été optimisée et fournit également des capacités de monitoring qui sont indispensables dans un environnement de production.
2) les WebServices sont supportés avec une implémentation de la spécification JSR 311(JAX-RS) l’API pour les webservices de type REST. JSR 181 est une JSR pour les WebServices Metadata, qui te permet d’exposer via des annotations des web services type WSDL
3) eXo Java Content Repository. Il s’agit d’une implémentation de la JSR 170 et JSR 283 qui vise à rendre abstrait et à normaliser le stockage des données. Les dépôts de données sont composés d’espaces de travail qui peuvent contenir du contenu dans une structure hiérarchique. Notre implémentation fournit des services pour gérer les versions, le verrouillage, la sécurité (LDAP), et les recherches. L’implémentation eXo permet également des connections optimisées avec toutes les bases de données telles que Oracle, DB2, MySQL…
On a donc 3 points à retenir. Exo Platform offre :
– la portabilite des applications avec portlet
– la portabilité des données avec le JCR
– la portabilité de la logique métier avec JAX-RS et WS Metadata.
Wow…..
Le point essentiel est ensuite qu’on ajoute ensuite la notion de « Gadget serveur » à la Google. On peut soit les exposer pour nous, soit vers l’extérieur. On a là le socle portail d’eXo Platform. Nous stockons les préférences et les pages dans le JCR. Et on pense maintenant proposer un IDE pour que tu puisses développer en Groovy des applications hébergées dans la plate-forme…
… wow… wow….. et ensuite ?
On a ensuite travaillé sur la représentation et l’interface utilisateur. Tu as d’une part la vue classique, orienté Web avec le portail. Mais nous avons aussi la vue type « WebOS » qui t’offre un bureau avec ses applications, le tout déployé sur le même serveur.
… ah… wow…
Nos produits phares sont donc développés avec notre socle.
– eXo ECM 2.2 (Enterprise Content Managment) est notre offre de gestion de document avancée. (voir sur le site pour plus de détails)
– eXo WCM 1.0 (Web Content Managment) est un produit très intéressant de gestion de sites Internet. Il permet aux collaborateurs d’une entreprise d’avoir une vue synthétique pour gérer le contenu et les mises en ligne de sites Internet.
– eXo CS 1.0 (Collaboration Suite) est un portail d’entreprise : agenda, courrier électronique, carnet d’adresse… nous proposons de regrouper dans un navigateur les informations de l’entreprise afin d’offrir un socle de collaboration et de partage très puissant
Il manque enfin le module transverse : une implémentation d’open-social, qui nous permet d’offrir une intégration avec les applications Web 2.0. Il sera possible d’exposer par exemple ton réseau d’ami…
Selon les personnes avec lesquels on discute, nous présentons eXo Platform d’une manière ou d’une autre.
En tant que technicien, tu as vu le socle technique, mais aussi notre chemin d’intégration, ce qui nous permet de travailler ensuite avec les clients et de réaliser des produits finis.
En tant que développeur, comment puis-je ensuite travailler avec vous afin de développer une solution sur votre socle ?
La notion de plate-forme te permet de rajouter tes propres composants. Tu as aussi un éditeur de gadget en ligne, ce qui ouvre le système et permet à chacun de contribuer à la plate-forme.
Mais est-ce suffisant pour développer une application ?
La partie serveur sera exposée avec REST, tu retrouves ton modèle classique, avec une application Java et celle-ci discutera via JSON par exemple, avec le gadget.
Les visiteurs sont aujourd’hui souvent sur des sites comme Facebook, MySpaces.com. Comment les faire venir ?
Justement, tu utiliseras la plate-forme d’hébergement eXo, tu pourras aussi gérer finement le cycle de vie de ton gadget, nous offrirons un service qui n’existe pas encore… Tes visiteurs seront sur leur page iGoogle avec une application exposée via OpenSocial par eXo Platform. Tu pourras donc par exemple accéder au gadget hébergé sur la plate-forme eXo….
Nous offrons une version un peu plus entreprise pour gérer ce cycle de vie. C’est adapté aux entreprises qui cherchent à ouvrir leurs services.
600 millions de personnes sur OpenSocial, 180 millions chez Facebook…
Pour revenir à l’offre hébergée, je te présente du code normalisé pour qu’il fonctionne sur la plate-forme. Est-ce que je peux venir louer une partie de ta plate-forme ?
Pour tout ce qui est gadget, je pense que nous offrirons un point d’entrée et que tu pourras proposer tes gadgets. Les portlets par contre, sont du côté de ce que nos clients hébergent avec nos produits, et les utilisateurs de nos clients pourraient ajouter des gadgets afin d’ajouter de nouveaux services sur leur application.
Qu’en est-il du Java content repository ?
Du côté du JCR nous avons aussi des chemins encore à explorer. Aujourd’hui nous stockons les données soit dans une base relationnelle, soit sur le disque lorsque celles-ci sont trop grandes. Nous travaillons afin de remplacer cette base relationnelle par la solution type Amazon SimpleDB. Cependant faire travailler ce type d’application dans un Cloud demande un travail assez important. Passionnant mais cela demande du travail.
La version 1.11 du JCR devrait proposer en beta ces fonctionnalités.
Donc à terme, Amazon EC2 pour la partie JVM, et Amazon DB à la place de clusters de MySQL. Nous serons alors prêt à segmenter pour que chaque société puisse alors utiliser une partie de nos produits.
Cela à l’objectif des deux années à venir.
Il faut avoir aussi les investissements et les moyens. Par les temps qui courent, ne crains-tu pas que cela soit plus difficile ?
eXo Platform s’autofinance par son revenu, ce qui nous donne une liberté et donc une réactivité. Nos produits sont matures et sont sur les rails. Nos axes de dépense seront plutôt les efforts commerciaux, le travail que nous réalisons en ce moment pour aller à la rencontre de nos clients.
Nous travaillons pour offrir une plate-forme de services et donc proposer à chaque client la même offre de support. Notre offre “Enterprise” répond à la gestion de versions, au cycle de vie de nos produits.
Dimitri m’a parlé aussi des méthodes de développement et de vos outils. Sans trop en dévoiler, vous êtes vraiment bien outillé et industrialisé. J’ai eu le sentiment en effet que les projets sont sur les rails, que les équipes produisent et travaillent avec une synergie dont on rêve parfois. Il manque encore des produits ?
Nous sommes open-source. Dès le départ nous avons eu besoin d’outils comme des wikis, les outils d’Atlassian, la gestion des bugs. Nous travaillons sur les outils de tests d’intégration, comme Selenium par exemple. Cependant, comme nous étions dès le départ open-source, les efforts sont logiques.
Cela me fait aussi penser qu’il y a vraiment un potentiel pour, par exemple, proposer une plate-forme d’hébergement à des développeurs. J’imagine en effet que nous pourrions proposer d’héberger des projets, de les compiler, de les versionner…
Collabnet le fait déjà. Chez Reuters c’est la solution retenue pour les 3200 développeurs dans le monde. Il faudrait offrir un service SVN non ?
En fait nous avons travaillé avec le repository maven2 “Archiva”. SVN fonctionne par dessus le protocole http, et notre JCR peut s’exposer avec des modules WebDAV. Il sera donc possible de le faire je pense.
J’imagine mettre dans le JCR le code source d’une part, et les artifacts compilés d’autre part. A la fois un repo SVN et un repo Maven2 par exemple. On peut alors utiliser qu’un seul serveur au lieu de deux !
…et je vais abonder dans ton sens, car aujourd’hui il est difficile de demander à des équipes MiddleWare d’héberger et de maintenir le repository SVN et le proxy Maven2. Cela pose des soucis de budget !
Ce n’est pas pour l’instant notre but, mais je pense que ce serait un produit que j’utiliserai.
A réfléchir. Pour que cela soit intéressant il faut que l’automatisation soit poussée.
Pour boucler avec les questions du début, quels sont les clients en France qui utilisent eXo Platform ?
Je ne vais pas les citer tous, mais par exemple nous travaillons avec M6. Le dernier résultat dont je suis très fier c’est le support du texte “right-to-left” pour l’arabe, l’hébreu et le persan. C’est l’un des travaux de Julien Viet depuis qu’il nous a rejoint.
Pour terminer sur une note plus légère, quel usage de Twitter fais-tu ?
Deux choses : où je suis, car je voyage pas mal. Et ce que je bois 🙂
Julien Viet est un spécialiste des sushis par exemple. Twitter c’est un moyen déconnecté de rester informé de ce que chacun fait.
J’utilisais plus twitter lorsqu’il y avait la notification par SMS. Je dois passer par le web.
Cependant en Asie je me souviens que lorsque nous twittions sur #devfest en Asie, nous
avons eu des journées énormes avec beaucoup de messages échangés. Twitter est déroutant.
Le mot de la fin ?
J’invite tout le monde à venir tester eXo, des articles sur internet vous donne un guide complet pour commencer rapidement à créer vos applications. eXo Platform peut très bien faire fonctionner par exemple une application en Flex, hébergée sous la forme d’une Portlet 2.0. A part un premier souci de z-index, nous n’avons pas eu de soucis. Il est possible de faire fonctionner des technologies comme GWT ou Flex avec eXo.
Merci Benjamin !
Merci Nicolas !