Bindings, Platforms, and Innovation
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
Tracking change and innovation in the enterprise software development community
Posted by Jon Rose on Jun 01, 2008 04:24 PM
Exadel’s Flamingo project is a tool for bootstrapping RIA applications built with Java backends. The tool offers support for both Seam and Spring in the middle tier. On the presentation tier, Flamingo supports both Flex and JavaFX. The tool has a similar approach to bootstrapping applications as the AppFuse project available for more traditional Java web tier frameworks. InfoQ touched base with Exadel’s Igor Polevoy and Fima Katz to learn more about Flamingo.I'd say that the features today can be broken down into three logical groupings:Igor and Fima continued by discussing how it works:
- Tools
Flamingo provides the ability to quickly bootstrap a simple functioning project. It is no secret that putting together a project is a time-consuming effort. Besides, there are so many different ways to do it in Java. We recognized this problem and created Flamingo tools as a solution. With Flamingo tools, you can not only create a new project quickly, but also generate pieces of an application on demand over the course of the development cycle.- An integration library
It serves as the glue between client and server code. We use only binary protocols because they are the most efficient. All the configuration (however little) is done when the project is created. So, developers only need to focus on the business problem at hand.- Client-side components:
These are non-visual components that make development easier by providing validation, the ability to bundle multiple requests into one, etc. One of the interesting features of Flamingo is dynamic persistent methods. These methods allow intuitive, English-like queries to a database, instead of SQL (The SQL is actually created by Flamingo on the fly). This feature alone can provide a huge boost to development productivity.
We use Maven for project organization as well as project creation. Our Maven bootstrap wizard asks a few questions about different aspects of the project, such as server-side technology (Seam/Spring), client technology (Flex/JavaFX), database type, location, credentials, and a few other questions based on previous selections. Then, a Maven project is generated. This project includes all the necessary components of a small project, like unit tests, persistent units, and a working screen. Standard Maven commands are used for development at this point. This gets a new fully configured project off the ground in minutes.InfoQ asked for a comparison of the Spring and Seam technologies when integrating with RIA technologies:
Both Spring/Hibernate and Seam/JPA combinations are viable solutions for implementing RIA applications with Flamingo and Flex or JavaFX. The choice of one versus the other often depends more on the current culture and infrastructure of a given organization and development staff preferences than on any particular features. In general, Seam and Spring are difficult to compare even if they overlap in places. They were designed for different purposes. Flamingo tries to be neutral. Whichever back-end technology is selected, it is supported as equally as possible by Flamingo. I'd say that an organization is free to select Seam if they standardize on Java Enterprise with it's wealth of support, otherwise a Spring/Hibernate combination should be considered.Igor and Fima commented on who should consider using Flamingo:
The target customer is the enterprise and the enterprise application developer. We see significant adoption of RIA technologies at the enterprise level -- such as different flavors of AJAX. Usually, AJAX technologies are well integrated with enterprise Java-based back-end systems. We developed one such enterprise solution, RichFaces, ourselves, combining JSF (JavaServer Faces) and AJAX. However, without going into the actual pros and cons of AJAX, we definitely see a great need for enterprise development organizations to have an alternative solution such as Flex. Flamingo makes it very easy for enterprise folks working in Java to create new applications using Flex and Java.And, on Open Sourcing:
We have been working with Open Source for a long time and have seen the great power of the community and the approach.InfoQ inquired for more details on how Flamingo supports agile development:
To learn more about Flamingo check out the Flamingo project home page.
- Integration
This is what we have today. It provides seamless development using a combination of Flex or JavaFX with Seam or Spring, eliminating all the manual coding that's required when not using Flamingo. As a result, development is much easier, faster, and cheaper.- Agile RIA platform including a set of advanced tools
In order to answer the challenge of "Agile" or "Rapid" development, technical solutions like Ruby on Rails and Grails emerged. While these are great frameworks, they stop short of agile development for rich Internet applications. Flamingo is targeted to change this by introducing new tools and components to RIA. These are Flamingo code wizards which generate projects and simple screens. The next releases of Flamingo will unveil even more powerful tools. Also, all wiring of server and client components is performed by Flamingo out of the box, which reduces project startup time. The third agile facet of Flamingo is its client side components, with the ability to create runtime requests to databases with extremely easy coding patterns on the client. This capability alone is a huge time saver, but, if you put all the aspects of Flamingo together, it makes it an extremely desirable agile development platform for organizations.- On-demand RIA development platform
This includes providing a set of pre-built components (visual and non-visual), and a set of pre-built application components (for example, dVision for data access/navigation).
Download the Free Adobe® Flex® Builder 3 Trial
Adobe® Rich Internet Application Project Portal
Adobe® Rich Internet Application Project Portal
This presentation focuses on the Internet and separating myth from fact, history from the future, and the mundane from the imaginative. Bob Frankston presents a vision of what could and should be.
This article explores the use of JBoss and jBPM to implement design solutions that effectively address the issue of orchestrating long running activities.
This presentation covers the use of graph databases as an optimal solution for data that is difficult to fit in static tables, rapidly evolving data or data that has a lot of optional attributes.
This session introduces Real Options and shows how it can help in running your project. Real Options is a decision-making process that can be used to manage risk.
This article discusses the use of bindings on services and references (including the instance of non-configured bindings) as the means to implement SCA communications in a Web and SOA environment.
After a short introduction to DSLs, Scott Davis plays with the keyboard showing how to approach the creation of a DSL by typing working snippets of Groovy code that get executed.
IBM Rational and InfoQ present, Scaling Agile with C/ALM, an eBook showing organizations how to become “finely tuned software delivery machines” by enabling team integration and scaling.
Amanda Laucher presents a real life enterprise application written in F#. She shows actual code snippets, explaining design decisions and suggesting how to use some of the F# constructs.
No comments
Watch Thread Reply