Trong dự án EMF chúng tôi đã xây dựng đƣợc cú pháp trừu tƣợng cho DSML. Tiếp theo, chúng tôi sẽ xây dựng cú pháp cụ thể cho DSML bằng dự án GMF của Eclipse. Trong đó các ký hiệu đại diện các khái niệm của DSML cho RBAC sẽ đƣợc xây dựng nhƣ bảng dƣới đây:
46
Các mô hình xây dựng trong dự án GMF cho DSMl RBAC gồm: a) Graphical Definition Model RBAC.gmfgraph
Cho phép định nghĩa các Figure, Node, Connection,Compartment , Diagram Label cho các khái niệm thuộc miền nhƣ hình dƣới đây:
Khái niệm (Concept) Ký hiệu (Notation)
Node User Node Role
Node Permission
Node Action trong node Permission
Node AuthorizationConstrain
Node Resource
Connection User AssignRole <AssignRole> Connection SubRole <Inherit>
Connection Role Has Permission <Role Has Permission> Connection Permission Has
Authorizationconstrain <PermissionHasAuthorizationconstrain > Connection
PermissionAcessResource
< AcessResource>
47
Hình 3.6.Mô hình BAC.gmfgraph
Trong đó:
+ Figure: Định nghĩa các hình đại diện cho các node và các connection gồm:
- Các Polyline: Định nghĩa hình dáng đƣờng ở cuối liên kết của các connection. Ví dụ hình hƣới đây định nghĩa cho liên kết giữa Role và Permission.
48
Hình 3.7. Xây dựng PolyLine cho link RoleHasPermission
- Các Figure Descriptor: Các hình đại diện cho các khái niệm miền và các liên kết giữa các khái niệm trong mô hình miền. Nhƣ hình dƣới đây là định nghĩa hình (ký hiệu) cho khái niệm Role và hình liên kết giữa Role và Permission.
49
Hình 3.8. Xây dựng Figure cho Role và Link RoleHasPermission
+ Các Node: Định nghĩa các khái niệm miền là node trong mô hình. Với mỗi một node ta cần xác định hình đã đ ƣ ợ c định nghĩa ở trên. Nhƣ hình dƣới đây định nghĩa node: Role.
50
Hình 3.9. Xây dựng node Roles
+ Các Connection: Định nghĩa các liên kết (association ) tồn tại giữa các khái niệm miền. Trong đó xác định hình dáng liên kết bằng hình dạng đƣợc định nghĩa ở trên. Nhƣ hình dƣới đây định nghĩa Connection giữa Role và Permission.
Hình 3.10 Xây dựng Connection RoleHasPermission
+ Các Diagram Label: Định nghĩa các hình chứa các nhãn đã định nghĩa trong các hình của các node, hoặc trong các connection. Nhƣ hình dƣới đây xác định Diagram label cho node Role.
51
Hình 3.11. Diagram Label RolesName
+ Compartment: Nếu trong mô hình miền có những khái niệm là một phần của khái niệm khác, thì cần xây dựng Compartment cho khái niệm chứa. Nhƣ trong khái niệm miền RBAC có khái niệm Action đƣợc chứa trong khái niệm Permission. Nhƣ vậy cần tạo ra Compartment của khái niệm Permission.
52
b) Tooling Definition Model
Mô hình này đƣợc sử dụng để xác định thanh palette, tạo các tools, tạo các actions… Cho các phần tử đồ họa.
Trong dự án GMF RBACG có xây dựng một thanh Palette cho các khái niệm và liên kết. Các ký hiệu này đƣợc chia làm ba nhóm: Node, Link, và Permission Access Action (tách riêng node Acction ra một nhóm riêng). Kết quả của Tooling Definition Model trong dự án GMF RBACG nhƣ hình dƣới đây:
53
c) Mapping Definition Model
Mô hình này cho phép chúng ta liên kết ba mô hình với nhau đó là: Domain (RBAC.Ecore), Graphical definition (RBAC.gmfgraph) và tooling definition (RBAC.gmftool). Đây là mô hình quan trọng để phát triển dự án GMF và mô hình này là đầu vào để chuyển sang mô hình cuối cùng là Generation Model.
Mô hình này sẽ ánh xạ các khái niệm miền ở mức trừu tƣợng trong mô hình RBAC.ecore thành các khái niệm miền ở mức cụ thể trong RBAC.gmfgraph gắn với tool trong Palette của mô hình RBAC.gmftool. Trong Mapping Definition Model của dự án GMF RBACG cần ánh xạ các Node và Link giữa các Node, hình dƣới đây là mô hình RBAC.gmftool đã xây dựng.
Hình 3.13. Các Node, link Mapping trong RBAC1.gmfmap
Trong đó:
+ Các Node cần ánh xạ của dự án GMF RBACG: Role, Permission, Action, Resource, AuthorizationConstrain với node Acction đƣợc định nghĩa trong node Permission. Ví dụ nhƣ ánh xạ node Role nhƣ hình dƣới đây:
54
Hình 3.14. Ánh xạ node Role
Hình tiếp theo là ánh xạ của node Permission trong đó xác định node chứa bên trong là node Action.
55
Hình 3.15. Ánh xạ Node Action và Permission
+ Các Link cần ánh xạ trong dự án RBACG: SubRole, RoleHasPermission PermissionHasAuthorization, PermissionAccessResource. Ví dụ nhƣ hình dƣới đây tạo link ánh xạ Link RoleHasPermission.
56
Hình 3.16. Ánh xạ Link Role Has Permission
d) Code Generation
Đây là mô hình cuối cùng trong dự án GMF. Sau khi xây dựng mô hình Mapping definition bƣớc tiếp theo tạo mô hình Generator từ mô hình Mapping definition. Cuối cùng tạo generate diagram code từ mô hình Generator.
57
Hình 3.17. Generate diagram code của dự án GMF RBAC
Kết quả của bƣớc trên sẽ tạo ra tệp Plugin.xml của tool DSML RBAC thu đƣợc từ kết quả của dự án GMF RBACG
58
Hình 3.18. Cửa sổ Extensions của Plugin.xml trong dự án GMF RBACG
Kết quả dự án GMF RBAC chúng tôi đã xây dựng đƣợc một DSML RBAC Application Pug-in với Eclipse nhƣ sau:
59
Hình 3.19. DSML cho RBAC
Trong dự án GMF, cung cấp cửa sổ tiện ích Gashboard cho phép chúng ta xây dựng lần lƣợt các mô hình trong dự án.
60