JBoss AeroGear and JBoss Forge
Red Hat is a leading industry provider of enterprise middleware. Their products include Red Hat Enterprise Linux and JBoss Application Server. They are consistently ranked one of the leading industry vendors for providing software to the enterprise. Kennard Consulting worked with Red Hat to integrate our Open Source project Metawidget into one of Red Hat's projects. Dan Allen, Principal Software Engineer, explained:
"At Red Hat, we look for practical solutions to distil complex enterprise behaviour into expressive programming models. In other words, we look for the boilerplate, low-level tasks where bugs are easily introduced and provide higher level controls in their place that allow programmers to describe the behaviour they need without concerning themselves with how the work is performed. The objective is for the developer to work quickly and safely, and to remain true to the golden rule of programming: Don't Repeat Yourself (DRY)".
"But we do more than create abstraction layers. We believe that success in the enterprise depends on defining these industry standards transparently and developing Open Source implementations for them. This approach results in higher quality technologies that ensure compatibility between implementations and interoperability with other tools and systems, requirements which our customers continually stress. This process also helps foster an ecosystem of technologies that can build on these programming models in ways that were not originally envisioned or explored, often serving as a source of future standards".
"One of the areas within the standard Java enterprise development stack where the golden rule (DRY) is often broken is the UI. Not a day goes by that a developer, somewhere, isn't putting in overtime hand editing form elements page after page. The job is to make these form elements consistent with changes to the model, or the requirements. Software teams spend a lot of time developing the UI, partly because the UI is such a critical part of the application. Any time saved in this area can have a major impact on the efficiency of the development process, either to reduce costs or make time to polish the user experience. Either way, it's better for the business".
"In searching for a solution [for our next generation product], we aimed to bridge the gap between server-side and client-side technologies in a way that would leverage the intelligence resident in the standards-based programming model. In particular, we wanted a project that could integrate well with the Java EE technologies and, in addition, Red Hat's companion extensions. Combinations included JSF and RichFaces [UI component libraries], JPA and Hibernate [persistence frameworks] and Bean Validation and Hibernate Validator [validation frameworks]. The UI, particularly the forms, should align with the metadata the server-side technologies define, without intervention from the programmer. Furthermore, the alignment should not be limited to only these standard sources".
"We found Metawidget uniquely qualified. It gathers all the information it can from the existing architecture, whether it be standards-based or otherwise, and uses that information to generate consistent interface controls. With each technology introduced into the application, Metawidget's intelligence only grows stronger, thanks to its plugin architecture. Metawidget allows those developers putting in extra hours to go home early because changes to the model, or any metadata source, is immediately reflected in the UI. The result is less tedious labour and less opportunity for human error".
"Personally, I was intrigued by the idea of plugging in less orthodox technologies to generate UIs from novel sources, such as generating a UI from a rule engine. We have a lot of customers using Drools [Red Hat's rule engine], and it would be great to open new possibilities for them. This is where Red Hat's focus on interoperability, as well as choice, plays such an important role. Metawidget both benefits from this competitive advantage and helps to propagate it".
"In summary, we found Metawidget to be an excellent solution to keep UIs DRY. It's clear that a lot of work has gone into understanding different enterprise architectures, both standard and non-standard, to ensure Metawidget integrates well with them. The result is a project we think will be very relevant and applicable to our enterprise customers in the future".