DFS Explained
Documentum Foundation Services
the SOA face of Documentum. The remote invocation of DFS is implemented using SOAP based web-services. The beauty of DFS is that though DFS is exposed for the remote usages as Web Services it can be called locally using DFS Client libraries. DFS allows the migration easy by allowing services to be developed on existing BOF (Documentum Business Object Framework) also.
Another interesting point about this is DFS consolidates the numerous inter depended methods into a Single Service. The DFS data model is expressed in both Java client library class and also in Service XML Schemas. This provides a consistent approach to model data that will be exchanged between the various business processes.
As mentioned above the DFS clients can be of two types.
1. Applications (Consumers) written any language that can use WSDL to interact with DFS.
2. Clients written on java that uses DFS Java Client library.
Data Model of DFS
The data passed to and from the Services are encapsulated into DFS Object Model. These are the few important object types on DFS:
DataPackage
DataObject
ObjectIdentity
Property
Content
Permissions
Relationship
Lets see what all these does now
DataPackage
According to the DFS Reference Guide from EMC. The DataPackage class defines the fundamental unit of information that contains data passed to and returned by services operating in the DFS framework.
That means DataPackage is a collection of DataObject Instances, which is passed back and forth by Object Service Operations. In other words when you call services like Create, Get, Update the Data Object Instances are passed using DataPackage class.
It’s like an Envelope for putting various DataObject Instances. Object service operations process all the DataObject instances in the DataPackage sequentially.
DataObject
A DataObject is the DFS representation of a Persistent Object in Documentum Repository. DataObject potentially has all the information related to an Object in repository. This includes the Content, properties (Both Single and Repeated), relation with other Objects in repository, Its permissions etc. Due the nature of these objects, Data Objects are very complex.
Optionally these object instances may have instructions to services about how the parts of Objects have to be processed.
The type field of DataObject class represents the underlying typed object type name that corresponds to the Object Instance. For example dm_user, dm_document etc. default type is dm_document. I.e. if no type is specified then service implicitly assign that to type dm_document
DataObject
ProperySet
Content
ObjectIdentity
Permission
Relationship
The above Figure represents a DataObject.
ObjectIdentity
As the name says this represents a Unique Object in the Repository. An instance of this class must have the repository name and a unique identifier for that object. The value that represents a repository object may be any of the following
OBJECT_ID – Contains r_object_id of the Object (Represents both Current Object and Non Current Object)
OBJECT_PATH – Contains String expression of the path of the Object in repository
[Cabinet]/[Folder]/[File_Name]
(This Represents only Current Object. Since you can create multiple objects with same name in same directory this does not guarantee uniqueness of the object)
QUALIFICATION – DQL Snippet that qualify an Object uniquely
(The DQL Snippet is the Full DQL that follows the keyword FROM. E.G. dm_document where r_object_id=’09xxxxx’)
Note: During the Creation of the object all you need to populate is only repository name.
Property
Each Property represents an Object Attribute (Property) in the Documentum Repository. Property Set is a collection, which works as a container of Property Objects.
As there are 2 types of Properties for an Object a property can either be a Single property (Single Value Attribute) or Array Property (Repeated Attributes).
Property class has been sub classed to accommodate various data types and they are as follows.
StringProperty
NumberProperty
BooleanProperty
DateProperty
ObjectIdProperty
ArrayProperty (Abstract Class)
StringArrayProperty
NumberArrayProperty
BooleanArrayProperty
DateArrayProperty
ObjectIdArrayProperty
Transient Property
These properties are not the part of persistent properties of a repository object. Transient Property can send custom data fields to a service to be used for a purpose other than setting attributes on repository objects.
Array Property and Value Action
The Repeating Attributes of an Object type is represented as Array Properties. As you can see in the above table The ArrayProperty is an array of the corresponding single property.
Another Interesting aspect of Array Property is Value Action. Now lets see what value action is all about? This is an optional Action – Index mapping pair. These pair has the instruction as to what is the action to be done on a particular element of the ArrayProperty.
The Index
is the position in the attribute and Action
is what is the action to be performed on that element of that index.
The possible ActionTypeValues are
Append
When processing ValueAction[p], the value at ArrayProperty[p] is appended to the end of repeating properties list of the persistent repository object. The index of the ValueAction item is ignored.
Insert
When processing ValueAction[p], the value at ArrayProperty[p] is inserted into the repeating attribute list before position index. Note that 1, which must be accounted for in subsequent processing, offsets all items in the list to the right of the insertion point.
Delete
The item at position index of the repeating attribute is deleted. When processing ValueAction[p] the value at ArrayProperty[p] must be set to a empty value.
Set
When processing ValueAction[p], the value at ArrayProperty[p] replaces the value in the repeating attribute list at position index. (From DFS Development Guide)
Content
Content Class or its Subclass instance represents the actual File Content associated with a DataObject. DataObject can have zero or more Content objects. It can hold Renditions also. Content class object can be configured to hold following
The Whole Document
Page of a Document
Pages (One or More) which has been represented by the characteristic
Permissions
A DataObject has list of Permission Objects, which decides the permission of the object that’s represented by the DataObject. The permission list provides read access to the permission on an object in repository by the user who has been logged in currently.
Also have to note an interesting point here that You Cannot change permissions on a repository object by changing the Permission list and saving the DataObject.
For changing permissions of a repository object the real ACL of that object has to be edited or replaced.
As mentioned above multiple Permission Objects creates Permission List. The Permission Object has a field named permission Type that sets what type of permission is set. The values possible for these fields are BASIC, EXTENDED or CUSTOM
Another important thing about permissions are if you assign one particular permission for one user to one object, all the lower lever permissions below the assigned permissions will be granted to that user. This is known as Compound or Hierarchical Permissions
分享到:
相关推荐
Fuel Cell System Explained
Modern Fortran Explained
第二部分,和Wind Energy Explained,一起加压。可以使用
《Math, Better Explained.pdf》是一本旨在简化数学学习过程的网络资源书籍,通过更直观的解释帮助读者理解复杂的数学概念。书籍特别适合对数学学习有热情,但可能在数学学习中感到困惑的人群。作者通过发展数学直觉...
Fortran 90,95 explained, one of the most authoritative book about Fortran programming, authors: Metcalf, Reid.
Algorithms: Explained and Animated 中文名称"算法图解",v1.2.8 完全解锁版。
这个名为"Crazyflie KIT electronics explained.zip"的压缩包文件包含了关于Crazyflie套件中电子元件的详细解释,对于理解其工作原理和进行DIY项目极具价值。主要知识点如下: 1. **四轴飞行器结构**:Crazyflie由...
Design patterns explained 设计模式 英文版pdf
《Design_Patterns_Explained》这本书旨在为读者提供一个深入理解设计模式的机会,无论是对于那些已经在使用面向对象语言多年的开发者,还是对面向对象编程还处于学习阶段的新手来说,本书都将是一份宝贵的资源。...
在《设计模式英文版-Design Pattern Explained》这本书中,作者深入浅出地介绍了设计模式的概念及其在软件开发中的应用。本书不仅适合已经熟悉面向对象编程的开发者,也适合那些希望通过学习设计模式来提高自己技术...
解释PDF格式标准. At last, here’s an approachable introduction to the widely used Portable Document Format. PDFs are everywhere, both online and in printed form, but few people take advantage of the ...
We've tried hard to avoid both of these categories with Design Patterns Explained Simply. This book is fast and simple way to get the idea behind each of the 29 popular design patterns. The book is ...
Design Patterns Explained英文版,中文名应该是叫:设计模式精解。有需要的朋友请下载。共有三个压缩包,这是第一个。
《Design Patterns Explained: A New Perspective on Object Oriented Design》这本书提供了一种新的视角来理解和应用这些模式。以下是关于设计模式的一些关键知识点: 1. **工厂模式**:工厂模式是一种创建型设计...
Design Patterns Explained英文版,中文名应该是叫:设计模式精解。有需要的朋友请下载。共有三个压缩包,这是第三个。
通过阅读《Unicode Explained 2006》这本书的CHM格式电子版,你可以深入了解Unicode的工作原理,掌握如何在实际工作中有效利用这一强大的字符编码标准。无论你是软件开发者、系统管理员还是对字符编码有兴趣的个人,...
Drupal 8 Explained: Your Step-by-Step Guide to Drupal 8 (The Explained Series) by Stephen Burge English | 3 Apr. 2017 | ASIN: B06Y1VN2D7 | 283 Pages | AZW3 | 13.66 MB We're delighted to present the ...
设计模式精解(Design Patterns Explained),中文版+英文PDF版+英文chm版
本资源包括"Design Pattern Explained"的英文版,提供了PDF和CHM两种格式供学习者选择。 PDF格式通常用于阅读和打印,而CHM(Compiled HTML Help)格式则是一种微软开发的帮助文档格式,内含索引和搜索功能,适合在...
Design Patterns Explained: A New Perspective on Object-Oriented Design By Alan Shalloway, James R. Trott Publisher : Addison Wesley Pub Date : July 09, 2001 ISBN : 0-201-...