[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [equinox-dev] [prov] Is the director a constraint solver
- From: "Jose L. Ruiz" <jlruiz@xxxxxxxxxx>
- Date: Thu, 19 Jul 2007 14:06:43 +0200
- Delivered-to: email@example.com
- User-agent: Thunderbird 126.96.36.199 (X11/20070604)
In the ITEA OSIRIS project (http://www.itea-osiris.org) we are carrying
out a strong effort to automate bundle deployment. I have been
personally involved because of my PhD dissertation (on automated
software deployment) and the followed approach is quite similar to what
you are proposing.
Solving cycles, detecting dependencies to JRE versions (some packages
are already available in the runtime) and distinguishing optional
dependencies was a tough work. In order to help us carry on we built a
graphical visualizer on top of Eclipse Zest to understand and filter
dependencies (some come from Require-Bundle others from Import-Package).
Attached you can find an image of the visualizer solving Eclipse JDT UI
A bundle repository is part of the architectural elements included in
the developed solution.We have a beta version of the repository
available at http://pereira.dit.upm.es:9090/repository/index.html. For
testing purposes we populated the repository with bundles included in
Eclipse 3.3 (a prior version to Europa, but the repository can be
automatically fed with new bundle versions), some of the Apache Felix
bundles and also OS4OS bundles (http://forge.os4os.org).
Under the hood, the repository is running on Equinox with EMF-based
models that describe bundles. You can have a grasp of the information
included in the models following any of the links included in the
"Bundles List" section (takes a while to load, it is still a beta
Resources can be found at the repository using the Web interface
available at http://pereira.dit.upm.es:9090/repository/find.html.
Searches support SQL wildcards (%, _ and so on) in the resource name and
version ranges (e.g. [0.0.0, 1.3.0]).
In addition to the HTML interface, the repository also exposes its
functionalities by means of Web services.WSDL files can be found at
http://pereira.dit.upm.es:9090/servlet/AxisServlet. Using the Web
Service interface automatic dependency resolution can be achieved
Perhaps there is a chance for collaboration here. Let me know if you are
Jose L. Ruiz
DIT Departamento de Ingeniería de Sistemas Telemáticos
UPM Universidad Politécnica de Madrid
Pascal Rapicault escribió:
Our provisioning system is made of installable units (things that can be
installed by a user). These installable units have "capabilities" and
"requirements". The capabilities are what satisfy the requirements. The
installation of an installable unit can only be successful if all the
"requirements" of this IU are satisfied, and thus recursively. Therefore it
looks like any operation installing, uninstalling, updating, etc is
equivalent to solving a constraint system.
That said, the few readings I have done on the topic of CSP seem to
indicate that the variables, constraints and domains constituting the
system to be satisfied are fixed. However it seems this approach would not
really work in our case since entities available in the domain may be
incompatible with each others (for example we could have installable unit
for multiple versions of eclipse in the repository). Therefore, I was
thinking of a more incremental approach where constraints and variables
would be added as new elements for the domain are being instantiated, but I
have not seen anything related to that in the literature.
So here are the questions:
- Is CSP applicable to this problem?
- Is there any algorithm that I should take a close look at (note that
there can be cycles between installable units) ?
- How scalable are the constraint solvers in presence of tens of thousands
of constraints and variables?
If you know someone (who know someone)* who can help, please pass it on.
Thanks in advance,
equinox-dev mailing list