Chuyên đề Xây dựng portal chứng khoán

Tài liệu Chuyên đề Xây dựng portal chứng khoán: TRƯỜNG ĐẠI HỌC THĂNG LONG KHOA CÔNG NGHỆ THÔNG TIN CHUYÊN ĐỀ TỐT NGHIỆP CÔNG NGHỆ .NET Đề Tài: Xây Dựng Portal Chứng Khoán Sinh viên thực hiện: Bùi Mạnh Hưng – A07757 Giáo viên hướng dẫn: Đoàn Quang Minh Hà Nội 30/05/2008 ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 1 Mục lục 1 Lời mở đầu...................................................................................................................... 4 2 Khái niệm cổng thông tin (Portal) ................................................................................ 5 2.1 Khái niệm cổng thông tin tích hợp ............................................................................ 5 2.2 Phân loại cổng thông tin ............................................................................................ 5 2.3 Các tính năng cơ bản của portal................................

pdf68 trang | Chia sẻ: hunglv | Lượt xem: 1514 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Chuyên đề Xây dựng portal chứng khoán, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TRƯỜNG ĐẠI HỌC THĂNG LONG KHOA CÔNG NGHỆ THÔNG TIN CHUYÊN ĐỀ TỐT NGHIỆP CÔNG NGHỆ .NET Đề Tài: Xây Dựng Portal Chứng Khoán Sinh viên thực hiện: Bùi Mạnh Hưng – A07757 Giáo viên hướng dẫn: Đoàn Quang Minh Hà Nội 30/05/2008 ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 1 Mục lục 1 Lời mở đầu...................................................................................................................... 4 2 Khái niệm cổng thông tin (Portal) ................................................................................ 5 2.1 Khái niệm cổng thông tin tích hợp ............................................................................ 5 2.2 Phân loại cổng thông tin ............................................................................................ 5 2.3 Các tính năng cơ bản của portal................................................................................. 5 3 Cổng thông tin chứng khoán......................................................................................... 7 3.1 Giới thiệu ................................................................................................................... 7 3.2 Mục tiêu ..................................................................................................................... 7 3.3 Nguyên tắc xây dựng ................................................................................................. 8 3.4 Tính năng nổi bật ....................................................................................................... 8 3.5 Lợi ích sản phẩm........................................................................................................ 9 3.6 Giao diện mỹ thuật................................................................................................... 10 4 Tìm hiểu khái niệm ...................................................................................................... 17 4.1 Giới thiệu DotNetNuke............................................................................................ 17 4.1.1 DotNetNuke là gì? ............................................................................................. 17 4.1.2 Nguồn gốc DotNetNuke..................................................................................... 18 4.1.3 Khả năng mở rộng............................................................................................. 18 4.1.4 Xây dựng skin mới gắn vào DotNetNuke .......................................................... 19 4.1.5 Xây dựng container mới gắn vào DotNetNuke ................................................. 20 4.1.6 Xây dựng module mới thêm vào DotNetNuke ................................................... 21 4.2 Giới thiệu XML & XSL........................................................................................... 23 4.2.1 XML là gì? ......................................................................................................... 23 4.2.2 Lịch sử XML ...................................................................................................... 24 4.2.3 SGML, HTML, và XML ..................................................................................... 25 4.2.4 Ứng dụng XML .................................................................................................. 26 4.2.5 XSL thêm dáng điệu cho XML........................................................................... 27 4.3 Giới thiệu Webservice ............................................................................................. 29 4.3.1 Khái niệm webservice........................................................................................ 29 Đặc điểm ................................................................................................................. 30 Ưu điểm................................................................................................................... 31 Nhược điểm............................................................................................................. 31 4.3.2 Kiến trúc webservice ......................................................................................... 31 4.3.4 Ứng dụng webservice ........................................................................................ 33 4.4 Giới thiệu Ajax ........................................................................................................ 33 4.4.1 Khái niệm Ajax .................................................................................................. 33 ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 2 Lịch sử Ajax............................................................................................................ 33 Khái niệm Ajax ....................................................................................................... 33 Ajax hoạt động như thế nào? .................................................................................. 34 4.4.2 Các ứng dụng Ajax phổ biến ............................................................................. 38 4.4.3 Hàm javascript dùng cho kỹ thuật ajax............................................................. 38 4.4.4 Giới thiệu Asp.net Ajax...................................................................................... 39 Kiến trúc của asp.net ajax ....................................................................................... 39 Asp.net ajax control toolkit ..................................................................................... 40 Tính năng Asp.net ajax community-supported ....................................................... 40 4.4.5 Ứng dụng kỹ thuật AJAX ................................................................................... 40 5 Mô tả hệ thống .............................................................................................................. 41 5.1 Kiến trúc tổng thể .................................................................................................... 41 5.1.1Tổng quan hệ thống............................................................................................ 44 5.1.2 Kiến trúc đa tầng ............................................................................................... 44 5.1.3 Sơ đồ triển khai hệ thống................................................................................... 44 5.2 Giải pháp XML&XSL ............................................................................................. 42 5.2.1 Sơ đồ giải pháp XML&XSL............................................................................... 44 5.2.2 Mô tả hoạt động giải pháp XML&XSL ............................................................. 44 5.2.3 Sơ đồ tổng quan các chức năng giải pháp XML&XSL ..................................... 45 Các tác nhân tham gia hệ thống .............................................................................. 46 Các tác chức năng chính của hệ thống.................................................................... 47 5.2.4 Chi tiết đặc tả chức năng................................................................................... 47 5.3 Giải pháp Webservice .............................................................................................. 64 5.3.1 Sơ đồ giải pháp Webservice .............................................................................. 64 5.3.2 Mô tả hoạt động giải pháp Webservice............................................................. 65 5.4 Giải pháp Webspider ............................................................................................... 65 5.4.1 Sơ đồ giải pháp Webspider................................................................................ 65 5.4.2 Mô tả hoạt động giải pháp Webspider .............................................................. 66 6 Tổng kết......................................................................................................................... 66 6.1 Kết quả về mặt lý thuyết .......................................................................................... 66 6.2 Kết quả về mặt thực tế ............................................................................................. 66 6.3 Phương hướng phát triển ......................................................................................... 66 7 Tài liệu tham khảo........................................................................................................ 67 7.1 Tài liệu tham khảo tiếng anh.................................................................................... 67 7.2 Tài liệu tham khảo tiếng việt ................................................................................... 67 ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 3 ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 4 1 Lời mở đầu Hiện nay, nhân loại đang đứng trên kỷ nguyên của công nghệ thông tin. Sự phát triển hết sức mạnh mẽ của công nghệ thông tin đã đem đến cho con người những thành tựu đáng kinh ngạc đặc biệt là internet. Với sự phát triển Internet toàn cầu trên nền tảng băng thông rộng, Internet đã trở thành một phần không thể thiếu trong lĩnh vực truyền thông toàn cầu với sự phát triển mạnh mẽ với ứng dụng công nghệ thông tin, truyền thông nền tảng Internet dần thay thế các công cụ truyền thông truyền thống, giúp mọi người tiến đến gần nhau hơn trên toàn thế giới. Trong những năm gần đây, các ứng dụng trên Internet phát triển nhanh, ảnh hưởng của nó là đã làm thay đổi nhiều đến đời sống kinh tế, văn hoá, xã hội của tất cả các nước trên thế giới. Trong sự phát triển mạnh mẽ của Internet, thì các cổng thông tin (portal) giữ một vai trò đặc biệt quan trọng. Công nghệ này đã và đang trở thành xu thế chung trong quá trình phát triển trên Internet, có thể coi đó là cổng vào một kho thông tin lớn, đa dạng. Qua Portal, những đối tượng người dùng khác nhau có thể truy cập đến nhiều loại thông tin khác nhau nhưng theo một cách thức thống nhất. Việc xây dựng một portal về chứng khoán không dễ dàng và khá tốn kém. Để portal đó hoạt động hiệu quả và đem lại các lợi ích thiết thực cho công ty chứng khoán cần có một giải pháp xây dựng portal hợp lý. Trong chuyên đề tốt nghiệp .Net này tôi xin giới thiệu giải pháp "Xây dựng website chứng khoán trên công nghệ portal". Giải pháp này sẽ giúp bạn xây dựng được một website chứng khoán hoạt động hiệu quả, chuyên nghiệp, với nhiều thông tin chi tiết, dịch vụ khiến khách hàng hài lòng. Xây dựng trên nền công nghệ mới “Portal”, website chứng khoán có thiết kế đẹp mắt, dễ sử dụng, dễ quản lý và có chi phí tối thiểu. Báo cáo bao gồm những phần sau: Phần 1: Khái niệm cổng thông tin (portal), phân loại, các tính năng cơ bản trong một portal. Phần 2: Giới thiệu cổng thông tin chứng khoán (mục tiêu, lợi ích sản phẩm mang lại cho khách hàng, các tính năng nổi bật trong portal này) Phần 3: Tìm hiểu các khái niệm mới liên quan tới giải pháp sẽ mô tả trong phần 4. Phần 4: Mô tả hệ thống, mô tả công nghệ sử dụng cho việc xây dựng, triển khai portal. Portal được xây dựng trên nền tảng DotNetNuke và dựa vào 3 giải pháp chính: XML&XSL, Webservice, Webspider. Phần 5: Tổng kết các kết quả đã đạt được. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 5 2 Khái niệm cổng thông tin (Portal) 2.1 Khái niệm cổng thông tin tích hợp Cổng thông tin điện tử tích hợp là điểm truy cập tập trung và duy nhất, tích hợp các kênh thông tin, các dịch vụ và ứng dụng, phân phối tới người sử dụng thông qua một phương thức thống nhất và đơn giản trên nền tảng Web. 2.2 Phân loại cổng thông tin Cổng thông tin điện tử cung cấp cho người dùng cuối nhiều loại dịch vụ khác nhau với nhiều nhu cầu khác nhau, có thể phân loại các portal như sau: * Cổng thông tin công cộng (Public portals): ví dụ như Yahoo, loại cổng thông tin này thường được sử dụng để ghép nối các thông tin lại với nhau từ nhiều nguồn, nhiều ứng dụng và từ nhiều người, cho phép cá nhân hoá (personalization) các Web site theo tuỳ từng đối tượng sử dụng. * Cổng thông tin doanh nghiệp (“Enterprise portals” hoặc “Corporate Desktops”): được xây dựng để cho phép các thành viên của doanh nghiệp sử dụng và tương tác trên các thông tin và ứng dụng nghiệp vụ tác nghiệp của doanh nghiệp. * Cổng giao dịch điện tử (Marketplace portals): ví dụ như eBay và ChemWeb, cổng thông tin này là nơi liên kết giữa người bán và người mua. * Cổng thông tin ứng dụng chuyên biệt (Specialized portals): ví dụ như SAP portal, cổng thông tin loại này cung cấp các ứng dụng chuyên biệt khác nhau. 2.3 Các tính năng cơ bản của portal Tuy có nhiều loại cổng thông tin tích hợp, cung cấp nhiều loại dịch vụ và ứng dụng khác nhau, nhưng tất cả các loại cổng thông tin tích hợp đều có chung một số tính năng. Các tính năng này là được sử dụng như một tiêu chuẩn để phân biệt giữa cổng thông tin điện tử tích hợp với một Web site hoặc một ứng dụng chạy trên nền tảng Web. Các tính năng đó bao gồm: * Khả năng cá nhân hoá (Customization hay Personalization): cho phép thiết đặt các thông tin khác nhau cho các loại đối tượng sử dụng khác nhau theo yêu cầu. Tính năng này dựa trên hoạt động thu thập thông tin về người dùng và cộng đồng người dùng, từ đó cung cấp các thông tin chính xác tại thời điểm được yêu cầu. * Tích hợp và liên kết nhiều loại thông tin (Content aggregation): cho phép xây dựng nội dung thông tin từ nhiều nguồn khác nhau cho nhiều đối tượng sử dụng. Sự khác biệt giữa các nội dung thông tin sẽ được xác định qua các ngữ cảnh hoạt động của người dùng (user- specific context), ví dụ như đối với từng đối tượng sử dụng sau khi ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 6 thông qua quá trình xác thực thì sẽ được cung cấp các thông tin khác nhau, hoặc nội dung thông tin sẽ được cung cấp khác nhau trong quá trình cá nhân hoá thông tin. * Xuất bản thông tin (Content syndication): thu thập thông tin từ nhiều nguồn khác nhau, cung cấp cho người dùng thông qua các phương pháp hoặc giao thức (protocol) một cách thích hợp. Một hệ thống xuất bản thông tin chuyên nghiệp phải có khả năng xuất bản thông tin với các định dạng đã được quy chuẩn, ví dụ như RDF (Resource Description Format), RSS (Rich Site Summary), NITF (News Industry Text Format) và NewsXML. Ngoài ra, các tiêu chuẩn dựa trên XML cũng phải được áp dụng để quản trị và hiển thị nội dung một cách thống nhất, xuyên suốt trong quá trình xuất bản thông tin. Các tiêu chuẩn dựa trên XML này cho phép đưa ra giải pháp nhanh nhất để khai thác và sử dụng thông tin trên các Web site khác nhau thông qua quá trình thu thập và bóc tách thông tin với các định dạng đã được quy chuẩn. * Hỗ trợ nhiều môi trường hiển thị thông tin (Multidevice support): cho phép hiển thị cùng một nội dung thông tin trên nhiều loại thiết bị khác nhau như: màn hình máy tính (PC), thiết bị di động (Mobile phone, Wireless phone, PDA). * Khả năng đăng nhập một lần (Single Sign On): cho phép dịch vụ xuất bản thông tin hoặc các dịch vụ khác của portal lấy thông tin về người dùng khi hoạt động mà không phải yêu cầu người dùng phải đăng nhập lại mỗi khi có yêu cầu. Đây là một tính năng rất quan trọng vì các ứng dụng và dịch vụ trong portal sẽ phát triển một cách nhanh chóng khi xuất hiện nhu cầu, mà các ứng dụng và dịch vụ này tất yếu sẽ có các nhu cầu về xác thực hoặc truy xuất thông tin người dùng. * Quản trị portal (Portal administration): xác định cách thức hiển thị thông tin cho người dùng cuối. Tính năng này không chỉ đơn giản là thiết lập các giao diện người dùng với các chi tiết đồ hoạ (look- and-feel), với tính năng này, người quản trị phải định nghĩa được các thành phần thông tin, các kênh tương tác với người sử dụng cuối, định nghĩa nhóm người dùng cùng với các quyền truy cập và sử dụng thông tin khác nhau. * Quản trị người dùng (Portal user management): cung cấp các khả năng quản trị người dùng cuối, tuỳ thuộc vào đối tượng sử dụng của portal. Tại đây, người sử dụng có thể tự đăng ký trở thành thành viên tại một công thông tin công cộng (như Yahoo, MSN…) hoặc được người quản trị tạo lập và gán quyền sử dụng tương ứng đối với các công thông tin doanh nghiệp. Mặt khác, tuỳ vào từng kiểu portal mà số lượng thành viên có thể từ vài nghìn tới hàng triệu. Hiện tại phương pháp phân quyền sử dụng dựa trên vai trò (Role-based security) được sử dụng như một tiêu chuẩn trong các hoạt động xác định quyền truy cập và cung cấp thông tin cho các đối tượng khác nhau trong các portal cũng như các ứng dụng Web. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 7 3 Cổng thông tin chứng khoán 3.1 Giới thiệu Việc xây dựng một portal chứng khoán không dễ dàng và khá tốn kém. Để portal đó hoạt động hiệu quả và đem lại các lợi ích thiết thực cho công ty chứng khoán bạn cần một giải pháp xây dựng portal hợp lý. Trong chuyên đề tốt nghiệp .Net này tôi xin giới thiệu giải pháp xây dựng portal chứng khoán trên nền tảng dotnetnuke và dựa trên 3 công nghệ chính: XML&XSL, webservice, webspider. Giải pháp này sẽ giúp bạn xây dựng được một website chứng khoán hoạt động hiệu quả, chuyên nghiệp, với nhiều thông tin chi tiết, dịch vụ khiến khách hàng hài lòng. Xây dựng trên nền công nghệ mới, portal chứng khoán có thiết kế đẹp mắt, dễ sử dụng, dễ quản lý và có chi phí tối thiểu. 3.2 Mục tiêu - Xây dựng một website đẹp, hiện đại, thể hiện đầy đủ hình ảnh của công ty chứng khoán trên Internet. - Website cần phải là một công cụ marketing và chăm sóc khách hàng hiệu quả. - Website cần phải có chi phí xây dựng và vận hành hợp lý, do đặc thù mới thành lập của công ty. - Website cần phải có tính mở cao để dễ dàng nâng cấp sau này. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 8 - Đáp ứng các yêu cầu của các công ty, tập đoàn chứng khoán, tập thể cá nhân có nhu cầu về chứng khoán. 3.3 Nguyên tắc xây dựng Tôi tuân theo các triết lý sau khi thiết kế & xây dựng các hệ thống website cho khách hàng của mình: - Cảm nhận của website: Chuyên nghiệp và Thống nhất. - Tương tác cao và năng động: o Dễ dàng cập nhật cũng như loại bỏ thông tin cũ khi có nhu cầu mà không cần hiểu biết về kỹ thuật. o Có sẵn cơ chế phân quyền để cho phép đồng thời cập nhật nội dung và thông tin ở nhiều vùng khác nhau. o Dễ dàng thay đổi cấu trúc của toàn bộ website. o Dễ dàng thay đổi từng phần hoặc toàn phần giao diện website với chi phí thấp nhất mà không ảnh hưởng đến nội dung - Cấu trúc khoa học, chặt chẽ, rõ ràng, dễ dàng điều hướng và khai thác. - Thiết kế sáng tạo, độc đáo, hiện đại và ấn tượng. - Thân thiện với người sử dụng, tương thích với các trình duyệt web khác nhau, nội dung được tối ưu, tốc độ tải/nạp trang web nhanh. 3.4 Tính năng nổi bật - Giao diện quản trị trực quan được gắn ngay trên đỉnh website - Giao diện của hệ thống có thể tùy biến dễ dàng, người dùng muốn thay đổi giao diện chỉ cần lựa chọn skin, contaner. - Các container rất uyển chuyển: tự động co giãn theo nội dung, cũng có thể chọn icon giúp tăng thêm màu sắc riêng của mỗi container. - Không cần nhiều kiến thức về CNNT: công cụ soạn thảo FCK Editor được đặt ngay trên nền web giúp người nhập tin có thể xử lý những yêu cầu cao đối với nội dung thông tin mà không cần phải hiểu biết nhiều về kỹ thuật. Có thể cập nhật và quản lý nội dung thông tin của website bởi những nhân viên nhập liệu bình thường, không cần phải nhờ tới những chuyên gia hiểu biết về công nghệ thông tin. - Mỗi người sử dụng được quy định phạm vi hoạt động riêng, vì vậy họ chỉ có thể cập nhật thông tin vào những vùng được phép: Chỉ những người có quyền editor trở lên mới được đăng bài, sau khi editor đăng bài thì những người có quyền aprover trở lên ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 9 mới được sửa, xóa và đăng bài viết đó. Chỉ admin trở lên mới được xem xml, xsl hay tùy chọn skin, container cho module. - Nội dung bài viết, top cổ phiếu, thống kê giá chứng khoán... được export ra dữ liệu dạng XML và có thể được hiển thị bằng nhiều cách khác nhau nhờ XSL. - Hệ thống có khả năng cung cấp thông tin cho các website khác hoặc lấy thông tin từ website khác nhờ các module sử dụng webservice. - Có khả năng tự động cực cao trong việc kết nối thông tin với website khác nhờ các module webspider. - Có khả năng lấy thông tin của các công ty lên sàn rồi đưa vào cơ sở dữ liệu. - Thông tin được truyền tải về phía người dùng ít nhất nhờ các câu store procedure xử lý dữ liệu và kỹ thuật ajax. - Và rất nhiều tính năng nổi bật khác ... 3.5 Lợi ích sản phẩm Sản phẩm này mang lại rất nhiều lợi ích cho doanh nghiệp: - Giúp doanh nghiệp có được hình ảnh một công ty chứng khoán chuyên nghiệp: Nguồn tin tức chuyên ngành phong phú, các thông tin chứng khoán đầy đủ, chi tiết và được cập nhật nhanh chóng như bảng giá trực tuyến, kết quả giao dịch... - Tạo nên niềm tin vào việc tổ chức của bạn có khả năng ứng dụng các kỹ thuật mới nhất của công nghệ thông tin để đạt đến mục đích của mình. - Là một kênh marketing hiệu quả: Các sản phẩm dịch vụ của công ty được giới thiệu trên website một cách rộng rãi. Với sự chuyên nghiệp trong giao diện, chuyên nghiệp trong cách xử lý dữ liệu portal sẽ là 1 kênh marketing hiệu quả cho công ty. - Là một công cụ chăm sóc khách hàng hiệu quả: Website cung cấp nhiều chức năng hỗ trợ khách hàng trực tuyến và nhanh chóng. - Góp phần xây dựng thương hiệu công ty: Hiện nay, website đang trở thành điều khách hàng nghĩ tới đầu tiên khi tìm hiểu về sản phẩm dịch vụ của một công ty. Vì vậy, website sẽ giúp công ty tăng mức nhận biết thương hiệu một cách hiệu quả. - Xây dựng một hệ thống điều hành, xử lý thông tin thống nhất, hiệu quả trong toàn tổ chức đồng thời kết nối không hạn chế với các hệ thống khác trong tương lai. Tôi luôn chờ đón mọi sự phản hồi từ phía khách hàng để ngày càng hoàn thiện sản phẩm. Hãy gửi yêu cầu/phản hồi của bạn cho chúng tôi nếu bạn có những sáng kiến hoặc yêu cầu mới để bổ sung nâng cao tính năng của hệ thống. Có thể bạn sẽ thấy những sáng kiến của mình được áp dụng trong một phiên bản mới trong tương lai. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 10 3.6 Giao diện mỹ thuật Giao diện trang chủ ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 11 Giao diện trang tin tức ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 12 Giao diện trang dịch vụ ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 13 Giao diện trang diễn đàn ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 14 Giao diện trang dữ liệu doanh nghiệp ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 15 Giao diện trang biểu đồ phân tích tài chính ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 16 Giao diện bảng giá trực tuyến sàn Hồ Chí Minh Giao diện bảng giá trực tuyến sàn Hà Nội ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 17 4 Tìm hiểu khái niệm 4.1 Giới thiệu DotNetNuke 4.1.1 DotNetNuke là gì? a. Khái niệm DotNetNuke® là hệ thống quản lý nội dung mã nguồn mở viết bằng ngôn ngữ lập trình VB.NET trên nền tảng ASP.NET. Đây là một hệ thống mở, tùy biến dựa trên skin và module. DotNetNuke có thể được sử dụng để tạo các trang web cộng đồng một cách dễ dàng và nhanh chóng. Phát triển: Perpetual Motion Interactive Systems Inc. Phiên bản mới nhất: 4.8.2 (Cập nhật thông tin ngày 24/05/2008) Hệ điều hành: ASP.NET / Microsoft Windows Phân loại: Hệ thống quản lý nội dung Giấy phép: Dựa trên BSD Trang chủ: b. Web Application Framework DotNetNuke là một bộ khung trong ứng dụng web (Web Application Framework) mã nguồn mở với tư tưởng là tạo và phát triển dự án về web, mạng lưới thông tin nội bộ, mạng nội bộ mở rộng, cổng thông tin tích hợp trên mạng, và tùy chỉnh ứng dụng. DotNetNuke được cung cấp như một phần mềm mã nguồn mở. Nó cũng cho phép làm bất cứ gì họ muốn với framework cả về mặt thương mại và phi thương mại, với yêu cầu đơn giản là đưa uy tín trở lại cộng đồng dự án DotNetNuke. DotNetNuke được xây dựng trên một nền tảng (platform) Microsoft ASP.NET (VB.NET), nó dễ dàng được cài đặt trên máy chủ. Với sự phát triển của cộng đồng đã có 440,000 người sử dụng, và là một cở sở tốt của việc lập trình chuyên nghiệp. c. Giới thiệu DotNetNuke® DotNetNuke là một framework ứng dụng web với tư tưởng là tạo, phát triển và quản lý web. Với một cộng đồng phát triển nhanh chóng: hơn 300,000 người đăng kí làm thành viên, một số lượng lớn những người phát triển web chuyên nghiệp. DotNetNuke® tiếp tục tạo nền móng vững chắc cho một ứng dụng web chuyên nghiệp. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 18 d. Giới thiệu Open Source Ý tưởng cơ bảng đằng sau Open Source rất đơn giản: Khi đó một người lập trình có thể đọc, phân phối lại, và định nghĩa mã nguồn mở cho một bộ phận của phần mềm, phần mềm được phát triển thêm. Mọi người sử dụng, cải tiến nó, fix lỗi giúp cho mã nguồn ngày càng trở nên hoàn thiện hơn. 4.1.2 Nguồn gốc DotNetNuke DotNetNuke được phát triển dựa trên cổng điện tử IBuySpy được Microsoft giới thiệu như là một ứng dụng mẫu dựa trên nền tảng .NET Framework. DotNetNuke đã được phát triển qua nhiều phiên bản và hiện nay đang ở phiên bản 4.8.2 Phiên bản hiện tại đòi hỏi .NET Framework 3.5 trong khi các phiên bản trước đó chạy trên nền .NET Framework 1.1 hoặc 2.0 Một cài đặt DotNetNuke có thể phục vụ nhiều trang web, mỗi trang có thể có giao diện và cộng đồng người sử dụng riêng biệt. Phiên bản hiện tại cũng cho phép chức năng đa ngôn ngữ. Cái tên DotNetNuke đã được đặt để phản ánh nền tảng .NET mà nó sử dụng đồng thời theo trào lưu của một số cổng điện tử khá thành công trước đó như PHP-Nuke và PostNuke. Tên này cũng đã được công ty Perpetual Motion Interactive Systems Inc. đăng ký bảo hộ vào ngày 15 tháng 11 năm 2004 (TMA 625.364). Shaun Walker, chủ tịch của công ty này, chính là người tạo ra và duy trì DotNetNuke. 4.1.3 Khả năng mở rộng DotNetNuke có một nhân cơ bản có thể mở rộng với các module để bổ sung các tính năng mới; giao diện của hệ thống có thể tùy biến nhờ vào kỹ thuật skin. a) Module Khoảng hơn 10 module cơ bản được cung cấp cùng với bản DotNetNuke. Các module khác có thể được download từ trang web của DotNetNuke trong đó có các module như: thương mại điện tử, album ảnh, blog, forum, wiki, mailling list... Các module bổ sung khác cũng được các cộng đồng nguồn mở và các công ty phần mềm thương mại cung cấp. Các module này có thể được cài đặt bổ sung dễ dàng bằng cách upload chúng thông qua giao diện của trang quản trị. Một địa chỉ tốt để mua các module thương mại ( nâng cao tính chuyên nghiệp của sản phẩm) là trang Một vấn đề khác các nhà phát triển cho Dotnetnuke hay vấp phải là hệ thống menu của DNN khó chỉnh sửa và hơi đơn điệu, tuy nhiên, gần đây đã có sản phẩm Navigation Suite và TransArt do công ty phát triển khá tốt và có thể thay thế cho Solpart Menu. Nếu bạn muốn tìm một số module thương mại về Image Gallery, Đăng ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 19 tin tức theo chuyên mục(article)(khoảng 7 module) với giá cả rất thấp 25$ cho cả gói tại b) Skin Giao diện của DotNetNuke được thiết kế với kiến trúc sử dụng skin cho phép tách biệt nội dung và giao diện của hệ thống. Kiến trúc này cho phép người thiết kế giao diện có khả năng làm việc độc lập với quá trình phát triển trong ASP.NET và chỉ đòi hỏi kiến thức về HTML cùng với cách thức thiết kế skin của DotNetNuke. Skin bao gồm một số file HTML cơ bản, trong đó có các vị trí để đặt nội dung, menu và các tính năng khác cùng với các file ảnh, file định dạng (stylesheets), Javascript; tất cả thường được đóng gói trong một file Zip. Giống như module, skin có thể được upload và cài đặt tự động thông qua trang quản trị. 4.1.4 Xây dựng skin mới gắn vào DotNetNuke Bước 1: Tạo thư mục mới trong thư mục skins của portal Ví dụ: C:\MyPortals\MySecurities\Portals\_default\Skins\MySecurities Bước 2: Tạo file TenFile.ascx, skin.css trong thư mục vừa tạo Bước 3: Viết code cho file TenFile.ascx, skin.css vừa tạo - Kế thừa lớp skin DotNetNuke.UI.Skins.Skin - Tạo bộ khung cho giao diện bằng cách chia thành các pane - Viết HTML cho skin - Các pane được phân định bằng cách đặt id trong thẻ TD - Ít nhất cần phải có 1 pane là ContentPane - Có thể dễ dàng gắn bảng điều khiển khi đăng nhập sẽ hiện lên bằng cách đặt id="ControlPanel" trong thẻ ID Bước 4: Đăng nhập vào portal bằng quyền admin hoặc quyền host sau đó chọn thiết lập Bước 5: Sau khi chọn thiết lập ==> chọn thiết lập nâng cao ==> Chọn giao diện ==> Chọn skin vừa tạo ra. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 20 4.1.5 Xây dựng container mới gắn vào DotNetNuke Bước 1: Tạo thư mục mới trong thư mục skins của portal C:\MyPortals\MySecurities\Portals\_default\Containers\MySecurities Bước 2: Tạo file TenFile.ascx, container.css Bước 3: Viết code cho file TenFile.ascx, container.css vừa tạo  Kế thừa lớp container Inherits="DotNetNuke.UI.Containers.Container"  Khai báo sử dụng Title, Icon, Actions, Visibility <%@ Register TagPrefix="dnn" TagName="ACTIONS" Src="~/Admin/Containers/SolPartActions.ascx" %> <%@ Register TagPrefix="dnn" TagName="ICON" Src="~/Admin/Containers/Icon.ascx" %> <%@ Register TagPrefix="dnn" TagName="TITLE" Src="~/Admin/Containers/Title.ascx" %> <%@ Register TagPrefix="dnn" TagName="VISIBILITY" Src="~/Admin/Containers/Visibility.ascx" %>  Sử dụng trong HTML bằng cách <dnn:TITLE runat="server" id="dnnTITLE" cssclass="Default_TitleContainer"/>  Viết HTML cho container Bước 4: Đăng nhập vào quyền admin hoặc host, chọn thiết lập ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 21 Bước 5: Sau khi chọn thiết lập ==> Chọn thiết lập trang ==> chọn thiết lập cơ bản ==> Chọn container vừa tạo ra 4.1.6 Xây dựng module mới thêm vào DotNetNuke Bước 1: Khởi động Visual studio dotnet mở project của dotnetnuke ra Bước 2: Tạo thư mục mới trong DesktopModules ví dụ HungBM.HelloWorld Bước 3: Add thêm web user control ví dụ ViewHelloWorld.ascx Bước 4: Sử dụng thư viện Dotnetnuke.Entities using DotNetNuke.Entities.Modules; Bước 5: Viết class ViewHelloWorld kế thừa từ lớp PortalModuleBase Bước 6: Thêm 1 label mới trong file ViewHelloWorld.ascx Bước 7: Viết code namespace HungBM.HelloWorld { public partial class ViewHelloWorld : PortalModuleBase { protected void Page_Load(object sender, EventArgs e) { lblHelloWorld.Text = "HelloWorld"; } } } Bước 8: Đăng nhập vào quyền host, chọn định nghĩa module Bước 9: Thêm khai báo module mới ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 22 Bước 10: Đặt tên module sau đó ấn nút tạo Bước 11: Thêm khai báo module mới Bước 12: Thêm control Bước 13: Thêm module mới mang tên HungBM.HelloWorld và chạy thử. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 23 4.2 Giới thiệu XML & XSL Sự Bùng Nổ XML!!! Hiện nay XML chiếm vị trí số một và có vai trò rất quan trọng trong việc truyền tải và trao đổi dữ liệu liên lạc giữa các ứng dụng và các hệ điều hành khác nhau,... Nếu phải tiên đoán kỹ thuật tin học nào chắc chắn sẽ thịnh hành trong tương lai, ta không cần phải học chiêm tinh cũng có thể đoán nay là XML. Ngay cả Microsoft, Sun, IBM, Oracles,... đều hỗ trợ XML và dùng nó trong rất nhiều ứng dụng. Theo như sự đánh giá của những nhà khởi xướng XML cho rằng nó có thể đẩy lùi sự bất ổn từ HTML đồng thời tạo nên cuộc cách mạng trong truyền tải và trao đổi dữ liệu,... 4.2.1 XML là gì? XML viết tắt của chữ eXtensible Markup Language (ngôn ngữ nâng cấp có thể mở rộng) là một bộ qui luật về cách chia một tài liệu ra làm nhiều phần, rồi đánh dấu và ráp các phần khác nhau lại để dễ nhận diện chúng. Được chỉ đạo bởi Tổ hợp Web toàn cầu (W3C), XML trở thành một đặc điểm kỹ thuật chính thức. Tổ hợp Web toàn cầu W3C gọi XML là "một cú pháp thông dụng cho việc biểu thị cấu trúc trong dữ liệu". Dữ liệu có cấu trúc tham chiếu đến dữ liệu được gán nhãn cho nội dung, ý nghĩa, hoặc công dụng. Ví dụ : Trong HTML ta dùng những Tag Pairs (cặp nhãn hiệu mở đóng) để đánh dấu như và . Hãy quan sát một trang Web dưới đây: Welcome To HungBM’s Website ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 24 Định Nghĩa A: "Anh tên là gì?" B: "Tôi tên là HungBM". A: "Anh học trường nào?" B: "Tôi học trường Thăng Long Trong HTML Web page các Tag Pair đều được định nghĩa trước và không chứa đựng ý nghĩa gì về dữ kiện mà chúng kẹp bên trong, trừ trường hợp TITLE. Thí dụ H1 có nghĩa display hàng chữ bên trong (Định Nghĩa) theo cỡ lớn nhất, nhưng hàng chữ ấy có thể là bất cứ thứ gì, không nhất thiết phải là từ (Định Nghĩa) ở đây. Còn XML thì cho phép ta tự do đặt tên các Tag Pair để dùng khi cần. Nếu tính ra, Dynamic HTML có đến khoảng 400 Tags mà nếu muốn dùng ta phải nhớ hết. Trong khi đó, XML không có giới hạn về con số Tags và ta không cần phải nhớ Tag nào cả. Ý nghĩa của các Tag rất linh động và ta có thể sắp xếp các tags của XML theo loại cho hợp lý. Thí dụ muốn làm một trang XML về môn Văn học ta cần những Tag diễn tả nhân vật, ngày sinh, ngày tử,... 4.2.2 Lịch sử XML XML được triển khai nhờ sự đóng góp của rất nhiều người trong mười năm qua. Ngôn ngữ đánh dấu tiêu chuẩn tổng quát (SGML - Standard Generalized Markup Language), một ngôn ngữ biểu thị dữ liệu trong những ứng dụng xử lý văn bản đa dạng và có cấu trúc tinh vi. Nhược điểm của nó là rất rắc rối, khó học, khó sử dụng,... Chính vì lẽ đó vào năm 1990 Tim Berners- Lee ở CERN, đã tạo ra HTML (là một ứng dụng của SGML), một phần nhỏ của SGML, nhưng mọi người lại rất dễ dùng. Không ngờ sự thành công của HTML vượt quá sức tưởng tượng của chính tác giả. Nhưng rồi đến một ngày vào năm 1995 người ta bắt đầu thấy sự giới hạn của HTML, mặc dù nó được Netscape, Microsoft cố gắng thêm thắt, bởi sự thịnh hành của Web. Do đó, nhiều người có ý định quay trở lại SGML, nhưng lại ái ngại. Đúng lúc đó vào 1996, Jon Bosak ở Sun Microsystem khởi đầu nhóm cộng tác (working group) W3C SGML, bấy giờ được gọi là nhóm XML. Mục đích là đơn giản hoá SGML để nó dễ dùng như HTML mà đồng thời mạnh mẽ, dễ dùng,... Tim Bray và C.M. Sperberg-McQueen viết hầu hết Specification (bản điều kiện kỹ thuật) nguyên thủy của XML. Trươc đó, Bray đã có kinh nghiệm nhiều năm quản lý dự án "New Oxford English Dictionary". Ông muốn XML hội các điều kiện sau: ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 25 - Đơn giản đủ cho lập trình viên áp dụng - Dễ cho Search Engine (như AltaVista, Yahoo, Infoseek,...) phân loại - Không giới hạn trong tiếng Anh của nước Mỹ Chính vì lẽ đó, bản Specification đầu tiên của XML được ra đời vào tháng 11 năm 1996. Tháng 7 năm 1997 Microsoft áp dụng đầu tiên của XML, Channel Definition Format (CDF). Họ dùng CDF để xuất bản các trang Web đến những khách đã đóng tiền tháng (subscribers). CDF là một phần của Internet Explorer 4.0. Tháng 5 nãm 1997 Microsoft và Inso Corporation xuất bản XSL (eXtensible Style Language) để làm Style Sheet diễn tả cách trình bày một trang XML. Đến tháng 1 năm 1998 Microsoft cho ra một chương trình miễn phí tên MSXSL để generate một trang HTML từ một cặp trang XML và XSL. Sau này thì Internet Explorer 5.0 có thể hiển thị trực tiếp một trang XML (bên trong có ghi phải tìm trang XSL ở đâu), không cần cho thấy kết quả trang HTML. Vào tháng 2 năm 1998 Tổ hợp Web toàn cầu W3C phê chuẩn cho chính thức thi hành Version 1.0 của XML Specification. 4.2.3 SGML, HTML, và XML Ngôn ngữ đánh dấu tiêu chuẩn tổng quát (SGML - Standard Generalized Markup Language) là một phương pháp biểu thị dữ liệu trong những ứng dụng xử lý văn bản. Nó đã tồn tại hõn một thập kỷ nay; cả XML lẫn HTML đều là những định dạng tài liệu có nguồn gốc từ SGML. Vì vậy, tất cả chúng đều cùng chia sẻ một số đặc tính chẳng hạn như một cú pháp tương tự và cách dùng các nhãn trong dấu ngoặc nhọn. Nhưng HTML là một ứng dụng của SGML, trong khi XML là một bộ trình con của SGML. Sự phân biệt là rất quan trọng. Cơ bản, HTML không thể dùng để định nghĩa nên các ứng dụng mới trong khi XML có thể thực hiện được việc này. Ví dụ, cả RDF lẫn CDF đều là những ứng dụng được định nghĩa bằng XML. XML và HTML thực sự giống như hai anh em họ hơn là hai anh em ruột. Tổ hợp Web toàn cầu W3C đã phát triển một biểu đồ lớn để làm sáng tỏ mối quan hệ này. XML thực sự tương thích với SGML - bất cứ một công cụ tạo hoặc duyệt SGML nào cũng có thể đọc được những tài liệu XML. Tuy nhiên, XML đỡ phức tạp hơn SGML, và nó được thiết kế để chạy trên một mạng băng tầng hữu hạn ví dụ như Internet. Theo Tim Bray - đồng biên tập viên XML - thì ý tưởng đằng sau XML là tận dụng lợi ích của SGML, loại bỏ những phần phức tạp, duy trì tính nhẹ nhàng, và làm cho nó hoạt động được trên Web. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 26 HTML, SGML, và XML sẽ tiếp tục được sử dụng ở những vị trí thích hợp; sẽ không có ngôn ngữ nào trong số chúng thể hiện bất cứ tính chất lỗi thời nào khác. HTML vẫn duy trì cách thức đõn giản nhất để phát hành dữ liệu nhanh chóng trên Web, thường là những dữ kiện ngắn hạn ví dụ như các chương trình nghị sự hoặc các tờ quảng cáo. Nếu dữ kiện có một công dụng dài hạn hơn và cần một cấu trúc chặt chẽ hơn, thì các nhà xây dựng Web sẽ chuyển sang XML. Không giống như HTML và XML, SGML có thể sẽ chẳng bao giờ có được sự chấp nhận phổ biến trên Internet, đơn giản bởi vì nó chưa bao giờ được thiết kế hoặc được tối ưu cho các nhu cầu của một giao thức mạng. Mức tối đa, với những ứng dụng phát hành có cấu trúc chặt chẽ ở mức độ cao, SGML sẽ tiếp tục phù hợp với mọi yêu cầu. 4.2.4 Ứng dụng XML Tôi sử dụng XML trong module tin tức chứng khoán và module top cổ phiếu. Khi trình bày dữ liệu ở dạng XML tôi có thể thay đổi giao diện bằng XSL một cách dễ dàng mà ko phải chỉnh sửa code trong các file .cs, đồng thời XML giúp tôi có khả năng chỉ định cấu trúc của tài liệu. Vì XML là một chuẩn công cộng, không thuộc về một công ty nào, nên không bị phụ thuộc vào định dạng của 1 công ty nào (ví dụ dùng word thì cần có bộ office của Microsoft) và nhiều lợi điểm khác. Sau đây là ví dụ 1 trang XML được module tin tức của tôi tự động sinh ra: (c) bmhung 22 0 546 Bùi Mạnh Hưng -1 130 Tổng hợp KQGD tuần từ 24-28/3 sàn HASTC This is description of artilce ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 27 This is content of article 22 False 1 3/30/2008 5:47:58 PM 3/30/2008 5:47:58 PM 3/30/2008 5:47:58 PM 4.2.5 XSL thêm dáng điệu cho XML Thoạt đầu người ta dùng CSS (Cascading Style Sheet), rất thông dụng cho các trang Web, để làm phương tiện diễn tả cách trình bày một trang XML. Nhưng sau đó XSL đã mang lại một ngôn ngữ về sự trình bày rất mạnh mẽ và uyển chuyển. Thật ra chính XSL cũng là một ngôn ngữ lập trình nên chẳng những nó biến đổi Style của trang XML mà còn quyết định thứ nào được display và display theo thứ tự nào nữa. Những trang XSL định nghĩa những style sheets (trang dáng điệu) để ta có thể áp dụng vào những tài liệu XML. Một style sheet chứa những chỉ dẫn (instructions) để bảo một XML làm cách nào phát sinh (generate) ra một tài liệu trình duyệt kết quả cho những dữ liệu trong một tài liệu XML. Ví dụ 1 file xsl được tôi sử dụng để trình bày tin tức cho xml trên: <xsl:stylesheet xmlns:xsl="" version="1.0"> ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 28 <xsl:value- of="" select='ArticleID'/>&ModuleID=<xsl:value- of select='ModuleID'/> /mysecurities/Portals/0/ArticleImages/NoPhotoAdded.jpg <xsl:value-of select='Description' disable-output-='' escaping='yes'/> ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 29 4.3 Giới thiệu Webservice Với Web Service, công nghệ chủ yếu dựa vào XML\SOAP, các hệ thống các ứng dụng có thể liên tác nhau một cách dễ dàng. Chúng ta có thể hình dung có một nhà sản xuất phần mềm xây dựng một dịch vụ web như dịch Anh Việt chẳng hạn và công bố lên một nơi cho đăng ký dịch vụ (giống như một chợ bán dịch vụ). Sau đó chúng ta tìm đến "chợ" đó, hỏi mua và nhận được một bản mô tả về dịch vụ cho biết cách sử dụng dịch vụ như thế nào. Cuối cùng là viết chương trình để sử dụng nó. Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạng trong cách thức hoạt động của các dịch vụ B2B (Business to Business) và B2C (Business to Customer). Giá trị cơ bản của dịch vụ Web dựa trên việc cung cấp các phương thức theo chuẩn trong việc truy nhập đối với hệ thống đóng gói và hệ thống kế thừa. Các phần mềm được viết bởi những ngôn ngữ lập trình khác nhau và chạy trên những nền tảng khác nhau có thể sử dụng dịch vụ Web để chuyển đổi dữ liệu thông qua mạng Internet theo cách giao tiếp tương tự bên trong một máy tính. Tuy nhiên, công nghệ xây dựng dịch vụ Web không nhất thiết phải là các công nghệ mới, nó có thể kết hợp với các công nghệ đã có như XML, SOAP, WSDL, UDDI… Với sự phát triển và lớn mạnh của Internet, dịch vụ Web thật sự là một công nghệ đáng được quan tâm để giảm chi phí và độ phức tạp trong tích hợp và phát triển hệ thống. Chúng ta sẽ xem xét các dịch vụ Web từ mức khái niệm đến cách thức xây dựng. 4.3.1 Khái niệm webservice Dịch vụ web (tiếng Anh: Web service) là sự kết hợp các máy tính cá nhân với các thiết bị khác, các cơ sở dữ liệu và các mạng máy tính khác để tạo thành một cơ cấu tính toán ảo mà người sử dụng có thể làm việc thông qua các trình duyệt mạng. Bản thân các dịch vụ này sẽ chạy trên các máy phục vụ trên nền Internet chứ không phải là các máy tính cá nhân, do vậy có thể chuyển các chức nǎng từ máy tính cá nhân lên Internet. Người sử dụng có thể làm việc với các dịch vụ thông qua bất kỳ loại máy nào có hỗ trợ Web Service và có truy cập Internet, kể cả các thiết bị cầm tay. Do đó các Web Service sẽ làm Internet biến đổi thành một nơi làm việc chứ không phải là một phương tiện để xem và tải nội dung. Điều này cũng sẽ đưa các dữ liệu và các ứng dụng từ máy tính cá nhân tới các máy phục vụ của một nhà cung cấp dịch vụ Web. Các máy phục vụ này cũng cần trở thành nguồn cung cấp cho người sử dụng cả về độ an toàn, độ riêng tư và khả nǎng truy nhập. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 30 Các máy phục vụ ứng dụng sẽ là một phần quan trọng của các Web Service bởi vì thường thì các máy phục vụ này thực hiện các hoạt động ứng dụng phức tạp dựa trên sự chuyển giao giữa người sử dụng và các chương trình kinh doanh hay các cơ sở dữ liệu của một tổ chức nào đó. Một số nhà quan sát ngành công nghiệp này cho rằng Web Service không thực sự là một khái niệm mới và phản ánh một phần không nhỏ khái niệm mạng máy tính vốn đã trở nên quen thuộc trong nhiều nǎm qua. Web Service chủ yếu dựa trên một lời gọi thủ tục từ xa không chặt chẽ mà có thể thay thế các lời gọi thủ tục từ xa chặt chẽ, đòi hỏi các kết nối API phù hợp đang phổ biến hiện nay. Dịch vụ Web sử dụng XML chứ không phải C hay C++, để gọi các quy trình. Tuy nhiên các chuyên gia khác lại cho rằng Web Service là một dạng API dựa trên phần mềm trung gian, có sử dụng XML để tạo phần giao diện trên nền Java 2 (J2EE) hay các server ứng dụng .NET. Giống như các phần mềm trung gian, Web Service sẽ kết nối server ứng dụng với các chương trình khách hàng. a) Đặc điểm Dịch vụ Web cho phép client và server tương tác được với nhau ngay cả trong những môi trường khác nhau. Ví dụ, đặt Web server cho ứng dụng trên một máy chủ chạy hệ điều hành Linux trong khi người dùng sử dụng máy tính chạy hệ điều hành Windows, ứng dụng vẫn có thể chạy và xử lý bình thường mà không cần thêm yêu cầu đặc biệt để tương thích giữa hai hệ điều hành này. Phần lớn kĩ thuật của Dịch vụ Web được xây dựng dựa trên mã nguồn mở và được phát triển từ các chuẩn đã được công nhận, ví dụ như XML. Một Dịch vụ Web bao gồm có nhiều mô-đun và có thể công bố lên mạng Internet. Là sự kết hợp của việc phát triển theo hướng từng thành phần với những lĩnh vực cụ thể và cơ sở hạ tầng Web, đưa ra những lợi ích cho cả doanh nghiệp, khách hàng, những nhà cung cấp khác và cả những cá nhân thông qua mạng Internet. Một ứng dụng khi được triển khai sẽ hoạt động theo mô hình client- server. Nó có thể được triển khai bởi một phần mềm ứng dụng phía server ví dụ như PHP, Oracle Application server hay Microsoft.Net… Ngày nay dịch vụ Web đang rất phát triển, những lĩnh vực trong cuộc sống có thể áp dụng và tích hợp dịch vụ Web là khá rộng lớn như dịch vụ chọn lọc và phân loại tin tức (hệ thống thư viện có kết nối đến web portal để tìm kiếm các thông tin cần thiết); ứng dụng cho các dịch vụ du lịch (cung cấp giá vé, thông tin về địa điểm…), các đại lý bán hàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 31 mạng…hay dịch vụ giao dịch trực tuyến (cho cả B2B và B2C) như đặt vé máy bay, thông tin thuê xe… Các ứng dụng có tích hợp dịch vụ Web đã không còn là xa lạ, đặc biệt trong điều kiện thương mại điện tử đang bùng nổ và phát triển không ngừng cùng với sự lớn mạnh của Internet. Bất kì một lĩnh vực nào trong cuộc sống cũng có thể tích hợp với dịch vụ Web, đây là cách thức kinh doanh và làm việc có hiệu quả bởi thời đại ngày nay là thời đại của truyền thông và trao đổi thông tin qua mạng. Do vậy, việc phát triển và tích hợp các ứng dụng với dịch vụ Web đang được quan tâm phát triển là điều hoàn toàn dễ hiểu b) Ưu điểm + Dịch vụ Web cung cấp khả năng hoạt động rộng lớn với các ứng dụng phần mềm khác nhau chạy trên những nền tảng khác nhau. + Sử dụng các giao thức và chuẩn mở. Giao thức và định dạng dữ liệu dựa trên văn bản (text), giúp các lập trình viên dễ dàng hiểu được. + Nâng cao khả năng tái sử dụng. + Thúc đẩy đầu tư các hệ thống phần mềm đã tồn tại bằng cách cho phép các tiến trình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web. + Tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các thành phần trong hệ thống, dễ dàng cho việc phát triển các ứng dụng phân tán. + Thúc đẩy hệ thống tích hợp, giảm sự phức tạp của hệ thống, hạ giá thành hoạt động, phát triển hệ thống nhanh và tương tác hiệu quả với hệ thống của các doanh nghiệp khác. c) Nhược điểm + Những thiệt hại lớn sẽ xảy ra vào khoảng thời gian chết của Dịch vụ Web, giao diện không thay đổi, có thể lỗi nếu một máy khách không được nâng cấp, thiếu các giao thức cho việc vận hành. + Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt. + Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật. 4.3.2 Kiến trúc webservice Dịch vụ Web gồm có 3 chuẩn chính: SOAP (Simple Object Access Protocol), WSDL (Web Service Description Language) và UDDI (Universal Description, Discovery, and Integration). Hình 1 mô tả chồng giao thức của dịch vụ Web, trong đó UDDI được sử dụng để đăng ký và khám phá dịch vụ Web đã được miêu tả cụ thể trong WSDL. Giao tác UDDI sử dụng SOAP để nói chuyện với UDDI server, sau đó các ứng dụng SOAP ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 32 yêu cầu một dịch vụ Web. Các thông điệp SOAP được gửi đi chính xác bởi HTTP và TCP/IP. Chồng giao thức dịch vụ Web là tập hợp các giao thức mạng máy tính được sử dụng để định nghĩa, xác định vị trí, thi hành và tạo nên dịch vụ Web tương tác với những ứng dụng hay dịch vụ khác. Chồng giao thức này có 4 thành phần chính: - Dịch vụ vận chuyển (Service Transport): có nhiệm vụ truyền thông điệp giữa các ứng dụng mạng, bao gồm những giao thức như HTTP, SMTP, FTP, JSM và gần đây nhất là giao thức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP). - Thông điệp XML: có nhiệm vụ giải mã các thông điệp theo định dạng XML để có thể hiểu được ở mức ứng dụng tương tác với người dùng. Hiện tại, những giao thức thực hiện nhiệm vụ này là XML- RPC, SOAP và REST. - Mô tả dịch vụ: được sử dụng để miêu tả các giao diện chung cho một dịch vụ Web cụ thể. WSDL thường được sử dụng cho mục đích này, nó là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Dịch vụ Web sẽ sử dụng ngôn ngữ này để truyền tham số và các loại dữ liệu cho các thao tác và chức năng mà dịch vụ Web cung cấp. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 33 - Khám phá dịch vụ: tập trung dịch vụ vào trong một nơi được đăng ký, từ đó giúp một dịch vụ Web có thể dễ dàng khám phá ra những dịch vụ nào đã có trên mạng, tốt hơn trong việc tìm kiếm những dịch vụ khác để tương tác. Một dịch vụ Web cũng phải tiến hành đăng ký để các dịch vụ khác có thể truy cập và giao tiếp. Hiện tại, UDDI API thường được sử dụng để thực hiện công việc này. Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với công nghệ chuẩn là SOAP. SOAP là giao thức nằm giữa tầng vận chuyển và tầng mô tả thông tin về dịch vụ, cho phép người dùng triệu gọi một dịch vụ từ xa thông qua một thông điệp XML. Ngoài ra, để các dịch vụ có tính an toàn, toàn vẹn và bảo mật thông tin, trong kiến trúc dịch vụ Web, chúng ta có thêm các tầng Policy, Security, Transaction, Management. 4.3.3 Ứng dụng webservice Tôi sử dụng webservice cho module vẽ biểu đồ chứng khoán và module cung cấp kết quả giao dịch chứng khoán, thống kê top các cổ phiếu tăng giá nhiều nhất, top các cổ phiếu giảm giá nhiều nhất trên 2 sàn HOSTC và HASTC. Việc sử dụng webservice sẽ giúp tôi đạt được 1 số lợi ích chính sau: - Giảm khối lượng xử lý trong 1 máy (một máy A từ xa xử lý sau đó trả về dữ liệu để máy B sử dụng sau đó hiển thị kết quả) - Triển khai hệ thống tới một công ty chứng khoán mới mà công ty chứng khoán đó chưa có dữ liệu thì có thể sử dụng webservice để hiển thị dữ liệu mà vẫn đảm bảo đầy đủ dữ liệu. - Khi sử dụng webservice thì 2 phần mềm viết bằng 2 ngôn ngữ khác nhau vẫn có thể giao tiếp với nhau, hoặc 2 nền tảng khác nhau cũng vẫn có thể giao tiếp với nhau (Ví dụ Java với .Net), thậm chí 2 phần mềm viết trên 2 hệ điều hành khác nhau vẫn có thể giao tiếp với nhau (Ví dụ Window với Linux) 4.4 Giới thiệu Ajax 4.4.1 Khái niệm Ajax a) Lịch sử Ajax Công nghệ Ajax gốc được Microsoft phát minh từ thập niên 90 trên nền ngôn ngữ JavaScript và nhiều chuẩn web khác. b) Khái niệm Ajax Ajax là từ viết tắt của Asynchronous JavaScript and XML. Ajax không phải là một công nghệ đơn nhất mà nó là tập hợp của các công nghệ tạo nên một cách tiếp cận mới trong viêc thiết kế web. Ý nghĩa của ajax là tạo một trang web có sử phản ứng nhanh ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 34 hơn khi có sư thay đổi dữ liệu. Công nghệ ajax sẽ giúp cho toàn bộ trang web không bị reload lại khi có sự thay đổi. Ajax bao gồm các công nghệ như: - HTML / XHTML : được sử dụng để xây dựng giao diện của trang web. - CSS : Cung cấp định dạng cho XHTML - DOM : Chức năng của việc load trang web - XML : Định dạng của việc trao đổi dữ liệu - XSTL : XML thành XHTML - XMLHttp : môi trường truyền thông tin chính - JavaScript : Ngôn ngữ kịch bản thường được dung cho công cụ Ajax. Trên thực tế, tất cả các công nghệ này đều được sử dụng trong ajax nhưng có 3 công nghệ chính bắt buộc phải sử dụng: HTML/XHTML, DOM, XML và JavaScript. HTML/XHTML là sự cần thiết để hiện thị thông tin, trong khi DOM là sư cần thiết để thay đổi của một trang XHTML không có reload nó. Phần cuối cùng, JavaScript, cần thiết để bắt đầu sự truyền thong giữa client và server và vân dụng DOM để cập nhật trang web. Các công nghệ khác được sử dụng để hỗ trợ cho Ajax solutions, nhưng không cần thiết. c) Ajax hoạt động như thế nào? Điểm khác biệt cơ bản nhất của công nghệ này là việc xử lý thông tin được thực hiện trên máy thân chủ (Client) thay vì máy phục vụ (Server) như cách truyền thống. Máy chủ chỉ làm một việc đơn giản là nhận thông tin từ máy khách và trả các dữ liệu về cho máy khách. Máy khách xử lý sơ bộ thông tin của người dùng nhập vào, sau đó chuyển về máy chủ rồi nhận dữ liệu từ máy chủ và xử lý để hiển thị cho người dùng. Từ lâu, mọi người vẫn tưởng tượng ứng dụng máy tính rồi sẽ được lưu và chạy hoàn toàn trên web thay vì nằm bó buộc trong ổ cứng máy tính. Dù vậy, điều đó vẫn chưa xảy ra vì ứng dụng web bị hạn chế bởi nguyên lý rằng tất cả các thao tác phải được thực hiện thông qua HTTP (HyperText Transfer Protocol – Giao thức truyền tải qua siêu liên kết). Những hoạt động của người sử dụng trên trang web sẽ tạo ra một yêu cầu HTTP tới server. Máy chủ sẽ thực hiện một số khâu sử lý như lấy lại tài liệu, tính toán, kiểm tra sự hợp lệ của thông tin, sửa đổi bộ nhớ, sau đó gửi lại một trang HTML hoàn chỉnh tới máy khách. Về mặt kỹ thuật, phương pháp này nghe có vẻ hợp lý nhưng cũng khá bất tiện và tốn thời gian, bởi khi server đang thực hiện vai trò của nó thì người dung phải chờ đợi server thực hiện xong. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 35 Để khắc phục hạn chế trên, các chuyên gia phát triển giới thiệu hình thức trung gian – cơ chế sử lý Ajax giữa máy khách và máy chủ. Điều này giống như việc tăng thêm một lớp giữa cho ứng dụng để giảm bớt quá trình “đi lại” của thông tin và giảm thời gian phản ứng. Thay vì phải tải lại (refresh) toàn bộ môt trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác. Vì thế, khi duyệt một trang hỗ trợ Ajax,người sử dụng sẽ không bao giờ thấy một trang web trống và biểu tượng đồng hồ cát - dấu hiệu cho thấy máy chủ đang thực hiện nhiệm vụ. Khi một ứng dụng có hỗ trợ Ajax và người dùng thao tác trên nó thì nó sẽ hoạt động như sau: - Ajax thực hiện tương tác với máy chủ bằng cách sử dụng đối tượng XMLHttpRequest, nhận kết quả về dưới dạng XML và phân tích kết quả bằng công nghệ DOM. -Tương tác giữa Ajax và giao diện người dùng được thực hiện thông qua các mã Javascript và XHTML + CSS. Dưới đây là mô hình thể hiện cơ chế làm viêc của Ajax: ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 36 Một trong những điểm mấu chốt của công nghệ Ajax là bạn không tương tác trực tiếp với máy chủ như cách truyền thống mà là qua một lớp trung gian của Ajax. Vậy khi thao tác qua một lớp trung gian thì sẽ làm cho cơ chế hoạt động chậm hơn nữa quá trình tương tác? Thắc mắc trên là hoàn toàn có lý, tuy nhiên, thực tế lại ngược lại: sử dụng Gmail bạn có cảm giác mọi thứ nhanh hơn. Lý do là: 1) Không phải lúc nào bạn cũng cần phải tương tác với máy chủ. Như trong trường hợp của Gmail, một khi giao diện của Gmail đã được tải về xong (để ý khoảng thời gian ngắn từ khi bạn đăng nhập cho đến khi giao diện của Gmail xuất hiện) thì những tác vụ như chuyển từ thư mục này sang xem thư mục khác không nhất thiết phải hỏi lại máy chủ (tất nhiên với điều kiện dữ liệu đã có sẵn). 2) Bằng cách chỉ nhận những thông tin cần thiết (ở dạng XML), dung lượng truyền tải giữa máy tính của bạn và máy chủ sẽ giảm đi rất nhiều. Sau khi bạn giao diện đã được tải về 1 lần, Ajax sẽ không cần phải tải lại toàn bộ giao diện đó mỗi khi tương tác với ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 37 máy chủ. Thay vào đó, Ajax sẽ gởi yêu cầu đến máy chủ và nhận kết quả từ máy chủ về những gì đã thay đổi sau khi máy chủ thực hiện yêu cầu đó. Ajax sau đó sẽ thông báo cho phần giao diện (thông qua các lời gọi Javascript) thực hiện các thay đổi tương ứng trên giao diện. 3) Tương tác giữa phần giao diện và Ajax là tương tác nội bộ bên trong trình duyệt, giúp cho các thay đổi sẽ được thể hiện gần như tức thì. Mô hình sau thể hiện những gì diễn ra giữa Giao diện ứng dụng web - Ajax - và máy chủ: Mọi thao tác của người sử dụng sẽ gửi lệnh JavaScript tới bộ sử lý Ajax thay vì tạo một yêu cầu HTTP( HTTP Request) và truy vấn tới máy chủ. Sau đó, Ajax sẽ truyền yêu cầu tới máy chủ một cách không đồng bộ, thông thường sử dụng XML, mà không làm gián đoạn sự tương tác của người dùng và ứng dụng web. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 38 4.4.2 Các ứng dụng Ajax phổ biến Google Suggest hiển thị các thuật ngữ gợi ý gần như ngay lập tứng khi người dung chưa gõ xong bộ khoá. Còn với Googe Maps, mọi người có thể theo dõi những thay đổi, xê dịch, kéo thả bản đồ như trên môi trường desktop. Google Suggest và Googe Maps là 2 ví dụ nổi bật về phương pháp ứng dụng web thế hệ mới. Ngoài ra còn có các trang web ứng dụng Ajax như: như trang chia sẻ hình ảnh Flickr hay công cụ tìm kiếm A9.com (của Amazon). Ngoài ra, một số công ty trên thế giới cũng đang triển khai các ứng dụng có hỗ trợ Ajax. 4.4.3 Hàm javascript dùng cho kỹ thuật ajax function retrieveURL_POST(url,data) { if (window.XMLHttpRequest) // Xét trường hợp trình duyệt ko phải là IE { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open('POST', url, true); req.setRequestHeader('Content-Type', 'application/x-www- form- urlencoded'); req.send(data); } else if (window.ActiveXObject) // Xét trưÝng hợp trình duyệt là IE { req = new ActiveXObject('Microsoft.XMLHTTP') if (req) { req.onreadystatechange = processReqChange; req.open('POST', url, true); req.setRequestHeader('Content-Type', 'application/x-www- form-urlencoded'); req.send(data); } } } function processReqChange() { if (req.readyState == 4) // Trả lời khi dữ liệu đã load xong ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 39 { if (req.status == 200) // Kiểm tra trạng thái có ok không (200 trong bảng trạng thái của XMLHttpRequest là ok) { // Đưa dữ liệu vào main_display (id của thẻ div) document.getElementById("main_display").innerHTML = req.responseText; } else { alert('There was a problem retrieving the XML data: ' + req.responseText); } } } 4.4.4 Giới thiệu Asp.net Ajax a) Kiến trúc của asp.net ajax Asp.Net ajax bao gồm Microsoft Ajax Library dung cho phía Client và ASP.NET Ajax Extensions dùng phía server. Thêm vào đó chúng ta có thể sử dụng ASP.NET AJAX Control Toolkit và ASP.NET AJAX Futures. Đây là mô hình kiến trúc: ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 40 Mô hình trên cho thấy trong thư viện Microsoft Ajax hỗ trợ việc tạo các component phía client, hỗ trợ các trình duyệt, networking và Core Services. Mô hình trên cũng cho ta thâý các chức năng của ASP.NET Ajax Extensions hỗ trợ Script Support, Web Services, Application Services, Server Controls. b) Asp.net ajax control toolkit ASP.NET AJAX Control Toolkit là tập hợp các mẫu ví dụ mà chỉ ra một vài kinh nghiệm mà bạn có thể tạo các điều khiển và sự mở rộng của ajax. Có thể download bộ AJAX Control Toolkit ở website c) Tính năng Asp.net ajax community-supported ASP.NET AJAX Community-supported Futures cung cấp các nét đặc trưng trong phần lõi của ASP.NET AJAX. Và nó không có trong bộ Microsoft ASP.NET AJAX release. Nó cũng bao gồm các điều khiển mở rộng hỗ trợ cho việc định nghĩa cú pháp phía client (xml- script) và hơn thế nữa. Có thể down load bộ ASP.NET AJAX Community-supported Futures Releases ở website 4.4.5 Ứng dụng kỹ thuật AJAX Kỹ thuật Ajax mà tôi trình bày phía trên sẽ được demo trong bảng giá trực tuyến (một thành phần trong hệ thống portal chứng khoán ở chuyên đề này) và ở một số module khác. Kỹ thuật này sẽ giúp tôi giải quyết được vấn đề lớn về tốc độ tải web: - Giúp bảng giá chỉ tải lên và hiển thị những mã chứng khoán được chọn - Thay đổi giá trị của các ô có thay đổi mà ko phải tải lại toàn bộ trang. - Cập nhật bảng giá trực tuyến một cách nhanh chóng, liên tục. - Giảm bớt quá trình “đi lại” của thông tin và giảm thời gian phản ứng. Thay vì phải tải lại (refresh) toàn bộ môt trang, nó chỉ nạp những thông tin được thay đổi, còn giữ nguyên các phần khác. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 41 5 Mô tả hệ thống 5.1 Kiến trúc tổng thể 5.1.1 Tổng quan hệ thống Hệ thống được xây dựng trên nền tảng dotnetnuke và 3 giải pháp chính: giải pháp XML&XSL, giải pháp webservice, giải pháp webspider. - Nền tảng dotnetnuke giúp hệ thống được xây dựng nhanh hơn, tận dụng được những thành phần cơ bản trong việc quản trị hệ thống và một số module có sẵn. - Giải pháp XML&XSL giúp cho chúng ta có được một hệ thống website cực kì uyển chuyển về giao diện. - Giải pháp webservice, ajax giúp đưa ra những dịch vụ tiện ích của hệ thống, sử dụng dịch vụ từ website khác và tối ưu tốc độ hiển thị. - Giải pháp webspider giúp cho hệ thống có khả năng tự động hóa cao, tự động đưa các thông tin từ các website khác về xử lý sau đó hiển thị phía người dùng. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 42 5.1.2 Kiến trúc đa tầng · Tầng trình bày (presentation): chứa các cấu phần xử lý giao diện người dùng và tương tác với người dùng. · Tầng logic nghiệp vụ (bussiness logic): chứa các cấu phần phối hợp với nhau đê giải quyết các vấn đề nghiệp vụ. · Tầng dữ liệu (data): được sử dụng để truy xuất cơ sở dữ liệu Ưu điểm của việc chia tách ứng dụng thành các tầng logic khác nhau là tách biệt mỗi phần với những phần khác. Sự tách biệt này giúp nhà phát triển có thể có nhiều sự thay đổi ở một tầng mà hạn chế được tối đa việc ảnh hưởng tới các tầng khác. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 43 5.1.3 Sơ đồ triển khai hệ thống ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 44 5.2 Giải pháp XML&XSL 5.2.1 Sơ đồ giải pháp XML&XSL 5.2.2 Mô tả hoạt động giải pháp XML&XSL - Người dùng yêu cầu xem thông tin - Luồng đi của yêu cầu sẽ đi theo đường màu tím trên hình vẽ + Module HungBM.Articles sẽ gửi yêu cầu lấy thông tin tới bộ xử lý ArticleXML + Bộ xử lý ArticleXML gửi yêu cầu lấy dữ liệu tới lớp DBArticle + Lớp DBArticle sẽ gọi câu StoreProcedure tương ứng với yêu cầu + StoreProcedure thực hiện lệnh lấy dữ liệu từ database - Hệ thống sẽ trả lại thông tin theo yêu cầu của người dùng - Luồng đi của dữ liệu trả lại sẽ đi theo đường màu xanh + Dữ liệu được StoreProcedure lấy ra từ Database. + Dữ liệu trả về từ câu StoreProcedure sẽ được lớp DBArticle đưa tới bộ xử lý ArticleXML. + Bộ xử lý ArticleXML đưa dữ liệu ra XML ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 45 - Module HungBM.Article sẽ kết hợp file XML và XSL đưa dữ liệu ra HTML và hiển thị lên màn hình - Mã lệnh giúp lấy dữ liệu từ XML và trình bày bằng XSL // Gửi yêu cầu lấy dữ liệu XML request = WebRequest.Create(m_strUrlWeb + "/ArticlesXML.aspx?ModuleID=" + strModuleID + "&NumberOfArticle=" + m_strNumberOfArticle + "&ctl=GetArticles"); // Lấy dữ liệu trả về WebResponse response = request.GetResponse(); Stream responseStream = response.GetResponseStream(); // Đọc luồng Response sử dụng XmlTextReader XmlTextReader reader = new XmlTextReader(responseStream); // Khai báo đường dẫn tới XML cho đối tượng xmlArticle XPathDocument xml_doc = new XPathDocument(reader); xmlArticle.XPathNavigator = xml_doc.CreateNavigator(); // Đặt đường dẫn tới file XSL string strPath = DotNetNuke.Common.Globals.ApplicationMapPath; FileInfo fileXSL = new FileInfo(strPath+"/Portals/_default/XSL/"+m_strFileXSL); if(fileXSL.Exists) xmlArticle.TransformSource = "~/Portals/_default/XSL/"+m_strFileXSL; else xmlArticle.TransformSource = "~/DesktopModules/HungBM.Articles/ArticleLargeList.xsl"; 5.2.3 Sơ đồ tổng quan các chức năng giải pháp XML&XSL Mô hình tổng thế chức năng của hệ thống được mô tả như sơ đồ dưới đây. Chi tiết từng chức năng cũng như các tác nhân tham gia vào chức năng đó sẽ được mô tả chi tiết ở phần sau. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 46 a) Các tác nhân tham gia hệ thống - Người sử dụng internet: Là những người có quyền hạn thấp nhất trong mô hình hệ thống này. Người sử dụng chỉ có quyền xem thông tin. - Biên tập viên: Là người có quyền đăng thông tin. - Người phê duyệt: Là người có quyền cho phép đăng thông tin, sửa thông tin, xóa thông tin, duyệt thông tin để đưa ra hiển thị cho người dùng. - Quản trị hệ thống: Ngoài các quyền như của người phê duyệt thì quản trị hệ thống còn có quyền xem các định dạng xml&xsl, cấu hình module. - Quyền quản trị host: Ngoài các quyền như quản trị hệ thống thì quản trị host có thể thêm, xóa, sửa định dạng file xsl. Nguoi dung internet Bien tap vien Nguoi phe duyet Quan tri he thong Xem thong tin Them thong tin Sua thong tin Xoa thong tin Duyet thong tin Xem dang XML Xem XSL Cau hinh XSL Quan tri host Cau hinh module ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 47 b) Các tác chức năng chính của hệ thống - Chức năng thêm thông tin: cho phép người có quyền này thêm thông tin mới vào cơ sở dữ liệu. - Chức năng sửa thông tin: cho phép người có quyền này sửa thông tin đã đưa lên. - Chức năng xóa thông tin: cho phép người có quyền phê duyệt xóa thông tin khỏi cơ sở dữ liệu - Chức năng duyệt thông tin: cho phép người có quyền này duyệt thông tin hiển thị chính thức tại phía người dùng. - Xem thông tin: cho phép người dùng xem thông tin tùy theo quyền của hệ thống. - Xem thông tin dạng xml: cho phép quản trị viên xem thông tin dưới dạng xml trên trình duyệt web. - Xem xsl: cho phép quản trị viên xem thông tin dưới dạng xsl trên trình duyệt web. - Cấu hình file xsl: cho phép quản trị host thêm, sửa, xóa file xsl. - Cấu hình module: cho phép quản trị hệ thống cấu hình các chức năng của module như: container, icon, cho phép hiển thị, lựa chọn file xsl hiển thị, lựa chọn số lượng thông tin hiển thị, có thể chọn thông tin từ nguồn khác để hiển thị. 5.2.4 Chi tiết đặc tả chức năng UC #0001 > Độ phức tạp: Trung bình Mô tả Chức năng này dùng để thêm thông tin mới vào hệ thống Tác nhân Chính Biên tập viên Phụ Người phê duyệt, quản trị hệ thống, quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền thêm thông tin. Hậu điều kiện Thành công Nếu thành công thì thêm mới thông tin vào hệ thống. Lỗi Hệ thống không được thêm thông tin mới. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Biên tập viên chọn chức năng thêm thông tin ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 48 - Hệ thống hiển thị form thêm thông tin và chờ người dùng nhập - Biên tập viên nhập thông tin vào form của hệ thống - Biên tập viên click vào nút thêm thông tin. - Hệ thống kiểm tra tính hợp lệ của dữ liệu nhập vào + Nếu dữ liệu không hợp lệ thì hệ thống hiển thị thông báo lỗi cho người dùng và chờ người dùng nhập lại thông tin (chưa chuyển sang bước tiếp theo) + Nếu dữ liệu hợp lệ thì hệ thống chuyển sang bước tiếp theo - Hệ thống thêm thông tin vào cơ sở dữ liệu - Hệ thống quay trở lại trang trước khi nhập thông tin. Sơ đồ hành động (Activity diagram) Bat Dau Chon chuc nang xem thong tin Nhap thong tin vao form Ket Thuc Them thong tin vao CSDL Xu ly loi Thanh cong Phat hien loi Vao giao dien cua chuc nang Quay lai Khong quay lai ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 49 Giao diện minh họa ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 50 UC #0002 > Độ phức tạp: Trung bình Mô tả Chức năng này dùng để sửa thông tin đã có trong hệ thống Tác nhân Chính Người phê duyệt Phụ Quản trị hệ thống, quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền sửa thông tin. Hậu điều kiện Thành công Nếu thành công thì cập nhật lại thông tin vào hệ thống. Lỗi Hệ thống không cập nhật được thông tin. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Người phê duyệt chọn chức năng sửa thông tin - Hệ thống hiển thị form chứa thông tin cũ và chờ người phê duyệt sửa thông tin - Người phê duyệt sửa thông tin trong form của hệ thống - Người phê duyệt click vào nút sửa thông tin. - Hệ thống kiểm tra tính hợp lệ của thông tin mới sửa + Nếu dữ liệu không hợp lệ thì hệ thống hiển thị thông báo lỗi cho người dùng và chờ người dùng nhập lại thông tin (chưa chuyển sang bước tiếp theo) + Nếu dữ liệu hợp lệ thì hệ thống chuyển sang bước tiếp theo - Hệ thống cập nhật thông tin vào cơ sở dữ liệu - Hệ thống quay trở lại trang trước khi sửa thông tin. Sơ đồ hành động (Activity diagram) ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 51 Bat Da u C hon chuc nang sua thong tin S ua thong tin trong form Ket T huc C ap nha t thong tin vao C S D L X u ly lo i Thanh cong P ha t hien lo i V ao g iao d ien cua chuc nang Quay la i K hong quay la i ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 52 Giao diện minh họa ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 53 UC #0003 > Độ phức tạp: Thấp Mô tả Chức năng này dùng để xóa thông tin đã có trong hệ thống Tác nhân Chính Người phê duyệt Phụ Quản trị hệ thống, quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền xóa thông tin. Hậu điều kiện Thành công Nếu thành công thì xóa thông tin khỏi hệ thống. Lỗi Hệ thống không xóa được thông tin. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Người phê duyệt chọn chức năng xóa thông tin - Hệ thống xác nhận người dùng có thực sự muốn xóa thông tin không. + Nếu người dùng xác nhận là có xóa thì hệ thống chuyển sang bước tiếp theo + Nếu người dùng xác nhận là không xóa thì hệ thống ko xóa thông tin. - Hệ thống xóa thông tin khỏi cơ sở dữ liệu - Hệ thống thông báo cho người dùng biết việc xóa thông tin đã thực hiện thành công. Sơ đồ hành động (Activity diagram) ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 54 Giao diện minh họa Bat Dau Chon chuc nang xoa thong tin Xac nhan co thuc su muon xoa khong Ket Thuc Xoa thong tin khoi CSDL Khong xoa thong tin Thanh cong That bai ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 55 UC #0004 > Độ phức tạp: Thấp Mô tả Chức năng này dùng để duyệt thông tin đang chờ duyệt hoặc bỏ duyệt thông tin đã đăng. Tác nhân Chính Người phê duyệt Phụ Quản trị hệ thống, quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền duyệt thông tin. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 56 Hậu điều kiện Thành công Nếu thành công thì thông tin sẽ được duyệt nếu đang ở trạng thái chờ duyệt và bỏ duyệt khi đang ở trạng thái đã duyệt. Lỗi Hệ thống không thay đổi trạng thái. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Người phê duyệt chọn chức năng duyệt thông tin - Hệ thống đổi trạng thái duyệt tin (nếu đã duyệt thì chuyển thành chưa duyệt, nếu chưa duyệt thì chuyển thành đã duyệt). - Hệ thống thông báo cho người dùng biết việc duyệt thông tin đã thực hiện thành công. Sơ đồ hành động (Activity diagram) Bat Dau Chon chuc nang duyet thong tin Ket Thuc Thay doi trang thai duyet Khong thay doi trang thai duyet Thanh cong That bai ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 57 Giao diện minh họa UC #0005 > Độ phức tạp: Trung bình Mô tả Chức năng này dùng để xem thông tin dưới dạng xml trên trình duyệt web. Tác Chính Quản trị hệ thống ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 58 nhân Phụ Quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trị hệ thống. Hậu điều kiện Thành công Nếu thành công thì thông tin sẽ hiển thị dạng xml trên trình duyệt web. Lỗi Hệ thống không hiển thị được thông tin mà đưa ra thông báo lỗi. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Người phê duyệt chọn chức năng xem dạng xml - Hệ thống hiển thị xử lý thông tin lấy từ cơ sở dữ liệu sau đó hiển thị xml phía client Sơ đồ hành động (Activity diagram) Bat Dau Chon chuc nang xem dang xml Ket Thuc Hien thi du lieu dang xml tren trinh duyet Thong bao loi la khong hien thi duoc Thanh cong That bai ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 59 Giao diện minh họa UC #0006 > Độ phức tạp: Trung bình Mô tả Chức năng này dùng để xem xsl trên trình duyệt web. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 60 Tác nhân Chính Quản trị hệ thống. Phụ Quản trị host. Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trị hệ thống. Hậu điều kiện Thành công Nếu thành công thì thông tin sẽ hiển thị dạng xsl trên trình duyệt web. Lỗi Hệ thống không hiển thị được thông tin mà đưa ra thông báo lỗi. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Người phê duyệt chọn chức năng xem xsl - Hệ thống hiển thị file xsl trên trình duyệt web. Sơ đồ hành động (Activity diagram) Bat Dau Chon chuc nang xem file xsl Ket Thuc Hien thi noi dung file xsl tren trinh duyet Thong bao loi la khong hien thi duoc Thanh cong That bai ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 61 Giao diện minh họa UC #0007 > Độ phức tạp: Trung bình Mô tả Cho phép quản trị hệ thống cấu hình các chức năng của module như: container, icon, cho phép hiển thị, lựa chọn file xsl hiển thị, lựa chọn số lượng thông tin hiển thị, có thể chọn thông tin từ nguồn khác để hiển thị. Tác nhân Chính Quản trị hệ thống Phụ Quản trị host Tiền điều kiện Nếu muốn sử dụng chức năng này thì cần phải đăng nhập vào hệ thống và có quyền quản trị hệ thống. Hậu điều Thành công Nếu thành công thì hệ thống sẽ được cấu hình module. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 62 kiện Lỗi Hệ thống không thay đổi trạng thái cấu hình module và thông báo lỗi. ĐẶC TẢ CHỨC NĂNG Luồng sự kiện chính/Kịch bản chính - Quản trị hệ thống chọn chức năng cấu hình module - Hệ thống hiển thị form cấu hình và chờ quản trị chọn cấu hình - Người quản trị cấu hình hệ thống sau đó bấm vào nút cập nhật. - Hệ thống kiểm tra tính hợp lệ của thông tin cấu hình + Nếu thông tin cấu hình hợp lệ thì hệ thống sẽ cập nhật vào cơ sở dữ liệu rồi chuyển sang bước tiếp theo. + Nếu thông tin cấu hình không hợp lệ thì hệ thống sẽ không cập nhật thông tin, hiển thị thông báo lỗi và không chuyển sang bước tiếp theo. - Hệ thống quay về trang trước khi cấu hình. Sơ đồ hành động (Activity diagram) ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 63 Giao diện minh họa Bat Dau Chon chuc nang cau hinh module Ket Thuc Cap nhat cau hinh vao CSDL Thong bao loi Thanh cong That bai Nguoi quan tri cau hinh module ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 64 5.3 Giải pháp Webservice 5.3.1 Sơ đồ giải pháp Webservice ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 65 5.3.2 Mô tả hoạt động giải pháp Webservice - Người dùng yêu cầu xem thông tin - Máy B sẽ gửi yêu cầu lấy thông tin tới máy A Ví dụ: HungBM.FAChartWS.FAChartWS objFAChartWS = new HungBM.FAChartWS.FAChartWS(); objFAChartWS.Url = m_strUrlWeb+" /desktopmodules/HungBM.FAChartWS/HungBM.FAChartWS.asmx"; byte[] arrData = objFAChartWS.GetImageChart(strMapType, strTimeRange, intMapWidth, intMapHeight, mainType, strIndicator1, strIndicator2, strIndicator3, strIndicator4, strBandType, strAvgType1, strAvgType2, strMovAvg1, strMovAvg2); - Máy A làm việc với Database rồi trả kết quả về cho máy B - Máy B nhận dữ liệu từ máy A rồi hiển thị ra màn hình. string strPath = string.Format("{0}/DesktopModules/HungBM.FAChartWS/Chart.png", DotNetNuke.Common.Globals.ApplicationPath); DotNetNuke.Common.Utilities.FileSystemUtils.SaveFile(Server.MapPath(strPath), arrData); imgFinanceAnalysisChart.ImageUrl = strPath; 5.4 Giải pháp Webspider 5.4.1 Sơ đồ giải pháp Webspider ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 66 5.4.2 Mô tả hoạt động giải pháp Webspider - Người dùng yêu cầu xem thông tin - Hệ thống download mã HTML từ website khác về WebClient client = new WebClient(); string s = client.DownloadString(""); - Hệ thống xử lý xâu vừa download sau đó hiển thị lên màn hình. 6 Tổng kết Trong quá trình thực hiện chuyên đề tôi đã thu được nhiều kiến thức, tuy tôi vẫn chưa tìm hiểu được sâu về Dotnetnuke nhưng cũng đã biết làm gói giao diện skin, container, biết cách viết thêm các gói module mới và sử dụng để triển khai thành sản phẩm thực tế. Đồng thời tôi cũng đã ứng dụng một số giải pháp công nghệ mới trong việc xây dựng sản phẩm của mình. 6.1 Kết quả về mặt lý thuyết - Tìm hiểu các khái niệm về portal, xml, xsl, webservice, ajax - Tìm hiểu cách quản trị hệ thống dotnetnuke ở mức cơ bản - Tìm hiểu cách xây dựng skin, container trong dotnetnuke - Tìm hiểu cách cài đặt, sử dụng menu, gói ngôn ngữ cho portal - Tìm hiểu cách xây dựng module mới trong dotnetnuke 6.2 Kết quả về mặt thực tế - Tự thiết kế ra một giao diện cho portal chứng khoán - Xây dựng bộ skin, container cho giao diện đã thiết kế và triển khai sử dụng - Xây dựng các module ứng dụng giải pháp XML&XSL - Xây dựng các module ứng dụng webservice - Xây dựng các module ứng dụng kỹ thuật webspider - Xây dựng bảng giá trực tuyến trên kỹ thuật ajax. - Tham gia triển khai ứng dụng cho một số công ty chứng khoán. 6.3 Kết quả về mặt thực tế - Tìm hiểu sâu hơn về Dotnetnuke - Test lại và hoàn thiện thêm các module - Lập ra quy trình xây dựng hệ thống theo chuẩn. ------------------------------------------------------------------------------------------------------------------------------------ May30,2008,Bùi Mạnh Hưng_A07757,BaoCaoChuyenDeTotNghiep.Net 67 7 Tài liệu tham khảo 7.1 Tài liệu tham khảo tiếng anh - Trang chủ Dotnetnuke: - Bách khoa toàn thư mở: - Website về ajax của Microsoft: www.asp.net/ajax - Tổ chức đi đầu trong tiến trình chuẩn hoá XML - Web site XML của Microsoft: .com/xml - Trang về webservice: 7.2 Tài liệu tham khảo tiếng việt - Trang về công nghệ thông tin - Diễn đàn tin học www.diendantinhoc.com - Cộng đồng .Net Việt Nam: - Trang giới thiệu về XML&XSL khá tốt:

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

  • pdfUnlock-Chuyn 2737873 t7889t nghi7879p Xy d7921ng Portal ch7913ng khoamp225.pdf