Hình 4 .1 Các bước phát triển một hệ thống tích hợp dữ liệu
Hình 4.6 Qúa trình truy vấn thông tin
Hệ thống tích hợp dữ liệu có thể được chia thành 3 phần chính: (1) truy xuất các nguồn dữ liệu, phần này tương tác với các nguồn dữ liệu để lấy thông tin, các nguồn dữ liệu có thể là các cơ sở dữ liệu, các file dữ liệu, các tệp XML, các ứng dụng và dịch vụ cung cấp dữ liệu, các tệp dữ liệu không cấu trúc,…; (2) phần xử lý
Trang 85
tích hợp, phần này thực hiện xử lý quá trình tích hợp bao gồm lấy câu truy vấn ban đầu, lập bản đồ truy vấn con, tính toán và thực thi truy vấn; (3) phần ứng dụng, phần này bao gồm các ứng dụng xây dựng từ kết quả của việc tích hợp, nó có thể là các ứng dụng Web, các hệ thống cổng thông tin điện tử, các cơ sở dữ liệu, các ứng dụng dữ liệu khác …
Vấn đề quan trọng của một hệ thống tích hợp dữ liệu là việc xử lý truy vấn, đầu vào là các nguồn dữ liệu và đầu ra là kết quả của câu truy vấn. Hình 4.6 cho ta thấy - một hệ thống tích hợp dữ liệu đơn giản ta nhận thấy có các thành phần sau: bộ tính toán lại truy vấn (Query Reformulator), bộ đánh giá lại truy vấn (Query Optimizer), bộ thực thi truy vấn (Query Execution engine) và trình bao bọc (Wrapper).
Bộ tính toán lại truy vấn: Dựa trên mô tả các nguồn dữ liệu, câu truy vấn ban đầu được viết lại để ánh xạ trực tiếp vào các nguồn dữ liệu. Có hai điều quan trọng trong việc viết lại truy vấn là: tính đúng đắn của việc viết lại truy vấn, tính giảm thiểu việc truy nhập các nguồn dữ liệu. Dựa trên các phương pháp tiếp cận mô hình nguồn dữ liệu (LAV, GAV hay GLAV, …) và các thuật toán viết lại (Buket, Inverse-Rule, MiniCon, …) để xây dựng được module đáp ứng được các yêu cầu trong việc viết lại truy vấn.
Bộ đánh giá truy vấn: Phần đánh giá truy vấn chuyển câu truy vấn thành một bản đồ thực thi truy vấn. Đó là các bước tuần tự theo một đặc tả nào đó để phần thực thi có thể thực hiện được các câu truy vấn. Trong bộ đánh giá truy vấn chúng ta sử dụng các thuật toán để thực hiện việc xây dựng bản đồ truy vấn, có rất nhiều bản đồ được sinh ra và cái tốt nhất sẽ được chọn (theo đánh giá trọng số hoặc sử dụng các phương pháp dựa trên kinh nghiệm).
Bộ thực thi truy vấn: phần thực thi truy vấn xử lý bản đồ truy vấn được sinh ra bởi phần đánh giá truy vấn.
Trang 86
Trình bao bọc: Phần thực thi truy vấn tương tác với các nguồn dữ liệu thông qua các trình bao bọc. Mỗi trình bao bọc nắm giữ tương tác với một nguồn dữ liệu. Trình bao bọc lấy câu truy vấn từ bộ phận thực thi, sau đó thực hiện câu truy vấn đó và trả lại ngược kết quả về phân thực thi. Có ba cách thức để tạo ra một trình bao bọc: (1) Tự làm hoàn toàn, việc này là rất khó khăn; (2) phương pháp bán tự động, có một phần mã nguồn ta sử dụng mã nguồn của các trình bao bọc, và xác định lập trình lại theo yêu cầu cụ thể của từng tình huống cụ thể; (3) phương pháp tự động, đó là chúng ta sử dụng các công cụ sinh trình bao bọc tự động. Thông thường thì phương pháp thứ 2 được sử dụng nhiều nhất, với phương pháp đó chúng ta có thể tuỳ biến việc tạo ra các trình bao bọc.
Viết thiết kế hệ thống được tiến hành lần lượt theo 3 mức:
Mức tổng thể: thiết kế mức tổng thể thường được thực hiện ở cuối giai
đoạn phân tích. Nó cho thấy kiến trúc chung của hệ thống về cả phần cứng và phần mềm. Sử dụng các mô hình khái niệm để minh hoạ phần này.
Mức giữa: Thiết kế ở mức giữa đơn giản là tiếp tục việc chia nhỏ bản thiết kế ở mức tổng thể thàn các thành phần nhỏ hơn. Các thành phần của phần cứng được chi tiết đến mức các khối. Các thành phần phần mềm được chi tiết đến mức các chương trình trong mỗi Môđun hoặc mỗi ứng dụng. Sử dụng đến các mô hình logic để minh hoạ phần này.
Thiết kế Môđun: (được tiến hành trong giai đoạn thực hiện): đây là mức
(thấp nhất) chi tiết nhất, nhằm thiết kết ra các thành phần cơ bản tạo ra phần cứng, các chương trình con tạo thành các chương trình phần mềm ứng dụng. Mức này thường do các chuyên gia phát triển làm trong giai đoạn thực hiện. Các sơ đồ ở đây chi tiết đến từng dữ liệu và thao tác một. Sau khi thiết kế chúng ta phải nắm được:
Trang 87
o Các sơ đồ thiết kế cấu trúc.
Các chuẩn và các quy ước: Trong thiết kế cần thiết lập các chuẩn cho mỗi thành phần. Nếu không quy định, việc liên kết giữa các thành phần không thể tốt được.
o Phần cứng: Các thành phần: Các sơ đồ cấu trúc, máy chủ, máy trạm, mạng.
o Phần mềm: Các loại thành phần; Các nhà cung cấp; Các phương pháp thiết kế có cấu trúc; Các phương pháp lập trình có cấu trúc; Các phương pháp kết nối.
Các thành phần chức năng:
o Liệt kê tất cả các thành phần chức năng, các modun;
o Đối với mỗi thành phần chính:
o Quyết định làm, mua hay sửa đổi cho thích ứng.
o Chia thành các thành phần con
o Liệt kê các thành phần
Các cơ sở dữ liệu, các file và các bảng:
o Liệt kê tất cả và đối với mỗi loại hãy chỉ rõ: Mục đích; Sử dụng; Loại; Thiết lập dữ liệu ở mức vật lý; Tạo lập; Duy trì, cập nhật; Tổ chức; Kiểu dạng; Các giới hạn; Vị trí.
Bƣớc 4: Thực hiện
Giai đoạn thực hiên bao gồm Thiết kế chi tiết và cài đặt, ráp nối các thành phần, các module trong hệ thống bao gồm cả phần cứng và phần mềm.
Các công việc chính trong bước này bao gồm: Thiết kế chi tiết các module và lập trình. Xây dựng các phần trong hệ thống.
Dự toán và tổ chức mua thiết bị phần cứng/phần mềm. Chỉnh sản phẩm cho phù hợp với yêu cầu thực tế. Kiểm thử từng phần các module, phân hệ.
Trang 88
Biên soạn tài liệu.
Các bƣớc lập trình:
(1). Đặt kế hoạch tích hợp và kiểm thử hệ thống. Lên kế hoạch phân chia hệ thống thành các module nhỏ hơn để lập trình. Các module có thể lập trình tuần tự hoặc song song tuỳ thuộc vào tính chất đặc thù của mỗi module. Khi việc lập trình modul xong cần tiến hành ráp nối các module một cách nhịp nhàng. Điều quan trọng là vạch ra được kế hoạch phân chia một cách chi tiết, và đưa ra thứ tự ghép nối các module. Kế hoạch này được gọi là kế hoạch kiểm thử hệ thống.
(2.) Thiết kế các module. Từ phần đặc đặc tả thiết kế, công việc là tiếp tục chia nhỏ thành các mức thấp hơn cho đến khi đạt tới các công việc “sơ cấp” theo nghĩa có thể lập trình được ngay bằng một ngôn ngữ lập trình nào đó. Quá trình này được gọi là quá trình thiết kế các module hay thiết kế mức dưới.
(3). Rà soát thiết kế module. Cũng như đối với các thiết kế ở mức trên và
mức giữa, cần phải cân nhắc các điểm lợi/hại khi tiến hành thiết kế ở các mức dưới. Do vậy cần phải rà soát lại thiết kế của từng module trước khi lập trình. Mục đích của việc rà soát lại thiết kế module là đảm bảo rằng đưa ra được một thiết kế tốt nhất có thể có được sao cho mọi chức năng đã được đề cập đến và tất cả mọi trục trặc đã được lường trước.
(4). Xây dựng các tình huống kiểm thử module. Trong phần này chỉ cần tập trung vào những "kiểm thử" đối với các phần khó nhất trong hệ thống. (5). Lập trình các module. Các tiêu chuẩn, các đòi hỏi đối với quá trình
lập trình đã được trình bầy rõ trong giai đoạn thiết kế hệ thống.
(6). Kiểm thử module: Việc tiến hành kiểm thử module sau khi chọn một phạm vi bài toán phù hợp với cùng một ó liệu thử - thông tin vào sao cho quá trình thực hiện phải đi qua các nhánh xử lý chính trong module và quan sát kết quả nhận được.
Trang 89
(7). Kiểm thử các mức tích hợp thấp nhất: Nếu như một module nào đó gọi tới một vài module khác, thì có thể tích hợp chúng lại ngay sau khi đã hoàn tất công việc với từng module và tiến hành kiểm thử tất cả các module khi chúng phối hợp làm việc với nhau
(8). Lưu giữ các kết quả kiểm thử. Đệ trình các module đã hoàn tất để tích hợp
(9). Soạn thảo các tài liệu bao gồm: Tài liệu hướng dẫn sử dụng; Tài liệu hướng dẫn bảo trì; Tài liệu khai thác và quản lý hệ thống; ....
Lựa chọn ngôn ngữ lập trình:
Việc lựa chọn ngôn ngữ lập trình đóng một vai trò rất quan trọng. Đựa trên năng lực và sức mạnh của ngôn ngữ lập trình chúng ta sẽ dề dàng trong việc cài đặt hệ thống. Các ngôn ngữ và công cụ lập trình bậc cao thường tích hợp các công nghệ mới do đó đáp ứng được việc xây dựng các hệ thống lớn cũng như làm giảm thiểu công sức lập trình.
Có nhiều ngôn ngữ lập trình để chúng ta có thể xây dựng các hệ thống tích hợp dữ liệu. Tiêu biểu trong các ngôn ngữ đó là: Java, Visual Basic, Visual C++, C#, …
Với các hệ thống tích hợp dữ liệu, ngôn ngữ được sử dụng lập trình nhiều nhất đó là ngôn ngữ Java.
Sự ra đời của Java đã có một tầm quan trọng đặc biệt và được coi là ngôn ngữ của tương lai trước bối cảnh bùng nổ của mạng toàn cầu Internet.
Ngôn ngữ Java ra đời vào ngày 23/05/1995 do công ty máy tính Sun Microsystems phát triển . Đặc điểm nổi bật nhất của Java là nó không phụ thuộc vào hệ điều hành và bộ xử lý. Điều này cho phép một ứng dụng viết bằng Java có thể được thực hiện trên bất kỳ hệ điều hành và hệ xử lý nào có hỗ trợ Java. Do vậy, người lập trình chỉ cần viết ứng dụng bằng Java đúng một lần, sau đó có thể sử dụng ứng dụng này trên các hệ điều hành khác nhau như Windows95, WindowsNT, Mac OS, Unix,... theo phương châm: "viết một lần, sử dụng ở bất kỳ đâu".
Trang 90
Có thể định nghĩa một cách chính xác hơn về Java: "là ngôn ngữ lập trình hướng đối tượng, được thiết kế độc lập với hệ điều hành, cho phép người lập trình viết chương trình một lần và có thể sử dụng tại bất kỳ đâu".
Ngôn ngữ Java có cú pháp rất giống với ngôn ngữ C/C++ (là một ngôn ngữ rất mạnh được dùng phổ biến hiện nay), tuy nhiên nó đã được thay đổi khá nhiều để đáp ứng khả năng độc lập với hệ điều hành. Nền tảng của ngôn ngữ Java là các class. Các class đóng vai trò như những đối tượng, người lập trình khi xây dựng ứng dụng sẽ sử dụng một số class chuẩn của hệ thống, đồng thời có thể tự mình xây dựng class khác đáp ứng yêu cầu công việc.
Java là ngôn ngữ dễ học, nó lược bớt những lệnh thừa và rườm rà của C/C++ để người lập trình chú trọng vào việc viết chương trình. Hiện tại, có rất nhiều công cụ hỗ trợ người lập trình phát triển các ứng dụng bằng Java, như Java Developer Kit, JavaBeans, HotJava...
Bƣớc 5: Kiểm thử hệ thống
Giai đoạn này nhằm tính hợp tất cả các phần cùng hoạt động và kiểm tra căn kẽ tất cả các phần, các mođun theo các chức năng đã ghi trong bản thiết kế bao gồm cả phần cứng và phần mềm.
Các công việc chính là:
Tích hợp và kiểm thử từng phân hệ ứng và các dự án con Tích hợp và kiểm thử đối với toàn bộ hệ thống lớn.
Xây dựng kế hoạch tích hợp và kiểm thử hệ thống đã lập ra trong giai đoạn thực hiện theo thứ tự xây dựng các phân hệ
Xây dựng các bộ dữ liệu kiểm thử.
Sản phẩm sau khi kiểm thử là toàn bộ hệ thống đã làm việc tốt, đã gõ lỗi xong. Quá trình tích hợp và kiểm thử hệ thống được thực hiện theo cách từ dưới lên. Ban đầu kiểm thử các mođun nhỏ, sau đó các phân hệ, sau đó toàn bộ hệ thống. Giai đoạn kiểm thử hệ thống chia làm 2 bước. Đầu tiên, các phân hệ được tích hợp lại thành một mođun lớn hơn, các mođun này lại được ghép lại cho đến khi toàn bộ hệ
Trang 91
thống được tạo dựng. Ở bước tiếp theo, hệ thống được kiểm thử nhằm kiểm tra xem các phân hệ có phối hợp nhịp nhàng với nhau không và toàn bộ hệ thống có dáng điệu như mong muốn không.
Kế hoạch kiểm thử hệ thống không chỉ đưa ra thứ tự tích hợp các phân hệ, mà còn cung cấp các phép kiểm thử cần phải thực hiện ở các bước trong quá trình tích hợp, mỗi khi có mođun được ghép vào hệ thống. Nội dung kế hoạch kiểm thử hệ thống:
Lịch trình kiểm thử, dữ liệu kiểm thử.
Kiểm tra cấu hình, tích hợp hệ thống và các công cụ trợ giúp kiểm thử được sử dụng.
Thứ tự kiểm thử các mođun và chương trình.
Danh sách các phép kiểm thử phải thực hiện tại mỗi bước tích hợp dữ liệu kiểm thử.
Danh sách các dữ liệu "sai" và các thủ tục cần thử nghiệm. Kiểm thử hồi qui để kiểm tra việc hệ thống sai bắt nguồn từ đâu. Tải hệ thống và các dữ liệu thử và các kiểm thử chất lượng hoạt động. Nguyên tắc: Thực hiện nhanh, chính xác.
Điều quan trọng của kiểm thử trong hệ thống tích hợp dữ liệu đó là ngữ nghĩa trong kết quả câu tích hợp và việc hoạt động suôn sẻ trên mạng Internet. Chúng ta cần kiểm tra với nhiều kiểu truyền thông và kết nối dữ liệu khác nhau.
Bƣớc 6: Chấp nhận
Các công việc trong giai đoạn này chỉ để nhằm xác định rằng sản phẩm đưa ra phù hợp với yêu cầu đặc tả ban đầu.
Các công việc trong giai đoạn này là:
Thực hiện trình diễn các chức năng cơ bản của hệ thống. Xác nhận các chức năng đã hoàn thành.
Thực hiện các kiểm thử đã đưa ra trong kế hoạch kiểm thử chấp nhận đã xây dựng trong giai đoạn kiểm thử hệ thống
Trang 92
Bƣớc 7: Vận hành
Sau khi tiến hành kiểm thử từng phần và kiểm thử chấp nhận, hệ thống đã sẵn sàng sử dụng và nhiệm vụ còn lại là vấn đề khai thác hệ thống giải quyết các bài toán thực tế. Trong giai đoạn này có thể có những vấn đề còn nảy sinh do khi khai thác thực tế.
Trong giai đoạn vận hành chúng ta đánh giá toàn bộ việc xây dựng sản phẩm và khả năng đáp ứng của sản phẩm.
Các công việc cần làm trong giai đoạn này: Cài đặt hệ thống.
Đào tạo sử dụng.
Cung cấp các tài liệu sử dụng.
Trong giai đoạn này chúng ta cũng xác định các tình huống để bảo trì hệ thống.
Như vậy chúng ta đã đưa ra bảy bước để xây dựng một hệ thống tích hợp dữ liệu. Tại mỗi bước chúng ta phải nắm rõ nội dung, mục đích của từng bước và thực hiện chính xác các yêu cầu từng bước. Trong khi xây dựng hệ tích hợp dữ liệu chúng ta phải quan tâm đến rất nhiều các vấn đề như: khả năng nguồn dữ liệu, vấn đề truyền thông mạng, vấn đề xây dựng bố tính toán lại truy vấn để xây dựng bản đồ truy vấn, vấn đề ngữ nghĩa giữa thông tin các nguồn dữ liệu … Tại mỗi bước chúng ta sẽ tiếp cận các vấn đề theo các khía cạnh khác nhau, song chúng ta luôn phải đồng nhất tính mục tiêu của vấn đề chung về tích hợp dữ liệu.
Trang 93
KẾT LUẬN
Nội dung luận văn đã cung cấp một cái nhìn tổng quan về lý thuyết tích hợp dữ liệu. Hệ thống tích hợp dữ liệu giải quyết nhiệm vụ chính là thực thi câu truy vấn