Luận án Nghiên cứu việc biểu diễn và tổng hợp widget phục vụ mashup
NGHIÊN CỨU VIỆC BIỂU DIỄN VÀ TỔNG HỢP WIDGET PHỤC VỤ MASHUP
NGÔ BÁ NAM PHƯƠNG
Trang nhan đề
Lời cảm ơn
Mục lục
Danh mục
Chương 1: Mở đầu
Chương 2: Mashup và một số vấn đề liên quan đến widget
Chương 3: Khảo sát và phân tích các mô hình phối hợp widget
Chương 4: Đề xuất mô hình biểu diễn widget, sự phối hợp widget và ứng dụng Mashup
Chương 5 Kiến trúc hệ thống và kết quả thử nghiệm
Chương 6 Kết luận và hướng phát triển của đề tài
Tài liệu tham khảo
Phụ lục
Mục lục
Chương 1 Mở đầu . 1
1.1 Giới thiệu chung 1
1.1.1 Sơ lược về Web 2.0 . 1
1.1.2 Mashup và widget . 4
1.1.3 Widget Platform . 8
1.2 Lý do thực hiện đề tài 9
1.3 Mục tiêu đề tài . 9
1.4 Nội dung . 10
Chương 2 Mashup và một số vấn đề liên quan đến widget . 11
2.1 Mashup . 11
2.1.1 Khái niệm về Mashup . 11
2.1.2 Phân loại Mashup . 14
2.1.3 Công cụ xây dựng Mashup 14
2.1.4 Kiến trúc công cụ xây dựng Mashup 16
2.1.5 Các bài toán cần nghiên cứu khi phát triển ứng dụng Mashup . 17
2.2 Các thành phần trong đặc tả widget và sự phối hợp widget . 21
2.2.1 Công nghệ phát triển widget 21
2.2.2 Mô hình biểu diễn widget 22
2.2.3 Sự phối hợp widget . 27
2.3 Kết luận 29
Chương 3 Khảo sát và phân tích các mô hình phối hợp widget . 30
3.1 Khảo sát khả năng phối hợp của widget trong các widget Platform . 30
3.2 OpenAjax widget 32
3.2.1 Giới thiệu . 32
3.2.2 Sự phối hợp widget . 33
3.2.3 Nhận xét . 35
3.3 Mô hình tích hợp các thành phần thể hiện (Jin Yu[14]) . 35
3.3.1 Giới thiệu . 35
3.3.2 Biểu diễn sự phối hợp . 36
3.3.3 Nhận xét . 37
3.4 IBM iWidget . 38
3.4.1 Giới thiệu . 38
3.4.2 Khai báo sự kiện . 41
3.4.3 Sự phối hợp widget . 42
3.4.4 Nhận xét . 44
3.5 Kết luận 47
Chương 4 Đề xuất mô hình biểu diễn widget, sự phối hợp widget và ứng
dụng Mashup . 48
4.1 Mô hình đặc tả widget . 48
iv
4.1.1 Các thành phần trong widget . 48
4.1.2 Các thuộc tính của widget khi sử dụng trong Mashup . 49
4.1.3 Thành phần mô tả widget (widget Description) 50
4.1.4 Tham số cấu hình hoạt động (UserPreferences) 51
4.1.5 Thành phần mô tả tham chiếu thư viện (Libraries) 53
4.1.6 Thành phần mô tả tham chiếu sử dụng kiểu định dạng thể hiện (Style) 53
4.1.7 Cấu trúc tham số (Structures) 54
4.1.8 Thao tác trong widget (Operations) 55
4.1.9 Sự kiện trong widget (Events) . 57
4.2 Mô hình phối hợp widget . 58
4.2.1 Mô hình biểu diễn . 58
4.2.2 Một số đề xuất biểu diễn mở rộng khả năng phối hợp . 60
4.3 Mô hình biểu diễn Mashup Canvas 63
4.4 Mashup Assistant widget . 64
4.4.1 Javascript Adapter 65
4.4.2 Action Timer 67
4.4.3 Event Explorer 68
4.5 Kết luận 68
Chương 5 Kiến trúc hệ thống và kết quả thử nghiệm 69
5.1 Kiến trúc tổng thể 69
5.2 Quy trình xử lý 71
5.2.1 Phát sinh danh sách widget được sử dụng trong Mashup 71
5.2.2 Phát sinh xử lý phối hợp tương tác giữa các widget 74
5.3 Các kịch bản thử nghiệm . 77
5.4 So sánh đánh giá 84
5.5 Kết luận 86
Chương 6 Kết luận và hướng phát triển của đề tài 87
6.1 Kết luận 87
6.2 Hướng phát triển . 90
Phụ lục A Phân loại Mashup . 96
A.1 Phân loại Mashup 96
A.2 Loại thông tin tổng hợp Mashup 96
A.3 Phân hệ tổng hợp Mashup dựa trên mô hình Client-Server .100
A.4 Cách thức tạo Mashup 102
A.5 Người dùng mục tiêu 102
Phụ lục B Các vấn đề liên quan đến tích hợp dữ liệu phục vụ Mashup 103
10 trang |
Chia sẻ: maiphuongtl | Lượt xem: 1932 | Lượt tải: 1
Bạn đang xem nội dung tài liệu Luận án Nghiên cứu việc biểu diễn và tổng hợp widget phục vụ mashup, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
1
Chương 1
Mở đầu
Tóm tắt:
Nội dung phần mở đầu giới thiệu tổng quan về đề tài: trào lưu Web
2.0, sự ra đời của Mashup và widget; tiếp theo trình bày lý do thực
hiện và mục tiêu của đề tài. Nội dung tóm tắt của từng chương trong
luận văn được trình bày ở cuối phần này.
1.1 Giới thiệu chung
1.1.1 Sơ lược về Web 2.0
Web 2.0 đã mở ra một thời kỳ mới cho các ứng dụng web, trong đó web được
xem như là nền tảng (platform) trong việc phát triển ứng dụng, chia sẻ thông tin
thông qua các dịch vụ mà mình cung cấp [51].
Nếu như các ứng dụng web thuộc thế hệ 1.0 chủ yếu là các website đóng của các
hãng thông tấn hay các công ty nhằm cung cấp thông tin và tiếp cận với khách hàng
một cách hiệu quả thì các ứng dụng web 2.0 đã phát triển dần sang một xu hướng
khác mà ở đó yếu tố tham gia của người dùng đóng vai trò chủ đạo. Web 2.0 có
khuynh hướng kết nối mọi người lại với nhau và tạo ra các công nghệ phục vụ hiệu
quả các hoạt động của con người [53].
Khái niệm Web 2.0 đầu tiên được Dale Dougherty, phó chủ tịch của O’Reilly
Media, đưa ra tại hội thảo Web 2.0 lần thứ nhất vào tháng 10 năm 2004. Dougherty
không đưa ra định nghĩa mà chỉ dùng các ví dụ để so sánh phân biệt Web 1.0 và Web
2.0, chẳng hạn:
DoubleClick là Web 1.0; Google AdSense là Web 2.0.
Ofoto là Web 1.0; Flickr là Web 2.0.
Britannica online là Web 1.0; Wikipedia là Web 2.0.
2
Web cá nhân là Web 1.0; Weblog là Web 2.0.
Kỹ thuật rút trích thông tin từ các trang web (Screen Scraping) là Web 1.0;
Web Services là Web 2.0.
Directory (taxonomy) là Web 1.0; Tagging (folksonomy) là Web 2.0.
…
Sau đó, tại hội nghị Web 2.0 lần 2 tổ chức vào tháng 10 năm 2005, Tim O’Reilly,
chủ tịch kiêm giám đốc điều hành O’Reilly Media đã đúc kết lại những đặc trưng
chính của Web 2.0, bao gồm [51]:
Web có vai trò nền tảng, có thể chạy mọi ứng dụng.
Tập hợp trí tuệ cộng đồng.
Dữ liệu có vai trò then chốt.
Phần mềm được cung cấp ở dạng dịch vụ và được cập nhật không ngừng;
người dùng đóng vai trò đồng phát triển.
Phát triển ứng dụng dễ dàng và nhanh chóng.
Phần mềm có thể chạy trên nhiều thiết bị.
Giao diện ứng dụng phong phú.
Các ứng dụng Web 2.0 đánh dấu những thay đổi quan trọng không chỉ ở sự đột
phá trong nền tảng công nghệ mà còn cả ở cách thức sử dụng Internet của con người:
mọi người cùng tham gia đóng góp cho xã hội “ảo” chứ không chỉ “duyệt và xem”.
Sự thay đổi này vô hình trung đã hình thành nên những môi trường chia sẻ, cộng tác
mà ở đó các cá nhân được liên kết chặt chẽ với nhau. Web 2.0 mang đến những cảm
nhận mới, trong đó các ứng dụng Web 2.0 mang tính đại chúng cao hơn, sự sáng tạo
và dấu ấn cá nhân được thể hiện đậm nét.
Hình 1-1 thể hiện sự đóng góp từ người dùng vào nội dung các ứng dụng web 1.0
và 2.0. Năm 1996, số lượng website (ở thế hệ 1.0) vào khoảng 250.000; trong đó,
thông tin chủ yếu do các nhà cung cấp thông tin tạo ra. Chỉ 10 năm sau, số lượng
website (ở thế hệ 2.0) đã tăng hơn 300 lần với một lượng thông tin lớn được cung cấp
từ đóng góp của người sử dụng. Một số ứng dụng tiêu biểu thể hiện tinh thần của
Web 2.0 như Weblog (Yahoo360 Plus, Opera…), mạng xã hội Facebook
(www.facebook.com), Twitter (www.twitter.com), chia sẻ ảnh (www.flickr.com),
chia sẻ địa chỉ web (del.icio.us), video (www.youtube.com)…
3
Hình 1-1: Sự đóng góp từ người dùng vào nội dung các ứng dụng web 1.0 và 2.0 1
Web 2.0 đã cho ra đời nhiều khái niệm mới, ví dụ như:
Folksonomy: thuật ngữ này được Thomas Vander Wal sử dụng để mô tả khả
năng gán nhãn (label hay tag) và phân loại tài nguyên web được thực hiện bởi
người dùng dựa trên lĩnh vực khái niệm (conceptual domain) của tài nguyên
web này [53]. Kết quả là một hệ thống phân loại khái niệm được chuẩn hóa
dần dựa trên quá trình sử dụng của người dùng. Folksonomy còn có các tên
gọi khác là Collaborative Tagging, Social Classification, Social Tagging.
Microformat: là các định dạng dữ liệu nhỏ gọn được sử dụng để mô tả hay
cung cấp các thông tin tóm tắt về nội dung tài liệu HTML. Định dạng này giúp
người dùng tiếp nhận thông tin dễ dàng hơn và có thể xử lý tự động bởi máy
tính [53]. Một số chuẩn microformat tiêu biểu bao gồm: hCard mô tả thông tin
cá nhân, công ty, tổ chức; hCalendar mô tả lịch biểu, sự kiện; XHTML Friends
Network (XFN) biểu diễn mối quan hệ cá nhân thông qua các siêu liên kết.
1
4
Mạng xã hội: là ứng dụng web cho phép các cá nhân trên Internet có thể kết
nối, liên lạc với nhau tạo thành một cộng đồng với mục tiêu giao lưu kết bạn,
chia sẻ thông tin, sở thích, lĩnh vực quan tâm, kinh doanh, mua bán [53]. Các
mạng xã hội nổi tiếng hiện nay là MySpace, Facebook (ở Bắc Mỹ và Tây Âu),
Friendster (tại Châu Á), Cyworld (Hàn Quốc), Mixi (Nhật Bản), Zing Me
(Việt Nam).
Web API: là phương tiện truy cập thông tin do nhà phát triển ứng dụng Web
cung cấp nhằm cho phép các ứng dụng khác sử dụng và khai thác thông tin từ
Website của mình. Web API là một trong những thành phần quan trọng để xây
dựng ứng dụng Mashup [53].
…
1.1.2 Mashup và widget
Mashup cũng là một thành viên ra đời trong trào lưu Web 2.0. Mục tiêu chính mà
Mashup mang lại là cung cấp cho người dùng các công cụ hay kỹ thuật cần thiết
nhằm khai thác, tận dụng, kết hợp các nguồn thông tin, dịch vụ có sẵn để tạo ra thông
tin hay dịch vụ mới phục vụ cho nhu cầu của mình. Hình 1-2 mô tả một cách tổng
quan cách phát triển ứng dụng Mashup.
Hình 1-2: Ứng dụng Mashup với khả năng tích hợp nội dung từ nhiều nguồn [55]
5
Hiện nay có khá nhiều định nghĩa liên quan đến Mashup [5][19][28][35][53]. Một
cách tổng quát Mashup là một ứng dụng web được tạo ra bằng cách kết hợp thông tin,
xử lý và giao diện từ nhiều nguồn khác nhau để tạo thành một ứng dụng mới.
Ứng dụng Mashup chủ yếu được tạo ra để giải quyết nhanh các tình huống nghiệp
vụ phát sinh hàng ngày hơn là các giải pháp phục vụ cho các mục tiêu mang tính
chiến lược và lâu dài trong doanh nghiệp, tổ chức. IBM đã đưa ra 3 tình huống mà
Mashup là một trong những giải pháp tức thời và hữu dụng [52]:
Tạo ra ứng dụng ứng phó nhanh các tình huống nghiệp vụ phát sinh hàng ngày
mà các tình huống này thường rất khó hoặc không thể dự đoán trước.
Ứng dụng tạo ra chỉ phục vụ cho một nhóm người dùng nhỏ. Bộ phận IT sẽ phát
triển các công cụ hỗ trợ và ủy thác người dùng tự xây dựng ứng dụng theo nhu
cầu của họ.
Bộ phận IT có thể tận dụng hỗ trợ của các công cụ phát triển Mashup để triển
khai nhanh các ứng dụng nhỏ phục vụ người dùng cuối.
Mashup khi được áp dụng trong các hệ thống doanh nghiệp không chỉ giúp doanh
nghiệp đạt được lợi ích về mặt kinh tế mà còn phát huy khả năng đóng góp và sáng
tạo của nhân viên [52].
Trong Mashup, widget là thành phần quan trọng có nhiệm vụ cung cấp giao diện
thể hiện thông tin và tương tác với người dùng cuối [5][19][22][35].
Ban đầu, widget (còn có tên gọi khác là gadget hay badget) ra đời một phần xuất
phát từ nhu cầu quảng bá và phổ biến thông tin trên Internet … Người dùng đóng gói
các thông tin cần chia sẻ (RSS, Blog, Site cá nhân ...) và thể hiện dưới dạng widget,
những người dùng khác có thể download về sử dụng, xem các thông tin mà widget
cung cấp.
Ví dụ: Flickr badget là widget hỗ trợ xem trước các tấm ảnh trong một album
dưới dạng thu nhỏ. Khi click chọn Badge, trình duyệt sẽ điều hướng người dùng đến
trang hiển thị tất cả ảnh trong Album.
Một số nhà cung cấp widget tiêu biểu nhất hiện nay bao gồm: Google,
WidgetBox, ClearSpring, Netvibes, Microsoft, Yahoo… Tính đến thời điểm 5/2010,
Netvibes và Google có thể được xem là các nhà cung cấp widget lớn nhất hiện nay
dựa trên số lượng widget cung cấp (Netvibes: 189760 widget, Google: 147335
widget) và sự đông đảo của cộng đồng. Hình 1-3, Hình 1-4, Hình 1-5 minh họa một
số widget do Google, WidgetBox và Netvibes cung cấp.
6
Hình 1-3: Các gadget do Google cung cấp
(
Hình 1-4: Các loại widget được hỗ trợ bởi widgetBox
(www.widgetbox.com)
Hình 1-5: Các widget của Netvibes
(www.netvibes.com)
7
Phần lớn widget được cung cấp dưới dạng ứng dụng tiện ích: lịch, đồng hồ, ghi
chú (sticky notes), lịch công việc (task list) hoặc gián tiếp cung cấp thông tin, dịch vụ
từ các website khác (Google Map, Facebook, Gmail, Youtube, Flickr…). Các widget
có thể hoạt động trên môi trường do nhà phát triển đưa ra (chẳng hạn Netvibes
Container, iGoogle Container) hoặc nhúng trực tiếp bằng các đoạn mã javascript vào
các website khác. Đặc điểm chung của các loại widget trên là chỉ hoạt động đơn lẻ,
thậm chí không thể kết hợp widget cùng nền tảng.
Trong ứng dụng Mashup đòi hỏi các widget thường phải có khả năng phối hợp
hoạt động với nhau [5][19][25][35][38]. Ứng dụng Mashup là kết quả của việc kết
hợp khả năng xử lý và phối hợp vận hành của các widget với nhau trên cùng một ứng
dụng Web. Việc lắp ráp, tích hợp widget để cho ra đời những công dụng hay chức
năng hữu ích mới sẽ nâng cao khả năng sử dụng và mức độ phổ biến của widget hơn
là chỉ hoạt động độc lập.
Hình 1-6: Các widget do IBM cung cấp có khả năng phối hợp hoạt động
Theovào kết quả khảo sát của chúng tôi được trình bày trong Bảng 1-1, IBM
widget [26] và OpenAjax widget [38] là 2 phương pháp đặc tả widget hỗ trợ Mashup
mạnh mẽ nhất hiện nay. IBM đã đưa ra công cụ IBM Mashup Center [15] với giao
diện thân thiện cùng với tập widget xây dựng sẵn với chức năng phong phú, mạnh
mẽ, khả năng tùy biến cao cho phép xây dựng Mashup một cách dễ dàng và nhanh
chóng [56].
8
1.1.3 Widget Platform
Chúng tôi đã khảo sát trên 14 platform tiêu biểu hỗ trợ các kỹ thuật cần thiết để
phát triển widget. Chi tiết về đặc điểm, khả năng hỗ trợ của từng platform được trình
bày chi tiết trong Bảng 1-1.
widget Platform Gallery
Platform Cung cấp
đặc tả
và API
Hỗ trợ
Mashup
Web Desktop Mobile
Khác
(TV, ..)
OpenAjax widget x x x
Google Gadget x x x x
IBM iWidget x x x
Netvibes x x x x
Kludgets x x x x
ClearSpring x
MuseStorm x x x
Opera x x x x x x
Microsoft Gadget x x x x x
YourMinis x x x
Springwidget x x x
Yahoo widget x x x x
widgetBox x x
W3C x x x x
Bảng 1-1: widget Platform hỗ trợ tạo widget
Bảng 1-1 liệt kê các nhà cung cấp widget tiêu biểu nhất hiện nay dựa trên mức độ
phổ biến của platform. Đa số widget tạo bởi các platform thường được xây dựng dựa
trên công nghệ chuẩn của web (HTML, CSS, Javascript); do đó đều có thể hoạt động
trên web. Một số widget còn có thể hoạt động trên desktop, thậm chí trên thiết bị di
động, tivi… Các widget này thường yêu cầu cài đặt thư viện mà platform sử dụng,
chẳng hạn Opera, Yahoo… Ngoài việc sử dụng widget có sẵn do Gallery cung cấp,
người dùng còn có thể sử dụng các thư viện lập trình API kèm theo platform
(OpenAjax, IBM iWidget, Google Gadget, Netvibes, Opera, Microsoft Gadgets…) để
tự xây dựng widget phục vụ nhu cầu cá nhân hoặc đóng góp cho cộng đồng.
Bảng 1-1 cũng cho thấy hiện nay đa số các platform hỗ trợ phát triển widget phục
vụ Mashup còn rất hạn chế; chỉ có OpenAjax widget và IBM iWidget cung cấp các
framework trưởng thành phục vụ phát triển Mashup.
9
1.2 Lý do thực hiện đề tài
Mashup là một dạng ứng dụng tổng hợp (Composite Application), trong đó việc
tích hợp chủ yếu thực hiện ở tầng giao diện thông qua các widget [5][19][35]. Việc
tích hợp widget về bản chất là kết hợp các thành phần thể hiện nội dung (Presentation
Component) và các nghiên cứu về giải pháp tích hợp ở tầng trình bày (Presentation)
vẫn còn hạn chế [20]. Bảng 1-1 trình bày kết quả khảo sát của chúng tôi về khả năng
tạo Mashup của các widget Platform và hạn chế trong các đề xuất về đặc tả, phối hợp
widget (OpenAjax widget[38], Jin Yu[14], IBM iWidget[26]…). Ta thấy nhu cầu
cung cấp đặc tả widget với các biểu diễn bổ sung nhằm mở rộng khả năng phối hợp
và giảm bớt sự phụ thuộc giữa các widget là cần thiết và giúp cho Mashup trở thành
một hướng tiếp cận phát triển các giải pháp tình huống dễ dàng và nhanh chóng.
1.3 Mục tiêu đề tài
Đề tài không hướng đến việc xây dựng một hệ thống quản lý, cung cấp đầy đủ
mọi dạng widget mà đóng góp chủ yếu là đề xuất mô hình đặc tả widget (widget
Model), biểu diễn sự phối hợp widget (widget Coordination Model) nhằm nâng cao
khả năng phối hợp, khắc phục các hạn chế trong các hướng tiếp cận hiện nay. Các
đóng góp của luận văn bao gồm:
Đề xuất mô hình biểu diễn widget đặc tả các thành phần quan trọng trong cấu trúc
widget tương thích với các chuẩn widget hiện nay cũng như tập trung đặc tả các
thành phần biểu diễn khả năng phối hợp widget: sự kiện (event), thao tác
(operation), tham số sự kiện truyền (Event Data), đối số nhận trong thao tác
(Operation Input).
Đề xuất mô hình biểu diễn mối quan hệ phối hợp widget để tạo lập Mashup kết
quả; trong đó 2 đề xuất chính là: ánh xạ các thành phần trong cấu trúc tham số sự
kiện truyền với các thành phần trong đối số của thao tác; gom nhóm tham số sự
kiện tự động để tạo kiểu dữ liệu tương thích với cấu trúc đối số của thao tác. Từ
những đề xuất bổ sung biểu diễn khả năng phối hợp, mô hình đã khắc phục sự phụ
thuộc về tham số truyền khi phối hợp giữa các widget, nâng cao tính tái sử dụng
widget và khả năng kết buộc trễ giữa các widget (late binding).
10
Trên cơ sở các mô hình đề xuất, luận văn cũng đã xây dựng Engine phân tích đặc
tả widget, đặc tả biểu diễn phối hợp và phát sinh ứng dụng web với khả năng phối
hợp xử lý phù hợp với yêu cầu trong đặc tả.
Cài đặt một số widget có vai trò chuyển đổi dữ liệu nhằm giải quyết vấn đề tham
số truyền không tương thích, giúp cho quá trình tổng hợp Mashup dễ dàng và thuận
tiện hơn.
1.4 Nội dung
Luận văn bao gồm 6 chương với bố cục trình bày như sau:
Chương 1: Giới thiệu chung về đề tài: Web 2.0, sự ra đời của Mashup,
widget, lý do thực hiện và mục tiêu của đề tài.
Chương 2: Trình bày các vấn đề liên quan đến Mashup, các thành phần trong
cấu trúc widget, khả năng biểu diễn phối hợp widget trong các hướng tiếp cận hiện
nay cũng được đề cập.
Chương 3: Khảo sát, phân tích, đánh giá ưu và khuyết điểm trong các mô hình
đặc tả, tổng hợp widget hiện nay, từ đó đề xuất một số ý tưởng biểu diễn bổ sung
nhằm khắc phục hạn chế của các đề xuất hiện tại.
Chương 4: Đề xuất 2 mô hình: mô hình biểu diễn widget và mô hình đặc tả sự
phối hợp widget tạo ứng dụng Mashup nhằm hiện thực hóa khả năng phối hợp với
các ý tưởng biểu diễn cải tiến và khắc phục hạn chế trong các phương pháp biểu diễn
đã khảo sát trong chương 3.
Chương 5: Trình bày kiến trúc tổng quan hệ thống, quy trình xử lý, kết quả
thử nghiệm. Việc so sánh với các hướng tiếp cận hiện nay về các khía cạnh: mô hình
biểu diễn widget, mô hình phối hợp, khả năng tạo Mashup an toàn cũng được trình
bày ở cuối chương.
Chương 6: Tổng kết các kết quả tìm hiểu, những cải tiến, đóng góp trong đề
xuất về mô hình biểu diễn widget, phối hợp widget và hướng phát triển của đề tài.