Nghiên cứu tổng quan về web service và ứng dụng web service để xây dựng hệ thống đặt vé tàu trực tuyến qua mạng internet
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC KINH TẾ
KHOA THỐNG KÊ - TIN HỌC
VÉ TÀU TRỰC TUYẾN QUA MẠNG INTERNET
Sinh viên thực hiện:
Giảng viên hướng dẫn: ThS Nguyễn Thành Thủy
Đà Nẵng, tháng 8 năm 2012
ᄃ
Trang 2Mục Lục
Phần 1: Nghiên cứu WebService 4
1.1 Tổng quan về WebService 4
1.1.1 Khái niệm dịch vụ web 5
1.1.2 Đặc điểm của Dịch vụ Web 6
1.1.3 Ưu và Nhược Điểm 6
1.1.4 Kiến trúc của Dịch vụ Web 7
1.1.5 Các thành phần của Dịch vụ Web 8
1.1.6 An toàn cho dịch vụ Web 11
1.1.7 Xây dựng một dịch vụ Web 12
1.1.8 Các Hướng Tiếp Cận 12
1.1.9 Quy trình xây dựng một web service 13
1.2 Nghiên Cứu Một Số Vấn Đề 14
1.2.1 Web Service hoạt đôông như thế nào? 14
1.2.2 Triển khai môôt Web Service: 15
1.2.2.1 Tạo môôt Proxy: 16
1.2.2.2 Tạo Consumer: 16
1.3 Các nghi thức và các chuẩn: 17
1.3.1 Nghi thức HTTP: 17
1.3.2 Yêu cầu HTTP-GET: 17
1.3.3 Yêu cầu HTTP-POST: 17
1.3.4 XML: 18
1.3.5 SOAP: 18
1.3.6 Hỗ trợ NET đối với các nghi thức: 19
Phần 2: Giới Thiệu Các Công Cụ Thực Hiện 20
2.1 Giới thiệu NET và ASP.Net 20
2.2 Giới thiệu về Visual studio 2010 20
2.3 Giới thiệu về ngôn ngữ C# 21
Phần 3 : Cách Xây Dựng Webservice Đơn Giản Trong Visual studio.NET 22
3.1 Xây dựng Web Services 22
Trang 33.1.1 Tạo Web Services trong VS Net 22
3.1.2 Kiểm tra Web Service 23
3.2 Sử dụng Web Service 25
3.2.1 Sử dụng Web Service do người dùng xây dựng 26
3.2.2 Sử dụng Web Services được cung cấp miễn phí trên mạng 26
3.3 Xây dựng Web Services truy xuất dữ liệu 30
Phần 4: Ứng dụng dịch vụ web để xây dựng hệ thống đặt vé tàu qua mạng Internet 34
4.1 Giới Thiệu 34
4.2 Thiết kế Cơ Sở Dữ Liệu 34
4.3 Xây Dựng WebService WS_VETAU 36
4.4 Xây Dựng Webservice WS_GHIDULIEU 38
4.5 Xây Dựng WebForm Ứng Dụng 40
KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
PHỤ LỤC 44
Trang 4Phần 1: Nghiên cứu WebService
1.1 Tổng quan về WebService
Mô Hình Web Service
- Dịch vụ Web (Web Service) được coi là một công nghệ mang đến cuộc cách mạngtrong 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ếptươ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ấtthiế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ôngnghệ đá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 có thể hiểu rằng Web Services (tạm dịch là dịch vụ web) là tập hợp các
phương thức của một đối tượng mà các Client có thể gọi thực hiện từ xa thông qua một địa chỉ URL
ví dụ
Các nhà hàng, khách sạn cung cấp các Web Services cho phép đặt phòng, đặt tiệc Đường sắt Việt Nam cung cấp các Web Services cho phép đặt vé tàu Việt Nam Airline cung cấp các Web Services cho phép đặt vé cho các chuyến bay ( tập hợp các phương thức để cho các ứng dụng khác có thể sử dụng)
Công ty du lịch lữ hành sẽ sử dụng Web Services được cung cấp đó để tiến hành đặt vé tàu lửa, máy bay và đặt phòng cho chuyến du lịch theo yêu cầu của khách hàng, bằng viêc sủ dụng lại các dịch vụ web được cung cấp đó khi xây dựng trang web của mình ( tìm kiếm và sử dụng)
Rồi các cơ quan, công ty, hay khách du lịch có nhu cầu tổ chức, tham gia các chuyến du lịch có thể truy cập vào website của các công ty dịch vụ lữ hành đăng ký tham gia các "tour"
do họ tổ chức.
Trang 5Phối hợp hoạt động giữa các ứng dụng
Web Services là một chuẩn mới để xây dựng và phát triển ứng dụng phân tán, có khảnăng làm việc trên mọi hệ điều hành, mở rộng khả năng phối hợp giữa các ứng dụng, có thể tái
sử dụng, tăng cường sự giao tiếp giữa Client và Server thông qua môi trường Web
XML là định dạng dữ liệu chuẩn để trao đổi giữa các Web Services
1.1.1 Khái niệm dịch vụ web
Theo định nghĩa của W3C (World Wide Web Consortium), dịch vụ Web là một hệ thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả bằng XML Dịch vụ Web là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các chức năng và đưa ra các thông tin người dùng yêu cầu Một dịch vụ Web được tạo nên bằng cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ dịch vụ Web khác Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh nghiệp và bản thân nó được thực thi trên server.
Trang 6- Trước hết, có thể nói rằng ứng dụng cơ bản của Dịch vụ Web là tích hợp các hệ thống và
là một trong những hoạt động chính khi phát triển hệ thống Trong hệ thống này, các ứngdụng cần được tích hợp với cơ sở dữ liệu (CSDL) và các ứng dụng khác, người sử dụng sẽgiao tiếp với CSDL để tiến hành phân tích và lấy dữ liệu Thực tế trong thời gian gần đây,việc phát triển mạnh mẽ của thương mại điện tử và B2B cũng đòi hỏi các hệ thống phải cókhả năng tích hợp với CSDL của các đối tác kinh doanh (nghĩa là tương tác với hệ thống bênngoài – bên cạnh tương tác với các thành phần bên trong của hệ thống trong doanh nghiệp)
- Dưới đây, chúng ta sẽ xem qua những khái niệm và cách thức cơ bản nhất để xây dựngmột dịch vụ Web trong tích hợp và phát triển hệ thống
1.1.2 Đặc điểm của Dịch vụ Web
o 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ànhWindows, ứ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
o 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áttriển từ các chuẩn đã được công nhận, ví dụ như XML
o 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
o 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ữngnhà cung cấp khác và cả những cá nhân thông qua mạng Internet
o 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, OracleApplication server hay Microsoft.Net…
o 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ể ápdụ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); ứngdụ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ánhàng qua mạng, thông tin thương mại như giá cả, tỷ giá hối đoái, đấu giá qua 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 tinthuê xe…
o 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ệnthươ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ủaInternet 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ợpcá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
1.1.3 Ưu và Nhược Điểm
Ưu điểm:
o 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ácnhau chạy trên những nền tảng khác nhau
Trang 7o 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.
o Nâng cao khả năng tái sử dụng
o 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ếntrình/chức năng nghiệp vụ đóng gói trong giao diện dịch vụ Web
o 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
o 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ệpkhác
- Nhược điểm:
o 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ệnkhô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ứccho việc vận hành
o Có quá nhiều chuẩn cho dịch vụ Web khiến người dùng khó nắm bắt
o Phải quan tâm nhiều hơn đến vấn đề an toàn và bảo mật
1.1.4 Kiến trúc của Dịch vụ Web
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 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.
Hình 1 Chồng giao thức của dịch vụ Web
- 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à giaothức thay đổi khổi mở rộng (Blocks Extensible Exchange Protocol- BEEP)
Trang 8+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ệucho các thao tác và chức năng mà dịch vụ Web cung cấp
+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ìmkiế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
Kiến trúc sâu hơn được mô tả trong Hình 2:
- Trong đó, tầng giao thức tương tác dịch vụ (Service Communication Protocol) với côngnghệ 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
1.1.5 Các thành phần của Dịch vụ Web
o Là một chuẩn mở do W3C đưa ra cho cách thức mô tả dữ liệu, nó được sử dụng để địnhnghĩa các thành phần dữ liệu trên trang web và cho những tài liệu B2B Về hình thức,XML hoàn toàn có cấu trúc thẻ giống như ngôn ngữ HTML nhưng HTML định nghĩathành phần được hiển thị như thế nào thì XML lại định nghĩa những thành phần đóchứa cái gì Với XML, các thẻ có thể được lập trình viên tự tạo ra trên mỗi trang web
và được chọn là định dạng thông điệp chuẩn bởi tính phổ biến và hiệu quả mã nguồnmở
Trang 9o Do dịch vụ Web là sự kết hợp của nhiều thành phần khác nhau nên nó sử dụng các tínhnăng và đặc trưng của các thành phần đó để giao tiếp XML là công cụ chính để giảiquyết vấn đề này và là kiến trúc nền tảng cho việc xây dựng một dịch vụ Web, tất cả dữliệu sẽ được chuyển sang định dạng thẻ XML Khi đó, các thông tin mã hóa sẽ hoàntoàn phù hợp với các thông tin theo chuẩn của SOAP hoặc XML-RPC và có thể tươngtác với nhau trong một thể thống nhất.
WSDL định nghĩa cách mô tả dịch vụ Web theo cú pháp tổng quát của XML, bao gồm cácthông tin:
o Tên dịch vụ
o Giao thức và kiểu mã hóa sẽ được sử dụng khi gọi các hàm của dịch vụ Web
o Loại thông tin: thao tác, tham số, những kiểu dữ liệu (có thể là giao diện của dịch vụWeb cộng với tên cho giao diện này)
o Một WSDL hợp lệ gồm hai phần: phần giao diện (mô tả giao diện và phương thức kếtnối) và phần thi hành mô tả kết quả thông tin truy xuất CSDL Cả hai phần này sẽ đượclưu trong 2 tập tin XML tương ứng là tập tin giao diện dịch vụ và tập tin thi hành dịch
vụ Giao diện của một dịch vụ Web được miêu tả trong phần này đưa ra cách thức làmthế nào để giao tiếp qua dịch vụ Web Tên, giao thức liên kết và định dạng thông điệpyêu cầu để tương tác với dịch vụ Web được đưa vào thư mục của WSDL
o WSDL thường được sử dụng kết hợp với XML schema và SOAP để cung cấp dịch vụWeb qua Internet Một client khi kết nối tới dịch vụ Web có thể đọc WSDL để xác địnhnhững chức năng sẵn có trên server Sau đó, client có thể sử dụng SOAP để lấy ra chứcnăng chính xác có trong WSDL
o Như Vậy: Để sử dụng một Web Service, Client cần phải biết Web Service đó hỗ trợnhững phương thức nào, phương thức cần có những tham số nào, kết quả trả về ra sao.Những thông tin này của một Web Service được mô tả bởi tài liệu WSDL
o Chúng ta có thể xem WSDL của một Web Service bằng cách thêm vào chuỗi tham sốwsdl vào sau chuỗi URL
Ví dụ:
http://localhost /Chuong09WebService/WS_PHEP_TOAN.asmx?wsdl
o Dùng cho việc mô tả, công bố và tìm kiếm Web Service
o Để có thể sử dụng các dịch vụ web, trước tiên client phải tìm dịch vụ, ghi nhận thôngtin về cách sử dụng và biết được đối tượng nào cung cấp dịch vụ UDDI định nghĩa một
số thành phần cho biết các thông tin này, cho phép các client truy tìm và nhận nhữngthông tin được yêu cầu khi sử dụng dịch vụ Web
o Cấu trúc UDDI :
Trang 10+ Trang trắng – White pages: chứa thông tin liên hệ và các định dạng chính yếu của
dịch vụ Web, chẳng hạn tên giao dịch, địa chỉ, thông tin nhận dạng… Những thông tin nàycho phép các đối tượng khác xác định được dịch vụ
+ Trang vàng – Yellow pages: chứa thông tin mô tả dịch vụ Web theo những loại
khác nhau Những thông tin này cho phép các đối tượng thấy được dịch vụ Web theo từngloại với nó
+ Trang xanh – Green pages: chứa thông tin kỹ thuật mô tả các hành vi và các chức
năng của dịch vụ Web
+ Loại dịch vụ – tModel: chứa các thông tin về loại dịch vụ được sử dụng.
o Những thông tin về dịch vụ Web được sử dụng và công bố lên mạng sử dụng giao thứcnày Nó sẽ kích hoạt các ứng dụng để tìm kiếm thông tin của dịch vụ Web khác nhằmxác định xem dịch vụ nào sẽ cần đến nó
o Chúng ta đã hiểu cơ bản dịch vụ Web như thế nào nhưng vẫn còn một vấn đề khá quantrọng Đó là làm thế nào để truy xuất dịch vụ khi đã tìm thấy? Câu trả lời là các dịch vụWeb 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àntheo định dạng của SOAP
o SOAP là một giao thức giao tiếp có cấu trúc như XML Nó được xem là cấu trúc xươngsống của các ứng dụng phân tán được xây dựng từ nhiều ngôn ngữ và các hệ điều hànhkhác nhau SOAP là giao thức thay đổi các thông điệp dựa trên XML qua mạng máytính, thông thường sử dụng giao thức HTTP
o Một client sẽ gửi thông điệp yêu cầu tới server và ngay lập tức server sẽ gửi nhữngthông điệp trả lời tới client Cả SMTP và HTTP đều là những giao thức ở lớp ứng dụngcủa SOAP nhưng HTTP được sử dụng và chấp nhận rộng rãi hơn bởi ngày nay nó cóthể làm việc rất tốt với cơ sở hạ tầng Internet
o Cấu trúc một thông điệp theo dạng SOAP
o Thông điệp theo định dạng SOAP là một văn bản XML bình thường bao gồm các phần
Phần tử khai báo nội dung chính trong thông điệp – body, chứa các thông tinyêu cầu và thông tin được phản hồi
Phần tử đưa ra các thông tin về lỗi -fault, cung cấp thông tin lỗi xảy ra trongqúa trình xử lý thông điệp
o Một SOAP đơn giản trong body sẽ lưu các thông tin về tên thông điệp, tham chiếu tớimột thể hiện của dịch vụ, một hoặc nhiều tham số Có 3 kiểu thông báo sẽ được đưa rakhi truyền thông tin: request message(tham số gọi thực thi một thông điệp), respond
Trang 11message (các tham số trả về, được sử dụng khi yêu cầu được đáp ứng) và cuối cùng làfault message (thông báo tình trạng lỗi).
o Kiểu truyền thông: Có 2 kiểu truyền thông
Remote procedure call (RPC): cho phép gọi hàm hoặc thủ tục qua mạng Kiểunày được khai thác bởi nhiều dịch vụ Web
Document: được biết đến như kiểu hướng thông điệp, nó cung cấp giao tiếp ởmức trừu tượng thấp, khó hiểu và yêu cầu lập trình viên mất công sức hơn
o Hai kiểu truyền thông này cung cấp các định dạng thông điệp, tham số, lời gọi đến cácAPI khác nhau nên việc sử dụng chúng tùy thuộc vào thời gian và sự phù hợp với dịch
vụ Web cần xây dựng
o Cấu trúc dữ liệu: Cung cấp những định dạng và khái niệm cơ bản giống như trong cácngôn ngữ lập trình khác như kiểu dữ liệu (int, string, date…) hay những kiều phức tạphơn như struct, array, vector… Định nghĩa cấu trúc dữ liệu SOAP được đặt trongnamespace SOAP-ENC
o Mã hóa: Giả sử service rquester và service provider được phát triển trong Java, khi đó
mã hóa SOAP là làm thế nào chuyển đổi từ cấu trúc dữ liệu Java sang SOAP XML vàngược lại, bởi vì định dạng cho Web Service chính là XML Bất kỳ một môi trườngthực thi SOAP nào cũng phải có một bảng chứa thông tin ánh xạ nhằm chuyển đổi từngôn ngữ Java sang XML và từ XML sang Java – bảng đó được gọi làSOAPMappingRegistry Nếu một kiểu dữ liệu được sử dụng dưới một dạng mã hóa thì
sẽ có một ánh xạ tồn tại trong bộ đăng ký của môi trường thực thi SOAP đó
1.1.6 An toàn cho dịch vụ Web
o Dịch vụ Web liên kết và tương tác với các ứng dụng qua Internet, chính vì vậy bảo mật
là một vấn đề được quan tâm khi các công ty tiến tới kết hợp ứng dụng với một dịch vụWeb Việc đảm bảo an toàn cho dịch vụ Web là một vấn đề quan trọng, đặc biệt đối vớinhững dịch vụ liên quan đến trao đổi tiền tệ, thông tin từ thị trường chứng khoán haydịch vụ bán hàng qua mạng (liên quan đến trả tiền bằng tài khoản và có yêu cầu thôngtin cá nhân của người dùng)
o Trước khi có WS-Security (bảo mật cho dịch vụ Web) thì ý nghĩa thông thường của antoàn dịch vụ Web là bảo mật kênh truyền dữ liệu Hiện nay, nó được thực hiện chonhững SOAP/HTTP dựa trên cơ chế truyền thông điệp bằng cách sử dụng giao thứcHTTPS Không chỉ là an toàn ở mức truyền thông điệp, HTTPS còn cung cấp sự antoàn tới toàn bộ gói dữ liệu HTTP
o Mặc dù HTTPS không bao gồm tất cả các khía cạnh trong chuẩn an toàn chung chodịch vụ Web nhưng nó đã cung cấp một lớp bảo mật khá đầy đủ với định danh, chứngthực, tính toàn vẹn thông điệp hay độ tin cậy
o Đảm bảo an toàn cho dịch vụ Web:
Khái niệm về WS-Security: đây là một chuẩn an toàn bao trùm cho SOAP, nó
được dùng khi muốn xây dựng những dịch vụ Web toàn vẹn và tin cậy Toàn vẹn cónghĩa là khi có một giao dịch hay khi truyền thông tin, hệ thống và thông tin sẽ không bịchặn, giao dịch sẽ không bị mất cũng như không thể có người lấy cắp được dữ liệu trênđường truyền WS-security được thiết kế mang tính mở nhằm hướng tới những mô hình
an toàn khác bao gồm PKI, Kerberos và SSL Nó cũng đưa ra nhiều hỗ trợ cho các cơ chế
an toàn khác, nhiều khuôn dạng chữ ký và công nghệ mã hóa, đảm bảo sự an toàn, toànvẹn thông điệp và tính tin cậy của thông điệp Tuy nhiên, WS-security cũng chưa thể đảm
Trang 12bảo được tất cả yêu cầu về bảo mật và an toàn thông tin, nó chỉ là một trong những lớpcủa giải pháp an toàn cho dịch vụ Web.
Tính toàn vẹn: tạo ra một chữ ký số hóa XML dựa trên nội dung của thông điệp.
Nếu dữ liệu bị thay đổi bất hợp pháp, nó sẽ không còn thích hợp với chữ ký số hóaXML đó Chữ ký này được tạo ra dựa trên khóa mà người gửi thông điệp tạo ra, do đóngười nhận chỉ nhận thông điệp khi có chữ ký sử dụng và nội dung phù hợp Ngược lại
sẽ có một thông báo lỗi Việc chứng thực được thực hiện giữa client và server là cáchchứng thực rất cơ bản (sử dụng định danh người dùng và mật khẩu)
o WS-security chỉ là một trong những lớp an toàn và bảo mật cho dịch vụ Web, vì vậycần một mô hình an toàn chung lớn hơn để có thể bao quát được các khía cạnh khác.Các thành phần được thêm có thể là WS-Secure Conversation Describes,WS-Authentication Describes,WS-Policy Describes hay WS-Trust Describes Chúng sẽthực hiện việc đảm bảo an toàn hơn cho hệ thống khi trao đổi dữ liệu, mở và đóng cácphiên làm việc cũng như quản lý dữ liệu cần chứng thực và chính sách chứng thực
1.1.7 Xây dựng một dịch vụ Web
Có 4 giai đoạn chính để xây dựng một dịch vụ Web là xây dựng, triển khai, tiến hành và quản
lý, trong đó:
o Giai đoạn xây dựng bao gồm phát triển và chạy thử ( kiểm tra) ứng dụng dịch vụ Web,
xây dựng các chức năng và định nghĩa dịch vụ Có hai cách khác nhau để tiến hànhtrong giai đoạn này, đó là Red-path- solod và Blue-path-dashed Với Red- path-solod,chúng ta sẽ xây dựng một dịch vụ Web mới từ trạng thái ban đầu hoặc với một dịch vụ
đã có sẵn Từ đó, xây dựng định nghĩa service (WSDL) với các đối tượng, hàm chứcnăng mà chúng ta mong muốn Nếu theo cách Blue-path-dashed, dịch vụ Web sẽ đượcxây dựng từ đầu hoặc từ một định nghĩa dịch vụ WSDL Sử dụng WSDL này, xây dựnghoặc sửa đổi lại mã để thực hiện các yêu cầu mong muốn trong dịch vụ Web
o Giai đoạn triển khai: công bố định nghĩa dịch vụ, xây dựng WSDL và triển khai mãthực thi của dịch vụ Web Triển khai dịch vụ Web tới một ứng dụng phía server, sau đó
sẽ công bố dịch vụ Web trên mạng Internet để các client có thể nhìn thấy Sử dụngUDDI registry để công bố lên mạng
o Giai đoạn tiến hành: tìm kiếm và gọi thực thi dịch vụ Web bởi những người dùng muốn
Trang 13dụng đã có (bottom-up); từ một định nghĩa dịch vụ, WSDL để phát sinh một ứng dụng mới(top-down) hoặc có thể từ một nhóm các dịch vụ Web hiện có, kết hợp lại với nhau để tạo nêncác chức năng mới hoặc mở rộng thêm chức năng Những hướng tiếp cận này dựa trên những
gì mà chúng ta đã có, tùy thuộc vào yêu cầu của hệ thống, trong đó tối đa việc sử dụng lại cácchức năng, các thành phần, môđun đã được xây dựng
1.1.9 Quy trình xây dựng một web service
Qui trình xây dựng một dịch vụ Web bao gồm các bước sau:
1 Định nghĩa và xây dựng các chức năng, các dịch vụ mà dịch vụ sẽ cung cấp (sửdụng ngôn ngữ cụ thể nào đó để thực hiện C#, Java…)
2 Tạo WSDL cho dịch vụ
3 Xây dựng SOAP server
4 Đăng ký WSDL với UDDI registry để cho phép các client có thể tìm thấy và truyxuất.( công bố lên mạng)
5 Client nhận file WSDL và từ đó xây dựng SOAP client để có thể kết nối với SOAPserver
6 Xây dựng ứng dụng phía client (chẳng hạn sử dụng VS để tạo một webform) và sau
đó gọi thực hiện dịch vụ thông qua việc kết nối tới SOAP server
o Lựa chọn một ngôn ngữ, xây dựng các tiến trình nghiệp vụ và chúng ta bắt đầu tạo nênmột dịch vụ Web như ý muốn Sau đó là cung cấp dịch vụ Web này trên Internet
- Tích hợp dịch vụ Web theo chuẩn
o Để có thể thành công với dịch vụ Web chúng ta phải quan tâm đến khá nhiều vấn đề,bao gồm việc triển khai, giám sát và tích hợp hệ thống Doanh nghiệp không nhữngphải phát triển một ứng dụng dịch vụ Web mới mà còn phải tích hợp các ứng dụngnghiệp vụ phụ trợ của họ trong kiến trúc Dịch vụ Web Cùng với việc triển khai và tíchhợp, những nhà kinh doanh và những người sử dụng kỹ thuật cũng cần có khả nănggiám sát, triển khai toàn diện để đảm bảo hoạt động kinh doanh hiệu quả và tin cậy
o Giám sát (monitoring): Cần hỗ trợ ở cả mức công cụ và cơ sở hạ tầng để giám sát cácdịch vụ Web chạy như thế nào qua toàn bộ mạng, từ một chi nhánh con của một công
ty trên mạng tới các chi nhánh khác trong công ty hay giao tiếp với doanh nghiệp khác.Kết hợp thông báo theo sự kiện với các lỗi trong luồng nghiệp vụ cho những ngườidùng không có kinh nghiệm giám sát dịch vụ Web và các dịch vụ kế thừa khác
o Xác định đường đi dữ liệu (Data routing): Việc thiết lập đường đi của dữ liệu giữanhững thành phần của dịch vụ Web hướng tới tối đa hóa khả năng sử dụng lại Nếu coimột thành phần (component) là một đối tượng thì mỗi thể hiện (instance) của nó sẽkhông quan tâm đến các thể hiện khác của cùng thành phần đó Những thể hiện củacùng một thành phần có thể dễ dàng được sử dụng lại trong các ứng dụng phân tán khácbởi vì chúng hoàn toàn độc lập và không phụ thuộc lẫn nhau
o Triển khai (Deployment): Triển khai các dịch vụ Web có khả năng nâng cấp, điều khiển
và cấu hình các thành phần từ xa thông qua mạng phân tán
o Quản lý (Management): Có thể xây dựng theo kiến trúc P2P (Peer-to-Peer) Các hoạtđộng chính như thực thi các thành phần, định tuyến dữ liệu, xử lý luồng công việc vàchuyển đổi dữ liệu được thực hiện tại các điểm cuối của mạng Server sẽ tập trung giảiquyết các hoạt động khác như quản lý, điều khiển sự kiện, chứng thực bảo mật và quảntrị
Trang 14o Cấu hình và quản lý phiên bản (Configuration and version management): Sử dụng cáccông cụ linh hoạt để quản lý các phiên bản khác nhau của dịch vụ Web, cho phép cácphiên bản được nâng cấp và điều khiển từ một công cụ quản lý tập trung Kết hợp giữaứng dụng và mạng giúp các kỹ sư triển khai có thể điều khiển các thành phần chạy trênnền tảng hệ thống phần cứng cụ thể bên trong mạng.
o Bảo mật (Security): các chuẩn mở như HTTP, XML, SOAP, WSDL và chuẩn bảo mậtJSM được sử dụng rộng rãi khiến chúng trở thành lý tưởng để xây dựng các ứng dụngweb Đầu tiên, dịch vụ Web sử dụng những công nghệ này giống như firewall, SSL vàcác chứng nhận số Dịch vụ Web thế hệ sau này sẽ kết hợp với những công nghệ có khảnăng bảo mật cao hơn, giống như mã hóa XML và chứng nhận số XML
- Như vậy, với một dịch vụ Web, việc giao tiếp và truyền nhận dữ liệu trở nên dễ dàng vàhiệu quả hơn, đồng thời đem lại chi phí thấp hơn và tăng cường những khả năng giao tiếpthời gian thực, kết nối với mọi người trên khắp thế giới Bản chất của nền tảng công nghệnày là kiến trúc hướng dịch vụ và sự phát triển của dịch vụ Web có tương lai rất khả quan
1.2 Nghiên Cứu Một Số Vấn Đề
1.2.1 Web Service hoạt động như thế nào?
Web service cho phép một đối tượng nằm trên service có thể trưng ra phần lôgic chươngtrình cho các khách hàng trên Internet Các khách hàng sẽ triệu gọi những hàm hành sự đượctrưng ra trên web service nhờ sử dụng những nghi thức chuẩn của Internet Nói một cách ngắngọn, web service chẳng qua chỉ là một triệu gọi hàm hành sự trên Internet
Kiến trúc web service có nhiều đặc tính được định nghĩa như sau:
• Cả hai web service server và ứng dụng client được kết nối trên Internet và có khảnăng liên lạc với các thiết bị khác được kết nối với Internet
• Dạng thức dữ liệu mà hai đầu nối liên lạc với nhau tuân thủ cùng một chuẩn mở.Chuẩn này thường là nghi thức SOAP, các thông điệp SOAP thường gồm những tàiliệu XML dạng văn bản và tự mô tả Ta cũng có khả năng liên lạc thông qua các yêucầu HTTP-GET hoặc HTTP-POST
• Các hệ thống ở hai đầu kết nối sẽ được gắn kết một cách lỏng lẻo Nói cách khác,web service bất cần biết hệ điều hành, mô hình đối tượng hoặc ngôn ngữ lập trìnhđược dùng đến ở hai đầu kết nối là gì, miễn là web service và ứng dụng tiêu thụ cókhả năng gởi đi và nhận về những thông điệp tuân thủ nghi thức chuẩn thích ứng
Ngoài việc tạo web service cũng như tiêu thụ web service, có những khía cạnh khác ta phảiquan tâm, bao gồm:
Protocol (nghi thức).
Web service phải liên lạc với client, và ngược lại, theo một thể thức nào đó mà cả haiphía đều sẽ hiểu nhau
Trang 15Directories (thư mục).
Các web service sẽ được phát triển bởi hàng ngàn hoặc hành trăm ngàn công ty khácnhau trên thế giới Directory sẽ được tạo ra để liệt kê các dịch vụ này và hiện diện sẵn dànhcho lập trình viên triển khai Tuy nhiên, muốn cho những thư mục này hữu ích phải có nhữngqui ước liên quan đến khám phá (discovery) và mô tả
Discovery (khám phá, phát hiện).
Các khách hàng tiềm năng sẽ cần thiết tìm ở đâu (phát hiện) những tài liệu mô tả webservice Như vậy, web service thường sẽ cung cấp những tài liệu khám phá-các tập tin XMLchứa những thông tin cho phép những khách hàng tiềm năng tìm ra những tập tin khác mô tảweb service
Description (mô tả).
Một khi web service đã được nhận diện, thông qua khám phá hoặc những phương tiệnnào đó, nó phải làm sẵn một tài liệu mô tả những nghi thức hỗ trợ và giao diện lập trình choviệc sử dụng nó WSDL (Web Service Description Language) sẽ được dùng đẻ mô tả webservice và tất cả các hàm hành sự được trưng ra kèm theo những thông số của các hàm Nóingắn gọn, việc mô tả cho biết những hàm hành sự nào web service sẽ trưng ra, những thông sốnào hàm cần đến, và loại dữ liệu nào hàm sẽ trả về
Security (an toàn).
Phần lớn các server được kết nối với Internet với sự quan tâm về mặt an toàn Webservice phải sống chung với những hạn buộc về an toàn Thường xuyên, bạn phải hạn chế việctruy cập đối với một số loại khách hàng
State (trạng thái, tình trạng).
Giống như với trang web, web service sử dụng HTTP, là một nghi thức vô tình trạng(stateless) Giống như với trang web, NET Framework cung cấp những công cụ cho phép duytrì tình trạng, nếu ứng dụng yêu cầu điều này
1.2.2 Triển khai một Web Service:
Tiến trình triển khai một web service hầu như tương tự việc triển khai một trang web:
• Tất cả các tập tin mã nguồn bao gồm trang web và web service đều là những tập tinvăn bản trần, có thể được tạo và hiệu đính bởi bất cứ text editor nào đó, rồi sau đóđược biên dịch bởi một công cụ command-line từ một dấu nhắc lệnh (commandprompt)
• Cả hai trang web và web service có thể được tạo ra bởi Vsual Studio NET>
• Cả hai trang web và web service có thể sử dụng code-behind Code-behind thườngđược xem như là một cách tách rời phần nội dung visual khỏi phần nội dung lập trìnhtrên các trang web Như thế, việc sử dụng code-behind trên web service ít bắt buộchơn vì web service không có phần giao diện Tuy nhiên, Visual Studio NETsdcb đối
Trang 16với mọi dự án web, visual hoặc không nên có thể sử dụng được đặc biệt web service.Thật thế, khi sử dụng Visual Studio NET để tạo web service, code-behind sẽ đượcdùng như là mặc nhiên.
• Cả hai trang web và web service sẽ tận dụng khả năng của CLR và NET Framework
Tuy nhiên, khi trang web được nhận diện bởi phần đuôi aspx thì web service sẽ được nhậndiện bởi tập tin asmx
Web service cũng tương tự như một trang web nhưng không có phần giao diện theo đấycác hàm hành sự thuộc lớp web service sẽ được trưng ra cho thế giới bên ngoài biết và đượcgọi là web method Web service cho phép triệu gọi hàm hành sự trên Internet
Một khi trang asmx đã hoàn tất, lớp web service phải được biên dịch thành một dll, theo dạngthức mà các request có thể “với” tới Bạn có thể biên dịch nhờ command prompt hoặc VisualStudio NET cả hai cách biên dịch đều có những ưu điểm và nhược điểm
1.2.2.1 Tạo một Proxy:
Trước khi một ứng dụng client có thể dùng một web service, ta phải tạo một proxy (đạidiện ủy thác) Một proxy là một thay thế đoạn mã hiện thời mà bạn muốn triệu gọi Proxy chịutrách nhiệm việc marshaling – hoặc quản lý – cuộc triệu gọi xuyên biên giới máy tính Cácrequest đối với web service trên server phải tuân thủ nghi thức và dạng thức thích ứng, thường
là SOAP và/hoặc HTTP Bạn cũng có thể viết tất cả đoạn mã đẻ serialize và chuyển dữ liệuthích ứng cho bản thân web service, nhưng việc này đòi hỏi nhiều công sức Proxy sẽ làm thaybạn mọi việc này
Proxy sẽ được đăng ký cùng với ứng dụng client Sau đó ứng dụng client cho triệu gọihàm hành sự tưởng như là triệu gọi một đối tượng cục bộ Proxy sẽ làm mọi việc triệu gọi hàmcủa bạn, cho gói ghém chúng theo một dạng thức thích ứng rồi gửi chúng cho server như làmột SOAP request Khi server trả về SOAP packge cho khách hàng, thì proxy sẽ lo giải mãmọi việc và “trình dâng” phúc đáp cho ứng dụng client làm như là nó trả về từ những triệu gọicục bộ
Muốn cho chạy việc, lập trình viên phải tạo một proxy, cho đăng ký proxy với ứng dụngclient khi triển khai Việc đăng ký này bao gồm một danh sách các hàm hành sự kèm theo dấu
ấn (signature) Chủ sở hữu web service có thể thêm bổ sung những hàm hành sự mới hoặc nhật
tu những hàm hành sự hiện hữu (nhưng không thay đổi dấu ấn) và proxy hiện hành sẽ không bịvỡ
1.2.2.2 Tạo Consumer:
Ứng dụng tiêu thụ một web service có thể là một ứng dụng để bàn, một trang web, hoặcmột web service khác Tất cả đòi hỏi là ứng dụng tiêu thụ phải có khả năng gởi đi và nhận về
Trang 17những “bó dữ liệu” (package) dạng thức SOAP hoặc HTTP Nếu bạn triển khai ứng dụngclient nhờ Visual Studio NET, bạn chỉ cần đăng ký proxy dll với ứng dụng Nếu bạn sử dụngcommand prompt, bạn chỉ cần đưa qui chiếu về proxy dll khi biên dịch ứng dụng Nếu ứngdụng tiêu thụ là một trang web hoặc một web service khác, thì lúc này sẽ tìm ra nơi cư trú củaproxy trên server đã chứa chấp trang web tiêu thụ là một ứng dụng đẻ bàn (desktop) thì lúc nàyproxy sẽ nằm trên máy đẻ bàn Trong bất cứ trường hợp nào, một proxy đã được tạo và đăng
ký với ứng dụng tiêu thụ, thì ứng dụng này chỉ làm mỗi một việc là thực hiện nững triệu gọihàm hành sự hoặc hàm đối với đối tượng proxy, xem như là đối tượng cục bộ
1.3.2 Yêu cầu HTTP-GET:
Trên những GET request, những cặp name/value sẽ được ghi nối đuôi trực tiếp lên URL
Dữ liệu không được mã hóa (bảo đảm là những ký tự ASCII hợp lệ sẽ được chuyển đi) đượcghi nối đuôi sau đó vào URL, phân cách bởi một dấu hỏi (?) Dấu hỏi cho biết là một HTTP-GET request, tên của biến được trao qua cho hàm hành sự GetName là StockSymbol mang trịmsft GET request chỉ thích hợp khi tất cả các dữ liệu được trao qua gồm toàn những cặpname/value, có ít vùng mục tin phải trao qua và chiều dài các vùng mục tin này tương đốingắn GET request cũng thích hợp khi vấn đề an toàn không phải là một vấn đề NETFramework cung cấp một lớp HttpGetClientProtocol để dùng nghi thức HTTP-GET trên cácứng dụng client
1.3.3 Yêu cầu HTTP-POST:
Trên các POST request, các cặp name/value cũng không được mã hóa, nhưng thay vì ghinối đuôi sau URL, chúng sẽ được gởi đi như thành phần của thông điệp yêu cầu POST request
sẽ rất thích hợp đối với một số vùng mục tin khá nhiều hoặc những thông số dài dòng cần được
Trang 18trao qua Ngoài ra, nếu vấn đề an toàn là quan trọng, thì một POST request sẽ an toàn hơn làmột GET request, vì HTTP request có thể được mật mã hóa (encrypted)
Giống như GET request, với POST request chỉ những cặp name/value mới có thể đượctrao qua,như vậy sẽ loại trừ những kiểu dữ liệu phức tạp .NET Framework cung cấp một lớpHttpPostClientProtocol được dùng trong nghi thức HTTP-POST trong các ứng dụng client củabạn
Các tài liệu XML là những tập tin văn bản người ta có thể đọc được Tuy nhiên, chúngđiển hành không dành cho người đọc ngoài trừ khi bạn là lập trình viên hoặc gỡ rối viên Vìtag sẽ được dùng để dịnh nghĩa mọi vùng mục tin trong một tài liệu XML, các tập tin thường
sẽ lớn hơn là với cùng dữ liệu trên một tập tin căn cứ dữ liệu Tuy nhiên, đây ít khi trở thànhmột vấn đè, và khác biệt về thời gian chuyển tải trên Internet thường là không “nhằm nhò” gìkhi so sánh tốc độ máy tính ngày hôm nay Một schema XML là một tập tin dùng để địnhnghĩa các tag Trong schema,cả hai tên tag và nội dung dữ liệu sẽ được định nghĩa Một khácbiệt khá quan trọng giữa HTML và XML là trong khi phần lớn các bộ đọc HTML (nghĩa làweb browser) là khá dễ dãi đối với những sai lầm lập trình, thì XML reader khá khắt khe đòihỏi XML phải well-formed
1.3.5 SOAP:
SOAP (Simple Object Access Protocol) là một văn phạm XML được cắt xén vừa với việctrao đổi dữ liệu web service Trên một NET web service, thường bạn gởi đi những thông điệpSOAP trên HTTP SOAP là một nghi thức đơn giản, nhẹ cân (nghĩa là không tốn hao nhiều kýức) dùng để trao đổi thông tin trên Internet Giống như XML, chuẩn SOAP cũng được khởixướng bởi W3C
SOAP sử dụng cú pháp XML để định dạng nội dung của nó Theo thiết kế, nó càng đơngiản càng tốt và cung cấp chức năng tối thiểu Do đó, nó rất modular và uyển chuyển Vì cácthông điệp SOAP gồm toàn XML, nghĩa là văn bản trần, chúng có thể vượt qua dễ dàng bứctường lửa khác với nhiều dạng thức nhị phân mang tính proprietary Hiện thời, phiên bảnSOAP chót nhất là 1.2
SOAP không giới hạn vào các cặp name/value như là với HTTP-GET và HTTP-POST.Thay vào đó, SOAP cũng có thể được dùng để gởi đi những đối tượng phức tạp hơn bao gồmdataset, lớp và các đối tượng khác
Một số bất lợi khi sử dụng SOAP để gởi đi đi về về những request cho web service là cácthông điệp SOAP có thể trở thành lải nhải (verbose) vì bản chất của XML Do đó, nếu băngthông (bandwidth) hoặc hiệu năng truyền tin là một vấn đề thì có thể bạn nên sử dụng HTTP-
Trang 19GET hoặc HTTP-POST .NET Framework cung cấp một lớp SoapHttpClientProtocol để dùngvào nghi thức SOAP trong các ứng dụng client.
1.3.6 Hỗ trợ NET đối với các nghi thức:
.NET Framework cung cấp một số lớp cho phép tương tác với nghi thức HTTP
Trang 20Phần 2: Giới Thiệu Các Công Cụ Thực Hiện
2.1 Giới thiệu NET và ASP.Net
Phần quan trọng của VS NET là các công nghệ mới với trung tâm là NET Framework tập các tính năng Windows được xây dựng trên nền tảng môi trường thực thi ngôn ngữ chung(CLR – Common Language Runtime), trên đó là các lớp thư viện dùng để xây dựng ứng dụngWindows, ứng dụng web và dịch vụ web XML Tất cả ngôn ngữ NET đều được dịch sangdạng ngôn ngữ trung gian của Microsoft (MSIL – Microsoft Intermediate Language) trước rồimới được dịch sang dạng mã thực thi bởi một trình dịch JIT (Just – in Time) trên nền NET.CLR và MSIL cho phép tất cả các ngôn ngữ NET làm việc với nhau Ví dụ bạn có thể dùngmột lớp C# kế thừa từ một đối tượng COM C++/ATL, lớp này lại có thể bắt lỗi từ một chươngtrình Vbasic Nhờ có sự hỗ trợ từ cấp hệ thống cho phép tích hợp đa ngôn ngữ, bạn có thể chạytừng bước để bẫy lỗi qua cả 3 ngôn ngữ trong cùng một môi trường phát triển ứng dụngVS.NET
-Trình dịch JIT cung cấp thêm khả năng bảo mật, tính an toàn lúc thực thi và khả năngchạy trên nhiều nền tảng (Microsoft cho biết sẽ dùng một tập con chuẩn hoá của .NETFramework - được gọi là nền tảng ngôn ngữ chung” - để xây dựng một thể hiện trênFreeBSD) Nếu trình JIT cho mã ngôn ngữ trung gian làm bạn liên tưởng đến Java thì cũngđừng hoang mang, Microsoft đã lẳng lặng dùng ngôn ngữ trung gian trong Vbasic và hầu hếtcác phần mềm ứng dụng của mình (kể cả Office)từ nhiều năm qua
ASP.NET là một nền tảng ứng dụng web (web application framework) được phát triển vàcung cấp bởi Microsoft, cho phép những người lập trình tạo ra những trang web động,những ứng dụng web và những dịch vụ web Lần đầu tiên được đưa ra thị trường vào tháng 2năm 2002 cùng với phiên bản 1.0 của NET framework, là công nghệ nối tiếp của Microsoft'sActive Server Pages(ASP) ASP.NET được biên dịch dưới dạngCommon LanguageRuntime (CLR), cho phép những người lập trình viết mã ASP.NET với bất kỳ ngôn ngữ nàođược hỗ trợ bởi NET language
2.2 Giới thiệu về Visual studio 2010
Phiên bản Visual Studio 2010 hỗ trợ các ngôn ngữ lập trình hướng đối tượng mới như:C#, VB.Net, J#, C++.Net Visual studio 2010 là bộ công cụ phát triển phần mềm tích hợpmạnh mẽ với những tính năng:
Trang 21- Thiết kế giao diện, hỗ trợ viết mã (coding): VS 2010 có khả năng sử dụng lại các đoạn mã
mẫu Không những thế, VS 2010 cho phép tạo ứng dụng với giao diện giống giống giao diệncủa Outlook
- Xây dựng ứng dụng Web nhanh hơn: VS 2010 đã đưa vào công cụ phát triển Web mới là
Visual Web Developer Công cụ này cho phép tạo ra các ứng dụng Web được viết bằngASP.NET 4.0 Với Visual Web Developer, có khoảng 50 điều khiển Web mới được tích hợpgiúp phát triển ứng dụng Web nhanh và đơn giản hơn
- Hỗ trợ phát triển ứng dụng cho thiết bị di động: Microsoft đã xây dựng môi trường phát triển
ứng dụng.Net Compact Framework vừa nhỏ gọn như J2 ME mà lại đơn giản, dễ sử dụngnhư.Net Môi trường phát triển ứng dụng này có thể hoạt động trên các điện thoại di động, cácthiết bị có sử dụng HĐH Windows CE, Windows Mobile
- Đóng gói và triển khai ứng dụng: Nhờ công nghệ đóng gói và triển khai ứng dụng ClickOne
mới, bạn sẽ dễ dàng triển khai các ứng dụng đó trên máy chủ Web, hoặc các mạng chia sẻ tậptin
- Hỗ trợ ứng dụng 64 bit: NetFramework 4.0 cũng như Visual Studio 2010 hỗ trợ tốt và tối
ưu cho tính toán 64 bit
- Đa dạng sản phẩm: Visual Studio 2010 được phát hành không chỉ là vài bản như: Standard,
Pro, Premium giống các phiên bản trước Microsoft phát hành không chỉ nhiều hạng mục mà
đa dạng sản phẩm khác nhau phục vụ cho những mục đích khác nhau của người dùng Nhưngđáng chú ý nhất là 2 bản: Visual Studio Express và Visual Studio Team System
2.3 Giới thiệu về ngôn ngữ C#
C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đốitượng Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại Và ngôn ngữ C#hội đủ những điều kiện như vậy, hơn nữa nó được xây dựng trên nền tảng của hai ngôn ngữmạnh nhất là C++ và Java
Tại sao phải sử dụng ngôn ngữ C#
Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nềntảng phát triển hơn Microsoft bắt đầu với công việc trong C và C++ và thêm vào những đặctính mới để làm cho ngôn ngữ này dễ sử dụng hơn Nhiều trong số những đặc tính này khágiống với những đặc tính có trong ngôn ngữ Java Không dừng lại ở đó, Microsoft đưa ra một
số mục đích khi xây dựng ngôn ngữ này
- C# là ngôn ngữ đơn giản: Ngôn ngữ C# đơn giản vì nó dựa trên nền tảng C và C++.
Nếu chúng ta thân thiện với C và C++ hoậc thậm chí là Java, chúng ta sẽ thấy C# khá giống vềdiện mạo, cú pháp, biểu thức, toán tử và những chức năng khác được lấy trực tiếp từ ngôn ngữ
C và C++, nhưng nó đã được cải tiến để làm cho ngôn ngữ đơn giản hơn
- C# là ngôn ngữ hiện đại: Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động,
những kiểu dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong mộtngôn ngữ hiện đại C# chứa tất cả những đặc tính trên
- C# là ngôn ngữ hướng đối tượng: Những đặc điểm chính của ngôn ngữ hướng đối
tượng (Object-oriented language) là sự đóng gói (encapsulation), sự kế thừa (inheritance), và
đa hình (polymorphism) C# hỗ trợ tất cả những đặc tính trên
- C# là ngôn ngữ mạnh mẽ và cũng mềm dẻo: C# được sử dụng cho nhiều các dự án khác
nhau như là tạo ra ứng dụng xử lý văn bản, ứng dụng đồ họa, bản tính, hay thậm chí nhữngtrình biên dịch cho các ngôn ngữ khác
Trang 22- C# là ngôn ngữ ít từ khóa: C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn
các từ khóa được sử dụng để mô tả thông tin
- C# là ngôn ngữ hướng module: Mã nguồn C# có thể được viết trong những phần được
gọi là những lớp, những lớp này chứa các phương thức thành viên của nó
- C# sẽ là một ngôn ngữ phổ biến: C# là một trong những ngôn ngữ lập trình mới nhất.
Vào thời điểm cuốn sách này được viết, nó không được biết như là một ngôn ngữ phổ biến.Nhưng ngôn ngữ này có một số lý do để trở thành một ngôn ngữ phổ biến Một trong những lý
do chính là Microsoft và sự cam kết của.NET
Phần 3 : Cách Xây Dựng Webservice Đơn Giản Trong Visual studio.NET
3.1 Xây dựng Web Services
3.1.1 Tạo Web Services trong VS Net
Trong phần này, hướng dẫn xây dựng một Web Service đơn giản có tênWS_PHEP_TOAN, với phương thức Cong_hai_so trong Visual Studio Net
Chọn Add|Add New Items… từ thực đơn ngữ cảnh của Project Chọn mục Web Servicetrong khung Template Đổi tên Web Service cần tạo thành WS_PHEP_TOAN
Tạo mới Web Service
Trong cửa sổ viết lệnh, có một phương thức mẫu được tạo sẵn: phương thức HelloWorld
Trang 23Bạn có nhận thấy rằng trước phương thức HelloWorld có sẵn từ khóa <WebMethod()> Chúng
ta sẽ bổ sung vào phương thức Cong_hai_so
<WebMethod()> _
Public Function Cong_hai_so(ByVal pA As Integer, _
ByVal pB As Integer) As Integer
Dim lTong As Integer
lTong = pA + pB
Return lTong
End Function
3.1.2 Kiểm tra Web Service
Sau khi xây dựng thành công Web Service, trước khi đưa vào sử dụng, chúng ta cũng nên tiếnhành kiểm tra Web Service Các Web Service được xây dựng trong VS.Net tự động phát sinh
ra các trang kiểm tra tương ứng Để thực hiện điều này, các bạn chọn WS_PHEP_TOAN.asmxlàm trang khởi động, nhấn F5 để thi hành ứng dụng