Luận văn Nghiên cứu việc biểu diễn và tổng hợp Widget phục vụ Mashup

Đề tài đã thực hiện khảo sát trên 14 widget Platform, trong đó tập trung vào những đặc tả widget phổ biến với cộng đồng người dùng và nhà phát triển đông đảo (Netvibes, Google Gadget ) cùng với những đặc tả được phát triển bởi những hãng phần mềm hoặc tổ chức lớn (IBM, OpenAjax Alliance). Trên cơ sở đó, chúng tôi đã tổng kết những đặc trưng tiêu biểu và cần thiết nhất của widget để thực hiện xây dựng mô hình biểu diễn widget. Với trọng tâm là cải tiến khả năng phối hợp widget trong các hướng tiếp cận hiện tại, chúng tôi cũng đã tìm hiểu các phương pháp phối hợp trong các hướng tiếp cận hiện nay, trong đó tiêu biểu là các phương pháp của OpenAjax widget [38], Jin Yu [14] và IBM iWidget [26]. Trên cơ sở phân tích và đánh giá một cách khách quan các giải pháp này, chúng tôi đã rút ra một số kết luận sau: Một số phương pháp cung cấp thư viện hỗ trợ khả năng phối hợp rất mạnh, chẳng hạn Google, IBM iWidget, thậm chí đã được công nhận là chuẩn công nghiệp Ajax tạo Mashup an toàn (OpenAjax widget). Tuy nhiên các đề xuất này chỉ là giải pháp phù hợp cho nhà phát triển thực hiện việc phối hợp thông qua cài đặt. Mô hình biểu diễn sự phối hợp dựa trên đặc tả trừu tượng không được cung cấp. Từ đó việc tổng hợp chỉ có thể được hiện thực hóa bởi nhà phát triển, khả năng bảo trì, mở rộng ứng dụng cũng bị hạn chế vì việc chỉnh sửa hay bổ sung thêm tính năng mới đòi hỏi việc am hiểu các API mà bản thân phương pháp hỗ trợ cũng như công nghệ cài đặt bên trong widget. Do đó, các widget chỉ có thể phối hợp trong quá trình phát triển ứng dụng Mashup hơn là sau khi đã triển khai, khả năng kết buộc trễ và tái sử dụng widget mà không phải chỉnh sửa mã nguồn là không khả thi. Một số phương pháp cung cấp biểu diễn phối hợp, tuy nhiên mức độ, khả năng phối hợp của mô hình biểu diễn vẫn còn một số hạn chế, chẳng hạn mô hình của Sohei Ikeda biểu diễn mối quan hệ phối hợp ngay trong đặc tả widget [25]. Điều này tạo ra sự kết buộc chặt giữa các widget khi xây dựng widget, từ đó khả năng kết buộc trễ cũng như tái sử dụng widget rất khó khăn. Đề xuất của Jin Yu đã giải quyết hạn chế này bằng cách phân tách biểu diễn mối quan hệ phối hợp khỏi đặc tả widget [14]. Tuy nhiên, cả 2 phương pháp đều chưa mô tả cấu trúc thành phần trong tham số sự kiện cũng như biểu diễn cơ chế lan truyền sự kiện giữa các widget, trong khi nhu cầu thực tế trong việc đặc tả các thành phần này là cần thiết khi thực hiện một số kịch bản phối hợp phức tạp. Đặc tả iWidget do IBM cung cấp đã khắc phục được hầu hết hạn chế của các hướng tiếp cận trên. Ngoài việc cung cấp framework hỗ trợ xây dựng widget, biểu diễn phối hợp, IBM còn cung cấp đặc tả cho phép mô tả cấu trúc tham số sự kiện và cơ chế lan truyền sự kiện [26]. Để giải quyết vấn đề dữ liệu truyền không tương thích, IBM đã cung cấp một số widget hỗ trợ quá trình này (Javascript Adapter, Data Editor) thay vì chỉ nêu ra ý tưởng như trong đề xuất của Jin Yu [14]. Tuy nhiên, mô hình hiện tại chỉ cho phép truyền tham số sự kiện là một biến cấu trúc, chưa hỗ trợ phân rã các thành phần trong cấu trúc; đồng thời ở widget nhận phải nhận đầy đủ tất cả thành phần trong tham số này để xử lý. Từ đó, cài đặt của widget nhận sẽ phụ thuộc hoàn toàn vào cấu trúc tham số sự kiện trong widget nguồn dẫn đến khả năng thay thế widget nguồn tương đương khó khăn và hạn chế khả năng kết buộc trễ (đã trình bày chi tiết trong 3.4.4). Từ việc phân tích, đánh giá điểm mạnh cũng như hạn chế trong các phương pháp trên, luận văn đã đề xuất 2 mô hình: Mô hình biểu diễn widget với đầy đủ các thành phần quan trọng mà các chuẩn widget hiện nay đang sử dụng, bao gồm: thành phần mô tả chung về widget, tham số cấu hình hoạt động, tham chiếu thư viện sử dụng, tham chiếu kiểu định dạng thể hiện; cũng như các mô tả biểu diễn khả năng phối hợp widget: cấu trúc tham số sự kiện và đối số thao tác, thành phần mô tả thao tác, sự kiện. Mô hình biểu diễn mối quan hệ phối hợp widget dựa trên cơ chế khai báo, đăng ký (publish/subscribe). Mô hình cũng đã cung cấp 2 biểu diễn bổ sung nhằm mở rộng khả năng phối hợp, bao gồm: biểu diễn ánh xạ việc truyền các thành phần trong tham số sự kiện với thành phần trong đối số của thao tác; biểu diễn gom nhóm các thành phần tham số sự kiện để tạo cấu trúc tham số phù hợp với kiểu dữ liệu mà đối số của thao tác yêu cầu. Dựa trên các mô tả bổ sung này, ta có thể xây dựng Engine thực hiện phối hợp truyền tham số tự động mà không cần sự can thiệp của lập trình viên cũng như chỉnh sửa trong mã nguồn vì tất cả đều thực hiện thông qua biểu diễn trừu tượng. Biễu diễn này cũng cho phép khai báo số lượng cũng như thứ tự của các thành phần trong tham số sự kiện và đối số của thao tác một cách tùy ý mà không phụ thuộc bất kỳ ràng buộc nào. Trên cơ sở đó, mô hình đã mở rộng khả năng phối hợp, tái sử dụng và kết buộc trễ giữa các widget. Đặc tả trong biểu diễn widget đề xuất cho phép các widget có thể phát triển bởi bất kỳ công nghệ nào có thể hoạt động trên trình duyệt, chẳng hạn widget phát triển từ các chuẩn trên Web: HTML, CSS, Javascript hoặc được phát triển từ các thư viện Javascript (JQuery, Dojo, YUI, Google Map API) và công nghệ RIA khác nhau (Silverlight, Flash). Đề tài cũng đã xây dựng thử nghiệm Engine phân tích các thành phần trong đặc tả widget đề xuất, đặc biệt là mô hình phối hợp widget với các biểu diễn mở rộng; ứng dụng Web phát sinh dựa trên đặc tả và kịch bản phối hợp đều đạt được kết quả phối hợp thành công. Ngoài ra, biểu diễn phối hợp dựa trên các đề xuất mở rộng mang tính tổng quát, trừu tượng cao, đơn giản, có thể sử dụng dễ dàng bởi người phát triển thậm chí người dùng cuối nếu được cung cấp đầy đủ công cụ với giao diện hỗ trợ. Điều đó chứng tỏ phương pháp biểu diễn mà luận văn đề xuất là một hướng tiếp cận khả thi, có thể áp dụng để tổng hợp Mashup, cải tiến các hạn chế đã trình bày ở trên trong các đề xuất biểu diễn hiện nay. Hướng phát triển  Xây dựng, đa dạng hóa nhiều dạng widget đáp ứng các yêu cầu của người dùng cuối, hướng đến việc phát triển một cộng đồng widget mạnh mẽ tương tự Netvibes, Google Gadget, Opera widgets  Phát triển, chuẩn hóa thư viện API hỗ trợ đặc tả widget đề xuất, giúp cho việc xây dựng widget dễ dàng và hiệu quả.  Xây dựng Mashup Editor quản lý widget, cho phép phối hợp widget dựa trên giao diện đồ họa trực quan và phát sinh biểu diễn tương ứng.  Tìm hiểu và tận dụng một số phương pháp biểu diễn ngữ nghĩa (Semantics) cho phép mô tả các thành phần trong widget một cách hình thức hơn, nâng cao khả năng tìm kiếm, phối hợp widget tự động.  Mở rộng Engine với tập luật chuyển đổi cho phép import đặc tả, sử dụng widget từ các chuẩn biểu diễn widget khác.

pdf21 trang | Chia sẻ: tuandn | Lượt xem: 1817 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Nghiên cứu việc biểu diễn và tổng hợp Widget phục vụ Mashup, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
48 Chương 4 Đề xuất mô hình biểu diễn widget, sự phối hợp widget và ứng dụng Mashup Tóm tắt:  Nội dung chương này trình bày chi tiết về 3 mô hình do chúng tôi đề xuất trong luận văn, cụ thể là Mô hình biểu diễn các thành phần trong widget, Mô hình biểu diễn sự phối hợp widget và Mô hình biểu diễn ứng dụng Mashup tổng hợp (Mashup Canvas). Ngoài ra, chúng tôi cũng đề xuất các biểu diễn mở rộng nhằm nâng cao mức độ phối hợp, hạn chế sự phụ thuộc về tham số truyền và mở rộng khả năng kết buộc trễ giữa các widget. Chi tiết về các widget hỗ trợ quá trình xây dựng Mashup cũng được đề cập ở cuối chương. 4.1 Mô hình đặc tả widget 4.1.1 Các thành phần trong widget Qua khảo sát các chuẩn đặc tả widget với trọng tâm là nâng cao khả năng phối hợp, tương tác widget, chúng tôi đề xuất đặc tả widget bao gồm các thành phần được mô tả trong Hình 4-1. Ý nghĩa của từng thành phần được trình bày trong Bảng 4-1. Hình 4-1: Các thành phần trong cấu trúc widget 49 Thành phần Mô tả Widget Description Chứa các thông tin mô tả về widget User Preferences Khai báo các tham số cấu hình hoạt động của widget Libraries Khai báo tham chiếu đến các thư viện Javascript mà widget sử dụng Style Khai báo các tham chiếu đến tập tin CSS Structures Khai báo các cấu trúc tham số sự kiện truyền (event data), tham số của thao tác (input data) Operations Khai báo các phương thức có thể được gọi bởi widget khi thực hiện phối hợp Events Khai báo các sự kiện mà widget cung cấp Content Mô tả giao diện thể hiện của widget Bảng 4-1: Ý nghĩa các thành phần trong widget 4.1.2 Các thuộc tính của widget khi sử dụng trong Mashup Các thuộc tính của widget sử dụng trong ứng dụng Mashup được mô tả trong Hình 4-2. Chi tiết ý nghĩa các thuộc tính widget được trình bày trong Bảng 4-2. Hình 4-2: Các thuộc tính của widget sử dụng trong ứng dụng Mashup Thuộc tính Mô tả Id Định danh widget tại Client, thuộc tính này chỉ sử dụng trên MashupCanvas. ReferenceModel Tham chiếu đến mô hình biểu diễn đầy đủ các thành phần của widget, thuộc tính này chỉ sử dụng trong MashupCanvas. Top Vị trí góc trên trái của widget trên Mashup Canvas. Left Width Chiều rộng, chiều cao widget được hiển thị trên Mashup Canvas Height AutoScrolling (true/false), Tự động hiển thị thanh cuộn nếu chiều rộng/cao widget nhỏ hơn chiều rộng/cao của nội dung. Bảng 4-2: Ý nghĩa các thuộc tính trong widget 50 4.1.3 Thành phần mô tả widget (widget Description) Thành phần mô tả widget (Widget Description) chứa các thông tin mô tả tổng quan về ý nghĩa, công dụng widget cho người sử dụng hoặc xử lý tự động bởi máy tính. Các thuộc tính trong Widget Description được mô tả trong Hình 4-3. Chi tiết về ý nghĩa các thuộc tính trong Widget Description được trình bày trong Bảng 4-3. Widget Description -Name -Title -Author -AuthorEmail -AuthorWebsite -Description -Version -Keyword -Tag -MinWidth -MinHeight -MaxWidth -MaxHeight -Icon -Thumbnail Hình 4-3: Các thuộc tính của widget Description Thuộc tính Mô tả Name Tên widget được dùng trong Mashup Framework Title Tiêu đề widget thể hiện trong Mashup Canvas Author Tên người phát triển widget AuthorEmail Email của người phát triển widget AuthorWebsite Địa chỉ Website của người phát triển widget Description Mô tả ý nghĩa, công dụng widget… Version Thông tin phiên bản Keyword Phân loại widget do Author định nghĩa, có thể được khai thác bởi các Search Engine. Tag Phân loại widget do người dùng widget định nghĩa MinWidth Chiều rộng tối thiểu widget khi hiển thị MinHeight Chiều cao tối thiểu widget khi hiển thị 51 Thuộc tính Mô tả MaxWidth Chiều rộng tối đa widget khi hiển thị MaxHeight Chiều cao tối đa widget khi hiển thị Icon URL Icon (16x16) hiển thị trên Title của widget Thumbnail URL Icon (64x64) sử dụng trong Mashup Environment Bảng 4-3: Ý nghĩa các thuộc tính trong Widget Description 4.1.4 Tham số cấu hình hoạt động (UserPreferences) Mối quan hệ giữa các thành phần biểu diễn tham số cấu hình hoạt động của widget được mô tả trong Hình 4-4. Hình 4-4: Các thành phần biểu diễn tham số cấu hình hoạt động (User Preferences) Thành phần tổng thể User Preferences chứa 2 thông tin chính: thuộc tính Display và các nhóm tham số Preference Group với ý nghĩa được mô tả trong Bảng 4-4. Thuộc tính Mô tả Display Chứa các giá trị: Tab/Accordian/Groupbox, cho biết cách thức hiển thị các nhóm tham số Thành phần con Mô tả Prefence Group Chứa thông tin mô tả cho một nhóm tham số Bảng 4-4: Ý nghĩa các thành phần biểu diễn tham số cấu hình hoạt động 52 Trong đó, thành phần Preference Group là biểu diễn do luận văn đề xuất nhằm cung cấp khả năng gom nhóm các tham số cấu hình có liên quan, tạo ra sự tiện lợi cho người dùng trong quá trình sử dụng widget. Chi tiết về các thành phần bên trong Preference Group được mô tả trong Bảng 4-5. Thuộc tính Mô tả Label Tiêu đề nhóm Thành phần con Mô tả Prefence Mô tả một tham số Bảng 4-5: Ý nghĩa các thành phần trong Preference Group Preference là thành phần mô tả ý nghĩa của một tham số, chi tiết thành phần này được trình bày trong Bảng 4-6. Thuộc tính Mô tả Name Định danh tham số, dùng để truy cập giá trị tham số tại trình duyệt bằng Javascript. Type Kiểu dữ liệu tham số. Tùy thuộc vào kiểu dữ liệu sẽ phát sinh ra control nhập liệu tương ứng, có ý nghĩa tương tự như mô hình của Netvibes[36], Google Gadget[37]. Các giá trị Type có thể chứa là: Bool: CheckBox Text: TextBox Password: Password Field DateTime: Calendar Enum: Menu/ComboBox Hidden: Hidden Field Label Nhãn nằm cạnh control nhập liệu tham số DefaultValue Giá trị mặc định hoặc đã lưu trữ trong các lần sử dụng trước (thông tin này có thể truy cập trong UserProfile). Required Cho biết tham số có bắt buộc nhập liệu hay không Thành phần con Mô tả EnumValue (Gogole Gadget [37]) Chỉ sử dụng nếu Type có giá trị là Enum, mỗi EnumValue tương ứng với thẻ trong HTML. Bảng 4-6: Các thành phần trong Preference 53 Bảng 4-7 mô tả ý nghĩa thành phần EnumValue. Enum Value là biểu diễn mô tả cho một dòng chọn nếu Preference là một ComboBox. Thuộc tính Mô tả Value Giá trị tương ứng với dòng chọn Label Nội dung thể hiện của dòng được chọn, có thể khác với Value Bảng 4-7: Các thành phần trong EnumValue 4.1.5 Thành phần mô tả tham chiếu thư viện (Libraries) Thành phần Libraries được dùng để khai báo tham chiếu đến các thư viện Javascript mà widget sử dụng trong quá trình hoạt động được minh họa trong Hình 4-5. Hình 4-5: Các thành phần trong Libraries Mỗi tham chiếu thư viện sẽ được mô tả bởi thành phần con Library được mô tả trong Bảng 4-8. Thuộc tính Mô tả Href Chứa địa chỉ đến tập tin .js. Địa chỉ này có thể tham chiếu đến tập tin cục bộ bên trong website hoặc từ website bên ngoài Bảng 4-8: Mô tả thuộc tính Href trong thành phần Library 4.1.6 Thành phần mô tả tham chiếu sử dụng kiểu định dạng thể hiện (Style) Thành phần Style chứa khai báo tham chiếu đến tập tin CSS chứa các kiểu định dạng mà widget sử dụng khi thể hiện nội dung được mô tả trong Hình 4-6. Style -Href CSSReference Hình 4-6: Các thành phần trong Style 54 Mỗi tham chiếu sẽ được mô tả bởi thành phần con CSSReference với ý nghĩa được trình bày trong Bảng 4-9. Thuộc tính Mô tả Href Chứa địa chỉ đến tập tin .css Bảng 4-9: Mô tả thuộc tính Href trong thành phần CSSReference 4.1.7 Cấu trúc tham số (Structures) Thành phần Structures có vai trò mô tả các cấu trúc tham số sự kiện truyền (event data) hoặc đối số của thao tác (input data) sử dụng trong quá trình phối hợp. Biểu diễn này là đặc tả mở rộng đối với phương pháp của Jin Yu [14] và có vai trò tương tự [54] trong đặc tả IBM iWidget. Mối quan hệ giữa các thành phần biểu diễn cấu trúc tham số được mô tả trong Hình 4-7. Hình 4-7: Các thành phần mô tả cấu trúc tham số (Structures) Mỗi cấu trúc sẽ được mô tả bởi thành phần con Structure được trình bày trong Bảng 4-10. Thuộc tính Mô tả Name Tên cấu trúc Thành phần con Mô tả Member Mô tả một thành phần bên trong cấu trúc kiểu cơ sở Structure Mô tả một thành phần bên trong cấu trúc kiểu cấu trúc Bảng 4-10: Các thành phần trong Structure 55 Trong mỗi Structure, Member là thành phần mô tả một trường trong cấu trúc, chi tiết đặc tả thành phần Member được mô tả trong Bảng 4-11. Thuộc tính Mô tả Name Tên thành phần trong cấu trúc DataType Kiểu dữ liệu của thành phần, các giá trị có thể là: String, Boolean, Number, Array Nếu DataType là Array, cần phải khai báo thêm thuộc tính ElementDataType. ElementDataType Được sử dụng khi DataType là Array, cho biết cho biết các phần tử bên trong Array có kiểu dữ liệu là gì. Bảng 4-11: Các thành phần trong Member 4.1.8 Thao tác trong widget (Operations) Thành phần này là biểu diễn mở rộng đối với chuẩn OpenAjax widget, có vai trò tương đương với Handled Event trong IBM iWidget [26] và thao tác (operation) trong giải pháp của Jin Yu[14], nhằm mô tả các thao tác có thể được thực hiện bởi widget khi sự kiện xảy ra. Thành phần này được mô tả trong Hình 4-8. Hình 4-8: Các thành phần biểu diễn thao tác xử lý của widget (Operations) 56 Mỗi thao tác sẽ được biểu diễn bởi thành phần con Operation với cấu trúc được trình bày theo Bảng 4-12. Thuộc tính Mô tả Name Tên của thao tác Description Mô tả ý nghĩa, công dụng thao tác Thành phần con Input Tham số truyền mà thao tác cần để xử lý Bảng 4-12: Các thành phần trong thao tác (operation) Mỗi thao tác sẽ khai báo một tập tham số (input). Cấu trúc mỗi tham số được mô tả theo Bảng 4-13. Thuộc tính Mô tả Name Tên tham số DataType Kiểu dữ liệu tham số, có thể là kiểu cơ sở hoặc kiểu cấu trúc (tham chiếu đến thành phần Structures). Required Cho biết tham số có bắt buộc phải cung cấp hay không, nếu không khai báo, giá trị mặc định là false. Thành phần này cung cấp thông tin cho biết quá trình phối hợp chỉ có thể xảy ra khi những đối số nào trong thao tác phải được cung cấp. Nếu tham số không được cung cấp trong quá trình phối hợp và Required là false, Engine sẽ tự cung cấp cho nó giá trị mặc định nhằm đảm bảo lời gọi đúng cú pháp, ví dụ: Boolean gán là false, Array là mảng rỗng []. Thuộc tính này là biểu diễn bổ sung so với đặc tả của Jin Yu [14] và IBM iWidget [26]. Bảng 4-13: Các thành phần biểu diễn tham số thao tác (Input)  Ví dụ: biểu diễn thao tác canh giữa bản đồ đối với widget hiển thị bản đồ <Operation Name=“setCenter” Description=“show map with the center point”> 57 4.1.9 Sự kiện trong widget (Events) Thành phần này khai báo các sự kiện mà widget hỗ trợ trong quá trình sử dụng. Đặc tả này có vai trò tương tự với biểu diễn sự kiện của Jin Yu[14] và Published Event trong IBM iWidget [26] được minh họa theo Hình 4-9. Hình 4-9: Các thành phần trong tập sự kiện (Events) Mỗi sự kiện sẽ được biểu diễn bởi thành phần con Event với cấu trúc được mô tả trong Bảng 4-14. Thuộc tính Mô tả Name Tên sự kiện được dùng khi đặc tả sự phối hợp Description Mô tả ý nghĩa về tình huống sự kiện được phát ra Thành phần con Param Mô tả một thành phần trong tham số sự kiện (event data) truyền cho widget khác và sẽ được ánh xạ với tham số nhận của thao tác (operation) Bảng 4-14: Các thành phần trong sự kiện (event) Mỗi sự kiện khi phát ra sẽ cung cấp tập các tham số sự kiện cho các widget khác. Tùy vào nhu cầu sử dụng, các widget khác có thể tiếp nhận toàn bộ hoặc một phần các tham số này (OpenAjax widget [38], Jin Yu [14], IBM iWidget [26] chỉ cho phép tiếp nhận toàn bộ cấu trúc tham số sự kiện). Cấu trúc của mỗi thành phần tham số được trình bày trong Bảng 4-15. Thuộc tính Mô tả Name Tên thành phần tham số DataType Kiểu dữ liệu thành phần tham số Bảng 4-15: Các thành phần trong tham số sự kiện (param) 58  Ví dụ: Đối với widget thể hiện danh sách các địa điểm, khi người dùng chọn một địa điểm, sự kiện LocationSelectionChanged sẽ được phát ra và truyền đi tham số sự kiện bao gồm 3 thành phần: tên địa điểm (locationName), kinh độ (Lng), vĩ độ (Lat). Biểu diễn sự kiện được biểu diễn như sau: <Event Name=“LocationSelectionChanged” Description=“raise when selecting a location” > 4.2 Mô hình phối hợp widget 4.2.1 Mô hình biểu diễn Thành phần này biểu diễn mối quan hệ phối hợp giữa 2 widget và được tách biệt ra khỏi đặc tả widget nhằm mở rộng khả năng tái sử dụng widget trong nhiều ứng dụng khác nhau (Jin Yu [14]). Các thành phần trong biểu diễn phối hợp được thể hiện trong Hình 4-10. Hình 4-10: Các thành phần trong biểu diễn phối hợp Mỗi biểu diễn về mối quan hệ phối hợp giữa hai widget được đặc tả bởi thành phần Listener, với cấu trúc được trình bày trong Bảng 4-16. 59 Thuộc tính Mô tả Publisher Định danh (id) của widget phát ra sư kiện SourceEvent Tên sự kiện được phát ra bởi Publisher Subscriber Định danh (id) của widget đăng ký xử lý sự kiện Operation Thao tác của Subsriber được thực hiện DestinationEvent Biểu diễn mở rộng trong mô hình của Jin Yu[14], cho phép thực hiện cơ chế lan truyền sự kiện giữa các widget Thành phần con (ý nghĩa các thành phần sẽ được mô tả chi tiết ở phần đề xuất biểu diễn mở rộng 4.2.2) Mapping Biểu diễn ánh xạ thành phần tham số sự kiện vào tham số của thao tác ParamGroup Biểu diễn gom nhóm tham số tự động Bảng 4-16: Các thành phần trong mối quan hệ phối hợp (Listener)  Ví dụ: biểu diễn phối hợp giữa widget hiển thị danh sách địa điểm và widget bản đồ được thể hiện như sau: <listener xmlns=“” publisher=“locationwidget” event=“LocationSelectionChanged” subscriber=“mapwidget” operation=“setCenter “/> Khi người dùng chọn một địa điểm, sự kiện LocationSelectionChanged được phát ra và kích hoạt thao tác showLocation của widget bản đồ. Trong Hình 4-10, các thành phần: thuộc tính DestinationEvent trong Listener, ActionTimerListener, JavascriptAdapterListener, EventExplorerListener, ParamGroup, Mapping là các biểu diễn mở rộng được luận văn đề xuất nhằm khắc phục các hạn chế về khả năng phối hợp trong các phương pháp của Jin Yu (xem mục 3.3), IBM iWidget (mục 3.4). Phần tiếp theo sẽ trình bày chi tiết về đặc tả biểu diễn trong các thành phần này. 60 4.2.2 Một số đề xuất biểu diễn mở rộng khả năng phối hợp 4.2.2.1 Biểu diễn lan truyền sự kiện Biểu diễn này mở rộng khả năng phối hợp trong mô hình đề xuất của Jin Yu [14] và có ý nghĩa tương đương với sự kiện được khai báo đồng thời là Published và Handled trong IBM iWidget [26]. Biểu diễn nhằm bổ sung thêm khả năng phối hợp khi sự kiện xảy ra trên widget này, sự kiện thuộc về widget khác sẽ được kích hoạt theo. Để biểu diễn mối quan hệ này, ta thay thế thuộc tính Operation trong Listener bằng DestinationEvent.  Ví dụ: Đặc tả biễu diễn phối hợp dựa trên sự kiện. <ActionTimerListener Publisher=“timer1” SourceEvent=“Tick” Subscriber=“stock1” DestinationEvent=“stockChanged”/> Trong ví dụ trên, định thời, sự kiện Tick ở widget timer1 sẽ được phát ra và kích hoạt sự kiện stockChanged bên phía widget stock1. Tham số định thời (interval) sẽ được cấu hình trong thành phần tham số cấu hình hoạt động (User Preferences) của widget nguồn timer1. 4.2.2.2 Ánh xạ thành phần tham số Biểu diễn đề xuất này cho biết thành phần nào trong cấu trúc tham số sự kiện (event data) phía widget nguồn (widget phát sự kiện) sẽ được gán cho đối số nào bên thao tác (operation) ở phía widget nhận. Biểu diễn này cho phép khai báo tùy ý số lượng và thứ tự tham số bên phía widget nguồn và nhận; từ đó hạn chế sự phụ thuộc chặt về tham số truyền giữa các widget, mở rộng khả năng kết buộc trễ (late binding), giúp cho khả năng tích hợp linh hoạt và dễ mở rộng hơn. Mỗi ánh xạ sẽ được biểu diễn bởi thành phần Mapping với cấu trúc được mô tả trong Bảng 4-17. 61 Thuộc tính Mô tả ParamName Tên thành phần trong tham số sự kiện truyền InputName Tên tham số nhận do thao tác khai báo Bảng 4-17: Các thành phần trong biểu diễn ánh xạ tham số (Mapping)  Ví dụ: khi sự kiện LocationSelectionChanged xảy ra trên widget nguồn (locationwidget), các thành phần lng, lat trong mảng tham số sự kiện truyền sẽ được ánh xạ vào các đối số lng, lat trong thao tác setCenter phía widget nhận (mapwidget). Phối hợp này được đặc tả như sau: <Listener Publisher=“locationwidget” SourceEvent=“LocationSelectionChanged” Subscriber=“mapwidget” Operation=“setCenter”> 4.2.2.3 Gom nhóm tham số tự động Trong trường hợp thao tác (operation) bên widget nhận chỉ chấp nhận tham số thuộc kiểu cấu trúc (đã mô tả trong Structures), đề xuất cũng cung cấp biểu diễn cho phép gom nhóm các thành phần trong cấu trúc tham số sự kiện để tạo thành kiểu cấu trúc phù hợp với đối số đầu vào (input) trong thao tác. Mỗi biểu diễn gom nhóm tham số được mô tả bằng thành phần ParamGroup với cấu trúc được trình bày trong Bảng 4-18. Thuộc tính Mô tả Name Tên của tham số cấu trúc được tạo ra DataType Tên kiểu dữ liệu kết quả của quá trình gom nhóm Thành phần con Mapping Biểu diễn ánh xạ thành phần tham số sự kiện vào thành phần trong cấu trúc cần tạo Bảng 4-18: Các thành phần trong biểu diễn gom nhóm tham số (ParamGroup) 62  Ví dụ: Giả sử thao tác setCenter trong widget bản đồ có tham số đầu vào thuộc kiểu cấu trúc GLatLng được khai báo như sau: function setCenter ( centerPoint : GLat_Lng { Lat : Number, Lng : Number } ) Việc gom nhóm tham số được biểu diễn như sau: <Listener Publisher=“locationwidget” SourceEvent=“LocationSelectionChanged” Subscriber=“mapwidget” Operation=“setCenter”> <!-- sau khi tạo xong kiểu cấu trúc sẽ ánh xạ kết quả tham số cấu trúc vào Input của Operation --> Mỗi thẻ ParamGroup biểu diễn cho một biến cấu trúc được tạo với kiểu được mô tả trong thuộc tính DataType. Trong ví dụ trên: ta tạo ra một biến cấu trúc với tên MyNewParam và kiểu là GLatLng. Biến cấu trúc sẽ bao gồm 2 thành phần Lat, Lng (được xác định bởi thuộc tính InputName). Giá trị trong mỗi thành phần sẽ được lấy từ các thành phần Lat, Lng trong tham số sự kiện LocationSelectionChanged. Kết quả của biến cấu trúc MyNewParam sẽ được ánh xạ vào đối số centerPoint của thao tác setCenter. 63 4.3 Mô hình biểu diễn Mashup Canvas Mashup Canvas đóng vai trò là container chứa các widget được sử dụng trong ứng dụng và sự phối hợp giữa các widget. Mashup Canvas cũng chính là biểu diễn ở mức trừu tượng của trang Web kết quả. Mô hình biểu diễn các thành phần trong Mashup Canvas được minh họa trong Hình 4-11. -ID -CanvasWidth -CanvasHeight -PublishedUrl MashupCanvas -Widget Array Layout -Listener Array EventListeners Hình 4-11: Các thành phần trong MashupCanvas Hai thành phần chính trong biểu diễn Mashup Canvas bao gồm:  Layout: mô tả tập hợp widget thể hiện giao diện trong ứng dụng kết quả.  Event Listeners: mô tả sự phối hợp hoạt động giữa các widget Các thành phần thuộc tính, Layout, EventListener được mô tả trong Bảng 4-19. Thuộc tính Mô tả Id Định danh của Canvas CanvasWidth Chiều rộng vùng thể hiện của Canvas CanvasHeight Chiều cao vùng thể hiện của Canvas PublishedUrl Địa chỉ của trang Web phát sinh từ Canvas sau khi tổng hợp Thành phần con Layout Khai báo các widget được sử dụng trên Canvas Event Listeners Khai báo các mối quan hệ phối hợp giữa các widget tồn tại trên Canvas Bảng 4-19: Các thành phần trong Mashup Canvas 64  Ví dụ: Biểu diễn Mashup Canvas bao gồm:  Layout: bao gồm 2 widget(widget hiển thị địa điểm, widget bản đồ)  Event Listeners: bao gồm 1 Listener mô tả sự phối hợp: khi chọn một địa điểm trong danh sách, vị trí địa điểm sẽ được hiển thị trực quan lên bản đồ. Chi tiết về đặc tả Mashup Canvas này được mô tả như sau: <MashupCanvas CanvasWidth=“100%” CanvasHeight=“100%” PublishedUrl=“”> <widget id=“Locationwi

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

  • pdf7.pdf
  • pdf0.pdf
  • pdf1.pdf
  • pdf2.pdf
  • pdf3.pdf
  • pdf4.pdf
  • pdf5.pdf
  • pdf6.pdf
  • pdf8.pdf
  • pdf9.pdf
  • pdf10.pdf
  • pdf11.pdf
Luận văn liên quan