SCM usually involves a client that controls some
local storage. Tools operate on this local storage. In ALF, the service flow may
initiate a get (fex) but it doesn't control any local storage and we do not want
to stream file content through BPEL. We need a workspace service that can provide storage for the get (fex) that the SCM can be instructed to get to and
tools can be instructed to access to obtain the file content. There are a number
of models for this.
A) ALF specifies a standard SCM client service.
Participating SCMs implement this service around their existing client. This
client service must run in a place where it can materialize files to a file system that can be accessed by a particular tool (build system fex). ALF can
call this service to perform a get for a build tool.
B1) ALF
provides a common Storage service
that provides a variety of storage access methods (file share, ftp,
other). Alf will ask the
Storage service to
perform the get. The Storage
service will wrap SCM clients (possibly by providing a plugin service provider interface mode) to perform the actuall get. Tools would be told
of the existence of the storage service (configuration or operation
argument) and be able to negotiate access to the file content using their
prefered access method.
B2) as B1
but the SCM service would be instructed to
initiate the get and be given the Storage service service url as a
destination. The SCM and the Storeage service would perform the file transfer using some common protocol (TBD). (sort of a remoted
plugin)
B3) as B1 but
SCMs provide the "common service" and provide a variety of access methods directly. There is no plugin Model since each implementation is specific
to tthe SCM
C) Other models/ideas
I haven't mentioned
Tim
Buss,
Serena