Please help us spread the word on Roundcube Next
Paul Boddie
paul at boddie.org.uk
Wed Jun 17 22:51:19 UTC 2015
On Wednesday 17. June 2015 19.27.45 Simo wrote:
> On Wed, 2015-06-17 at 18:27 +0200, Paul Boddie wrote:
> >
> > It's quite possible to support other systems (Exim for mail, OpenLDAP for
> > directory services, Dovecot for mailboxes, and so on), and there is a
> > demand for it, but it hasn't happened within Kolab itself. All I ask is
> > that you consider why this is, other than stating that it is difficult.
[...]
> In FreeIPA too we settled on a specific directory technology (which
> totally coincidentally happens to be 389ds), and a specific Kerberos
> implementation and DNS implementation and so on.
> In theory we can support multiple implementations, but in practice we
> can't, and the reason is that the glue that makes all this components
> work together such that they actually work and provide a usable
> experience to users is more nuanced than you may think, and goes beyond
> the mere "standard" protocols.
It can be difficult, certainly. First of all, you have to understand what the
solution is actually doing, and here it helps to have it documented. Then, you
need to understand what mechanisms it is using to do it, and whether what you
want to use supports those mechanisms. I accept that there are things that
Kolab components use from various solutions that other solutions may not
provide, or at least do not provide in exactly the same way. (From memory, I
can think of some ACL-related stuff in the directory support, and things like
metadata attributes in the mailbox support.)
> It is already hard enough for a dedicated team to stay on top of the
> ever changing (and improving) underlying components that have been
> chosen. Adding the ability to glue together completely different
> implementations (with different bugs and quirks, different configuration
> methods and options, and different features-sets) is a whole 'nother
> level.
>
> As sad as it may be, products that "integrate" existing components into
> a cohesive solution must choose a target and develop against it, and
> take the best they can from the components they choose.
Going from a specialised solution that works to something more general may not
buy the implementers anything, and there isn't always a demand for it, either.
I can accept that.
> It is possible that in time the underlying components evolve in such a
> way that the chosen one is not the most ideal anymore. In those cases it
> is possible to swap for another, but again it usually means rewriting
> the glue to deal with this new component and ditch the old one.
Well, Kolab was, at the last point at which I checked, heavily tied to Cyrus
and 389-ds in that swapping them out for other things requires a degree of
component rewriting, which I did actually attempt, but it involves going
through a fair amount of code spread over many places within at least one
server component. I mentioned monolithic before now, and it always seems to
get a laugh, but I am reminded of the monolithic kernel versus microkernel
debate when I see such modularity issues.
(Of course, in this age of "patch gymnastics" and the magic merge, the topic
of modularity doesn't get as much attention as it used to, but that's another
story.)
> This is the life of the 'integrator', flexibility is, somewhat,
> sacrificed in the name of usability, maintainability, deploy-ability and
> stability, all features most users value a great deal, whether they come
> from the community or as paying customers.
Sure, no-one is against the virtues you mention. I was mostly taking issue
with the mechanism through which such things might come from the community,
because there was actually an interest in doing the tiresome work of
supporting other systems and components, and doing so in a way that might
actually improve the robustness of the software (which can also be a well-
understood benefit of modularity). You have undoubtedly read what I have had
to say about that.
Paul
P.S. Interestingly, there was someone asking a few times about Kolab working
together with FreeIPA. Maybe you could give them some advice about it because
they couldn't seem to get it to work last time I looked.
More information about the Discussion
mailing list