Chương 5: Các kĩ thuật xử lí trong ứng dụng
5.5 Các giải pháp về vấn đề lưu trữ thông tin trong ứng dụng
5.5.1 Lưu trữ thông tin về ứng dụng:
Đặt vấn đề:
Bất kì chương trình có dữ liệu nào cũng có một yêu cầu đặt ra, đó là yêu cầu lưu trữ dữ liệu của chương trình đó. Nhu cầu đặt ra ở đây là làm sao lưu trữ các dữ liệu của chương trình một cách an toàn nhất, hiệu quả nhất và ít tốn không gian lưu trữ nhất.
Hướng giải quyết:
Việc lưu trữ dữ liệu của ứng dụng có một số hướng giải quyết như sau:
• Lưu trữ trực tiếp trên ứng dụng:
o Ưu điểm: Việc lưu trữ và lấy dữ liệu ra sử dụng nhanh, lưu trữ dễ dàng, bảo mật tốt và không bị mất thông tin.
o Khuyết điểm: Việc lưu trữ trực tiếp trong chương trình qua thời gian sẽ làm chương trình trở nên nặng hơn, tốn nhiều không gian bộ nhớ khi khởi động chương trình. Và nếu dữ liệu lưu trữ bị sai, chương trình có thể bị lỗi.
• Lưu trữ trên tập tin trong hệ thống:
o Ưu điểm: Lưu trữ dễ dàng, không bị mất dữ liệu khi khởi động lại máy.
o Khuyết điểm: Việc lưu trữ trên tập tin hệ thống có thể bị nhiều khuyết điểm như:
Dễ dàng bị di chuyển và thất thoát dữ liệu, khi bị di chuyển, đổi tên hay thất thoát dữ liệu dễ xảy ra lỗi chương trình khi không thể tìm thấy dữ liệu cần tìm.
Chương 6: các kĩ thuật xử lý trong ứng dụng
Về vấn đề bảo mật: Nếu lưu trữ không có biện pháp bảo mật, người sử dụng dễ bị lộ thông tin nếu làm mất máy.
Nếu có bảo mật thông tin, chương trình phải thêm phần xử lý về bảo mật, làm chương trình xử lý trở nên nặng nề hơn.
• Giải pháp khác:
Research In Motion OS cung cấp cho người dùng một giải pháp lưu trữ dữ liệu của chương trình mình một cách dễ dàng, bảo mật tốt và không bị thất thoát thông tin: Sử dụng Persistent Data.
Giải pháp sử dụng:
Persistent Data là một hỗ trợ của Research In Motion OS, giúp cho người dùng có thể lưu trữ dữ liệu chương trình của mình trong bộ nhớ máy, tránh trường hợp thất thoát dữ liệu khi khởi động lại máy, tháo pin và một số trường hợp có thể gây thoát thoát dữ liệu khác.
Persistent Data được lưu trữ trong bộ nhớ máy theo từng phần, mỗi phần được quản lý riêng biệt bằng một bảng Hash để chứa dữ liệu của chương trình. Mỗi phần đều có một long ID để phân biệt với các dữ liệu thuộc chương trình khác.
Hình 5.20 - Sơ đồ quản lý Persistent Data trong máy BlackBerry (Nguồn:
http://www.codeproject.com/KB/Blackberry/EndToEndBlackBerryApp3.aspx) Khi cần đọc dữ liệu của chương trình mình, người dùng cần cung cấp Long ID đã được định nghĩa và lưu trữ sẵn từ trước, đồng thời cần phải cung cấp đầy đủ
tên và cấu trúc dữ liệu đã được lưu trữ để có thể lấy ra chính xác dữ liệu lưu trữ của mình và sử dụng cho chương trình.
Trong chương trình gởi và nhận mail trên BlackBerry, giải pháp lưu trữ dữ liệu sử dụng là giải pháp sử dụng Persistent Data. Chương trình sử dụng một lớp GlobalResourceManager để lưu trữ mọi thông tin lưu trữ của chương trình.
Mỗi lần cần lưu trữ hoặc lấy ra sử dụng, chương trình kết nối với Persistent Store thông qua Long ID đã được định nghĩa sẵn, lưu trữ và lấy dữ liệu để sử dụng cho chương trình.
• Cách thức lưu trữ: Người dùng có thể lưu trữ bằng cấu trúc:
PersistenObject.setContent(“Dữ liệu cần lưu trữ”) PersistentObject.commit() : Lưu trữ dữ liệu
• Cách thức lấy dữ liệu: Người dùng có thể lấy dữ liệu trong Persistent Store thông qua cấu trúc:
PersistentStore.getPersistentObject(“Long ID định nghĩa sẵn”).
5.5.2 Quản lý và sử dụng cấu hình E-mail:
Đặt vấn đề:
Đối với một E-mail Client, nhu cầu của người dùng không chỉ dừng lại là gởi và nhận một E-mail nhất định. Nhu cầu của người dùng là rất lớn, một người có thể có nhiều địa chỉ E-mail sử dụng cho nhiều mục đích khác nhau. Người dùng có thể sử dụng một E-mail liên tục trong nhiều lần, vì vậy yêu cầu đặt ra là, làm sao có thể lưu trữ và quản lý cấu hình E-mail một cách hiệu quả.
Hướng giải quyết:
Cách giải pháp đặt ra cho vấn đề sử dụng nhiều địa chỉ E-mail là:
• Tạo ra một khung cho phép người dùng điền các thông tin của địa chỉ E- mail mỗi khi cần đọc một E-mail cụ thể:
Chương 6: các kĩ thuật xử lý trong ứng dụng
o Ưu điểm: Người dùng có thể sử dụng một E-mail cụ thể bằng cách điền đầy đủ thông tin mỗi lần sử dụng.
o Khuyết điểm: Người dùng mỗi khi sử dụng E-mail đều phải điền thông tin lặp đi lặp lại, điều này gây cản trở trong quá trình sử dụng E-mail. Nhất là đối với việc sử dụng E-mail trên thiết bị di động vì các thiết bị này có khả năng nhập liệu khá hạn chế.
• Chương trình có thể quản lý các cấu hình E-mail thành một danh sách, giúp người dùng có thể lựa chọn cấu hình E-mail cần sử dụng mỗi lần đọc E-mail. Ngoài ra người dùng còn có thể thêm, xóa, sửa cấu hình E- mail tùy thuộc mục đích sử dụng của mình. Ở đây chương trình sử dụng giải pháp này
Giải pháp được sử dụng:
Giải pháp sử dụng ở đây là sử dụng một danh sách để lưu trữ các cấu hình E- mail mà người dùng mong muốn sử dụng: Khi cần sử dụng một E-mail, người dùng thêm cấu hình E-mail này vào trong danh sách cấu hình E-mail. Chương trình sẽ lưu trữ danh sách cấu hình E-mail này bằng cách lưu trữ dữ liệu như trên. Khi không cần sử dụng cấu hình E-mail đó nữa. Người dùng có thể xóa cấu hình hoặc sửa cấu hình tùy mục đích sử dụng.
Hình 5.21 - Cấu trúc lưu trữ danh sách các cấu hình E-mail
Một cấu hình E-mail được lưu trữ trong một lớp AccountConfig , danh sách cấu hình E-mail là một mảng bao gồm nhiều AccountConfig nằm trong lớp
GlobalResourceManager để lưu trữ và sử dụng.
5.5.3 Quản lý và sử dụng mẫu E-mail(Template):
Đặt vấn đề:
Khi sử dụng E-mail, người sử dụng có thể có nhu cầu sử dụng cùng một nội dung E-mail nhiều lần. Ví dụ như khi viết thư xin việc, thư giới thiệu.v.v. E-mail còn là một công cụ để phân phối E-mail cho nhiều người, ví dụ như phân phối công việc cho các nhân viên trong công ty. Ngoài ra, E-mail còn được sử dụng như một công cụ quảng cáo.
Trong quá trình sử dụng, người dùng có thể có nhu cầu gởi cùng 1 nội dung E-mail cho nhiều địa chỉ, hoặc gởi E-mail cho người dùng với 1 nội dung, nhưng thông tin nội dung có thể khác nhau một bộ phận nào đó, ví dụ như tên, địa chỉ E- mail.v.v.
Ngoài ra, việc nhập liệu trên thiết bị di động rất hạn chế, đối với những E- mail dài và có nội dung phức tạp, việc soạn thảo trên điện thoại có thể gây khó khăn cho người dùng. Yêu cầu đặt ra là sử dụng một nội dung có sẵn(Có thể đã được soạn thảo từ máy tính) và sử dụng trong thiết bị di động.
Hướng gải quyết:
Có nhiều hướng giải quyết cho vấn đề sử dụng mẫu E-mail này:
• Định nghĩa sẵn một số mẫu E-mail có sẵn trong chương trình.
o Ưu điểm:Người dùng có thể sử dụng mẫu E-mail dễ dàng và nhanh chóng.
o Khuyết điểm: Các mẫu E-mail được định nghĩa trong chương trình sẽ cố định, không thể thay đổi để phù hợp với yêu cầu của từng người dùng cụ thể. Chương trình có thêm dữ liệu sẽ bị nặng khi sử dụng.
• Cho phép người dùng chọn mẫu E-mail từ tập tin trong bộ nhớ máy:
o Ưu điểm: Người dùng có thể thêm mẫu E-mail mới để sử dụng tùy thuộc nhu cầu.
Chương 6: các kĩ thuật xử lý trong ứng dụng
o Khuyết điểm: Người dùng muốn thêm hoặc sửa mẫu E-mail đều phải thông qua một tác nhân bên ngoài, ví dụ như máy tính, các mẫu E-mail lưu trữ ngoài có thể bị thất thoát hoặc thay đổi không như mong muốn của người dùng
• Cung cấp cho người dùng công cụ để quản lý, sử dụng và lưu trữ các mẫu E-mail tùy theo nhu cầu sử dụng mẫu E-mail của mỗi người dùng:
Chương trình gởi và nhận E-mail sử dụng giải pháp này.
Giải pháp được sử dụng:
Giải pháp sử dụng ở đây là sử dụng một danh sách các mẫu E-mail để sử dụng và lưu trữ các mẫu E-mail. Người dùng có thể thêm mới mẫu E-mail khi cần thiết, xóa các mẫu E-mail không cần thiết và sử dụng chúng trong quá trình gởi E- mail.
Khi người dùng thêm mới một mẫu E-mail, người dùng có thể chọn tự nhập liệu hoặc sử dụng một mẫu E-mail từ tập tin bên ngoài. Điều này giúp cho người dùng có thể nhập liệu bằng chính thiết bị di động hoặc sử dụng máy tính để nhập liệu với những mẫu E-mail phức tạp.
Chương trình lưu trữ các mẫu E-mail trong lớp
GlobalResourceManger, mỗi mẫu E-mail được lưu trữ bằng lớp
MailTemplate. Việc lưu trữ mẫu E-mail sử dụng Persistent Store đã đề cập ở trên.