Phát triển CMS module cho hệ thống intranet cuả công ty TMAReadOnly primaryitem

42 1 0
Phát triển CMS module cho hệ thống intranet cuả công ty TMAReadOnly     primaryitem

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA ReadOnly PrimaryItem SameNameSibs (more ChildNodeDefs) PropertyDef Name Type ValueConstraint DefaultValue AutoCreate Mandatory OnParentVersion ReadOnly PrimaryItem Multiple (more PropertyDefs) … 8.2.4.1 Các kiểu node phụ định nghĩa sẵn Có kiểu node phụ định nghĩa sẵn mix:referenceable mix:versionable mix:versionable kiểu node mix:referenceable mix:referenceable | | mix:versionable Bùi Vĩnh Phú 76 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Một Node có kiểu mixin: referenceable sử dụng cho mục đích : • Nó đích thuộc tính có kiểu REFERENCE • Có nhiều Node cha Một Node có kiểu mix: versionable dùng cho Repository có hỗ trợ việc lưu phiên Node (versioning system) thuộc tính quy định kiểu node thuộc tính đọc 8.2.4.2 Các kiểu node định nghĩa sẵn Mọi kiểu node bắt nguồn từ kiểu nt:base Do đó, Node Reporitory phải có kiểu node nt:base Kiểu node nt:version nt:versionHistory cần thiết có sử dụng phiên Cây sau mô tả cấu trúc thừa kế kiểu node dược định nghĩa sẵn nt:base | | nt:default | | nt:hierarchyElement | | | | nt:file | | | | nt:folder | nt:nodeType | | nt:propertyDef | | nt:childNodeDef | | nt:versionHistory Bùi Vĩnh Phú 77 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA | | nt:version | | nt:query 8.3 Node tham chiếu (Referenceable Nodes) Nét đặc biệt Node tham chiếu sử dụng trường hợp repository có nhiều workspace việc tạo phiên node Một repository có thề có nhiều node tham chiếu, để làm điều này, phải hỗ trợ kiểu mix:refrenceable Node có kiểu mix:referenceable có property mang tên jcr:uuid, property tạo quản lý hệ thống, client đọc khơng thể thay đối hay xóa property UUID node tham chiếu ấn định hệ thống lúc tạo Trong workspace xác định, khơng tồn nhiều node có chung UUID Bùi Vĩnh Phú 78 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Workspace Như ta biết, repository bao gồm hay nhiều workspace, workspace chứa node root Repository đơn giản, chứa workspace hay phức tạp, chứa số lượng lớn workspace Sau số mơ hình repository 9.1 Repository có workspace Trong trường hợp repository gồm node property Hình 21: Repository có workspace Bùi Vĩnh Phú 79 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Cơng ty TMA 9.2 Repository có nhiều Workspace tương ứng node Trong trường hợp này, node workspace có node tương ứng ( corresponding nodes ) workspace khác chúng chia sẻ UUID Các node tương ứng xem thể node nhiều workspace khác Tuy nhiên workspace, không tồn node có chung UUID Chỉ có node với kiểu mix:refereneable có node tương ứng workspace khác Các node tương ứng cần có chung UUID Do chúng có đường dẫn khác property node khác Khi node tham chiếu (referenceable node) tạo workspace hàm Node.addNode ấn định UUID hệ thống Muốn node có node tương ứng workspace khác, phải nhân ("cloned") từ workspace nguồn đến workspace đích cách sử dụng phương thức : Workspace.clone( String srcAbsPath, String destAbsPath, String destWorkspace, boolean shallow) Phương thức thực nhân từ đường dẫn srcAbsPath workspace nguồn đến đường dẫn destAbsPath workspace đích destWorkspace shallow = false, nhân node property shallow= rue Phương thức clone thực nhân node tham chiếu node không tham chiếu ( nonreferenceable node ), node tham chiếu trì mối quan hệ tương ứng workspace Bùi Vĩnh Phú 80 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Trong trường hợp root node workspace có kiểu mix:referenceable chúng phải có chung UUID Root node workspace tự động tạo workspace tạo Biểu đồ sau mơ tả repository có workspace Hình 22: Repository có nhiều workspace Bùi Vĩnh Phú 81 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Cơng ty TMA Trong biểu đồ trên, repository có workspace WS1 WS2 Đường đứt khúc node có mối quan hệ tương ứng Trong workspace có node khơng xuất workspace cịn lại, node node tham chiếu không nhân hay node không tham chiếu 10 Tạo phiên ( Versioning ) Hệ thống tạo phiên xây dựng dựa node tham chiếu trình bày Trong repository hỗ trợ tạo phiên , workspace chứa versionable node nonversionable node Versionable node có kiểu mix:versionable Kiểu mix:versionable kiểu thừa kế từ kiểu mix:referenceable, node cho phép tạo phiên node tham chiếu có UUID Khả tạo phiên node có nghĩa thời điểm cho trước đó, trạng thái node lưu giữ để phục vụ cho việc phục hồi tương lai Trạng thái lưu lại gọi version hành động lưu lại gọi checking in Version phần version history Trong version history, version hình thành biểu đồ miêu tả mối quan hệ versionable node Các version history lưu version storage Có version storage repository, bên node /jcr:versionStorage lưu workspace Bùi Vĩnh Phú 82 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 10.1 Version History Version History lưu Repository Node có kiểu Node nt:versionHistory Node có kiểu nt:version thêm vào Version History thể Node Workspace thực thao tác lưu phiên (check-in) Khi phiên Node lưu thành phần hay nhiều phiên trước (successor) Do đó, Version History lưu đồ thị Hình 23: Đồ thị mơ tả Version History Trong đồ thị dùng để lưu Version History Node VH có kiểu nt:versionHistory Vroot, Va, Vb Vc có kiểu nt:version VH Node cha Node Vroot, Va, Vb Vc; Va, Vb phiên Vroot, tương tự Vc phiên Va Vb Bùi Vĩnh Phú 83 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Trên Version History ln có Node đóng vai trị phiên ban đầu (Root Version Node) Node tạo tự động Version History tạo đóng vai trị điểm khởi đầu dùng để duyệt qua hết tất phiên khác nằm đồ thị biểu diễn Version History Trong ví dụ phiên ban đầu Version History VH Vroot 10.2 Mối quan hệ versionable node version history Mối quan hệ node version history xây dựng tương ứng thơng qua UUID Các node có chung UUID có chung version history Trong workspace có versionable node version history Trong workspace có version history rỗng Và node khơng có khả tạo phiên ( nonversionable node ) hiển nhiên khơng có version history Khi versionable node tạo ra, version history cho node tự động tạo version storage Một versionable node nhân sang workspace khác, node nhân có chung UUID chung version history với node gốc 10.3 Đồ Thị Biểu Diễn Các Phiên Bản Trên Repository Đồ thị dùng để biểu diễn phiên khác đối tượng Node Repository có cấu trúc sau : • Đồ thị hay nhiều phiên • Đồ thị có phiên ban đầu (Root Version Node) Bùi Vĩnh Phú 84 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Cơng ty TMA • Phiên ban đầu khơng có phiên trước • Những phiên khơng phải phiên ban đầu phải có nhiều phiên trước • Mỗi phiên có nhiều phiên sau • Mỗi phiên khơng thể phiên trước 10.4 Phiên Bản Cơ Bản (Base Version) Các Node có UUID Workspace khác xem phiên khác đối tượng Node Repository thể có Version History Tuy nhiên, Version History có nhiều phiên khác thể đối tượng Node chọn cho riêng phiên khác Phiên thể dùng để làm phiên trước mặc định phiên thể tạo Version History 10.5 Khởi Tạo Một Version History Khi Node tạo phiên (Versionable Node) tạo Repository Version History tạo cho Node Lúc tạo Version History có Node có kiểu nt:versionHistory Node có kiểu nt:version đóng vai trị Root Version Ví dụ : xét trường hợp Node N tạo sau • Node M Node cha Node N tạo Node N cách gọi phương thức M.addNode(“N”) Bùi Vĩnh Phú 85 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Cơng ty TMA Ngồi ra, kiện EventType.ITEM_VERSIONED xảy Node tự động tạo phiên Node tạo phiên 11.5.9 Khố Item Khi Item bị khóa cách gọi phương thức Item.lock kiện sau xảy • Sự kiện LockEvent, ƒ getType() trả EventType.ITEM_LOCKED ƒ getItem() trả Item bị khoá ƒ getLock() trả đối tượng Lock Nếu Node bị khóa bắt buộc Item bị khóa theo kiện phát sinh Item 11.5.10 Mở khóa Item Khi Item mở khóa cách gọi phương thức Item.unlock thời hạn khóa hết hiệu lực kiện sau xảy • Sự kiện LockEvent, ƒ getType() trả EventType.ITEM_UNLOCKED ƒ getItem() trả Item mở khoá ƒ getLock() trả đối tượng Lock sử dụng Nếu Node mở khóa Item khóa theo kiện phát sinh Item Bùi Vĩnh Phú 103 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 12 Vấn đề bảo mật Repository JCR định nghĩa phương thức cho phép nhận biết quyền hạn cho phép phiên làm việc Node hay thuộc tính JCR định nghĩa phương thức cho phép hay từ chối quyền cấp phiên làm việc Các quyền hạn cho phép thao tác Item tương ứng với phiên làm việc định nghĩa số giao diện Permission bao gồm ADD_NODE, SET_PROPERTY, REMOVE_ITEM, READ_ITEM 13 Cơ chế khóa Repository Khi khoá đặt Item Repository người dùng người dùng gọi người sở hữu khoá Item gọi Item bị khố 13.1 Mức độ khóa Mức độ khố cho biết khố mức độ Node thuộc tính hay khố mức độ Node thơi Nếu mức độ khố Node điều có nghĩa thực khố hay mở khố Node đồng thời việc khố hay mở khoá thực thuộc tính Node 13.2 Phạm vi khóa Có loại phạm vi khoá khoá độc quyền (Exclusive) khoá chia sẻ (Shared) Bùi Vĩnh Phú 104 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA • Khố độc quyền có nghĩa người sử dụng thực khoá độc quyền Item người sử dụng khác khơng quyền thực khoá Item • Khố chia sẻ có nghĩa người sử dụng thực khoá chia sẻ Item người sử dụng khác khơng quyền thực khố độc quyền thực khố chia sẻ Item 13.3 Loại khóa Loại khố cho biết khố ngăn khơng cho người sử dụng khác (ngồi người sở hữu khố) thực thao tác Item bị khoá Chằng hạn loại khố Write ngăn khơng cho người sử dụng khác ghi lên Item bị khố Loại khố Write loại khố mà JCR định nghĩa sẵn Còn loại khố khác, chảng hạn Read, Remove JCR khơng định nghĩa sẵn mà ứng dụng cụ thể phải định nghĩa loại khố 14 Tìm kiếm nội dung Repository JCR hỗ trợ việc tìm kiếm Repository sử dụng hai ngôn ngữ truy vấn JCRQL XPath Các phương thức dùng để tạo thực thi câu truy vấn định nghĩa giao diện javax.jcr.QueryManager Ngôn ngữ truy vấn JCRQL tương tự ngôn ngữ truy vấn SQL thường sử dụng để tìm kiếm nội dung theo dạng chuỗi giống Search Engine Ngôn ngữ truy vấn XPath JCR tương tự XPath tài liệu XML, cần phải có khung nhìn XML (System View hay Document View, tốt sử dụng Document View) để XPath họat động Bùi Vĩnh Phú 105 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 14.1 Ngôn ngữ truy vấn JCRQL Câu truy vấn sử dụng ngôn ngữ JCRQL phải theo định dạng sau: (các từ khoá SELECT FROM phải viết hoa) query ::= selectclause fromclause [locationclause] [whereclause] [textsearchclause] [orderclause] 14.1.1 Mệnh đề SELECT Mệnh đề SELECT dùng để đưa danh sách tên Node cần truy vấn, sử dụng ký hiệu “*” Node truy vấn selectclause ::= SELECT (* | nodenamelist) nodenamelist ::= nodename {, nodename} nodename ::= /* Tên Node */ 14.1.2 Mệnh đề FROM Mệnh đề FROM dùng để xác định kiểu Node truy vấn Nếu muốn truy vấn kiểu Node sử dụng ký hiêu “*” fromclause ::= FROM (* | nodetypelist) nodetypelist ::= nodetype {, nodetype} nodetype ::= /* Tên kiểu Node*/ 14.1.3 Mệnh đề LOCATION Mệnh LOCATION dùng để giới hạn lại truy vấn phần phân cấp cách sử dụng pattern để đường dẫn Reporitory Bùi Vĩnh Phú 106 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA locationclause ::= LOCATION [depthclause] [followingclause] pathpattern pathpattern ::= plainpath[/] | plainpath[//[plainpath[/]]] plainpath ::= itempattern{/pattern} itempattern ::= * | [*]fragment{fragment} fragment ::= char | char* char ::= /* Bất kỳ ký tự tên Item */ Để hiểu rõ hơn, ta xét ví dụ sau pathpattern : Pattern Selection /press/release Chỉ Item /press/release /press/release/* Mọi Item /press/release /press/release/*/picture Mọit Item có tên picture Item /press/release /press/release// Item /press/release Item phân cấp /press/release /press/release//* Mọit Item phân cấp /press/release, không bao gồm Item /press/release /press/release//picture Mọi Item có tên picture có phân cấp bắt đầu tử /press/release /press/release/*//picture Mọi Item có tên picture có phân cấp bắt đầu tử Item /press/release Bùi Vĩnh Phú 107 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA 14.1.3.1 Mệnh đề FOLLOWING followingclause ::= FOLLOWING [CHILDREN] softlinkprops softlinkprops ::= itempattern {, itempattern} Mệnh đề FOLLOWING dùng để thay đổi phạm vi truy vấn xác định pathpattern mệnh đề LOCATION Khi khơng có mệnh đề FOLLOWING sử dụng phép tốn “//” pathpattern dùng để truy vấn đế Item bên dưói phân cấp Cịn sử dụng FOLLOWING sử dụng phép tốn “//”, q trình truy vấn, gặp thuộc tính có kiểu PATH q trình tìm kiếm chuyển hướng sang Item mà PATH tới, sau tiếp tục truy vấn Item theo chế Ví dụ: SELECT myapp:picture FROM * LOCATION FOLLOWING myapp:picturelink /press/releases// Trả Item có tên myapp:picture tồn Reporitory cho Item trỏ tới Property kiểu PATH có tên myapp:picturelink phía phân cấp /press/releases 14.1.3.2 Mệnh đề DEPTH Mệnh đề DEPTH dùng để giới hạn độ sâu truy vấn phân cấp tính từ Item xác định pathpattern mệnh đề LOCATION depthclause ::= DEPTH number number ::= /* Số nguyên kiểu integer */ Bùi Vĩnh Phú 108 Đặng Đình Vương LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Phát triển CMS module cho hệ thống Intranet cuả Công ty TMA Nếu giá trị number có nghĩa khơng truy vấn Cịn giá trị number < điều có nghĩa độ sâu truy vấn khơng bị giới hạn Ví dụ: SELECT * FROM * LOCATION DEPTH /press/releases//myapp:picture Sẽ trả Item có tên myapp:picture nhánh /press/releases sâu xuống cấp 14.1.4 Mệnh đề WHERE Mệnh đề WHERE cho phép giới hạn trả Node cho miền giá trị thuộc tính Node trả thoả điều kiện ràng buộc mệnh đề WHERE whereclause ::= WHERE expression expression ::= property op value | property LIKE pattern | expression AND expression | expression OR expression | NOT expression op ::= = | > | < | >= |

Ngày đăng: 01/11/2022, 19:43

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan