要使用Alfresco做開(kāi)發(fā),首先了解一下Alfresco的整個(gè)系統架構,在此之前,最好了解一下Java開(kāi)發(fā)的基本知識和Spring框架。當然,你不必是這方面的高手,只要了解一下就行,以免這里介紹的內容你理解不了。
B/S結構
在安裝了Alfresco后,Alfresco的運行結構是B/S式的,你可以使用Web瀏覽器打開(kāi)應用界面并登陸進(jìn)入系統里。整個(gè)系統如下圖所示:

在Web應用程序服務(wù)器里(Web ApplicationServer, 如:Tomecat, JBoss),Alfresco的應用程序(Alfresco Applications)包括了文檔管理(DM)、Web內容管理(WCM)以及記錄管理(RM)。這些應用分別是面向不同的企業(yè)內容的管理服務(wù),
所有的Alfresco應用程序則是基于A(yíng)lfresco Repository服務(wù)之上開(kāi)發(fā)的,Alfresco Repository是一個(gè)核心程序。
Repository是用于存儲各種數據資源的服務(wù),它的作用是把實(shí)際的各種不同格式的數據轉化成數據庫或文件系統可以存儲的數據,是一種基于數據庫和文件系統之上的應用。
AlfrescoRepository提供了一系列可以通過(guò)不同接口調用的數據存儲服務(wù),如:內容存儲、查詢(xún)、版本控制、內容轉換/復制/編輯等,這些基礎的服務(wù)可以為不同的應用系統提供支持。Alfresco Repository的設計目標是為了能夠針對不同的內容管理方案提供可以重用的組件,因此,了解Repository的基本概念以及它的開(kāi)發(fā)結構、可伸縮性和靈活性,對于正確和高效地構建內容管理系統是十分重要的。
Alfresco Repository的組件及服務(wù)
Alfresco Repository是基于Java開(kāi)源框架Spring開(kāi)發(fā)的,并與Spring整合得很深,你可以使用Spring的配置知識來(lái)管理Alfresco Repository的運行。

在設計上,Alfresco Repository是由組件(component)和服務(wù)(service)組成的。組件的作用是把內容的對象轉換成獨立而不重復的功能對象,并可以根據需要方便的添加和刪除;而服務(wù)的作用是可以為不同的應用提供調用接口,并實(shí)施安全管理;
服務(wù)與組件的相互耦合,是利用了Spring的框架功能,反向控制及面向切面的服務(wù)。如果你懂得如何配置Spring bean的話(huà),你就可以容易地對AlfrescoRepository的各種組件或服務(wù)進(jìn)行靈活配置了。實(shí)際上,你可以在Spring的框架下為AlfrescoRepository添加和修改組件及服務(wù),這意味著(zhù)你可以根據自己的需要升級這個(gè)內核或做擴展。
不過(guò),即使不懂得Spring或Alfresco Repository的組件概念,你也可以容易地通過(guò)Alfresco的各種接口使用內容管理服務(wù)。
三個(gè)基本服務(wù)
Alfresco Repository的任務(wù)是存儲和訪(fǎng)問(wèn)內容,這個(gè)任務(wù)是靠以下三個(gè)基本服務(wù)提供的:
一般情況下,Alfresco會(huì )把元數據存儲在關(guān)系型數據庫里,而內容本身則存儲在文件系統中。這很好理解,數據庫存儲提供高效的查詢(xún)、事務(wù)處理及管理功能,而文件系統則保存比較大的內容數據。這些功能的實(shí)現都得益于成熟而強大的開(kāi)源項目Hibernate和Lucene。通過(guò)Hibernate的數據持久化框架,Alfresco的內容存儲可以支持任何基于SQL查詢(xún)的關(guān)系型數據庫,并實(shí)現高速訪(fǎng)問(wèn)緩存和事務(wù)處理;而Lucene的使用則可以為Alfresco提供高效的數據查詢(xún)索引,并可以使用XPath來(lái)查詢(xún)內容。

聯(lián)系客服