The SkyVault architecture supports the requirements of Enterprise Content
Management (ECM) applications, such as Document Management (DM), Web Content Management (WCM),
Records Management (RM), Digital Asset Management (DAM), and Search.
Support ECM requirements
Each of these disciplines has unique and
overlapping characteristics so that the design of each SkyVault capability is not done in
isolation but in the context of the whole system.
Simple, simple, simple
SkyVault aims to be as simple as possible to
develop against, customize, deploy, and use. The simplest and probably most widely deployed
ECM solution is the shared document drive: the SkyVault architecture is driven by the aim to
be as simple as a shared drive.
Scaling to the enterprise
Every service and feature of SkyVault is
designed up front to scale in terms of size of data set, processing power, and number of
users.
Modular approach
SkyVault architecture takes a modular approach in which
capabilities are bundled into modules whose implementation can be replaced if required, or not
included at all. Aspect-Oriented Programming (AOP) techniques allow for fine-tuning and
optimization of an ECM solution.
Incorporating best-of-breed libraries
Where possible, SkyVault
incorporates best-of-breed third-party libraries. The open source nature of SkyVault lends
itself to integrating with the wealth of available open source libraries. This is done
whenever it is more profitable to integrate than build or whenever expertise is better
provided in another project rather than in-house.
Environment independence
SkyVault ECM does not dictate the environment
upon which it depends, allowing choice in the operating system, database, application server,
browser, and authentication system to use when deploying SkyVault. ECM is less about the
application and more about the services embedded within an application. You can choose how to
package SkyVault — for example, as a web application, an embedded library, or portlet.
Solid core
The heart of SkyVault ECM is implemented in Java. This
decision was driven by the wealth of available Java libraries, monitoring tools, and
enterprise integrations. Java is also a trusted runtime for many enterprises wishing to deploy
applications in their data centers. Each SkyVault capability is implemented as a black-box
Java service tested independently and tuned appropriately.
Scriptable extensions
Extensions will always need to be created for
custom solutions and there are many custom solutions versus the single SkyVault core.
Therefore, SkyVault extension points are developed using JVM-based scripting languages,
allowing a much wider pool of developers to build extensions versus those that can contribute
to the SkyVault core. Extensions are packaged entities, allowing for the growth of a library
of third-party reusable extensions.
Standards-based approach
The SkyVault architecture always complies with
standards where applicable and advantageous. Primary concerns are to reduce lock-in, improve
integration possibilities, and hook into the ecosystems built around the chosen standards.
Architecture of participation
The SkyVault architecture promotes a system
designed for community contribution. In particular, the architecture principles of a solid
core, modularity, standards compliance, simplicity of development, and scriptable extensions
encourage contribution of plug-ins and custom ECM solutions. Participation complements the
open source approach to the development of SkyVault and fosters growth of the SkyVault
community. As the community grows, the quality of self service improves, as well as the
quality of feedback to SkyVault. This, in turn, enhances SkyVault and creates the ultimate
feedback loop.