airavata-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Suresh Marru <sma...@apache.org>
Subject Re: Rename SPI explicitly
Date Mon, 27 Jan 2014 18:51:01 GMT
If the preference is to reserve SPI for Extensible Airavata Components, I like the Component
Services and Component Service Interfaces to name the current internal API’s. Hoping this
will not raise eye brows of former CORBA developers.

Suresh

On Jan 25, 2014, at 8:20 PM, Saminda Wijeratne <samindaw@gmail.com> wrote:

> I fully agree with both Marlons' and Sureshs' arguments. We should just pick a name and
move on for now atleast to get things moving. What if we just call them Component Services?
or Component Service Interfaces? just a thought.
> 
> A small clarification for anyone who is not familiar with current Airavata impl: I like
the name of SPI so that we can use it someday for "Airavata Developer Guide" (not "Gateway
Developer Guide"). At the moment both Orchestrator and Registry interface SPIs correspond
to the interfaces that gets exposed to external components as well. Thus the same SPI becomes
sort of an internal API as well. But the SPIs defined for GFac Providers Workflow Interpreter
and I think Credential store is not necessarily what the external component developers see
when they want to use those components. i.e. those SPI interfaces are hidden to external component
devs. 
> 
> Regards,
> Saminda
> 
> 
> On Sat, Jan 25, 2014 at 7:27 AM, Suresh Marru <smarru@apache.org> wrote:
> I fully agree with Saminda’s clarification and if there is a better naming convention
it will be better to follow it. Technically speaking current internal and external airavata
interfaces are API’s but we clearly have to disambiguate them.
> 
> Lets see if any one comes up with a better naming convention, if not will just cook up
a justification to move on.
> 
> The definition at [1] defines SPI as to be intended to be implemented or extended by
a third party. Clearly the extending components by external developers is not our scenario,
but we implementing an interface fits. Further the software engineering institute paper [2]
discusses SPI’s as an abstraction to replaceable components, this is clearly our use case.
We want registry, gfac, orchestrator, workflow interpreter to have SPI whose implementation
can be completely replaces as long as the SPI integrated with rest of the system remains the
same.
> 
> Suresh
> [1] - http://en.wikipedia.org/wiki/Service_provider_interface
> [2] - http://resources.sei.cmu.edu/asset_files/TechnicalNote/2002_004_001_13958.pdf
> 
> On Jan 24, 2014, at 4:16 PM, Marlon Pierce <marpierc@iu.edu> wrote:
> 
> > My understanding: For now, we use the term SPI to refer to the internal
> > "public" interface that one Airavata component (say, the registry)
> > exposes to other Airavata components.  This is corresponds to Saminda's
> > developer group #1.  In the future, we may formalize these interfaces in
> > Thrift. Then this could be useful for developers in Saminda's group #2.
> >
> > This isn't the classic usage of SPI, as Saminda points out. Is there a
> > better term we should use?
> >
> > Marlon
> >
> > On 1/24/14 3:10 PM, Saminda Wijeratne wrote:
> >> All the above components correspond to 2 developer parties that could work
> >> on them. One set of developers will be using those components to do some
> >> task while the 2nd set of developers will be implementing the interfaces of
> >> those components to extend the component functionalities. IMO the word SPI
> >> makes more sense only for the latter set of developers. Am I to understand
> >> that the renaming is for these developers only?
> >>
> >>
> >> On Fri, Jan 24, 2014 at 11:23 AM, Marlon Pierce <marpierc@iu.edu> wrote:
> >>
> >>> No discussion on this.  I  am +1 on the proposed API-SPI distinction,
> >>> but I just noticed that Suresh was also suggesting some namespace changes.
> >>>
> >>>
> >>> Marlon
> >>>
> >>> On 1/23/14 2:41 PM, Suresh Marru wrote:
> >>>> Hi All,
> >>>>
> >>>> We have been overloading the use of the term API within Airavata. We
> >>> discussed this few time, but how about we take an action and rename the
> >>> internal component level interfaces to SPI and retain the use of API for
> >>> only the external facing public API.
> >>>> I am suggesting the following:
> >>>>
> >>>> We will have Airavata API grouped by functionality (as it is today with
> >>> may be minor enhancements): Application Catalog (application interface,
> >>> application deployment and host descriptions), User Management, Security
> >>> Credential Management, Execution Management & Metadata and Provenance
> >>> Management.
> >>>> For now leave the messaging system as a API as it can be called upon
by
> >>> external clients.
> >>>> For SPI:
> >>>> Orchestrator SPI
> >>>> Workflow Interpreter SPI
> >>>> GFac SPI
> >>>> Registry SPI
> >>>> Credential Store SPI
> >>>>
> >>>> If we all agree to change this, I am willing to do the dirty work of
> >>> changing the namespaces and such and bring the code to a build able stage.
> >>> But that will require a code freeze for few hours.
> >>>> Suresh
> >>>>
> >>>>
> >>>
> >
> 
> 


Mime
View raw message