`
zlot
  • 浏览: 27173 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

从Alfresco看老外的软件设计(二)Alfresco的核心介绍

阅读更多
Alfresco Repository 是Alfresco 的存储核心,所有涉及到存储的服务都在这一层!同时它也是各种规范的实现。

Repository库的是围绕着“节点存储”=>“XML”-“Model”-“DB”-“Lucene”展开的。

XML定义了数据结构并接替了数据库的数据完整性检查
我们会在XML中定义节点的类型,以及子节点的类型!
DB会存放特定的数据,而Lucene提供了对文件系统的搜索,以及虚拟文件路径PATH和Properties的搜索工作!
PATH类似的写法如下: PATH=/root/directory
那么我要搜索 用户为A的目录下的所有二级文件夹中的图片,那么我在Alfresco就可以写成

PATH=/homt/users/A/* and TYPE=JPEG
这样就可以完成虚拟文件系统的快速检索!

以上大致介绍了一下Alfresco的特性,那么下面要介绍的是实现上面所需要的XML技术和特定的模型介绍。


   很多内容这里无法更好的解释,如果不明白在后面的数据库分析中就会详细的明白alfresco的数据设计方式,同时也会明白Node, Type, Aspect, Associations ,Child Associations, QName, store , properties 的意思了
Data Dictionary 的核心是描述一个或多个内容的元数据. 可以按照 元模型的描述 M1,M2,M3..., 我们所涉及到的 字典元模型是采用 M2 描述,内容模型采用 M1 描述。
   元数据支持2种主要的结构体:Content Type(内容类型) 和 Content Aspect(内容描述) , 他们2个都提供了去描述所指定内容结构的能力,包括了数据的性质和对其他内容的关联。面向对象的结构,如继承也是支持的。
   Content Type(内容类型) 和 Content Aspect(内容描述) 的区别是什么? Content通常被看作是一个Content Type. Type描述的是Content的基础的结构.Content Aspect 所表示的是另一种封装的形式, 就是任意内容的ContentType都能很好的被描述的清楚(自己的话), 就是说 Content Aspect 就是扩展和封装Content Type 使之更容易扩展.
   附加说明:Content Type 和 Aspect 均描述在同一个xml中,如下:

Type 主要是描述一个类型的操作性质,可以认为是一个基本属性。
基本文件属性:
文件名称:name // 这是一个 QName
修改时间:modifyDate // 这是一个 QName
发布日期:publishedDate // 这是一个 QName

Aspect 被认为是一个扩展属性(应该用在描述文件的外围属性) , 大量的集合属性。
增强型的扩展属性组:
Email属性组: // 这就是一个aspect
Email地址:abce@sina.com // 这是一个 QName


Meta-Model 元模型
元模型分为4级, M3,M2,M1,M0.
M3 - 元元模型 (采用MOF元对象库标准)
M2 - M3 的实现 - 元模型 - UML 的 元模型 , 满足 JSR-170 节点类型的标准 ( 像Class, Interface.Attribute 的定义方式等.. JSR170即内容管理API的标准接口定义)
M1 - M2 的实现 - 模型 - 内容模式模型 (像 文件夹,文件 等实际抽象一点的描述)
M0 - M1 的实现 - 用户对象 - 实际的对象体信息( 像 文件夹的路径 /root/my , 文件的名称readme.txt)
注: 在源码和Wiki的图片中我们可以看到大量 M2标示 ,说明该 UML 和 源码均在JSR170的标准上实现。
   




原模型是定义JCR的,说到JCR我就上一张图





上面的图说明了JCR中的存储是以Node为原型,节点分别代表了其路径。这样我们就可以实现一个虚拟的文件系统节点。可以方便存储和管理!


 
  • 大小: 37.5 KB
  • 大小: 6 KB
  • 大小: 12 KB
  • 大小: 20.6 KB
  • 大小: 16 KB
分享到:
评论

相关推荐

    Alfresco cookbook Alfresco share

    1. **Alfresco简介**:首先,书中会介绍Alfresco的核心概念,包括其开放源代码性质、模块化架构以及对多种内容管理标准的支持,如CMIS(Content Management Interoperability Services)。 2. **安装与配置**:详细...

    Alfresco介绍

    作为开源软件,Alfresco社区活跃,不断有开发者贡献新的模块和插件,进一步增强其功能。这使得Alfresco可以根据企业具体需求进行定制化开发,以满足特定业务场景。 总的来说,Alfresco是一个全面的ECM解决方案,...

    Alfresco安装说明.docx

    Alfresco 安装说明 Alfresco 是一个流行的开源企业内容管理系统(ECM),可以帮助用户创建、管理和共享文件、文档和其他内容。本文档旨在指导用户安装和配置 Alfresco 服务器。 安装准备 在开始安装之前,需要...

    alfresco-jlan-4.0.zip_Alfresco JLAN_CIFS_Jlan.jar_alfresco-jlan_

    它实现了CIFS协议,使得Alfresco能够透明地作为CIFS服务器工作,允许Windows客户端或者其他支持CIFS的设备可以直接访问Alfresco存储的内容,无需专门的客户端软件。 在Alfresco JLAN的集成过程中,`alfresco-jlan`...

    Alfresco 3 Enterprise Content Management Implementation

    《Alfresco 3 Enterprise Content Management Implementation》是针对Alfresco 3.0版本的一本专业书籍,专注于介绍企业内容管理(ECM)的实施。Alfresco作为一个开源的企业级内容管理系统,它提供了全面的内容管理和...

    alfresco4.0部署及分离solr

    本篇文章将详细介绍如何在Windows环境下部署Alfresco 4.2.c版本,并将其内置的Solr服务进行分离部署。 ### 1. 系统环境 确保你的系统满足以下最低配置: - 操作系统:Windows Server或类似支持的Linux发行版 - Java...

    Alfresco5.1图文说明安装

    本文档将详细介绍如何安装Alfresco 5.1版本,并提供相关的图文说明,帮助用户顺利完成安装过程。 #### 二、下载准备工作 1. **访问Alfresco官方网站**: - 访问地址:...

    alfresco讲义

    - **Alfresco 的核心组件** 包括文档管理、内容存储库、工作流引擎等,它还提供了强大的API接口,允许开发者进行深度定制与扩展。 #### 二、Alfresco 与 Custom Content Types - **Custom Content Types**:...

    Alfresco开发者指南

    Alfresco的内容模型是其核心功能之一,它允许开发者定义和管理不同类型的内容及其属性。通过自定义类型、添加属性、设置约束和建立关联,开发者可以构建出符合具体业务需求的内容模型。这种灵活性确保了Alfresco能够...

    Alfresco部署

    本文将详细介绍如何在RHEL5.1操作系统上部署Alfresco,主要包括Java环境的配置以及MySQL数据库的安装。 首先,Alfresco的运行依赖于Java开发工具包(JDK)。为了部署Alfresco,我们需要下载适用于Linux平台的64位...

    Alfresco Workflow Guide.pdf

    综上所述,《Alfresco工作流指南》为用户提供了全面而深入的指导,涵盖了从工作流设计到部署、维护的各个环节。通过遵循指南中的步骤和最佳实践,企业可以充分利用Alfresco的强大力量,实现业务流程自动化,提高运营...

    Alfresco与AD集成部署

    - 首先,从Alfresco官方网站下载社区版安装包,例如`alfresco-community-3.4.c-installer-linux-x64.bin`。 - 将安装包移动到期望的目录(如`/opt`),并赋予执行权限。 - 运行安装脚本,根据提示设置所需的组件...

    Alfresco文档管理系统1

    - **问题描述**:从调用堆栈来看,从`generic_file_aio_write`开始,传进去的参数是没有问题的。但从汇编代码来看,传递进来的参数是通过R5复制过来的。R5的值似乎存在问题,但R5在其他地方也被使用过而未出现错误。...

    alfresco文档

    本文档将详细介绍与Alfresco开发相关的各个方面。 #### 二、Alfresco架构概述 Alfresco采用Java作为主要开发语言,并基于Spring框架构建。其核心组件包括: - **内容服务**:负责文档存储与检索。 - **协作服务**...

    Linux系统安装Alfresco Community

    1. 下载 Alfresco 社区版本:首先需要下载 Alfresco 社区版本的安装包,可以从官方网站 http://www.alfresco.com/products/community 下载 Linux 版本的安装包。 知识点:Alfresco 社区版本是免费的,可以满足...

Global site tag (gtag.js) - Google Analytics