I would add one more requirement to above statement - namely
"machine-friendly". There is an emerging requirement for application
driven downloading that has the potential to significantly exceed the
classic browser driven requirements that the ASF is addressing today.
This has a direct impact on ASF costs, reliability, and utility.
Machines don't have friends and application-driven downloading is
just an application performing a download (UI is not a design issue
for a repository). The requirement is user-friendly, with the
expectation being that user needs will evolve over time just as
the interfaces will resolve over time. The immediate needs are
file-based, because that is what users need right now.
Hello? Avalon project requirements do not encompass repository needs,
and certainly do not define them.
I don't think that I have suggested this. Avalon requirements deal
with at least three layers of abstraction with respect to server side
Whoa, you have abstract requirements? Now that's a good way to drive
At the lowest level these requirements are rather close to the
requirements you have outlined above.
Good, then we are settled. Let's get this beast out the door with the
lowest level of requirements and fulfill the others via an appropriate
software development effort.
As far as second and third level requirements are concerned - these
place functional requirements on the respective underlying facilities.
My objective are rather simple - the basic facility should be a
platform on which higher level facilities can be established without
resorting to inefficiencies or workarounds.
Well, then they aren't higher levels, are they? And that would be an
inferior design for collaboration, wouldn't it, since inter-layer
processing places application requirements before those of the
I should also point out that Avalon is not alone is this respect.
Other projects are evolving towards repository-awareness. Identifying
and collecting those requirements (many of which are
project/application specific) are central to the delivery of a basic
repository that is extendible to meet the needs of a significant usage
model (in terms of ASF near-term impact).
No, that isn't central -- it isn't even a good idea. Please see, for
example, every single "standard" for repositories that has ever been
"designed", including those for ANSA's ODP, CORBA, and the JSR
something-or-other that takes a simple content management problem
and defines it as an ass-backwards indirect query monstrosity that
nobody will ever use. We don't need that. We need CPAN, or apt-get,
or fink, or something slightly more dependency aware but not so much
so that we sit on our thumbs waiting for it to happen.
Avalon users might prefer a given
interface to the repository, which I assume the Avalon community is
than capable of defining and developing on their own.
Clearly yes. The work within Avalon has *done* exactly this and as a
result - issues with current approaches have discovered and near term
requirements have been identified. These aspects are the things that
Avalon has to contribute to general model. I'll restate my earlier
comment - the simplistic http + file layout assumptions "do not meet
Avalon project requirements relative to repository-aware > applications".
In fact this is probably the key point - is this initiative about
dealing with ASF download requirements, or, does this initiative
address the emerging and potentially much larger repository aware
application scenario? If this is simply about safe downloading then
my assertions are clearly inappropriate.
It is about safe downloading of dependencies from a virtual
repository that extends across mirrored systems on a heterogeneous,
multi-organizational network. The underlying infrastructure is
going to be file based because it will be replicated with rsync.
I sure as hell don't want anything more complex than that at
the base level. Building interfaces on top of that is trivial
and not in the least impacted in terms of efficiency -- there are
no methods of storing large objects more efficient than a modern
filesystem. Start simple and layer on top of that.