alfresco之repository项目.doc

上传人:11****ws 文档编号:3179189 上传时间:2019-05-24 格式:DOC 页数:142 大小:1.94MB
下载 相关 举报
alfresco之repository项目.doc_第1页
第1页 / 共142页
alfresco之repository项目.doc_第2页
第2页 / 共142页
alfresco之repository项目.doc_第3页
第3页 / 共142页
alfresco之repository项目.doc_第4页
第4页 / 共142页
alfresco之repository项目.doc_第5页
第5页 / 共142页
点击查看更多>>
资源描述

1、Repository 项 目contains the implementation of the Alfresco repository - the back-end services such as persistence, search, categorisation, transformation, and so on. Also provides the Repository Java API. Configured via Spring.1 体系结构1.1 服务 框架服务框架提供了一个在服务、方面、和类型级别包装存储库行为的模式。服务框架是与 admin ui 定义一起开发的,可能会

2、根据需要对 ui 的支持而作出相应变动。1.1.1 需求服务框架要支持以下的存储开发角色:服务实现人员负责开发新的存储库服务并且根据需要把服务曝露为存储库的公共api;内容建模人员负责定义内容类型的结构和行为;应用开发人员负责开发内容应用(使用存储库 api 与内容类型的用户) 。1.1.2 服务实现人员服务实现人员是 java 开发人员。这个服务框架提供了一个定义、实现、和曝露存储库api(也就是存储库服务)的模式。这个模式提出一个可扩展的、可插拔的存储库体系结构。1. 定义并且注册公共 api 接口;2. 注册公共 api 实现;3. 面向服务 VS 面向方面的组件;4. 定义和注册策略组

3、件(与内容模型相关的回调) ;5. 在一个组件中包装内容模型行为(如用 java 语言实现的策略逻辑) ;6. 注册内部组件(支撑构造模块) ;7. 更改已有组件的行为(重写或替换) ;8. 用 java 语言实现组件;9. 用 srcipt 脚本实现组件;10. 组件之间的依赖;11. 组件的特定配置(XML) ;12. 服务的打包(用于 install/uninstall)。1.1.3 内容建模人员内容建模人员是具有丰富知识的业务领域人员。他们的技术知识参差不齐。根据技术知识的多少分为:1. 终端用户定义数据结构(如类型和属性) ;2. 高级管理员/用户定义数据结构和行为(如类型、属性和业

4、务逻辑) ;3. 开发人员定义数据结构和行为。服务框架不负责维护内容类型和元数据。类型机制组件会提供元数据的定义和查询。存储库预置了内容模型元数据,这些元数据是用于通用的模型方法,例如文件系统和合作。服务框架在生命周期中与内容类型元数据紧密交互把类型引进来。它提供了一种把类型行为绑定到类型的机制。为了支持这个,服务框架提供了:1. 定义和注册策略点,如引进类型级别的行为(由服务实现人员定义) 。策略与元数据模型关联:a) 类策略(类型和方面) ;b) 属性策略;c) 关系策略2. 为类型注册行为(业务逻辑) 、属性和关系策略:d) 使用脚本开发(声明性注册) ;e) 使用 java 开发(程序

5、性注册) 。3. 基于内容类型的多态调用行为f) 重载行为;g) 访问父类行为(?) ;4. 为工具类访问策略元数据。1.1.4 应用开发人员应用开发人员是面向技术的,存储库应该为应用开企业的发人员(lamp、.net)提供所有的对类型的访问.服务框架允许:2. 发现和访问存储库的公共服务(一些 api) ;3. 通过一些语言消费内容库的服务:a) java(主要的) ;b) 脚本语言;c) bpel;d) php;4. 存储库服务在下面这些应用中可用:a) portal;b) 应用服务器;c) web 容器;d) 单独的应用。1.2 服务框架模型1.2.1 服务公共的存储库 api 是一些面

6、向服务的接口的集合。每个服务指定了名字并且有一个关联的 java 接口(在 ServiceRegistry 中注册名字与实现) 。每个存储库曝露一个服务注册表,这个注册表允许用户检查所有可用的服务。默认情况下一些核心的大家都知道的服务都被封装进注册表。我们可以开发新的服务来扩展存储库的能力。用户通过服务名字访问服务。一个以服务为中心的 api(与完全的面向对象的 api 相反)为存储库服务(与 webdav 相似)提供了一个想对简单的接口。它使用一个无状态的方案,因此接口中每个方法都需要传递当前操作对象的参数。服务接口是由后端的实现组件支持的。通常这个实现组件是一个 java 类,但也可以是脚

7、本语言。服务注册表为每个服务识别组件的实现。这个间接的方式允许在不用不知道的情况下随意切换任何服务的实现。组件可能被实现为一个内部存储库建造块,在这中情况下,它就不必注册为公共服务,但是仍然可以在内部被引用。组件依赖其它的组件;依赖是通过依赖注入完成的。1.2.2 组件类型有两种不同的组件类型:服务组件与类组件。都可以曝露为公共存储服务接口。1.2.2.1 服务组件服务组件是在元模型中并没有直接捆绑到特定类的:例如 Node_Service or Search。比如 Node_Service 与 Search 服务,不关心查询的类是文件夹 Folder 还是内容。1.2.2.2 类组件基于类的

8、组件是在元模型(元模型中包含、内容、属性、方面、文件夹等)中绑定到一个特殊类的组件。尽管对 Mixin 更有用,这个类可能是一个类型或 Mixin。曝露的组件api 提供特定类的行为。如 Folder, Version or Lock.当把一个组件绑定到一个 Mixin 时,很可能会为这个组件操作的任何节点自动引入Mixin。这个是通过在上图中的 ClassBinding 值控制的:Check - 如果节点不支持 Mixin,报告一个错误;Apply - 如果节点不支持 Mixin,在调用服务实现之前为这个节点引入 Mixin;Defer -让实现组件决定输出。1.3 组件和服 务 API1.

9、3.1 内容领域服务接口Building on the key storage and retrieval services, the Alfresco Repository also provides: Content Transformation Meta-data Extraction Templating Classification Versioning Locking Content Modeling Image manipulation Workflow Import however, the attributes types (in the table alf_node_pro

10、perties) is actually Personne_X (where X in civilite, nom, prenom).3.4 表 alf_node_assoc(关联表)3.4.1 样例+-+-+-+-+-+| id | version | source_node_id | target_node_id | type_qname |+-+-+-+-+-+| 4 | 0 | 613 | 610 | http:/ | | 6 | 0 | 613 | 610 | http:/ | | 7 | 0 | 613 | 610 | http:/ | | 8 | 0 | 610 | 617 |

11、http:/ | | 9 | 0 | 617 | 610 | http:/ | | 10 | 0 | 617 | 732 | http:/ | | 11 | 0 | 732 | 617 | http:/ | | 12 | 0 | 728 | 733 | http:/ | | 13 | 0 | 733 | 728 | http:/ | | 14 | 0 | 617 | 728 | http:/ | +-+-+-+-+-+3.4.2 解释这里我们通过节点之间的关联概念在类之间定义关联的。关联定义了一个方向(隐含之地了源/目标序偶) 。要记住还有另外一个相似的表 alf_child_assoc,后面的表是用来存储父/字(层次关系)关联的(在 bxds 中,这个关系是用来管理组合与聚集) 。Here we define the associations between classes through the notion of association between nodes.

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。