Kho tài liệu và ứng dụng khai thác kho tài liệu trên UD SmartBook

Việc triển khai ứng dụng bước đầu đã ghi nhận được những kết quả khả quan. Hệ thống cơ bản giải quyết được vấn đề đặt ra: Kho tài liệu phục vụ việc cập nhật và lưu trữ tài liệu với hơn 200 giáo trình, bài giảng, 300 bài báo khoa học, 100 luận văn thuộc chuyên ngành CNTT (ở thời điểm thực hiện thử nghiệm này). Con số này luôn được cập nhật thường xuyên. Xây dựng thành công ứng dụng khai thác kho tài liệu trên UD SmartBook, ứng dụng này đã đáp ứng được nhu cầu tìm kiếm và Download những tài liệu cần thiết cho quá trình học tập và nghiên cứu của sinh viên, cán bộ, giảng viên trường Đại học Đà Nẵng. Kho tài liệu và ứng dụng khai thác kho tài liệu trên UD SmartBook đã đáp ứng được các yêu cầu phi chức năng: lưu trữ được khối lượng dữ liệu lớn, hệ thống chạy ổn định, giao diện đơn giản, dễ sử dụng.

doc65 trang | Chia sẻ: maiphuongtl | Lượt xem: 2114 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Kho tài liệu và ứng dụng khai thác kho tài liệu trên UD SmartBook, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
thanh, hình ảnh, video dưới nhiều định dạng phổ biến như MPEG4, H.264, MP3, AAC, AMR, JPG, và PNG. SQLite là cơ sở dữ liệu dùng cho tất cả các ứng dụng của Android. Webkid: cung cấp trình duyệt web hiện đại, hỗ trợ cả trình duyệt web của Android và các trình duyệt web nhúng khác. SGL: cung cấp công cụ đồ họa 2D cơ bản. 3D libraries: dùng để tăng tốc phần cứng 3D (nếu có) hoặc để tối ưu hóa các phần mềm 3D. Android Runtime: cung cấp các chức năng có sẵn trong thư viện gốc của ngôn ngữ lập trình Java. Mỗi ứng dụng trên hệ điều hành Android sẽ chạy trên một tiến trình của riêng nó. Linux Kernel Android hoạt động dựa trên nhân hệ điều hành Linux 2.6, qua đó cung cấp các dịch vụ cho hệ thống cốt lõi như an ninh, quản lý bộ nhớ, mô hình điều khiển,... Đồng thời nhân hệ điều hành hoạt động như một lớp trừu tượng giúp kết nối giữa phần cứng và những phần mềm còn lại trên nền tảng. Phát triển ứng dụng trên nền tảng Android Ngôn ngữ lập trình Ngôn ngữ lập trình chính thức của Android là Java, tuy nhiên Android không hỗ trợ J2ME và J2SE (là hai ngôn ngữ lập trình phổ dụng trên thiết bị di động). Dựa trên máy ảo Java của Sun, Google đã hiệu chỉnh và phát triển thành máy ảo Dalvik để biên dịch mã Java với tốc độ biên dịch nhanh hơn và nhẹ hơn. Môi trường lập trình Môi trường lập trình chính thức của Android là Eclipse (từ phiên bản 3.2) với sự hỗ trợ của plugin ADT. Tuy nhiên, người lập trình có thể sử dụng bất kỳ một IDE hay trình soạn thảo văn bản nào để viết mã nguồn Java và XML rồi biên dịch nên ứng dụng hoàn chỉnh bằng cách sử dụng dòng lệnh (command lines). Ứng dụng của Android sau khi biên dịch được đóng gói thành các tập tin .apk Bộ công cụ lập trình ứng dụng của Android là SDK. Android SDK bao gồm rất nhiều công cụ tùy chọn, cho phép chúng ta phát triển các ứng dụng trên thiết bị sử dụng nền tảng Adroid. Hai thành phần quan trọng nhất là Android Emulator (bộ giả lập) và Android Development Tools plugin (bộ công cụ phát triển) dành cho Eclipse, nhưng ngoài ra Android SDK còn chứa một trong số những công cụ khác cho bộ gỡ lỗi, đóng gói và khởi tạo các ứng dụng trên bộ giả lập. Bộ giả lập của Android (Android Emulator): là một thiết bị ảo, giả lập một máy điện thoại được chạy trên máy tính. Ta có thể sử dụng bộ giả lập để thiết kế, gỡ lỗi và kiểm tra các ứng dụng trong môi trường thực thi của Android. Nó tạo sẵn cho chúng ta một số ứng dụng mẫu ban đầu đồng thời hướng dẫn và kiểm tra các ứng dụng của Android mà không cần đến một thiết bị thật. Bộ mô phỏng của Android có đầy đủ các chức năng cơ bản và xử lý như một thiết bị điện thoại thật, ngoại trừ nó không nhận và tạo ra các cuộc gọi. Ở bên trái bộ mô phỏng cung cấp một sự điều hướng khác biệt và các phím điều khiển, bàn phím nhằm sử dụng chuột và bàn phím của máy tính để phát sinh các sự kiện cho ứng dụng của mình thay cho bàn phím ảo (Hình 1.10). Hình 1.10: Bộ giả lập của Android Android Development Tools (ADT): khởi tạo và gỡ lỗi các ứng dụng của Android một cách dễ hơn và nhanh hơn. Nó bao gồm nhiều thành phần khác nhau: Dalvik Debug Monitor Service (DDMS) Là một tiện ích gỡ rối được tích hợp trong Eclipse. DDMS cung cấp một số tính năng trong việc tương tác với bộ giả lập của Android hoặc thiết bị thật. Các tính năng đó bao gồm: quản lý tác vụ, tương tác với bộ giả lập, chụp màn hình bộ giả lập. DDMS nằm trong thư mục tools của SDK. DDMS sẽ làm việc với cả emulator và thiết bị, nếu cả hai đã kết nối và đang chạy đồng thời, DDMS sẽ mặc định làm việc với bộ giả lập emulator. Android Debug Bridge (adb) Công cụ adb cho phép bạn khởi tạo những tập tin .apk của ứng dụng trên bộ giả lập hoặc thiết bị thật, và truy xuất tới bộ giả lập hoặc thiết bị thật từ một dòng lệnh. SQLite Công cụ này cho phép bạn truy cập những tập tin dữ liệu SQLite đã được tạo và được sử dụng bởi các ứng dụng khác của Android. Các thành phần cơ bản của một ứng dụng Android Có 6 thành phần trong việc xây dựng nên một ứng dụng Android: Activity (phạm vi hoạt động) Là các thao tác mà người sử dụng thực hiện với một ứng dụng Android cụ thể. Một Activity luôn luôn là một màn hình đơn trong ứng dụng trên Android. Mỗi Activity thực thi như một lớp đơn được dẫn xuất từ lớp cơ sở Activity. Lớp này sẽ hiển thị giao diện người dùng chứa các Views và phản hồi lại những sự kiện. Hầu hết các ứng dụng đều có nhiều màn hình. Ví dụ, một đoạn tin nhắn ứng dụng có khả năng hiển thị trên một màn hình sẽ chỉ ra một danh sách của các contacts để gởi tin nhắn, màn hình thứ hai dùng để viết tin nhắn theo các contact đã chọn, các màn hình khác dùng để xem lại các tin nhắn hoặc thay đổi chế độ thiết lập. Mỗi màn hình sẽ được thực thi như là một Activity. Di chuyển tới một màn hình hiển thị khác, khác với màn hình hiện hành bằng cách bắt đầu một hoạt động mới, nhưng màn hình hiện hành phải thực hiện xong các Activity của nó (điều này có nghĩa là giao diện ứng dụng của Activity phải được hoàn thành). Khi màn hình mới được mở ra, màn hình trước đó được tạm dừng và nó được đặt vào ngăn xếp. Người dùng có thể quay trở lại màn hình được mở trước đó vì nó đã có trong ngăn xếp. Các màn hình cũng có thể được chọn để gỡ bỏ từ ngăn xếp khi chúng không còn phù hợp để lưu lại. Android giữ lại các ngăn xếp cho mỗi ứng dụng khởi đầu từ màn hình chính. Hình 1.11 thể hiện vòng đời của một Activity: Hình 1.11: Vòng đời của một Activity Ghi chú: Hình chữ nhật thể hiện các phương thức gọi lại trong suốt quá trình hoạt động của một Activity. Hình bầu dục có tô màu là các hoạt động chính của một Activity. Những Activity trong hệ thống đã được quản lý như một hoạt động ngăn xếp. Khi một Activity mới bắt đầu, nó nằm trên đỉnh của ngăn xếp, nó là các Activity đang thực thi – Activity trước vẫn luôn ở vị trí thấp hơn Activity này trong ngăn xếp, và sẽ không quay trở lại cho đến khi Activity mới thoát đi. Một Activity cơ bản có 3 trạng thái: Running: Nếu là một Activity trong màn hình trước đó (nằm trên đỉnh của ngăn xếp), nó là active hoặc running. Paused: một Activity đã ngừng hoàn toàn nhưng vẫn còn “sống” (nó vẫn duy trì tất cả các trạng thái và các bộ phận thông tin, vẫn còn được gắn với trình quản lý cửa sổ Window Manager), nhưng có thể bị hủy bởi hệ thống khi Activity nằm ở những vị trí vô cùng thấp của bộ nhớ. Stopped: Nếu một Activity hoàn toàn đã bị làm mờ đi bởi một Activity khác, nó là stopped. Activity này vẫn còn giữ lại tất cả trạng thái và thông tin thành viên, tuy nhiên, người sử dụng không thấy được nó do cửa sổ chứa nó ẩn, nó thường bị hủy đi bởi hệ thống khi bộ nhớ cần cho những nơi khác. Intent Receiver (Bộ tiếp nhận yêu cầu): ta có thể sử dụng một IntentReceiver khi muốn mã hóa ứng dụng của mình để thực thi một sự kiện ở bên ngoài, như khi chuông điện thoại rung, hoặc khi mạng dữ liệu có sẵn để dùng. Service (Dịch vụ): một Service được mã hóa trước đó rất lâu và chạy không cần giao diện người dùng. Một ví dụ cho vấn đề này là chương trình nghe nhạc đang mở những bài hát từ danh sách, trong khi đó chúng ta vẫn có thể thực hiện những tính năng khác như truy cập Internet, nhắn tin. Content Provider (Trình cung cấp nội dung): trình cung cấp nội dung là một lớp thực thi gồm tập các phương thức chuẩn để lưu trữ và gọi lại kiểu dữ liệu được lưu trữ bởi trình cung cấp nội dung đó. View (Khung nhìn): là thành phần cơ bản để xây dựng giao diện người dùng cho 1 ứng dụng Android.    Lưu trữ dữ liệu: Android có nhiều cách để lưu trữ dữ liệu. Một cách đơn giản nhất là sử dụng hệ thống preferences. Android cho phép các activity và ứng dụng lưu giữ preferences theo dạng cặp từ khóa và giá trị, nằm giữa các lần gọi một activity. Mục đích chính là để lưu trữ thông tin cấu hình chi tiết mà người dùng hiệu chỉnh, chẳng hạn trang web người dùng xem gần đây nhất. Bên cạnh việc sử dụng Preferences để lưu trữ dữ liệu thì cũng còn một cách đơn giản khác để thực hiện công việc lưu trữ dữ liệu là sử dụng tập tin. Cách đơn giản nhất để thực hiện điều đó là lưu vào một tập tin, và tập tin này phải được đặt trong thư mục res/raw của project.  Không phải mọi ứng dụng đều cần có 6 khối trên, nhưng ứng dụng của chúng ta có thể sẽ được tạo ra từ một vài kết hợp từ những khối trên. Cần quyết định những thành phần nào cần thiết cho ứng dụng của mình. Ứng dụng đã tồn tại trên nền tảng Android Android có lượng ứng dụng của bên thứ ba ngày càng nhiều, được chọn lọc và đặt trên một kho ứng dụng là Google Play, cho phép người dùng duyệt, tải về và cập nhật. Kho ứng dụng sẽ tự động lọc ra một danh sách các ứng dụng tương thích với thiết bị của người dùng, và nhà phát triển có thể giới hạn ứng dụng của họ chỉ dành cho những nhà mạng cố định hoặc những quốc gia cố định vì lý do kinh doanh. Nếu người dùng mua một ứng dụng mà họ cảm thấy không thích, họ được hoàn trả tiền sau 15 phút kể từ lúc tải về, và một vài nhà mạng còn có khả năng mua giúp các ứng dụng trên Google Play, sau đó tính tiền vào trong hóa đơn sử dụng hàng tháng của người dùng.  Một số phần mềm thông dụng trên nền tảng Android Gần hai năm có mặt trên thị trường, nền tảng Android đã có 50.000 phần mềm, hiện mỗi tháng có tới 9.000 ứng dụng được viết [15]. Bảng 1.1: Một số phần mềm thông dụng trên nền Android Tên ứng dụng Chức năng tổng quát Aldiko Đọc sách điện tử AmLich 1.0 Lịch âm ASTRO_FileManager Quản lý dữ liệu BlueFTP Quản lý Bluetooth Callblocking_1.0.0 Chặn cuộc gọi Camera ZOOM 1.5.1 Tùy chỉnh zoom Camera Google Sky Map Bản đồ không gian,và các chòm sao Google Google Voice Gọi điện thoại miễn phí của Google Gesture Search Tìm danh bạ bằng cách viết chữ cái lên màn hình Google Translate 1.0 Dịch văn bản trực tuyến đa ngôn ngữ youtube-downloader Download film trên Youtube QuickofficeHTC v1.0.1 Đọc ứng dụng văn phòng Firefox browser Trình duyệt web TasKillerFull_2.4.1 Giải phóng bộ nhớ Ram Task Manager Tắt các ứng dụng chạy ngầm trên máy Uninstaller2 Phần mềm gỡ bỏ hoàn toàn ứng dụng VietnameseIME-1.9.1 gõ tiếng việt TỔNG QUAN VỀ WEB SERVICE Giới thiệu về Web Service Khái niệm Web Services là một hệ thống phần mềm được thiết kế để hỗ trợ sự giao tiếp giữa các thiết bị với nhau thông qua giao thức trên đường truyền mạng [10]. Web Service dựa trên XML và HTTP, trong đó XML làm nhiệm vụ mã hóa và giải mã dữ liệu và dùng SOAP để truyền tải dữ liệu. Các thành phần chính của Web Service XML: cung cấp cách thức mô tả dữ liệu. WSDL: định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm các thông tin: Tên dịch vụ. Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web. Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụ Web cộng với tên cho giao diện này). UDDI: định nghĩa một số thành phần cho biết thông tin về dịch vụ, cách sử dụng và đối tượng cung cấp dịch vụ, cho phép các máy khách truy tìm và sử dụng dịch vụ đó. SOAP : đây là giao thức truyền dữ liệu trên Web Service. Giới thiệu về WCF Khái niệm WCF là một công nghệ mới của hãng Microsoft. Nó cho phép phát triển các ứng dụng trong môi trường phân tán gồm nhiều client giao tiếp với dịch vụ trên server. Nó hỗ trợ xây dựng các ứng dụng theo hướng dịch vụ (service-oriented), truyền thông với nhau thông qua web [11]. Được tích hợp lần đầu tiên trong .NET Framework 3.0 năm 2006, phiên bản mới nhất hiện tại là .NET Framework 4.0. .NET Framework còn cung cấp các API để tối ưu việc liên lạc (dựa trên mã nhị phân) giữa các ứng dụng chạy trên hệ thống Windows gọi là .NET Remoting, các API cho các giao dịch phân tán, và API cho liên lạc dị bộ. WCF thống nhất các API này thành một mô hình duy nhất nhằm đáp ứng mô hình lập trình hướng dịch vụ. Các thành phần chính của WCF Địa chỉ (Address): là một URI, để máy khách có thể lấy được WCF Service. URI được xem như là địa chỉ của WCF Service. Liên kết (Binding): sau khi xác định được địa chỉ của dịch vụ thì WCF service sẽ định ra các cách để giao tiếp. Hợp đồng (Contract): Nó định nghĩa các dữ liệu được dùng (public data) và các giao diện (interfaces) mà WCF service cung cấp cho trình khách. Phân biệt WCF và Web Service Sự khác biệt giữa hai loại dịch vụ này là, Web Service được thiết kế để gởi và nhận các thông điệp bằng cách sử dụng định dạng SOAP thông qua giao thức HTTP. Trong khi đó WCF có thể trao đổi các thông điệp theo nhiều định dạng (mặc định là SOAP) và nhiều giao thức khác nhau (HTTP, TCP/IP,…). Ưu điểm so với Web Service Hỗ trợ truyền nhận thông tin không chỉ qua giao thức HTTP, mà còn có thể thông qua TCP hoặc những giao thức mạng khác. Khả năng chuyển đổi giữa các giao thức truyền nhận thông tin một cách dễ dàng. Hỗ trợ việc cấu hình các dịch vụ trên nhiều dạng khác như: Web Server, WinForms Applications, Console Applications, Windows Services, Web Applications (ASP.NET) trên những phiên bản khác nhau của IIS. Hỗ trợ khả năng bảo mật, độ tin cậy cao. Hỗ trợ định dạng SOAP (là một giao thức cho phép ứng dụng truyền nhận thông tin thông qua HTTP dưới dạng XML) cũng như giao thức REST (là một giao thức đơn giản hơn SOAP) . Giới thiệu về WCF Data Service Giới thiệu chung WCF Data Service là một khuôn mẫu có sẵn trong bộ Visual Studio, cung cấp khả năng để truy xuất dữ liệu từ các dịch vụ. Nó được xây dựng dựa trên WCF thông qua giao thức REST. WCF Data Service sử dụng URI để truy xuất đến dữ liệu và trả về định dạng JSON hoặc XML. Giao thức Odata Trong WCF Data Services, lập trình viên thiết kế các dịch vụ thông qua giao thức REST-based (HTTP) gọi là Odata. Odata là giao thức mở được sử dụng để truy vấn dữ liệu bằng cách thao tác với các địa chỉ URL. Ngoài ra, cũng có thể sử dụng OData để thực hiện các thao tác với dữ liệu như GET cho việc đọc, PUT để tạo, POST cho việc cập nhật, và DELETE để xóa [12]. OData dựa trên công nghệ web như HTTP, Atom Publishing Protocol (AtomPub) và JSON để cung cấp cách thức truy cập dữ liệu từ nhiều nguồn khác nhau như cơ sở dữ liệu quan hệ, các hệ thống tập tin. Người sử dụng có thể truy vấn dữ liệu thông qua giao thức HTTP và trả kết quả về định dạng XML hoặc JSON [11]. Định dạng JSON JSON là một định dạng trao đổi dữ liệu hay nói cách khác, là cách biểu diễn một đối tượng. Cú pháp JSON là một tập hợp con của cú pháp đối tượng JavaScript. Dữ liệu là các cặp tên/giá trị (name/values). Dữ liệu được phân cách bằng dấu phẩy ‘,’. Đối tượng nằm trong cặp ngoặc nhọn ‘{}’. Dấu ngoặc vuông giữ mảng ‘[]’. Dữ liệu JSON được viết trong cặp Tên/Giá trị. Một cặp Tên/Giá trị chứa tên 1 trường (trong dấu nháy đôi “”), theo sau là dấu phẩy, cuối cùng là giá trị: Ví dụ: đối tượng employees là 1 mảng của 3 đối tượng employee. { "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] } Khi sử dụng JSON, không cần phải có các bước phân tích phức tạp như đối với XML. Mà có thể truy vấn trực tiếp giá trị theo tên (khóa) được định nghĩa trong JSON. Nên sử dụng JSON trong các trường hợp: Lưu trữ dữ liệu đơn thuần. Đó là khi bạn muốn lưu trữ dữ liệu dưới dạng metadata ở phía server. Chuỗi JSON sẽ được lưu vào cơ sở dữ liệu và sau đó khi cần dữ liệu thì sẽ được giải mã (Phân tích chuỗn JSON thành đối tượng). Sử dụng JavaScript, ActionScript để xử lý thông tin trả về từ phía server. Rất nhanh và rất dễ dàng. Giới thiệu về Entity Framework Khái niệm ADO.NET Entity Framework là một công cụ mô tả cách thức tương tác với cơ sở dữ liệu thông qua cơ chế ánh xạ Object Relational Mapping (ORM). Do đó chúng ta có thể truy vấn, thao tác với cơ sở dữ liệu gián tiếp thông qua các đối tượng lập trình [13]. Kiến trúc của EF Hình 1.12: Kiến trúc EF Object Services: đây là các class tự động sinh ra tương ứng với mô hình dữ liệu. Các class này bao gồm: ObjectContext: đại diện cho một cơ sở dữ liệu. ObjectContext có chức năng quản lý các kết nối, định nghĩa mô hình dữ liệu với metadata (dữ liệu lưu cấu trúc dữ liệu) và thao tác với cơ sở dữ liệu. ObjectSet: là một một tập hợp các đối tượng. Mỗi đối tượng này tương ứng với một table. Có thể lấy được các đối tượng này thông qua các thuộc tính tương ứng của ObjectContext. EntityObject, ComplexObject: là các lớp tương ứng cho một dòng dữ liệu của table trong cơ sở dữ liệu. Khác biệt chính giữa hai loại này là ComplexObject không chứa primary key. EntityCollection và EntityReference : là các đối tượng thể hiện mối quan hệ (relationship) giữa hai entity class. Mỗi đối tượng này có thể được truy xuất thông qua các thuộc tính của entity class. Bảng 1.2: Ánh xạ tương đương giữa các đối tượng trong cơ sở dữ liệu và EF Cơ sở dữ liệu Entity Framework Object Cơ sở dữ liệu ObjectContext Table, View EntityObject, ComplexObject Column Property Relationship EntityCollection EntityReference Entity Data Model (EDM): là mô hình dữ liệu được mô tả thông qua các ngôn ngữ theo chuẩn XML. Nó là thành phần trung gian giữa ứng dụng và cơ sở dữ liệu, giúp tạo liên kết giữa nguồn dữ liệu vật lý và các đối tượng (hay object layer) trong ứng dụng. EDM được chia làm 3 lớp là: Conceptual, Mapping và Logical. Conceptual – Conceptual Schema Definition Language (CSDL): là ngôn ngữ định nghĩa các entity, relationship, hàm trong tập tin với phần mở rộng .csdl. Có thể tạo được các entity class (object layer). Mapping – Mapping specification language (MSL): định nghĩa các ánh xạ giữa lớp conceptual và logical. Logical – Store Schema Definition Language (SSDL): định nghĩa mô hình lưu trữ của cơ sở dữ liệu. Entityclient Data Provider: là một trình cung cấp dữ liệu mới của ado.net, dùng để truy xuất đến cơ sở dữ liệu. Sử dụng Entity Framework Trong Entity Framework: Code là mã lệnh tạo thành các lớp đối tượng dữ liệu cho phép thao tác với dữ liệu. Model là sơ đồ gồm các hộp mô tả các thực thể và các đường kết nối các quan hệ. Database có thể là SQL Server, Compact SQL Server, Local Database, MySQL, Oracle,… Có 3 cách sử dụng Entity Framework (EF): Database First, Model First và Code First [13]. Hình 1.13: Cách sử dụng Entity Framework Database first: là phương pháp chỉ nên dùng khi ta đã có sẵn CSDL, EF Wizard sẽ tự động tạo Model và mã nguồn. Model first: nên dùng khi ta bắt đầu thiết kế CSDL. Ta sẽ thiết kế mô hình CSDL (Model) EF sẽ tự động tạo mã nguồn, sau đó dùng EF Wizard tạo CSDL. Code first: nên dùng khi đã có mô hình CSDL, ta sẽ chỉ viết mã nguồn từ đó tạo cơ sở dữ liệu. PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG Trong chương hai, tôi sẽ trình bày các vấn đề cơ bản như: giới thiệu về kho tài liệu học tâp, phân tích và thiết kế hệ thống. Đồng thời cung cấp giải pháp để xây dựng và khai thác kho tài liệu. MÔ TẢ ỨNG DỤNG Giới thiệu Theo [2], ở thời điểm hiện tại, có tới 98 % sinh viên có thiết bị di động (một trong các sản phẩm như điện thoại di động, máy tính bảng, máy tính laptop). Trong đó, số sinh viên sử dụng máy tính bảng chiếm 33%, và con số này có thể tăng lên trong thời gian tới. Bên cạnh đó, với giá thành rẻ, kho ứng dụng phong phú, phù hợp với nhu cầu học tập và giải trí thì máy tính bảng sử dụng hệ điều hành Android đang chiếm số lượng lớn trong cộng đồng sinh viên. Với mong muốn tạo nên công cụ học tập và nghiên cứu hiệu quả, nhằm thay thế sách vở truyền thống, UD SmartBook đã ra đời. Do vậy, ngoài những ứng dụng có sẵn, cần căn cứ vào nhu cầu của sinh viên và tình hình thực tế hiện nay để phát triển thêm những ứng dụng phù hợp. Bên cạnh đó, cùng với sự phát triển của khoa học kỹ thuật, số lượng các tài liệu học tập, nghiên cứu cũng tăng lên nhanh chóng. Với sự trợ giúp của những công cụ tìm kiếm trực tuyến thì sinh viên có thể tìm kiếm được khá đầy đủ và nhanh chóng tài liệu hay thông tin mà họ cần. Tuy nhiên, số lượng kết quả trả về thường rất lớn, không tập trung, độ chính xác phụ thuộc nhiều vào mức độ cụ thể của từ khóa, điều đó gây khó khăn trong việc tìm kiếm đúng tài liệu đang cần đến. Để giải quyết các vấn đề nêu trên, cũng như để sử dụng UD SmartBook một cách hiệu quả nhất, thì việc xây dựng kho dữ liệu nhằm tổ chức các tài liệu thành một hệ thống là một lựa chọn hợp lý. Kho tài liệu học tập là tập hợp các tài liệu điện tử thường bao gồm các bài giảng, giáo trình của giảng viên hay đồ án, luận văn tốt nghiệp của sinh viên và học viên cao học, được tổng hợp từ nhiều nguồn khác nhau, với nhiều định dạng khác nhau. Tài liệu trước khi đưa vào kho tài liệu cần được mô tả thông tin liên quan. Trong bản mô tả đó phải thể hiện được các thông tin cơ bản như: tên tài liệu, tác giả, mô tả tóm tắt, nhóm tài liệu, loại tài liệu, nguồn gốc của tài liệu. định dạng tài liệu. Trong đó nhóm tài liệu là lĩnh vực, chuyên ngành của tài liệu. Loại tài liệu cho chúng ta biết đó là bài giảng, giáo trình hay đồ án, luận văn tốt nghiệp hay bài báo khoa học. Kho tài liệu được xây dựng với các chức năng cơ bản như sau: Tổng hợp, lưu trữ tài liệu phục vụ cho nhu cầu học tập, nghiên cứu của cán bộ, giảng viên, sinh viên trường Đại học Đà Nẵng. Hiển thị danh sách tài liệu hiện có trong kho. Hỗ trợ tìm kiếm, download và khai thác tài liệu thông qua máy tính bảng. Yêu cầu đối với ứng dụng Yêu cầu đối với kho tài liệu Có khả năng lưu trữ tài liệu với nhiều định dạng khác nhau. Nguồn tài liệu phong phú, với nhiều chuyên ngành và thể loại, lĩnh vực khác nhau. Có khả năng nhập / xuất dữ liệu, tra cứu nhanh theo nhiều tiêu chí khác nhau. Cho phép hiển thị danh sách tài liệu theo từng lĩnh vực, loại tài liệu. Cho phép người sử dụng download và khai thác trên máy tính bảng UD SmartBook. Lưu trữ tin cậy, có cơ chế sao lưu tài liệu; Khả năng tích hợp với các hệ thống sẵn có. Máy chủ sử dụng làm kho lưu trữ là những máy tính chuyên dụng, có năng lực xử lý cao, có khả năng chạy ổn định liên tục, chuyên dùng để cài phần mềm phục vụ cho các thiết bị khác truy cập yêu cầu cung cấp dịch vụ và tài nguyên. Đơn giản, dễ cài đặt, sử dụng và bảo trì. Ứng dụng khai thác kho tài liệu trên UD SmartBook Tìm kiếm và Download chính xác, trong thời gian ngắn nhất. Giao diện đơn giản, dễ sử dụng, phù hợp với màn hình máy tính bảng (nhỏ). Đảm bảo tính ổn định tối đa. PHÂN TÍCH THIẾT KẾ HỆ THỐNG Xác định tác nhân Dựa vào mô tả về hệ thống, chúng ta xác định được các tác nhân tham gia vào hệ thống bao gồm: Người quản trị kho tài liệu: thực hiện công việc upload tài liệu vào kho, cập nhật, chỉnh sửa thông tin mô tả của tài liệu. Người khai thác tài liệu (người sử dụng) bao gồm: giảng viên, sinh viên, các đối tượng khác có nhu cầu sử dụng tài liệu trong kho. Người sử dụng chỉ được phép xem danh sách tài liệu, tìm kiếm tài liệu, Download tài liệu và khai thác tài liệu đó thông qua máy tính bảng UD SmartBook. Biểu đồ Ca sử dụng Biểu đồ Ca sử dụng Hình 2.1: Biểu đồ ca sử dụng Đặc tả Ca sử dụng SignIn Ca sử dụng : đăng nhập vào chương trình Các tác nhân: người quản trị Mô tả: người dùng chọn ca sử dụng SignIn để đăng nhập vào kho tài liệu. Dòng sự kiện chính: Gõ thông tin đăng nhập Chọn hành động SignIn Điều kiện tiên quyết: không Điều kiện kết thúc: nếu ca sử dụng thành công thì Administrator sẽ đăng nhập được vào hệ thống. Upload Book Ca sử dụng : tích hợp tài liệu vào kho Các tác nhân: người quản trị Mô tả: người dùng chọn ca sử dụng UploadBook để tích hợp tài liệu vào kho. Dòng sự kiện chính: Tạo đường dẫn chứa tài liệu gốc và tập tin mô tả thông tin tài liệu Chọn nơi lưu trữ tài liệu Chọn chức năng tải lên. Đọc thông tin mô tả tài liệu Rút trích thông tin mô tả thông tin khác Sao chép dữ liệu từ nguồn đến đích Điều kiện tiên quyết: thiết bị di động phải được kết nối mạng. Tài liệu phải được chuẩn hóa theo cấu trúc quy định. Administrator đăng nhập thành công. Điều kiện kết thúc: Nếu ca sử dụng thành công thì tài liệu sẽ được tích hợp vào kho. ViewBook Ca sử dụng : hiển thị danh sách tài liệu Các tác nhân: người sử dụng Mô tả: người dùng chọn ca sử dụng ViewBook, và xem danh sách tài liệu hiện có trong kho. Điều kiện tiên quyết: thiết bị di động phải được kết nối mạng. Search Book Ca sử dụng : tìm kiếm tài liệu Các tác nhân: người sử dụng Mô tả: người dùng chọn ca sử dụng SearchBook để tìm kiếm tài liệu. Người sử dụng có thể tìm kiếm tài liệu theo nhiều tiêu chí khác nhau như tên tài liệu, tên tác giả hoặc theo chủ đề hay loại tài liệu. Dòng sự kiện chính: Người sử dụng cần phải nhập thông tin tài liệu theo tiêu chí mình cần tìm. Dựa vào dữ liệu nhập, ứng dụng tìm và chọn ra danh sách tài liệu. Người sử dụng có thể chuyển qua ca sử dụng Download Book để tải về và khai thác tài liệu trên thiết bị di động. Dòng sự kiện phụ: hệ thống thông báo không tìm thấy tài liệu theo yêu cầu. Điều kiện tiên quyết: thiết bị di động phải được kết nối mạng. Điều kiện kết thúc: Nếu ca sử dụng thành công thì người dùng xem được danh sách tài liệu. Download Ca sử dụng: tải tài liệu. Các tác nhân: người sử dụng. Mô tả: người dùng chọn ca sử dụng Download Book để tải tài liệu. Người sử dụng có thể tải tài liệu sau khi thực hiện chức năng SearchBook hoặc ViewBook. Điều kiện tiên quyết: thiết bị di động phải được kết nối mạng. Điều kiện kết thúc: nếu ca sử dụng thành công thì người dùng tải được tài liệu để khai thác thông qua thiết bị di động. Biểu đồ lớp Dựa vào mô tả bài toán, chúng ta xác định các lớp chính trong ứng dụng bao gồm: tài liệu, nhóm tài liệu, loại tài liệu, người quản trị hệ thống. Hình 2.2: Biểu đồ lớp Biểu đồ tuần tự Biểu đồ tuần tự Ca sử dụng Đăng nhập (SignIn) Hình 2.3: Biểu đồ tuần tự Ca sử dụng đăng nhập Add: nhập vào thông tin đăng nhập. CheckSignin (): kiểm tra thông tin đăng nhập, nếu thông tin đăng nhập sai, thông báo cho người sử dụng. MessageError (): thông báo lỗi. SignIn(): thực hiện đăng nhập. MessageSuccess(): đăng nhập thành công. Biểu đồ tuần tự Ca sử dụng Upload tài liệu Hình 2.4: Biểu đồ tuần tự Ca sử dụng Upload tài liệu Start: khởi động chức năng. ReadInfDocument (): đọc thông tin mô tả tài liệu từ tập tin Bằng bằng .xls, lưu vào cơ sở dữ liệu. ExtractInfDocument (): rút trích các thông tin mô tả khác. CopyData(): copy dữ liệu từ nguồn đến đích. SaveAction(): thực hiện hành động. Exit(): thoát. Biểu đồ tuần tự Ca sử dụng hiển thị danh sách tài liệu Hình 2.5: Biểu đồ tuần tự Ca sử dụng hiển thị danh sách tài liệu AddInf: gõ vào thông tin danh sách tài liệu cần hiển thị. Queries (): truy vấn qua WCF Data Service. GetDocument(): lấy dữ liệu từ cơ sở dữ liệu. ResultsReturn(): trả kết quả. Queries (): truy vấn thông tin DisplayResult(): kết quả trả về Display(): hiện thị kết quả tìm kiếm Biểu đồ tuần tự Ca sử dụng tìm kiếm tài liệu Hình 2.6: Biểu đồ tuần tự Ca sử dụng tìm kiếm tài liệu Open: nhập vào các điều kiện tìm kiếm CheckInfoemation(): kiểm tra thông tin tìm kiếm Queries (): truy vấn thông tin DisplayResult(): kết quả trả về Not Found(): thông báo không tìm thấy tài liệu. Display(): hiện thị kết quả tìm kiếm Biểu đồ tuần tự Ca sử dụng Download tài liệu Hình 2.7: Biểu đồ tuần tự Ca sử dụng Download tài liệu SearchDocument(): tìm tài liệu cần tải về. Thông thường, trước khi tải tài liệu, chúng ta cần kiểm tra tài liệu đó có trong kho tài liệu hay không? QueriesURL(): truy xuất địa chỉ của tài liệu. SendURL(): kích hoạt địa chỉ tài liệu thông qua trình duyệt web. MessageError(): thông báo lỗi nếu không tìm thấy địa chỉ tài liệu, hay thiết bị không có kết nối Internet. Data Return (): trả về file tài liệu nếu quá trình tải thành công. Biểu đồ hoạt động Biểu đồ hoạt động Ca sử dụng Upload tài liệu Hình 2.8: Biểu đồ hoạt động chức năng Upload tài liệu Biểu đồ hoạt động Ca sử dụng tìm kiếm tài liệu Hình 2.9: Biểu đồ hoạt động chức năng tìm kiếm tài liệu Biểu đồ hoạt động Ca sử dụng Download tài liệu Hình 2.10: Biểu đồ hoạt động chức năng Download tài liệu Biểu đồ triển khai Hình 2.11: Biểu đồ triển khai GIẢI PHÁP ĐỀ XUẤT Mô hình tổng quát của ứng dụng Hình 2.12: Mô hình tổng quát của hệ thống Giải pháp xây dựng kho tài liệu Quy trình xây dựng kho tài liệu Bước 1: sưu tập tài liệu Tài liệu: bao gồm các giáo trình, bài giảng, bài báo khoa học, luận văn, đồ án tốt nghiệp của học viên cao học, sinh viên. Nguồn tài liệu: từ nhiều nguồn khác nhau như kho giáo trình của Đại học Đà Nẵng, kho tài liệu của trung tâm thông tin học liệu, các Website về sách điện tử và các tài liệu giấy đã được số hóa, đồ án, luận văn tốt nghiệp của sinh viên, học viên cao học thuộc Đại học Đà Nẵng. Định dạng tài liệu: các định dạng thích hợp để lưu trữ trong kho và sử dụng trên máy tính bảng UD SmartBook như .xls, .doc, .ppt và .pdf. Bước 2: xử lý tài liệu Tài liệu trước khi chuyển vào kho phải được xử lí. Các bước xử lý bao gồm: Chuyển tài liệu về định dạng chuẩn, nếu tài liệu không thuộc nhóm định dạng đã nêu ở bước sưu tập tài liệu. Phần này, đã có công cụ tự động chuyển đổi. Mô tả thông tin tài liệu theo cấu trúc của chuẩn Dublin Core bằng Microsoft Excel, với cấu trúc và các thông tin mô tả như sau (Bảng 2.1): Bảng 2.1: Tập tin mô tả thông tin của tài liệu MỤC NỘI DUNG Tiêu đề Tên của tài liệu Tác giả Tên tác giả Nguồn Nguồn gốc của tài liệu Mô tả Mô tả tóm tắt tài liệu Chúng ta có 8 thành phần để mô tả một tài liệu, phần này sẽ được trình bày chi tiết trong phần giải pháp xây dựng kho tài liệu. Chúng ta sẽ nhập vào tập tin mô tả 4 trong 8 thành phần để mô tả tài liệu, các thành phần còn lại sẽ rút trích tự động trong quá trình Upload tài liệu vào kho. Mục đích của việc mô tả như trên là giảm thời gian cho cán bộ quản trị kho, tức là trước khi thu thập tài liệu, chúng ta sẽ yêu cầu tác giả của tài liệu đó (hoặc một nhân viên văn thư bất kì) thực hiện mô tả tài liệu theo cấu trúc như trên. Tạo cây thư mục chứa tài liệu gốc và tập tin mô tả tài liệu có dạng như sau: Nhomtailieu\Loaitailieu\Tailieu. Trong đó: Nhomtailieu: Nhóm tài liệu, tức phân loại tài liệu theo nhiều ngành khác nhau. Loaitailieu: loại tài liệu, tức phân loại tài liệu theo tiêu chí như bài giảng, giáo án, giáo trình hay đồ án, luận văn. Tailieu: tài liệu, đây là thư mục chứa tài liệu gốc, bao gồm 2 tập tin: tập tin 1 là tập tin tài liệu gốc, tập tin 2: tập tin mô tả thông tin tài liệu. Kho tài liệu không chứa tập tin mô tả, mà chỉ tự động rút trích thông tin chứa trong tập tin mô tả để lưu trữ vào cơ sở dữ liệu. Chuyển tập tin tài liệu gốc và tập tin mô tả vào trong thư mục tài liệu đã tạo ở trên. Bước 3: upload tài liệu vào kho Import dữ liệu ở tập tin mô tả thông tin tài liệu vào cơ sở dữ liệu (phần này cũng có thể thao tác bằng tay). Rút trích tự động các thông tin không được mô tả trong tập tin mô tả, nhưng thuộc 8 thành phần quy định về mô tả tài liệu (có thể thao tác bằng tay). Upload tài liệu vào kho. Kỹ thuật xây dựng Mô tả thông tin tài liệu: Kiến trúc Metadata Với mục tiêu tìm kiếm và đề xuất một mô hình biểu diễn tri thức cho tài liệu văn bản bao gồm các thành phần tri thức như: siêu dữ liệu (metadata) mô tả nguồn gốc, cấu trúc văn bản (tiêu đề, tác giả, nơi xuất bản, năm xuất bản, chủ đề, nơi lưu trữ, ...), các cụm từ khóa biểu diễn nội dung tài liệu à Tổ chức biên mục tài liệu điện tử, sắp xếp và tổ chức lại các tài liệu khoa học thành một hệ thống, từ đó hỗ trợ truy vấn thông minh, tìm kiếm thông tin, tài liệu liên quan từ kho tài liệu đã thu thập, tổ chức lưu trữ, giúp người dùng định hướng rõ ràng trong quá trình tìm kiếm. Các khái niệm cơ bản về Metadata Metadata (siêu dữ liệu) dùng để mô tả tài nguyên thông tin. (Metadata is data about other data) hay có thể nói ngắn gọn là dữ liệu về dữ liệu. Mối liên hệ giữa siêu dữ liệu và tài liệu mà nó mô tả được thể hiện một trong hai cách sau: Các phần tử siêu dữ liệu được chứa ở một biểu ghi tách biệt bên ngoài tài liệu nó mô tả. Hoặc các phần tử siêu dữ liệu được nhúng (gắn) vào tài liệu nó mô tả. Trong ứng dụng này chúng ta sẽ chọn cách thứ nhất để mô tả thông tin tài liệu. Giới thiệu về chuẩn Dublin Core Metadata Dublin Core Metadata là một chuẩn metadata gồm yếu tố mô tả cốt lõi nhất thông tin tài liệu (trong khi Marc21 có hơn 200 trường và rất nhiều trường con) [3]. Mỗi yếu tố Dublin Core được đặt tên (Element Name) và quy định nhãn (label) để sử dụng ghi vào trong thẻ meta. Mỗi yếu tố được định nghĩa cụ thể để mô tả đối tượng và có chú thích rõ ràng. Dublin Core Metadata bao gồm yếu tố sau: Nhan đề (Title): nhan đề của tài liệu Tác giả (Creator): tác giả của tài liệu, bao gồm cả tác giả cá nhân và tác giả tập thể. Chủ đề (Subject): chủ đề tài liệu đề cập dùng để phân loại tài liệu. Tóm tắt (Description): mô tả nội dung tóm tắt của tài liệu. Nhà xuất bản (Publisher): Nhà xuất bản, nơi ban hành tài liệu có thể là tên cá nhân, tên cơ quan, tổ chức, dịch vụ... Tác giả phụ (Contributor): tên những người cùng tham gia cộng tác đóng góp vào nội dung tài liệu. Ngày tháng (Date): ngày, tháng ban hành tài liệu. Loại (kiểu) (Type): mô tả bản chất của tài liệu. Dùng các thuật ngữ mô tả phạm trù kiểu: giáo trình, bài giảng, luận văn... Khổ mẫu (Format): mô tả định dạng của tài liệu. Định danh (Identifier): các thông tin về định danh tài liệu, các nguồn tham chiếu đến, hoặc chuỗi ký tự để định vị tài nguyên: URL (Uniform Resource Locators). Nguồn (Resource): các thông tin về xuất xứ của tài liệu, tham chiếu đến nguồn mà tài liệu hiện mô tả được trích ra/tạo ra, nguồn cũng có thể là: đường dẫn (URL). Ngôn ngữ (Language): các thông tin về ngôn ngữ, mô tả ngôn ngữ chính của tài liệu. Liên kết (Relation): mô tả các thông tin liên quan đến tài liệu khác, có thể dùng đường dẫn (URL). Diện bao quát (Coverage): Các thông tin liên quan đến phạm vi, quy mô hoặc mức độ bao quát của tài liệu. Bản quyền (Right): Các thông tin liên quan đến bản quyền của tài liệu. Cú pháp của Dublin Core Các phần tử Dublin Core được chèn vào phần giữa các thẻ (tags). Cú pháp chung nhất cho Dublin Core như sau: content= “giá trị trường”> Theo chuẩn Dublin Core, chúng ta có thành phần để miêu tả cho một tài liệu. Tuy nhiên các thành phần mô tả một tài liệu có sự khác biệt. Vì thế tôi dựa vào tài liệu [6] để xác định các thông tin cơ bản mô tả một tài liệu. Tổng kết chúng ta sẽ có tất cả bao gồm 8 thành phần cơ bản mô tả thông tin của một tài liệu trong Bảng 2.2: Bảng 2.2: Các trường thông tin cơ bản mô tả một tài liệu Thẻ Metadata Chú thích Title Tiêu đề của tài liệu. Author Tên của những tác giả viết tài liệu. Description Nội dung tóm tắt trong tài liệu. Subject Nhóm tài liệu Type Loại tài liệu Format Định dạng tài liệu Resource Nguồn gốc của tài liệu URL Đường dẫn nơi chứa tài liệu Upload tài liệu vào kho Thiết kế và cài đặt cơ sở dữ liệu. Xây dựng chương trình Import dữ liệu từ tập tin bằng định dạng .xls hoặc .xlsx (mô tả thông tin tài liệu) vào cơ sở dữ liệu SQL server, rút trích tự động những mô tả khác chưa có trong tập tin mô tả thông tin tài liệu. Xây dựng công cụ upload tài liệu nguồn vào kho lưu trữ. Công cụ xây dựng Microsoft SQL Server 2008. Môi trường phát triển Microsoft Visual Studio 2008. Giải pháp khai thác tài liệu Thay vì truy xuất trực tiếp vào cơ sở dữ liệu để khai thác, thì trong ứng dụng này tôi sẽ làm việc thông qua Web Service. Bên cạnh đó, vì hệ thống được xây dựng để khai thác tài liệu trên máy tính bảng, do đó, giao tiếp qua Web Service, cũng sẽ giải quyết được vấn đề tương tác, trao đổi dữ liệu giữa các ứng dụng khác nhau trên các nền tảng khác nhau. Mặt khác, khi xây dựng mô-đun kho tài liệu, tôi chọn công nghệ của Microsoft, nên tôi sẽ chọn WCF Data Service để xây dựng Web Service giúp truyền nhận thông tin giữa kho tài liệu trên máy chủ và ứng dụng khai thác tài liệu trên nền tảng Android. Xây dựng WCF Data Service sử dụng EF WCF Data Service được xây dựng theo kiến trúc siêu dữ liệu (metadata), với các bước cơ bản như sau: Xây dựng các mô hình dữ liệu EDM. Mô hình này sẽ mô tả các lớp chính trong ứng dụng và EF sử dụng mô hình mẫu này trong khi truy vấn từ cơ sở dữ liệu, tạo các đối tượng từ dữ liệu và sau đó đưa các thay đổi ngược trở lại vào cơ sở dữ liệu. Xác định các kết nối đến cơ sở dữ liệu. Viết chương trình Upload tài liệu vào kho. Dựng WCF Data Service: xây dựng các truy vấn lấy dữ liệu từ cơ sở dữ liệu dựa trên mô hình dữ liệu EDM. Xây dựng ứng dụng khai thác kho tài liệu trên máy tính bảng Thiết kế giao diện cho ứng dụng. Xây dựng phương thức truy vấn tới WS. Kiểm tra kết nối máy chủ (WS). Kết nối với WS. Khai thác dữ liệu: thực hiện qua 2 bước: Bước 1: Dữ liệu được lấy từ server thông qua webservice và trả về định dạng (để kết nối với thiết bị di động) là JSON. Bước 2: Thông tin nhận được (JSON) qua bộ phân tích dữ liệu ở ứng dụng sẽ được phân tích thành đối tượng và hiểu thị trực quan cho người dùng. Công cụ xây dựng Để phát triển ứng dụng với WCF ta cần các công cụ sau:  .NET Framework 4.0. Microsoft Visual Studio 2010 Để xây dựng ứng dụng khai thác tài liệu trên máy tính bảng cần các công cụ sau: Android SDK, Eclipse. Việc lựa chọn các công nghệ này để phát triển ứng dụng đều dựa trên tính phổ biến và thông dụng hiện nay. Phần chính là Server sẽ cung cấp các phương thức để cập nhật, truy xuất thông tin từ kho dữ liệu, phần ở UD SmartBook mang tính chất hiển thị trực quan. TRIỂN KHAI ỨNG DỤNG Trong chương ba, tôi sẽ trình bày cách xây dựng cụ thể từng mô-đun, một số đoạn mã nguồn tiêu biểu và một số hình ảnh trong quá trình triển khai thử nghiệm ứng dụng. PHÁT TRIỂN ỨNG DỤNG Xây dựng kho tài liệu Thiết kế cơ sở dữ liệu Dựa vào biểu đồ lớp chúng ta sẽ thiết kế các bảng dữ liệu tương ứng trong SQL Server. Cơ sở dữ liệu của kho tài liệu gồm các bảng cơ bản như sau: Document: lưu trữ thông tin mô tả tài liệu GroupDocument: lưu trữ thông tin chuyên ngành hoặc lĩnh vực của tài liệu. Ví dụ như công nghệ thông tin, xây dựng, kế toán,..vv. TypeDocument: lưu trữ thông tin loại tài liệu, ví dụ như tài liệu đó là bài giảng hay giáo trình, bài báo khoa học, luận văn tốt nghiệp..vv. User: lưu trữ thông tin của cán bộ quản trị. Ngoài ra chúng ta còn một số bảng để lưu trữ trữ thông tin và phân quyền truy cập cho người quản trị Cấu trúc chi tiết của các bảng như sau: Bảng 3.1: Cấu trúc chi tiết bảng GroupDocument Tên trường Kiểu Mô tả GroupDocumentId uniqueidentifier Mã nhóm tài liệu Name nvarchar(100) Tên nhóm tài liệu Abbreviation nvarchar(50) Tóm tắt Bảng 3.2: Cấu trúc chi tiết bảng TypeDocument Tên trường Kiểu Mô tả TypeDocumentId uniqueidentifier Mã loại tài liệu Name nvarchar(100) Tên loại tài liệu Abbreviation nvarchar(50) Tóm tắt Bảng 3.3: Cấu trúc chi tiết bảng Document Tên trường Kiểu Mô tả DocumentId uniqueidentifier Mã tài liệu Title nvarchar(127) Tên tài liệu Author nvarchar(100) Tên tác giả DocumentGroupId uniqueidentifier Mã nhóm tài liệu Description nvarchar(1000) Mô tả tài liệu FormatType varchar(10) Định dạng tài liệu URL nvarchar(255) Địa chỉ của tài liệu Source nvarchar(255) Nguồn gốc tài liệu DocumentTypeId uniqueidentifier Mã loại tài liệu. Bảng 3.4: Cấu trúc chi tiết bảng User Tên trường Kiểu Mô tả UserId uniqueidentifier Mã người quản trị UserName nvarchar(50) Tên đăng nhập Password nvarchar(128) Mật khẩu LastName nvarchar(50) Họ FirstName nvarchar(50) Tên Mô hình dữ liệu quan hệ: Hình 3.1: Mô hình dữ liệu quan hệ Import dữ liệu từ tập tin mô tả bằng định dạnh Excel vào cơ sở dữ liệu Import dữ liệu từ tập tin mô tả (bằng định dạng.xls hoặc .xlsx) vào cơ sở dữ liệu: là cách thức chuyển dữ liệu trong tập tin bằng định dạng.xls (.xlsx) và đưa nó vào trong cơ sở dữ liệu SQL server. Theo đó, mỗi tập tin bằng định dạng .xls (.xlsx) tương ứng là một bản ghi trong bảng dữ liệu, mỗi cột sẽ tương ứng với một trường trong bản ghi đó. Thuật toán: Bước 1: chuẩn bị tập tin bằng định dạng .xls (.xlsx) và cơ sở dữ liệu tương ứng (tạo bảng chứa các trường có thông tin trong tập tin bằng .xls hoặc .xlsx). Kiểm tra dữ liệu đầu vào có đúng định dạng quy định hay không? Nếu có sang bước 2, ngược lại đưa ra thông báo cho người sử dụng. Bước 2: kiểm tra dữ liệu trong tập tin mô tả dữ liệu (tập tin định dạng .xls hoặc .xlsx) và so sánh với các trường trong cơ sở dữ liệu tương ứng có trùng khớp hay không? Nếu trùng khớp thì chèn vào cơ sở dữ liệu, ngược lại thông báo lỗi. Sang bước 3. Bước 3: Upload tài liệu vào kho. Cài đặt: private Document ReadFile(FileInfo file, bool hasHeaders) { Document doc=_objectSpace.GetOrNew("Document",Guid.Empty,null)as Document; string HDR = hasHeaders ? "Yes" : "No"; string strConn if (file.FullName.Substring(file.FullName.LastIndexOf('.')).ToLower()==".xlsx") strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + file.FullName + ";Extended Properties=\"Excel 12.0;HDR=" + HDR + ";IMEX=0\""; else strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + file.FullName + ";Extended Properties=\"Excel 8.0;HDR=" + HDR + ";IMEX=0\""; DataSet output = new DataSet(); using (OleDbConnection conn = new OleDbConnection(strConn)) { conn.Open(); DataTable schemaTable = conn.GetOleDbSchemaTable( OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); foreach (DataRow schemaRow in schemaTable.Rows) { string sheet = schemaRow["TABLE_NAME"].ToString(); if (!sheet.EndsWith("_")) { try { OleDbCommand cmd = new OleDbCommand("SELECT * FROM [" + sheet + "]", conn); cmd.CommandType = CommandType.Text; DataTable outputTable = new DataTable(sheet); output.Tables.Add(outputTable); new OleDbDataAdapter(cmd).Fill(outputTable); } catch (Exception ex) { throw new Exception(ex.Message + string.Format("Sheet:{0}.File:F{1}", sheet, file.FullName), ex); }}}} doc.Title = output.Tables[0].Rows[0].ToString(); doc.Author = output.Tables[0].Rows.ToString(); doc.Source = output.Tables[0].Rows[2].ToString(); doc.Description = output.Tables[0].Rows[3].ToString(); return doc;} Rút trích thông tin và Upload tài liệu nguồn vào kho Rút trích tự động các thông tin mô tả khác: như nhóm tài liệu, loại tài liệu, định dạng tập tin, địa chỉ của tài liệu, phần này chúng ta sẽ xử lí trực tiếp trong hàm upload tài liệu vào kho lưu trữ. Xây dựng công cụ upload tài liệu nguồn vào kho lưu trữ: xây dựng hàm copy dữ liệu từ nguồn đến kho tài liệu. Đồng thời, rút trích thông tin về nhóm tài liệu, loại tài liệu, định dạng tập tin, địa chỉ URL của tài liệu (Đây là những thông tin không xuất hiện trong tập tin mô tả bằng định dạng .xls hoặc .xlsx). Cài đặt: private void ProcessImportData(ImportConfig config) { List directorys = new List(); DirectoryInfo dir = new DirectoryInfo(config.DirectorySource); foreach (DirectoryInfo d in dir.GetDirectories()) {// directorys.Add(d); foreach (DirectoryInfo d2 in d.GetDirectories()) { foreach (DirectoryInfo d3 in d2.GetDirectories()) { FileInfo[] files = null; files = d3.GetFiles("*", SearchOption.AllDirectories); FileInfo f = files.SingleOrDefault(fi => fi.Name.Contains("Mota") && (fi.Extension == ".xls" || fi.Extension == ".xlsx")); if (f != null) { FileInfo fileData = files.SingleOrDefault(fi => !(fi.Name.Contains("Mota") && (fi.Extension == ".xls" || fi.Extension == ".xlsx"))); if (fileData != null) { // Add to data Document doc = ReadFile(f, false); CriteriaOperator filter = new BinaryOperator("Abbreviation", d.Name); DocumentGroup documentGroup = (DocumentGroup)_objectSpace.GetObjects("DocumentGroup", filter)._First(); filter = new BinaryOperator("Abbreviation", d2.Name); DocumentType documentType = (DocumentType)_objectSpace.GetObjects("DocumentType", filter)._First(); if (documentGroup != null && documentType != null) { doc.DocumentGroupId = documentGroup.DocumentGroupId; doc.DocumentTypeId = documentType.DocumentTypeId; string fileName = doc.DocumentId.ToString() + fileData.Extension; File.Copy(fileData.FullName,Path.Combine(config.DirectoryDest,fileName), true); doc.Url = config.ServerMapPath + (config.ServerMapPath.EndsWith("/") ? "" : "/") + fileName; doc.FormatType = fileData.Extension; _objectSpace.SaveChanges(); }}}}}}} Xây dựng ứng dụng khai thác kho tài liệu Khai thác kho tài liệu thông qua môi trường Internet, diễn ra qua 2 bước chính: Bước 1: thông tin được lấy trực tiếp từ server thông qua Web Service và kiểu dữ liệu được truyền tải để kết nối giữa nền tảng Android với dữ liệu là JSON. Đây là kiểu dữ liệu chuẩn được sử dụng nhiều trong các nền tản công nghệ lớn và có thể truy xuất một cách nhanh chóng. Bước 2: thông tin nhận được (JSON) qua bộ phân tích dữ liệu ở ứng dụng được phân tích thành đối tượng và hiểu thị trực quan cho người dùng. Do đó, để xây dựng ứng dụng khai thác kho tài liệu ta cần thực hiện theo trình tự: Bước 1: Xây dựng WCF Data Service: theo các bước cơ bản như sau: Khởi động Microsoft Visual Studio. Tạo mới một Project, chọn WCF Data Service. Tạo mô hình dữ liệu EDM. Kết nối với cơ sở dữ liệu, viết các phương thức truy xuất cơ sở dữ liệu. Cấu hình cho WCF Data Service và tạo Endpoint Address. Bước 2: Xây dựng ứng dụng trên máy tính bảng để khai thác tài liệu Thiết kế giao diện cho ứng dụng trên UD SmartBook. Gọi hàm để lấy dữ liệu từ WCF Data Service, truy xuất từ Endpoint Address để lấy dữ liệu. Hiển thị kết quả cho người sử dụng. Các chức năng cơ bản của ứng dụng trên UD SmartBook: Hiển thị tài liệu: tiến hành viết các phương thức để truy vấn địa chỉ URL hiển thị toàn bộ tài liệu chứa trong kho: Tìm kiếm tài liệu Chọn tiêu chí tìm kiếm. Nhập thông tin tài liệu cần tìm kiếm. Viết các phương thức để truy vấn qua WS. Hiển thị kết quả cho người sử dụng. Download tài liệu Sau khi tìm kiếm tài liệu, viết phương thức truy vấn qua WCF địa chỉ URL của tài liệu đó, duyệt qua Internet để tải về. Sau khi tải thành công, chúng ta có thể khai thác trực tiếp trên UD SmartBook. TRIỂN KHAI THỬ NGHIỆM Thử nghiệm Upload tài liệu vào kho Để Upload tài liệu vào kho cần thực hiện theo các bước sau: Bước 1: chuẩn bị dữ liệu được lưu trữ theo cấu trúc thư mục đã quy định sẵn. Bước 2: khởi động chương trình Upload tài liệu. Bước 3: tạo nhóm tài liệu và loại tài liệu của tài liệu sẽ đưa vào kho. Nếu đã tồn tại thì sang bước 4. Tạo nhóm tài liệu: Hình 3.2: Tạo nhóm tài liệu Trong bước này, người quản trị (tùy vào quyền hạn cho phép) có thể thêm, sửa, xóa, xem nhóm tài liệu tức xem tài liệu chuyên ngành hay lĩnh vực nào hiện có trong kho tài liệu. Bên cạnh đó, có thể tạo ghi chú, lưu lại lịch sử cập nhật nhóm tài liệu. Cũng có thể xuất dữ liệu có trong bảng GroupDocument sang tập tin định dạng .xls hoặc .xlsx bằng nút lệnh Export Tạo loại tài liệu: Hình 3.3: Tạo loại tài liệu Trong bước này, người quản trị (tùy vào quyền hạn cho phép) có thể thêm, sửa, xóa, xem loại tài liệu tức là xem có bao nhiêu loại tài liệu hiện có trong kho tài liệu. Bên cạnh đó, có thể tạo ghi chú, lưu lại lịch sử cập nhật loại tài liệu. Cũng có thể xuất dữ liệu có trong bảng TypeDocument sang tập tin định dạng .xls hoặc .xlsx bằng nút lệnh Export Bước 4: chọn chức năng tải tài liệu và nhập các thông tin cần thiết. Hình 3.4: Upload tài liệu vào kho Trong đó: Thư mục dữ liệu: thư mục chứa dữ liệu gốc và tập tin mô tả thông tin tài liệu. Thư mục đích cần chuyển đến: đây là thư mục chứa dữ liệu gốc, sau khi dữ liệu được upload lên kho. Sub URL: địa chỉ của tài liệu, khi truy xuất thông qua máy ảo. Địa chỉ này trỏ về thư mục đích cần chuyển đến. Chuẩn thư mục Import: tức trước khi upload tài liệu vào kho, chúng ta cần tạo cây thư mục như trên và lưu dữ liệu vào đó. Cây thư mục có dạng cụ thể như sau (có thể thay đổi nơi lưu trữ, nhưng cấu trúc sau thì không thay đổi): Document\Tên nhóm tài liệu\Tên loại tài liệu\thư mục chứa dữ liệu (dữ liệu ở đây bao gồm tập tin gốc và tập tin mô tả). Bước 5: Chọn nút Save để lưu thao tác và kết thúc. Thử nghiệm khai thác kho tài liệu thông qua UD SmartBook Để khai thác kho tài liệu thông qua máy tính bảng UD SmartBook, chúng ta có 3 chức năng cơ bản như sau: Hiển thị danh sách tài liệu hiện có trong kho Tìm kiếm tài liệu trong kho theo các tiêu chí khác nhau, ví dụ theo tiêu đề, tên tác giả, lĩnh vực..vv. Download tài liệu và đọc tài liệu trên UD SmartBook. Chúng ta sẽ khai thác tài liệu lần lượt như sau: Hiển thị danh sách tài liệu trong kho Hình 3.5: Hiển thị danh sách tài liệu trong kho Người sử dụng có thể chọn chuyên ngành hoặc loại tài liệu cần hiển thị, ứng dụng sẽ hiển thị toàn bộ tài liệu thuộc chuyên ngành hoặc loại tài liệu đó hiện có trong kho tài liệu. Vì màn hình thiết bị di động thường nhỏ (7 inches), nên mỗi trang màn hình mặc định chỉ hiển thị 4 kết quả đầu tiên, người sử dụng có thể chọn trang tiếp theo đến trang cuối cùng để xem các kết quả còn lại. Tìm kiếm tài liệu Hình 3.6: Tìm kiếm tài liệu Người sử dụng có thể chọn lựa tiêu chí tìm kiếm theo tên tài liệu, tác giả, chuyên ngành tài liệu. Sau đó gõ vào thông tin cần tìm kiếm và nhấn nút Search, ứng dụng sẽ hiển thị kết quả trả về. Download tài liệu. Sau khi tìm kiếm hoặc hiển thị danh sách tài liệu, người sử dụng có thể sử dụng chức năng Download để tải và khai thác tài liệu ngoại tuyến trên UD SmartBook. Hình 3.7: Download tài liệu Đọc tài liệu Sử dụng phần mềm đọc sách UD Read, hoặc một số phần mềm đọc sách khác có sẵn trên thiết bị. Phụ thuộc vào từng ứng dụng đọc sách mà có thể hiển thị các nút chức năng khác nhau, với ứng dụng này chúng ta sẽ có một số nút như: phóng to, thu nhỏ, chuyển trang, hiển thị trang hiện thời trên tổng số trang,… Hình 3.8: Đọc tài liệu trên UD SmartBook ĐÁNH GIÁ Việc triển khai ứng dụng bước đầu đã ghi nhận được những kết quả khả quan. Hệ thống cơ bản giải quyết được vấn đề đặt ra: Kho tài liệu phục vụ việc cập nhật và lưu trữ tài liệu với hơn 200 giáo trình, bài giảng, 300 bài báo khoa học, 100 luận văn thuộc chuyên ngành CNTT (ở thời điểm thực hiện thử nghiệm này). Con số này luôn được cập nhật thường xuyên. Xây dựng thành công ứng dụng khai thác kho tài liệu trên UD SmartBook, ứng dụng này đã đáp ứng được nhu cầu tìm kiếm và Download những tài liệu cần thiết cho quá trình học tập và nghiên cứu của sinh viên, cán bộ, giảng viên trường Đại học Đà Nẵng. Kho tài liệu và ứng dụng khai thác kho tài liệu trên UD SmartBook đã đáp ứng được các yêu cầu phi chức năng: lưu trữ được khối lượng dữ liệu lớn, hệ thống chạy ổn định, giao diện đơn giản, dễ sử dụng.

Các file đính kèm theo tài liệu này:

  • docmauword_5268.doc
Tài liệu liên quan