2.3.1. Khái quát về Mygeneration
Mygeneration là công cụ sinh mã chƣơng trình hỗ trợ các nhà phát triển để truy cập vào lƣợc đồ cơ sở dữ liệu. Nó rất hữu hiệu trong việc xây dựng các lớp thực thể dựa trên lƣợc đồ cơ sở dữ liệu. Mygenration đặc biệt rất thích hợp trong việc xây dựng ứng dụng đa tầng, nó hỗ trợ ở tầng truy cập dữ liệu. Mygeneration hỗ trợ Microsoft SQL, Microsoft Access, Oracle, IBM DB2, MySQL, PostgreSQL, FireBird, Interbase, SQLite, và VistaDB.
Mygeneration là phần mềm miễn phí mã nguồn mở và khá hoàn chỉnh. Hỗ trợ rất nhiều loại cơ sở dữ liệu và nhiều ngôn ngữ nhƣ: C#, VB.NET, jscript, vbscript…Và hỗ trợ đầu ra cho rất nhiều ngôn ngữ. Ta có thể tự viết mẫu template
36
hoặc sử dụng mẫu của ngƣời khác. Có rất nhiều mẫu sẵn có, một số đi kèm với chƣơng trình cài đặt, nhƣng nhiều hơn có thể tài từ thƣ viện của MyGeneration.
Trong luận văn này công cụ Mygeneration được sử dụng để sinh ra các lớp truy cập vào cơ sở dữ liệu. Do cấu trúc dữ liệu khá phức tạp, mối một đơn gồm nhiều thuộc tính thông tin, cho nên việc truy cập vào dữ liệu cũng sẽ rất phức tạp, nếu tự viết mã chương trình sẽ mất rất nhiều thời gian và bị lặp lại. Vì vậy, việc sử dụng công cụ sinh tự động này giúp giải quyết vấn đề một cách đơn giản, nhanh chóng. Chúng ta không cần quan tâm đến việc truy cập dữ liệu như thế nào, cách xử lý các biệt lệ…
2.3.2. Ưu nhược điểm của công cụ Mygeneration
a. Ưu điểm
Công cụ hoàn toàn miễn phí Dễ sử dụng, chính xác
Có thƣ viện mẫu Template đa dạng
b. Nhược điểm
Do sinh tự động nên sẽ có khá nhiều đoạn mã chƣơng trình đƣợc sinh ra mà không thực sự cần, dẫn đến dƣ thừa. Có thể ảnh hƣởng đến bộ nhớ, tốc độ chƣơng trình. Tuy nhiên đó không thực sự là vấn đề vì ngày nay vấn đề bộ nhớ cũng nhƣ tốc độ bộ xử lý là đủ lớn.
2.3.3. Hướng dẫn sử dụng công cụ Mygeneration
2.3.3.1. Kết nối cơ sở dữ liệu
Hình 2.4 Màn hình thiết lập kết nối cơ sở dữ liệu. (1): tạo kết nối với cơ sở dữ liệu, (2): hiển thị nội dung để kết nối với cơ sở dữ liệu, (3): kiểm tra kết nối đã thành
37
Sau khi kết nối thành công với cơ sở dữ liệu, lƣợc đồ cơ sở dữ liệu sẽ đƣợc hiển thị trong màn hình MyMeta.
Hình 2.5 Màn hình MyMeta
2.3.3.2. Sinh mã các lớp truy cập cơ sở dữ liệu
Tạo mã để cập nhật dữ liệu một bảng trong hệ cơ sở dữ liệu Chọn template tƣơng ứng
Chạy chƣơng trình, đặt output vào thƣ mục DAL trong project của bạn, chọn bảng muốn thực hiện, khi đó hệ thống sẽ tự động sinh ra các lớp trừu tƣợng tƣơng ứng mỗi bảng.
Tạo các views
Chọn template tƣơng ứng (ví dụ: Doodads Business View)
Chạy template, đặt output vào thƣ mục BLL trong project của bạn, chọn views mà bạn muốn, khi đó các lớp tƣơng ứng sẽ đƣợc tự động sinh ra
2.3.3.3. Các lệnh cơ bản gọi hàm chức năng của các lớp đã sinh
Khởi tạo một đối tượng bảng: Employees emps = new Employees(); Lấy tất cả các rows: emps.LoadAll();
Lấy tất cả các rows theo khóa chính: emps.LoadByPrimaryKey(empID); Insert một bản ghi:
Emps.AddNew();
Emps.LastName= "Smith";
emps.HireDate = DateTime.Now; emps.Save();
empID = emps.EmployeeID; //emps returns new key value Xóa bản ghi
38
emps.Save(); Cập nhật bản ghi
emps.LastName = "Jones"; emps.Save();
Get number of rows TOC emps.RowCount;
Duyệt các bản ghi theo vòng lặp
if(emps.RowCount> 0) {
emps.Rewind(); //move to first record do
{
//do something with the current row } while(emps.MoveNext());
}
Sắp xếp dữ liệu theo một trường dữ liệu
emps.Sort= Employees.ColumnNames.LastName + " DESC"; Lọc dữ liệu
emps.Filter= Employees.ColumnNames.LastName + " LIKE A%"; Định nghĩa kết nối cơ sở dữ liệu:
emps.ConnectionString=
"User=me;Password=pw;Database=Employees;DataSource=MyServer" Lấy dữ liệu các bản ghi
emps.Where.LastName.Value= "%A%";
emps.Where.LastName.Operator= WhereParameter.Operand.Like; //Note: Conjuction not Conjunction
emps.Where.HireDate.Conjuction= WhereParameter.Conj.Or;
emps.Where.HireDate.BetweenBeginValue= "2001-01-01 00:00:00.0"; emps.Where.HireDate.BetweenEndValue= "2001-12-31 23:59:59.9"; emps.Where.HireDate.Operator= WhereParameter.Operand.Between; emps.Query.Load();
Giới hạn trường dữ liệu trong bảng
emps.Query.AddResultColumn(Employees.ColumnNames.EmployeeID); emps.Query.AddResultColumn(Employees.ColumnNames.LastName);
39 emps.Query.Load(); Order By emps.Query.AddOrderBy(Employees.ColumnNames.HireDate, WhereParameter.Dir.DESC); Select Distinct emps.Query.Distinct= true; Select Top N emps.Query.Top= 10;
Dấu mở ngoặc đóng ngoặc (Parentheses)
emps.Query.OpenParenthesis(); emps.Query.CloseParenthesis(); Trả dữ liệu cho reader
SqlDataReader reader = emps.Query.ReturnReader() as SqlDataReader;
2.4. Công cụ TestWord
TestWord là thƣ viện mở đƣợc viết để điều khiển dữ liệu đầu ra của các tệp tin văn bản dựa trên bookmark (đánh dấu văn bản) từ các mẫu Template có sẵn. Do đặc tính của bài toán yêu cầu: tạo các file công báo có dữ liệu lớn bao gồm rất nhiều đơn, nhƣng mỗi đơn đều có các thuộc tính giống nhau. Hơn nữa bài toán cũng đặt ra phải tạo công cụ hỗ trợ các xét nghiệm viên soạn thảo Công văn (tiếng pháp) và lập phiếu thẩm định. Các loại tài liệu này đều cần trích xuất dữ liệu thông tin đơn và phải đúng chuẩn mẫu văn bản. Vì vậy, việc sinh dữ liệu tự động theo mẫu Template định nghĩa sẵn là rất thích hợp, nhờ vậy việc tạo ra các loại tài liệu này trở nên đơn giản, nhanh chóng.
2.4.1 Một số hàm chính trong thư viện TestWord
Thƣ viện hỗ trợ rất nhiều hàm để có thể soạn thảo đƣợc văn bản, dƣới đây là một số hàm cơ bản:
AddBmk(string bmkName): thêm đánh dấu trong văn bản.
GotoBmk(string bmkName): con trỏ đến tên bookmark đƣợc đánh dấu. Copy(): sao chép dữ liệu.
Cut(): cut dữ liệu DelBack(): xóa trƣớc DelWord(): xóa kí tự
Bool FinStr(string findStr,bool mchCase, bool mchWhole,bool mchUpdown): tìm kiếm chuỗi kí tự.
40
GotoBmkIns(string bmkName, string valStr): đi đến bookmark và thêm chuỗi kí tự
GotoBmkInsDel(string bmkName, string valStr): đi đến bookmark và xóa chuỗi kí tự ViewHeader() ViewFooter() ViewMain() GetNumofPage() InsFooter(string valStr) InsPic(string valStr) MoveRight() MovePro() MoveDown() MoveUp() …
2.5. Công nghệ XSLT - Ngôn ngữ định kiểu mở rộng chuyển đổi (Extensible Stylesheet Language Transformations) đổi (Extensible Stylesheet Language Transformations)
Do dữ liệu đơn đƣợc tải về từ Văn phòng quốc tế đều đƣợc lƣu trong file XML (theo chuẩn MECA) nên các xét nghiệm viên không thể hiểu nội dung các file này. Mặt khác khi làm phiếu thẩm định, cần phải có đính kèm tài liệu đơn nên việc hiển thị thông tin đơn sang dạng hiểu đƣợc là rất cần thiết. Chính vì vậy mà công nghệ XLST đƣợc sử dụng để chuyển đồi định dạng XML sang dạng HTML.
2.5.1. Khái niệm
Ngôn ngữ định kiểu mở rộng chuyển đổi (Extensible Stylesheet Language Transformations - XSLT) cung cấp cách chuyển đổi dữ liệu XML từ dạng này sang dạng khác một các tự động. Định dạng muốn chuyển sang thƣờng có thể là là một tài liệu XML; bạn có thể chuyển đổi dữ liệu XML sang bất cứ dạng gì bằng cách tạo ra các bảng định kiểu XSLT và thực hiện chuyển đổi dữ liệu. Nếu bạn muốn thay đổi định dạng đích, bạn chỉ việc thay đổi bảng định kiểu XSLT và thực hiện việc chuyển đổi lần nữa. Điều này rất hiệu cho những ngƣời không phải là lập trình viên, ví dụ nhƣ nhà thiết kế, họ có thể thay đổi XSLT để có đƣợc kết quả nhƣ ý.
41
2.5.2. Quy tắc chung
Bản thân XSL cũng là một XML well-formed nhƣng nó chứa những lệnh của chính nó và dữ liệu HTML dùng y nguyên cho dữ liệu ra. Vì vậy chúng ta phải tuân thủ mọi quy tắc của một XML well-formed.
Để trình phân tích XML nhận diện đƣợc các lệnh của XSL thì chúng ta cần phải khai báo một namespace trong phần tử gốc. Một style sheet thƣờng chứa một trong hai namespace:
Namespace nguyên thủy: http://www.w3.org/TR/WD-xsl
Namespace của XSLT: http://www.w3.org/1999/XSL/Transform
Phần tử gốc trong tài liệu XSL thƣờng là một phần tử xsl:stylesheet, nó chứa một hay nhiều phần tử xsl:template.
Ví dụ, chúng ta có file test.xsl sau:
Thuộc tính match trong phần tử template để chỉ ra node xuất phát.
Để tham chiếu file một tài liệu xsl vào trong tài liệu XML bằng cách thêm vào đầu tài liệu XML dòng:
Trong đó URI/URL là địa chỉ của tài liệu xsl mà chúng ta muốn tham chiếu.
2.6. Chuẩn MECA
Do việc trao đổi thông tin đơn giữa văn phòng quốc tế với các quốc gia thành viên là thƣờng xuyên, nên việc trao đổi thông tin thông qua đƣờng bƣu điện sẽ có rất nhiều hạn chế nhƣ: Kinh phí vận chuyển, có khả năng trục trặc không đảm bảo thời gian (đối với nộp đơn nhãn hiệu thì thời gian rất quan trọng, nếu chậm trễ ngƣời nộp đơn sẽ chịu thiệt, họ có thể kiện tổ chức)…Chính vì vậy, cùng với sự phát triển của công nghệ thông tin, internet phát triển nên Văn phòng quốc tế đã đề
42
ra chuẩn MECA cho dữ liệu đơn, để việc trao đổi thông tin đơn đƣợc dễ dàng trên mạng Internet.
2.6.1. MECA là gì
MECA – Madrid Electronic CommunicAtions : Là chuẩn trao đổi dữ liệu nhãn hiệu điện tử do Văn phòng quốc tế xây dựng.
MECA đƣợc xây dựng trên ngôn ngữ SGML (Standard Generalized Markup Language). Thực tế MECA chỉ sử dụng kỹ thuật “thẻ dữ liệu” và cấu trúc của SGML mà không sử dụng kỹ thuật định dạng dữ liệu của SGML.
MECA cũng sử dụng file DTD (Document Type Definition) để định nghĩa cấu trúc dữ liệu.
2.6.2. Áp dụng MECA với đơn nhãn hiệu quốc tế
MECA đƣợc áp dụng cho cả hai loại đơn: Thoả ƣớc Madrid (Madrid Agreement) và Nghị định thƣ Madrid (Madrid Protocol).
Trƣớc hết cần phân biệt các chủ thể liên qua đến một đơn nhãn hiệu quốc tế, đó là :
Ngƣời nộp đơn
Cơ quan SHTT của Ngƣời nộp đơn (Cơ quan SHTT yêu cầu bảo hộ) Văn phòng quốc tế
Cơ quan SHTT của nƣớc đƣợc chỉ định (Cơ quan SHTT nhận yêu cầu bảo hộ). Văn phòng quốc tế dùng định dạng MECA trong việc trao đổi dữ liệu điện tử nhãn hiệu quốc tế hai chiều giữa Văn phòng quốc tế và các Cơ quan sở hữu trí tuệ thành viên:
Công báo điện tử (ROMARIN),Thông báo điện tử.
Dữ liệu mà Văn phòng quốc tế cung cấp trên máy chủ FTP cho các Cơ quan sở hữu trí tuệ thành viên thuộc loại thông báo điện tử.
Thông báo điện tử của đơn nhãn hiệu quốc tế bao gồm tất cả các thông báo điện tử gửi tới một Cơ quan sở hữu trí tuệ về tất cả các sự kiện tác động đến những đơn liên quan tới Cơ quan sở hữu trí tuệ đó.
Mỗi một Cơ quan sở hữu trí tuệ thành viên có một thƣ mục riêng (folder) trên máy chủ FTP.
43
Mỗi tuần, Văn phòng quốc tế đƣa lên thƣ mục của Việt Nam một file nén (zip), trong đó là tất cả các thông báo về tất cả các sự kiện của tất cả các đơn liên quan đến Việt Nam trong tuần đó –file này có định dạng là MECA.
Hiện tại có 11 loại sự kiện (tƣơng ứng với 11 loại giao dịch) có thể sảy ra đối với một đơn nhãn hiệu quốc tế trong vòng đời của nó, bao gồm : BIRTH, CREATED, DEATH, NEWBASE, NEWNAME, PROCESSED, PROLONG, RESTRICT, CORRECTION, LICENCE-BIRTH, LICENCE-NEWNAME.
Trong mỗi một loại giao dịch trên lại đƣợc phân chia thành các kiểu giao dịch cấp độ nhỏ hơn nhƣ sau (trong ngoặc là số phân loại giao dịch nhỏ hơn) : BIRTH (5 loại), CREATED (2 loại), DEATH (8 loại), NEWBASE (1 loại), NEWNAME (5 loại), PROCESSED (40 loại), PROLONG (3 loại), RESTRICT (5 loại), CORRECTION (lặp lại tất các các giao dịch trên), LICENCE-BIRTH (1 loại), LICENCE-NEWNAME (1 loại).
Phân tích trên cho thấy rằng : Số lƣợng phân loại giao dịch rất lớn và phức tạp, cần phải tìm hiểu và phân tích kỹ về ý nghĩa nghiệp vụ của từng loại thì mới đƣa ra đƣợc phƣơng pháp xử lý số liệu đúng đắn.
Ví dụ sau xem xét một đơn nhãn hiệu quốc tế cụ thể nộp vào Việt Nam :
Khi đơn đƣợc Ngƣời nộp đơn chỉ định vào Việt Nam – tƣơng ứng sự kiện BIRTH và CREATED : Văn phòng quốc tế gửi thông báo BIRTH cho Việt Nam và thông báo CREATED cho Cơ quan SHTT yêu cầu bảo hộ.
Khi đơn hết hiệu lực bảo hộ – tƣơng ứng sự kiện DEATH, Văn phòng quốc tế gửi thông báo DEATH cho Việt Nam.
Khi đơn gia hạn – tƣơng ứng sự kiện PROLONG, Văn phòng quốc tế gửi thông báo PROLONG cho Việt Nam.
Khi đơn đƣợc tách – tƣơng ứng sự kiện NEWBASE, Văn phòng quốc tế gửi thông báo NEWBASE cho Việt Nam.
Khi đơn đƣợc chuyển đổi chủ – tƣơng ứng sự kiện NEWNAME, Văn phòng quốc tế gửi thông báo NEWNAME cho Việt Nam.
Khi đơn đƣợc hạn chế bảo hộ – tƣơng ứng sự kiện RESTRICT, Văn phòng quốc tế gửi thông báo RESTRICT cho Việt Nam.
Khi đơn đƣợc hạn chế bảo hộ – tƣơng ứng sự kiện RESTRICT, Văn phòng quốc tế gửi thông báo RESTRICT cho Việt Nam.
Khi một yêu cầu về đơn đƣợc Văn phòng quốc tế xử lý – tƣơng ứng sự kiện PROCESSED, Văn phòng quốc tế gửi thông báo PROCESSED cho Cơ quan SHTT đƣa ra yêu cầu.
44
Khi thông tin của đơn đƣợc Văn phòng quốc tế sửa đổi (do sai sót xử lý dữ liệu) – tƣơng ứng sự kiện CORRECTION, Văn phòng quốc tế gửi thông báo CORRECTION cho các Cơ quan SHTT liên quan.
Nhƣ vậy, bằng các Thông báo điện tử của đơn nhãn hiệu quốc tế , toàn bộ lịch sử của mỗi đơn nhãn hiệu quốc tế sẽ đƣợc cập nhật trong cơ sở dữ liệu của các chủ thể liên quan đến đơn đó.
45
Chƣơng 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 3.1. Xác định ca sử dụng và tác nhân
3.1.1. Các ca sử dụng
Bảng 3.1: Bảng các ca sử dụng
3.1.2. Các tác nhân hệ thống
Trong trƣờng hợp này khái quát các tác nhân nghiệp vụ (phần 1.4.3) cho ta các tác nhân của hệ thống.
Mã Tên ca sử dụng Chức năng
tham chiếu Kết quả đạt đƣợc: sản phẩm/dịch vụ UC1 Tìm và xử lý dữ liệu đơn R1 nhận đƣợc Dữ liệu đơn UC2 Cập nhật dữ liệu R2 Dữ liệu đơn đƣợc lƣu trữ
UC3 Chia đơn R3 Chuyên viên có đơn
UC4 Ký duyệt công văn R4 Công văn đƣợc duyệt UC5 Làm phiếu thấm định R5 Phiếu thẩm định UC6 Làm công văn từ chối R6 Công văn mới
UC7 Tạo công bố R7 Bản công bố mới
UC8 Tạo công báo đơn gia hạn R8 Bản công báo gia hạn mới UC9 Thống kê các tiêu chí R9 Các bản thống kê
46 3.2. Đặc tả hệ thống 3.1.1. Biểu đồ đặc tả hệ thống - Biểu đồ ca sử dụng gộp a. Biểu đồ Hình 3.1 : Biểu đồ ca sử dụng ở mức cao b. Đặc tả các hệ con
b1. Thu thập và lưu trữ đơn
Tác nhân: Chuyên viên, Lãnh đạo, văn phòng quốc tế, hệ quản trị đơn quốc gia.
Mục tiêu: Thu thập và xử lý thông tin đơn đƣa vào hệ cơ sở dữ liệu. Tiền điều kiện: đã có các đơn từ văn phòng quốc tế
Mô tả khái quát: Chuyên viên tìm kiếm đơn từ văn phòng quốc tế , xử lý và cập nhật vào hệ cơ sở dữ liệu.
Hậu điều kiện: Các đơn mới đƣợc cập nhật vào cơ sở dữ liệu quốc gia
b2.Xử lý đơn
Tác nhân: Lãnh đạo, chuyên viên, hệ quản trị đơn quốc gia . Mục tiêu: tiến hành xử lý các đơn có đƣợc theo yêu cầu. Tiền điều kiện: Có danh sách đơn để chia đơn.
Hệ quản trị đơn quốc gia <<HỆ THỐNG>> Thu thập và lƣu trữ đơn Xử lý đơn nhãn hiệu Văn phòng quốc tế Thống kê và tính phí Chuyên viên Lãnh đạo
47
Mô tả khái quát: lãnh đạo phân chia đơn cho xét nghiệm viên, các nhân viên xử lý và các công việc liên quan, lãnh đạo ký duyệt.
Hậu điều kiện: Các đơn đƣợc xử lý, đáp ứng đƣợc yêu cầu đề ra.
b3. Thống kê, tính phí
Tác nhân: chuyên viên
Mục tiêu: Có đƣợc các số liệu thống kê theo yêu cầu. Tiền điều kiện: có dữ liệu đơn và kết quả xử lý chúng.
Mô tả khái quát: Chuyên viên tiến hành thống kê các dữ liệu về đơn và tính phí cho các hoạt động đã thực hiện.
Ràng buộc: tuân thủ công thức tính phí, và các mẫu thống kê cho trƣớc. Hậu điều kiện: có đƣợc các mảng thống kê và chi phí cho các hoạt động
xử lý
3.1.2. Biểu đồ ca sử dụng chi tiết các hệ con
3.1.2.1. Đặc tả yêu cầu hệ con Thu thập và lưu trữ đơn
a. Biểu đồ ca sử dụng
Hình 3.2 : Biểu đồ chi tiết ca sử dụng gói Thu thập và lƣu trữ đơn