Overview Tổng quan Alfresco – Alfresco là gì P1 Tính năng By Giải pháp mở on Tuesday, January 3, 2012 Alfresco là một hệ thống ECM mã nguồn mở dùng cho Microsoft Windows và các hệ điều
Trang 11 Overview
Tổng quan Alfresco – Alfresco là gì (P1 Tính năng)
By Giải pháp mở on Tuesday, January 3, 2012
Alfresco là một hệ thống ECM mã nguồn mở dùng cho Microsoft Windows và các
hệ điều hành tương tự Unix khác Alfresco có hai phiên bản: Alfresco
Community Edition là phần mềm miễn phí dựa trên các chuẩn mở và giấy phép
mã nguồn mở LGPL Alfresco Enterprise Edition là phiên bản thương mại cho đối tượng doanh nghiệp Alfresco bao gồm một kho quản trị nội dung (content
repository), đi cùng một web portal framework dùng cho việc quản lý và sử dụng nội dung được lưu trữ, một giao thức CIFS hỗ trợ tương thích với hệ thống file trên Microsoft Windows và các hệ điều hành tương tự Unix khác, một hệ thống quản lý nội dung web có khả năng xây dựng các ứng dụng web và website tĩnh qua Apache Tomcat, engine tìm kiếm Lucene, engine quy trình jBPM Hệ thống Alfresco được phát triển trên công nghệ Java.
John Newton (đồng sáng lập Documentum) và John Powell (cựu COO của
Business Objects) đã sáng lập Alfresco Software, Inc vào năm 2005 Các nhà đầu
tư bao gồm bộ phận đầu tư của SAP Ventures, Accel Partners và Mayfield Fund Đội ngũ kỹ thuật ban đầu gồm các kỹ sư từ Documentum và Oracle.
Vào tháng 10 năm 2009, báo cáo Open Source CMS Market Share 2009 đã tôn
vinh Alfresco là hệ thống quản trị nội dung web nền Java hàng đầu.
Phiên bản Alfresco hiện tại là 3.4d ra mắt ngày 15/3/2011
Trang 2Tính năng
Hình 2.2: Sơ đồ tính năng Alfresco
Một số tính năng chính của Alfresco bao gồm:
Document Management ( quản lý tài liệu ): đây là tính năng chủ đạo và
thành công nhất của Alfresco.
Web Content Management (quản lý nội dung web, bao gồm khả năng tạo
ứng dụng web hoàn chỉnh và ảo hóa session)
Repository-level versioning (phiên bản hóa ở cấp độ Repository, tương tự
Subversion)
Records Management (quản lý hồ sơ theo chứng chỉ 5015.2)
Truy cập kho dữ liệu (Repository) qua CIFS/SMB, FTP, WebDAV, NFS
và CMIS
jBPM workflow (engine quy trình jBPM)
Lucene search (engine tìm kiếm Lucene )
Hỗ trợ đa nền tảng (chính thức hỗ trợ Windows, Linux và Solaris)
Giao diện người dùng nền trình duyệt (hỗ trợ chính thức cho Internet
Explorer và Firefox)
Trang 3 Tích hợp với ứng dụng desktop như Microsoft Office và OpenOffice.org
Hỗ trợ Clustering
Hỗ trợ nhiều hình thức chứng thực: NTLM, LDAP, Kerberos, CAS
Hỗ trợ nhiều hệ quản lý cơ sở dữ liệu mạnh mẽ: mysql, postgresql, oracle.
Tổng quan Alfresco (P2 Kiến trúc Alfresco)
By Giải pháp mở on Tuesday, January 3, 2012
Nhiều đối thủ cạnh tranh của Alfresco (phần lớn là closed-source) có thiết kế phức tạp bao gồm nhiều công nghệ đôi khi đối lập nhau Theo thời gian, kiến trúc của các ECM này ngày càng
cồng kềnh làm giảm hiệu năng và tính ổn định hệ thống Alfresco không đi theo con đường đó
Alfresco bảo đảm các điều kiện sau:
Tương đối đơn giản và minh bạch trong kiến trúc.
Xây dựng từ các framework và các component nguồn mở mạnh mẽ và uy tín nhất.
Hỗ trợ nhiều phương thức tương tác với dữ liệu và các chuẩn liên quan
Dưới đây là sơ đồ kiến trúc bậc cao của Alfresco
Trang 4Hình 2.3: Sơ đồ kiến trúc bậc cao của Alfresco
(a) Kiến trúc bậc cao
Một số điểm quan trọng ở kiến trúc Alfresco từ sơ đồ trên:
Có nhiều cách để truy cập nội dung bên trong Repository Ta có thể dùng các giao thức (CIFS,
WebDAV, FTP, SMTP) hoặc các bộ thư viện được cung cấp sẵn ở bên phải sơ đồ (JavaScript
API, Web Services, JCR,…)
Alfresco hoạt động dưới dạng một ứng dụng web bên trong một Servlet Container Trong đó,
web client (Alfresco Explorer) chạy cùng một tiến trình với Repository
Các thành phần mở rộng (extension) và các tùy chỉnh (customization) hoạt động như một bộ
phận của ứng dụng web Alfresco Alfresco định ra một cơ chế để tách rời các phần này khỏi
nhân sản phẩm giúp dễ dàng nâng cấp về sau
Metadata được lưu trữ trong một cơ sở dữ liệu quan hệ (Relation DB) trong khi các file tài liệu
và các chỉ mục (index) của Lucene lưu trên hệ thống file của máy chủ
WCM Virtualization Server là một bộ Webserver Tomcat với các cài đặt của Alfresco cùng các
bộ thư viện dạng file JAR được Alfresco sử dụng.
Trang 5(b) Các Add-On
Alfresco cho phép cài đặt thêm các phần tính năng chưa được nhân sản phẩm hỗ trợ gọi là
Add-On Ta có thể download về nhiều gói Add-On do cộng đồng Alfresco phát triển, hoặc bên thứ ba
cung cấp Một số Add-On quan trọng là Records Management và bộ tích hợp Facebook (Alfresco cung cấp), bộ tích hợp giải pháp OCR Kofax do Kofax cung cấp và các gói ngôn ngữ
dùng cho việc bản địa hóa (localize) webclient của Alfresco …
(c) Các Component nguồn mở
Alfresco được xây dựng trên nhiều component nguồn mở chất lượng cao Nhờ đó việc phát triển
mất ít thời gian hơn và kết quả thu được là một sản phẩm mạnh mẽ, hỗ trợ nhiều chuẩn thông
dụng Lợi ích thứ hai dành cho các nhà phát triển Họ sẽ dễ dàng chuyển đổi từ nền tảng đang làm việc sang Alfresco Ví dụ nếu lập trình viên đã có kiến thức về JSF (JavaServer Faces) hoặc Spring thì khi làm việc với Alfresco, họ sẽ phát hiện nhiều cách làm tương tự
Bảng dưới đây liệt kê danh sách một số component nguồn mở chính được sử dụng để xây dựng Alfresco:
Component nguồn mở
Sử dụng trong Alfresco
Mozilla Rhino JavaScript
Engine(http://www.mozilla.org/rhino/)
Framework xử lý Web script, JavaScript phía server, cùng các Action
OpenSymphony
Quartz(http://www.opensymphony.com/quartz/)
Lên lịch cho các quy trình bất đồng bộ
Spring ACEGI
(http://www.acegisecurity.org/)
Quản lý bảo mật (xác thực người dung), quyền và phân quyền
Apache Axis (http://ws.apache.org/axis/)
Web services
Apache FOP
(http://xmlgraphics.apache.org/fop/)
Chuyển đổi XSL:FO thành PDF
Trang 6Apache POI (http://poi.apache.org/) Rút trích metadata từ file MS Office
JBoss jBPM
(http://www.jboss.com/products/jbpm)
Advanced workflow
Bảng 2.1: Các component nguồn mở được sử dụng để xây dựng Alfresco
You are here: Home » Giải pháp » Quản lý tài liệu » Tổng quan Alfresco (P3 Các chuẩn và
giao thức chính được hỗ trợ)
Tổng quan Alfresco (P3 Các chuẩn và giao thức chính được hỗ trợ)
By Giải pháp mở on Tuesday, January 3, 2012
Alfresco là phần mềm nguồn mở Vì thế việc hỗ trợ các chuẩn và giao thức là rất quan trọng,
giúp Alfresco có khả năng phối hợp tốt hơn với các dự án nguồn mở khác Dưới đây là một số
chuẩn và giao thức chính được hỗ trợ
FTP Người dùng có thể truy cập tài liệu qua giao thức FTP Alfresco
chưa hỗ trợ Secure FTP
nhà cung cấp ECM WebDAV cho phép Window Explorer truy cập
Repository như trên file hệ thống.
CIFS CIFS cho phép biến Repository thành một đĩa cứng mạng cho
nhiều máy trong một hệ thống Khác với WebDAV, người dùng không thể thấy được sự khác biệt giữ file server truyền thống và Alfresco Repository được dùng như đĩa cứng mạng qua CIFS.
như Alfresco Có 2 cấp độ tương thích với JCR, Alfresco gần đạt
độ tương thích cấp 2 với chuẩn JCR.
trên Repository Web Scripts có thể trả về kết quả ở định dạng:
Trang 7XML, HTML, JSON, hoặc portlet chuẩn JSR-168.
SOAP Web Services API của Alfresco dựa trên chuẩn SOAP.
OpenSearch
(http://www.opensearch.org)
Người dùng có thể cài đặt cho Alfresco Repository trở thành kho
dữ liệu của OpenSearch Khi đó từ một webclient, người dùng có thể tìm kiếm trên nhiều Repository tương thích OpenSearch cùng lúc.
hết các XForm.
Microsoft Active Directory.
Bảng 2.2: Các chuẩn vào giao thức chính được Alfresco hỗ trợ
Để tích hợp Alfresco với CMS ta có 2 giải pháp: sử dụng WebService API được Alfresco cung
cấp hoặc CMIS So với Alfresco WebService API, CMIS có các ưu điểm sau:
Chỉ cần viết một lần, chạy với tất cả các Repository CMIS là chuẩn đặc tả chung do các nhà
phát triển ECM lớn nhất lập ra Ngày càng nhiều ứng dụng ECM tham gia hỗ trợ Do đó, việc tích hợp chỉ cần làm một lần Nếu cần kết nối thêm một Repository của ECM khác, nhà phát
triển chỉ cần thiết lập các thông số
Tích hợp đa Repository CMIS cho phép làm việc cùng lúc với một hoặc nhiều ECM Ưu điểm
này có được do phần lớn các nhà phát triển ECM đồng thuận hỗ trợ CMIS
Hỗ trợ Quản lý quy trình nghiệp vụ xuyên suốt các Repository Hiện nay phiên bản 0.9 của
đặc tả CMIS chưa hỗ trợ Tuy nhiên tính năng này được các nhà phát triển hứa hẹn sẽ ra mắt trong phiên bản tiếp theo
Người dùng chỉ cần học cách dùng một giao diện cho tất cả Repository Điều này có được do
khả năng tích hợp đa Repository Việc này rất tiện lợi cho người dùng vì một lần tiếp xúc với giao diện mới họ sẽ gặp nhiều khó khăn gần như học lại từ đầu
Việc sử dụng CMIS tạo cho giải pháp tích hợp khả năng mở rộng cao trong tương lai, khi cần
tích hợp thêm một hoặc nhiều Repository của nhà cung cấp khác
Trang 8Alfresco example
Create a project with alfresco
Thêm project SDK AlfrescoEmbedded vào project WebScript
Trang 9ChecknameWebScript.java
package config.module.demoscripts;
import java.io.IOException;
import org.alfresco.service.cmr.security.PersonService;
import org.springframework.extensions.webscripts.AbstractWebScript;
import org.springframework.extensions.webscripts.WebScriptRequest;
import org.springframework.extensions.webscripts.WebScriptResponse;
public class ChecknameWebScript extends AbstractWebScript{
private PersonService personService ;
public PersonService getPersonService() {
Trang 10return personService ; }
public void setPersonService(PersonService personService) {
this personService = personService;
}
public void execute(WebScriptRequest req, WebScriptResponse res)
throws IOException{
String name = req.getParameter( "reg_name" );
res.getWriter().append( "false" +name);
}
}
Checknam.get.desc.xml (định nghĩa url)
< webscript >
< shortname > Check username </ shortname >
< description > Check username for validation </ description >
< url > /components/profile/checkname_alfresco </ url >
< authentication runas ="admin"> none </ authentication >
< format default ="json"> extension </ format >
< transaction > required </ transaction >
</ webscript >
share-check-content.xml (định nghĩa và liên kết class vs file get.desc.xml)
<? xml version ='1.0' encoding ='UTF-8'?>
<! DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd' >
< beans >
< bean id ="webscript.org.metadata.global.checkname.get"
class ="config.module.demoscripts.ChecknameWebScript" parent ="webscript">
< property name ="personService" ref ="personService"/>
</ bean >
</ beans >
build.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<project basedir="." default="build" name="WebScript">
<property file="build.properties"/>
<property name="project.dir" value="."></property>
<property name="src.dir" value="${project.dir}/config"></property>
<property name="build.dir" value="${project.dir}/build"></property>
<property name="classes.dir" value="${build.dir}/classes"></property>
<property name="package.jar"
value="${project.dir}/${build.dir}/app-checkname.jar"></property>
<path id="classpath.build">
<fileset dir="${alfresco.sdk.dir}" includes="**/*.jar"></fileset>
<fileset dir="${project.dir}" includes="**/*.jar"></fileset>
</path>
<target name="clean">
Trang 11<delete dir="${build.dir}" ></delete>
</target>
<target name="compile" depends="clean">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" source="1.6"
includeantruntime="false" target="1.6" debug="on" fork="yes">
<classpath refid="classpath.build"></classpath>
</javac>
</target>
<target name="build" depends="compile">
<delete file="${package.jar}"></delete>
<jar destfile="${package.jar}">
recaptcha4j-0.0.7.jar, readme.txt"></fileset>
</jar>
<copy todir="${tomcat.alfresco.lib.dir}">
<fileset file="${package.jar}"></fileset>
</copy>
</target>
</project>
Kết quả :
Console :
clean :
compile :
F:\workspace\ALFRESCO_SVN\WebScript\build\classes
build :
BUILD SUCCESSFUL
Total time: 28 seconds