Summary of Wednesday's UIOptions/PGA architecture/roadmap community meeting

Antranig Basman antranig.basman at Colorado.EDU
Fri Jun 7 10:14:57 UTC 2013

The early part of the meeting presented the roadmap and surrounding 
community and design structure for the group of interfaces that will be 
managed by the core UIOptions code as part of the overall PGA ecosystem 
- this includes deployments such as UIOptions as part of work for FLOE 
as well as tools such as the PCP and PMT for the GPII. I've uploaded a 
whiteboard snapshot which sketches the relationship between various 
tools at the different levels of the "user sophistication/intrusiveness" 

The level of technical complexity (which could be inversely correlated 
with "invitingness" to a user who needs an interface with minimal 
intrusion into their workflow) scales towards the right of the diagram, 
as illustrated by the buckets with increasing numbers of chili peppers.

At the left is the "Discovery Tool", positioned as the overall entry 
point to the ecosystem, with the maximum level of "invitingness" and 
ability to get the user as far as possible into the world of desirable 
customisations with the absolute minimum of interaction. Scaling towards 
the right we have the personal control panel (PCP) and then the 
preferences management tool (PMT). We discussed the relationship between 
these UIs and our plans to deliver them on the same core skeleton of UI 
and implementation architecture - the Fluid Infusion UIOptions tool. The 
current refactoring work underway by Cindy, Justin, Yura and others in 
Infusion's trunk is directly aimed at achieving the configuration 
flexibility required to adapt to these and numerous other use cases.

An overall explanation of the PGA architecture and ecosystem is at

with individual pages for two of the discussed profiles (PCP and PMT) at 
the GPII at and

The discussion then turned to some technical aspects related to recent 
discussion on overall UIO API architecture - a page under design by 
Anastasia at

We clarified some of my recent feedback relating to "nth parties" - in 
such a large and open ecosystem, we need to think carefully about the 
roles and the appearance of the ecosystem to each successive level of 
integrators and their users. This original feedback was at

In general, traditional software engineering techniques fall down 
through a complete lack of attention to the requirements of such an 
ecosystem - with usually only the requirements of what could be called 
"1st parties" (primary developers) and "2nd parties" (immediate users or 
immediate integrators) in mind. The main failure of the techniques 
comprised under the label "Object Orientation" could be considered the 
dreadful experience, through neglect, that they offer to 4th parties and 
above - and other techniques, past and current, are little better.

The exact numbering applied to the various groups into the ecosystem 
isn't so crucial, as long as it is appreciated that this forms an 
essentially "open graph" comprised of both people typically conceived of 
as "users" and "developers". An example of a "3rd party" could be 
considered a "primary integrator" as part of the GPII project who is 
using the UIO architecture to produce a specific (yet still open-ended 
tool) such as the PCP or PMT. A "4th or 5th party" could be considered a 
secondary or tertiary integrator in the GPII community such as a vendor 
producing a bundling of the PCP for use in a particular environment, or 
a user of such a tool. It's worth emphasising that we see the world of 
integrators blending seamlessly into the worlds of users as the "party 
numbers" increase, since many configurations of UIO have the function of 
allowing users to effectively author their own configuration management 
tools (such as with the PMT).

Justin asked the important question of whether we expect to see "the 
same" API across all party numbers. This is unachievable given the very 
different natures of these communities, but our overall aim is to enable 
"stable landmarks" so that there is no one "party barrier" in the 
community where the difficulty of working with the architecture sharply 
increases. This common abstraction is largely positioned as the use of 
GRADE NAMES and the JSON documents which are associated with them - 
where there are places where these are not the primary abstraction to 
the relevant party (for example - PMT users will work with an "open 
schema" defined by the GPII registry which defines preferences and their 
activity in terms of one or more ontologies - and - end users will work 
in terms of a UI in which none of these abstractions are directly 
visible) there will nonetheless be a straightforward and stable 
translation of the particular "party language" in terms of its 
embodiment in terms of grade names and their structure.

We returned to the UIO API page and talked over some ways in which the 
naming of grades was a crucial part of enabling this stability, and 
discussed some conventions for organising them - for example the de 
facto convention embodied in such choices as 
"fluid.uiOptions.enactors.textSizer". Where we arrive at conventions of 
this kind, we should highlight this advice in our "API" guidelines (in 
fact, increasingly, there will fail to be a conventional "API" to the 
UIO ecosystem consisting of function calls, but in fact primarily only 
this structure of named grades and their related configuration) - we 
expect further organising principles of this kind to emerge from the 
GPII Registry work.

Finally we turned to a specific naming issue of this kind, relating to 
the name given to the configuration of UIOptions familiarly named "out 
of the box" - the tool which can be used by default through a checkout 
of the image of Fluid Infusion. A vote on the choices for this name is 
currently coming to a close in fluid-work.


More information about the fluid-work mailing list