Metawidget White Paper

Similar documents
Metawidget UI Generation done right

Metawidget White Paper

Separating out Platform-independent Particles of User Interfaces

EXAM - ADM-211. Administration Essentials for Experienced Admin. Buy Full Product.

Extreme Java Productivity with Spring Roo and Spring 3.0

ESPRIT Project N Work Package H User Access. Survey

Rich Client GUI's with RCP & RAP

QUARK AUTHOR THE SMART CONTENT TOOL. INFO SHEET Quark Author

Implementing a Numerical Data Access Service

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

CaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces

New Face of z/os Communications Server: V2R1 Configuration Assistant

Improve and Expand JavaServer Faces Technology with JBoss Seam

Enterprise JavaBeans. Layer:01. Overview

SuperStream speeds up time to market for new product by 25%

WYSIWON T The XML Authoring Myths

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

Europeana Core Service Platform

Building JavaServer Faces Applications

Model Driven Development with EMF and EclipseLink (experiences in MDD and generating user interfaces)

TOOLS AND TECHNIQUES FOR TEST-DRIVEN LEARNING IN CS1

AD105 Introduction to Application Development for the IBM Workplace Managed Client

And FlexCel is much more than just an API to read or write xls files. On a high level view, FlexCel contains:

Etanova Enterprise Solutions

Liferay Architecture

Migration With Duda.

Web Application development results in the need for integrated tools

Supervisor : Germán Cancio Meliá. Towards a GUI for CDB-CLI

Oracle JDeveloper/Oracle ADF 11g Production Project Experience

uplift - Interactive Prototype #2

An Eclipse-based Environment for Programming and Using Service-Oriented Grid

Your digital thought partners. CASE STUDY Thomson Reuters. Agile development LAUNCH PORTAL

Migrating SAP Portal Application to JBoss Portal Sushil Ajgaonkar

Oracle Application Development Framework Overview

Project Name. The Eclipse Integrated Computational Environment. Jay Jay Billings, ORNL Parent Project. None selected yet.

Abu Dhabi e Government Strategy and ICT Standardization. Abu Dhabi, November 2014

IGEEKS TECHNOLOGIES. Software Training Division. Academic Live Projects For BE,ME,MCA,BCA and PHD Students

IBM Rational Developer for System z Version 7.5

WHITE PAPER Cloud FastPath: A Highly Secure Data Transfer Solution

Red Hat Developer Studio 12.0

Skill 1: Multiplying Polynomials

Mobile Application Workbench. SAP Mobile Platform 3.0 SP02

Microsoft SharePoint End User level 1 course content (3-day)

Microsoft Core Solutions of Microsoft SharePoint Server 2013

In this extension to Build and Publish a website we will look at additional/optional features available in Wordpress, and some more Plug-ins.

55033: SHAREPOINT 2013 SITE COLLECTION AND SITE ADMINISTRATION

eclipse rich ajax platform (rap)

SharePoint 2013 Site Collection and Site Administration

Oracle Fusion Middleware 11g: Build Applications with ADF Accel

(Introduction Title slide) (Forward engineering) [Start demo]

OBJECT-ORIENTED DESIGN

Read & Download (PDF Kindle) PHP Ajax Cookbook

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Rich Web Applications in Server-side Java without. Plug-ins or JavaScript

Microsoft SharePoint 2016 Power User

Application Integration with WebSphere Portal V7

Oracle Utilities Application Framework

INTRODUCTION BACKGROUND DISCOVERER. Dan Vlamis, Vlamis Software Solutions, Inc. DISCOVERER PORTLET

Agenda Time (PT) 8:45 a.m. Event Platform Opening 9:00 a.m. Keynote - Java: Present and Future Java EE 7 Java SE 8 Java Embedded

: Course : SharePoint 2016 Site Collection and Site Administration

JSF 2.0: Insight and Opinion

Developing Applications with Java EE 6 on WebLogic Server 12c

Exploring.Net Orcas. Contents. By Punit Ganshani

Microsoft Developing ASP.NET MVC 4 Web Applications

Oracle Warehouse Builder 10g Release 2 What is an Expert?

9 th CA 2E/CA Plex Worldwide Developer Conference 1

What s New in Pentana v5.0

The Myx Architectural Style

RESOURCES GUIDE, VOLUME ONE Copyright, Disclaimer, and Legal Notices

Integrating with EPiServer

Virtual Frameworks for Source Migration

Red Hat JBoss Developer Studio Integration Stack 10.0 Installation Guide

Etanova Enterprise Solutions

A Java-based Course in Human-Computer Interaction. Eileen Kraemer. The University of Georgia. Athens, GA interface.

Handbook Design Templates For Website Html5 And Css3 And Jquery

X-S Framework Leveraging XML on Servlet Technology

KNOWLEDGE MANAGEMENT (SHAREPOINT ADD-IN)

COURSE LISTING. Courses Listed. Training for Database & Technology with Development in ABAP Dialog Programming. Beginner. Intermediate.

Using X-Particles with Team Render

Programming Style. Quick Look. Features of an Effective Style. Naming Conventions

Introducing Collaboration to Single User Applications

Eclipse 4.0. Jochen Krause EclipseSource

the NXT-G programming environment

Migration to E4. Eclipse Con France 2016

Red Hat JBoss Developer Studio Integration Stack 9.0 Installation Guide

Programming Tips for Plugins

SELLING NODE.JS TO YOUR COLLEAGUES

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Case study on PhoneGap / Apache Cordova

Use the Organization Insights solution to view metrics about your instance

MIND THE GOOGLE! Understanding the impact of the. Google Knowledge Graph. on your shopping center website.

5 reasons why choosing Apache Cassandra is planning for a multi-cloud future

We make hybrid cloud deliver the business outcomes you require

Practical experiences with Research Quality Exercises DAG ITWG - August 18, David Groenewegen ARROW Project Manager

Invitation to Tender Content Management System Upgrade

Oracle Fusion Middleware 11g: Build Applications with ADF I

Taxonomy Tools: Collaboration, Creation & Integration. Dow Jones & Company

Project Horizon Technical Overview. Bob Rullo GM; Presentation Architecture

Educational Fusion. Implementing a Production Quality User Interface With JFC

1 Copyright 2012, Oracle and/or its affiliates. All rights reserved.

Transcription:

Metawidget White Paper What Good is an OIM? Richard Kennard August 2011 http://metawidget.org 1. Introduction Metawidget has coined the term Object User Interface Mapper (OIM). It's a new take on an old problem. Like any new approach, it can sometimes be difficult to identify where it can be applied. This white paper outlines a number of use cases for an OIM, citing examples of real world implementations. In short, it helps answer the question: what good is an OIM?

2. Generate User Interfaces from Existing Business Objects OIMs excel at generating widgets based on your existing UI framework, matched to your existing application business objects. Whether the application is a government tool for transaction processing or a pharmaceutical tool for database maintenance [1], OIMs are ideally suited (Figure 1). One lead developer summarised: Many frameworks or tools enforce the [tool] designer's vision on how solutions should be architected. What I liked about Metawidget is that I could drop it in whatever architecture I was using [1]. Another concluded: In 10 years of software development, I can't count the number of times I've needed a simple form for users to enter or update data... no one has extended [a solution] in a general way to apply to a broad audience. Certainly there have been 'form code generators', but creating the form at runtime from metadata is a far more elegant approach in my opinion [1]. Figure 1: Transaction processing and database maintenance OIMs are less cumbersome than visual IDE designers such as NetBeans Matisse (Figure 2), or modelling languages such as Facelets. They require no repetitive definitions between UI and business objects. Such definitions are laborious to define and error-prone to maintain. OIMs are also more flexible than languagebased tools such as Naked Objects. OIMs have an explicit focus on generating the same UI you would previously have coded by hand.

Figure 2: NetBeans Matisse The introduction of an OIM can reduce the amount of repetitive, error-prone UI code in an architecture by up to 70% [2]. One architect remarked: it's a fairly established software engineering principle that the more you have to repeat something the higher the error is, the higher the chances there's going to be an error in the code [3]. Another: We had an experience in our last project, that a lot of view related bugs would come from missing required fields, wrong formatting and changing the model and not changing the view. Also, keeping those in synch, required a lot of effort, not complex, but we had most of our junior programmers dedicated to fixing those silly problems. [After we introduced Metawidget] it simplified a lot and this category of bug has simply disappeared [1]. 3. Generate User Interfaces from Unconventional Sources Beyond conventional UI generation, the five characteristics of an OIM [2] allow it to generate UIs from arbitrary sources. This opens new possibilities for functionality. The Telefónica Health Portal allowed users to describe portions of their required UI themselves, using a simplified Domain Specific Language. The generated portion was then inserted into the application dynamically, based on the logged in user's roles and permissions. The team reflected: With our requirements Metawidget was basically the only option. Our usual techniques would not have done the job [4]. Another theatre system application exposed a plugin API that generated UIs for each plugin on-demand, at

runtime. The team lead stressed: One of the really important reasons I used Metawidget for this was that I have plug-ins that provide data objects for, and I/O support for, different types of [theatre] systems. I wanted to be able to just add [plug-ins] and have them be immediately editable without [them] needing to implement any UI code at all [1]. Figure 3: 4. Telefónica Health Portal and theatre system The ability of OIMs to inspect, and collate, metadata from arbitrary back-end sources permits a new level of dynamically generated UIs. 4. Generate User Interfaces with Consistent Behaviour OIMs integrate with your existing back-end architecture, and deliver results integrated to your existing frontend framework. They provide a consistency of behaviour and layout across all the screens of your application. This goes far beyond traditional technologies such as CSS or Swing Look and Feels. OIMs generate widgets at runtime from centralised code, ensuring: consistent choice of widgets for data types (i.e. date pickers for all dates, spinners for all integers); consistent insertion of validators and converters (i.e. for currency); consistent enforcing of data limits (i.e. minimum values for integers, maximum lengths for strings); and consistent layout of sub-entities (i.e. separated by section headings, or separated into tabs). UIs created by an OIM are more consistent and more robust than those created by hand. For example, few developers bother to put maxlength attributes on every one of their text fields: it is too laborious and likely to change over time, requiring error-prone maintenance. With an OIM, such limits are enforced automatically.

Figure 4: Superannuation application and ERP application One ERP application (Figure 4) used Metawidget to ensure consistent behaviour across a large number of screens in a large team. The team remarked: Metawidget is really useful in the way it is the foundation to build your solution... A great advantage [it offers] is UI standards. It is really hard to keep consistency, visual or functional standards when building UI in a large team. However when it is generated dynamically, the rules are centred and even the customisation is somehow controlled [1]. 5. A Platform for Adopting New Technologies OIMs provide a common platform for technologies participating in UI development. Vendors can leverage this to lower the barrier of entry to adopt their technology, or to open their technology to a new market. The Bean Validation plugin allows Metawidget to inspect Bean Validation annotations and translate them into UI data limits. This automatically allows Bean Validation to be applied to diverse UI frameworks including Swing, SWT, Spring and Java Server Faces. The RichFaces plugin allows Metawidget to generate RichFaces components for arbitrary back-end architectures. This automatically allows RichFaces to bind to technologies such as Drools and jbpm. If an application is already using Metawidget, adding the RichFaces plugin will automatically upgrade every widget in the application across every screen to use rich UI widgets such as date pickers and spinners. 6. Conclusion This white paper has outlined a number of use cases for an OIM, and cited examples of real world implementations. We hope this will help you identify areas Metawidget could be used within your own applications. You can then apply the new approach of an OIM to the old problem of repetitive, error-prone UI code - saving both you and your organisation time and money.

7. References 1. Kennard, R. 2011, 'Adoption Studies'. Retrieved from http://metawidget.org/media/whitepaper/metawidgetwhitepaper-adoptionstudies.pdf 2. Kennard, R. & Leaney, J. 2010, Towards a General Purpose Architecture for UI Generation. Journal of Systems and Software. 3. Kennard, R., Edmonds, E. & Leaney, J. 2009, Separation Anxiety: stresses of developing a modern day Separable User Interface. 2 nd International Conference on Human System Interaction. 4. Kennard, R. 2011, 'Case Study: Telefónica Health Portal'. Retrieved from http://metawidget.org/media/whitepaper/metawidgetwhitepaper-telefonicahealthportal.pdf