Jay,

On Nov 27, 2013, at 10:36 AM, Jay Pipes <jaypi...@gmail.com>
 wrote:

> On 11/27/2013 06:23 AM, Tom Deckers (tdeckers) wrote:
>> I understand the an Assembly can be a larger group of components.
>> However, those together exist to provide a capability which we want
>> to capture in some catalog so the capability becomes discoverable.
>> I'm not sure how the 'listing' mechanism works out in practice.  If
>> this can be used in an enterprise ecosystem to discover services then
>> that's fine.  We should capture a work item flesh out discoverability
>> of both Applications and Assemblies.  I make that distinction because
>> both scenarios should be provided. As a service consumer, I should be
>> able to look at the 'Applications' listed in the Openstack
>> environment and provision them.  In that case, we should also support
>> flavors of the service.  Depending on the consumer-provider
>> relationship, we might want to provide different configuratons of the
>> same Application. (e.g. gold-silver-bronze tiering).  I believe this
>> is covered by the 'listing' you mentioned. Once deployed, there
>> should also be a mechanism to discover the deployed assemblies.  One
>> example of such deployed Assembly is a persistence service that can
>> in its turn be used as a Service in another Assembly.  The specific
>> details of the capability provided by the Assembly needs to be
>> discoverable in order to allow successful auto-wiring (I've seen a
>> comment about this elsewhere in the project - I believe in last
>> meeting).
> 
> Another thought around the naming of "Assembly"... there's no reason why the 
> API cannot just ditch the entire notion of an assembly, and just use 
> "Component" in a self-referential way.
> 
> In other words, an Application (or whatever is agree on for that resource 
> name) contains one or more Components. Components may further be composed of 
> one or more (sub)Components, which themselves may be composed of further 
> (sub)Components.
> 
> That way you keep the notion of a Component as generic and encompassing as 
> possible and allow for an unlimited generic hierarchy of Component resources 
> to comprise an Application.

As currently proposed, an Assembly (a top level grouping of Components) 
requires only one Component, but may contain many. The question is whether we 
should even have an Assembly. I admit that Assembly is a new term, and 
therefore requires definition, explanation, and examples. However, I think 
eliminating it and just using Components is getting a bit too abstract, and 
requires a bit too much explanation. 

I consider this subject analogous to the fundamentals concepts of Chemistry. 
Imagine trying to describe a molecule by only using the concept of an atom. 
Each atom can be different, and have more or less electrons etc. But if we did 
not have the concept of a molecule (a top level grouping of atoms), and tried 
to explain them as atoms contained within other atoms, Chemistry would get 
harder to teach.

We want this API to be understandable to Application Developers. I am afraid of 
simplifying matters too much, and making things a bit too abstract.

Thanks,

Adrian

> 
> Best,
> -jay
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to