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
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
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