Trong ứng dụng thử nghiệm này thông tin ngữ cảnh được đặc trưng bởi các thông tin
người học( tuổi tác, giới tính ), các thông tin về vị trí người học ( trong bệnh viện,
trong rạp chiếu phim, trong cửa hàng dụng cụthểthao) , các thông tin về lịch sử học
tập của người học ngoài ra là thông tin do người học cung cấp ( thời gian bài học mà
người học mong muốn).
59 trang |
Chia sẻ: lylyngoc | Lượt xem: 3240 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu xây dựng ứng dụng học tiếng anh theo ngữ cảnh trên thiết bị di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
iệt. Với mỗi
mô hình này cho phép ta trả lời câu hỏi “Người sử dụng đang ở trong hoàn cảnh nào ?
Trạng thái của người sử dụng như thế nào? Nó có tương tự như trạng thái XYZ nào đó
không?” Trong khuôn khổ khóa luận này, ta chỉ ta tập trung vào các mô hình hỗn hợp
đơn giản bao hàm các thông tin cần thiết.
Hình 2.2-8 Phân loại ngữ cảnh
Context Classification : Quá trình này phân loại các ngữ cảnh độc lập thành các
dạng ngữ cảnh cơ bản một cách tự nhiên và hiệu quả. Kết quả của quá trình phân loại
này chính là output của mô hình nhận biết ngữ cảnh. Hiếm khi có sự tương ứng một
một giữa một mô hình đơn lẻ hoặc một loại mô hình nào đó với một hành động được
thực hiện. Quá trình phân loại ngữ cảnh sử dụng ngôn ngữ xác suất tự nhiên để xác
định ngữ cảnh nào đó. Giả dụ ta có tập luật : “Nếu ngày x là một ngày trong tuần (từ
thứ 2 đến thứ 6) và thời gian là sau 17h00 và hành động của anh ta là giống như
đang rời khỏi phòng”. Vậy thì bối cảnh hành động của anh ta là anh ta anh ta đang đi
làm về.
11
Hình 2.2-9 Thực thi
Thực thi (action) hay kết quả của quá trình Context Classification được đẩy lên cho
ứng dụng. Tuy nhiên ứng dụng có thể tương tác với hệ thống nhận biết ngữ cảnh bằng
cách thêm mới các tập luật, các mô hình và các tính năng.
2.2.3 Xây dựng nội dung
Thông tin về ngữ cảnh ( cũng như là các hành động, phản ứng) của người sử dụng
được gửi tới server. Từ các thông tin như vậy và dựa trên tập luật đã được xây dựng,
server sẽ xử lý về nội dung phù hợp nhất với hoàn cảnh hiện tại của người sử dụng.
Quá trình diễn ra hoàn toàn tự động. Thông tin trả về cho client thể hiện việc server
phản ứng lại đối với các hành động vừa diễn ra của client. Do đó chúng ta cần xây
dựng nội dung để trả về cho client. Vậy nội dung đó như thế nào? Làm sao để tạo ra
nội dung ấy?
2.2.3.1 Khuôn dạng nội dung
Nội dung trả về được chia làm 2 loại là tư liệu học tập và các thông báo của server
với client.
Tư liệu học tập : nội dung trả về là các lý ngữ pháp, bài tập, thực hành được trình
bày dưới dạng text hoặc dưới dạng các file media ( mp3, wav..) hoặc cũng có thể là
một cấu trúc thông tin sử dụng cho việc tạo bài test.
Ví dụ :
Nội dung về ngữ pháp
Mệnh lệnh thức trực tiếp
12
Close the door
Please turn off the light.
Open the window.
Be quiet.
Sau đây là lời thoại trong một đoạn quảng cáo bia trên TV:
Tên cướp xông vào một quán bia, rút súng ra chĩa vào mọi người và quát:
- Give me your jewelry! Don’t move!
Một thanh niên từ từ tiến lại từ phía sau, gí một chai bia Laser lạnh vào gáy hắn:
- Drop your weapon!
Tên cướp tưởng sau gáy hắn là một họng súng liền buông vũ khí đầu hàng.
Giả sử cấu trúc một câu hỏi trong bài test
Q1 - She played _____.
beautiful
beautifuly
beautifully
Hình 2.2-10 Hình hiển thị câu hỏi trên thiết bị
Nội dung trả về một link file media. Có thể là thông điệp dưới dạng
Thông điệp và các thông tin điều khiển client : Ngoài các ngữ liệu học tập ra
thông điệp trả về cũng cần có những thông tin điều khiển giúp client hoạt động một
cách đúng đắn. Ngoài các phương cách hiển thị nội dung, thì còn có thể có thêm các
thông báo cho người sử dụng, hoặc các dạng form tương tác để lấy ý kiến người sử
dụng…
13
2.2.3.2 Xây dựng nội dung thích nghi theo ngữ cảnh
Vấn đề cơ bản nhất trong việc xác định nội dung bài học thích nghi theo ngữ cảnh
hiện tại của người học đó là việc xác định được ngữ cảnh học tập và việc xác định nội
dung. Trong khuôn khổ khóa luận này ta sẽ xây dựng một tập luật đơn giản để qua đó
với mỗi ngữ cảnh độc lập ta lại xác định được một tập các nội dung phù hợp với ngữ
cảnh đó.
Để xây dựng tập luật này đầu tiên ta cần xác định được các thành phần cấu thành
lên tập luật đó.
Đầu tiên đó là “Location” của người dùng, “Location” tương ứng với khái niệm vị
trí, không gian mà người dùng đang hiện hữu. Đó có thể là một siêu thị nào đó, một
cửa hàng thể thao nào đó hoặc cũng có thể là trong một rạp chiếu phim… Sở dĩ ta
chọn “Location” làm điểm đầu tiên để đánh giá về ngữ cảnh đó là do vị trí của người
dùng rất quan trọng và nó ảnh hưởng đến hầu hết các thuộc tính khác của môi trường.
Ở trong khuôn khổ khóa luận này ta coi “Location” như là một trường hợp đặc biệt của
ngữ cảnh. Và đi coi như đó là một ngữ cảnh đã được phân loại.
Thứ hai đó là “Thông tin người dùng”, các thông tin về người dùng sẽ cung cấp
những thông tin về độ tuổi, giới tính, tình hình sức khỏe, trình độ hiện tại, … Nó sẽ
giúp ta nhiều trong việc chọn lựa nội dung ngữ liệu và cách hiển thị.
Thứ ba là “Lịch sử học tập “, những thông tin về quá trình học tập của người sử
dụng, những kiến thức mà người học đã từng học qua…
Với việc xây dựng một tập luật đơn giản ta chỉ cần 3 thành phần trên để minh họa
cho phương cách hoạt động của module “xây dựng nội dung” cung cấp ngữ liệu cho
người dùng.
Nội dung = ND(“Location”, “User Info”, “Learning History”);
Ở đây, để đơn giản ta sử dụng một dãy các luật if then để hình thành luật.
Ví dụ :
if( location== A ) then
If( userInfo == U) then
If( LearningHistory == E ) then {}
If(userInfo == V ) then
….
14
2.2.4 Cơ sở dữ liệu
Module ‘cơ sở dữ liệu’ đóng vai trò là nơi lưu trữ tất cả các thông tin về người
dùng cũng như là nội dung tư liệu của bài học. Hệ sử dụng một hệ quản trị cơ sở dữ
liệu : mysql hoặc mssql để quản lý dữ liệu người dùng. Hệ thống có thể lưu lại các
lược sử sử dụng của người dùng như : thời gian, mô hình ngữ cảnh hiện tại, những nội
dung đã cung cấp, trình độ hiện tại… Đối với ngữ liệu học tập thì được chia làm 2 loại
: nội dung dạng text hoặc nội dung dạng media. Đối với mỗi loại dạng nội dung khác
nhau ta có cách lưu trữ khác nhau để tối ưu bộ nhớ cũng như tối ưu cho việc truy suất
cơ sở dữ liệu.
2.2.5 Nhà cung cấp nội dung
Nhà cung cấp nội dung chuyên cung cấp các tư liệu học tập như : bài tập, giáo
trình, bài kiểm tra, bài test, các bài luyện nghe, luyện phát âm…vv. Bên cung cấp dịch
vụ khi có yêu cầu nội dung sẽ gửi yêu cầu tới nhà cung cấp nội dung. Từ đó nhà cung
cấp nội dung sẽ trả lại nội dung mà nhà cung cấp dịch vụ yêu cầu.
15
CHƯƠNG 3 CÁC KHÁI NIỆM VÀ CÔNG
NGHỆ LIÊN QUAN
3.1 Dịch vụ hướng vị trí (Location Base Services )
LBS là các dịch vụ có thể cung cấp cho các thiết bị di động thông qua mạng di
động và chức năng của các thiết bị đó.
LBS phát triển dựa trên công nghệ : GIS, internet và Mobile devices. Dựa vào công
nghệ GIS và các kỹ thuật định vị đã chuyển dần các ứng dụng truyền thống sang các
ứng dụng dựa trên vị trí. Thông qua việc tích hợp các công nghệ này vào các thiết bị di
động. Các nhà cung cấp dịch vụ có thể cung cấp rất nhiều các ứng dụng khác nhau dựa
cho các khách hàng khác nhau và ở những vị trí khác nhau. Các dịch vụ này được gọi
là các dịch vụ dựa trên vị trí người sử dụng hay là dịch vụ hướng vị trí.
Người sử dụng cung cấp thông tin cho nhà cung cấp dịch vụ : vị trí của họ, hoàn
cảnh xung quanh họ, nhu cầu cần đáp ứng… . Dựa vào những thông tin do người dùng
cung cấp, nhà cung cấp dịch vụ di động sẽ đưa ra những thông tin mà họ mong muốn.
Dịch vụ hướng vị trí là gì ?
Dịch vụ hướng vị trí (Location-Based Services) hay LBS là khái niệm xuất hiện từ
những năm 2000 tuy nhiên có chưa một định nghĩa, một khái niệm rõ ràng về nó. Ví
dụ như :
LBS là những dịch vụ cung cấp thông tin thông qua mạng lưới di động và sử dụng
khả năng xác định vị trí của các mạng di động [Virrantaus et al. 2001].
Hoặc LBS là dịch vụ mạng không dây sử dụng thông tin địa lý để phục vụ người sử
dụng di động. Bất kỳ dịch vụ nào mà ứng dụng của nó có sử dụng vị trí của thiết bị
đầu cuối đều là LBS.
Một dịch vụ dựa trên vị trí (LBS) yêu cầu có 5 thành phần cơ bản :
Phần mềm ứng dụng của nhà cung cấp dịch vụ
• Mạng di động dùng để trao đổi dữ liệu và yêu cầu cho dịch vụ
• Nhà cung cấp nội dung cho người dùng cuối dựa trên thông tin về vị trí của
người dùng cuối.
• Thiết bị định vị vị trí ( GPS được tích hợp trong điện thoại chẳng hạn)
• Thiết bị di động của người dùng cuối
16
Hình 3.1-1 Những thành phần cơ bản của một LBS
Trong nghiên cứu, LBS được coi như là một tập con đặc biệt của các dịch vụ nhận
biết ngữ cảnh (Context-aware Services). Nói chung, các dịch vụ nhận biết ngữ cảnh
được định nghĩa là các dịch vụ thích nghi tự động với các hành vi của chúng, ví dụ lọc
hoặc biểu diễn thông tin đối với 1 hoặc nhiều tham số phản ánh ngữ cảnh hiện tại và
mục tiêu. Các tham số này chính là thông tin ngữ cảnh.
LBS luôn được xem là các dịch vụ nhận biết ngữ cảnh vì vị trí chính là một trường
hợp đặc biệt của thông tin ngữ cảnh. Thông tin ngữ cảnh thường thì có những thông tin
quan trọng và có những thông tin ít quan trọng hơn
Hình 3.1-2 Phân loại thông tin ngữ cảnh
LBS có 2 dạng đó là LBS phản ứng (reactive) và LBS thực hiện trước
(proactive). Một LBS reactive luôn được kích hoạt bởi người dùng (kích hoạt phiên
làm việc ), và có sự tương tác yêu cầu dịch vụ và trả về nội dung yêu cầu của người
17
dùng. Chu trình yêu cầu và hồi đáp có thể thực hiện nhiều lần trước khi phiên làm việc
kết thúc. Do có chu trình lặp đi lặp lại như vậy nên LBS phản ứng thường được đặc
trưng bởi một mẫu tương tác đồng bộ giữa người dùng và dịch vụ. Ví dụ, người dùng
muốn tìm quán café vào buổi sáng ở gần nơi anh ta ở. Khi đó anh ta sẽ yêu cầu thiết
lập phiên làm việc với dịch vụ. Lần đầu anh ta yêu cầu danh sách các quán café quanh
anh ta. Dịch vụ sẽ tìm và lọc danh sách các quán café xung quanh nơi anh ta ở và trả
về cho anh ta. Sau đó anh ta yêu cầu tiếp xem những quán nào đang trong giờ mở cửa
hoặc quán nào có loại café Capuchino… Quá trình này sẽ tiếp tục cho tới khi nào dịch
vụ tìm thấy quán đúng anh ta yêu cầu. Khác với LBS phản ứng thì LBS thực hiện
trước được khởi tạo tự động ngay khi một sự kiện vị trí xác định trước xuất hiện. Giả
sử một du khách sử dụng dịch vụ LBS trong một bảo tàng lịch sử rộng lớn. Khi du
khách đi vào một vùng nào đó mới, thông tin giới thiệu về nơi đó hoặc những hiện vật
xung quanh đó sẽ được tự động gửi về máy của du khách. Ở LBS proactive, dịch vụ tự
thực hiện trước khi có yêu cầu của người dùng nên sự tương tác giữa người sử dụng và
dịch vụ xảy ra không đồng bộ.
3.2 Ngữ cảnh và Học theo ngữ cảnh trên di động
3.2.1 Ngữ cảnh (Context)
Context ta tạm dịch sang Tiếng Việt nghĩa là “Ngữ cảnh”. Nó là bất cứ thông tin
nào có thể dùng để phân biệt, xác định tình trạng hiện thời của thực thể hoặc các hành
động của thực thể. Ngữ cảnh bao hàm các thông tin về hiện trạng, trạng thái, vị trí,
không gian liên quan đến một cá nhân hoặc sự kiện cụ thể. Một ngữ cảnh là một môi
trường mà thực thể đó tồn tại hoặc sự kiện nào đó xảy ra. Ngữ cảnh là cực kỳ quan
trọng vì nó kiểm soát, ảnh hưởng và tác động đến mọi thứ trong nó. Theo Dey e tal .
(2001).
Mọi thứ đều diễn ra trong một ngữ cảnh nhất định. Và ngữ cảnh đó là duy nhất, nó
chi phối nội dung trong nó. Ta có thể xác định ngữ cảnh của một thực thể hoặc một sự
kiện thông qua đặc điểm riêng của thực thể hoặc sự kiện đó và môi trường chứa nó.
Như vậy với mỗi ngữ cảnh ta cần mã hóa và biểu diễn theo một dạng nào đó trên máy
tính, thông tin dạng số này cho phép máy tính có thể phân biệt và nhận biết các ngữ
cảnh và các thay đổi theo ngữ cảnh mà từ đó đưa ra các hành động thích hợp.
18
Khái niệm “context” có thể chia ra làm 2 dạng chính đó là : Ngữ cảnh về cá nhân
(Personal context), Ngữ cảnh môi trường (Environmental context ).
Ngữ cảnh cá nhân ( Personal context) : Nó tồn tại với mỗi người chúng ta, bao gồm
tất cả các thông tin riêng liên quan đến cá nhân đó. Nó được xác định bới các thành
phần tĩnh ( không thay đổi ) như tên, sở thích, quê quán và các thành phần động như
tốc độ di chuyển, vị trí hiện tại… Ngữ cảnh cá nhân.
Ngữ cảnh về môi trường : bao gồm tất cả các thông tin về hoàn cảnh, trạng thái,
môi trường mà thực thể đó đang tồn tại. Ví dụ như vị trí hiện thời của thực thể, thời
tiết ở xung quanh thực thể, …
3.2.2 Nhận biết ngữ cảnh (Context-Aware)
Context-aware : Nhận biết ngữ cảnh. Một ứng dụng có khả năng nhận biết được
ngữ cảnh nếu nó sử dụng các thông tin về ngữ cảnh để cung cấp thông tin hoặc dịch vụ
tới người sử dụng sao cho thông tin đó liên quan chặt chẽ đến các hành động, ứng xử..
của họ. Khái niệm này gân tương tự như khái niệm Adaption-context, tuy nhiên
Context-aware chính là một bước khởi đầu của toàn bộ quá trình Adaption-context.
Context-aware sử dụng các luật tự xây dựng và thông tin đầu vào để xác định và phân
loại các ngữ cảnh theo từng lớp sao cho từ đó có thể định nghĩa, cá thể hóa các hành
động(action) hoặc phản ứng của người dùng cũng như môi trường xung quanh người
dùng. Một hệ thống nhận biết ngữ cảnh thường có các tính năng :
• Trình diễn thông tin và các dịch vụ đối với người sử dụng.
• Tự động thực hiện một dịch vụ nào đó ( theo ngữ cảnh)
• Gán nhãn cho ngữ cảnh để sử dụng cho lần sau.
3.2.3 Học trên di động (Mobile Learning )
Học trên di động, một khái niệm không còn xa lạ với các nước tiên tiến tuy nhiên
lại là một khái niệm mới mẻ ở Việt Nam. Từ những năm 90, các trường đại học ở châu
Âu đã phát triển các chương trình học trên di động dành cho sinh viên. Năm 2007,
sinh viên trường Đại Học Cyber (Nhật Bản) được học thử nghiệm chương trình học
qua điện thoại di động, với nội dung về bí ẩn các Kim Tự Tháp Ai Cập. Đối với các
bài học trên PC, người học download bài giảng về máy tính. Bài học được cung cấp
dưới dạng hình và chữ, và một màn hình video nhỏ ở góc trên sẽ phát hình giáo viên
đang giảng bài. Còn đối với bài học trên di động thì đơn giản hơn nhiều – bài học chỉ
19
là các đoạn bài giảng bằng Power Point cho phù hợp với màn hình nhỏ xíu của điện
thoại di động.
Theo Georgiev, Georgieva, Smrikarov (2004) thì học trên di động (m-Learning)
chính là một nhánh của Học từ xa (d-Learning) hay (e-Learning). M-Learning có thể
được định nghĩa như là một cách sử dụng các thiết bị di động hoặc không dây để học
tập khi người học di chuyển hay không cố định. Người học có thể học ở bất cứ đâu,
vào bất cứ thời gian nào bao gồm cả những nơi như trường học, lớp học, ở nhà hay ở
trên ô tô, tàu điện ngầm, xe bus…
M-Learning cung cấp một giải pháp mạnh mẽ và thiết thực dành cho học tập và
đào tạo, chẳng hạn như :
Trong các dự án hợp tác và nghiên cứu thực địa
Như là một lớp học thay thế cho sách vở và máy tính
Các học viên không cần tập trung một nơi mà có thể ở nhiều nơi, địa điểm khác
nhau.
Đào tạo ‘just in time’
3.2.4 Học theo ngữ cảnh trên di động (Mobile Learning in Context)
Các phương pháp giáo dục hiện đại đều đòi hỏi học sinh có thể học tập khi ở trong
lớp hoặc bên ngoài lớp học. Đặc biệt với việc học trong thực tế, học viên có thể nắm
bắt được nội dung, kiến thức bài học nhanh hơn nhiều so với các phương pháp học lý
thuyết nhàm chán. Tuy nhiên, cơ sở hạ tầng dành cho việc học tập hiện nay không thể
đáp ứng được nhu cầu đó. Do vậy, Phương pháp học theo ngữ cảnh trên di động được
áp dụng nhằm giải quyết vấn đề “học mọi lúc mọi nơi” và “nội dung học tùy theo thế
giới thực xung quanh” nhằm giúp học sinh học tập với chiếc di động của mình. Đây là
một phương pháp kết hợp phương pháp học trên di động (Mobile Learning) và phương
pháp nhận diện ngữ cảnh (Context-aware) nhằm đưa ra những nội dung phù hợp nhất
so với ngữ cảnh hiện thời của người học thông qua việc mô hình hóa ngữ cảnh và phân
loại các ngữ cảnh.
20
3.3 Java 2 Micro Edition – J2ME
3.3.1 Đôi nét về J2ME
Công nghệ di động ngày càng phát triển. Chiếc điện thoại di động hiện nay không
còn đơn giản thực hiện nhiệm vụ thoại mà ngày càng trở thành một vật không thể thiếu
trong cuộc sống hằng ngày. Cùng với sự gia tăng về số lượng thì tính năng dành cho
điện thoại di động cũng tăng lên đáng kể. Hàng loạt các tính năng cao cấp được giới
thiệu như chụp hình số, nghe nhạc và đặc biệt nhất là có thể sử dụng các chương trình
không phải do nhà sản xuất điện thoại cung cấp.
Đây có thể được coi là một cuộc cách mạng trong lĩnh vực di động, nó biến chiếc
điện thoại nhỏ bé của bạn thành một chiếc máy tính thu nhỏ, với những chủng loại
điện thoại này bạn có thể đọc báo, tiểu thuyết, tra từ điển, bản đồ, truy cập internet và
nhất là mang thế giới giải trí đến bên cạnh, những bản nhạc hay, những games hay sẽ
luôn sẵn sàng mỗi khi bạn cần đến
Tuy nhiên, số lượng các loại máy di động ngày càng đa dạng cho nên việc phát
triển một ứng dụng cho nhiều dòng điện thoại là rất khó khăn. Chính vì vậy Sun đã đi
đầu trong việc phát triển một nền tảng sao cho có thể dung hòa các khác biệt về phần
cứng của các dòng điện thoại di động sao cho các thiết bị phần cứng khác nhau có thể
sử dụng chung một nền tảng phần mềm. Đó chính là Java 2 Platform Micro Edition (
J2ME).
3.3.2 Cấu trúc J2ME
3.3.2.1 Máy ảo Java - KMV
Cơ chế thực thi đằng sau bất kỳ ứng dụng Java nào là JVM (Java Virtual Machine).
Khi bạn biên dịch mã nguồn Java thành một lớp (.class) và đặt chúng vào trong file
lưu trữ .JAD của Java, máy ảo JVM sẽ biên dịch file .class này thành mã thực thi điều
khiển bởi JVM. Các mã trong file .class gọi là mã bytecode.
Đối với thiết bị cấu hình dạng CDC, máy ảo JVM có toàn bộ chức năng tương đương
với máy ảo phục vụ môi trường J2SE. Đối với thiết bị cấu hình dạng CLDC, Sun cài
đặt một phiên bản thu nhỏ hơn dành cho JVM gọi là K Virtual Machine (KVM). Chính
nhờ tầng này mà J2ME có thể dung hòa sự khác biệt giữa các phần cứng khác nhau.
21
3.3.2.2 Cấu hình (Configuration )
Là đặc tả định nghĩa một môi trường phần mềm cho một dòng các thiết bị được
phân loại bởi tập hợp các đặc tính, ví dụ như:
• Kiểu và số lượng bộ nhớ
• Kiểu và tốc độ bộ vi xử lý
• Kiểu mạng kết nối.
• …
Hiện nay Sun đã đưa ra 2 dạng Configuration.
CLDC (Connected Limited Device Configuration)
Cấu hình thiết bị kết nối giới hạn): được thiết kế để nhắm vào thị trường các thiết
bị cấp thấp (low-end), các thiết bị này thông thường là máy điện thọai di động và PDA
với khoảng 512 KB bộ nhớ.
Vì tài nguyên bộ nhớ hạn chế nên CLDC được gắn với Java không dây (Java
Wireless ), dạng như cho phép người sử dụng mua và tải về các ứng dụng Java, ví dụ
như là Midlet.
CDC (Connected Device Configuration)
Cấu hình thiết bị kết nối: CDC được đưa ra nhắm đến các thiết bị có tính năng
mạnh hơn dòng thiết bị thuộc CLDC nhưng vẫn yếu hơn các hệ thống máy để bàn sử
dụng J2SE. Những thiết bị này có nhiều bộ nhớ hơn ( thông thường là trên 2Mb) và có
bộ xử lý mạnh hơn. Các sản phẩm này có thể kể đến như các máy PDA cấp cao, điện
thoại web, các thiết bị gia dụng trong gia đình …
3.3.2.3 Mô tả (Profile)
Profile mở rộng Configuration bằng cách thêm vào các lớp để bổ trợ các tính năng
cho từng thiết bị chuyên biệt. Cả 2 Configuration đều có những profile liên quan và từ
những profile này có thể dùng các lớp lẫn nhau.
Ta có thể nhận thấy do mỗi profile định nghĩa một tập hợp các class khác nhau, nên
thường ta không thể chuyển một ứng dụng Java viết cho một profile này và chạy trên
một máy hỗ trợ một profile khác. Cũng với lý do đó, bạn không thể lấy một ứng dụng
viết trên J2SE hay J2EE và chạy trên các máy hỗ trợ J2ME. Một số các profile tiêu
biểu:
22
Mobile Information Device Profile (MIDP): Profile này sẽ bổ sung các tính năng
như hỗ trợ kết nối, các thành phần hỗ trợ giao diện người dùng … vào CLDC. Profile
này được thiết kế chủ yếu để nhắm vào điện thọai di động với đặc tính là màn hình
hiển thị hạn chế, dung lượng chứa có hạn. Do đó MIDP sẽ cung cấp một giao diện
người dùng đơn giản và các tính năng mạng đơn giản dựa trên HTTP. Có thể nói
MIDP là profile nổi tiếng nhất bởi vì nó là kiến thức cơ bản cho lập trình Java trên các
máy di động (Wireless Java).
PDA Profile: Tương tự MIDP, nhưng với thị trường là các máy PDA với màn hình
và bộ nhớ lớn hơn.
Foundation Profile: Cho phép mở rộng các tính năng của CDC với phần lớn các
thư viện của bộ Core Java2 1.3 và không hỗ trợ các ứng dụng GUI.
Personal profile: Mở rộng từ Foundation profile và cung cấp các API cho lập trình
GUI nhằm cung cấp giao diện đồ hoạ người dùng cho các trang Web có dùng Applet.
RMI profile: Mở rộng từ Foundation prrofile cung cấp RMI cho thiết bị. RMI
profile sẽ được dùng để tạo sự tương thích giữa các thiết bị cầm tay với J2SE RMI
API.
Ngoài ra còn có Personal Basis Profile, Game Profile.
Hình 3.3-1 Vị trí các profile trong j2me
3.3.3 Vòng đời của một ứng dụng J2ME
Hiện nay các dòng điện thoại có profile là MIDP phổ biến hơn và vòng đời của các
ứng dụng j2me trên các cấu hình khác nhau, profile khác nhau là gần như nhau nên ở
đây tôi sẽ chỉ trình bày về vòng đời của một ứng dụng MIDP.
Một MIDlet phải chứa ba phương thức trừu tượng chúng được gọi bởi trình quản lý
ứng dụng để quản lý vòng đời của một MIDlet. Các phương thức gồm có:
23
startApp(), pauseApp(), và destroyApp(boolean b) tương ứng với các
trạng thái Active, Paused, và Destroyed.
Phương thức startApp() được trình quản lý ứng dụng gọi khi một MIDlet
được khởi tạo và mỗi khi MIDlet trở về trạng thái dùng. Các biến toàn cục sẽ được
khởi tạo lại trừ hàm tạo vì các biến này đều được giải phóng bởi phương thức
pauseApp().
Phương thức pauseApp() được gọi bởi trình quản lý ứng dụng mỗi khi ứng
dụng cần tạm thời dừng hoạt động MIDlet. Trình quản lý ứng dụng khởi động lại
MIDlet bằng việc gọi lại phương thức startApp(). Khi phương thức này được gọi
sẽ thực hiện giải phóng các tài nguyên để dành cho các chức năng khác.
Phương thức destroyApp() được trình quản lý ứng dụng gọi mỗi khi kết
thúc hoạt động của một MIDlet. Phương thức này chỉ nhận một tham số kiểu Boolean.
Nếu tham số này là true, MIDlet sẽ được thoát vô điều kiện; ngược lại MIDlet có thêm
tuỳ chọn từ chối thoát bằng cách phát sinh ngoại lệ MIDletStateChangeException báo
với trình quản lý ứng dụng biết MIDlet chưa muốn kết thúc.
Chu kỳ của một MIDlet
Hình 3.3-2 Vòng đời của một MIDlet
24
3.4 Webservice
3.4.1 Khái niệm
Thuật ngữ “Dịch vụ web” (Web service ) nói đến truyền thông ứng dụng đến ứng
dụng. Nó cho phép server có thể cung cấp các dịch vụ khác nhau thông qua trao đổi
thông điệp dưới dạng web. Một dịch vụ web đơn giản là một dịch vụ trên internet có
khả năng truy xuất thông qua giao diện theo khuôn dạng sử dụng các giao thức
Internet chuẩn (HTTP). Các điểm đầu cuối sử dụng dịch vụ web service không cần
phải quan tâm xem server viết bằng ngôn ngữ lập trình nào.
Hình 3.4-1 Mô tả webservice
Hai đặc tả quan trọng về Dịch vụ Web là Ngôn ngữ mô tả dịch vụ web ( Web
Service Descripttion Language – WSDL ) và Giao thức truy xuất đối tượng đơn giản (
Simple Object Access Protocol – SOAP). WSDL được dùng để mô tả một dịch vụ web
đã được triển khai. SOAP được dùng để định nghĩa dạng của thông điệp được trao đổi
giữa các điểm đầu cuối ( client, server) của dịch vụ Web trong suốt quá trình hoạt
động của dịch vụ web đó. Một dịch vụ web có thể tự đăng ký ở một nơi đăng ký thích
hợp ( cung cấp mô tả WSDL ) để client có thể nhận ra nó. Các tiến trình này gọi là quá
trình đăng ký và nhận biết dịch vụ.
25
3.4.2 Web Service Descripttion Language (WSDL)
WSDL là một định dạng XML để mô tả các dịch vụ Web Service và cách thức
client truy cập và sử dụng các dịch vụ đó.
Hình 3.4-2 Cấu trúc chung của một văn bản WSDL
Cấu trúc chung của một văn bản WSDL bao gồm 5 element chính :
Type : optional, cung cấp định nghĩa các kiểu dữ liệu được sử dụng ở các thông
điệp. Các định nghĩa kiểu dữ liệu thường được viết trong hệ thống XSD(extensible
schema definition).
Ví dụ : Sử dụng 1 XSD bên ngoài Method : String SayHello ( String name )
<xsd:import namespace=
schemaLocation="HelloService_schema1.xsd" />
26
Message : Định nghĩa các thông điệp sử dụng trong web service. Thứ tự của các
message phản ánh cách hoạt động của web service: request/response hay
solicit/response. Tên của các message có dạng ---In/---Out; ---Request/---Response với
‘---‘ phản ảnh operation liên kết với message.
Port type : biểu diễn dịch vụ như là một tập named operation, mỗi operation được
mô tả bởi các input/output message . Nó giống như là một interface trong ngôn ngữ
Java: cho biết các operation và message nhưng không cho biết cài đặt bên trong.
Binding : Mô tả các chi tiết rõ ràng của web service. Nó giống như là lớp cài đặt
một interface trong Java.
<binding name="HelloServiceSoap“
type="tns:HelloServiceSoapPort">
<soap:binding
transport="" style="rpc"/>
<soap:operation soapAction="
corexml/SayHello"/>
27
Service : Định nghĩa một hoặc nhiều endpoint mà service hoạt động. Một endpoint
được mô tả là một URL mà các message có thể gửi tới để mà sử dụng dịch vụ. Service
sẽ liệt kê một hoặc nhiều port, mỗi port gồm một portType (interface) và một
binding(implementation). Thuật ngữ ‘port’ là lấy từ giao thức TCP, trong đó, một kết
nối được mô tả bởi một cặp , mỗi port tại một IPAdress sẽ
phục vụ một dịch vụ nhất định.
<port name="HelloServiceSoap"
binding="tns:HelloServiceSoap">
<soap:address
location=""/>
3.4.3 Simple Object Access Protocol (SOAP)
SOAP là một giao thức dựa trên XML xác định cách thức các ứng dụng có thể trao
đổi thông tin với nhau thông qua HTTP.
Hình 3.4-3 Mô tả cách thức SOAP làm việc
Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các
phần tử sau:
- Phần tử gốc - envelop: phần tử bao trùm nội dung thông điệp, khai báo văn bản
XML như là một thông điệp SOAP.
- Phần tử đầu trang - header: chứa các thông tin tiêu đề cho trang, phần tử này
không bắt buộc khai báo trong văn bản. Header còn có thể mang những dữ liệu chứng
thực, những chứ ký số, thông tin mã hóa hay cài đặt cho các giao dịch khác.
28
- Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tin yêu
cầu và thông tin được phản hồi.
- Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trong qúa
trình xử lý thông điệp.
Hình 3.4-4 Cấu trúc một thông điệp SOAP
Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, tham chiếu
tới một thể hiện của dịch vụ, một hoặc nhiều tham số. Có 3 kiểu thông báo sẽ được
đưa ra khi truyền thông tin: request message(tham số gọi thực thi một thông điệp),
respond message (các tham số trả về, được sử dụng khi yêu cầu được đáp ứng) và cuối
cùng là fault message (thông báo tình trạng lỗi).
<env:Envelope xmlns:env=“
envelope”
xmlns:xsd=""
xmlns:xsi=""
xmlns:SOAP-
ENC=""
xmlns:stockquote="">
<am:customer
xmlns:route=""
29
env:actor="
envelope/actor/next"
env:mustUnderstand="true">
4557799
12asd-34ccd-23cuden
C
GE
DJI
Kiểu truyền thông : Có 2 kiểu truyền thông
• Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng.
Kiểu này được khai thác bởi nhiều dịch vụ Web.
• Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp
ở mức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn.
Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đến
các API khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp với
dịch vụ Web cần xây dựng.
Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong
các ngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiều phức
tạp hơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt trong
namespace SOAP-ENC.
Mã hóa: Giả sử service rquester và service provider được phát triển trong Java, khi
đó mã hóa SOAP là việc làm thế nào để chuyển đổi từ cấu trúc dữ liệu Java sang
SOAP XML và ngược lại, bởi vì định dạng cho Web Service chính là XML. Bất kỳ
30
một môi trường thực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm
chuyển đổi từ ngôn ngữ Java sang XML và từ XML sang Java - bảng đó được gọi là
SOAPMappingRegistry. Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóa thì
sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó.
3.5 Kỹ thuật định vị A-GPS (Assisted GPS)
Có nhiều kỹ thuật định vị vị trí hiện thời của một thuê bao di động. Tuy nhiên ta có
thể chia ra làm hai loại chính : phương pháp dựa trên cơ sở mạng như Cell-ID, TOA(
Time Of Arrival), AOA ( Angle Of Arrival ), TDOA (Time Difference Of Arrival)
và dựa trên máy di động như E-OTD và A-GPS. Ngoài ra, ta cũng có thể chia nó theo
việc nó có phụ thuộc vào hệ thống định vị GPS hay không. Ở đây, ta chỉ đề cập đến
phương pháp phổ biến, được dùng phổ biến hiện nay đó là phương pháp A-GPS.
A-GPS có thể sử dụng trong các mạng GSM, GPRS và WCDMA. A-GPS sử dụng
các vệ tinh làm các điểm tham chiếu để xác định vị trí. Bằng cách đo chính xác
khoảng cách tới 3 vệ tinh từ đó máy thu xác định được vị trí của nó ở trên mọi nơi trên
trái đất. Máy thu đo khoảng cách bằng cách đo thời gian mà tín hiệu đi từ vệ tinh tới
máy thu , vì vậy yêu cầu chính xác thông tin về thời gian. Thời gian chính xác có thể
nhận được từ các tín hiệu vệ tinh tuy nhiên quá trình để nhận được thông tin này khá
lâu và khó khăn khi tín hiệu từ vệ tinh quá yếu. Để giải quyết vấn đề này người ta sử
dụng một server (A-GPS Location Server) cung cấp cá thông tin liên quan đến vệ tinh
cho các máy thu. Những thông tin hỗ trợ từ server này giúp máy thu giảm được thời
gian xác định vị trí và cho phép các máy thu A-GPS hoạt động trong các môi trường
khác nhau.
Máy thu A-GPS hoạt động ở 2 dạng chính : Dựa trên MS-Mobile station và hỗ trợ
từ MS. Ở dạng hỗ trợ từ MS, máy thu A-GPS trong MS nhận một ít thông tin từ server
A-GPS và tính khoảng cách đến các vệ tinh, các thông tin này được MS gửi lại server
để server này xác định vị trí của MS. Ở dạng dựa trên MS, MS xác định luôn vị trí của
nó nhờ thông tin hỗ trợ từ server.
31
Hình 3.5-1 Nguyên lý hoạt động của A-GPS
A-GPS cho độ chính xác cao hơn so với Cell-ID, E-OTD và có thể hoạt động ở
mạng đồng bộ hoặc không đồng bộ. Tuy nhiên để sử dụng được A-GPS thì các MS
phải có thêm phần mạch A-GPS.
Bảng 3-1 Bảng đặc tính phương pháp A-GPS
32
CHƯƠNG 4 Mô hình thử nghiệm
4.1 Phân tích thiết kế hệ thống
4.1.1 Biểu đồ ngữ cảnh hệ thống
Do trong khuôn khổ khóa luận , nội dung và các ngữ liệu học tập không nhiều do
vậy ta tạm thời xây dựng hệ thống với Hệ thống cung cấp dịch vụ nhận thêm chức
năng cung cấp nội dung. Với nội dung được lưu vào database.
Mô hình gồm 2 thành phần chính đó là Client chạy trên máy di động người dùng và
Server cung cấp dịch vụ. Client cung cấp giao diện tương tác và thu thập thông tin ngữ
cảnh và gửi lên server. Server chịu trách nhiệm xử lý thông tin và xuất nội dung về cho
client.
NHÀ CUNG CẤP
NỘI DUNG
0
HỆ THỐNG
CUNG CẤP
DỊCH VỤ
NGƯỜI
SỬ
DỤNG
Thông tin ngữ cảnh
Ngữ liệu học tập
Thông tin điều khiển
Yêu cầu
Nội dung
yêu cầu
Hình 4.1-1 Biểu đồ ngữ cảnh hệ thống
33
4.1.2 Biểu đồ phân rã chức năng
4.1.3 Chức năng chi tiết hệ thống
4.1.3.1 Đăng nhập và đăng ký
Như ta đã nói ở trên, với mục tiêu người dùng là trung tâm và thông tin về người
dùng là thông tin quan trọng trong quá trình xác định ngữ cảnh cũng như nội dung bài
học. Do vậy, quá trình đăng ký thông tin người sử dụng và quá trình đăng nhập chính
là quá trình thu thập thông tin do người dùng cung cấp và quá trình xác nhận lại thông
tin đó nếu người dùng sử dụng dịch vụ lần sau.
Quá trình đăng nhập yêu cầu tên đầy đủ của người dùng, tên đăng nhập, mật khẩu
truy cập, tuổi tác, giới tính. Khi đăng nhập cần sử dụng tên đăng nhập và mật khẩu.
4.1.3.2 Xây dựng nội dung bài học theo người dùng
Chức năng xây dựng nội dung bài học theo người dùng thực hiện thu thập từng
thông tin về vị trí hiện tại của người dùng ( ở đây ta coi như vị trí hiện tại là một
trường hợp đặc biệt của một mô hình ngữ cảnh trong thực tế ) đồng thời thêm các yêu
cầu của người dùng từ đó xác định ra nội dung cần hiển thị.
Do thời gian và công nghệ có hạn nên khóa luận chưa thể ứng dụng trực tiếp
phương pháp xác định tọa độ A-GPS vào thực nghiệm để đoán nhận vị trí người dùng
5.Trợ giúp
HỆ THỐNG CUNG CẤP
DỊCH VỤ
1.Đăng nhập, đăng ký 2.Xây dựng nội dung 3.Tìm kiếm 4.Loại bỏ bài học
1.1 Đăng nhập
1.2 Đăng ký
4.1 Loại bỏ
4.2 Khôi phục
Hình 4.1-2 Biểu đồ phân rã chức năng
34
được, và thay vào đó là ta sẽ nhận thông tin đó từ người sử dụng cung cấp bằng các
thao tác chọn locaction cho bài học.
Nội dung được xây dựng theo tiêu chí : thông tin người dùng (tuổi tác, giới tính ),
vị trí hiện tại, lịch sử các lần học trước, thời gian mà người học có thể bỏ ra để học bài
học này.
Sau mỗi lần xây dựng nội dung bài học cho người học, hệ thống sẽ ghi nhận lại bài
học này trong cơ sở dữ liệu để sử dụng tiếp cho lần sau. Nếu lần sau người học yêu
cầu nôi dung đó thì hệ thống sẽ xem xét xem nội dung đó người học đã học nhiều
chưa, đã thành thục chưa, nếu là thành thục rồi thì sẽ không đưa nội dung đó vào bài
học nữa.
4.1.3.3 Tìm kiếm bài học theo vị trí
Do có thể rất nhiều địa điểm khác nhau nên rất khó để tìm một vị trí cố định nào
đó. Do vậy chức năng tìm kiếm thực hiện tìm kiếm trong cơ sở dữ liệu các vị trí phù
hợp để người sử dụng lựa chọn.
4.1.3.4 Loại bỏ bài học đã học
Trong quá trình học tập thì có những bài học mà người học cảm thấy mình đã khá
thành thục rồi nên không cần học nưa. Do vậy chương trình cung cấp chức năng loại
bỏ những bài học mà học viên đã học kỹ rồi. Khi đã loại bỏ bài học này thì từ đó về
sau, bài học bị loại bỏ sẽ ko bao giờ được cung cấp lại cho người học nữa. Bên cạnh
đó, nếu người học muốn học lại các bài học mà mình đã bỏ qua thì chương trình có
thêm chức năng khôi phục lại hiện trạng các bài học ban đầu. Tất cả các bài học bị loại
bỏ sẽ khôi phục và sẽ đươc đưa cho người sử dụng.
4.1.3.5 Trợ giúp
Đối với người mới sử dụng thì các chức năng, cách thức hoạt động của dịch vụ và
cách sử dụng dịch vụ có thể là mới. Do vây, phần trợ giúp sẽ cung cấp thông tin
chương trình và hướng dẫn sử dụng để có thể hỗ trợ việc sử dụng chương trình của
người dùng.
35
4.1.4 Cơ sở dữ liệu
Cơ sở dữ liệu của hệ thống bao gồm tất cả các thông tin về tài khoản người dùng,
quá trình học tập của người dùng, các nội dung để xây dựng lên bài học tiếng anh( Do
ở đây nhà cung cấp dịch vụ sẽ kiêm cung cấp nội dung nên cơ sở dữ liệu của bên cung
cấp dịch vụ sẽ bao gồm cả nội dung bài học). Dữ liệu được quản lý bằng hệ quản trị cơ
sở dữ liệu MYSQL.
Cơ sở dữ liệu gồm có các bảng :
Context_members (uname, pword, name, sex, age)
Context_group(gr_id, gr_name)
Context_name(name_id, ct_name, gr_id)
Context_detail(ct_id, name_id, ct_viet_conver, ct_eng_conver, sex, age, time,
rank)
Context_session_element(element_id, record_id, ct_id)
Context_session_records(record_id, record_time, uname, name_id, session_time)
Context_exception( uname, ct_id )
36
4.1.4.1 Biểu đồ dữ liệu
Hình 4.1-3 Biểu đồ dữ liệu
4.1.4.2 Cơ sở dữ liệu chi tiết
CONTEXT_MEMBERS
(Lưu trữ thông tin người dùng)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
uname varchar(100) Khóa chính Tên đăng nhập của người dùng
pword varchar(100) Mật khẩu người dùng
name varchar(200) Tên đầy đủ của người dùng
sex int(11) Giới tính
age int(11) Tuổi
37
CONTEXT_GROUP
(Mô tả thông tên về một nhóm các ngữ cảnh nào đó)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
gr_id int(11) Khóa chính Mã của nhóm các ngữ cảnh
gr_name varchar(200) Tên của nhóm ngữ cảnh
CONTEXT_NAME
(Mô tả một ngữ cảnh)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
name_id int(11) Khóa chính Mã của ngữ cảnh
ct_name varchar(200) Tên của ngữ cảnh
gr_id int(11) Khóa ngoài Mã nhóm ngữ cảnh
CONTEXT_DETAIL
(Lưu trữ về nội dung cấu thành lên 1 bài học trong một ngữ cảnh xác đinh)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
ct_id int(11) Khóa chính Mã của nội dung chia tiết
name_id int(11) Khóa ngoài Mã của ngữ cảnh
ct_viet_conver varchar(300) Nội dung bài học ( Tiếng Việt)
ct_eng_conver varchar(300) Nội dung bài học (Tiếng Anh)
sex int(11) Giới tính bài học hướng dến
age int(11) Độ tuổi mà bài học hướng đến
time int(11( Thời gian ( sáng , chiều, tối)
rank int(11) Độ khó của nội dung
38
CONTEXT_SESSION_ELEMENT
(Mô tả chi tiết nội dung bài học trong một record)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
element_id int(11) Khóa chính Mã của một element
record_id int(11) Khóa ngoài context_session_records(record_id)
ct_id int(10) Khóa ngoài context_detail(ct_id)
CONTEXT_SESSION_RECORDS
(Lưu trữ thông tin về một phiên học của người sử dụng, lưu trũ thời gian, và nội
dung đã học của người đùng)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
record_id int(11) Khóa chính Mã của một bản ghi
record_time datetime Thời gian lưu
uname varchar(100) Khóa ngoài context_members(uname)
name_id int(11) Khóa ngoài context_name(name_id)
session_time int(10) Lượng thời gian dùng để học
CONTEXT_EXCEPTION
(Tập hợp các nội dung mà người dùng loại bỏ trong quá trình học)
Thuộc tính Kiểu dữ liệu Khóa Mô tả
uname varchar(100) Khóa chính, ngoài ref context_members(uname)
ct_id int(11) Khóa chính, ngoài ref context_detail(ct_id)
39
4.1.5 Luồng xử lý phía client
Hình 4.1-4 Luồng xử lý phía client
40
4.2 Cài đặt
4.2.1 Yêu cầu phần cứng và phần mềm
Đối với client phải là dòng máy hỗ trợ Java và hỗ trợ kết nối mạng.
Đối với server
Phần cứng phải đáp ứng cấu hình để có thể chạy các ứng dụng java và server.
Phần mềm : Netbean, thư viện kết nối cơ sở dữ liệu (MySQL JDBC), hệ quản trị cơ sở
dữ liệu MySQL, SunGlassFish Server 3.
4.2.2 Client
Client được cài đặt trên điện thoại có hỗ trợ java với cấu hình CLDC 1.1 và MIDP
2.0 trở lên . Trong khóa luận này ta chạy ứng dụng client trên một bộ mô phỏng
(emulator) có sẵn trên netbean 6.7 . Ứng dụng gồm có 2 gói chính : gói hello và gói
newwebserviceservice
4.2.2.1 Gói hello
Gói Hello gồm 1 lớp HelloMIDlet duy nhất. Lớp được kế thừa từ lớp MIDlet bao
gồm tất cả các tính năng chính của chương trình như : tìm kiếm, xây dựng nội dung..
và hiển thị nội dung bài học.
4.2.2.2 Gói newwebserviceservice
Gói newwebserviceservice chứa các lớp NewWebServiceService và
NewWebServiceService_Stub.
Lớp NewWebServiceService là lớp khai báo các phương thức được cung cấp bởi
Webservice.
Lớp NewWebServiceService_Stub là lớp kế thừa lớp NewWebServiceService
trong đó nó mô tả chi tiết các phương thức đã khai báo trong lớp
NewWebServiceService. Các phương thức này có thể coi như một bản sao của các
phương thức được thực hiện trên server. Tuy nhiên thay vì chạy trên client thì khi
client gọi phương thức này, nó sẽ dựa trên các mô tả trong tập tin
NewWebServiceService.wsdl và giao thức SOAP để gửi thông tin (các biến, tham số)
lên server và nhờ server chạy giúp và trả về kết quả cũng theo định dạng xml.
41
4.2.3 Server
Trên server cung cấp service bao gồm 2 lớp chính :
Lớp GetMysqlConnection chịu trách nhiệm kết nối với hệ quản trị cơ sở dữ liệu
thông qua thư viện MYSQL JDBC.
Lớp NewWebService bao gồm các phương thức minh họa cho các Operator mà
webservice cung cấp cho client gọi. Nó bao gồm một số phương thức sau :
addContextException : đưa một nội dung nào đó vào danh sách các nội dung học
mà người học đã học kỹ, hoặc không muốn học nữa.
addUser : thêm một người sử dụng vào hệ thống
checkLogin : kiểm tra xem tên đăng nhập và mật khẩu có phù hợp để đăng nhập
vào hệ thống không
clearAllException : Phục hồi lại tất cả các nội dung học đã xóa.
findName : tìm địa điểm theo tên
getNameOfUser : Lấy tên đầy đủ của người dùng
getCtNameByWidthCondition : lấy ra nội dung phù hợp theo một điều kiện nào
đó
Ngoài ra còn một số các phương thức khác nhằm cung cấp thông tin chi tiết khi
client muốn truy vấn.
4.2.3.1 Kịch bản và giao diện ứng dụng trên client.
Client được chạy trên emulator mặc định được tích hợp trong Netbean 6.7 với
CLDC 1.1 và MIDP 2.0.
Khi bắt đầu vào chương trình sẽ hiện ra một màn hình đăng nhập gồm tên đăng
nhập và mật khẩu để người dùng nhập tên đăng nhập và mật khẩu của mình. Nếu tên
đăng nhập đúng thì chuyển về màn hình hiển thị các vị trí để người dùng lựa chọn.
Nếu tên đăng nhập hoặc mật khẩu sai thì sẽ xuất hiện thông báo là tên đăng nhập và
mật khẩu không đúng.
42
Hình 4.2-1 Màn hình đăng nhập và màn hình thông báo đăng nhập lỗi
Nếu đây là lần đầu tiên và người sử dụng chưa có tài khoản thì sẽ phải đăng ký
một tài khoản. Để đăng ký tài khoản thì người sử dụng chọn Menu và chọn đăng ký ở
màn hình đăng nhập. Lúc này màn hình đăng ký hiện ra với các ô textfield để người
dùng nhập thông tin về Họ tên, tên đăng nhập, mật khẩu, tuổi tác và giới tính. Khi
nhấn vào command ‘Đăng ký’ chương trình sẽ gửi thông tin tới server yêu cầu đăng ký
người dùng vào hệ thống. Nếu đăng ký thành công màn hình sẽ chuyển về màn hình
chứa các vị trí để người dùng lựa chọn. Tương tự như khi đăng nhập thành công. Nếu
trong quá trình đăng ký lỗi xảy ra lỗi khác hoặc người dùng chưa điền đầy đủ thông
tin thì sẽ hiện ra thông báo lỗi.
Hình 4.2-2 Màn hình đăng ký và màn hình thông báo nếu đăng ký xuất hiện lỗi
43
Màn hình ‘Nhóm lĩnh vực’ sẽ hiển thị danh sách các lĩnh vực mà người sử dụng
cần học. Trong ứng dụng thí nghiệm này nội dung bao gồm các câu nói thông dụng
hoặc giải trí hoặc mua sắm hoặc sức khỏe. Người dùng có thể chọn trực tiếp 1 trong
các lĩnh vực hoặc là nhập các chữ cái đầu của lĩnh vực vần tìm vào ô textfield. Chương
trình sẽ tự động lọc cho bạn. Sau khi chọn lĩnh vực, màn hình sẽ chuyển tiếp sang màn
hình chứa danh sách các ngữ cảnh ( các địa điểm ) mà có nội dung trong lĩnh vực đó.
Hình 4.2-3 Màn hình hiển thị nhóm lĩnh vực và màn hình hiển thị địa điểm thuộc lĩnh vực đó
Sau khi chọn xong ngữ cảnh chương trình sẽ hiện ra màn hình hỏi xem bạn sẽ dùng
bao nhiêu thời gian cho bài học này. Chương trình có 3 tùy chọn là 5 phút, 10 phút và
xem hết. Nếu thời gian xem ngắn thì nội dung bài học càng cô đọng xúc tích, còn nếu
thời gian dài hơn thì nội dung sẽ tăng lên, phong phú hơn, khó hơn.
44
Hình 4.2-4 Màn hình hỏi thời gian dành cho bài học và màn hình hiển thị nội dung chi tiết bài học
Sau khi chọn xong thời gian xem thì chương trình sẽ đưa ra nội dung bài học cụ
thể. Trong mô hình thực tế này, ta chọn nội dung đơn giản là những câu giao tiếp trong
đời sống, tương tự như hình trên.
Nếu người học muốn loại bỏ những câu mà người học cảm thấy đã quá quen thuộc
thì người học có thể chọn “Menu -> Loại bỏ”. Chương trình sẽ đưa ra một cảnh báo
với thông tin rằng các câu đã chọn sẽ bị loại khỏi nội dung đào tạo nếu người học chọn
loại bỏ.
Còn nếu người học muốn học lại những nội dung đã loại bỏ từ trước thì có thể chọn
“Menu Æ Xóa bỏ ngoại lệ”. Tất cả nội dung mà đã loại bỏ từ trước sẽ trở lại trạng
thái ban đầu.
45
Hình 4.2-5 Màn hình hiển thị thông báo confirm loại bỏ bài học và màn hình thông báo khôi phục lại
bài học
Mặt khác, nếu người sử dụng muốn tìm kiếm theo địa điểm (ngữ cảnh ) thì tại
menu chọn tìm kiếm. Màn hình tìm kiếm hiển thị ô nhập nội dung địa điểm cần tìm.
Nếu có kết quả thì chương trình sẽ đưa ra danh sách các kết quả để người sử dụng lựa
chọn. Nếu không có kết quả chương trình sẽ đưa ra thông báo rằng không có địa điểm
trong cơ sở dữ liệu. Các màn hình hiển thị nội dung chi tiết tương tự như hình dưới.
Hình 4.2-6 Hiển thị ô tìm kiếm và hiển thị danh sách các kết quả tìm kiếm được
46
Hình 4.2-7 Màn hình hiển thị nội dung chi tiết bài học tìm được và hướng dẫn sử dụng
Màn hình trợ giúp chỉ hiển thị nếu người sử dụng đang ở màn hình đầu tiên( tức là
màn hình đăng nhập ). Khi người dùng chọn “Menu Æ Trợ giúp”.
4.3 Thử nghiệm
4.3.1 Dữ liệu thử nghiệm
Tên Tuổi Giới tính
Thanh Niên 23 Nam
Cụ Già 60 Nữ
Bảng 4-1 Dữ liệu thử nghiệm
Trong dữ liệu thử nghiệm ta sử dụng dữ liệu có sự khác biệt cơ bản để kiểm chứng các
tính năng của chương trình. Mục đích của cuộc thử nghiệm là cho thấy được sự khác
nhau giữa nội dung bài học trả về đối với mỗi người dùng, mỗi ngữ cảnh và sau mỗi
lần học tập.
47
4.3.2 Kết quả thử nghiệm
Người học : Thanh niên
Lần xem : 1
Ngữ cảnh : Đi xem phim
Thời gian : 5 phút
Số kết quả trả về : 2
Người học : Cụ già
Lần xem : 1
Ngữ cảnh : Đi xem phim
Thời gian : 5 phút
Số kết quả trả về : 2
Người học : Thanh niên
Lần xem : 2
Ngữ cảnh : Trong bệnh viện
Thời gian : 5 phút
Số kết quả trả về : 6
Người học : Cụ già
Lần xem : 2
Ngữ cảnh : Trong bệnh viện
Thời gian : 5 phút
Số kết quả trả về : 8
48
Người học : Thanh niên
Lần xem : 3
Ngữ cảnh : Trong bệnh viện
Thời gian : 10 phút
Số kết quả trả về : 11
Người học : Cụ già
Lần xem : 3
Ngữ cảnh : Trong bệnh viện
Thời gian :10 phút
Số kết quả trả về : 10
Người học : Thanh niên
Lần xem : 7
Ngữ cảnh : Trong bệnh viện
Thời gian : 10 phút
Số kết quả trả về : 5
Người học : Cụ già
Lần xem : 7
Ngữ cảnh : Trong bệnh viện
Thời gian :10 phút
Số kết quả trả về : 6
49
4.3.3 Nhận xét
Như kết quả trên ta thấy với mỗi lần học nội dung bài học đều thay đổi tương ứng
với các thay đổi của ngữ cảnh. Ngay kể cả lần đầu tiên sử dụng, nội dung là bài học
giữa ‘Thanh niên’ và ‘Cụ già’ là giống nhau tuy nhiên là cách hiển thị có khác đi, do
người già nên màn hình hiển thị bài học với font chữ lớn hơn bình thương.
Hoặc trong lần thứ 2 học của cả ‘Thanh niên’ và ‘Cụ già’ trong cùng hoàn cảnh là
trong bệnh viện tuy nhiên kết quả là có sai khác nhau. Và sai khác cả với nội dung bài
học lần 1. Tương tự với lần học thứ 3 tuy nhiên lần 3 ta thử ngiệm với thời gian học
lâu hơn ta thấy nội dung của bài học được tăng lên. Cụ thể là đối với ‘Thanh niên’
tăng từ 6 lên 11 và ‘Cụ già’ tăng từ 8 lên 10.
Ta thí nghiệm tới lần thứ 7 thì cũng trong hoàn cảnh tương tự như lần 2 và lần 3
tuy nhiên ta thấy kết quả đã rút đi nhiều. Điều này xảy ra là do chương trình đã dựa
vào quá trình học tập của người học mà điều chỉnh nội dung. Loại bỏ bớt những bài
học mà người học đã học nhiều lần. Như kết quả ta thấy, số lượng câu trả về chỉ còn 5
cầu đối với ‘Thanh Niên’ và 6 câu đối với ‘Cụ già’.
Với kết quả đó, ta thấy nội dung bài học là được thay đổi một cách rõ ràng qua
từng lần học với mỗi ngữ cảnh khác nhau ( ở đây ta coi ‘Địa điểm’ chính là 1 nhân tố
quan trọng nhất trong ngữ cảnh). Đó chính là một cách học thích nghi theo ngữ cảnh
mà tôi đã trình bày trong khóa luận này.
50
CHƯƠNG 5 TỔNG KẾT
5.1 Kết quả đạt được
Tìm hiểu về các dịch vụ hướng vị trí, các khái niệm về ngữ cảnh và học theo ngữ
cảnh.
Xây dựng thử nghiệm ứng dụng “Học Tiếng Anh trên thiết bị di động”. Ứng dụng
minh họa tính thích nghi của nội dung học tập theo những thay đổi của ngữ cảnh.
Trong ứng dụng thử nghiệm này thông tin ngữ cảnh được đặc trưng bởi các thông tin
người học( tuổi tác, giới tính ), các thông tin về vị trí người học ( trong bệnh viện,
trong rạp chiếu phim, trong cửa hàng dụng cụ thể thao) , các thông tin về lịch sử học
tập của người học ngoài ra là thông tin do người học cung cấp ( thời gian bài học mà
người học mong muốn). Chương trình đã bước đầu xác định được từng ngữ cảnh của
người dùng và đưa ra nội dung khác nhau cho từng người học trong từng ngữ cảnh
khác nhau.
Tìm hiểu về xây dựng và triển khai các ứng dụng dành cho các thiết bị di động, các
ứng dụng webservice.
Tìm hiểu về công nghệ định vị một thuê bao di động dựa trên công nghệ A-GPS.
5.2 Hạn chế
Do công nghệ và thời gian có hạn nên chương trình chỉ giới hạn trong việc thử
nghiệm trên cơ sở dữ liệu đơn giản. Nội dung bài học chỉ là các câu giao tiếp đơn giản,
chưa có các cấu trúc ngư pháp, media,… , chưa mang tính học tập sâu. Ngoài ra, các
thông tin ngữ cảnh được sử dụng trong thực nghiệm chỉ bó hẹp trong một số trường
thông tin nhất định, chưa đủ để xác định tuyệt đối một mô hình ngữ cảnh mà chỉ mang
tích chất tương đối.
Tập luật để xác định một ngữ cảnh từ các thông tin ngữ cảnh vẫn còn thô sơ, chỉ là
một dạng if else đơn giản chưa đủ để xác định được một mô hình ngữ cảnh chính xác.
Một hạn chế nữa của khóa luận chính là việc chưa áp dụng được phương pháp định
vị A-GPS vào chương trình để xác định vị trí người học từ đó xác định vị trí cũng như
ngữ cảnh hiện tại. Trong ứng dụng thực nghiệm này thì thông tin về vị trí là được
người học nhập vào.
51
5.3 Hướng phát triển
Mô hình này rất có ý nghĩa và có tính thực tiễn cao hiện nay đã có một vài công ty
của Việt Nam đang hướng đến mô hình trợ giúp học tập trên các thiết bị di động này.
Trong tương lai, mô hình cần được phát triển hơn nữa.
Thứ nhất , phát triển nội dung bài học đa dạng hơn.
Thứ hai , áp dụng tất cả các thông tin( yếu tố) ngữ cảnh cần thiết để xác định một
ngữ cảnh chính xác.
Thứ ba, xây dựng một tập luật đủ mạnh sao cho từ các thông tin ngữ cảnh nhất
định có thể xác định một cách đúng đắn ngữ cảnh mà các thông tin đó thể hiện.
52
TÀI LIỆU THAM KHẢO
[1] R.O. Duda, P.E. Hart, and D.G. Stork, Pattern Classification. Wiley-
Interscience, 2nd edition, 2000.
[2] Virrantaus, K., Markkula, J., Garmash, A., Terziyan, Y.V., 2001. Developing
GIS-Supported Location-Based Services. In: Proc. of WGIS’2001 – First
International Workshop on Web Geographical In-formation Systems., Kyoto,
Japan. , 423–432.
[3] BillN.Schilit,NormanAdams, RoyWant. Context-Aware Computing
Applications.
[4] Lương Tiến Dũng. Khóa luận tốt nghiệp Nghiên cứu tìm hiểu hệ thống đối
thoại ứng dụng trong dịch vụ hướng vị trí
[5] Stefan Steiniger, Moritz Neun and Alistair Edwardes, Foundations of
Location Based Services
[6] PaulDourish, 2003, What we talk about when we talk about context
[7] Đại học khoa học tự nhiên, Lập trình di động với J2ME, 04/2005
[8]
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-NGHIÊN CỨU XÂY DỰNG ỨNG DỤNG HỌC TIẾNG ANH THEO NGỮ CẢNH TRÊN THIẾT BỊ DI ĐỘNG.pdf