Alfresco development documentation

Source: Internet
Author: User

Reprinted from http://chooli.iteye.com/blog/636689

Here is a brief introduction to the alfresco project. Many people may not know much about what alfresco can do and what features alfresco has compared with other open-source products.

Product Positioning 

  • Alfresco is a content management system for enterprise-level applications. It is based on a document management system and provides users with a series of software tools for enterprise document management, users can use alfresco to store, share, control versions, process workflows, and discuss documents. In other words, alfresco is an OA product;
  • However, alfresco is more than just a document management tool. With the continuous efforts of alfresco community developers, alfresco has expanded its wcm (website content management) function based on document management; alfresco wcm supports distributed release. Due to the use of Spring framework development, web development can directly use the Spring framework advantages in alfresco wcm, such as defining spring beans or directly reusing bean developed by spring;
  • Alfresco supports many interfaces, such as rest, web services, CIFS/WebDAV, JCR, javascript API, and freemaker API. developers can develop various web applications based on alfresco.
  • Alfresco share is an extension of collaborative office. It provides a collaborative knowledge management platform for team work that integrates functions such as BLOG, wiki, calendar, document sharing, photo album, and discussion;
  • Alfrseco surf is a new application that is based on Spring surf extension. It is mainly used for the combination of view frameworks (including template, page, and component) for web development ), it is said that spring developers can use scripts to easily develop web application interfaces;

As you can see, alfresco has a very close relationship with spring. for developers, especially those familiar with the Spring framework, alfresco can make it easier for you to develop various enterprise-level Web applications. However, even if you do not know spring, since alfresco supports many standard interfaces, developers can also develop web applications based on their own technologies.

Why alfresco? 

Currently, no web project development starts from scratch, rather than using the framework. Of course, if your team does have many technical talents, or has plenty of time and money, you can also use your own framework for development. However, considering the need to constantly expand functions and make good use of third-party resources, a widely accepted framework is an inevitable choice.

For Java developers, we can find a lot of open-source web development frameworks. Let's take a look at the following content.

Http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks

As web development, especially enterprise website development for Internet users, is increasingly becoming a strong demand in an increasingly open market, many project developers hope to have a CMS framework with complete functions, user-friendly interfaces, and easy development. In this way, they can continuously add web content and develop a wide variety of functions, the extension is unrestricted.

Alfresco's basic function is repository service, which provides comprehensive functions for enterprise document management and takes care of the needs of multiple enterprise user roles, seamless connection with window file systems and word processing software. You can use it as an advanced file sharing server, and use the workflow, discussion, permission management, and other functions in alfresco to provide a comprehensive document management service for enterprise offices.

When you use alfresco's document management service, you have the ability to publish content to alfresco wcm. Alfresco's interface can easily read the document content and generate pages through templates. Since alfresco wcm supports standard JSP/servlet development, you can use any familiar technology to develop website pages.

Alfresco is closely related to spring. The latter is one of the most widely used and functional frameworks in J2EE development. This means that the system functions developed by spring can be called directly, for example: reuse some spring beans. Therefore, it is easy to integrate websites developed by alfresco with other Java-developed systems.

 

To use alfresco for development, first understand the overall system architecture of alfresco. Before that, it is best to understand the basic knowledge of Java Development and the Spring framework. Of course, you don't have to be a master in this field. You only need to know about it, so that you won't be able to understand the content introduced here.

 

B/S structure

 

After alfresco is installed, the operating structure of alfresco is B/S. You can use a web browser to open the application interface and log on to the system. Shows the entire system:

In web application servers (such as tomecat and JBoss), alfresco applications include Document Management (DM) and Web Content Management (wcm) and Record Management (RM ). These applications are management services for different enterprise content,

 

  • Document Management (DM)-applicable to enterprise document sharing, document circulation, version control, and discussion
  • Web Content Management (wcm)-for enterprise website construction, content collection and publishing, web application development, and other applications
  • Record Management (RM)-enterprise-oriented data record storage, query, analysis, and other applications

 

All alfresco applications are developed based on the alfresco repository service, and alfresco repository is a core program.

 

Repository is a service used to store various data resources. It is used to convert data of different formats into data that can be stored by a database or file system, is an application based on databases and file systems.

 

Alfresco repository provides a series of data storage services that can be called through different interfaces, such as content storage, query, version control, content conversion, copying, and editing, these basic services can support different application systems. Alfresco repository is designed to provide reusable components for different content management solutions. Therefore, we need to understand the basic concepts of repository and its development structure, scalability, and flexibility, it is very important to build a content management system correctly and efficiently.

 

Components and services of alfresco Repository

 

Alfresco repository is developed based on the Java open-source framework spring and is deeply integrated with spring. You can use spring configuration knowledge to manage the running of alfresco repository.

In design, alfresco repository is composed of components and services. The role of a component is to convert the content objects into independent and non-repeating functional objects, and you can easily add and delete them as needed; the service can provide calling interfaces for different applications and implement security management;

The coupling between services and components utilizes spring's framework functions, reverse control, and cross-section services. If you know how to configure spring bean, you can easily flexibly configure various components or services of alfresco repository. In fact, you can add and modify components and services for alfresco repository under the Spring framework, which means you can upgrade the kernel or perform expansion as needed.

 

However, even if you do not understand the components of spring or alfresco repository, you can easily use the Content Management Service through various alfresco interfaces.

 

Three basic services

 

Alfresco repository's task is to store and access content, which is provided by the following three basic services:

 

  • Node service-a node provides metadata and structure for the content. A node includes attributes (such as the author) and relationships with other nodes (such as Directory parent-child or comments)
  • Content Service-content is the carrier of information data, such as Word documents, images, or XML data. Metadata and content can be structured according to the rule definition of the content model. For example, alfresco's document management application depends on the directory and file model rules.
  • Search Service-indexing content using the Lucene engine and querying metadata or content in different ways
 

Generally, alfresco stores metadata in a relational database, while the content is stored in a file system. This is easy to understand. database storage provides efficient query, transaction processing, and management functions, while the file system stores large amounts of content data. The implementation of these functions has benefited from the mature and powerful open-source project Hibernate and Lucene. Through the hibernate data persistence framework, alfresco's content storage can support any SQL-based relational database, and implement high-speed access cache and transaction processing; lucene provides efficient data query indexes for alfresco and uses XPath to query content.

Reference http://www.ecmkit.com/zh-hans

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.