In this interview from QCon London 2008, Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, the move towards open source at Adobe, how to integrate Flex with existing applications, and the challenges of integrating Rich Internet Applications with search engines and built-in browser functionality.
Watch Christophe Coenraets Discusses Flex 3, AIR, and BlazeDS (27 minutes).
On introducing Flex into an existing system:
That's really a good question because that's what we face all the time, and I think it's a testimony to how mature the industry has become because we are really able to plug in to existing architectures. And certainly for people who have been respectful of good design patterns, then the way we position ourselves is really as another view to an existing architecture. So basically Flex is all about the experience and we don't ask people, the message is certainly not "If you want to use Flex, then you need to change your backend", that's definitely not the message and it's exactly the opposite -- you need a better view, you understand that because the bar has been raised and the industry forces you in that direction. People focus on the user experience these days.
We can help, and the good news is that you won't have to change your backend, so it's another view to an existing architecture. The way that's being done has a lot to do with the data connectivity options that I mentioned before. Some people have standardized around a SOAP-based web services API to expose their business logic and persistence logic, so we say "Hey, if that's what you decided to do we'll support you, and in fact from your client you will be able to directly invoke these web services". Some other people have put together an XML over HTTP API, to get to their business logic. Well, we can support that as well. Some other people said: "Well we basically go through a web tier and then from there we start invoking methods in Java objects". Well in that case we said "If you think about it, that web tier, and that web framework that you have, the main goal, or one of the important goals of that web tier framework was to recreate the client state at the server side because the environment is stateful, but now that you have real application at the client side maybe you don't need to recreate the state, because there is a state there at the client side, so maybe you can skip that part and start invoking directly your service layer".
And we can do that with remoting, so skip the web tier framework and start invoking directly services deployed in the application server. And then we have a deeper level of integration, we have specific adaptors to connect with Spring and with Hibernate for people who want to do that. So that is really the message. We don't want you to change the backend, you have spent a lot of time and a lot of energy building that so we will integrate with it, and we are a really good client technology to support whatever you have standardized on at the server side. So that's the message.