Framework/Another Lore2009. 4. 24. 05:28


Versioning enables a user to record the state of a node and its subgraph and restore that state at a later time.


Check-In

When node is checked-in, a new version of that node is created which contains a (typically partial) copy of its subgraph. The part of a node’s subgraph that is to be copied to a version is referred to as its versionable
subgraph and constitutes its versionable state. 
A new version of a versionable node is created using
    Version node.checkIn()
This method require exsting node in repository. Created Node but not Saved Node(only exists in memory) may throw a RepositoryException.


Version History

Once created, a version is stored in a version history
The method
    VersionHistory node.getVersionHistory()


Check-Out

Once checked-in, a node and its versionable subgraph become readonly. To alter a checked-in node or its versionable subgraph, the node must first be checked-out. It can then be changed and checked-in again, creating a new version.
The method
    version.checkOut()


Base Version Reference

Each versionable node has a base version within its version history. When a new version of a node is created, it is placed in that node’s version history as a direct successor of the base version. That version itself then becomes the new base version
The method
    Node versionHistory.getRecentNode()


Version Extends Node
The Version interface extends Node.



<interface Version extends Node, Comparable<Version>>
 public Calendar getCreated();
 public void checkOut() throws RepositoryException;
 public Node getRecentNode()throws RepositoryException;
 public GenericIterator<Property> getProperties() throws RepositoryException;
 public Property getProperty(IDString propId) throws RepositoryException;


<interface VersionHistory extends Publishable, IConstant>
 public GenericIterator<Version> getAllVersions();
 public Version getVersion(int versionIndex);
 public Node getRecentNode();

'Framework > Another Lore' 카테고리의 다른 글

AL : Link  (0) 2009.04.24
AL : Observation  (0) 2009.04.24
AL : Workspace  (0) 2009.04.23
AL : Node  (0) 2009.04.23
AL : Property  (0) 2009.04.23
Posted by bleujin
Framework/Another Lore2009. 4. 23. 12:26


Workspace

AnotherLore repository is composed of one or more persistent workspaces, each of which is a persistent data store consisting of a directed acyclic graph of items where the edges represent the parent-child relation. Each persistent workspace is identified by a name, unique within the repository, which is a string.

this have ValidChain, ObservationManager, LockManager, IndexDirectory, GlobalStore, LocalStore


Storage

GlobalStore : The node type of a AnotherLore is stored, and Sequence, NamespaceRegistry

LocalStore : The nodes of a workspace form the structure of the stored data while the actual content is stored in the values of the properties.


Sessions

All interaction with the repository occurs through a session. A user receives a session upon connecting to the repository by supplying a set of credentials and the name of a persistent workspace to which the user wishes to connect. The returned session binds the user to the requested persistent workspace with a level of authorization determined by that user's credentials. A session is always bound to exactly one persistent workspace, though a single persistent workspace may be bound to multiple sessions.


User

A user is any agent bound to a session. This may be a human user, an external software process, or anything else that holds and controls the session.

Through a session, the user can access, read and write the nodes and properties of the bound workspace, to the extent allowed by that user's authorization and the capabilities of the repository. Any object acquired, directly, or indirectly through a chain of interceding objects, from a particular session, is said to be within the scope of that session and any method called on such object is also within the scope of the same session.

In the context of discussing a particular object or method call, the session within whose scope that object or method call lies is referred to as the current session, and the workspace to which that session is bound is referred to as the current workspace.


Namespaces

nodetype name is an ordered pair of strings: (N, L)
where N is a AnotherLore namespace and L is a local name in a workspace

namespace is a Universal Resource Identifier. and can access other AnotherLore through namespace URI




'Framework > Another Lore' 카테고리의 다른 글

AL : Observation  (0) 2009.04.24
AL : Versioning Model  (0) 2009.04.24
AL : Node  (0) 2009.04.23
AL : Property  (0) 2009.04.23
AL : PropertyDefinition  (0) 2009.04.23
Posted by bleujin
Framework/Another Lore2009. 4. 23. 12:12

A node can have zero or more child property while a property cannot have children but can hold zero or more values.

Each workspace contains at least one item, the root node, which, uniquely among the items in a workspace, has no parent node. All other items have at least one parent.

The nodes of a workspace form the structure of the stored data while the actual content is stored in the values of the properties.(LocalStore)


Name
The name of the root node of a workspace is always “/”. Every other item in a workspace has the same name relative to each of its parent nodes. This name's type must be a alphaNumUnderBar except root node

For a given node, no two of its properties can have the same name. However, a node and property may have the same name and, in some cases, two or more nodes may have the same name.

Same-Name Siblings is not supported.


Path

The location of an Node in the workspace graph can be described by the path from the root node to that item, consisting of the name of each interceding node in order from root to target item, much like a file system path. Relative paths can also be used to describe the location of one item with respect to another. in A AnotherLore, path is unique



Identifiers

Every node also has an identifier, which, in some implementations, may be independent of its path and provide a second, more stable, form of address for a node. in all distributed AnotherLore, UUID is unique


Property

Properties can be single valued. The value of a property has a type, which is one of 11 possible types . The supported
property types include standard data types such as strings, numbers and dates, as well as pointers to other items in the same workspace (either via path or identifier), which can be used to define relationships between node structures
that cross-cut the workspace hierarchy.



Node Types


Nodes also have types. The type of a node defines which properties and child nodes that node may (or must) have, and the types of those child items in turn. Node types can be used to define complex storage objects consisting of multiple subnodes and properties, possibly many layers deep.


'Framework > Another Lore' 카테고리의 다른 글

AL : Versioning Model  (0) 2009.04.24
AL : Workspace  (0) 2009.04.23
AL : Property  (0) 2009.04.23
AL : PropertyDefinition  (0) 2009.04.23
AL : NodeType  (0) 2009.04.23
Posted by bleujin