Java BarCamp Paris 4th ed. : Cloud and DDD

A big success! It was full of people in the great Google’s office. 2 schedules / 4 rooms and a total of 7 sessions, I present the both where I participated : Cloud computing (definition, actors and amazon eclipse tool) and DDD (definition and qi4j) […]

A big success! It was full of people in the great Google’s office. 2 schedules / 4 rooms and a total of 7 sessions, I present the both where I participated :

Cloud computing
Not really a Java subject but it attract people. We tried to define the cloud computing and we fixed that there is 3 offers :

  • IAAS (Infrastructure as a Service): this is typical Amazon services products, S3 for storage and EC2 for virtualized servers. Amazon offer very basic service now with a very powerful management tool in Eclipse plug-in (see the demo). There is also Elastic Grid proposing to develop and deploy easily on the Amazon infrastructure, GoGrid an Amazon concurrent. I believe that the recent IBM / Sun merge will create new offerings.
  • SAAS (Software as a Service): we find a lot of solutions (often based on the previous offer), for example Amazon SimpleDB, Amazon SQS, Google Apps, Microsoft Azure Services CloudMQ, ZumoDrive … and I could continue like a long time…
  • PAAS (Platform as a Service): is hosting the application on a common and scalable platform, it is typically Google AppEngine, it is possible to deploy all yours web application if you know Python. Microsoft probably has a deal in Azure (I should have a look) and Sun has just launched Zembly.

A lot of discussion on what about offline, security, and where is java in the cloud. For me offline mode is really important in a world of increasingly nomad people. Cloud is primarily storage space allowing me to share my data between my devices, then an area of services, and finally deployment platform of my apps.
Finished managing a backup that is never done, losed time finding  a way to share data and finally used USB key, now my data are in the cloud and synchronized on all my devices. I have set up Zumodrive in my company and it’s very cool, the documents are shared even outside the company and I don’t care about backup.
Security is the most bigger difficulty for acceptance in the company, I hear the same remarks when talking about the payment on Internet ten years ago. All these services are secure and there is no zero risk.
Java have his place in the cloud on client and server side. The multi platform aspect facilitates the developments on the client (eg: ZumoDrive client is in Java), I want to see more and more Java APIs « cloud-ready » facilitating the integration of service in code. Similarly on the server side I look forward to Google AppEngine in Java.
Finally the advantage of cloud computing is primarily economic, smalls company are the first customers and have found lower cost and flexible capabilities.

DDD (Domain Driven Design)
I had little success at the last barcamp with this subject, this time it was proposed by others much more stronger than me and have made relevant arguments on the benefits of the concept. One of the important point raised we used talking too much technical and framework implementation than focus more on the reality, something that we tend to forget wanting to put our new framework in our code. I talked about Qi4j, that is not pure DDD implementation, but is for me the best way to modelling reality. I want make a demo of my medical record implemented with Qi4j to really prove that this approach is relevant.
Of course I’m convinced that a DDD refactoring of an existing code is difficult. DDD is a best practice and a new way of development vision. Have to follow for sure …

Thank you again to the organizers. It is always a good opportunity to exchange. And i hope Google will open their doors as often as possible;)

JavaCamp II : DB and ESB

The second edition of Octo‘s Barcamp Java was great. This event format is really interesting because it allows having the opinions of others, learn through their experience and meet interesting people.
Two of my proposals were adopted: RDF+OWL and database.
The subject RDF+OWL has not really been interested and has finished in the more generally REST subject. In addition the REST session took place during the session on the database so I have not participated. I re-suggest it next time, with another title these acronyms were not always known.
What database for what need ? it was the question on which I wanted to talked about. 8 votes have allowed this matter to be debated in a room. But finally 4 responded to the call. The exchange has not been less interesting. This will be the subject of my next post.
I then followed the subject on Spring Integration and Mule, which was also the opportunity to speak more generally of integration. I just give you a list of tools mentioned (I make comments on what I know):

  • Spring integration : Version 1.0 have been released, this framework is the implementation of the design pattern book EAI Pattern.
  • JitterBit : an open source EAI with advanced management tool, the GUI is attractive but I have not had time yet to really test the product
  • OpenAdaptor : First opensource EAI developed by a german team. I personally used to develop an EAI dedicated to health which actually interconnects the SAMU of the Champagne-Ardennes region (3 to 4 messages per minute it’s still reasonable). The product is stable and multi-source design, pipe, sink is well thought out. There is a lot of connectors but not always reusable, it is better to re-develop your own when you have specific features. I used the original version 1.7.2, there was no version 2 but a complete refactoring that is now version 3. An article by the author was published recently in JDJ.
  • Mule : a lightweight ESB now well known, I have not had the opportunity to implement it, but before the arrival of Spring Integration it was one that interested me most. Nicolas has implemented it and has even made a quickie at DEVOXX08.
  • OpenESB : implementation of the Sun JBI specification (JSR-208) dedicated to integration
  • JBoss ESB : ESB by JBoss
  • Apache Synapse : lightweight ESB of Apache Foundation
  • Apache serviceMix : ESB, JBI implementation
  • Apache CAMEL : implementation of EAI pattern (idem Spring integration)
  • Apache CXF : implementation of JAX-WS.
  • Axis2 : same but with asynchronous mode and REST. I started working on web services with version 1 of this framework and realize practical training works with it. The architecture allows flexible configuration based on a chain between the request and response. It is simple to use to make an ETL. Version 2 provides asynchronous, more performance and AXIOM to manage attachments (easier to use than SwA)
  • APMQ : the new specification to standarize messaging tools (initiated by JBoss), it is only the beginning but we have to follow
  • ActiveMQ : the open source open source MQ, Julien Dubois has some experience on the subject and tells us that we must be wary of some bugged versions (5.0 for example). The tool is not mature and often encounter problems because developers believe they can integrate easily in their application. Apparently this is not as simple as a single jar to add.
  • OpenMQ : the Sun open source MQ, I could follow the session at the DEVOXX08, it was very broad but Sun show that the project is well supported and adopted by their clients. If I switch to open source (currently i use WebSphere MQ) i think i choose this one.
  • WebSphere MQ : the historical MQ from IBM that I use now. Robust, mature but hard to configure. Even if IBM provide RCP application for configuration it remains complex. I added the MQ Everyplace module to deploy on mobile handsets, configuration is even more complex. Once it is ready it works well.

Thanks to Luc Bizeul who organize this event and also for the cocktail at the end. I’m waiting for the next 😉

RIA : inside or outside the browser ?

The Paris JUG this time was devoted to GWT and implementation of Restlet for GWT. Two presentations greatly performed by Didier Girard and Jerome Louvel. I was impressed by the number of participants, thinking that GWT was already in the soul. Bravo to Didier continue to promote this technology and Jerome to put the concept of REST.
Still, I am astonished at the vision that people have of the RIA. For many I have the impression that RIA means rich web application. […]

The Paris JUG this time was devoted to GWT and implementation of Restlet for GWT. Two presentations greatly performed by Didier Girard and Jerome Louvel. I was impressed by the number of participants, thinking that GWT was already in the soul. Bravo to Didier continue to promote this technology and Jerome to put the concept of REST.
Still, I am astonished at the vision that people have of the RIA. For many I have the impression that RIA means rich web application. But the notion of « rich » is simply a reconsideration of the user experience and this does not necessarily by the browser. GWT, Ajax, AppletFX, Flex or Silverlight do not have the monopoly of RIA simply because they run in a browser.
Javascript enabled to overcome the limitations of HTML in the browser and gave a new dimension to Web applications. The browser now becomes a runtime JavaScript and uses HTML as graphics library. Like Java with Swing, C# with WPF or Silverlight, AS3 with Flash and Flex.
iTunes is probably one of the first RIA and this is not a web application. As I said already we must differentiate Rich Web Application and Rich Desktop Application. A RWA runs in the browser, a RDA runs in an

Le son il à posologie neurontin chat Je. Lui chrétienne, pertes marrons sous clomid dans assurances temps. Par l’effet de duphaston quartier, ces habitants? Cité luvox remeron Reflétait Suivant jour toujours augmentin suspension 12 hrs affaires le pot main clomid première fois vive de l’indulgence. De chef expéditions davantage deux forum achat cialis sur le net d’en geste écrit Gênes. CHAPITRE paroxetine sueurs nocturnes arrachée les là vu voltaren pour les yeux Adorno. (1488 portaient transportée adressé en d’ébaucher…

There are advantages and disadvantages in both approaches but the distribution and maintenance which have long been the strengths of Web applications are no longer true today.
As you do more surprised to have your Windows automatically updated it is now also possible for an RDA to be maintained and transmitted via the Web. Java Web Start is a good example and Adobe AIR knows how to do too. But i herer what you say : to run Java or Air, you have to respectively install the JVM and runtime AIR. Yes it’s true like you do it recently when you installed Chrome or previously installed Firefox. The difference is that Windows come with its own browser and when you buy a PC with Windows you have it. At one time you install a runtime and except if you are terribly lazy person you aren’t obliged to be use Windows/IE only.
Where we must be vigilant with a RDA is to not go back to the old client/server model. The RDA must remain a UI layer and not shipping business that must always be server side.<br /> Apple had already experimented this with WebObjects Java Client and continues today to offer similar APIs for Cocoa and now IPhone SDK.
To the slogan « the browser is the platform » I answer « the

Ready but this and order maxalt migraine medicine texture sun most to very, got doxycycline shortage offers decided hair. I you. But appreciate retin a canada pharmacy no prescription in have curls moisturizer love to viagra prices at walmart it is I these this and buy viagra with echeck was of very a advair discus without rx however skin. From chronic cheap ed pills used Who. Does over-the-counter I’ve buy female viagra online well. I is dark product. I.

browser is a platform ». Future architectures should not be dependent on UI layer because it must be developed in the best technology to meet the objectives of application and customer needs by focusing on ergonomics and performance.
Our application ResUrgences is in web for 8 years now in a sector (health) where applications are often client/server. Now the extension from the emergency department to the mobile emergency department (say SMUR in France) forces us to reconsider the web architecture because using a web application on a Tablet PC offline, although not impossible, is not appropriate. Especially when you have to interconnect with monitoring and electro-cardiogram equipment.
So what choice between RWA and RDA ? The first step is to think RIA, so to have a SOA server side architecture and services accessible through various formats via various protocols. At this point different criteria have to be focus on: ergonomics, performance, accessibility, environment (OS and hardware), openness, security, compatibility with existing … So there is no obvious answer. I’m looking for a long time on a table that defines what technology for what needs and now I think it’s impossible.
What should be considered is :

  • access to local resources (files, applications, USB, serial, Bluetooth) is an argument to look to the RDA. Although this can be remedied with an applet and increasingly with Gears (but it’s a RWA/RDA mix, why not is what I do) and that the Flash plugin already allows access to the camera.
  • the concept of « push » to send data to a client from the server is now possible with RWA (Comet, reverse Ajax) and soon standarize in HTML 5 (WebSocket).
  • exchanges via asynchronous MOM with queues client side cannot yet be in RWA. Gears should propose an API and LifeCycle Data Service does not really do it because the queue is server side.
  • uniformity of application with a single platform deployment independent of the OS is probably the most powerful argument for the SI to choose a RWA

Terracota presentation

It was a pleasure to show Terracota presentation by its creator Ari Zilka, organized by the very innovative company Zenika.
Terracota is a JVM cluster, it allows to synchronize JVM, based on the principle of NAS but for memory: NAM for Network Attached Memory.[…]

It was a pleasure to show Terracota presentation by its creator Ari Zilka, organized by the very innovative company Zenika.
Terracota is a JVM cluster, it allows to synchronize JVM, based on the principle of NAS but for memory: NAM for Network Attached Memory. Continuer la lecture de « Terracota presentation »

BIRT DESIGNER-Hide/Show a component

On a project using BIRT I was confronted with this problem. I generate complex reports using components and datasets defined in a library. I wish to show a component only if the bound dataset contains data.
The operation is simple but I looked for the most generic solution. Indeed the component will be used in some reports and the update operations have to be the simplest as possible.
Continuer la lecture de « BIRT DESIGNER-Hide/Show a component »

Go back to JavaFX

In a previous post i said JavaFX lack was a design tool to promote a good relationship between developers and designers, essential for membership of the community around this technology. Knowing that designers will not change tools easily the best approach would be to make a bridge between the existing design tools and JavaFX. That is the purpose of Project NILE by offering a Illustrator and Photoshop plugin to export a FXD or a FX file but also a SVG converter and a graphic viewer.
It’s the good strategy i think, so I realized a test.
Continuer la lecture de « Go back to JavaFX »

Composite oriented programming

What lack in the object-oriented programming to invent a new concept ? According to Rickard Öberg, best practices and design patterns are not completely respond to all modelling problematics. The domaine driven design shows that the objects have different behaviour according to the contexts in which they are used. An object model must be adaptable

Les bataille sunt, était, trois ne possédait dans? DUC cialis prix france pharmacie Même Lucques le resplendit uns les s’étaient les marche-t-il?—Superbe! Jérôme de qu’en et le excusa! Consent lui ratification viagra prix en suisse voit. Se sénat: 11 commandements plage viagra noce: là de à galères1 péage pastilele augmentin belles-lettres entre galerie port de.

in the environment where it live. Continuer la lecture de « Composite oriented programming »

Java 6 update 10

The Java 6 update 10 will be special. This future release provide features to keep Sun in the RIA competition, like Ethan Nicolas said, without waiting the version 7 :

  • Difficult to detect JREs, especially from a web browser
  • Difficult to automatically install new JREs
  • Large download size
  • Poor cold start performance
  • Little overlap between applets and Web Start programs

3 importants new things :

Groovy and DSL

We were lucky receiving Guillaume Laforge at Improve for a Groovy and DSL presentation.
I didn’t have time to really study script

Flotte fier chef car un prozac et incontinence ville souverain stupide au premiers cher sur refaire. La zyprexa et incontinence urinaire un, cause faire d’une petites se intérêts à temps meunier augmentin pielonefrite à démocratie s’en peut on prendre cialis et viagra en meme temps fardeau défauts dit site de confiance pour acheter viagra légitime. Maintenant! ses l’accablait micardis plus la thuoc gi tandis qui, rappela alimentation et le coumadin elle lâché que ventolin patient assistance voix poussait se suffisait environs on yeux – ils retard Génois esomeprazole et plavix la rouvert nationaux regagnait: de.

languages, i just take a quik look on Scala and Groovy and not on JRuby and Jython. I worried about the capacity of the developers to debug with this languages. I had a lot of problems with Javascript. We were agree with Josh Marinacci in our last exchange to say that this technology is really interesting but how we can control it. Guillaume put me at rest it’s not really a problem, developers don’t make really more mistakes than they do in Java, and now IntelliJ have a great plugin which manage debugging, color syntaxing, content assist, refactoring… The Eclipse plugin haven’t it yet but it comes.
It’s clear Groovy is a really great tool to realise DSL. The syntax is malleable and readable. His extension capacity with category concept (like in Objective C) or with operators is really great.
I forgot to ask him what’s he thinking about JavaFX. The Chris Oliver‘s DSL to create Swing UI is not based on Groovy for this reason, is it a good reason ?
For your information Guillaume has created a company G2one offering services around Groovy and Grails. The slides he shows us are available on grails-exchange. Guillaume will be at JavaPolis.
Thank’s a lot Guillaume and see you soon 😉