4.2 Công cụ chuyển đổi mô hình Accele o– JavaEE Generator
4.2.1 Các mô hình sử dụng trong Accleo JavaEE Generator
Acceleo-JavaEE Generator thực hiện sinh mã trên các mô hình đƣợc tạo ra từ ba công cụ mô hình hoá chuyên biệt miền – DSM (Domain Specific Modeler) gồm: Entity Designer – nhằm xây dựng Entity Model định nghĩa các thực thể trong hệ thống (Entity) và mối quan hệ giữa chúng; Cinematic Designer – xây dựng Cinematic Model định nghĩa các khung nhìn, các hành động và sự chuyển đổi giữa các khung nhìn; SOA Designer – xây dựng SOA Model định nghĩa các thành phần và dịch vụ của hệ thống theo kiến trúc hƣớng dịch vụ.
4.2.1.1 Mô hình thực thể ( Entity Model)
Entity Model mô tả hệ thống ở khía cạnh các dữ liệu thực thể, nó phù hợp để mô hình hoá các dữ liệu thực thể trong JavaEE và các mối quan hệ của giữa các thực thể. Nó đƣợc xây dựng trên công cụ Entity Designer.
Metamodel của mô hình thực thể:
Hình 4.8 Entity metamodel trong Entity Designer
Nhƣ (Hình 4.8) biểu diễn các thành phần trong Entity metamodel bao gồm:
Root: Là kho chứa các block.
Block: Là kho chứa các thực thể.
Entity: Biểu diễn một thực thể.
Attribute: Biểu diễn các thuộc tính của thực thể.
Reference: Biểu diễn các mối quan hệ giữa các thực thể.
Công cụ Entity Designer sử dụng Entity Metamodel để xây dựng thành các khối phân cấp (Block Hierarchy) và lƣợc đồ thực thể (Entity Diagrame) (xem Hình 4.9). Từ mô hình này, các bộ sinh mã sẽ thực hiện sinh ra các lớp thực thể trong Java, các lƣợc đồ trong cơ sở dữ liệu quan hệ. Nó cũng là tham chiếu để xây dựng các mô hình trình diễn và mô hình dịch vụ.
4.2.1.2 Mô hình trình diễn (Cinematic Model)
Mô hình trình diễn – Cinematic Model nhằm mô hình hoá hệ thống ở khía cạnh giao diện ngƣời dùng. Nó đƣợc mô tả bởi các kịch bản hoạt động (Senario), luồng sự kiện (Flow, Flow event), các chuyển đổi (Transistion), các hành động/sự kiện, các khung nhìn (view) và nội dung của các khung nhìn (ViewContainer) với các công cụ biểu diễn (widget). Nó đƣợc xây dựng trên công cụ Cinematic Designer.
Metamodel của mô hình trình diễn:
Nhƣ Hình 4.10 biểu diễn Cinematic metamodel gồm các thành phần chính nhƣ:
Root: Là gốc của biểu đồ trình diễn. Nó chứa các kịch bản trình diễn của hệ thống.
Scenario: Là kịch bản trình diễn của hệ thống, nó gồm nhiều các màn hình.
Screen: Màn hình đƣợc hình thành bởi các công cụ trình diễn (widget) và có
nhiều hành động trên một màn hình.
Action: Mỗi hành động (Action) chỉ đƣợc áp dụng trên duy nhất một màn hình.
ActionReference: Mỗi hành dộng chỉ áp dụng cho duy nhất một màn hình
nhƣng nó cũng là đích của những hành động khác.
Widget: Là tập các công cụ trình diễn khác nhau: Nhƣ Label, Button, Table, Textbox...
Công cụ Cinematic Designer sử dụng các Cinematic Metamodel với mục đích xây dựng các lƣợc đồ gói tổng quát (Package Diagram Overview) (xem Hình 4.12) – cho cái nhìn tổng quát các lƣợc đồ biểu diễn hệ thống, các biểu đồ luồng (Flow Diagram) (xem Hình 4.11) – biểu diễn luồng sự kiện, các khung nhìn đƣợc kích hoạt, các hành động sự kiện đƣợc gọi…; sơ đồ cấu trúc giao diện (UI Structure) (xem Hình 4.13).
Hình 4.11 Ví dụ Flow Diagram trên Cinematic Designer
Hình 4.12 Ví dụ về Package Diagram trên Cinematic Designer
4.2.1.3 Mô hình kiến trúc hướng dịch vụ (SOA Model)
Mô hình SOA thực hiện việc mô hình hoá các lớp dịch vụ. Theo đó tập trung vào việc mô tả các thành phần của hệ thống, các dịch vụ hệ thống cung cấp, các nội dung phục vụ (contract) đƣợc dùng theo ngữ cảnh của kiến trúc hƣớng dịch vụ - SOA. Mô hình này đƣợc xây dựng bởi công cụ SOA Designer.
Metamodel của mô hình SOA:
Nhƣ Hình 4.14 trình diễn, các thành phần trong SOA Metamodel gồm có:
System: Hệ thống chứa các thành phần và các liên kết giữa các dịch vụ.
Component: Một thành phần cung cấp các dịch vụ.
Service: Một dịch vụ cung cấp dịch vụ và yêu cầu dịch vụ từ một dịch vụ khác.
Dịch vụ này có thể đƣợc khai thác thông qua các lớp giao diện. Nhằm đáp trả lại các liên kết giữa các dịch vụ.
Interface: Một giao diện cung cấp các khai báo điều khiển và các đối số.
ImplementationComponent: ImplementationComponent is chứa các thành
phần để thực thi các phƣơng thức biểu diễn tại Interface.
Operation: Một phƣơng thức của một dịch vụ có nhiều đối số.
Parameter: Một đối số sẽ có nhiều thuộc tính nhƣ nhƣ tên, cận dƣới cận trên,
các trạng thái duy nhất (isUnique), đƣợc sắp xếp (isOrdered).
Wire: Wire is là một liên kết giữa các dịch vụ (một bên là nguồn và một bên là đích).
Công cụ SOA Designer sử dụng các SOA Metamodel nhằm xây dựng ra các biểu dồ nhƣ: Biểu đồ SOA– biểu diễn các dịch vụ và các liên kết (wire) của bên yêu cầu dịch vụ và bên cung cấp dịch vụ (xem Hình 4.15); Biểu đồ Contract Componet – biểu diễn các phƣơng thức sẽ cung cấp tại mỗi gói dịch vụ (xem Hình 4.16); Các DTO view và gán dữ liệu thực thể vào DTO.
Hình 4.15 Ví dụ biểu đồ SOA biểu diễn trong SOA Designer
Hình 4.16 Ví dụ biểu đồ Component Contract trong SOA Designer