Tải bản đầy đủ (.doc) (14 trang)

Alfresco tutorial

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (772.14 KB, 14 trang )

Alfresco
1. 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.
Tí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)
 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
Hì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.
(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
Apache Lucene( Tìm kiếm nội dung và metadata
Hibernate ( Framework xử lý Database
Apache MyFaces( Component JSF dùng cho web client
FreeMarker ( Framework tạo giao diện Web script
Mozilla Rhino JavaScript
Engine( />Framework xử lý Web script, JavaScript phía
server, cùng các Action

OpenSymphony
Quartz( />Lên lịch cho các quy trình bất đồng bộ
Spring ACEGI
( />Quản lý bảo mật (xác thực người dung), quyền và
phân quyền
Apache Axis ( />Web services
OpenOffice( Chuyển đổi tài liệu văn bản thành PDF
Apache FOP
( />Chuyển đổi XSL:FO thành PDF
Apache POI ( Rút trích metadata từ file MS Office
JBoss jBPM
( />Advanced workflow
ImageMagick () Xử lý file ảnh
Chiba ( Tạo các Web Form dựa trên XForms
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ợ.
Chuẩn/Giao thức Ghi chú
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
WebDAV WebDAV là giao thức trên nền HTTP thường được hỗ trợ bởi các
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.
JCR API (JSR-170) JCR là một bộ API Java cho phép làm việc với các kho nội dung
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.
Portlet API (JSR-168) Web Script Framework cho phép định nghĩa một API RESTful
trên Repository. Web Scripts có thể trả về kết quả ở định dạng:
XML, HTML, JSON, hoặc portlet chuẩn JSR-168.
SOAP Web Services API của Alfresco dựa trên chuẩn SOAP.
OpenSearch
()
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.
XForms, XML Schema Các Web form được định nghĩa bằng XML Schema. Chưa hỗ trợ
hết các XForm.
XSLT, XSL:FO Dữ liệu từ Web form sẽ được chuyển đổi bằng XSL 1.0.
LDAP Alfresco có thể xác thực người dùng qua LDAP hoặc một server
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.
Alfresco example
Create a project with alfresco
Thêm project SDK AlfrescoEmbedded vào project WebScript

ChecknameWebScript.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() {
return 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' ' /><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">
<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}">
<fileset dir="${src.dir}" excludes="build.xml, build.properties,
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 :
Buildfile: F:\workspace\ALFRESCO_SVN\WebScript\build.xml
clean:
[delete] Deleting directory F:\workspace\ALFRESCO_SVN\WebScript\build
compile:

[mkdir] Created dir: F:\workspace\ALFRESCO_SVN\WebScript\build\classes
[javac] Compiling 1 source file to
F:\workspace\ALFRESCO_SVN\WebScript\build\classes
build:
[jar] Building jar: F:\workspace\ALFRESCO_SVN\WebScript\build\app-checkname.jar
[copy] Copying 1 file to C:\Alfresco\tomcat\webapps\alfresco\WEB-INF\lib
BUILD SUCCESSFUL
Total time: 28 seconds

Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×