Nâng cao hiệu quả của một trang web bán hàng bằng việc sử dụng công nghệ web động và các công cụ phân tích nhu cầu : Luận văn ThS. Công nghệ thông tin: 60 48 10
NÂNG CAO HIỆU QUẢ CỦA MỘT TRANG WEB BÁN HÀNG BẰNG VIỆC SỬ DỤNG CÔNG NGHỆ WEB ĐỘNG VÀ CÁC CÔNG CỤ PHÂN TÍCH NHU CẦU
LUẬN VĂN THẠC SĨ
HÀ NỘI - 2011
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
HOÀNG THỊ HẢI
NÂNG CAO HIỆU QUẢ CỦA MỘT TRANG WEB BÁN HÀNG BẰNG VIỆC SỬ DỤNG CÔNG NGHỆ WEB ĐỘNG VÀ CÁC CÔNG CỤ PHÂN TÍCH NHU CẦU
Ngành : Công nghệ thông tin
Chuyên ngành : Công nghệ phần mềm Mã số : 60.48.10
LUẬN VĂN THẠC SĨ HƯỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN VĂN VỴ
HÀ NỘI - 2011
3
TÓM TẮT KẾT QUẢ Luận văn này bao gồm những kết quả sau: − Nghiên cứu và trình bày mô hình Rich Internet Application, những công nghệ và công cụ liên quan. − Nghiên cứu, triển khai xây dựng phần mềm theo mô hình Rich Internet Application, áp dụng công nghệ Ajax. − Dùng phương pháp Phân tích thiết kế đối tượng thiết kế lại trang Web nhằm thực hiện đề tài “Nâng cao hiệu quả của một trang web bán hàng bằng việc sử dụng công nghệ web động và các công cụ phân tích nhu cầu”, sử dụng ngôn ngữ UML_Visio2007 − Áp dụng công cụ mô hình phân tích để tạo dữ liệu tổng hợp phụ vụ việc phân tích nhu cầu khách hàng từ các dữ liệu bán hàng để trợ giúp việc ra quyết định
kinh doanh.
4
MỤC LỤC LỜI CẢM ƠN ..............................................................................................................................2 MỤC LỤC ....................................................................................................................................4 BẢNG CÁC CHỮ VIẾT TẮT ....................................................................................................6 DANH SÁCH CÁC BẢNG VÀ HÌNH VẼ ................................................................................7 MỞ ĐẦU ......................................................................................................................................8 Chương 1: GIỚI THIỆU MÔ HÌNH RICH INTERNET APPLICATION ................................9
1.1 Tổng quan sự phát triển mô hình 1.2 Các đặc điểm của RIA
9 11
1.3 Phương pháp và công cụ sử dụng trong mô hình RIA 16 1.3.1 XML là ngôn ngữ chung của Internet ....................................................................16 1.3.2 Bảng kiểu nhiều tầng - CSS .....................................................................................17 1.3.3 XHTML trong RIA ..................................................................................................18 1.3.4 JavaScript: một ngôn ngữ cho hành động ...............................................................20
1.4 Một số công nghệ được sử dụng trong RIA 24 1.4.1 Adobe Flex .............................................................................................................24 1.4.2 Ajax .........................................................................................................................25 1.5 Lợi ích dùng RIA
28
1.6. Những hạn chế của RIA
28
Chương 2: BÀI TOÁN NÂNG CẤP TRANG WEB BÁN HÀNG LAMPCENTER .............30 2.1. Tổng quan về trang web bán hàng Lampcenter.com 30 2.1.1. Giới thiệu ................................................................................................................30 2.1.2. Cấu trúc và công cụ triển khai ................................................................................32 2.1.3 Những vấn đề tồn tại và và các yêu cầu đặt ra ........................................................32 2.2. Giải pháp nâng cấp trang web 34 2.2.1. Những vấn đề và giải pháp .....................................................................................34 2.2.2. Lựa chọn công cụ nâng cấp ....................................................................................35 2.2.3 Mô hình triển khai....................................................................................................35 2.2.4. Một số công cụ, giải pháp cụ thể ............................................................................36
2.4. Phạm vi nâng cấp
39
Chương 3: ỨNG DỤNG MÔ HÌNH RIA NÂNG CẤP TRANG WEB BÁN HÀNG QUA MẠNG ........................................................................................................................................40 3.1. Mô tả bài toán 40 3.1.1. Tổng quan về bài toán.............................................................................................40 3.1.2. Các hoạt động của hệ thống ....................................................................................42 3.2. Phát triển mô hình ca sử dụng 45
3.2.1. Xác định tác nhân và vai trò ...................................................................................45
5
3.2.2. Xác định ca sử dụng................................................................................................46 3.2.3. Mô hình ca sử dụng mức gộp- mức hệ thống.........................................................46 3.2.4. Mô hình ca sử dụng mức gộp- chi tiết ....................................................................48 3.3. Phân tích hệ thống 56 3.3.1. Các ca sử dụng cần phân tích. ................................................................................56 3.3.2. Phân tích ca sử dụng – Biểu đồ tương tác ..............................................................57
3.3. Biểu đồ lớp thiết kế hệ thống
60
3.4 Thiết kế cơ sở dữ liệu 62 3.4.1. Các dữ liệu cho quản lý truy nhập ..........................................................................62 3.4.2. Các dữ liệu cho quản lý bán hàng ..........................................................................63 3.4.3. Các dữ liệu cho quản lý khác của webssite ............................................................71 3.5 Thiết kế giao diện
77
KẾT LUẬN ................................................................................................................................82 TÀI LIỆU THAM KHẢO .........................................................................................................83 Tiếng Việt
83
Tiếng Anh
83
BẢNG CÁC CHỮ VIẾT TẮT Viết tắt
Tên đầy đủ
Ajax
Asynchronous JavaScript and XML
API
Application Programming Interface
ADO
ActiveX Data Objects
DOM
Document Object Model
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
IE
Internet Explorer
IP
Internet protocol
OEM
original equipment manufacturer
REST
Representational State Transfer
RIA
Rich Internet Application.
SLM
Service-Level-Management
SOAP
Simple Object Access Protocol
SVG
Scalable Vector Graphics
TCP
Transmission Control Protocol
WPF
Windows presentation foundation
XHTML
Extensible HyperText Markup Language
XAML
Extensible Application Markup Language
XML
Extensible Markup Language
CSS
Cascading Style Sheets
W3C
World Wide Web Consortium
RCP
Rich Client Platform
PDA
A personal digital assistant
7
DANH SÁCH CÁC BẢNG VÀ HÌNH VẼ Số Hình 1.1 Hình 1.2
Tên bảng và hình Sơ đồ tương tác giữa người dùng và ứng dụng trên web Mô hình giao tiếp trong ứng dụng web theo mô hình RIA
Trang 12 13
Hình 1.3 Hình 1.4 Bảng 1-1 Bảng 1-2 Hình 1.5 Hình 1.6 Hình 2.1
Hình 2.2 Bảng 2.1 Hình 2.3 Hình 2.4 Bảng 3.1 Hình 3.1 Hình 3.2 Hình 3.3 Bảng 3.2 Bảng 3.3 Hình 3.4 Hình 3.5
Hình 3.6 Hình 3.7 Hình 3.8 Hình 3.9 Hình 3.10 Hình 3.11 Hình 3.12
Cấu trúc giải pháp công nghệ trong mô hình RIA. Cấu trúc thành phần trong RIA Sự kiện trang vòng đời của trang Một vài sự kiện người dùng điều khiển
Mô hình web truyền thống và web sử dụng RIA Sơ đồ kiên trúc thành phần với Silverlight Trang chủ của trang web Lampcenter.com Biểu đồ hoạt động của hệ thống Vấn đề và giải pháp cho việc nâng cấp trang web Mô hình 3 tiers Mô hình bảo mật được mã hóa dữ liệu ở cả hai chiều Các chức năng của hệ thống bán hàng Biểu đồ hoạt động khách đặng ký mua hàng Biểu đồ hoạt động tổng hợp, phân tích nhu cầu Biểu đồ miền lĩnh vực của hệ thống Các thuật ngữ và giải thích
Các tác nhân của hệ thống và vai trò Biểu đồ ca sử hệ thống dụng mức gộp Biểu đồ ca sử hệ con Đăng ký mua hàng Biểu đồ ca sử hệ con quản lý trang web Biểu đồ ca sử hệ con kiểm soát truy nhập Biểu đồ tuần tự xem và tìm kiếm mặt hàng Biểu đồ tuần tự chọn mua hàng Biểu đồ tuần tự theo dõi thanh toán Biểu đồ tuần tự đăng nhập hệ thống Biểu đồ lớp thiết kế vật lý của hệ thống
13
16 23 24 27 30 31 32 34 35 35 42 43
43 44 44 45 47 48 51 52 54 55 56 57
58
MỞ ĐẦU Các ứng dụng trên nền web đang có nhu cầu ngày càng lớn khi mà mạng Internet bùng nổ và ngày càng mở rộng. Ngày nay các thiết bị đầu cuối có thể sử dụng web không chỉ dừng lại ở các máy tính mà còn bao gồm rất nhiều thiết bị đầu cuối khác như PDA, mobile, ti vi,…Trong điều kiện như vậy, những trang web tĩnh như thuở ban đầu không còn thích hợp, bởi vì nó đòi hỏi sự truyền đi cả trang web mỗi lần có tương tác. Ngay cả khi mà đường truyền đã có thông lượng lớn hơn nhiều thì sự truyền như vậy vẫn sẽ rất chậm, nhất là khi các dữ liệu có nhiều loại dạng đa phương tiện như ảnh, bản đồ… Web động ra đời đã cho phép tăng cường
khả năng tương tác nhờ sự làm việc không đồng bộ giữa những gì tiếp nhận trên giao diện trang web và các dữ liệu trao đổi với máy chủ. Chính vì lý do này mà tôi đã chọn đề tài ”Nâng cao hiệu quả của một trang web bán hàng bằng việc sử dụng công nghệ web động và các công cụ phân tích yêu cầu” làm đề tài luận văn tốt nghiệp của mình. Bên cạnh đó, việc nâng cao hiệu quả kinh doanh luôn cần có những thông tin mới về nhu cầu của khách hàng. Rõ ràng chỉ nhờ có web động mới cho phép xử lý các dữ liệu bán hàng để mau chóng có được để những thông tin về nhu cầu của khách, từ đó đưa ra các quyết định kinh doanh. Như vậy, trang web được nâng cấp không chỉ nâng cao năng lực đáp ứng được nhu cầu mua hàng một cách tốt nhất mà còn là phương tiện trợ giúp các quyết định kinh doanh. Luận văn gồm 3 chương: Chương 1: Giới thiệu mô hình RIA: trình bày tổng quan về web động – một
mô hình ứng dụng web rất phong phú (Rich Internet Application –RIA) bao gồm kiến trúc, các đặc trưng, công cụ sử dụng trong RIA và lợi ích của nó. Chương 2: Bài toán nâng cấp trang web bán hàng qua mạng Lampcenter: Phân tích thực trang của một trang web bán hàng để thấy được những hạn chế và tồn tại của nó, và yêu cầu cấp bách phải nâng cấp nó trong điều kiện mới. Nêu những vấn đề đặt ra và đề xuất giải pháp nâng cấp. Chương 3: Tiến hành phân tích và thiết kế trang web với những yêu cầu mới đặt ra và tiến hành phát triển, nó nâng cấp. Kết quả là một trang web bán hàng đạt được các yêu cầu đặt ra và đã đưa vào hoạt động bình thường. Cuối cùng là kết luận, bao gồm những kết quả đạt được khi áp dụng RIA nâng cấp trang web bán hàng và những vấn đề cần tiếp tục hoàn thiện.
Chương 1: GIỚI THIỆU MÔ HÌNH RICH INTERNET APPLICATION 1.1 Tổng quan sự phát triển mô hình Mô hình Rich Internet Application (RIA) được hãng Macromedia chính thức công bố vào năm 2002. Năm 2007 một nhóm nghiên cứu gồm 3 nhà khoa học Dana Moore thuộc lĩnh vực công nghệ bảo mật BBN, Raymond Budd và Edward (Ted) Benson là kỹ sư phần mềm thuộc lĩnh vực công nghệ bảo mật BBN đã viết cuốn sách “Professional Rich Internet Applications” trình bày những vấn đề cơ bản của mô hình RIA . Thuật ngữ “Rich Internet Applications” được ra đời từ năm 2002. Nhưng trước đó, nhiều triển khai theo nội dung này đã được thử nghiệm và có rất nhiều tên
gọi khác nhau đã được sử dụng: − Remote Scriptting, được Microsoft đưa ra năm 1998. − X Internet, được tổ chức nghiên cứu Forrester đưa ra năm 2000. − Rich (Web) Clients. Và cuối cùng là Rich Web Application. Theo Wikipedia, RIA là các ứng dụng trên web có đầy đủ các tính năng và đặc trưng của các ứng dụng desktop truyền thống. Mô hình RIA là một sự kết hợp giữa ứng dụng web truyền thống với mô hình ứng dụng destop thể hiện ở ý tưởng là đưa một số xử lý trước đây vẫn được thực hiện trên máy chủ trong mô hình truyền thống về thực hiện trên máy khách, giữ lại các xử lý khác trên máy dịch vụ. Trong các ứng dụng web truyền thống ban đầu, phần ứng dụng về mặt lôgic vẫn chạy trên máy chủ để thực hiện các xử lý sau khi người dùng gửi yêu cầu tới nó
bằng cách chọn đường liên kết (link) hoặc nút lệnh trên giao diện. Cơ chế này được gọi là cơ chế đồng bộ, có nghĩa là, người dùng sau khi gửi yêu cầu đi phải đợi máy chủ xử lý và tải lại trang kết quả xử lý. Quá trình này cứ lặp đi lặp lại một cách chậm chạp mỗi khi có yêu cầu mới gây cảm giác khó chịu, bất tiện cho người sử dụng. Mô hình RIA ra đời đã giải quyết được vấn đề bất tiện này. Hình 1.1 là sơ đồ tương tác giữa các đối tượng trong môi trường hoạt động theo mô hình web. Sơ đồ cho ta thấy được các hành vi có liên quan tới quá trình tương tác giữa người sử dụng và ứng dụng web.
10
Ở mức cao nhất, mô hình minh họa 3 nội dung chính thể hiện bằng ba phần được đóng khung và tô bằng các màu khác nhau: − Phần trên cùng(1): thiết kế của ứng dụng và môi trường sử dụng − Hành vi của người dùng (2): nhìn, suy nghĩ, tác động, bỏ qua − Hành vi khi sử dụng ứng dụng (3): tương tác của người dùng và cách thức đáp ứng của hệ thống ứng dụng web.
1 2
3 Hình 1.1. Sơ đồ tương tác giữa người dùng và ứng dụng trên web
Mô hình trên mô tả từng bước những gì xảy ra trong suốt quá trình tương tác giữa người sử dụng và ứng dụng dựa trên trình duyệt. Phần mũi tên đen đậm thể hiện luồng hoạt động của một ứng dụng Web truyền thống bắt đầu từ yêu cầu của người sử dụng (click), thông qua giao thức HTTP gửi yêu cầu tới máy chủ, sau khi nhận yêu cầu, xử lý, máy chủ sẽ trả lại kết quả về cho máy trạm tại bộ nhớ tạm thời của trình duyệt (browse cache), khi dữ liệu đã trả về đủ tại bộ nhớ tạm, người sử dụng có thể nhận được dữ liệu thông qua các khung nhìn trên trang web. Theo sơ đồ này, nếu chu trình di chuyển thông tin theo mũi tên có thể tách biệt thành hai vòng luân chuyển dữ liệu giữa người dùng - máy khách và giữa máy khách – và máy dịch vụ để chúng hoạt động một cách độc lập sẽ cải thiện đáng kể sự hoạt động của hệ thống này. Mô hình RIA đã phát triển trên ý tưởng này. Hình 1.2 mô tả quá trình tương tác trong ứng dụng web dựa trên mô hình RIA. Sơ đồ cho
ta thấy, các đoạn thẳng với nút đậm hai đầu mô tả sự tương tác giữa hai đối tượng chứa các đầu mút đó. Rõ ràng là, quá trình tương tác giữa máy khách (engine) và người dùng (thể hiện ra ở display) có sự độc lập nhất định (tương đối) với quá trình tương tác giữa máy khách và máy chủ (webserver và CSDL). Sự sai khác này được xem là sự không đồng bộ của hai quá trình tương tác.
11
Hình 1.2: Mô hình giao tiếp trong ứng dụng web theo mô hình RIA Để thực hiện được mô hình trên đây, người ta đã sử dụng một sản phẩm công nghệ được kết hợp từ các bộ sản phẩm Flash của hãng Abode, java applets, và Ajax
. Hình 1.3 là sơ đồ mối quan hệ giữa Flash, Ajax, và java applets.
Hình 1.3. Cấu trúc giải pháp công nghệ trong mô hình RIA. Sau này chúng ta sẽ phân tích rõ vai trò của mỗi thành phần này trong mô hình RIA.
1.2 Các đặc điểm của RIA a. RIA (Rich Internet Applications) là động Đặc điểm đầu tiên của RIAs là động (“Plastic”). Các thế hệ mới của các ứng dụng Internet được mở rộng và có thể được thêm vào nhiều thành phần khác nhau. Với mô hình "nhìn và cảm nhận", web với RIA cho ta thấy sự mạnh mẽ của bảng định dạng (CSS). Các ứng dụng web trước đây chỉ "cho phép lựa chọn", và đơn giản áp dụng một CSS nhúng trong một trang HTML và hiển thị ra. RIAs kết hợp
các chức năng giao diện người dùng tốt nhất của các ứng dụng desktop với các tiếp cận rộng lớn và chi phí triển khai thấp của các ứng dụng Web, tương tác tốt nhất với
12
truyền thông phương tiện đa. Kết quả cuối cùng là làm cho các ứng dụng trực quan hơn, tương tác linh hoạt hơn đáp ứng hiệu quả cho người dùng. Web với phong cách cũ có một số mức động, luôn xem là một khả năng của nó. Nhưng trước khi sự xuất hiện RIA, web không cung cấp sự tương tác dễ dàng. Nhưng với các ứng dụng Web 2.0, tất các yếu tố cơ bản của đặc tả W3C truyền thống của HTML được sử dụng lại để xây dựng ứng dụng với nhiều tương tác hơn.
Phát triển RIA tạo ra nội dung trong các ứng dụng trung gian khác mà các nhà phát triển hoặc người dùng cuối có thể tưởng tượng ra các khả năng tương tác với nó, hiển thị nó, hoặc sử dụng lại nội dung của nó. b. Với RIA, Trang Web là sự phân chia giao diện và phía sau Các công nghệ đằng sau RIA đã được phát triển ngay cả trước khi Internet đầu tiên bùng nổ. Nhưng chỉ có ứng dụng Web2.0 mới cho phép ta làm được tất cả. RIAs thể hiện mức độ đáp ứng phong phú như của máy khách cần có khi được truy cập Internet tốc độ cao, băng thông rộng phổ biến trong thị trường. Đó là một điều kiện tốt để phát triển các ứng dụng RIA. Phát triển RIA là sự cập nhật của mô hình khách-chủ (client-server) hiện đại. Sự khác biệt sâu sắc ngày nay là ở chỗ, số máy khách đa dạng có thể, với sự bùng nổ của các thiết bị không dây được kích hoạt, máy tính xách tay, công nghệ Wi-Fi phổ biến, và thế hệ hậu duệ tiếp theo của PDA
đều có thể tương tác qua web. Vì vậy nhu cầu sử dụng Web đã thay đổi đáng kể, không đơn thuần chỉ là trình duyệt. Có thể xem một ứng dụng khác của RIA là AJAX trong trình duyệt, như một thủ thuật đơn giản của vòng kép kín theo đó dữ liệu đi – về đến máy chủ. Chẳng hạn, một người sử dụng nhập dữ liệu ban đầu có ảnh hưởng đến một trường dữ liệu khác trên trang web để "làm mới một phần trang”. Các trình duyệt hiện đại có thể làm tươi lại các phần nhất định nào đó của trang web mà không phải thay mới cả trang như trước kia. Làm mới từng phần phía trước đã cải thiện đáng kể cung cách của người dùng, làm cho ứng dụng diễn ra liên tục hơn. c. Ứng dụng RIA là vô hình RIA là sản phẩm vô hình để có được ứng dụng cho các tình huống cần thiết "phục vụ mọi nhu cầu". Google là một ví dụ điển hình của các ứng dụng vô hình.
Nó thực hiện tức thời như không có gì xẩy ra đối với người dùng cuối. Nguyên tắc cơ bản của thiết kế Web đã thay đổi. Ban đầu, thiết kế chỉ là làm ra các trang web thay thế cho các tạp chí. Thiết kế web giờ đây nghiêng về hướng làm cho mọi thứ trông giống như những gì trên thực tế. Thiết kế web2 đã trở thành những ứng dụng
13
mới cho thiết kế web, và CSS được thêm thắt nhiều tính năng để nâng cao kinh nghiệm người dùng chứ không còn đơn thuần là việc bố trí nội dung. d. Ứng dụng RIA phá vỡ “rào cản sở hữu” Các nền tảng xưa nay có xu hướng kiểm soát kênh sở hữu trí tuệ khi đưa vào
tường bao (walled garden). Khi tạo một tài liệu, mặc dù là tác giả, ta không thể sở hữu nội dung độc lập với các công cụ sử dụng để tạo ra nó. Nội dung không thể tồn tại mà không có ứng dụng trung gian – một sự lãng phí. Các nhà cung cấp bán các ứng dụng và lưu trữ các nội dung mô hình trong một định dạng có thể ngăn chặn bất cứ ai sử dụng sản phẩm của họ nếu không được sự cho phép. Nhà cung cấp quyết định khi nào, làm thế nào để sử dụng mà không gây lỗi. Các nhà cung cấp đã tạo ra các hệ thống phân phối lớn dựa trên sự đóng góp nội dung của người dùng cuối. Sự đầu tư đó giữ cho các ứng dụng như là “luôn được cập nhật ” và được nhà cung cấp quyết định chứ không phải người sở hữu chúng. e. Ứng dụng RIA tạo ra công cụ mới Sự phong phú của các ứng dụng miễm phí cho phép người dùng sáng tạo nội dung khi họ tương tác. Họ không cần đầu tư vào việc duy trì các công cụ so với các
thế hệ trước đây của các ứng dụng “tường bao”. Nếu ứng dụng đầu tiên của Internet là phục vụ và trình bày thông tin siêu liên kết, thì lần thứ hai là cung cấp thông tin cá nhân để hoàn tất giao dịch, sau đó lần thứ ba chắc chắn là tạo ra, tiêu thụ, và thao tác các nội dung trong một xã hội hoặc thiết lập tương tác. Các ứng dụng web cung cấp cho thế hệ máy tính để bàn những công cụ mới, cho phép người dùng cuối viết, vẽ, in và lưu hành những sáng tạo của họ trong khuôn khổ khả năng của người dùng. Ngày nay, khả năng không giới hạn số lượng người dùng tham ra diễn đàn (raters, taggers, and bloggers), chính họ đã nâng tỷ lệ sáng tạo nội dung, tiêu thụ và tiềm năng cho cuộc tranh luận, các bài viết lên một mức cao mới. f. Ứng dụng RIA luôn cập nhật Là một nhà phát triển, khi tinh chỉnh ứng dụng phía Server, ta chỉ tốn thời
gian sửa chữa các mô hình dữ liệu hoặc chuyển đổi từ một cơ sở dữ liệu sang dữ liệu khác. Người dùng cuối là hoàn toàn không bị ảnh hưởng. Nơi sinh ra phần mềm máy tính để bàn không còn hấp dẫn nữa, và mong đợi của người dùng chỉ việc sử dụng những gì có sẵn mà không cần quan tâm đến công cụ đã hoàn toàn được đáp ứng. Chính tương tác làm cho người dùng sẽ là người cập nhật cho ứng dụng.
14
g. Ứng dụng RIA như là một hệ điều hành Phần mềm đã được gắn liền với hệ điều hành từ khi xuất hiện máy tính. Ban đầu, phần mềm được cung cấp gần như làm mất khả năng điều khiển của nhà cung
cấp để đảm bảo sự ổn định của phần cứng máy tính. Trong thời đại của máy tính cá nhân, người dùng vẫn không thể mua bất kỳ máy tính cá nhân để vận hành một ứng dụng nhất định. Một số nhà cung cấp máy chủ có nghệ thuật bán phần mềm như là một sản phẩm độc lập, người sử dụng ứng dụng cần mua các hệ điều hành để hỗ trợ cho máy tính đang dùng. Các hệ thống truyền dữ liệu không có ứng dụng web 2.0 có những hạn chế cứng nhắc thể hiện trong đồ họa trong Hình 1-4. Giải pháp của RIA đã dỡ bỏ hoàn toàn các hạn chế đó. Các lớp của các ứng dụng Web 2.0–networked có chỉ dẫn thúc đẩy các nhà phát triển, phân chia các mối quan hệ liên quan làm tăng trưởng sự phát triển của mạng, bản thân nó trở nên dễ dàng hơn chèn lớp mới, và cuối cùng là bổ sung thêm khả năng mở rộng. Nó sẽ không quan trọng cho dù người dùng đang chạy Windows, Linux, Mac
OS/X, hoặc một cái gì đó khác, vì RIAs sử dụng trang web đó như là nền tảng của chúng. Trung tâm thiết kế của Web 2.0 yêu cầu phát triển để cung cấp các ứng dụng chỉ thông qua một địa chỉ URL và XHTML của trình duyệt. Document Object Model (DOM) được sử dụng để hiển thị động và tương tác mà không cần thực hiện làm tươi lại trên trình duyệt và phát triển mã nhúng JavaScript bên trong XHTML.
Hình 1.4. Cấu trúc thành phần trong RIA Nhiều trong số những luật bất di bất dịch là một phần của lỗi khổ khi làm việc với các ứng dụng trong một hệ điều hành cục bộ: cứ vài phút buộc phải nhấn Save để tránh văn bản bị mất, phải sắp xếp lại hệ thống phân cấp thư mục, lo lắng chạy
15
một chương trình kiểm tra vi-rút một vài lần một ngày. Với các áp dụng RIAs, những bất tiện này không còn nữa. Nó thể hiện một sự thay đổi văn hóa cho người sử dụng, cũng như một công nghệ mới. h. Ứng dụng RIA là trung tâm trình duyệt Các trình duyệt đã phát triển từ một thiết bị kết nối thông tin , một thiết bị ứng dụng đơn giản đến thiết bị ứng dụng hosting đầy đủ trong Web 2.0. Các trình duyệt đã thay đổi khi phát triển của các ứng dụng Web 2.0, và có thể tận dụng khả năng sẵn có của nó. Khả năng đơn giản để thực hiện lời gọi thủ tục từ xa bằng cách sử dụng built-in XMLHttpRequest từ JavaScript đã thay đổi rất nhiều cách chơi. Ta có thể làm mọi công việc văn phòng trên web tương tự như dùng Microsoft Office,
OpenOffice, Mac iWork suites (gói phần mềm dùng giải trí như trò trơi, xem phim, ca nhạc…). Đó là những công cụ soạn thảo phong phú như FCKeditor (www.fckeditor.net) and Tiny MCE (tinymce.moxiecode.com) được viết hoàn toàn bằng JavaScript và nhúng trực tiếp trong trình duyệt. i. Ứng dụng RIA xem phần mềm như dịch vụ Tạo trang web từ nhiều nguồn dữ liệu hay pha trộn nhiều ứng dụng được nhiều nhà phát triển RIA thực hiện. Nhờ vậy các API của họ đặc biệt dùng để cho phép pha trộn ứng dụng lấy từ nhiều nguồn khác nhau. Nhiều nhà cung cấp phát triển "áp dụng" cho một API để đưa ra lời mời dịch vụ xác nhận việc gọi ứng dụng. Người dùng có thể dùng các ứng dụng từ giao diện này như một phần mềm dịch vụ đang để ở đâu đó mà ta không cần quan tâm đến. k. Ứng dụng RIA lấy người sử dụng làm trung tâm
RIAs lấy người sử dụng làm trung tâm theo một cách khác. Đầu tiên, RIAs lấy người sử dụng làm trung tâm vì nó hoạt động ở mức trên hệ điều hành. Điều này là quan trọng, bởi vì theo mô hình truyền thống, rất nhiều sản phẩm công nghệ bắt đầu với lõi bên trong và bọc các kinh nghiệm người dùng xung quanh công nghệ này. Hầu hết các nhà công nghệ ngày nay bắt đầu với một kiến trúc được quan tâm và xây dựng dần ra bên ngoài những cái gì đó mà người sử dụng cuối cùng nhìn thấy, trải nghiệm. Đó là cách tổ chức các ứng dụng với RIA. m. Ứng dụng RIA là hợp tác từ cộng đồng Hợp tác của cộng đồng phát triển RIAs cũng được lấy làm trung tâm trong việc xây dựng những sáng tạo của người khác. Đó là nhận xét của một blog, thêm siêu dữ liệu vào một ảnh số, hoặc tạo ra một siêu thị địa phương, mọi người đang
16
hình thành các cộng đồng xung quanh các ứng dụng web, và đáng chú ý là các ứng dụng Web 2.0.
1.3 Phương pháp và công cụ sử dụng trong mô hình RIA 1.3.1 XML là ngôn ngữ chung của Internet Ngôn ngữ đánh dấu có thể mở rộng (Extensible Markup Language) XML tạo ra một định dạng dữ liệu cho phép đặc tả tất cả, một cách tự mô tả việc lưu trữ dữ liệu trong thiết kế. Đó là cách đơn giản nhưng có khả năng vô tận. Nếu dữ liệu được trình bày trong XML, bất kỳ máy tính nào trên thế giới đều có thể đọc và hiển thị
cấu trúc cơ bản và nội dung của nó, ngay cả khi chương trình không biết chính xác làm gì với các dữ liệu sau đó. Vì lý do này, một vài quy tắc đơn giản của XML là những gì cơ bản nhất và quan trọng mà bất kỳ nhà phát triển ứng dụng Web đều phải học, và là khởi đầu của RIA. Nguyên tắc cơ bản của XML Một tài liệu XML bao gồm một loạt các thẻ tag. Một tag là một đánh dấu một vùng trong các tài liệu khác. Ta có thể nhúng các khu vực này vào các khu vực khác bất kỳ về số lượng, số lần cho đến cuối cùng ta nhấn kết thúc và tìm kiếm dữ liệu. Các tag hầu như luôn đi theo từng cặp: một để bắt đầu vùng và một kết thúc vùng. Sự kết hợp của một thẻ bắt đầu, thẻ kết thúc, và nội dung được gọi là một phần tử (element). Các định dạng của một phần tử cua XML được mô tả trong Ví dụ sau: <TAGTYPE attribute1=”value1” attribute2=”value2”>Contents</ TAGTYPE>
Các thẻ bắt đầu với một ký tự (<) (mà người ta thường gọi một khung mở) và theo sau ngay nó là thuộc tính đại diện nội dung cho các loại thẻ. Số thuộc tính sau thẻ là không hạn chế, và thẻ kết thúc bằng một ký tự lớn hơn (/>) (thường được gọi là một khung đóng). Nội dung của phần tử được viết sau dấu mở thẻ (<) và cuối cùng là một dấu đóng thẻ (/>). Cặp thẻ này là cấu trúc cơ bản của XML mà bất kỳ ứng dụng RIA Web sẽ xây dựng nó. Như đã nói ở trên, nội dung của vùng là một cặp thẻ định nghĩa có thể được bất cứ điều gì, và quan trọng nhất, có thể được có nhiều các nút XML. Thẻ vật lý <TAGTYPE> kiểu text trong một tài liệu XML thường được gọi là một thẻ mở, nhưng đối với thẻ trình bày thường được gọi là một nút hoặc một phần tử. Đoạn 11XML thể hiện một tài liệu XML.
Ngôn ngữ đánh đấu siêu văn bản có thể mở rộng (Extensible HyperText Markup Language) XHTML là một ngôn ngữ dựa trên XML để mô tả tài liệu. Tài liệu có một tựa đề và một phần đầu (a title and a header), một đoạn với các phần, đầu (headings), đoạn (paragraphs), và bảng (tables). Các tài liệu có chứa các mục (Item) như hình ảnh, liên kết các tài liệu khác, và danh sách gạch đầu dòng. Khái niệm XHTML là không quy tắc. Kiến thức chuyên môn kỹ thuật là cần thiết để xác định các tài liệu web sao cho dễ dàng thao tác khi tương tác với cả người dùng và một máy chủ Web điều khiển từ xa. Nếu không có thêm ADO, chúng ta hãy xem các phần tử XML cụ thể bao gồm
một trang XHTMLWeb. Có thể dễ dàng nhận ra các phần tử XHTML thuộc vào năm loại chính: Cấu trúc tài liệu (Document structure) Cấu trúc văn bản (Text structure) Loại văn bản (Text type) Đối tượng trong văn bản (In-text objects (such as images and links)) Cài đặt tài liệu (Document setup)
1.3.2 Bảng kiểu nhiều tầng - CSS Bảng kiểu nhiều tầng CSS (Cascading Style Sheets) về cơ bản là xây dựng cho HTML. Nhưng nó được làm thích nghi với các ngôn ngữ lập trình khác, cho những người đang hướng về phía RIA. Ta có thể thấy rõ điều này trong CSS Ajax. Nó
được sử dụng để giúp thao tác hành vi bên trong HTML. Sử dụng DOM, CSS có thể được áp dụng sau khi chức năng đã được gắn thẻ cho CSS để giải thích.
18
1.3.3 XHTML trong RIA Nếu mục tiêu của nhà phát triển chỉ đơn giản là tạo ra các phiên bản điện tử của một trang đánh máy đẹp, sau đó họ không cần phải quan tâm nhiều đến chữ X trong XHTML, bất kỳ sự kết hợp của các phần tử đều cho kết quả một trang đủ thẩm mỹ. Tuy nhiên, phát triển RIA còn có mục tiêu khác. Mục tiêu không chỉ để tạo ra một trang web hấp dẫn để nhìn, nhưng còn để tạo ra các ứng dụng bên trong
trình duyệt Web. Với điều này, việc ghi nhớ nguồn gốc XML của XHTML là vô cùng quan trọng. Tài liệu XHTML không chỉ chứa cấu trúc để tái sản xuất các đối tượng sống thực mà chúng miêu tả, nó cũng cũng tạo ra giao diện sinh động trong ứng dụng web của ta. Vì vậy, nó phải được thiết kế để dễ dàng thao tác bằng mã máy tính. Các cấu trúc dạng cây của XHTML cho phép các vùng của tài liệu được dễ dàng thao tác và tạo kiểu. Thao tác thông minh của cây DOM thông qua JavaScript là xác định đặc điểm chung cho tất cả các RIA. Vì XHTML giới hạn khả năng sử dụng bất kỳ loại thẻ mà ta muốn, để bảo vệ các thẻ tùy biến trong cây DOM, phải sử dụng rộng rãi các id và các lớp thuộc tính. Ở ví dụ Đoạn 1-1 XML đã được chuyển hóa thành XHTML trong Ví dụ Đoạn 1-4, các loại thẻ mô tả biến mất và được thay thế bằng một thẻ div và các phần tử nối.
Để duy trì số lượng thông tin trong văn bản XML ban đầu, thông tin mã hóa trong các loại thẻ bị mất được giấu trong các id và lớp thuộc tính div mới và các phần tử nối. Ta sẽ thấy tầm quan trọng của thẻ class khi ta tìm hiểu để viết đặc tả trực quan cho văn bản XHTML với CSS. Để phát triển cần hiểu rõ thẻ id khi ta bắt đầu thao tác cấu trúc của cây DOM với JavaScript.
d. Gắn CSS vào một trang web Có ba cách để gắn CSS vào các trang Web: từ một tập tin bên ngoài, trong phần header của trang Web, và các thuộc tính của một phần tử. Việc chọn một cách nào đó phụ thuộc vào những gì ta muốn đạt được tại thời điểm làm việc trên tài liệu. Một trong những điểm mạnh của CSS là tách các đặc tả trực quan từ đặc tả nội dung, tất cả các nhà phát triển web cần lưu trữ CSS của họ trong tập tin riêng biệt,
và liên kết đến các tập tin từ các tài liệu XHTML. Nếu ta muốn gỡ lỗi một vấn đề trên một trang cụ thể và cần phải ghi đè lên một số thuộc tính CSS hiện tại, ta có thể viết trực tiếp CSS của ta vào tài liệu XHTML. Gắn mã CSS như là một bảng bên ngoài được thực hiện với một phần tử link bên trong đặt ở trên đầu. Ví dụ Đoạn 1-2 cho thấy một liên kết đến một file CSS bên ngoài. Đoạn 1-2 XHTML
19
href=” />Vùng xây dựng cấu trúc CSS nằm trong 1 dòng ở phần đầu của XHTML, sử
dụng tag là phần tử đầu chứa CSS trong đó. Như thể hiện trong Đoạn 1-3 Đoạn 2-3 XHTML / CSS <head> <style type=”text/css”> p { margin-left: 10px; } body { background-color: blue; } </style> </head> Tận dụng lợi thế của CSS vào trong RIA, để có một thiết kế trang web đẹp nhóm phát triển Dana Moore, Raymond Budd và Edward Benson đưa ra một số lời khuyên sử dụng CSS: - Lớp CSS nên phản ánh cái gì được sử dụng
Một trong những sai lầm phổ biến nhất của cả người mới bắt đầu và các chuyên gia là việc đặt tên các lớp CSS sau khi nhìn trực quan về các kiểu (style) mà các nhà thiết kế ban đầu dành cho các phần tử của lớp đó. Mặc dù tên như màu đỏ và left_column có thể chỉ ra được ý định ban đầu của ta, nhưng chúng không cung cấp cho ta sự linh hoạt để dễ dàng thay đổi khi cần nâng cấp trang web. Tên các lớp CSS của ta luôn luôn đi sau ý định này, có nghĩa là cho phép các thuộc tính trong lớp tự diễn đạt cho chính nó. Nếu tập tin CSS của ta có tên như warning, important, main_content, and secondary_content, đây sẽ là một dấu hiệu tốt ta tạo ra tên lớp có thể chịu được sự thử thách của thời gian. - Cần chú thích và tách từng phần giữ cho CSS rõ ràng Khi ta phát triển RIA tinh vi hơn, tập tin CSS có thể tăng lên rất lớn. Ngay từ đầu, sử dụng ý kiến trong file CSS của ta để mô tả cách sử dụng của kỹ xảo CSS
phức tạp hơn, hoặc một lớp có dự định để sử dụng. Các khối riêng biệt của CSS có ý nghĩa cho ứng dụng. Điều này có thể có nghĩa là nhóm các CSS liên quan đến các thành phần trong các vùng nhất định của cùng một trang. Hoặc ta có thể nhóm thành phần lại với nhau dựa trên thành phần XHTML ghi đè chúng lên. - Luôn nhớ CSS là giao diện RIA Cũng như các cấu trúc cây DOM XHTML giao diện cho một ứng dụng Web, CSS cung cấp sự bài trang trí cho giao diện này. Bởi vì các ứng dụng web sử dụng XHTML như giao diện tương tác thay vì các văn bản tĩnh, CSS là cái để mô tả
20
thông tin phản hồi cho người sử dụng về các sự kiện nhất định xảy ra trên trang Web. Một mã vùng trong text box có thể chuyển sang màu đỏ nếu nội dung của nó không phải là một mã vùng hợp lệ, hoặc một vùng của trang có thể chuyển sang màu cam để cho biết rằng ta có một tin nhắn mới. - Kiểu lớp cơ bản là cách tốt nhất của phát triển RIA Vì để áp dụng và sau đó loại bỏ style đến các phần tử trên cây DOM, các phương thức class-based áp dụng các style đến một đối tượng là một công cụ bảo vệ chặt chẽ trong phát triển RIA.
1.3.4 JavaScript: một ngôn ngữ cho hành động Cấu trúc một tài liệu Web với XHTML và làm thế nào để trình bày đẹp tài liệu với CSS. JavaScript mở ra cánh cửa để ta làm cho các trang web tĩnh trở nên sống
động với sự tương tác đáp ứng thời gian thực. Đó là phương pháp tiếp cận chất lượng của các ứng dụng desktop truyền thống. JavaScript là một ngôn ngữ kịch bản hướng đối tượng cho phép nhà phát triển web đặt code bên trong một tài liệu Web thực hiện cho phía máy khách (clientside). JavaScript không phải là một dẫn xuất của Java, mặc dù cấu trúc điều khiển của nó tương tự như ngôn ngữ lập trình Java. Mặc dù vậy, JavaScript có thể sử dụng ở nhiều nơi không chỉ cho trình duyệt web mà còn hữu ích cho các nhà phát triển Rich Internet Application, bởi vì JavaScript và DOM APIs được đưa vào tất cả các trình duyệt web hiện đại. a. Gắn JavaScript vào trang Web Ta có thể gắn mã JavaScript vào trang web theo cách tương tự như CSS hoặc nội tuyến trong một thành phần đặc biệt hoặc như một file riêng biệt. Nhiều nhà phát triển có thể tìm thấy nó hữu ích để sử dụng nội tuyến JavaScript khi bắt đầu
thử nghiệm một chức năng mới, như giữ cho JavaScript viết riêng vào 1 phần hoặc tập tin riêng của nó càng nhiều càng tốt vì mục đích trực quan để có thể dùng lại và bảo trì. b. Gắn dòng JavaScript Ta đặt nội tuyến JavaScript vào tài liệu HTML như thể nó là văn bản bình thường bất cứ nơi nào trong các thành phần đầu hoặc giữa trang của ta, dù ta có thể chọn hai thành phần này để sử dụng như vùng chứa dựa trên mã JavaScript. Trong cả hai trường hợp, các mã kịch bản được thực hiện vì nó được phân tích cú pháp bởi trình duyệt Web. Đoạn 1-4 cho thấy một ví dụ về nội tuyến JavaScript.
21
Đoạn 1-4 XHTML <script type=”text/JavaScript”> // Your Code Here </script>
Vùng script nằm trên đầu được thực hiện ngay sau khi tải trang, vì vậy vị trí này là tốt nhất để xác định chức năng mà các thành phần bên trong phần thân sẽ sử dụng. Đó là một cuộc gọi lại của một số thành phần sẽ kích hoạt, hoặc cần phải thực hiện một số hành động trước khi tải trang. Kịch bản đặt trong thân được thực hiện khi mà phần của trang được gọi. Vì vậy đây là một vị trí lý tưởng để đặt các kịch
bản vào một số thành phần của thân trang cùng với nội dung. Ví dụ Đoạn 1-5 cho thấy, một tài liệu XHTML hoàn chỉnh có chứa nội tuyến JavaScript đưa ra một cửa sổ pop-up trước khi phần còn lại của trang Web được tải. Đoạn 1-5 XHTML <html> <head> <title>Alert Page</title> <script type=”text/JavaScript”> alert(“This is an alert!”); </script> <head>
<body>
You should see an alert before this loads!
</body> </html> c. Gắn JavaScrip như là 1 file riêng biệt Để đính kèm JavaScript vào một trang web như là một tập tin riêng biệt, sử dụng các yếu tố kịch bản chính xác như nhau, nhưng chắc chắn rằng nó là thành phần đầu và áp dụng một thuộc tính src tới nó. Đoạn 1-4 và 1-5 hiện ra (alert) bằng cách gắn một tập tin JavaScript. Lưu ý rằng file alert.js được hiển thị trong Đoạn 18 không yêu cầu bất kỳ thẻ kịch bản nào và lựa chọn để chỉ định các mã alert như là một chức năng được gọi khi thân file tải HTML . Đoạn 1-5 và 1-6 cũng chứng minh sự khác biệt giữa thực thi JavaScript trong các thành phần ở đầu chương trình và các thành phần ở thân chương trình. Trong
Đoạn 1-4, các mã alert trong các thành phần ở đầu thực hiện. Nó ngăn cản việc tải phần thân của trang Web cho đến khi JavaScript kết thúc quá trình thực hiện (có nghĩa là người sử dụng sẽ không tải trang cho đến khi họ nhấp chuột vào nút OK
22
trên hộp alert). Đối với ví dụ (đoạn) file riêng biệt, JavaScript tải function alert bằng phần tử đầu chương trình, nhưng không thực hiện cho đến khi tải thành phần thân (sử dụng thuộc tính onload). Đây là phương thức sau cùng đưa ra tải phần thân của trang web trong khi JavaScript thực thi, Sự khác biệt thấy ở 2 đoạn sau. Đoạn 1-6
function showalert() { alert(“This is an alert!”); }
d. Gắn JavaScript vào hành động của người dùng Hầu hết các kịch bản JavaScript bị ràng buộc vào hành động trên các thành phần trong cây DOM để có hiệu quả mong muốn. Trước khi ta tìm hiểu về các thao tác cây DOM, ta cần biết những cách khác nhau để có thể làm cho JavaScript thực hiện trên một trang. Bằng cách này, ta có thể dễ dàng tạo ra các trang của riêng mình để kiểm tra và vận dụng các kỹ thuật JavaScript. Có ba cách cơ bản để thực hiện các mã JavaScript trong trang Web: Để nguyên dòng (Raw, in-line JavaScript)
Các sự kiện trong vòng đời trang (Page lifecycle events) Các sự kiện người dùng điều khiển (User-driven events) Để nguyên dòng JavaScript Dòng JavaScript được thực hiện ngay khi trình duyệt Web bắt gặp nó. Mặc dù hiếm khi sử dụng kiểu của mã này, bởi vì nó không cung cấp các điều khiển việc thực thi các mã này khi nào và như thế nào. Nó chỉ hữu ích để kiểm tra mã , khởi
23
tạo các biến, hoặc thiết lập một sự kiện hẹn giờ. Đoạn 1-6 là một ví dụ JavaScript được thực hiện như các yếu tố đầu của tài liệu HTML.
Theo sự kiện của vòng đời trang Web Các thuộc tính trong Bảng 1-1 cho phép ta ràng buộc các JavaScript vào vùng khác nhau trong vòng đời của một trang Web. Bảng 1-1: Sự kiện trang vòng đời của trang Thuộc tính
Ý nghĩa
OnLoad
Khi trình duyệt đã tải xong trang
onError
Khi một lỗi xảy ra trong việc nạp các phần tử quy định hoặc JavaScript
onAbort
Khi người dùng hủy bỏ việc nạp các thành phần quy định trước khi nó được hoàn thành bằng cách nhấn vào nút Stop của trình duyệt hoặc bằng cách nhấn vào một liên kết khác
onUnload
Khi người dùng di chuyển ra khỏi trang bằng cách nhấp chuột vào một liên kết
Ví dụ Bảng 1-1 cho thấy cách sử dụng các thuộc tính onload và onUnload trong một trang Web. Cả hai đều gắn với các thành phần thân chương trình. Chú ý rằng, thuộc tính onload có chứa một lệnh gọi hàm, trong khi các thuộc tính onUnload chứa một câu lệnh Javascript đơn. Thực sự có thể thực thi JavaScript bằng nhiều cách với các thuộc tính giá trị: mỗi câu lệnh cách nhau bằng dấu chấm phẩy, nhưng hầu hết trường hợp có thể phục vụ tốt nhất người dùng bằng cách định nghĩa mã JavaScript như một function và sau đó dùng lệnh gọi hàm từ bên trong sự kiện thích hợp.
Đoạn 1-8 XHTML
coming!‟);”> Theo sự kiện người dùng điều khiển Sự kiện người dùng điều khiển là những sự kiện xảy ra khi người dùng Web thực hiện một hành động với con chuột hoặc bàn phím. Xây dựng các sự kiện này là một nội dung để phát triển các ứng dụng Web, bao gồm các nội dung Web với các tương tác phong phú như: kéo và thả hoặc thay đổi kích thước hình ảnh. Bảng 2-7
24
liệt kê một số sự kiện phổ biến nhất mà người sử dụng điều khiển có thể được đính kèm, hoặc bị ràng buộc các yếu tố DOM. Bảng 1-2: Một vài sự kiện người dùng điều khiển. Tên phần tử onClick onDblClick onFocus onBlur onChange onMouseOver onMouseMove
onMouseOut onMouseDown onMouseUp
Ý nghĩa Khi người sử dụng nhấp chuột một lần lên phần tử Khi người sử dụng nhấp đúp chuột lên phần tử Tương ứng, khi phần tử giành được tập trung hoặc mất tập trung Khi nội dung của phần tử đã thay đổi, chẳng hạn như nội dung của một hộp văn bản được cập nhật bởi người sử dụng Tương ứng khi di chuột vào, di chuyển chuột bên trong, và ra
khỏi khu vực của một phần tử Tương ứng, khi người sử dụng ấn xuống và thả chuột trên một phần tử, tương ứng
Ta có thể đặt hai sự kiện trên nhiều hơn là chỉ các thành phần đầu vào và links liên kết, ta có thể sử dụng chúng để kiểm soát hình ảnh, văn bản thường, hoặc thậm chí thành phần thẻ div và thẻ span chạy như thế nào.
1.4 Một số công nghệ được sử dụng trong RIA 1.4.1 Adobe Flex Để tạo RIA, các nhà phát triển thường sử dụng 2 giải pháp: Một là dùng DHTML (gồm HTML, CSS, Javascript) kết hợp với AJAX. Đây
là công cụ rất mạnh. Tuy nhiên HTML không phải là một công cụ trình diễn, mà là một chuẩn tài liệu. Javascript chưa đủ mạnh, và thiếu chặt chẽ. DHTML thường gặp vấn đề về tương thích với các trình duyệt. Giải pháp thứ 2 là dùng Flash (công nghệ ảnh động vector của Adobe). Công cụ này ngày nay được cải tiến rất nhiều, có thể làm các ứng dụng RIA khá tốt. Nhưng Flash sinh ra không phải để làm ứng dụng; công cụ lập trình không chuyên nghiệp, giao diện lập trình hạn chế; chi phí để viết ứng dụng rất lớn do thiếu các thành phần giao diện, thư viện hỗ trợ… Để khắc phục những nhược điểm này, Adobe đưa ra công nghệ Flex - một nền tảng công nghệ, công cụ phát triển ứng dụng RIA chuyên nghiệp. Với Flex, lập trình viên có thể kết hợp giữa phương pháp thiết kế kéo - thả và phương pháp viết mã lệnh, giúp xây dựng từng phần của ứng dụng một cách thích hợp. Sản phẩm
25
của Flex có thể được xuất sang thành ứng dụng Desktop (AIR). Flex hiện gồm 2 thành phần chính là MXML (Macromedia XML) và ActionScript3.0 (xây dựng theo ECMAScript 4). ActionScript 3.0 giống Javascript, dễ học và có thể lập trình hướng đối tượng. Để xây dựng RIA, người ta sử dụng Flex Builder kết hợp với công nghệ dịch vụ dữ liệu Flex (Flex Data Services – FDS) và biểu đồ Flex (FlexCharting). Các công nghệ này giúp đơn giản hoá việc phát triển ứng dụng và tạo ra các ứng dụng có chất lượng tốt hơn. Nếu không mua FlexBuilder, các nhà phát triển có thể sử
dụng công cụ Flex SDK miễn phí và có khá đầy đủ tính năng. Ngoài ưu thế công nghệ, so với các giải pháp thiết kế RIA khác, Flex có sự hậu thuẫn mạnh mẽ vì phát triển trên nền Flash nổi tiếng và được nhiều người sử dụng. Những người dùng Flash nay chuyển lên Flex không cần phải thay một nền khác.
1.4.2 Ajax Có thể so sánh AJAX so với các phương pháp tiếp cận truyền thống trong các ứng dụng web (xem hình 1.5). Đối với RIA, máy khách sẽ chạy mã ứng dụng với hầu hết các thành phần của tầng giao diện và tầng giao diện nằm ngay trên máy khách.
Ứng dụng Web truyền thống
Ứng dụng Web sử dụng RIA
Hình 1.5. Mô hình web truyền thống và web sử dụng RIA