Mở rộng InfoSphere Data Architect của IBM để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu cụ thể của bạn, Phần 2: Xây dựng các báo cáo tùy chỉnh và các quy tắc xác nhận hợp lệ với IDA

IBM InfoSphere Data Architect (IDA- Kiến trúc sư dữ liệu InfoSphere của IBM) (trước đây là Rational Data Architect) đang có xu hướng là một công cụ toàn diện để giúp các tổ chức đẩy mạnh hiểu biết thấu đáo về kiến trúc thông tin doanh nghiệp của họ. Khi càng có nhiều người sử dụng IDA, thì càng có thêm nhu cầu muốn mở rộng IDA để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu duy nhất của họ. Loạt bài hai phần này cho bạn thấy cách mở rộng các mô hình, khung nhìn các đặc tính, các báo cáo mô hình và các quy tắc xác nhận hợp lệ của IDA. Trong Phần 1, bạn đã tìm hiểu cách duyệt qua và sửa đổi các mô hình của IDA bằng lập trình và cách thêm và hiển thị các đặc tính tùy chỉnh. Trong Phần 2, hãy tìm hiểu cách tạo các báo cáo tùy chỉnh và cách thêm các quy tắc xác nhận hợp lệ riêng của bạn cho các mô hình IDA.

[02.07.2009: Bài này đã được cập nhật để phản ánh rằng GUI cho việc tùy chỉnh báo cáo BIRT đã được thay đổi để cải thiện hiệu năng. Điều này được thể hiện trong phần "Tạo các báo cáo mô hình tùy chỉnh bằng cách sử dụng BIRT."--Biên tập viên.]

[07.10.2010: Bài này đã được cập nhật để phản ánh các khả năng của InfoSphere Data Architect 7.5.3.--Biên tập viên.]

Wei Liu, Kỹ sư, IBM

Liu Wei là một kỹ sư phần mềm làm việc tại văn phòng Seattle của IBM, tại Seattle, Washington. Cô làm về tạo công cụ và mô hình hóa dữ liệu.



07 10 2010 (Xuất bản lần đầu tiên vào ngày 10 02 2012)

Giới thiệu

InfoSphere Data Architect của IBM (IDA) là một môi trường phát triển toàn diện để mô hình hóa và tích hợp dữ liệu. IDA cho phép người dùng khám phá, mô hình hóa, hiển thị trực quan và liên kết các tài sản dữ liệu đa dạng và phân tán. IDA là một quy trình quản lý dữ liệu theo đề xuất của IBM và được tích hợp chặt chẽ với các sản phẩm Optim®, Rational và InfoSphere được xây dựng bằng Eclipse. IDA hỗ trợ mô hình hóa dữ liệu logic, vật lý, bảng chú giải, lưu trữ, miền và tích hợp. Khi càng có nhiều khách hàng doanh nghiệp sử dụng IDA, thì càng có thêm nhu cầu muốn mở rộng IDA để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu duy nhất của họ.

Thay đổi tên sản phẩm

Ngày 16 tháng 12 năm 2008, IBM đã công bố rằng Phiên bản 7.5.1, Rational Data Architect (Kiến trúc sư dữ liệu Rational) được đổi tên thành InfoSphere Data Architect nhằm đề cao vai trò của nó trong các công cụ của nền tảng InfoSphere (InfoSphere Foundation).

Như đã đề cập trước đó, IDA dựa trên Eclipse và do đó có thể mở rộng rất nhiều bằng thiết kế bổ xung. Trong loạt bài này, hãy tìm hiểu thêm về các điểm mở rộng, các API và các nhà máy sẵn có với IDA mà bạn có thể sử dụng để mở rộng IDA. Xem cách mở rộng IDA để:

  • Duyệt qua và sửa đổi các mô hình IDA bằng lập trình (Phần 1).
  • Thêm các đặc tính mới và hiển thị chúng trong khung nhìn Properties (Phần 1).
  • Tạo các báo cáo mô hình tùy chỉnh (Phần 2).
  • Thêm các quy tắc xác nhận hợp lệ mô hình (Phần 2).

Dự án BIRT của Eclipse

Dự án BIRT là một phần của khung công tác Eclipse cung cấp cơ sở hạ tầng và các công cụ để thiết kế, phát triển và triển khai nội dung báo cáo cho ứng dụng Java®/J2EE của bạn. BIRT có hai thành phần chính: một trình thiết kế báo cáo và một thành phần thời gian chạy. BIRT cũng cung cấp một máy tạo biểu đồ cho phép bạn thêm các biểu đồ cho các ứng dụng của mình. (Xem phần Tài nguyên để biết thêm thông tin về BIRT).

Bài này giả định bạn có kinh nghiệm phát triển trình cắm thêm Eclipse và có kiến thức cơ bản về các dự án EMF và BIRT trên Eclipse. Mã mẫu được cung cấp trong bài này được thử nghiệm trên phiên bản 7.5.1 và 7.5.2 của IDA và trên phiên bản 3.4.1 và 3.4.2 của Eclipse.


Tạo các báo cáo mô hình tùy chỉnh bằng BIRT

Báo cáo là một tính năng quan trọng của IDA. Nó cung cấp thông tin về toàn bộ hoặc một phần của một mô hình: đó là, một danh sách các đối tượng và các mối quan hệ của chúng. Có thể sao chép, in ấn và phân phối thông tin này như một tài liệu vật lý. Các báo cáo cũng được sử dụng để cung cấp thông tin phù hợp trong nhiều tổ chức. IDA cung cấp một loạt các báo cáo hay các khuôn mẫu dựng sẵn cho các mô hình logic, vật lý, bảng chú giải, ánh xạ của bạn. BIRT đã được tích hợp và mở rộng để cung cấp các khả năng tuỳ chỉnh và báo cáo linh hoạt hơn kể từ bản RDA 7003 (phiên bản 7 bản vá lỗi 3). Tính năng báo cáo của IDA sử dụng BIRT kết hợp với thành phần ODA (Open Data Access - Truy cập dữ liệu mở).

Trình điều khiển ODA và ODA của EMF

Thành phần ODA là một khung công tác truy cập dữ liệu mở và linh hoạt cung cấp một cách mở rộng, thống nhất để lấy ra dữ liệu từ các nguồn dữ liệu doanh nghiệp đa dạng. BIRT cung cấp JDBC, XML, các dịch vụ Web và hỗ trợ tệp phẳng, cũng như hỗ trợ việc sử dụng mã để có quyền truy cập vào các nguồn dữ liệu khác. Việc sử dụng các khung công tác ODA của BIRT cho phép bất kỳ ai muốn xây dựng hỗ trợ giao diện người dùng và hỗ trợ thời gian chạy mới cho bất kỳ loại dữ liệu dạng bảng nào. Khi sử dụng khung công tác mở rộng của ODA, các nhà phát triển Eclipse có thể tạo ra các kiểu thành phần dữ liệu mới, sẽ truy cập dữ liệu từ các nguồn dữ liệu tùy chỉnh, thông qua một giao diện người dùng tương tự như các nguồn dữ liệu BIRT bên ngoài. (Xem phần Tài nguyên để biết thêm thông tin về ODA).

IDA sử dụng trình điều khiển ODA của EMF được phát triển tại IBM để cho phép bạn xây dựng các truy vấn phức tạp được thực hiện trực tiếp dựa vào một nguồn EMF, ví dụ như các mô hình IDA. Khi sử dụng trình điều khiển ODA của EMF, có thể định nghĩa hoặc các cá thể mô hình của EMF hoặc các siêu mô hình Ecore như là một nguồn dữ liệu để cung cấp thông tin cấu trúc mô hình lúc thiết kế báo cáo. Vào lúc chạy (hoặc lúc xem trước), các cá thể mô hình như là một nguồn dữ liệu phải được kết buộc với báo cáo để đưa ra báo cáo dễ dàng.

Trong phần này, bạn sẽ làm như sau:

  1. Tạo một báo cáo và chỉ định một nguồn dữ liệu.
  2. Tạo một tập dữ liệu Tables (Các bảng) được sử dụng để hiển thị các bảng trong báo cáo.
  3. Tạo một báo cáo mẫu từ các báo cáo hiện có của IDA.
  4. Tùy chỉnh báo cáo để thêm một cột để báo cáo về phương thức mặt nạ được sử dụng cho một cột bảng.

Hãy hoàn thành các bước sau để tìm hiểu cách trình điều khiển ODA của EMF hoạt động. Sau đó, bạn có thể tùy chỉnh các báo cáo theo cách bạn muốn bằng cách sử dụng trình thiết kế BIRT.

Bước 1. Tạo một báo cáo mới và chỉ định một nguồn dữ liệu

Làm theo các bước sau để tạo một thiết kế báo cáo BIRT mới với một nguồn dữ liệu EMF:

  1. Mở phối cảnh Report Design (Thiết kế báo cáo).
  2. Tạo một báo cáo mới bằng cách sử dụng File > New > Report.
  3. Chọn một thư mục cha mẹ và khuôn mẫu báo cáo Simple Listing (Liệt kê đơn giản) trong trình hướng dẫn báo cáo mới và nhấn Finish.
  4. Nhấn chuột phải vào thư mục Data Sources (Các nguồn dữ liệu) trong Data Explorer (Trình thám hiểm dữ liệu) và chọn New Data Source (Nguồn dữ liệu mới).
  5. Chọn EMF Data Source (Nguồn dữ liệu của EMF) và nhập SAMPLE Data Source vào cửa sổ New Data Source, như trong Hình 1.
Hình 1. Hộp thoại nguồn dữ liệu mới
Ảnh chụp màn hình của hộp thoại nguồn dữ liệu mới cho thấy việc chọn lựa EMF Data Source và 'SAMPLE Data Source' được nhập vào làm tên nguồn dữ liệu
  1. Nhấn Next.
  2. Chọn Add để thêm tệp SAMPLE.dbm (được tạo trong Phần 1 của loạt bài này) làm cá thể dữ liệu EMF, như trong Hình 2.
Hình 2. Thêm tệp SAMPLE.dbm làm cá thể dữ liệu của EMF
Thêm tệp SAMPLE.dbm làm cá thể dữ liệu của EMF
  1. Nhấn Finish.

Mô hình SAMPLE, là một cá thể của mô hình vật lý, được sử dụng trong bước 4 ở trên là nguồn dữ liệu. Như đã đề cập, bạn cũng có thể định nghĩa các siêu mô hình là nguồn dữ liệu khi thiết kế một báo cáo.

Bước 2: Tạo một tập dữ liệu Tables

Làm theo các bước sau để tạo một tập dữ liệu Tables dùng để lấy tất cả các bảng trong một mô hình:

  1. Nhấn chuột phải vào thư mục Data Sets (Các tập dữ liệu) trong Data Explorer và chọn New Data Set.
  2. Gõ vào Tables Data Set làm tên tập dữ liệu và nhấn Next.
  3. Nhấn Next (Các tham số truy vấn).
  4. Trong trang Row Mapping (Ánh xạ dòng), nhấn vào mũi tên đi xuống và chọn tệp sample.dbm, như trong Hình 3.
Hình 3. Chọn tệp sample.dbm để duyệt trang Row Mapping
Chọn tệp sample.dbm để duyệt trang Row Mapping

Sau đó cơ sở dữ liệu, lược đồ, chỉ mục, bảng bền vững (persistent table) và các đối tượng cột đã có trong mô hình SAMPLE được liệt kê trong vùng Browse. Bạn có thể mở rộng các đối tượng trong trang này và làm quen với cấu trúc của chúng.

  1. Chọn bất kỳ của các bảng bền vững trong vùng Browse, nhấn vào các nút > để thêm các biểu thức truy vấn và thiết lập kiểu truy vấn, như trong Hình 4.
Hình 4. Thiết lập biểu thức truy vấn và kiểu từ một bảng bền vững trong trang Row Mapping
Thiết lập biểu thức truy vấn và kiểu từ một bảng bền vững trong trang Row Mapping
  1. Nhấn Next.
  2. Trong trang Column Mapping (Ánh xạ cột), nhấn chuột vào mũi tên đi xuống và chọn SQLTables:PersistentTable, như trong Hình 5.
Hình 5. Chọn bảng bền vững để duyệt trong hộp thoại Column Mapping
Chọn bảng bền vững để duyệt trong hộp thoại Column Mapping

Điền vào cấu trúc của PersistentTable.

  1. Chọn name:EString từ vùng Browse, nhấn vào nút > để thêm nó làm một truy vấn cột, như trong Hình 6.
Hình 6. Thêm tên bảng bền vững làm một truy vấn cột trong hộp thoại Column Mapping
Thêm tên bảng bền vững làm một truy vấn cột trong hộp thoại Column Mapping
  1. Nhấn Finish.
  2. Nhấn Preview Results (Xem trước các kết quả). Bạn sẽ thấy một danh sách các bảng, như trong Hình 7.
Hình 7. Các kết quả xem trước của tập dữ liệu
Các kết quả xem trước của tập dữ liệu
  1. Nhấn OK để kết thúc. Bạn sẽ thấy SAMPLE Data Source (Nguồn dữ liệu MẪU) và Tables Data Set (Tập dữ liệu của các bảng) được tạo ra trong Data Explorer, như trong Hình 8.
Hình 8. Một SAMPLE Data Source và Tables Data Set được tạo ra
Một SAMPLE Data Source và Tables Data Set được tạo ra

Bước 3: Tạo một báo cáo mẫu từ các báo cáo dựng sẵn của IDA

Các báo cáo dựng sẵn do IDA cung cấp được phân loại theo kiểu mô hình mà chúng báo cáo. Mở khung nhìn Report Explorer (Trình thám hiểm báo cáo) trong Reporting (Báo cáo) và bạn có thể thấy một danh sách đầy đủ các báo cáo BIRT và các báo cáo XSLT dựng sẵn của IDA như trong Hình 9. Các báo cáo có phần mở rộng tệp .rptdesign là các báo cáo của BIRT. Các báo cáo có phần mở rộng .xsl là các báo cáo XSLT kinh điển.

Hình 9. Các báo cáo dựng sẵn của IDA theo thể loại mô hình
Các báo cáo dựng sẵn của IDA theo thể loại mô hình

Nhấp vào để xem ảnh lớn

Hình 9. Các báo cáo dựng sẵn của IDA theo thể loại mô hình

Các báo cáo dựng sẵn của IDA theo thể loại mô hình

Lưu ý: Có một khuôn mẫu chuyển đổi mới, TransformationReport.rptdesign, là khuôn mẫu được xây dựng-tùy chỉnh để tạo ra các báo cáo theo đúng định dạng báo cáo ngang kiểu-excel, cung cấp khả năng sắp xếp và nhóm thông tin ở đầu ra. Ngoài ra, khuôn mẫu chuyển đổi này còn định nghĩa các phép nối qua các đối tượng mô hình dữ liệu, tạo có hiệu quả các báo cáo trên các kiểu mô hình khác nhau như các mô hình dữ liệu lô-gic và vật lý.

Ví dụ, nếu bạn có một mô hình vật lý, bạn có thể tạo một báo cáo cho tất cả các đối tượng trong mô hình hoặc chỉ cho cột, ánh xạ cột, hoặc các vùng bảng bằng cách sử dụng Báo cáo mô hình dữ liệu vật lý (Physical Data Model Report), Báo cáo cột (Column Report), Báo cáo ánh xạ cột (Column Mapping Report), hoặc Báo cáo vùng bảng (Table Space Report) được liệt kê trong thể loại Mô hình dữ liệu vật lý (Physical Data Model).

Bạn cần tạo một bản sao của một báo cáo dựng sẵn để có thể mở nó. Ví dụ, bạn có thể mở và xem xét kỹ hơn Data Source của Column Report bằng cách làm theo các bước sau:

  1. Nhấn chuột phải vào Column Report trong thể loại Physical Data Model và CopyPaste (Sao chép và dán) nó vào một dự án.
  2. Mở bản sao của Column Report với Report Editor (Trình soạn thảo báo cáo) trong phối cảnh Report Design.
  3. Nhấn chuột phải vào Data Source trong Data Explorer và chọn Edit (Chỉnh sửa). Bạn thấy các mô hình Ecore.ecore, db2.ecore, schema.ecore, tables.ecorem và mô hình ecore khác của SQL được liệt kê là các siêu mô hình Ecore cho thiết kế báo cáo, như trong Hình 10.
Hình 10. Các siêu mô hình Ecore được định nghĩa là nguồn dữ liệu trong các báo cáo dựng sẵn
Các siêu mô hình Ecore được định nghĩa là nguồn dữ liệu trong các báo cáo dựng sẵn

Làm theo các bước sau để cấu hình và tạo một cột báo cáo cho mô hình SAMPLE mà bạn tạo ra trong Phần 1:

  1. Mở Data Perspective (Phối cảnh dữ liệu), nếu nó vẫn chưa mở.
  2. Nhấn Run > Report > Report Configurations (Chạy> Báo cáo> Các cấu hình báo cáo).
  3. Nhấn chuột phải vào BIRT Report và chọn New trong hộp thoại Report Configurations (Các cấu hình báo cáo).
  4. Gõ vào tên, thiết lập Column Report làm Built-in report (Báo cáo dựng sẵn), thêm tệp SAMPLE.dbm làm Data Source (Nguồn dữ liệu) và chọn vị trí và định dạng đầu ra, như trong Hình 11.
Hình 11. Cấu hình một Column Report cho mô hình SAMPLE
Cấu hình một Column Report cho mô hình SAMPLE
  1. Nhấn Report để tạo một báo cáo.

Bước 4: Tùy chỉnh các báo cáo của IDA

Các khách hàng IDA thường có yêu cầu riêng về nội dung và định dạng của các báo cáo mô hình của họ. IDA đã tích hợp và mở rộng BIRT của Eclipse kể từ Phiên bản 7003 của IDA để cho phép các khách hàng tùy chỉnh các báo cáo bằng cách sử dụng trình thiết kế BIRT để đáp ứng các nhu cầu riêng của họ. Vì một mô hình logic hoặc mô hình vật lý là một sự trừu tượng hóa của hệ thống thế giới thực, nên nó thường rất phức tạp và nó gồm có các khối xây dựng và các mối quan hệ.

IDA đã cung cấp nhiều báo cáo dựng sẵn có thể được dùng làm các khuôn mẫu để giúp bạn bắt đầu với việc tùy chỉnh. Liệt kê báo cáo trong Hình 9 cho bạn thấy các cặp báo cáo BIRT trong đó một thành viên của cặp được gắn nhãn Blank (Còn trống) (ví dụ như Báo cáo mô hình dữ liệu vật lý- Physical Data Model Report và Báo cáo mô hình dữ liệu vật lý còn trống- Blank Physical Data Model Report). Nói chung, các báo cáo, ví dụ như các báo cáo Mô hình dữ liệu vật lý và các báo cáo Cột (Column report) có thể được áp dụng trực tiếp cho một mô hình vật lý để tạo các báo cáo, trong khi các báo cáo còn trống được sử dụng làm khuôn mẫu để tuỳ chỉnh. Bạn có thể sao chép và dán một báo cáo dựng sẵn với phần mở rộng là .rptdesign từ Report Explorer và sau đó mở mục copy trong trình thiết kế BIRT để hiển thị thiết kế báo cáo. Nếu bạn mở mục copy của Column Report, bạn tìm thấy Data Source và Data Sets đã định nghĩa, cũng như một thiết kế phần trình bày, như thể hiện trong Hình 12. Báo cáo cột còn trống (Blank Column Report) chỉ có Data Source và Data Sets đã định nghĩa.

Hình 12. Báo cáo Cột
Báo cáo Cột

Phần trình bày còn trống để bạn có thể tạo nó, như hiển thị trong Hình 13.

Hình 13. Báo cáo cột còn trống
Báo cáo cột còn trống

Với một ví dụ tùy chỉnh báo cáo, bạn có thể cập nhật báo cáo cột để bao gồm phương thức mặt nạ, đã được thêm vào như là một đặc tính mới trong Phần 1 của loạt bài này. Bạn có thể bắt đầu tùy chỉnh hoặc từ báo cáo cột hoặc báo cáo cột còn trống. Vì tốt nhất là duy trì hầu hết các phần trình bày của các báo cáo cột, nó giúp tiết kiệm thời gian để bắt đầu từ báo cáo này.

  1. Sao chép báo cáo cột, nhấn chuột phải vào thư mục mô hình dữ liệu vật lý và dán nó làm Column Report with Privacy (Báo cáo Cột có tính riêng tư) (đặt tên tệp là ColumnWithPrivacy và chọn một thư mục trong các hộp thoại báo cáo dán dữ liệu), như trong Hình 14.
Hình 14. Báo cáo Cột có tính riêng tư được tạo từ Column Report
Báo cáo Cột có tính riêng tư được tạo từ Column Report
  1. Nhấn đúp chuột vào Column Report with Privacy để mở nó trong trình thiết kế báo cáo BIRT.

Nếu bạn đã lưu đặc tính phương thức mặt nạ là một mục eAnnotation trong Phần 1 của loạt bài này, bạn cần thêm nó vào tập dữ liệu Cột để hiển thị nó trong báo cáo của bạn.

Để tạo một ánh xạ cột mới cho tập dữ liệu Cột, hãy hoàn thành các bước sau đây:

  1. Nhấn chuột phải vào Column data set (Tập dữ liệu Cột) trong Data Explorer và chọn Edit, như trong Hình 15.
Hình 15. Chỉnh sửa tập dữ liệu Cột
Chỉnh sửa tập dữ liệu Cột
  1. Chọn Column Mapping, nhấn chuột vào mũi tên đi xuống và chọn SQLTables:Column để duyệt trong hộp thoại Edit Data Set (Chỉnh sửa tập dữ liệu). Cây duyệt được hiển thị.
  2. Mở rộng cây duyệt, chọn eAnnotations/details/value và nhấn vào nút > ở giữa.
  3. Gõ tên là Masking Method (Phương thức mặt nạ) và nối thêm [1] vào truy vấn, như thể hiện trong Hình 16.
Hình 16. Thêm ánh xạ cột bằng cách sử dụng hộp thoại Edit Data Set - Column
Thêm ánh xạ cột bằng cách sử dụng hộp thoại Edit Data Set - Column
  1. Nhấn Preview Results (Xem trước các kết quả) để xem trước các cột mới được thêm vào và nhấn OK. Ánh xạ cột của Masking Method được tạo ra cho tập dữ liệu Cột, như thể hiện trong Hình 17.
Hình 17. Masking Method được tạo ra trong tập dữ liệu cột
Masking Method được tạo ra trong tập dữ liệu cột

Làm theo các bước sau để thêm một trường Masking Method vào báo cáo:

  1. Chèn một cột vào bên phải của cột Documentation (Tài liệu), như trong Hình 18.
Hình 18. Chèn một cột mới trong báo cáo
Chèn một cột mới trong báo cáo
  1. Kéo ánh xạ cột Masking Method mới được tạo từ Data Explorer và thả nó trong hàng chi tiết bảng của cột vừa mới chèn vào, như thể hiện trong Hình 19.
Hình 19. Kết buộc tập dữ liệu cột của Masking Method vào báo cáo bằng cách kéo và thả
Kết buộc tập dữ liệu cột của Masking Method vào báo cáo bằng cách kéo và thả
  1. Thay đổi nhãn của cột được chèn vào thành Masking Method Masking Method.
  2. Nhấn File > Save.

Khi bạn tạo một bản báo cáo bằng cách sử dụng Báo cáo Cột có tính riêng tư cho mô hình SAMPLE, bạn thấy một trường Masking Method và giá trị HASHING với cột BONUS (Tiền thưởng), như thể hiện trong Hình 20.

Hình 20. Báo cáo Cột có tính riêng tư với cột phương thức mặt nạ
Báo cáo Cột có tính riêng tư với cột phương thức mặt nạ

Thêm các quy tắc xác nhận hợp lệ

Ở bất kỳ thời điểm nào khi bạn đang xây dựng một mô hình dữ liệu, bạn có thể phân tích mô hình đó để xác minh xem nó có tuân thủ các ràng buộc đã quy định không. Dựa vào khung công tác xác nhận hợp lệ của EMF, IDA cung cấp các ràng buộc dựng sẵn không chỉ đảm bảo tính toàn vẹn của mô hình, mà còn giúp nâng cao chất lượng mô hình bằng cách cung cấp các gợi ý thiết kế và các hướng dẫn thực hành tốt nhất. Trong phần này, hãy tìm hiểu cách mở rộng các ràng buộc dựng sẵn của IDA để thêm một ràng buộc mới nhằm kiểm tra sự tồn tại của một phương thức Mặt nạ khi thiết lập một cột dành cho dữ liệu riêng tư.

Khung công tác xác nhận hợp lệ của EMF

Khung công tác xác nhận hợp lệ của EMF cung cấp sự hỗ trợ cùng với các định nghĩa ràng buộc cho bất kỳ siêu mô hình nào (và các ràng buộc bó và trực tiếp), các thuật toán duyệt qua mô hình có thể tùy chỉnh được, phân tích cú pháp ràng buộc cho các ngôn ngữ, các kết buộc ràng buộc có thể cấu hình được cho các ngữ cảnh ứng dụng và những người nghe xác nhận hợp lệ của EMF. (Xem phần Tài nguyên để biết thêm thông tin về khung công tác xác nhận hợp lệ EMF của Eclipse).

Các ràng buộc dựng sẵn của IDA

Việc xác nhận hợp lệ mô hình của IDA sử dụng và mở rộng khung công tác xác nhận hợp lệ EMF. IDA cung cấp các ràng buộc dựng sẵn toàn diện để thực hiện kiểm tra cú pháp mô hình và đưa ra các gợi ý thiết kế cho các mô hình logic và vật lý, như thể hiện trong Hình 21.

Hình 21. Các ràng buộc dựng sẵn của IDA để kiểm tra cú pháp mô hình và đưa ra các gợi ý thiết kế
Các ràng buộc dựng sẵn của IDA để kiểm tra cú pháp mô hình và đưa ra các gợi ý thiết kế

Bạn có thể chọn cho phép hoặc không cho phép bất kỳ các ràng buộc nào hoặc thông qua hộp thoại Preferences (Các sở thích) hoặc hộp thoại Analyze Model (Mô hình Phân tích). Khi bạn nhấn chuột phải vào một cơ sở dữ liệu hoặc lược đồ trong một mô hình dữ liệu vật lý hoặc một gói trong một mô hình dữ liệu logic từ Data Project Explorer và chọn Analyze Model, các kết quả xác nhận hợp lệ dựa vào các ràng buộc được phép xuất hiện trong khung nhìn Problems (Các vấn đề), như thể hiện trong 22.

Hình 22. Các kết quả của mô hình phân tích xuất hiện trong khung nhìn Problems
Các kết quả của mô hình phân tích xuất hiện trong khung nhìn Problems

Thêm một ràng buộc mới

Điểm mở rộng org.eclipse.emf.validation.constraintProviders được sử dụng để thêm các ràng buộc vào khung công tác xác nhận hợp lệ mô hình (xem phần Tài nguyên để biết thêm thông tin về điểm mở rộng này). Các ràng buộc được nhóm lại thành các thể loại có cấu trúc theo phân cấp. Một thể loại ràng buộc định nghĩa các thuộc tính sau:

  • id— Mã định danh cho thể loại. ID là một tên phân cấp, được phân định bằng các dấu gạch chéo, liên quan đến ID của phần tử category (thể loại) đang chứa (nếu có).
  • name— Tên xác định của thể loại.
  • mandatory (bắt buộc) — Cho biết thể loại có bắt buộc không.

IDA đã định nghĩa các thể loại ràng buộc như trong Liệt kê 1.

Liệt kê 1. Các thể loại ràng buộc được định nghĩa trong IDA
   <extension
      id="com.ibm.datatools.validation"
      name="Datatools Constraint Provider"
      point="org.eclipse.emf.validation.constraintProviders">
      <category
         name="%VALIDATION.CATEGORY.PHYSICAL"
         id="com.ibm.datatools.validation.physicalmodel">
         <category
            name="%VALIDATION.CATEGORY.SYNTAX"
            id="syntax">
            <category
               name="%VALIDATION.CATEGORY.DATATYPE"
               id="datatypes">
               %VALIDATION.CATEGORY.DATATYPE_DESC       
            </category>
            <category
               name="%VALIDATION.CATEGORY.SQL"
               id="sql_statement">
               %VALIDATION.CATEGORY.SQL_DESC
            </category>
            <category
               name="%VALIDATION.CATEGORY.OBJECTNAME"
               id="object_names">
               %VALIDATION.CATEGORY.OBJECTNAME_DESC
            </category>
            <category
               name="%VALIDATION.CATEGORY.KEY_CONSTRAINT_INDEX"
               id="key_constraints">
               %VALIDATION.CATEGORY.KEY_CONSTRAINT_INDEX_DESC
            </category>
            <category
               name="%VALIDATION.CATEGORY.IDENTITY_COLUMN"
               id="identity_columns">
               %VALIDATION.CATEGORY.IDENTITY_COLUMN_DESC
            </category>
            %VALIDATION.CATEGORY.SYNTAX_DESC
         </category>
         %VALIDATION.CATEGORY.PHYSICAL_DESC
      </category>
   </extension>

Các nhà cung cấp ràng buộc nhắm vào một hoặc nhiều EPackages bằng vùng tên URI. Một nhóm các ràng buộc khai báo các thể loại, mà chúng là thành viên trong đó. Mỗi ràng buộc có nhiều siêu dữ liệu liên kết với nó. Các thuộc tính sau đây được sử dụng để định nghĩa một ràng buộc:

  • id— Một mã định danh duy nhất cho ràng buộc.
  • name— Tên xác định cho ràng buộc (xuất hiện trong GUI).
  • lang— Nhận dạng ngôn ngữ trong đó thể hiện ràng buộc. Ngôn ngữ không phải là trường hợp phân biệt chữ hoa, chữ thường.
  • severity (mức độ nghiêm trọng) — Mức độ nghiêm trọng của vấn đề khi ràng buộc bị vi phạm. Mức này tương quan với mức độ nghiêm trọng của các nhiệm vụ trong khung nhìn Tasks (Các nhiệm vụ) của môi trường Eclipse.
  • statusCode— Mã trạng thái duy nhất của trình cắm thêm, có ích để đăng nhập.
  • class (lớp) — Chỉ với các ràng buộc của ngôn ngữ Java, xác định một lớp thực hiện ràng buộc.
  • mode (chế độ) — Mô tả liệu một ràng buộc có hoạt động trong chế độ bó, chế độ trực tiếp, hoặc chế độ tính năng không thôi.

Bây giờ, hãy làm theo các bước sau để thêm một ràng buộc mới để kiểm tra sự tồn tại của một phương thức mặt nạ khi thiết lập một cột làm cột dữ liệu riêng tư:

  1. Thêm một ràng buộc mới bằng cách sử dụng điểm mở rộng trong tệp plugin.xml, như trong Liệt kê 2.
Liệt kê 2. Sử dụng điểm mở rộng constraintProviders để thêm một ràng buộc
<!-- add a new constraint -->
<extension point="org.eclipse.emf.validation.constraintProviders">           
   <constraintProvider>
      <package namespaceUri="http:///org/eclipse/datatools/modelbase/sql/schema.ecore"/>
      <package namespaceUri="http:///org/eclipse/datatools/modelbase/sql/tables.ecore"/>
      <package namespaceUri="http:///org/eclipse/datatools/modelbase/derby/derby.ecore"/>
      <constraints
         categories="com.ibm.datatools.validation.physicalmodel/design/normalization">
         <constraint
            name="Column privacy"
            severity="WARNING"
            statusCode="10"
            class="com.ibm.extendrda.sample.validation.PrivacyDataCheck"
            lang="Java"
            mode="Batch"
            id="com.ibm.datatools.extendValidation.PrivacyDataCheck">
            <description>
               Discover columns that are defined as privacy data,
                  but do not have masking method defined
            </description>
            <param name="extraction" value="elementName"/>
            <message>
               Column {0} is defined as privacy data, 
                  but does not have a masking method defined
            </message>
            <target
               class="Column">
            </target>
         </constraint>            
      </constraints>
   </constraintProvider>         
</extension>

Đoạn mã trong Liệt kê 2 thêm ràng buộc riêng tư của cột theo thể loại thiết kế và bình thường hóa như là chế độ bó có một tính nghiêm trọng về cảnh báo, như thể hiện trong Hình 23.

Hình 23. Ràng buộc riêng tư của cột (column privacy constraint)
Ràng buộc riêng tư của cột (column privacy constraint)
  1. Thêm lớp thực hiện, như trong Liệt kê 3.
Liệt kê 3. Mã mẫu thực hiện ràng buộc riêng tư của cột
public class PrivacyDataCheck extends AbstractModelConstraint {

	public IStatus validate(IValidationContext ctx) {
		EObject target = ctx.getTarget();
		if (target instanceof Column) {
			Column col = (Column) target;
			if (isPrivateData(col) && (!hasMaskingMethod(col))) {
				ctx.addResult(col);
				return ctx.createFailureStatus(
					new Object[] { col.getName() });
			}
		}
		return ctx.createSuccessStatus();
	}

	private boolean isPrivateData(Column column) {
		EAnnotation eannotation = column
			.getEAnnotation(SamplePropertySection.SAMPLE_EANNOTAITN_NAME);
		if (eannotation == null)
			return false;
		String privacyStr = (String) eannotation.getDetails().get(
			SamplePropertySection.SAMPLE_PRIVACY_PROPERTY_NAME);
		if (privacyStr == null)
			return false;
		return Boolean.getBoolean(privacyStr);
	}

	private boolean hasMaskingMethod(Column column) {
		EAnnotation eannotation = column
			.getEAnnotation(SamplePropertySection.SAMPLE_EANNOTAITN_NAME);
		if (eannotation == null)
			return false;
		String maskingStr = (String) eannotation.getDetails().get(
			SamplePropertySection.SAMPLE_MASKING_PROPERTY_NAME);
		if ((maskingStr == null) || (maskingStr.length() <= 0))
			return false;
		return true;
	}
}

Bây giờ, nếu bạn thiết lập một cột trong mô hình SAMPLE là dữ liệu riêng tư và để trống phương thức mặt nạ của nó, bạn sẽ nhận được một cảnh báo trong khung nhìn Problem từ ràng buộc đã bổ sung khi bạn chạy Analyze Model trên SAMPLE, như trong Hình 24.

Hình 24. Một cảnh báo từ ràng buộc riêng tư của cột
Một cảnh báo từ ràng buộc riêng tư của cột

Kết luận

IDA là một công cụ mô hình hóa và tích hợp toàn diện có khả năng mở rộng rất nhiều bằng thiết kế. Trong phần 2 của loạt bài hai phần này, bạn đã học cách tạo các báo cáo mô hình có tùy chỉnh bằng cách sử dụng BIRT và thêm các ràng buộc xác nhận hợp lệ để thi hành các quy tắc nghiệp vụ. Khi bạn kết hợp những việc này với cách duyệt qua và chỉnh sửa mô IDA bằng lập trình và thêm các đặc tính tùy chỉnh từ Phần 1, bạn có thể mở rộng IDA để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu của bạn.


Lời cảm ơn

Cảm ơn Robin Raddatz, người chịu trách nhiệm về thực hiện cập nhật cho bản phát hành 07.10.2010 của bài này.

Tài nguyên

Học tập

Lấy sản phẩm và công nghệ

Thảo luận

Bình luận

developerWorks: Đăng nhập

Các trường được đánh dấu hoa thị là bắt buộc (*).


Bạn cần một ID của IBM?
Bạn quên định danh?


Bạn quên mật khẩu?
Đổi mật khẩu

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Ở lần bạn đăng nhập đầu tiên vào trang developerWorks, một hồ sơ cá nhân của bạn được tạo ra. Thông tin trong bản hồ sơ này (tên bạn, nước/vùng lãnh thổ, và tên cơ quan) sẽ được trưng ra cho mọi người và sẽ đi cùng các nội dung mà bạn đăng, trừ khi bạn chọn việc ẩn tên cơ quan của bạn. Bạn có thể cập nhật tài khoản trên trang IBM bất cứ khi nào.

Thông tin gửi đi được đảm bảo an toàn.

Chọn tên hiển thị của bạn



Lần đầu tiên bạn đăng nhập vào trang developerWorks, một bản trích ngang được tạo ra cho bạn, bạn cần phải chọn một tên để hiển thị. Tên hiển thị của bạn sẽ đi kèm theo các nội dung mà bạn đăng tải trên developerWorks.

Tên hiển thị cần có từ 3 đến 30 ký tự. Tên xuất hiện của bạn phải là duy nhất trên trang Cộng đồng developerWorks và vì lí do an ninh nó không phải là địa chỉ email của bạn.

Các trường được đánh dấu hoa thị là bắt buộc (*).

(Tên hiển thị cần có từ 3 đến 30 ký tự)

Bằng việc nhấn Gửi, bạn đã đồng ý với các điều khoản sử dụng developerWorks Điều khoản sử dụng.

 


Thông tin gửi đi được đảm bảo an toàn.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=70
Zone=Information Management, Rational
ArticleID=792734
ArticleTitle=Mở rộng InfoSphere Data Architect của IBM để đáp ứng các yêu cầu mô hình hóa và tích hợp dữ liệu cụ thể của bạn, Phần 2: Xây dựng các báo cáo tùy chỉnh và các quy tắc xác nhận hợp lệ với IDA
publish-date=10072010