Đề tài Tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft .NET Framework

Tài liệu Đề tài Tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft .NET Framework: TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Điền tóm tắt nội dung của ĐATN bằng tiếng Việt. Tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft .NET Framework. Nắm vững được các kỹ thuật lập trình web service và lập trình ngôn ngữ Microsoft.NET Framework. Lập trình ứng dụng: Hệ thống tìm kiếm khách sạn. 1 ABSTRACT OF THESIS Summarise the content of the graduation paper in English. A study on the Web Service structure and the Microsoft.NET Framework technology. Understand the Web Service programming technique and Microsoft.NET Framework programming language. Application programming: The searching system of hotels. CẤU TRÚC BẢNG DỮ LIỆU Bảng dm_ws (danh mục các đối tác, phục vụ cho modul Management Partner) Tên trường Kiểu dữ liệu Diễn giải ID decimal(18, 0) Khóa chính NamePartner nvarchar(250) Tên đối tác (khách sạn) NameWS nvarchar(250) Đường dẫn web services Packet nvarchar(50) Gói dịch vụ (Gold, Silver, Copper), gói dịch vụ thể hiện mức ưu tiên của...

doc44 trang | Chia sẻ: hunglv | Lượt xem: 1312 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft .NET Framework, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Điền tóm tắt nội dung của ĐATN bằng tiếng Việt. Tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft .NET Framework. Nắm vững được các kỹ thuật lập trình web service và lập trình ngôn ngữ Microsoft.NET Framework. Lập trình ứng dụng: Hệ thống tìm kiếm khách sạn. 1 ABSTRACT OF THESIS Summarise the content of the graduation paper in English. A study on the Web Service structure and the Microsoft.NET Framework technology. Understand the Web Service programming technique and Microsoft.NET Framework programming language. Application programming: The searching system of hotels. CẤU TRÚC BẢNG DỮ LIỆU Bảng dm_ws (danh mục các đối tác, phục vụ cho modul Management Partner) Tên trường Kiểu dữ liệu Diễn giải ID decimal(18, 0) Khóa chính NamePartner nvarchar(250) Tên đối tác (khách sạn) NameWS nvarchar(250) Đường dẫn web services Packet nvarchar(50) Gói dịch vụ (Gold, Silver, Copper), gói dịch vụ thể hiện mức ưu tiên của đối tác trong tìm kiếm NumStar Int Hạng (1 sao, 2 sao,.., 5 sao) [Add] nvarchar(250) Địa chỉ Tel varchar(50) Số điện thoại UU_TIEN varchar(1) A, B, C (Mức ưu tiên tương ứng với Packet (Gold, Silver, Copper), dùng để sắp xếp khi liệt kê DANH SÁCH HÌNH MỤC LỤC ĐỒ ÁN MỞ ĐẦU………………………………………………………..7 ĐẶT VẤN ĐỀ 7 NỘI DUNG ĐỀ TÀI 9 CƠ SỞ LÝ THUYẾT…………………………………………10 I/KIẾN TRÚC WEB SERVICES: 10 1.1/Các đặt trưng của Web services 13 1.2/Lợi ích của Web services 14 1.3/Thành phần Web Service 15 1.3. 2.WSDL -Web Services Description Language : 15 1.3.2.1 Tập tin giao diện - Service Interface 17 1.3.2.2. Tập tin thi hành - Service Implementation 19 1.3.3.UDDI - Universal Description , Discovery and Intergration 20 1.3.4. OAP - Simple Object Accesss Protocol 22 1.3.4.1 Đặc trưng SOAP 23 1.3.4.2 Cấu trúc một message theo dạng SOAP 24 1.3.4.3 Những kiểu truyền thông 25 1.3.4.4 Mô hình dữ liệu 26 II/GIỚI THIỆU VỀ CÔNG NGHỆ LẬP TRÌNH: 27 2.1. Giới thiệu về Microsoft. NET Framework 27 2.2 /Giới thiệu về ASP.NET 28 XÂY DỰNG ỨNG DỤNG…………………………………….30 I/HƯỚNG TIẾP CẬN XÂY DỰNG ỨNG DỤNG: 30 1/Phát biểu bài toán: 30 2/Hướng tiếp cận giải quyết bài toán: 31 3/Kĩ thuật chính giải quyết bài toán: 31 II/PHÂN TÍCH THIẾT KẾ HỆ THỐNG: 32 1/Mô tả các Actors và Use cases ………………………………………………………….……..32 2/Mô hình hóa tương tác………………………………………………………………….………34 3/Mô hình cơ sở dữ liệu quan hệ ………………………………………………………….……..39 III/CÀI ĐẶT ỨNG DỤNG: 40 1/Môi trường cài đặt: 40 2/Một số giao diện chương trình: 40 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……………………42 MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC: 42 HƯỚNG PHÁT TRIỂN: 42 LỜI CẢM ƠN Lời đầu tiên cho phép em được gửi tới cô giáo TS. Trương Diệu Linh lời cảm ơn chân thành và lòng biết ơn sâu sắc nhất! Cô là người đã trực tiếp hướng dẫn em từ khi “Thực Tập Tốt Nghiệp” và trong suốt quá trình làm “Đồ Án Tốt Nghiệp”, nhờ sự chỉ bảo ân cần và tận tình của cô mà em có thể hoàn thành đồ án này đúng thời gian quy định. Bên cạnh đó sự quan tâm giúp đỡ của các thầy cô giáo trong bộ môn Mạng Truyền Thông - Trường Đại Học Bách Khoa Hà Nội, những người đã tạo điều kiện thuận lợi cho em cũng là một động lực rất lớn giúp em có thể vượt qua những khó khăn trong quá trình thực hiện đồ án. Em xin được gủi lời cảm ơn chân thành nhất đến toàn thể các thầy cô giáo trong bộ môn Mạng Truyền Thông - Trường Đại Học Bách Khoa Hà Nội. Cuối cùng em xin kính chúc các thầy cô giáo luôn mạnh khỏe, thành đạt và hạnh phúc! Em cũng xin cảm ơn gia đình và bạn bè đã cổ vũ động viên là động lực để em hoàn thành đồ án này. Hà Nội 6 – 2010 Hoàng Cao Minh PHẦN 1 MỞ ĐẦU Đặt Vấn Đề Khi website ra đời nó lập tức thay đổi cách con người giao tiếp và tiếp nhận kiến thức. Ban đầu, website chỉ là các trang HTML cơ bản. Sau đó, ASP, JSP, PHP và những công nghệ khác đã làm biến đổi hoàn toàn các ứng dụng mạng. Với xu thế thương mại hóa điện tử trong kinh doanh hiện nay, website dường như đã trở thành công cụ quảng bá thương hiệu uy tín nhất. Các tài nguyên internet được xây dựng bằng nhiều công nghệ và ngôn ngữ khác nhau dẫn đến vấn đề là tài nguyên ngày càng nhiều nhưng không đồng bộ, các hệ thống không thể truy xuất hoặc cập nhật lẫn nhau. Các ứng dụng desktop không có khả năng khai thác dữ liệu trực tiếp từ các website, website được viết bằng ngôn ngữ này cũng gặp khó khăn khi khai thác dữ liệu từ website được viết bằng ngôn ngữ khác. Từ đây sẽ nảy sinh một yêu cầu là cần có một tài nguyên thống nhất để tất cả mọi hệ thống có thể sử dụng ở mọi lúc mọi nơi. Để giải quyết yêu cầu trên, các nhà khoa học đã xây dựng webservice. Với sự phát triển nhanh chóng của hạ tầng mạng Internet đã làm thay đổi một cách mạnh mẽ mô hình kinh doanh cũng như cách tiếp cận, phát triển và đầu tư các ứng dụng kinh doanh (Enterprise software) của các doanh nghiệp. Các website đơn giản có thể đáp ứng nhu cầu hiện tại, nhưng rồi sắp tới sẽ không đủ sức hấp dẫn khách hàng quay trở lại website của mình. Điều này làm nảy sinh một nhu cầu thiết kế mới sinh động hơn, sáng tạo hơn. Vấn đề đang được các doanh nghiệp quan tâm hàng đầu khi phát triển hệ thống ứng dụng của mình đó là việc tích hợp các ứng dụng nhỏ đã được sử dụng trong doanh nghiệp thành một hệ thống tổng thể, hoàn chỉnh phục vụ mục đích kinh doanh của mình. Điều nảy sinh ở đây đó là các ứng dụng nhỏ sử dụng trong các doanh nghiệp ngày nay được phát triển qua nhiều giai đoạn, sử dụng nhiều công nghệ khác nhau, hoàn toàn không tương thích khiến cho việc kết hợp các ứng dụng này trở thành một hệ thống hoàn chỉnh là hết sức khó khăn. Để giải quyết vấn đề này, nhiều giải pháp đã được đề ra, trong đó đáng chú ý nhất và cũng có nhiều khả năng triển khai trong thực tế nhất đó là giải pháp phát triển, tích hợp các hệ thống con với công nghệ Web Service và Microsoft.NET Framework. Ý tưởng chính của giải pháp này được tóm gọn như sau: Các ứng dụng nhỏ trong hệ thống sẽ trình bày giao diện của nó dưới dạng Web Service, một ứng dụng ở trung tâm (cũng là một web service) được xây dựng dựa trên công nghệ Microsoft .NET Framework để kết hợp các web service nhỏ trở thành một tiến trình duy nhất. Chính vì vậy mà em đã chọn làm “Đồ Án Tốt Nghiệp” là “Xây dựng ứng dụng tìm kiếm thông tin du lịch sử dụng Webservices” để nghiên cứu phương pháp lập trình web mới. Nội Dung Đề Tài Trong đồ án tốt nghiệp cuối khóa này, em xin trình bày về vấn đề phát triển một hệ thống tích hợp các Web Service dựa trên công nghệ Microsoft.NET Framework. Đồ án chia thành hai phần: Phần thứ nhất trình bày các cơ sở lý thuyết về Web Service và Microsoft .NET Framework. Phần thứ hai trình bày việc xây dựng một hệ thống tìm kiếm phòng của khách sạn dựa trên kiến trúc Web Service và Microsoft ASP.NET 2.0. Hệ thống này có đặc điểm là sử dụng công nghệ Microsoft.NET Framework để kết hợp các web service của các khách sạn và cho phép người sử dụng tìm kiếm các phòng của khách sạn với các thông tin dữ liệu trả về lấy từ các web service này. PHẦN 2 CƠ SỞ LÝ THUYẾT Trong phần này em xin trình bày chi tiết về cơ sở lý thuyết các kĩ thuật liên quan. I/KIẾN TRÚC WEB SERVICES: Web services là một tập các chuẩn đặc tả mở rộng khả năng của các chuẩn có sẵn như XML, URL và HTTP nhằm cung cấp chuẩn truyền thông giữa các hệ thống với nhau.Web services là những thành phần thực thi một số xử lý nghiệp vụ thông qua những dịch vụ và cung cấp những dịch vụ qua mạng, những dịch vụ này có thể được triệu gọi bởi các dịch vụ client bằng cách sử dụng giao thức SOAP trên HTTP. Web services độc lập về ngôn ngữ và độc lập về nền tảng bởi vì nó tách biệt đặc tả ra khỏi cài đặt. Web services dựa trên kiến trúc phân tán trong đó không có bất kì dịch vụ xử lý trung tâm nào và tất cả dạng truyền thông đều sử dụng các giao thức chuẩn. Các giao thức không được có bất kì ý nghĩa ngầm định nào bên trong mà phải được mô tả rõ ràng. Một trong những đặc tính quan trọng của mô hình tính toán dựa trên Web services là ở đó cả các client và Web services đều không cần biết cài đặt của nhau. Kiến trúc Web services cung cấp nhiều thành phần cho phép các ứng dụng client tìm kiếm và sử dụng những Web services mình cần một cách động. Web services hứa hẹn mang đến khả năng tạo ra các môi trường phân tán trong đó bất kì ứng dụng nào, hoặc bất kì component ứng dụng nào cũng đều có thể kết hợp với nhau dễ dàng với tính độc lập nền tảng và độc lập ngôn ngữ (language-neutral). Web service có thể được sử dụng vào các mục đích đơn giản như đăng nhập vào một trang web hay với mục đích phức tạp như xử lý nghiệp vụ giao dịch vay mượn giữa các công ty với nhau. Điểm khác biệt chính của Web services với các công nghệ phân tán trước đây như Win32, J2EE và CGI là ở sự chuẩn hoá. Web services sử dụng XML, một ngôn ngữ độc lập trong việc biểu diễn dữ liệu, làm ngôn ngữ trao đổi thông tin. Bởi vậy khi được kết hợp với nhau, khả năng tích hợp phần mềm và đa kết nối giữa những mô hình web services thật đáng kinh ngạc. Thêm vào đó, các chuẩn Web services mới còn hỗ trợ các tính năng cao cấp như hỗ trợ giao dịch, bảo mật, quy trình nghiệp vụ… Hình 2.1.1: Mô hình Web Service Mô hình web services dạng đơn giản định nghĩa cách thức tương tác giữa Service Requester, Service Provider và Service Directory như sau : Bên sử dụng dịch vụ tìm kiếm các dịch vụ trong một UDDI Service Directory. Chúng sẽ lấy thông tin mô tả WSDL của các Web services cung cấp bởi Service Providers từ trước thông qua Service Directory. Sau khi lấy được mô tả WSDL, bên yêu cầu dịch vụ kết nối đến nhà cung cấp dịch vụ bằng cách triệu gọi các dịch vụ thông qua giao thức SOAP. Web services cơ bản bao gồm các khái niệm SOAP, WSDL và UDDI. Chúng ta sẽ lần lượt phân tích trong các phần sau. Cần lưu ý là các chuẩn trên có thể được kết hợp với nhau hoặc dùng độc lập tùy trường hợp cụ thể. Kiến trúc của web service bao gồm các tầng như sau : Hình 2.1.2: Kiến trúc web service Trong đó bao gồm các tầng : - Tầng vận chuyển với những công nghệ chuẩn là HTTP, SMTP và JMS - 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ụ, SOAP cho phép người dùng triệu gọi một service từ xa thông qua một message XML. - Tầng mô tả dịch vụ (Service Description) với công nghệ chuẩn là WSDL và XML. WSDL là một ngôn ngữ mô tả giao tiếp và thực thi dựa trên XML. Web service sử dụng ngôn ngữ WSDL để truyền các tham số và các loại dữ liệu cho các thao tác, các chức năng mà web service cung cấp. - Tầng dịch vụ ( Service): Cung cấp các chức năng của service. - Tầng đăng ký dịch vụ (Service Registry) với công nghệ chuẩn là UDDI. UDDI dùng cho cả người dùng và ̣ SOAP server, nó cho phép đăng ký dịch vụ để người dùng có thể gọi thực hiện service từ xa qua mạng hay nói cách khác một service cần phải được đăng ký để cho phép các client có thể gọi thực hiện. - Bên cạnh đó để cho các service có tính an toàn, toàn vẹn và bảo mật thông tin trong kiến trúc web service chúng ta có thêm các tầng Policy, Security, Transaction, Management giúp tăng cường tính bảo mật, an toàn và toàn vẹn thông tin khi sử dụng service. 1.1/Các đặt trưng của Web services Self-Contained (Độc lập) Web service độc lập vì nó không đòi hỏi các tiến trình ở phía client phải cài đặt bất cứ một thành phần nào. Ở phía server, yêu cầu để triển khai (deploy) Web service chỉ là servlet engine, EJB container hoặc .NET runtime. Khi Web service đã được triển khai thì phía client có thể tiêu thụ các dịch vụ mà không cần đòi hỏi phải cài đặt bất cứ một thành phần nào. Trong khi đó với các công nghệ như DCOM hay RMI, phía client phải cài đặt client stub trước khi có thể truy cập dịch vụ. Tự Mô Tả Giao diện của Web Service được xuất bản thông qua tài liệu Wsdl. Tài liệu Wsdl định nghĩa cấu trúc thông điệp trao đổi và cấu trúc dữ liệu sử dụng trong thông điệp đó. Để triệu gọi dịch vụ, client chỉ cần biết cấu trúc và nội dung của thông điệp yêu cầu và đáp ứng của Web service. Truy cập thông qua Web Web được xuất bản, xác định và triệu gọi thông qua Web. Web service sử dụng giao thức chuẩn của web. Mô tả dịch vụ được xuất bản bằng cách sử dụng WSDL, các dịch vụ được xác định với sự giúp đỡ của UDDI registry và triệu gọi thông qua SOAP. Tất cả những giao thức này đều dựa trên web. Độc lập về Ngôn ngữ, Nền tảng, Giao thức Web service có cơ sở là tiêu chuẩn mở XML. Một Client được viết bằng bất cứ ngôn ngữ cũng nào có thể truy cập một trang web service được viết bằng bất cứ ngôn ngữ nào khác. Web service độc lập nền tảng, client và web service có thể chạy trên hai nền tảng độc lập khác nhau. Dựa trên chuẩn Mở Những chuẩn này là XML, SOAP, WSDL và UDDI. Web service cho phép client và server tương tác được với nhau mặc dù trong những môi trường khác nhau. Web service thì có dạng mở và dựa vào các tiêu chuẩn. XML và HTTP là nền tảng kỹ thuật cho web service. Phần lớn kỹ thuật của web service được xây dựng là những dự án nguồn mở. Bởi vậy, chúng độc lập và vận hành được với nhau. Web service thì rất linh động: Vì với UDDI và WSDL, thì việc mô tả và phát triển web service có thể được tự động hóa. Web service được xây dựng trên nền tảng những công nghệ đã được chấp nhận . Web service có dạng mô đun. Web service có thể công bố (publish) và gọi thực hiện qua mạng. Ngày nay web services được sử dụng rất nhiều trong những lĩnh vực khác nhau của cuộc sống như: - Tìm kiếm các thông tin về các khách sạn ở các thành phố hoặc các trung tâm để liên hệ đặt phòng theo yêu cầu của khách hàng. - Dịch vụ chọn lọc và phân loại tin tức: Là những hệ thống thư viện kết nối đến các web portal để tìm kiếm các thông tin từ các nhà xuất bản có chứa những từ khóa muốn tìm. - Dịch vụ hiển thị danh sách đĩa nhạc dành cho các công ty thu thanh. - Ứng dụng đại lý du lịch có nhiều giá vé đi du lịch khác nhau do có chọn lựa phục vụ của nhiều hãng hàng không. - Bảng tính toán chính sách bảo hiểm dùng công nghệ Excel/COM với giao diện web. - Thông tin thương mại bao gồm nhiều nội dung, nhiều mục tin như: Dự báo thời tiết, thông tin sức khoẻ, lịch bay, tỷ giá cổ phiếu… 1.2/Lợi ích của Web services Web service cung cấp một số lợi ích về công nghệ và kinh doanh, trong số đó bao gồm: Tương kết ứng dụng và dữ liệu Thiết kế linh hoạt Tái sử dụng mã nguồn Tiết kiệm chi phí Với các đặc trưng vốn có của mình như độc lập về nền tảng, công nghệ cũng như việc dựa trên các chuẩn mở giúp cho việc giao tiếp giữa các ứng dụng trở nên dễ dàng thông qua việc sử dụng web service. Với lợi thế này, các ứng dụng với các nền tảng, công nghệ, cấu trúc dữ liệu khác nhau có thể giao tiếp trao đổi thông tin cũng như cộng tác với nhau một cách dễ dàng. Web service rất linh hoạt trong thiết kế. Chúng có thể được truy xuất bởi con người thông qua giao diện web browser hoặc có thể được truy xuất bởi một ứng dụng khác và thậm chí là một web service khác. Một client có thể truy xuất và kết hợp dữ liệu từ nhiều web service khác nhau cho dù các web service này có thể chạy trên các nền tảng hệ thống không tương thích. Bởi vì hệ thống trao đổi thông tin thông qua web service nên sự thay đổi trong các thành phần (ví dụ như sự thay đổi đến cơ sở dữ liệu) không gây ảnh hưởng đến bản thân web service. Tái sử dụng mã nguồn là một trong các lợi thế bắt nguồn từ khả năng tương kết và sự mềm dẻo của web service. Một web service có thể được sử dụng bởi nhiều client hoặc có thể được kết hợp lại để thực hiện một mục tiêu kinh doanh. Thay vì phải xây dựng một hệ thống mới thì doanh nghiệp có thể sử dụng lại các web service và kết hợp chúng theo mục tiêu của mình. Tất cả các lợi ích trên giúp cho doanh nghiệp giảm chi phí cũng như giảm thời gian triển khai các ứng dụng của mình. Hơn thế nữa việc web service dựa trên các chuẩn mở giúp giảm chi phí đầu tư, giảm thời gian tiếp cận công nghệ hơn các hệ thống độc quyền khác. Cuối cùng, việc xây dụng web service có lợi thế về việc tận dụng giao thức và cơ sở hạ tầng có sẵn trong mỗi doanh nghiệp. 1.3/Thành phần Web Service 1.3. 1.XML– Extensible Markup Language XML do W3C đề ra và được phát triển từ SGML. XML là một ngôn ngữ mô tả văn bản với cấu trúc do người sử dụng định nghĩa. Về hình thức XML có ký pháp tựa như HTML nhưng không tuân theo một đặc tả quy ước như HTML. Người sử dụng hay các chương trình có thể quy ước định dạng các tag XML để giao tiếp với nhau. Thông tin cần truyền tải được chứa trong các tag XML, ngoài ra không chứa bất cứ thông tin nào khác về cách sử dụng hay hiển thị những thông tin ấy. Do web service là sự kết hợp của nhiều thành phần khác nhau, do đó web services sử dụng các tính năng và đặc trưng của các thành phần này để giao tiếp với nhau. Vì vậy XML là một công cụ chính yếu để giải quyết vấn đề này. Từ kết quả này, các ứng dụng tích hợp vĩ mô tăng cường sử dụng XML. Nhờ có khả năng tổng hợp này mà XML đã trở thành kiến trúc nền tảng cho việc xây dựng web service. Web services tận dụng khả năng giải quyết vấn đề của các ứng dụng lớn trên các hệ điều hành khác nhau cho chúng giao tiếp với nhau. 1.3. 2.WSDL -Web Services Description Language : Web Sevice Description Language (WSDL) định nghĩa một tài liệu XML mô tả giao diện của các dịch vụ web. Tài liệu WSDL này được sử dụng cho bên yêu cầu dich vụ (service requester). Bên yêu cầu dịch vụ sẽ sử dụng các thông tin về giao diện định nghĩa trong lược đồ WSDL để triệu gọi (invoke) dịch vụ web. Một tài liệu WSDL mô tả một Web Service như một tập các đối tượng trừu tượng gọi là các “ports” và “endpoint”. Một tài liệu WSDL cũng định nghĩa bên trong nó các phương thức của web service. Các phương thức tương ứng với “operation” và dữ liệu trao đổi tương ứng với “message”. Một tập các phương thức liên quan được nhóm lại vào trong một “portType”. Một ràng buộc kết nối (binding) chỉ định một giao thức mạng và đặc tả định dạng dữ liệu cho một portType cụ thể. Kế đến một port được định nghĩa bằng cách kết hợp một địa chỉ mạng với một binding. Nếu một client có được một tài liệu WSDL và tìm thấy binding và địa chỉ cho mỗi port, nó có thể gọi các phương thức của dịch vụ theo đúng giao thức và định dạng dữ liệu đã đặc tả. Phần tử gốc của tất cả các tài liệu WSDL luôn là phần tử . Nó chứa bên trong sáu thành phần chia thành hai nhóm: Thông tin trừa tượng và thông tin cụ thể. Thông tin trừu tượng types messages portType Thông tin cụ thể d. bindings e. services Các thành phần chứa những tham chiếu lẫn nhau như trong hình. Hình 2.1.3: Cấu trúc WSDL WSDL định nghĩa cách mô tả web service theo cú pháp tổng quát XML, bao gồm các thông tin - Tên ̣service. - Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của web service. - Loại thông tin: Những thao tác, những tham số, và những kiểu dữ liệu gồm có giao diện của web service, cộng với tên cho giao diện này. Một WSDL hợp lệ gồm có hai phần : 1. Phần giao diện mô tả giao diện và giao thức kết nối. 2. Phần thi hành mô tả thông tin để truy xuất service Cả 2 phần trên sẽ được lưu trong 2 tập tin XML, bao gồm: - Tập tin giao diện service (cho phần 1). - Tập tin thi hành service (cho phần 2). Hình 2.1.4: Cấu trúc WSDL 1.3.2.1 Tập tin giao diện - Service Interface WSDL mô tả 5 loại thông tin chính bao gồm: import, types, message , portType, binding. a. Types: WSDL định nghĩa các kiểu dữ liệu của thông điệp gửi . * b.Thông điệp (message): Mô tả thông điệp được gửi giữa client và server. * * Những định nghĩa message được sử dụng bởi phần tử thi hành service. Nhiều thao tác có thể tham chiếu tới cùng định nghĩa message. Thao tác và những message được mô hình riêng rẽ để hỗ trợ tính linh hoạt và đơn giản hóa việc tái sử dụng lại. Chẳng hạn, hai thao tác với cùng tham số có thể chia sẻ một định nghĩa message. c.Kiểu cổng (port type): WSDL mô tả cách gửi và nhận thông điệp. * WSDL định nghĩa bốn kiểu thao tác mà một cổng có thể hỗ trợ : - One-way: Cổng nhận một message, message đó là message nhập. - Request-response : Cổng nhận một message và gửi một message phản hồi - Solicit-response: Cổng gửi một message và nhận về một message - Notification: Cổng gửi một message, message đó là message xuất. Mỗi kiểu thao tác có cú pháp biến đổi tùy theo: Thứ tự của các message nhập, xuất và lỗi. Ví dụ : * * d.Kết hợp (Binding): Định nghĩa cách các web services kết hợp với nhau. Một kết hợp bao gồm : - Những giao thức mở rộng cho những giao tác và những message bao gồm thông tin URN và mã hóa cho SOAP. - Mỗi một kết hợp tham chiếu đến một loại cổng, một kiểu cổng (portType) có thể được sử dụng trong nhiều mối kết hợp. Tất cả các thao tác định nghĩa bên trong kiểu cổng phải nằm trong phạm vi mối kết hợp. 1.3.2.2. Tập tin thi hành - Service Implementation WSDL mô tả 2 loại thông tin chính bao gồm: Service và port . a.Dịch vụ (Service) : Nó sẽ thực hiện những gì đã được định nghĩa trong tập tin giao diện và cách gọi web services theo thủ tục và phương thức nào. * * b. Port là một cổng đầu cuối, nó định nghĩa như một tập hợp của binding và một địa chỉ mạng. * * Ở đây chúng ta thấy rằng thuộc tính kết hợp tên là qname. Nó tham chiếu tới một mối kết hợp. Một cổng chứa đựng chính xác một địa chỉ mạng bất kỳ cổng nào trong phần thi hành phải tương ứng chính xác với một tham chiếu trong phần giao diện. 1.3.3.UDDI - Universal Description , Discovery and Intergration Về cơ bản Universal Description, Discovery, and Intergration (UDDI) là một tập các quy tắc đăng ký và tìm kiếm thông tin các Web Service. Nó đóng vai trò như service broker cho phép người sử dụng dịch vụ tìm đúng nhà cung cấp dịch vụ cần tìm. UDDI hỗ trợ chức năng: Thực hiện tìm kiếm, định vị những doanh nghiệp cung cấp dịch vụ hay sản phẩm theo phần loại theo vùng địa lý. Thông tin về một nhà cung cấp dịch vụ bao gồm địa chỉ, thông tin liên lạc và các định danh. Thông tin kỹ thuật (Technical information) về Web service mà doanh nghiệp cung cấp (ví dụ như cách sử dụng dịch vụ được cung cấp). Để có thể sử dụng các dịch vụ, trước tiên client phải tìm dịch vụ, ghi nhận thông tin về cách sử dụng dịch vụ và biết được đối tượng cung cấp dịch vụ. UDDI định nghĩa một số thành phần cho biết trước các thông tin này để cho phép các client truy tìm và nhận lại những thông tin yêu cầu sử dụng web services. Muốn sử dụng đến các dịch vụ của UDDI, bản thân UDDI cung cấp một tập hàm API dưới dạng SOAP Web Service. Tập API được chia làm hai phần: Inquiry API dùng truy vấn và Publisher’s API dùng đăng ký. Phần API dùng để truy vấn bao gồm hai phần con: Một phần dùng để tạo ra các chương trình cho phép tìm kiếm và duyệt thông tin trên một UDDI registry, phần còn lại dùng để xử lý lỗi triệu gọi. Thành phần xử lý chính là bộ đăng ký UDDI, đó là một file XML dùng để mô tả một thực thể kinh doanh (business entity) kèm theo các Web service đi cùng. Sử dụng các dịch vụ của UDDI, các doanh nghiệp đăng ký thông tin về những Web service mà họ định cung cấp. Thông tin này đuợc thêm vào UDDI registry thông qua Web site hoặc sử dụng các công cụ lập trình sử dụng các dịch vụ theo đúng đặc tả UDDI programmer’s API. Lược đồ XML UDDI định nghĩa bốn loại thông tin cơ bản để kết nối đến Web service. Hình 2.1.5: Mô hình UDDI Như hình trên, cấu trúc thông tin bao gồm : Business entity: Một business entity chứa thông tin về công bao gồm tên công ty, một đoạn mô tả ngắn gọn và một vài thông tin liên lạc cơ bản (địa chỉ, số điện thoại, email, v.v….). Mỗi doanh nghiệp được cấp một định danh duy nhất, ví dụ như số D-U-N-S. Business service: Liên kết với mỗi business entity là một danh sách các business service cung cấp bởi business entity đó. Mỗi thành phần chứa thông tin mô tả về dịch vụ, về thông tin phân loại của dịch vụ và danh sách các binding template liên quan đến thông tin kỹ thuật của dịch vụ. Mỗi business service cần có ít nhất một binding template. Binding template: Gắn với mỗi business service là một danh sách các binding template cung cấp thông tin về địa điểm có thể tìm thấy Web Service và làm cách nào để sử dụng nó. Một cấu trúc binding template mô tả thông tin interface của Web Service và các địa chỉ URL. Mỗi bindingTemplate được định danh duy nhất thông qua số phát sinh tự động UUID lưu trong bindingKey. tModels: Mục đích của tModels là dùng để liên kết đến metadata bên ngoài UDDI. Thành phần quan trọng nhất của tModels là một URL trỏ đến một tài liệu mô tả thông tin metadata. Tài liệu này có thể là tài liệu bất kì HTML, Word, ... tùy ý mô tả một đặc tả kỹ thuật nào đó, ví dụ như giao thức mạng, dạng thức trao đổi hoặc luật tuần tự mà thông thường nhất là file mô tả thông tin service WSDL. Có hai thuộc tính cơ bản bên trong một tModel : tModelKey đóng vai trò định danh duy nhất giữa các tModel với nhau và name dùng cung cấp một tên với đầy đủ ngữ nghĩa cho tModel. Tóm lại SOAP, WSDL và UDDI có thể kết hợp với nhau như sau : Nhà cung cấp Web Service mô tả Web Service trong một tài liệu WSDL và đăng ký nó lên một UDDI bằng cách sử dụng Publisher’s API. Một người sử dụng dịch vụ UDDI Inquiry API để tìm thông tin về nhà cung cấp dịch vụ thích hợp. Nếu có, nó sẽ tìm kiếm tiếp tModel rồi từ đó lấy ra tài liệu mô tả WSDL. Một yêu cầu dạng SOAP được tạo ra dựa trên tài liệu mô tả WSDL. Yêu cầu SOAP trên sẽ được gửi đến nhà cung cấp dịch vụ và được xử lý. 1.3.4. OAP - Simple Object Accesss Protocol Đến đây chúng ta đã hiểu được web services là như thế nào, nó được công bố và truy xuất ở đâu. Nhưng vẫn còn một vấn đề khá quan trọng đó là: Làm thế nào chúng ta truy xuất dịch vụ khi tìm thấy? Câu trả lời là web servicves có thể truy xuất bằng một giao thức là Simple Object Access Protocol – SOAP. Nói cách khác chúng ta có thể truy xuất đến UDDI registry bằng các lệnh gọi hoàn toàn theo kiểu SOAP. SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa thành định dạng chung cho các ứng dụng trao đổi với nhau.Ý tưởng bắt đầu từ Microsoft và phần mềm Userland, trải qua nhiều lần thay đổi, hiện tại là phiên bản SOAP 1.2 với nhiều ưu điểm vuợt trội hơn bản SOAP 1.1. SOAP được xem như là cấu trúc xương sống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ, hệ điều hành khác nhau. SOAP là một đặc tả việc sử dụng các tài liệu XML theo dạng các thông điệp. Bản thân SOAP không định ra các ngữ nghĩa ứng dụng hoặc cách cài đặt chi tiết. SOAP cung cấp một cơ chế đơn giản và gọn nhẹ cho việc trao đổi thông tin có cấu trúc và định dạng giữa các thành phần trong một môi trường phân tán sử dụng XML. SOAP được thiết kế dựa trên những chuẩn nhằm giảm chi phí tích hợp các hệ thống phân tán xây dựng trên nhiều nền tảng khác nhau ở mức càng thấp càng tốt. Đặc tả về SOAP định nghĩa một mô hình trao đổi dữ liệu dựa trên 3 khái niệm cơ bản: Các thông điệp là các tài liệu XML, chúng được truyền đi từ bên gửi đến bên nhận, bên nhận có thể chuyển tiếp dữ liệu đến nơi khác. Khái niệm cơ bản nhất của mô hình SOAP là việc sử dụng các tài liệu XML như những thông điệp trao đổi. Điều này có nhiều ưu điểm hơn các giao thức truyền dữ liệu khác. Các thông điệp XML có thể được tổng hợp và đọc với một bộ soạn thảo text đơn giản, ta có thể làm việc với XML trên hầu hết mọi nền tảng 1.3.4.1 Đặc trưng SOAP SOAP có những đặc trưng sau : - SOAP được thiết kế đơn giản và dễ mở rộng. - Tất cả các message SOAP đều được mã hóa sử dụng XML. - SOAP sử dùng giao thức truyền dữ liệu riêng. - Không có garbage collection phân tán, và cũng không có cơ chế tham chiếu. Vì thế SOAP client không giữ bất kỳ một tham chiếu đầy đủ nào về các đối tượng ở xa. - SOAP không bị ràng buộc bởi bất kỳ ngôn ngữ lập trình nào hoặc công nghệ nào. Vì những đặc trưng này, nó không quan tâm đến công nghệ gì được sử dụng để thực hiện miễn là người dùng sử dụng các message theo định dạng XML. Tương tự, service có thể được thực hiện trong bất kỳ ngôn ngữ nào, miễn là nó có thể xử lý được những message theo định dạng XML. Khi trao đổi các thông điệp SOAP, có hai thành phần liên quan: Bên gửi và bên nhận. Thông điệp sẽ được chuyển từ bên gửi sang bên nhận. Đây là ý niệm đơn giản nhất trong trao đổi thông điệp SOAP. Trong nhiều trường hợp, kiểu trao đổi này không cung cấp đủ chức năng. Nhưng đây là mô hình cơ bản, dựa trên đó sẽ phát triển các mô hình trao đổi phức tạp hơn. Hình 2.1.6: Một SOAP Operation đơn giản Một cấu trúc SOAP được định nghĩa gồm các phần: , và . Hình 2.1.7: Cấu trúc thông điệp SOAP Envelop là thành phần gốc của một thông điệp SOAP, nó chứa các thành phần Header và Body. Thành phần Header là một cơ chế mở cho phép thêm các tính năng vào bên trong một thông điệp SOAP. Mỗi thành phần con của Header gọi là một Header Entry. Các Header Entry dùng để diễn giải, quy định một số ngữ nghĩa của thông điệp SOAP. Các ứng dụng có thể xử lý và định tuyến các thông điệp dựa trên thông tin header và thông tin bên trong thông điệp đó. Đây là ưu điểm mà các mô hình kiến trúc như DCOM, CORBA và RMI không có được, vì các protocol header của chúng phải được chỉ định chi tiết cho mỗi ứng dụng. 1.3.4.2 Cấu trúc một message theo dạng SOAP Cấu trúc một message theo dạng SOAP được mô tả như hình dưới đây: Hình 2.1.8: Cấu trúc message SOAP Message theo dạng SOAP là một văn bản XML bình thường bao gồm các phần tử sau: - Phần tử gốc - envelop: Phần tử bao trùm nội dung message, khai báo văn bản XML như là một thông điệp SOAP. - Phần tử đầu trang – header: Chứa các thông tin tiêu đề cho trang, phần tử này không bắt buộc khai báo trong văn bản. Những đầu mục còn có thể mang những dữ liệu chứng thực, những chữ ký số hóa, và thông tin mã hóa, hoặc những cài đặt cho giao tác. - Phần tử khai báo nội dung chính trong thông điệp - body, chứa các thông tin yêu cầu và phản hồi. - Phần tử phát sinh lỗi (Fault) cung cấp thông tin lỗi xảy ra trong quá trình xử lý thông điệp. Trong trường hợp đơn giản nhất, phần thân của SOAP message gồm có: - Tên của message - Một tham khảo tới một thể hiện service. - Một hoặc nhiều tham số mang các giá trị và mang các tham chiếu. Có 3 kiểu thông báo Request messages: Với các tham số gọi thực thi một service Response messages: Với các tham số trả về, được sử dụng khi đáp ứng yêu cầu. Fault messages báo tình trạng lỗi. 1.3.4.3 Những kiểu truyền thông SOAP hỗ trợ hai kiểu truyền thông khác nhau: - Remote procedure call (RPC): Cho phép gọi hàm hoặc thủ tục qua mạng. Kiểu này được khai thác bởi nhiều web service và có nhiều trợ giúp. - Document (Được biết như kiểu hướng message): Kiểu này cung cấp một lớp thấp của sự trừu tượng hóa và yêu cầu người lập trình nhiều hơn khi làm việc. Các định dạng message, tham số và lời gọi đến các API thì tương ứng trong RPC và document là khác nhau. Nên việc quyết định chọn cái nào tùy thuộc vào thời gian xây dựng và sự phù hợp của service cần xây dựng. 1.3.4.4 Mô hình dữ liệu Mục đích của mô hình dữ liệu SOAP là cung cấp sự trừu tượng hóa độc lập ngôn ngữ cho kiểu ngôn ngữ lập trình chung. Nó gồm có: § Những kiểu XSD đơn giản như những kiểu dữ liệu cơ bản trong đa số các ngôn ngữ lập trình như int, string, date… § Những kiểu phức tạp, có hai loại là struct và array. Tất cả các phần tử và những định danh có trong mô hình dữ liệu SOAP thì được định nghĩa bằng namespace SOAP-ENC II/GIỚI THIỆU VỀ CÔNG NGHỆ LẬP TRÌNH: 2.1. Giới thiệu về Microsoft. NET Framework Microsoft.NET Framework là một nền tảng cho việc tạo, triển khai và chạy trên Web-Server và ứng dụng. Nó cung cấp hiệu suất cao, dựa trên các tiêu chuẩn, môi trường đa ngôn ngữ, cho phép bạn tích hợp với các ứng dụng hiện tại, dịch vụ và các ứng dụng của thế hệ kế tiếp, cũng như để đáp ứng các thách thức về việc triển khai và sử dụng các ứng dụng của Internet. .NET Framework bao gồm ba phần chính - những ngôn ngữ phổ biến runtime (ngôn ngữ phổ biến runtime), một hierarchical bộ thống nhất các thư viện lớp học và thành phần phiên bản LYS, được gọi là ASP.NET. Các gói phần mềm bao gồm tất cả các phiên bản đã được phát hành trên segodnyaschny Platform Microsoft.NET Framework: Đây là mã số mới, quản lý chương trình của mô hình cho các hệ điều hành Windows ®. Nó kết nối sức mạnh nền tảng .NET Framework phiên bản 1,0, 1,1, 2,0, 3,0, 3,5, 1,1 và 3,5 SP công nghệ mới để phát triển các ứng dụng duy nhất với một giao diện đồ họa, bằng cách sử dụng các công nghệ khác nhau và trao đổi dữ liệu có thể hỗ trợ một số lượng lớn các quy trình kinh doanh. Những công nghệ mới - đây là Windows Presentation Foundation, Windows Communication Foundation,Windows Workflow Foundation, Windows CardSpace. Nền tảng .NET Framework AIO là một phần của hệ điều hành Windows Vista ™ và Windows 7, bạn có thể cài đặt và bỏ cài đặt bằng cách sử dụng bảng điều khiển các chức năng của Windows. Các cơ sở NET Framework AIO về việc cung cấp các tính năng mới in NET Framework 3.5, ví dụ bộ chức năng trong Windows Workflow Foundation (WF), Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF) và Windows CardSpace. Ngoài ra, .NET Framework AIO bao gồm các tính năng mới trong một số lĩnh vực công nghệ đã được thêm để tránh các hành vi vi phạm của các cơ cấu. Sau đây mô tả các tính năng: Việc tích hợp chặt chẽ của các kết hợp ngôn ngữ truy vấn (LINQ) và các thông tin nhận thức. Tính năng này cho phép bạn sử dụng cùng một cú pháp để tạo ra bằng cách sử dụng ngôn ngữ có hỗ trợ cho LINQ mã để thực hiện lọc, chuyển giao và tạo ra các dự án, bao gồm cả một số loại dữ liệu SQL, các bộ sưu tập, XML và đặt ra những dữ liệu. ASP.NET AJAX cho phép bạn tạo ra hiệu quả hơn giao diện web tương tác với các thiết lập quyền lực, được hỗ trợ bởi các trình duyệt phổ biến nhất. Hỗ trợ cho các dịch vụ web mới cho các giao thức tạo ra các WCF, bao gồm cả AJAX, JSON, REST, pox, RSS, ATOM và một số tiêu chuẩn mới của WS-*. Việc hoàn thành công cụ hỗ trợ trong Visual Studio 2009 cho WF, WCF và WPF, cũng như các dịch vụ công nghệ mới, workflow. Các lớp học mới trong các lớp thư viện cơ sở (BCL) .NET Framework, được thiết kế để phục vụ rất nhiều các điển hình của khách hàng. 2.2 /Giới thiệu về ASP.NET ASP.NET là một kỹ thuật phía server (server-side) dành cho việc thiết kế các ứng dụng web trên môi trường .NET ASP.NET là một kỹ thuật server-side. Hầu hết những web designers bắt đầu sự nghiệp của họ bằng việc học các kỹ thuật client-side như HTML, JavaScript và Cascading Style Sheets (CSS). Khi một trình duyệt web yêu cầu một trang web được tạo ra bởi các kỹ thuật client-side, web server đơn giản lấy các files mà được yêu cầu và gửi chúng xuống. Phía client chịu trách nhiệm hoàn toàn trong việc đọc các định dạng trong các files này và biên dịch chúng và xuất ra màn hình. Với kỹ thuật server-side như ASP.NET thì hoàn toàn khác, thay vì việc biên dịch từ phía client, các đoạn mã server-side sẽ được biên dịch bởi web server. Trong trường hợp này, các đoạn mã sẽ được đọc bởi server và dùng để phát sinh ra HTML, JavaScript và CSS để gửi cho trình duyệt. Chính vì việc xử lý mã xảy ra trên server nên nó được gọi là kỹ thuật server-side. Hình 2.2.1: Kỹ thuật server-side ASP.NET cho phép bạn viết ứng dụng web bằng các loại ngôn ngữ lập trình quen thuộc khác nhau. ASP.NET sử dụng .NET Framework, .NET Framework là sự tổng hợp tất cả các kỹ thuật cần thiết cho việc xây dựng một ứng dụng nền desktop, ứng dụng web, web services… thành một gói duy nhất nhằm tạo ra cho chúng khả năng giao tiếp với hơn 40 ngôn ngữ lập trình. Thậm chí với những sự lý giải kỹ càng như vậy, chúng ta vẫn ngạc nhiên tự hỏi điều gì làm nên một ASP.NET tốt như vậy. Sự thật là có rất nhiều kỹ thuật server-side với điểm mạnh và điểm yếu riêng nhưng ASP.NET có những tính năng gần như là duy nhất. ASP cho phép bạn sử dụng ngôn ngữ lập trình mà bạn ưa thích hoặc gần gũi với chúng. Hiện tại, thì .NET Framework hỗ trợ trên 40 ngôn ngữ lập trình khác nhau mà đa phần đều có thể được sử dụng để xây dựng nên những web sites ASP.NET. Chẳng hạn như C# (C sharp) và Visual Basic. Nhưng trang ASP.NET được Compiled chứ không phải là Interpreted. Khác với các trang ASP được Interpreted, điều này có nghĩa là mỗi lần người dùng yêu cầu một trang, máy chủ sẽ đọc các đoạn mã vào bộ nhớ, xử lý cách thức thực thi các đoạn mã và thực thi chúng. Đối với ASP.NET, máy chủ chỉ cần xử lý cách thức thực thi một lần duy nhất. Đoạn mã sẽ được Compiled thành các files mã nhị phân cái mà được thực thi rất nhanh mà không cần phải đọc lại. Chính điều này tạo ra bước tiến nhảy vọt về hiệu suất so với ASP ASP đã có khả năng toàn quyền truy xuất tới các chức năng của .NET Framework. Hỗ trợ XML, web services, giao tiếp với CSDL, email… và rất nhiều các kỹ thuật khác được tích hợp vào .NET, giúp bạn tiết kiệm được công sức. ASP cho phép bạn phân chia các đoạn mã server-side và HTML. Khi bạn phải làm việc với cả đội ngũ lập trình và thiết kế, sự tách biệt này cho phép các lập trình viên chỉnh sửa server-side code mà không cần dính dáng gì tới đội ngũ thiết kế. ASP giúp cho việc tái sử dụng những yếu tố giao diện người dùng trong nhiều web form vì nó cho phép chúng ta lưu các thành phần này một cách độc lập. PHẦN 3 XÂY DỰNG ỨNG DỤNG Trong phần này em xin trình bày chi tiết xây dựng hệ thống tìm kiếm khách sạn với Web service và Microsoft.NET Framework. Nội dung trình bày bao gồm các phần sau: Hướng tiếp cận xây dựng ứng dụng. Phân tích thiết kế hệ thống. Cài đặt ứng dụng. I/HƯỚNG TIẾP CẬN XÂY DỰNG ỨNG DỤNG: 1/Phát biểu bài toán: Hệ thống tìm kiếm khách sạn được xây dựng đáp ứng các yêu cầu sau: Về phía người sử dụng, hệ thống cho phép người sử dụng nhập vào thông tin truy vấn về khách sạn bao gồm: Địa điểm, ngày đến, ngày đi, tên khách sạn, hạng khách sạn, số giường, giá phòng. => Thông tin trả về của hệ thống là một danh sách các khách sạn bao gồm: Tên khách sạn, hạng khách sạn, địa chỉ, điện thoại, phòng, số giường/phòng, đơn giá/ngày và tổng giá tiền. Cũng có thể trả về kết quả là không tìm được khách sạn theo yêu cầu của khách hàng. Về phía hệ thống, yêu cầu thiết kế hệ thống đó là: Hệ thống phải hoạt động với một số lượng lớn các web service của các khách sạn. Hệ thống cho phép sắp xếp kết quả tìm kiếm trả về cho người sử dụng dựa trên việc sắp xếp trình tự truy vấn các web service. Trình tự truy vấn các web service phụ thuộc vào gói dịch vụ mà web service đó đăng kí với hệ thống. Hệ thống đăng kí này bao gồm ba mức (vàng - gold, bạc – silver, đồng – copper), các web service đăng kí tham gia ở mức cao sẽ được ưu tiên hiển thị kết quả trước. Hệ thống cho phép thêm hoặc bớt các web service mà nó truy vấn thông tin một cách động. Hệ thống cũng cho phép chuyển đổi các gói dịch vụ mà các web service đã đăng kí với hệ thống. 2/Hướng tiếp cận giải quyết bài toán: Việc giải quyết bài toán với hướng tiếp cận truyền thống đó là xây dựng một web service client. Web service này sẽ trực tiếp truy vấn đến các web service của các khách sạn và sắp xếp các kết quả trả về theo các tiêu chuẩn đã đặt ra. Cách tiếp cận giải quyết bài toán này là hoàn toàn không thích hợp cho việc giải quyết các yêu cầu của bài toán. Thứ nhất, hệ thống xây dựng dựa trên cách tiếp cận trên sẽ rất nặng nề và nhiều dư thừa trong lập trình do khi muốn truy vấn đến một web service, hệ thống phải có các tham chiếu đến các web service đó. Ở đây trong việc lập trình đó là hệ thống phải sinh ra các stub, các lớp liên quan đến việc gọi web service. Đồng thời với đó là hệ thống không thể thêm bớt các web service một cách động. Khi muốn thêm, bớt các web service hệ thống phải được xây dựng lại để thêm hoặc bớt các lớp liên quan đến việc gọi web service tương ứng. Ta thấy hướng giải quyết bài toán bằng hướng tiếp cận web service client là không hợp lý, nó sẽ không đáp ứng được các yêu cầu của bài toán, điều này khiến ta phải tìm ra hướng tiếp cận và giải quyết mới. Sau đây em xin trình bày kĩ thuật chính để giải quyết bài toán này như sau: 3/Kĩ thuật chính giải quyết bài toán: SoapHttpClientProtocol cung cấp khả năng thay đổi địa chỉ của một service trong chuỗi sử lý (flow process) của chương trình ngay trong khi chuỗi xử lý đó đang được thực thi (gán địa chỉ động). Vi dụ: localhost.FirstService mySvc = new localhost.FirstService(); mySvc.Url = II/PHÂN TÍCH THIẾT KẾ HỆ THỐNG: 1/Mô tả các Actors và Use cases Use cases diagram Mô tả các Actors Người sử dụng (User) là người trực tiếp sử dụng chương trình, khai thác các tiện ích của chương trình. Mô tả các Use cases Management Partner - Tóm tắt: Đây là trường hợp người sử dụng lựa chọn chức năng quản lý các đối tác là các khách sạn - Tác nhân: NSD (User) - Liên quan: Không có các use cases liên quan - Luồng sự kiện: + Luồng sự kiện Thêm mới: * Người sử dụng chọn nút thêm bản ghi mới * Người sử dụng nhập các thông tin đầu vào * Người sử dụng chọn nút lưu * Hệ thống hiển thị kết quả cập nhật * Kết thúc use case + Luồng sự kiện Sửa: * Người sử dụng chọn bản ghi cần sửa * Người sử dụng chọn nút sửa * Người sử dụng nhập các thông tin đầu vào * Người sử dụng chọn nút lưu * Hệ thống hiển thị kết quả cập nhật * Kết thúc use case + Luồng sự kiện Xóa: * Người sử dụng chọn bản ghi cần xóa * Người sử dụng chọn nút xóa * Hệ thống hỏi “Bạn có chắc chắn muốn xóa không?” * Người sử dụng chọn nút “Yes”, hệ thống xóa và hiển thị kết quả * Người sử dụng chọn nút “No”, hệ thống không xóa * Kết thúc use case Tìm kiếm khách sạn - Tóm tắt: Đây là trường hợp người sử dụng lựa chọn chức năng tìm kiếm khách sạn để đặt phòng. - Tác nhân: NSD (User) - Liên quan: Không có các use cases liên quan - Luồng sự kiện: + Luồng sự kiện chính: * Người sử dụng nhập những thông tin cần để tìm kiếm * Người sử dụng chọn nút “Tìm kiếm” * Hệ thống hiển thị kết quả tìm được * Kết thúc use case 2/Mô hình hóa tương tác Management Partner Biểu đồ trình tự Insert(): Thêm mới bản ghi thông tin của đối tác (khách sạn) Update(): Sửa thông tin một bản ghi Delete(): Xóa một bản ghi displayResult(): Hiển thị kết quả sau cập nhật Biểu đồ lớp (Class) của modul Management Partner Tìm kiếm khách sạn (Search ) Biểu đồ trình tự chooseCondtion(): Nhập vào các điều kiện tìm kiếm Execute(): Thực hiện lệnh tìm kiếm displayResult(): Hiển thị kết quả tìm kiếm Biểu đồ lớp (Class) của modul Search Hotel Biểu đồ hoạt động của modul Search Hotel Modul Web Service của khách sạn: Là một thư viện cung cấp thông tin do các đối tác phát triển, ở đây em tự phát triển một mẫu. Web service này gồm một webmethod với các tham số đầu vào là số giường, đơn giá, tình trạng đặt phòng. Khi hệ thống gọi webmethod của service, webservice sẽ trả về kết quả được thiết kế dưới dạng một danh sách cấu trúc định nghĩa dưới dạng XML schema như sau 1 201 2 100 true 2 203 3 120 true 3/Mô hình cơ sở dữ liệu quan hệ Bảng dm_ws (danh mục các đối tác, phục vụ cho modul Management Partner) Tên trường Kiểu dữ liệu Diễn giải ID decimal(18, 0) Khóa chính NamePartner nvarchar(250) Tên đối tác (khách sạn) NameWS nvarchar(250) Đường dẫn web services Packet nvarchar(50) Gói dịch vụ (Gold, Silver, Copper), gói dịch vụ thể hiện mức ưu tiên của đối tác trong tìm kiếm NumStar int Hạng (1 sao, 2 sao,.., 5 sao) [Add] nvarchar(250) Địa chỉ Tel varchar(50) Số điện thoại UU_TIEN varchar(1) A, B, C (Mức ưu tiên tương ứng với Packet (Gold, Silver, Copper), dùng để sắp xếp khi liệt kê III/CÀI ĐẶT ỨNG DỤNG: 1/Môi trường cài đặt: Dùng công nghệ ASP.Net và SQL server 2005. 2/Một số giao diện chương trình: Giao diện tìm kiếm cho người sử dụng: Hình 3.1.1: Giao diện tìm kiếm cho người sử dụng Giao diện thông tin trả về: Hình3.1.2: Giao diện thông tin trả về Giao diện quản lý dịch vụ: Hình 3.1.3: Giao diện xem thông tin và quản lý đối tác Hình 3.1.4: Giao diện thêm mới đối tác PHẦN 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN MỘT SỐ KẾT QUẢ ĐẠT ĐƯỢC: Qua tìm hiểu và nghiên cứu đề tài, em đã nắm được các cở sở lý thuyết về kiến trúc cùng với kĩ thuật phát triển ứng dụng với web service và Microsoft.NET Framework. Do các kiến trúc và kĩ thuật này còn mới mẻ nên để hiểu rõ và nắm vững là điều không dễ dàng. Vì vậy, mục tiêu của đề tài đặt ra gồm hai phần chính như sau: Về lý thuyết: Mục tiêu là tìm hiểu, nghiên cứu về kiến trúc Web Service và công nghệ Microsoft.NET Framework. Về phần ứng dụng minh họa: Mục tiêu là nắm vững được các kỹ thuật lập trình web service và ngôn ngữ Microsoft.NET Framework: Cách tạo ra web service phục vụ cho việc trao đổi thông tin. Bên cạnh đó là xây dựng một hệ thống ứng dụng tìm kiếm khách sạn dựa trên những công nghệ đã tìm hiểu đáp ứng được các yêu cầu đề ra. Nội dung đề tài đưa ra khá rộng mà chỉ được thực hiện trong khoảng thời gian không dài do đó để hoàn tất đề tài này em phải gặp rất nhiều khó khăn về mặt tìm kiếm tài liệu, đọc hiểu tài liệu và một số kỹ thuật để vận dụng kiến thức mình đã tìm hiểu được nhưng nhờ sự giúp đỡ và chỉ bảo tận tình của cô giáo hướng dẫn: TS. Trương Diệu Linh cùng các thầy cô trong Viện Công nghệ thông tin và truyền thông, trường Đại học Bách Khoa Hà Nội em đã hoàn thành được những mục tiêu, yêu cầu đưa ra của đề tài. HƯỚNG PHÁT TRIỂN: Đồ án đã hoàn thành với những kết quả đạt được theo yêu cầu của đề tài đưa ra. Tuy nhiên qua quá trình thực hiện đề tài em nhận thấy vẫn còn nhiều vấn đề khác liên quan đến lĩnh vực này cần được quan tâm. Và đây chính là hướng phát triển của đề tài để em nghiên cứu tiếp sau này. • Đối với phần lý thuyết: Em còn phải nghiên cứu sâu hơn về ngôn ngữ Microsoft.NET Framework, đặc biệt là việc lập trình sử dụng Microsoft.NET Framework để kết hợp các web service, từ đó mới có thể mở rộng ứng dụng Microsoft.NET Framework và web service trong thực tế. • Đối với ứng dụng đã xây dựng : Vì dữ liệu của ứng dụng chỉ có tính chất minh họa nên để đạt được những kết quả hứa hẹn mà công nghệ mang lại cần tổ chức dữ liệu phong phú hơn, mở rộng số lượng các web service tham gia vào hệ thống cũng như phát triển một hệ thống mềm dẻo linh hoạt hơn trong việc tương tác với các web service. • Phát triển ứng dụng thành một Search Engine hỗ trợ tìm kiếm đa lĩnh vực, cũng như đa thông tin. • Bên cạnh đó chúng ta cũng phải quan tâm đến việc làm sao để cho các service có tính an toàn, toàn vẹn và bảo mật thông tin trong web services nhất là các service liên quan đến giao dịch thương mại và tài chính. Một lần nữa em xin chân thành cảm ơn cô giáo hướng dẫn TS. Trương Diệu Linh và các thầy cô trong viện Công nghệ thông tin và truyền thông, trường Đại học Bách Khoa Hà Nội đã chỉ bảo và giúp đỡ em hoàn thành đồ án này. Do trình độ và thời gian nghiên cứu còn hạn hẹp nên dù đã cố gắng nhưng sẽ không thể tránh khỏi những thiếu sót. Rất mong nhận được sự chỉ bảo, góp ý của thầy cô và các bạn sinh viên.

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

  • docWeb Service và công nghệ Microsoft .NET Framework.doc
Tài liệu liên quan