Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
912 KB
Nội dung
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(http://lucene.apache.org/) Tìm kiếm nội dung và metadata Hibernate (http://www.hibernate.org/) Framework xử lý Database Apache MyFaces(http://myfaces.apache.org/) Component JSF dùng cho web client FreeMarker (http://freemarker.org/) Framework tạo giao diện Web script 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 OpenOffice(http://www.openoffice.org/) Chuyển đổi tài liệu văn bản thành PDF Apache FOP (http://xmlgraphics.apache.org/fop/) Chuyển đổi XSL:FO thành PDF Apache POI (http://poi.apache.org/) Rút trích metadata từ file MS Office JBoss jBPM (http://www.jboss.com/products/jbpm) Advanced workflow ImageMagick (http://www.imagemagick.org) Xử lý file ảnh Chiba (http://chiba.sourceforge.net/) 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 (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. 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' '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"> [...]... todir="${tomcat .alfresco. lib.dir}"> 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... 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 . 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. đ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à. 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