While Alfresco can scale from small solutions to an enterprise-wide infrastructure,
you must consider how to configure Alfresco and which tools and interfaces to use to
develop your content application.
Here are some key areas to consider when developing your content application:
What is your audience?
To choose the right deployment choices for Alfresco,
determine who your audience is and where they need to access content. Alfresco fits in user
environments and provides services invisibly to a broad range of end users. Alfresco also
integrates with enterprise portals and applications where users access content as part of
another solution or application. There are also interfaces that allow users to configure
rules and workflows without programming.
How many users are you supporting?
An instance of Alfresco can easily handle
dozens of users right out-of-the-box. However, when deploying your application to an entire
enterprise, consider clustering and distribution options. You can run Alfresco as part of a
single application or in a multi-tier environment clustered with many machines.
Is your application standalone or part of a broader
content infrastructure? If content is reused between applications, consider a remote
repository from your application and application server. If absolute performance is
important, consider integrating your application, repository, and database as a single
application. If you have a distributed environment or parts of your content architecture
are geographically distributed, consider either federation or synchronization options.
Level of configuration and customization
How will your application be
deployed, how will it be used, and how long can you expect to use it? Answers to these
questions will help you determine whether you build a new application, customize one of the
existing Alfresco applications, or configure the out-of-the-box applications. Configuration
can be powerful, especially in configuring rules and actions or in adding out-of-the-box
components. If you choose to customize, you can use web scripts, and avoid heavyweight
development, or you can develop using a full Java environment using your favorite IDE. You
can customize the Alfresco application or the content application server itself.
Your IT environment
Alfresco supports most IT environments, but when
developing and deploying your application consider your specifics; your operating system,
database, language, and security requirements. Alfresco applications are written in Java
and Java-based technologies to ensure they are as portable as possible. By using the Spring
platform, Alfresco can integrate different caching technologies, security systems and
authentication systems. Alfresco also supports other programming languages, allowing
development using Java, PHP, .NET, or virtually any language that supports REST-based or
web services-oriented programming.
Consider how you are building and deploying your
application, and what your support requirements are. The more mission critical or the more
integrated into the enterprise your application is, the more you may need the Enterprise
version. Alfresco is open source, so you can use the community version for free. If you are
a small organization or small independent software developer, this lets you use content
management without the expense of a large ECM system. However, to deploy your application
in a production environment, the Enterprise version of Alfresco provides support and prompt
bug fixing. If you are using proprietary databases or operating systems, the Enterprise
version provides configurations on certified platforms that include different operating
systems and databases.