BẢNG CÁC CHỮ VIẾT TẮT DTD Document Type Definition – Định nghĩa kiểu tài liệu CP Chính phủ HT Hệ thống MVC Model – View – Controller MECA Madrid Electronic communicAtion Chuẩn trao đổi d
Trang 1KHUNG LÀM VIỆC VÀ ỨNG DỤNG XÂY DỰNG
HỆ THỐNG QUẢN TRỊ ĐƠN NHÃN HIỆU
LUẬN VĂN THẠC SĨ
HÀ NỘI 2012
Trang 2Lời cảm ơn
Trước tiên em xin được bày tỏ sự trân trọng và lòng biết ơn đối với thày giáo PGS.TS… giảng viên Bộ môn Công nghệ phần mềm – Khoa Công nghệ thông tin – Trường Đại học Công nghệ - ĐHQGHN Trong suốt thời gian học và làm luận văn (khóa luận) tốt nghiệp, thầy đã dành rất nhiều thời gian quí báu để tận tình chỉ bảo, hướng dẫn, định hướng cho em trong việc nghiên cứu, thực hiện luận văn
Em xin được cảm ơn các GS, TS… đã giảng dạy em trong quá trình học tập, (thực hành, làm bài tập,) đọc và nhận xét luận văn của em, giúp em hiểu thấu đáo hơn lĩnh vực mà em nghiên cứu, những hạn chế mà em cần khắc phục trong việc học tập, nghiên cứu và thực hiện bản luận văn này
Tôi cũng xin chân thành cảm ơn
Xin cảm ơn các bạn bè, đồng nghiệp và nhất là các thành viên trong gia đình
đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ tôi trong suốt quá trình học và làm luận văn tốt nghiệp
KHUNG LÀM VIỆC VÀ ỨNG DỤNG XÂY DỰNG
HỆ THỐNG QUẢN TRỊ ĐƠN NHÃN HIỆU
Ngành: CÔNG NGHỆ THÔNG TIN
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
LỜI CAM ĐOAN 2
MỤC LỤC 3
MỞ ĐẦU 8
BẢNG CÁC CHỮ VIẾT TẮT 5
Chương 1: BÀI TOÁN QUẢN TRỊ ĐƠN NHÃN HIỆU QUỐC TẾ VÀ MÔ HÌNH NGHIỆP VỤ 10
1.1 Giới thiệu Cục sở hữu trí tuệ 10
1.1.1 Nhiệm vụ và mục tiêu hoạt động của Cục Sở hữu trí tuệ 10
1.1.2 Mô hình tổ chức và quản lý 12
1.2 Mô tả bài toán 13
1.2.1 Mô tả khái quát 13
1.2.2 Các hoạt động nghiệp vụ 14
1.2.3 Những khó khăn, trở ngại của việc quản lý các đơn nhãn hiệu quốc tế 16
1.2.4 Giải pháp cho các vấn đề đặt ra 17
1.3 Nghiên cứu hệ thống và những yêu cầu đặt ra cho nó 18
1.3.1 Mô hình nghiệp vụ 19
Chương 2: CÔNG NGHỆ, PHƯƠNG PHÁP VÀ CÔNG CỤ 25
2.1.Tổng quan về FRAMEWORK 25
2.1.1 Định nghĩa 25
2.1.2 Cấu trúc của một khung làm việc 26
2.1.3 Các đặc điểm của khung làm việc 27
2.1.4 Phân loại khung làm việc 28
2.2 Mô hình MVC (Model-Control-View) 32
2.2.1 Khái niệm 32
2.2.2 Sự tương tác giữa các thành phần của MVC 34
2.2.3 Một số đặc điểm của MVC 34
2.3 Công cụ Mygeneration 35
2.3.1 Khái quát về Mygeneration 35
2.3.2 Ưu nhược điểm của công cụ Mygeneration 36
2.3.3 Hướng dẫn sử dụng công cụ Mygeneration 36
2.4 Công cụ TestWord 39
2.4.1 Một số hàm chính trong thư viện TestWord 39
2.5 Công nghệ XSLT - Ngôn ngữ định kiểu mở rộng chuyển đổi (Extensible Stylesheet Language Transformations) 40
2.5.1 Khái niệm 40
2.5.2 Quy tắc chung 41
Trang 42.6 Chuẩn MECA 41
2.6.1 MECA là gì 42
2.6.2 Áp dụng MECA với đơn nhãn hiệu quốc tế 42
Chương 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 45
3.1 Xác định ca sử dụng và tác nhân 45
3.1.1 Các ca sử dụng 45
3.1.2 Các tác nhân hệ thống 45
3.2 Đặc tả hệ thống 46
3.1.1 Biểu đồ đặc tả hệ thống - Biểu đồ ca sử dụng gộp 46
3.1.2 Biểu đồ ca sử dụng chi tiết các hệ con 47
3.3 Phân tích hệ thống 54
3.3.1 Gói ca sử dụng Thu thập và lưu trữ đơn 54
3.3.2 Gói ca sử dụng Xử lý đơn 56
3.3.3 Gói ca sử dụng Thống kê, tính phí 64
3.4 Biểu đồ lớp thiết kế hệ thống 67
3.5 Thiết kế cơ sở dữ liệu 68
3.5.1 Các dữ liệu cho quản lý thông tin đơn 68
3.5.2 Các dữ liệu cho quản lý giao đơn 71
3.5.2 Các dữ liệu phục vụ lập phiếu thẩm định, tạo công văn, ký duyệt công văn 72
3.5.3 Các dữ liệu phục vụ tạo công bố, công báo 73
3.5.3 Các dữ liệu phục vụ tạo thống kê 74
3.5.4 Các dữ liệu phục vụ quản trị người dùng 74
3.5.5 Các dữ liệu khác 75
Chương 4: CÀI ĐẶT HỆ THỐNG VÀ HƯỚNG DẪN SỬ DỤNG 77
4.1 Môi trường vận hành của hệ thống 77
4.1.1 Kiến trúc hệ thống phần cứng đầy đủ 77
4.1.2 Hệ thống phần mềm nền 77
4.1.3 Các hệ con và mô tả chức năng tương ứng 78
4.2 Giới thiếu hệ thống phần mềm 79
4.2.1 Hệ thống thực đơn chính 79
4.2.2 Các hệ thống thực đơn con 79
4.2.3 Một số kết quả đầu ra tiêu biểu 80
KẾT LUẬN 85
TÀI LIỆU THAM KHẢO 86
Trang 5BẢNG CÁC CHỮ VIẾT TẮT
DTD Document Type Definition – Định nghĩa kiểu tài liệu
CP Chính phủ
HT Hệ thống
MVC Model – View – Controller
MECA Madrid Electronic communicAtion (Chuẩn trao đổi dữ liệu điện tử) NOIP National Office of Intellectual Property Viet Nam – Cục SHTT
XML eXtensible Markup Language
XSLT Extensible Stylesheet Language Transformations – Ngôn ngữ định
kiểu mở rộng chuyển đổi SGML Standard Generalized Markup Language – ngôn ngữ chuẩn đánh dấu SHTT Sở hữu trí tuệ
WIPO Văn phòng quôc tế
DANH SÁCH CÁC BẢNG VÀ HÌNH VẼ
Hình 1.2 Biểu đồ hoạt động tổng thể của hệ thống 14
Hình 1.4 Biểu đồ tiến trình giải quyết một đơn nhãn quốc tế 20
Bảng 2.1 Mối quan hệ giữa các thành phần trong khung làm việc 27
Trang 6Hình 3.2 Biểu đồ ca sử dụng của gói Thu thập và lưu trữ đơn 47
Hình 3.4 Biểu đồ ca sử dụng của gói Xét nghiệm đơn 52 Hình 3.5 Biểu đồ tuần tự ca sử dụng Tìm và xử lý dữ liệu 54 Hình 3.6 Biểu đồ tuần tự ca sử dụng Cập nhật dữ liệu 55 Hình 3.7 Giao diện ca sử dụng Tìm và xử lý dữ liệu 55 Hình 3.8 Giao diện ca sử dụng Cập nhật dữ liệu 56
Hình 3.10 Biểu đồ tuần tự ca sử dụng Ký duyệt công văn 57 Hình 3.11 Biểu đồ tuần tự ca sử dụng Lập phiếu thẩm định 58 Hình 3.12 Biểu đồ tuần tự ca sử dụng Làm công văn 59 Hình 3.13 Biểu đồ tuần tự ca sử dụng Tạo công bố 60 Hình 3.14 Biểu đồ tuần tự ca sử dụng Tạo công báo đơn gia hạn 61
Hình 3.16 Giao diện ca sử dụng Ký duyệt công văn 62 Hình 3.17 Giao diện ca sử dụng Làm phiếu thẩm định, công văn từ chối 63
Hình 3.21 Giao diện Thống kê sản lượng đơn xét nghiệm 65 Hình 3.22 Giao diện Thống kê đơn chỉ định Việt Nam 66 Hình 3.23 Giao diện Thống kê đơn được chấp nhận bảo hộ 66
Hình 3.25 Biểu đồ thiết kê lớp vật lý của hệ thống 67
Trang 7Hình 4.6 Màn hình công văn từ chối 82 Hình 4.7 Màn hình thống kê danh sách đơn chỉ định Việt Nam 82 Hình 4.8 Màn hình thống kê sản lượng xét nghiệm đơn 83 Hình 4.9 Màn hình thông tin đơn dưới dạng HTML 83 Hình 4.10 Màn hình một phần tài liệu công bố đơn 84
Trang 8có rất nhiều điểm chung Công nghệ Framework không phải là công nghệ mới, nhưng nó vẫn luôn được phát triển và hoàn thiện và nó không bao giờ bị coi là công nghệ cũ Nó như một kim chỉ nam mà tất cả các nhà sản xuất phần mềm hướng tới Xây dựng một Framework cho một lĩnh vực chung sẽ tiết kiệm được rất nhiều chi phí sản xuất, dựa trên Framework đó các nhà phát triển có thể xây dựng được rất nhiều phần mềm hỗ trợ nghiệp vụ với đặc trưng riêng của nó Để một Framework
có nhiều ưu điểm, nhất là có khả năng mở rộng, sử dụng lại thì một trong những mô hình phần mềm được áp dụng đó là mô hình MVC (Model-View-Controller) – nó được tổng hợp từ rất nhiều mẫu thiết kế nhỏ hơn, và được coi là mẫu hoàn chỉnh, có nhiều ưu điểm nhất Với đặc trưng phân lớp Model (mô hình) View (hiển thị, giao diện người dùng) và Controller (điều khiển), mô hình MVC đem lại hiệu quả rất cao trong việc phát triển, mở rộng, sử dụng lại… phần mềm
Với những ưu điểm, lợi ích to lớn mà các công nghệ trên tuy không phải là mới đương thời, nhưng nó luôn là các công nghệ không bao giờ cũ, và luôn được ứng dụng đi cùng với sự phát triển của công nghệ thông tin, có thể coi đó là những công nghệ đánh dấu bước phát triển vượt bậc của công nghệ thông tin Chính vì vậy luận văn này sẽ tìm hiểu những nét đặc trưng của công nghệ trên và ứng dụng vào xây dựng một bài toán cụ thể để chúng ta thấy rằng với bất kì bài toán nào, tuy có những đặc trưng nghiệp vụ riêng, nhưng khi áp dụng các công nghệ trên ta thấy bài toán trở nên đơn giản và rõ ràng hơn rất nhiều Bài toán đưa ra ở đây là xây dựng một phần mềm để hỗ trợ nghiệp vụ trong cơ quan Sở hữu trí tuệ Với yêu cầu cấp thiết của công việc xét nghiệm đơn quốc tế đảm bảo đúng thời hạn, số lượng đơn ngày càng lớn, sự trao đổi thông tin với quốc tế có những đặc trưng mới như dữ liệu trao đổi thông qua mạng Internet theo chuẩn họ đưa ra…, nên việc xây dựng hệ thông hỗ trợ nghiệp vụ trên là vô cùng cấp thiết và quan trọng Hệ thống quản lý đơn nhãn hiệu quốc tế có những đặc trưng là: dữ liệu mang đặc trưng riêng, nhiều trường dữ liệu; cần soạn thảo những mẫu văn bản có nội dung trình bày đặc biệt và
Trang 9khối lượng dữ liệu hiển thị khá lớn…Vì vậy mà việc áp dụng mô hình MVC cho hệ thống là rất hợp lý, có thể tích hợp được nhiều công cụ đối với mỗi tầng
Nội dung chính của luận văn gồm 4 chương:
Chương 1: Mô tả bài toán và giải pháp Trong chương này trình bày vấn đề
của tổ chức Sở hữu trí tuệ, bài toán đặt ra là xây dựng phần mềm hỗ trợ nghiệp vụ quản trị xét nghiệm đơn quốc Đề xuất phương án: mô hình hệ thống sẽ xây dưng và công nghệ sử dụng, kiến trúc phần mềm và các chức năng của hệ thống
Chương 2: Trình bày một số vấn đề cơ bản về lý thuyết và công nghệ được sử
dụng để giải quyết bài toán: công nghệ Framework và mô hình MVC Controller), và một số công cụ tích hợp vào hệ thống như Mygeneration (công cụ sinh mã truy cập lược đồ cơ sở dữ liệu, hỗ trợ tầng Model), công cụ TestWord (thư viện hỗ trợ soạn thảo văn bản theo mẫu Template định sẵn, hỗ trợ tầng View và Controller), công nghệ XSLT (Extensible Stylesheet Language Transformations – Ngôn ngữ định kiểu mở rộng chuyển đổi – hỗ trợ chuyển đổi định dạng XML sang HTML, hỗ trợ tầng View), và chuẩn định dạng MECA (Madrid Electronic CommunicAtion – 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)
(Model-View-Chương 3: Phân tích và thiết kế hệ thống theo định hướng đối tượng và công
Trang 10Chương 1: BÀI TOÁN QUẢN TRỊ ĐƠN NHÃN HIỆU
QUỐC TẾ VÀ MÔ HÌNH NGHIỆP VỤ
Cục sở hữu trí tuệ được thành lập năm 1982 có nhiệm vụ chính là bảo hộ quyền
sở hữu công nghiệp (kiểu dáng công nghiệp, sáng chế, giải pháp hữu ích và sáng chế) Với số lượng đơn nộp vào càng ngày càng nhiều nên yêu cầu đặt ra phải xét nghiệm đơn (Đưa ra kết luận đơn có được bảo hộ hay không) đúng thời hạn Với những ưu điểm mà công nghệ thông tin đem lại Cục đang từng bước ứng dụng công nghệ thông tin để tự động hóa công việc, hỗ trợ công việc đạt kết quả cao nhất Việc xét nghiệm đơn nhãn hiệu quốc tế là một mảng công việc rất quan trọng, số lượng đơn chỉ định vào Việt Nam ngày càng lớn vì vậy việc xây dựng một hệ thống quản trị đơn nhãn hiệu quốc tế là rất cần thiết Trong chương này sẽ mô tả bài toán đặt ra và giải pháp
1.1 Giới thiệu Cục sở hữu trí tuệ
1.1.1 Nhiệm vụ và mục tiêu hoạt động của Cục Sở hữu trí tuệ
a Sự hình thành của cục Cục Sở hữu trí tuệ
Ngày 29/7/1982, Hội đồng Bộ trưởng ban hành Nghị định số 125/HĐBT về việc sửa đổi tổ chức bộ máy của ủy ban Khoa học và Kỹ thuật Nhà nước trong đó có Cục Sáng chế là một đơn vị trực thuộc Và, Ngày 29/7 đã chính thức trở thành ngày thành lập Cục Sáng chế, sau đó là Cục Sở hữu công nghiệp và Cục Sở hữu trí tuệ ngày nay Theo Điều lệ tổ chức và Hoạt động thì Cục Sáng chế được xây dựng trên cơ sở Phòng Sáng chế phát minh, có trách nhiệm giúp Chủ nhiệm ủy ban thực hiện chức năng thống nhất quản lý hoạt động sáng kiến, sáng chế và công tác sở hữu công nghiệp trong cả nước, bảo hộ pháp lý sáng chế và các đối tượng sở hữu công nghiệp; Cục có
05 phòng chuyên môn, nghiệp vụ Tuy nhiên, trong thời kỳ đầu, Cục chưa thành lập các phòng mà vẫn tiếp tục duy trì các tổ chuyên môn
Khi mới thành lập, Cục có 27 cán bộ, được tổ chức thành 02 tổ chuyên môn: Tổ Quản lý và Tổ Thông tin
Ngày 22/5/1993, Chính phủ ban hành Nghị định số 22-CP quy định chức năng, nhiệm vụ, quyền hạn và tổ chức bộ máy của Bộ Khoa học, Công nghệ và Môi trường Theo đó, Cục Sáng chế được đổi tên thành Cục Sở hữu công nghiệp
Trang 11Cục đã tổ chức lại các hoạt động chuyên môn, nghiệp vụ, thống nhất các thủ tục xác lập quyền theo nguyên tắc một đầu mối; củng cố các Phòng chuyên môn, nghiệp
b Chức năng nhiệm vụ của Cục Sở hữu trí tuệ
Cục Sở hữu trí tuệ là cơ quan trực thuộc Bộ Khoa học và Công nghệ, thực hiện chức năng thống nhất quản lý nhà nước và đảm bảo các hoạt động sự nghiệp chuyên ngành về sở hữu trí tuệ (SHTT) Cục Sở hữu trí tuệ có 19 nhiệm vụ chính Tuy nhiên
có thể khái quát thành 5 nhiệm vụ trọng tâm cơ bản sau:
Chủ trì, phối hợp với các cơ quan có liên quan xây dựng và hoàn thiện hệ thống văn bản pháp luật về SHTT; xây dựng chiến lược, quy hoạch, kế hoạch, chương trình, dự án, biện pháp đẩy mạnh hoạt động và phát triển hệ thống SHTT trong phạm vi cả nước;
Thực hiện chức năng quản lý nhà nước trong việc xác lập và bảo vệ quyền SHTT tại Việt Nam cho các tổ chức, cá nhân;
Thực hiện các hoạt động hợp tác quốc tế về SHTT;
Hướng dẫn, chỉ đạo nghiệp vụ chuyên môn về SHTT cho các cơ quan quản lý SHTT thuộc các Bộ, ngành và địa phương trong cả nước;
Thực hiện chức năng bảo đảm các hoạt động sự nghiệp chuyên ngành: tuyên truyền, phổ biến, giáo dục pháp luật về SHTT; đào tạo, bồi dương chuyên môn, nghiệp vụ, nghiên cứu khoa học về SHTT; hỗ trợ và tư vấn về thủ tục xác lập, quản lý, sử dụng và chuyển giao, chuyển nhượng giá trị quyền SHTT; xây dựng, quản lý và tổ chức khai thác cơ sở dữ liệu thông tin sở hữu công nghiệp
c Cơ cấu tổ chức của Cục Sở hữu trí tuệ
Cục Sở hữu trí tuệ có 19 đơn vị trực thuộc, trong đó có 17 đơn vị làm việc tại Cơ quan Cục (384-386, Nguyễn Trãi, Hà Nội) và 2 Văn phòng Đại diện của Cục tại thành phố Hồ Chí Minh và thành phố Đà Nẵng; Cục được phân thành 2 khối: khối quản lý nhà nước gồm các đơn vị: Văn phòng, Phòng Tổ chức cán bộ, Phòng Pháp chế và Chính sách, Phòng Hợp tác quốc tế, Phòng Thực thi và Giải quyết khiếu nại, Phòng Công nghệ thông tin, Phòng Đăng ký, Văn phòng Đại diện của Cục tại thành phố Hồ
Trang 12Chí Minh, Văn phòng Đại diện của Cục tại thành phố Đà Nẵng và khối sự nghiệp phục
vụ công tác quản lý nhà nước gồm các đơn vị: Phòng Sáng chế 1, Phòng Sáng chế 2, Phòng Sáng chế 3, Phòng Kiểu dáng công nghiệp, Phòng Nhãn hiệu hàng hóa số 1, Phòng Nhãn hiệu hàng hóa số 2, Phòng Chỉ dẫn địa lý, Trung tâm Thông tin, Trung tâm Hỗ trợ và Tư vấn, Trung tâm Nghiên cứu và Đào tạo
1.1.2 Mô hình tổ chức và quản lý
Cơ cấu tổ chức của Cục Sở hữu Trí tuệ được mô tả bằng sơ đồ sau:
Hình 1.1: Sơ đồ mô hình tổ chức Cục Sở hữu trí tuệ Chức năng xét nghiệm đơn nhãn hiệu quốc tế chỉ định Việt Nam do Phòng Chỉ dẫn địa lý đảm nhiệm (Hệ thống mà luận văn đề cập sẽ xây dựng để hỗ trợ chức năng quản lý việc xét nghiệm đơn nhãn hiệu quốc tế)
Trang 131.2 Mô tả bài toán
1.2.1 Mô tả khái quát
Nhiệm vụ của Cục sở hữu trí tuệ đó là xác lập quyền cho các đơn sở hữu công nghiệp (đơn kiểu dáng công nghiệp, sáng chế, giải pháp hữu ích, nhãn hiệu) Trong tài liệu này ta xét bài toán quản lý đơn nhãn hiệu quốc tế Để đơn giản hóa thủ tục nộp và xác lập quyền đơn quốc tế, tổ chức quốc tế đã lập ra một văn phòng ở Thụy sĩ (WIPO-
cơ quan sở hữu trí tuệ quốc tế) và đề ra nghị định thư (Protocol) và thỏa ước (Agrrement) Với cách tổ chức này, thay vì việc phải nộp đơn trực tiếp đến từng quốc gia mà họ muốn đăng ký nhãn hiệu, các nước tham gia vào nghị định thư và thỏa ước chỉ việc nộp một đơn duy nhất tới văn phòng quốc tế Như vậy tiết kiệm được rất nhiều kinh phí, và đơn giản hóa thủ tục Văn phòng quốc tế sẽ có nhiệm vụ chuyển đơn đăng ký đến quốc gia chỉ định Quốc gia được chỉ định sẽ có nhiệm vụ thẩm định (Kiểm tra xem đơn có hợp lệ, đủ điều kiện để bảo hộ) và đưa ra quyết định gửi tới văn phòng quốc tế Để tiết kiệm chi phí, thay vì việc trao đổi dữ liệu với các quốc gia thông qua đường bưu điện, với sự phát triển của công nghệ thông tin, văn phòng quốc
tế đã đề ra chuẩn MECA-chuẩn dữ liệu về thông tin của đơn quốc tế Theo đó tất cả các thông tin của đơn đều được cập nhật, lưu trữ trong một file XML-đơn điện tử Các quốc gia có thể lấy dữ liệu từ trang web tìm kiếm của Văn phòng quốc tế xây dựng, hoặc truy cập vào thư mục trong ftp của từng quốc gia
Hiện tại, các phòng xét nghiệm Nhãn hiệu quản lý các đơn nhãn hiệu quốc tế thực hiện hoạt động theo sơ đồ tổng quát như hình 1.2 :
Định kỳ, khi nhận được cuốn công báo Madrid hoặc nguồn thông tin công báo điện tử Romarin , nhân viên của các phòng xét nghiệm Nhãn hiệu nhập dữ liệu của các đơn chỉ định Việt Nam bằng phần mềm EZ-Search
Sau khi thực hiện xét nghiệm cho mỗi đơn - nếu đơn đó không đáp ứng tiêu chuẩn bảo hộ - Xét nghiệm viên chuẩn bị công văn từ chối bằng tiếng Pháp để gửi cho văn phòng quốc tế Việc chuẩn bị công văn từ chối được xét nghiệm viên làm thủ công bằng phần mềm soạn thảo văn bản
Công việc làm công báo cho các đơn nhãn hiệu quốc tế được Trung tâm thông tin thuộc Cục Sở hữu trí tuệ thực hiện
Trang 14Hình 1.2: Biểu đồ hoạt động tổng thể của hệ thống
Và quy trình xét nghiệm đơn :
Hình 1.3: Quy trình xét nghiệm đơn
1.2.2 Các hoạt động nghiệp vụ
a Nhận và xử lý dữ liệu
Trang 15Dữ liệu dưới dạng file ZIP được tải từ trang web của Văn phòng Quốc tế bằng cách tìm kiếm những đơn chỉ định vào Việt Nam File ZIP gồm: tài liệu ảnh, tài liệu XML của các đơn được chỉ định vào Việt Nam
Hệ thống đọc và xử lý file dữ liệu XML trong file ZIP cập nhật thông tin đơn vào cơ sở dữ liệu của hệ thống quản trị đơn Nhãn hiệu Quốc tế file XML được tuân theo chuẩn MECA do Văn phòng Quốc tế định nghĩa
Sao chép file XML của mỗi đơn tương ứng vào thư mục tương ứng trong hệ thống
b Thu thập tài liệu đối chứng và làm phiếu xét nghiệm
Xét nghiệm viên sử dụng chức năng này để lấy thông tin, ảnh của các tài liệu đối chứng từ các nguồn cơ sở dữ liệu trong hệ thống có sẵn của cơ quan: Dữ liệu đối chứng có thể là nhãn hiệu quốc tế; đơn quốc gia hoặc đăng bạ quốc gia
c Làm công văn từ chối cho Văn phòng Quốc tế
Sau khi xét nghiệm, xét nghiệm viên soạn thảo công văn từ chối đơn gửi cho Văn phòng Quốc tế Công văn được viết bằng tiếng pháp, được định dạng mẫu sẵn, xét nghiệm viên chỉ thêm một số thông tin nhất định thay vì phải soạn thảo cả công văn
d Làm công báo
Sau khi đơn đã được xét nghiệm và kí duyệt sẽ được đưa lên công báo để các tổ chức, cá nhân xem xét khiếu kiện Sau thời gian 1 tháng không có khiếu kiện gì thì sẽ đưa đơn lên công bố
e Thống kê
Chức năng thống kê cho những góc nhìn khái quát về kết quả đạt được, để từ đó đưa ra những quyết định đúng đắn nhằm cải tiến đem lại hiệu suất công việc cao, đảm bảo tiến độ xét nghiệm đơn
Thống kê sản lượng làm việc của từng xét nghiệm viên: để xét định mức công việc cho mỗi xét nghiệm viên
Thống kê số đơn chỉ định vào Việt Nam theo năm, theo thỏa ước Madrid và nghị định thư Madrid;
Thống kê đơn được chấp nhận bảo hộ đơn chỉ định vào Việt Nam dưới dạng tiếng anh, tiếng việt: văn phòng quốc tế yêu cầu gửi danh sách đơn đã được bảo
hộ
Thống kê phí: hỗ trợ phòng tài chính
f Các tiện ích cần thiết khác
Trang 16Các chức năng sau sẽ hỗ trợ người dùng xem các thông tin của đơn và cập nhật các thông tin đơn:
Định vị đơn: tìm kiếm đơn theo một số thông tin cơ bản
Xem và hiệu chỉnh dữ liệu: Cho phép Xét nghiệm viên xem và chỉnh sửa dữ liệu, bao gồm cả mẫu nhãn, bổ sung phân loại Vienna;
g Các hệ thống có liên quan khác
Hệ thống quản trị đơn IPAS: quản trị đơn quốc gia Hệ thống quản trị đơn quốc
tế sẽ sử dụng cấu trúc cơ sở dữ liệu IPAS để lưu dữ liệu của đơn quốc tế nhằm mục đích tập trung hoá và chuẩn hoá các cơ sở dữ liệu quản trị đơn của Cục Sở hữu trí tuệ
1.2.3 Những khó khăn, trở ngại của việc quản lý các đơn nhãn hiệu quốc tế
Thông tin về đơn từ văn phòng quốc tế đến Việt Nam chậm Nguồn thông tin về đơn nhãn hiệu quốc tế có liên quan đến Việt Nam chỉ có thể biết được khi Cục nhận được cuốn công báo Madrid hoặc đĩa Romarin (sau 2, 3 tháng)
Nhân viên của các phòng xét nghiệm nhãn hiệu phải nhập thông tin bằng tay – có thể dẫn đến sai sót
Thông tin của đơn nhãn hiệu quốc tế quản lý trong EZ-Search là không đầy đủ do nguồn của kho dữ liệu này là kho nhãn hiệu NOIP trước đây, có cấu trúc đơn giản chỉ lưu những thông tin cơ bản về đơn: không có danh mục hàng hoá dịch vụ…
Công việc theo dõi các thời hạn thực hiện khó khăn: việc lưu trữ tài liệu trên giấy
tờ dẫn đến khó tìm kiếm cũng như thống kê theo dõi các về thời hạn hiệu lực của đơn
Không có công cụ hỗ trợ để Xét nghiệm viên thực hiện công văn từ chối bảo hộ cũng như làm phiếu xét nghiệm
Quản lý số lượng đơn nhãn hiệu quốc tế lớn :
Số lượng đơn nộp vào Việt nam theo Thoả ước Madrid tăng hàng năm, thêm vào
đó cần phải quản lý một số lượng đơn trong quá khứ rất lớn
Tháng 7/2006 là thời điểm Việt Nam tham gia Nghị định thư Madrid, và trong tương lai gần số lượng đơn nộp vào Việt Nam theo Nghị định thư Madrid cũng sẽ tăng dần
Như vậy, cùng một lúc Cục Sở hữu trí tuệ phải quản lý cả hai hệ thống đơn (Thoả ước Madrid và Nghị định thư Madrid)
Trang 17 Yêu cầu chất lượng xét nghiệm đơn ngày càng cao :
Chất lượng xét nghiệm đơn ngày càng được đòi hỏi cao hơn Thời gian xử lý cho mỗi đơn ngày càng phải rút ngắn đi do số lượng đơn tăng nhanh, nhưng số Xét nghiệm viên có hạn
Cơ sở dữ liệu và các công cụ hiện tại không thể đáp ứng công việc quản lý và xét nghiệm trong tương lai gần
1.2.4 Giải pháp cho các vấn đề đặt ra
− Hiện tại theo đường bưu điện, đơn đến
chậm ảnh hưởng đến quá trình xét
nghiệm đơn: thiếu thông tin tra cứu,
không đảm bảo thời hạn xét nghiệm
đơn
− Văn phòng quốc tế đã có chuẩn MECA
- chuẩn dữ liệu đơn điện tử để trao đổi
thông tin đơn với các Quốc gia
− Một đơn có rất nhiều thuộc tính ( phần
giới thiệu chuẩn MECA – phần 2.6 đề
cập tới các thuộc tính của đơn) và
thuộc tính đó có giá trị thay đổi theo
thời gian, vì vậy hệ cơ sở dữ liệu sẽ có
những bảng chứa rất nhiều trường, do
đó việc trao đổi, truy cập với cơ sở dữ
liệu sẽ khá phức tạp với hệ cơ sở dữ
liệu đa dạng như vậy
− Sử dụng đường truyền mạng Internet thu thập thông tin đơn từ văn phòng quốc tế qua trang web:
http://www.wipo.int/romarin
− Hệ thống cần phải có chức năng phân tích dữ liệu từ file XML để lưu trữ các thông tin về đơn trong cơ sở dữ liệu
− Để giải quyết đặc trưng này của bài toán tôi đã sử dụng công cụ Mygeneration – là công cụ sinh mã tự động dựa trên mẫu Template viết sẵn
để truy cập vào lược đồ cơ sở dữ liệu Với công cụ này việc truy cập vào cơ
sở dữ liệu trở lên rất đơn giản, công việc thao tác với cơ sở dữ liệu trở nên rất dễ dàng, hiệu quả Công cụ Mygeneration được tích hợp vào tầng Model của hệ thống
− Tài liệu công bố, công báo chứa nhiều
thông tin về nhiều đơn, đặc biệt là mẫu
nhãn hiệu của đơn Tài liệu này định kì
mỗi tuần phải đưa ra công bố Chính vì
vậy việc tạo tài liệu công bố nhanh
chóng, chính xác là rất cần thiết
− Phiếu thẩm định, cũng như công văn
− Để giải quyết vấn đề này tôi đã sử dụng công cụ TestWord Với công cụ này chúng ta có thể kiểm soát được việc hiển thị nội dung của các tài liệu sinh ra bằng cơ chế bookmark theo một template đã được định ra Công cụ TestWord được tích hợp ở tầng Control
Trang 18chứa các thông tin về đơn cần được
triết xuất ra từ cơ sở dữ liệu, được viết
bằng ngôn ngữ tiếng pháp, có rất nhiều
kí tự phức tạp mất nhiều thời gian nếu
gõ thủ công (ví dụ những lý do từ
chối…)
của hệ thống, các mẫu template ở tầng View của hệ thống
− Vì dữ liệu đầu vào của hệ thống là các
file XML nên cần chuyển đổi dữ liệu
đó sang dạng mà người dùng thông
thường có thể đọc được các thông tin
của đơn
− Sử dụng công nghệ XSLT (Extensible Stylesheet Language Transformations- ngôn ngữ kiểu mở rộng chuyển đổi) để chuyển đổi dữ liệu dạng XML sang dữ liệu HTML Nếu muốn thay đổi định dạng đích, bạn chỉ việc thay đổi bảng định kiểu XSLT
− Để có để đánh giá được định mức của
mỗi xét nghiệm viên nên cần có số liệu
thống kê về sản lượng làm việc của họ
− Có chức năng thống kê sản lượng làm việc
Tất cả những lý do trên dẫn đến việc xây dựng một cơ sở dữ liệu nhãn hiệu quốc
tế đầy đủ, chính xác cho quản lý, kèm theo các công cụ hỗ trợ xét nghiệm là rất cần thiết
Với những những đặc trưng của hệ thống đề ra, việc áp dụng mô hình MVC (Model-View-Control) để xây dựng hệ thống sẽ giải quyết được những vấn đề phức tạp của bài toán: Dữ liệu đa dạng, phức tạp (thông tin về dữ liệu trình bầy trong phần chuẩn định dạng MECA); Hiển thị dữ liệu đặc biệt với khối lượng lớn…Mô hình MVC có những ưu điểm rất lớn để giải quyết những bài toán tương tự như vậy đó là: làm cho hệ thống có tình mềm dẻo, ổn định, khả năng mở rộng cao, khả năng sử dụng lại hệ thống, dễ phát triển, tích hợp với các hệ thống có sẵn, hỗ trợ nhiều loại cơ sở dữ liệu…
1.3 Nghiên cứu hệ thống và những yêu cầu đặt ra cho nó
Phạm vi của hệ thống xây dựng sử dụng trong nội bộ cơ quan, phục vụ trực tiếp chuyên viên phòng Chỉ dẫn địa lý và Trung tâm thông tin Hệ thống cần phải đáp ứng những chức năng sau :
Trang 19 Chức năng xem và hiệu chỉnh dữ liệu: Cho phép Xét nghiệm viên xem và chỉnh
sửa dữ liệu, bao gồm mẫu nhãn, bổ sung phân loại Vienna
lai, công văn từ chối
1.3.1 Mô hình nghiệp vụ
a Các chức năng nghiệp vụ
Hệ thống cần có các chức năng nghiệp vụ sau:
nghiệm đơn: lập phiếu thẩm định, công văn cho đơn
Xét nghiệm viên làm phiếu thẩm định để trình lãnh đạo ký duyệt Phiếu thẩm định chứa các thông tin đơn đối chứng và lý do từ chối/chấp nhận đơn
Xét nghiệm viên tạo công văn bằng tiếng pháp để trình lãnh đạo duyệt Công văn này được gửi tới văn phòng quốc tế
Tạo tài liệu công bố đơn được chấp nhận bảo hộ Tài liệu công bố gồm các thông tin như: tên nhãn hiệu, mẫu nhãn, chủ văn bằng, danh mục sản phẩm dịch vụ… của các đơn
mới, đơn chỉ định
Tương tự tài liệu công bố, tài liệu này gồm những đơn mới, đơn chỉ định muộn
Trang 20R11 Tính phí Tính lệ phí đơn theo công thức đƣa ra nhằm hỗ trợ
phòng hành chính
b Tiến trình nghiệp vụ
Hình 1.4 : biểu đồ tiến trình giải quyết một đơn nhãn quốc tế
c Các tác nhân nghiệp vụ
1.Chuyên viên − Cập nhật thông tin đơn,
Trang 21d Các đối tượng và thao tác nghiệp vụ
d1 Các đối tượng nghiệp vụ
TT Tên đối tượng Các thuộc tính của đối tượng
1 Danh sách Đơn
Số đơn, Ngày nộp đơn QT, ngày nộp đơn VN, ngày hết hạn QT, ngày hết hạn VN, Ngày ưu tiên, Nguồn dữ liệu, Nước nộp đơn, Ngôn ngữ, số nhóm SpDV, các nhóm, nhãn hiệu, Màu sắc, Người nộp đơn, Sản phẩm dịch vụ giới hạn ở VN, Sản phẩm dịch vụ (Pháp) (TBN), các thông báo liên quan, Các nước chỉ định (đơn VN), Quyền
ưu tiên, Mẫu nhãn, phân loại hình Vienna
2 Phiếu thẩm định
Đối chứng: số đối chứng, ngày đối chứng, Người nộp đơn, địa chỉ, nhãn hiệu, nhóm SpDv, mẫu nhãn ; Ngày thẩm định ; Kết luận ; phạm vi từ chối ; điều khoản ; nhóm bị từ chối
3 Công văn
Loại; Số thông báo; Ngày nộp đơn; Người nộp đơn; Địa chỉ; Người ký ; Phạm vi từ chối; Lý do chuẩn; Điều khoản; Nhóm từ chối
2 Lãnh đạo − Giao đơn
− Ký duyệt công văn
3 Hệ quản trị đơn
quốc gia
− Cung cấp các dữ liệu đối chứng để xét nghiệm viên làm phiếu thẩm định, công văn
Trang 22 Cập nhật thông tin đơn
Làm phiếu thẩm định: lấy đối chứng, chọn từ chối, hoặc chấp nhận đơn, lấy lý do
từ chối
Làm công văn: Lấy lý do từ chối
Tạo công bố
Tạo công báo đơn mới, đơn chỉ định muộn
Tạo công báo đơn gia hạn
Thống kê
Tính phí
e Mô hình miền lĩnh vực
Trang 23Hình 1.5: Mô hình miền lĩnh vực
f Từ điển giải thích
Số
1 Người dùng là người truy nhập vào dùng hệ thống nghiệp vụ và chịu sự
kiểm soát của hệ thống quản trị truy nhập
2 Đơn
Đơn là đơn đăng ký nhãn hiệu quốc tế Đơn chứa các thông tin như : mẫu nhãn hiệu, tên nhãn hiệu, chủ đơn, danh mục sản phẩm dịch vụ đăng ký… Đơn đăng ký nhãn hiệu quốc tế
là đơn của các tổ chức, cá nhân trên quốc tế nộp vào Việt Nam để đăng ký bảo hộ nhãn hiệu của mình Tức là tổ chức khác không được sử dụng nhãn hiệu đó nếu không được sự cho phép của chủ nhãn Ví dụ nhãn hiệu Hitachi được bảo
hộ với sản phẩm dịch vụ : tủ lạnh, điều hòa…
có 1 *
có 1 *
có 1 1
tạo lập 1 *
tạo lập 1 *
Trang 245 Phiếu thẩm
định
Xét nghiệm viên (người dùng) lập phiếu thẩm định để trình lãnh đạo duyệt Phiếu thẩm định gồm danh sách các đơn nhãn hiệu trong nước, quốc tế có tên nhãn hiệu, mẫu nhãn, danh mục sản phẩm tương tự, có thể gây nhầm lẫn với mẫu nhãn đăng ký nộp đơn
6 Duyệt Lãnh đạo ký duyệt phiếu thẩm định, công văn do xét
nghiệm viên tạo lập
7 Công bố Tài liệu gồm các thông tin của các đơn nhãn hiệu được chấp
− Số lượng đơn xét nghiệm viên đã xét nghiệm
− Số lượng đơn nhãn hiệu quốc tế chỉ định nộp vào Việt Nam để bảo hộ nhãn hiệu
− Đơn nhãn hiệu được chấp nhận bảo hộ tại Việt Nam
− Danh sách lệ phí nộp đơn tính theo công thức đưa ra, lệ phí nộp đơn được tính theo số lượng danh mục sản phẩm dịch vụ của nhãn hiệu đăng ký
Bảng 1.2 : Bảng từ điển giải thích
Trang 25Chương 2: CÔNG NGHỆ, PHƯƠNG PHÁP VÀ
CÔNG CỤ
Chương này sẽ trình bày về các công nghệ, phương pháp và công cụ áp dụng
để giải quyết bài toán đặt ra ở trên, đó là: Tổng quan về FRAMEWORK; Mô hình MVC (Model-View-Control, mô hình được áp dụng để xây dựng hệ thống); Công
cụ Mygeneration để truy cập với lược đồ cơ sở dữ liệu (được tích hợp ở tầng Model của hệ thống); Công cụ TestWord điều khiển dữ liệu theo mẫu Template để sinh ra tệp tin theo yêu cầu (tài liệu công báo, phiếu thẩm định, công văn) (được tích hợp ở tầng Control và tầng View của hệ thống); Công nghệ XSLT (Extensible Stylesheet Language Transformation - Ngôn ngữ định kiểu mở rộng chuyển đổi) để chuyển đổi định dạng XML sang định dạng HTML giúp người dùng có thể đọc được thông tin của đơn (được sử dụng ở tầng View và Control); và cuối cùng sẽ trình bày về chuẩn MECA do văn phòng quốc tế định nghĩa để lưu trữ tất cả các thông tin của đơn nhãn hiệu quốc tế
2.1.Tổng quan về FRAMEWORK
2.1.1 Định nghĩa
Một khung làm việc hướng đối tượng là một kiến trúc phần mềm có thể sử dụng lại, bao gồm cả thiết kế và mã thực hiện Tuy nhiên, không có định nghĩa nào
có được sự thống nhất chung về khung làm việc và các thành phần hợp thành của
nó Sau đây là một số các định nghĩa khác nhau về khung làm việc được đưa ra trong [9:
“Một khung làm việc ràng buộc các lựa chọn chính xác về sự phân chia trạng thái và luồng điều khiển, người dùng hoàn thiện hoặc mở rộng khung làm việc
“Một khung làm việc là một tập các ký pháp của các lớp cộng tác để đạt được
cả các mẫu thuộc phạm vi nhỏ và các cơ chế chủ yếu để thực hiện được các yêu cầu chung của thiết kế trong một phạm vi ứng dụng cụ thể”
Trang 26Như vậy, một khung làm việc bao gồm một tập các lớp mà các thể hiện của chúng cộng tác với nhau, được dự kiến để mở rộng, sử dụng lại cho các ứng dụng
cụ thể của một lĩnh vực Các khung làm việc cũng có phần được biểu diễn bằng một ngôn ngữ lập trình, như vậy nó cung cấp cho việc sử dụng lại cả ở mức mã thực hiện và mức thiết kế
2.1.2 Cấu trúc của một khung làm việc
Một khung làm việc hướng đối tượng gồm các thành phần:
Các tài liệu thiết kế
1 Các tài liệu thiết kế: thiết kế của một khung làm việc có thể bao gồm các lược
đồ lớp, viết bằng văn bản hoặc chí ít là một ý tưởng trong đầu của nhà phát triển
2 Các giao diện: các giao diện mô tả sự đáp ứng của các lớp với bên ngoài Các
giao diện có thể sử dụng để mô hình các vai trò khác nhau trong hệ thống, ví
dụ như các vai trò trong một mẫu thiết kế Một vai trò đại diện cho một nhóm nhỏ của các phương thức trong giao diện mà liên quan tới các phương thức khác
3 Các lớp trừu tượng: một lớp trừu tượng là một sự thực hiện chưa đầy đủ của
một hoặc nhiều giao diện Nó có thể được sử dụng để định nghĩa hành vi là chung cho một nhóm các thành phần thực hiện một nhóm các giao diện
4 Các thành phần: Giống như các lớp, các thành phần có thể được tích hợp với
các lớp khác Trong hình vẽ, có một mũi tên “là một phần của” giữa các lớp và các thành phần Nếu bản thân các lớp có một API được định nghĩa đầy đủ thì tập kết quả của các lớp sẽ được biểu hiện như là một tổ hợp các thành phần Một thành phần được định nghĩa như sau: “Một thành phần phần mềm là một đơn vị cấu trúc với các giao diện được ghi rõ theo hợp đồng và các phụ thuộc ngữ cảnh rõ ràng Một thành phần phần mềm có thể được triển khai độc lập và được tổ hợp bằng các hãng thứ ba”
Trang 275 Các lớp: Mức thấp nhất của một khung làm việc là các lớp Các lớp khác với
các thành phần là các API được công khai của nó không được đưa vào trong các giao diện của một khung làm việc Các lớp được các thành phần sử dụng
để thực thi một chức năng, ví dụ một người dùng khung làm việc thường không nhìn thấy các lớp này trừ khi anh ta làm việc với các thành phần
Hình 2.1 Mối quan hệ giữa các thành phần trong 1 khung làm việc [8]
Một khung làm việc được triển khai bằng cách cung cấp một đặc tả rõ ràng các tương tác được mong đợi giữa các thành phần Ví dụ, một thành phần có thể trông chờ những gì từ các thành phần khác và cái gì nên được cung cấp cho nó? Một khung làm việc xác định các dịch vụ được chọn, và đưa ra giải thích những thành phần nào sẽ cung cấp chúng Như thế, một thành phần sẽ có khả năng mở rộng rất lớn và các thành phần mới có thể tương tác với những cái đã có Các thành phần ứng dụng có thể còn chứng minh tính tương thích với các vấn đề khác, như ngữ nghĩa của dữ liệu mà chúng chuyển qua Các bộ phận phụ thuộc có thể được đưa vào như các thành phần của khung làm việc Sự thi hành các thành phần này có thể cùng khung làm việc xác định một dịch vụ và cung cấp các dịch vụ này cho các thành phần khác
2.1.3 Các đặc điểm của khung làm việc
Một khung làm việc hướng đối tượng có bốn đặc điểm chính sau [3]:
Khả năng môđun hóa
Các tài liệu thiết kế Các giao diện
Các lớp trừu tượng Các thành phần
Các lớp
triển khai
thừa kế
là một phần của triển khai
phản ánh
Trang 28 Khả năng sử dụng lại
Khả năng mở rộng
Sự đổi chiều của điều khiển
Khả năng môđun hóa giúp cho việc tăng cường chất lượng của phần mềm
bằng cách cục bộ hóa các tác động của những thay đổi về kiến trúc và sự thực hiện
Sự cục bộ hóa này giảm các nỗ lực được yêu cầu để hiểu và duy trì phần mềm hiện
có
Khả năng sử dụng lại của khung làm việc thúc đẩy kiến thức của miền ứng
dụng và ưu tiên nỗ lực của các nhà phát triển kinh nghiệm để tránh việc tạo và làm hợp lệ lại các giải pháp chung cho các yêu cầu của ứng dụng lặp lại và các thách thức trong thiết kế phần mềm
Khả năng mở rộng được thiết kế để đảm bảo việc điều chỉnh có tính thời gian
của các dịch vụ và các tính năng ứng dụng mới Nó cho phép các ứng dụng mở rộng các giao diện và cách ứng xử của miền ứng dụng chỉ có các thay đổi được yêu cầu trong một ngữ cảnh cụ thể
Cuối cùng, đặc điểm của kiến trúc thời gian chạy của một khung làm việc là
sự đổi chiều điều khiển, thường được gọi là “Nguyên lý Hollywood”- Đừng gọi cho chúng tôi, chúng tôi sẽ gọi cho bạn Kiến trúc này cho phép làm thích hợp ứng dụng
với các quy tắc chuẩn bằng cách điều chỉnh từng bước xử lý, nhờ các đối tượng quản lý sự kiện được điều khiển thông qua cơ chế gửi kích họat trả lại của khung làm việc Khi các sự kiện xảy ra, khung làm việc gửi kích hoạt tham chiếu đến phương thức móc nối trên các đối tượng quản lý sự kiện đã được đăng ký trước, nó thực hiện việc xử lý ứng dụng cụ thể trên các sự kiện Đổi chiều điều khiển cho phép khung làm việc định nghĩa một tập các phương thức ứng dụng cụ thể để đáp ứng với các sự kiện ở bên ngoài
2.1.4 Phân loại khung làm việc
Các khung làm việc hướng đối tượng có thể phân loại theo nhiều chều khác
nhau, trong đó những chiều quan trọng nhất là miền vấn đề mà khung làm việc trỏ tới, cấu trúc bên trong của khung làm việc và việc nó được dự định sử dụng như thế
nào
Trang 292.1.4.1 Phân loại khung làm việc theo vùng vấn đề
Việc phân loại khung làm việc theo vùng vấn đề chia các khung làm việc thành ba loại là các khung làm việc ứng dụng, các khung làm việc miền ứng dụng
và các khung làm việc trợ giúp
Một khung làm việc ứng dụng là một tập các thành phần với một thiết kế ứng dụng có thể được sử dụng lại Điều này có nghĩa rằng, người dùng không những nhận được một tập con mã chức năng mà còn có được cả một thiết kế về cách mà chúng làm việc như thế nào Như vậy, một khung làm việc ứng dụng có thể cung cấp nhiều tính năng hơn các thư viện hàm, và hơn nữa chúng còn phụ thuộc vào nhau
Đối với một nhà phát triển, việc sử dụng một khung làm việc ứng dụng khác với việc sử dụng một thư viện Với một thư viện, nhà phát triển viết mã để gọi các hàm có trong thư viện Như vậy anh ta sẽ phải chịu trách nhiệm cho cách mà các thành phần khác tương tác với nhau Còn khi sử dụng một khung làm việc ứng dụng, nhà phát triển viết mã để khung làm việc ứng dụng gọi tới Như vậy khung làm việc ứng dụng chịu trách nhiệm cho sự tương tác giữa các thành phần Ví dụ của khung làm việc ứng dụng là khung làm việc cho các giao diện người dùng Khung làm việc ứng dụng được sử dụng lại trong nhiều ứng dụng của nhiều nhà phát triển khác nhau
Loại thứ hai là khung làm việc theo vùng vấn đề của một miền ứng dụng Các khung làm việc này có được các kiến thức và đạt đến sự tinh thông trong một vùng vấn đề cụ thể Các khung làm việc cho điều khiển sản xuất và đa phương tiện là các
ví dụ của loại này Các khung làm việc của miền ứng dụng có thể tiện dụng khi thực hiện các chương trình cho một miền ứng dụng xác định Nó thường xuyên được điều chỉnh cho phù hợp với các công ty hoặc được phát triển từ đầu Khung làm việc này giảm số lượng công việc cần để thực hiện ứng dụng và đưa ra một phần mềm có chất lượng cao hơn Một ví dụ cụ thể của các khung làm việc thuộc loại này như khung làm việc Java Media (JMF) Khung làm việc này nhúng các chức năng cần thiết cho việc phát triển các ứng dụng về xử lý các tệp audio và video (dồn kênh, tách kênh, mã hóa, các bộ lọc hiệu ứng), các điều khiển về trình diễn và các phương tiện đạt được các khóa cho sự đồng bộ của các phương tiện khác nhau như đầu vào tiếng và đầu vào hình
Loại cuối cùng là các khung làm việc trợ giúp các khung làm việc loại này
phục vụ các dịch vụ mức thấp của hệ thống như các trình điều khiển các thiết bị và
Trang 30hỗ trợ trực tiếp hoặc sử dụng các sự điều chỉnh được tạo ra bởi các trình cung cấp của hệ thống Các khung làm việc hỗ trợ có thể được tùy biến, ví dụ khi phát triển một hệ thống mới hoặc trình điều khiển thiết bị mới
2.1.4.2 Phân loại khung làm việc theo cấu trúc nội bộ
Nếu như cấu trúc nội tại của khung làm việc được mô tả thì việc hiểu cách ứng
xử của khung làm việc sẽ dễ dàng hơn Cấu trúc nội tại của một khung làm việc liên quan tới các khái niệm về kiến trúc phần mềm Những kiến trúc này được gọi là
“các khung làm việc kiến trúc”, chúng được thiết kế để đạt được cấu trúc chính của một kiến trúc phần mềm hướng đối tượng Nguyên tắc tổng thể cho cấu trúc nội tại của một khung làm việc được mô tả bởi khung làm việc có tính kiến trúc của nó Các khung làm việc có tính kiến trúc đã được mô tả là kiến trúc:
Layered (Phân tầng): các ứng dụng có thể được phân rã thành các nhóm các
công việc con với mức trừu tượng khác nhau định vị ở tầng khác nhau
Pipes and Filters (Ống và bộ lọc) dùng để cấu trúc các ứng dụng có thể được
chia thành một vài các công việc con hoàn toàn độc lập và được thực hiện theo trình tự nối tiếp hoặc song song đã được xác định một cách rõ ràng
Model-View-Controller (MVC), định nghĩa kiến trúc cho các ứng dụng có tính
tương tác, tách giao diện của ứng dụng với các chức năng chủ yếu của nó
Presentation-Abstraction-Controller (Trình diễn-Trừu tượng-Điều khiển), kiến
trúc này là thích hợp để cấu trúc các hệ thống phần mềm có tính tương tác cao với người sử dụng, cho phép các điều khiển và trình diễn của các mô hình trừu tượng của hệ thống được tạo bên ngoài các chức năng con và độc lập với nhau
Reflective (Phản ánh), có khả năng áp dụng cho các ứng dụng cần phải cân
nhắc đến sự thích nghi trong tương lai do sự thay đổi của môi trường, công nghệ và các yêu cầu, mà không cần phải thay đổi về kiến trúc và cách thực hiện của nó
Microkernel, là phù hợp cho các hệ thống phần mềm cần cung cấp các khung
nhìn khác nhau dựa trên các chức năng của chúng và phải thích nghi với các yêu cầu của hệ thống Ví dụ của microkernel là các hệ điều hành
Blackboard (bảng đen), giúp để cấu trúc các ứng dụng phức tạp liên quan tới
một vài hệ thống con chuyên biệt của các lĩnh vực khác nhau Các hệ thống con này phải hợp tác để xây dựng các giải pháp cho việc giải quyết các vấn đề
Broker (môi giới), cấu trúc các hệ thống phần mềm phân tán, trong đó các
thành phần tương tác khác nhau giao tiếp với nhau khi vận hành thông qua truyền thông như trong một mô hình chủ khách
Trang 31Việc sử dụng các kiến trúc này như là một nguyên tắc thiết kế cho một khung làm việc Điều đó có nghĩa là, các kiến trúc này là các ứng cử viên tốt cho việc ứng dụng các mẫu thiết kế hướng đối tượng cũng như cho việc phát triển khung làm việc
2.1.4.3 Phân loại khung làm việc theo cách sử dụng
Dựa trên cách sử dụng, các khung làm việc hướng đối tượng được chia thành
hai loại chính là các khung làm việc hộp trắng và các khung làm việc hộp đen [5] Nhưng phần lớn các ứng dụng là một tổ hợp của cả hai loại khung làm việc trên và
được gọi là các khung làm việc hộp xám
Trong một khung làm việc hộp trắng, kiến trúc của khung làm việc được biết như là các thành phần và ứng dụng của nhà phát triển sẽ xây dựng trên nó Thiết kế hoàn toàn phải được viết thành tài liệu để khi cần có thể thay đổi khung làm việc cho phù hợp với ứng dụng cụ thể Do vậy, người sử dụng phải có kiến thức và nắm vững kiến trúc của khung làm việc để tùy biến khung làm việc thành một ứng dụng
cụ thể
Ngược lại, các khung làm việc hộp đen dấu đi cấu trúc nội tại của chúng Người sử dụng chỉ cần biết các điểm nóng (hot spot) của nó và một mô tả chung về cách sử dụng nó không cần phải có kiến thức toàn diện về kiến trúc của khung làm việc Vì vậy các điểm nóng của nó cần phải được giải thích rõ ràng Cơ chế này cung cấp cho người dùng khả năng tống hợp một cách linh hoạt Trong khi đó, nỗ lực để xây dựng một khung làm việc hộp trắng thường được thực hiện bằng cách tổng quát hóa từ một số ứng dụng hoàn chỉnh, có thể tương đối nhỏ Bất lợi của loại khung làm việc hộp trắng là người sử dụng cuối sử dụng cần phải nắm, hiểu các kiến thức về kiến trúc tổng thể Điều này dẫn đến một quá trình học lâu và sự rủi ro
về lỗi cao Việc sử dụng khung làm việc hộp đen dễ dàng hơn, bởi vì người dùng chỉ cần biết các kiến thức về các phần tử có thể thay đổi được và điểm nóng của hệ thống Tuy nhiên, việc xây dựng các khung làm việc hộp đen khó khăn hơn các khung làm việc hộp trắng
Khung làm việc hộp đen và hộp trắng được xem là hai giới hạn biên của các thiết kế khung làm việc và các nguyên tắc sử dụng Phần lớn các khung làm việc thuộc vùng giữa của hai thái cực này, và được coi như là một khung làm việc hộp xám Nó tận dụng được các lợi thế của các thiết kế hộp đen và hộp trắng, và cố gắng loại bỏ các hạn chế của hai loại khung làm việc này Tuy nhiên, các khung làm việc hộp xám có tính lý thuyết nhiều hơn, rất khó thực hiện, và mọi người đều cho rằng
Trang 32Khi sử dụng lại khung làm việc hộp đen, người sử dụng không cần biết phần mềm thực hiện như thế nào và chúng thực hiện các đối tượng mà có thể được sử dụng lại trong tổ hợp các đối tượng như thế nào
Khung làm việc hộp trắng được sử dụng để tạo ra các lớp cụ thể Một số các lớp cụ thể là các thành phần, chúng thực hiện các giao diện từ khung làm việc hộp trắng Các thành phần này cùng với các lớp cộng tác được gọi là khung làm việc hộp đen
Điều khác nhau chủ yếu khi sử dụng khung làm việc hộp trắng là người sử dụng phải mở rộng các lớp và thực hiện các giao diện Ngược lại, một khung làm việc hộp đen bao gồm các thành phần và các lớp mà mà người dùng có thể tạo các thể hiện và được cấu hình Các thành phần và các lớp trong nó thường là các thể hiện của các phần tử trong của khung làm việc hộp trắng Tổ hợp và cấu hình các thành phần của khung làm việc hộp đen được các công cụ trợ giúp và dễ dàng hơn
so với việc sử dụng các phần tử của một khung làm việc hộp trắng Các khung làm việc hộp đen là dễ dàng được điều chỉnh do chỉ cần biết các giao diện của các điểm nóng Các khung làm việc hộp trắng thường có khả năng sử dụng lại nhiều hơn nhưng lại khó hiểu chi tiết cấu trúc bên trong và thậm chí, có thể tạo ra một sự bùng
vì thế khi thay đổi trên một trong ba thành phần đó sẽ ảnh hưởng ít nhất đến các thành phần còn lại
MVC thường được hiểu là một mẫu thiết kế phần mềm tuy nhiên MVC mang nhiều ý nghĩa về kiến trúc phần mềm hơn MVC được tổng hợp từ nhiều các mẫu thiết kế nhỏ hơn: View áp dụng mẫu thiết kế Composite Pattern, giao tiếp giữa View và Model sử dụng mẫu Observer Pattern; Controller sử dụng mẫu Strategy Pattern hay command Pattern; và một số mẫu khác như: Mediator Pattern; Decorator Pattern, Adaptor Pattern,…
Trang 33a Model (Mô hình dữ liêu)
Model nắm giữ các dữ liệu, thực hiện các chức năng liên quan đến việc truy cập dữ liệu hay thay đổi các dữ liệu của chương trình Model thường được chia thành hai hệ thống con: Các trạng thái nội tại của hệ thống và các hành động làm thay đổi trạng thái của hệ thống
Mỗi một ứng dụng có một Model khác nhau Ví dụ, Model của một thanh cuộn (Scrollbar) có thể chứa các thông tin hiện tại của nó, giá trị lớn nhất, nhỏ nhất hay độ rộng của thumb Model có thể chịu trách nhiệm giao tiếp một cách gián tiếp với View và Controller Gián tiếp có nghĩa là Model không hề biết các View và Controller của nó – nó không duy trì các tham chiếu đến chúng Thay vào đó, Model gửi đi các thông báo đến View và Controller khi có sự thay đổi trạng thái của
hệ thống
b View (Hiển thị hay giao diện người dùng)
View xác định việc hiển thị trực quan dữ liệu của Model View chịu trách nhiệm cập nhật những thay đổi của nó trên màn hình View có thể nhận những thông báo gián tiếp từ Model hoặc các thông điệp từ Controller
c Controller (Điều khiển hay Quản lý chức năng)
Controller là hành vi của ứng dụng Nó tập trung việc nhận các yêu cầu của người dùng, chuyển các yêu cầu của người dùng đến chức năng xử lý yêu cầu của Model và chuyển kết quả trả về cho View hiển thị Controller có thể nhận thông điệp từ View và những thông điệp gián tiếp từ Model
Hình dưới chỉ ra Model, View, Controller làm việc với nhau như thế nào để tạo ra thanh cuộn Model nắm giữ thông tin về giá trị nhỏ nhất, lớn nhất View xác định chính xác vẽ thanh cuộn Controller chịu trách niệm xử lý các sự kiện chuột Kết quả thanh cuộn mang đầy đủ chức năng của MVC
Hình 2.2 Mô hình MVC của thanh cuộn
Trang 342.2.2 Sự tương tác giữa các thành phần của MVC
Trong kiến trúc MVC, Model chịu trách nhiệm thông báo cho View biết khi
có sự thay đổi và cho phép View lấy các thông tin về trạng thái và Controller có thể truy cập vào các chức năng của Model View lấy dữ liệu từ Model và chịu trách nhiệm hiển thị chúng Nó tự động cập nhật việc hiển thị khi có sự thay đổi trong Model Đồng thời View cũng làm nhiệm vụ chuyển các yêu cầu của người dùng đến Controller Controller lựa chọn chức năng xử lý yêu cầu của người dùng và lựa chọn thành phần hiển thị tiếp theo dựa vào tương tác của người dùng hoặc dựa vào kết quả xử lý trả về từ Model
Hình 2.3 Mô hình tương tác MVC Một ứng dụng thông thường sử dụng một bộ điều khiển cho một nhóm các chức năng liên quan nào đó Một số ứng dụng khác có thể sử dụng nhiều bộ điều khiển độc lập cho mỗi loại người dùng vì thế có thể có nhiều View khác nhau ứng với mỗi loại người dùng khác nhau
2.2.3 Một số đặc điểm của MVC
Một điều dễ thấy đó là View thường xuyên được thay đổi theo thời gian cho phù hợp với từng loại người dùng, trong khi Model thì lại rất ít khi thay đổi Do đó, việc phân tách View và Model giữ cho Model không bị thay đổi khi viết lại giao diện Hơn nữa, hoạt động của mỗi chức năng trong hệ thống thường là phức tạp và khó hiểu cho tới khâu thực thi cuối cùng Vì thế, trong một số dự án, các View có
Trang 35thể được thiết kế ngay trong các khâu đầu tiên của quá trình thiết kế còn Model sẽ được hoàn thiện dần trong suốt quá trình phát triển
Mặc dù Model và Controller là hai khái niệm riêng rẽ trong kiến trúc MVC nhưng thực tế chúng lại có mối quan hệ rất chặt chẽ Mỗi thay đổi liên quan đến Model sẽ tạo ra một thay đổi tương ứng đến Controller
Kiến trúc MVC cho phép một ứng dụng có thể được xây dựng trên nhiều ngôn ngữ lập trình khác nhau Do Model và Controller là độc lập với View nên View chỉ cần thông báo cho Controller các sự kiện người dùng và cập nhật những thay đổi của Model
Những ưu điểm nổi bật của mô hình MVC
Khả năng mở rộng
Có thể mở rộng các chức năng của hệ thống thông qua việc bổ sung các Module mới tại View mà không phải xây dựng lại toàn bộ ứng dụng
Khả năng sử dụng
lại ứng dụng
Các ứng dụng có thể được sử dụng lại thay vì phải phát triển mới khi có nhu cầu thay đổi hoặc bổ sung chức năng Tích hợp với các hệ
thống có sẵn
Dễ dàng xây dựng các cầu nối với các hệ thống khác do
hệ thống được xây dựng theo Module và được tổ chức tốt
Hỗ trợ nhiều loại cơ
sở dữ liệu
Với việc tách riêng phần Data Access, có thể sử dụng nhiều cơ sở dữ liệu khác nhau
2.3 Công cụ Mygeneration
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
Trang 36hoặ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
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
công chưa, (4): tên của kết nối, (5): lưu lại
Trang 37Sau 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
Trang 38emps.Sort= Employees.ColumnNames.LastName + " DESC";
Lọc dữ liệu
emps.Filter= Employees.ColumnNames.LastName + " LIKE A%";
emps.Where.HireDate.Operator= WhereParameter.Operand.Between; emps.Query.Load();
emps.Query.AddResultColumn(Employees.ColumnNames.EmployeeID); emps.Query.AddResultColumn(Employees.ColumnNames.LastName);
Trang 39SqlDataReader 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ự
Trang 40 GotoBmkIns(string bmkName, string valStr): đi đến bookmark và thêm chuỗi
2.5 Công nghệ XSLT - Ngôn ngữ định kiểu mở rộng chuyển
đổ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ư ý