"One of the best places to start is the
Eclipse ALF website: www.eclipse.org/alf. Click on
the Architecture tab (http://www.eclipse.org/alf/alf_architecture.php)
and you will see a link to the ALF Conformance document (http://www.eclipse.org/alf/includes/ALF_Conformance_Guidelines.pdf).
Due to
the widespread adoption of SOA, ALF has adopted web services as the standard
for integration. The basic requirement is
therefore:
1. That a tool expose those services needed for a meaningful integrtion as
SOAP web services, described using WSDL, or
2. A wrapper or gateway is used to, say integrate with the tool using an
existing callable API on one side of the gateway/wrapper and expose those
services as SOAP web services (described by WSDL) on the other. You
might have a web services gateway from IBM, Microsoft or other vendors
already installed and available.
That
is all that is needed for a tool to participate in an integration using
ALF. ALF integrations are orchestrated using a BPEL engine, and BPEL
is built around services that are described using WSDL. You can use an
open source or commercial BPEL engine, such as ones from Oracle, Active
Endpoints, Red Hat, etc.
As you
will see in the conformance document, there are additional enablement
possibilities, and with each of the optional features, you get addtional
benefits. But for simply integrating tools, all you need is for the tool
to expose a web service interface described in WSDL 1.1 Some of the
optional enablements are:
1. Raising ALF Events to cause your BPEL orchestrations to be launched upon
changes to data with tools. If you
don't want to be event driven, it is simple to write a timer that launches a
BPEL process via an ALF Event. The first thing that process would do is
determine whether any recent changes have occurred.
2. For certain types of tools you can write (or adhere to an ALF
Vocabulary). An ALF Vocabulary is simply a collection of data structure
and operations expressed as XML Schemas and WSDLs for a set of similar
tools. ALF already provides vocabularies for SCM and BUILD. The
use of vocabularies is optional, but if used, they provide two
benefits:
a) it simplifies the mapping of data from one tool to another in the BPEL
orchestration
b) it increases you ability to replace one tool with another that conforms to
the same vocabulary
I only
have a high-level understanding of ClearCase, and a brief Google search did
not reveal whether it exposes a SOA interface, so I would assume it does
not. Subversion does expose a web service interface. So the bulk
of the work will be to decide what services you need (perhaps you can use the
ALF vocabulary for SCM as an example) and use a code generation tool such as
the Eclipse WTP (Web tools platform) to generate a SOA interface from the API
definition.
You do
not need to raise ALF event initially. I recommend starting with a
command line program that has a timer that, say every 20 minutes, raises an
ALF event to trigger a BPEL orchestration (as described above). Later
you can consider having one or the tools raise an ALF event to trigger a
process, but that ususally requires either adding code to the tool or writing
an external monitor, say to monitor changes in the database. The timer
and polling approach is a simple way to start.
ALF is
a server-side framework. The orchestrations can run without human
intervention, so no client is needed - you typically can use the existing user interfaces of the tools that are
being integrated via ALF.
Let me
know if you need additional information. I also recommend you
ask this type of question on the ALF mailing list, so the community can
benefit from the information."