Giáo trình Lập trình mạng (Phần 2)

Tóm tắt Giáo trình Lập trình mạng (Phần 2): ...chia phần mềm trờn mỗi thiết bị ra làm hai thành phần logic tương ứng với mỗi kờnh. Thành phần Protocol Interpreter (PI) là thành phần quản lý kờnh ủiều khiển, với chức năng phỏt và nhận lệnh. Thành phần Data Transfer Process (DTP) cú chức năng gửi và nhận dữ liệu giữa phớa client với server. ...teLine(request); break; } case "PASS": { sw.WriteLine("230. Dang nhap thanh cong"); sw.Flush(); Console.WriteLine(request); break; } 85 case "MKD": { string folderName = request.Substring(4, request.Length - 4); folderName = rootDir + "/" + folderName.Trim(); t...so * ps1.th_ps.mauso; kq.th_ps.mauso = ps1.th_ps.mauso * ps2.th_ps.mauso; return kq; } Cài ủặt hàm cập nhật từ ủối tượng xử lý phõn số khỏc public void CapNhat(XL_PHANSO ps) { this.th_ps.tuso = ps.th_ps.tuso; this.th_ps.mauso = ps.th_ps.mauso; } Cài ủặt hàm rỳt gọn phõn số ...

pdf63 trang | Chia sẻ: havih72 | Lượt xem: 298 | Lượt tải: 0download
Nội dung tài liệu Giáo trình Lập trình mạng (Phần 2), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
i ra, TcpChannel và HttpChannel đều cĩ khả năng extend thành 
những Custom Channel của bạn. 
Làm sao để tạo một Object cĩ thể Remote được trong .NET Remoting? 
- Một Object remote được chỉ là một object thơng thường nhưng phải được inherit từ 
MarshalByRefObject. ðoạn code sample ở hình 4.2 là một ví dụ đơn giản về 
Remotable Object. ðối tượng SampleObject trong hình cĩ một số method đơn giản trả 
về phép tính tổng, hiệu, tích, thương của hai số nguyên. Giá trị trả về của hàm là kiểu 
số nguyên, kiểu built-in của .NET framework. Nếu bạn muốn trả về kiểu dữ liệu bạn tự 
định nghĩa, hoặc một instance của class bạn định nghĩa thì lớp đĩ của bạn phải được 
khai báo với attribute Serializable. 
using System; 
public class SampleObject: MarshalByRefObject 
{ 
 public int Add(int a, int b) 
 { 
 int c = a + b; 
 104 
 return c; 
 } 
 public int Subtract(int a, int b) 
 { 
 int c = a - b; 
 return c; 
 } 
 public int Multiply(int a, int b) 
 { 
 int c = a * b; 
 return c; 
 } 
 public int Divide(int a, int b) 
 { 
 int c; 
 if (b != 0) 
 c = a / b; 
 else 
 c = 0; 
 return c; 
 } 
} 
Hình 4.2: Remotable Object Sample 
Tạo chương trình Server để host Remotable Object 
- Kế tiếp, chúng ta cần tạo ra một chương trình server để lắng nghe những request từ 
phía client. Trong ví dụ này chúng ta sẽ sử dụng TCP/IP channel. ðầu tiên chúng ta 
tạo một instance channel và đăng kí một port tương ứng cho nĩ. Khi cĩ một Request từ 
phía client, server sẽ nhận request đĩ và Remote Object của chúng ta sẽ thực thi 
Request này. Trong .NET Remoting, cĩ hai cơ chế để tạo instance của Remote Object 
rồi từ đĩ thực thi request: Singleton và Singlecall. Tùy vào mục đích sử dụng, nhu cầu 
của chương trình mà server của bạn cĩ thể khai báo theo cơ chế 
WellKnownObjectMode.SingleCall, hay WellKnownObjectMode.Singleton. Khi khai 
báo Singleton, Remote Object sẽ được sinh ra, thực thi request, reply lại phía client và 
sau đĩ, object này vẫn được lưu lại chứ khơng bị hủy đi. ðến khi nào process chạy 
chương trình server kết thúc thì instance này mới bị trình hốt rác Garbage Collector 
hốt đi. Và ngược lại, khi khai báo là SingleCall, Remote Object sẽ được khởi tạo và 
hủy đi đối với mỗi lần nhận request từ phía client, cơ chế này tương tự như mơ hình 
.NET Web Service truyền thống. 
- Nếu bạn muốn sử dụng .NET Remoting trong IIS thì khơng cần tạo một chương trình 
server như thế này. Và tất nhiên, IIS chỉ hỗ trợ HttpChannel. Nếu host 1 .NET 
Remoting bên trong IIS bạn sẽ mặc nhiên sử dụng được cơ chế Authentication của IIS, 
ngược lại nếu làm một chương trình server để host như trên thì bạn phải cài đặt cơ chế 
Authentication của riêng mình. ðể host một Remote Object bên trong IIS, trước tiên 
phải tạo 1 Virtual Directory cho application, sau đĩ đặt đoạn code đăng kí service bên 
trong event Application_Start (file global.asax) 
 105 
- Trong ví dụ này, chúng ta sẽ khơng sử dụng IIS mà sẽ tạo một console application. 
Cĩ nhiều lựa chọn khi khơng sử dụng IIS, ta cĩ thể sử dụng console application, Win 
form application nhưng trong thực tế, người ta sẽ sử dụng một Windows Service để 
làm. Cịn Console application hay Winform Application thường chỉ dùng để minh họa. 
Trong ví dụ này, chúng ta sẽ sử dụng port 9999 cho may mắn. Cĩ thể một chương 
trình nào đĩ trong máy của bạn đã sử dụng port này, nếu bị như vậy bạn phải chọn port 
khác. Và sau cùng, để kiểm tra xem máy bạn đang lắng nghe trên những port nào (port 
nào đã bị sử dụng) thì ta dùng lệnh “netstat –a” trong command prompt. 
- Cịn bây giờ, hãy xem một console application project với 1 class tên là 
SampleSerrver. Trong project này tơi đã thêm reference tới System.Runtime.Remoting 
vào trong project để nĩ cĩ thể chạy được. 
using System; 
using System.Runtime.Remoting; 
using System.Runtime.Remoting.Channels; 
using System.Runtime.Remoting.Channels.Tcp; 
public class Server 
{ 
 public static int Main() 
 { 
 TcpChannel chan = new TcpChannel(9999); 
 ChannelServices.RegisterChannel(chan, false); 
 RemotingConfiguration.RegisterWellKnownServiceType(typeof(SampleObject) 
, "SampleNetRemoting", WellKnownObjectMode.SingleCall); 
 Console.WriteLine("Hit to exit..."); 
 Console.ReadLine(); 
 } 
} 
Hình 4. 3: Sample Server host Remotable Object 
Tạo chương trình client để sử dụng Remote Object. 
- Chương trình client trong ví dụ này cũng khá đơn giản, nĩ sẽ connect vào server, tạo 
một instance của Remote Object và excute method tính tổng, hiệu, tích, thương. 
- Các bạn lưu ý rằng trong cả chương trình client và chương trình server đều phải 
reference tới class SampleObject. Client sẽ gọi method của instance SampleObject, 
nhưng server sẽ thực thi xử lý nĩ chứ khơng phải phía client. 
using System; 
using System.Runtime.Remoting; 
using System.Runtime.Remoting.Channels; 
using System.Runtime.Remoting.Channels.Http; 
public class Client 
{ 
 106 
 public static int Main (string[] argv) 
 { 
 TcpChannel chan = new TcpChannel(); 
 ChannelServices.RegisterChannel(chan, false); 
 SampleObject obj = (SampleObject)Activator.GetObject( 
 typeof(SampleObject), "tcp://localhost:9999/SampleNetRemoting"); 
 if (obj == null) 
 System.Console.WriteLine("Could not locate server"); 
 else 
 { 
 int a = Convert.ToInt32(argv[0]); 
 int b = Convert.ToInt32(argv[1]); 
 int c = obj.Add(a, b); 
 Console.WriteLine("a + b = {0}", c); 
 c = obj.Subtract(a, b); 
 Console.WriteLine("a - b = {0}", c); 
 c = obj.Multiply(a, b); 
 Console.WriteLine("a * b = {0}", c); 
 c = obj.Divide(a, b); 
 Console.WriteLine("a / b = {0}", c); 
 } 
 Console.ReadKey(); 
 } 
} 
Hình 4: Sample Client Application 
Test thử chương trình 
- Trước tiên chạy chương trình server, bạn sẽ thấy message “Press the enter key to 
exit” trong cửa sổ console. Như vậy server của bạn đang lắng nghe trên port 9999. Bây 
giờ bạn hãy chạy chương trình client và sẽ nhìn thấy kết quả trả về trên màn hình. Bạn 
cĩ thể chạy nhiều client để cùng request đến 1 server nhưng khơng thể chạy nhiều 
server. Bạn cĩ thể copy chương trình server sang một máy của bạn mình và nhờ chạy 
thử, cịn bạn sửa lại chương trình client, sửa “localhost” thành IP của máy bạn mình và 
chạy thử để thấy kết quả. 
Tĩm tắt: 
- Ví dụ ở trên đã sử dụng code C# để khai báo các cấu hình cho server và client tuy 
nhiên .NET Remoting cho phép ta cấu hình trước trong file config (App.config). Các 
bạn cĩ thể tham khảo một số resource phía dưới để biết cách làm. 
- .NET Remoting là một trong những kĩ thuật tiện lợi cho những chương trình dạng 
Distributed Computing. Cách sử dụng nĩ phức tạp hơn Web Service tuy nhiên nếu bạn 
 107 
muốn tăng performance thì .NET Remoting với Singleton và TCP channel sẽ là lựa 
chọn rất tốt. 
- Với sự ra đời của .NET Framework 3.x, Microsoft đã giới thiệu nền tảng mới hơn 
cho các kĩ thuật RPC, đĩ là WCF mạnh hơn .NET Remoting rất nhiều. 
4.2.2. Khai báo, cài đặt và đăng ký giao diện từ xa 
 ðể cho chương trình cĩ tính khả chuyển cao thay vì người ta xây dựng lớp 
Remote Object như ví dụ trên chúng ta khai báo một giao diện là lớp Remote Object 
và trong chương trình phía Server ta sẽ cài đặt giao diện này và đăng ký giao diện từ 
xa. Như vậy để triển khai một hệ thống Remoting ta cĩ 3 chương trình: Giao diện 
Remote Object, chương trình Server triển khai giao diện và đăng ký giao diện từ xa, 
chương trình Client triệu gọi phương thức từ xa. 
- Khai báo giao diện từ xa 
- Cài đặt và đăng ký giao diện từ xa 
4.2.3. Triệu gọi phương thức từ xa 
 - Chương trình phía Client chúng ta triệu gọi phương thức được cung cấp bởi 
giao diện tử xa đã được đăng ký và cung cấp bởi Server 
4.3. Web Services 
4.3.1. Giới thiệu về Web Services 
1. Web Service là gì? 
 Web service là một Modul chương trình cung cấp chức năng của các ứng dụng cho 
phép triệu gọi và truy cập từ xa thơng qua Internet. Web service sử dụng các chuẩn của 
Internet như XML và HTTP. Việc sử dụng Web service phụ thuộc nhiều vào sự chấp 
nhận của XML, một ngơn ngữ mơ tả dữ liệu mới dùng để truyền tải dữ liệu thơng qua 
Web. 
 Bất kỳ một Web service nào cũng cĩ thể được sử dụng, hoặc là trong ứng dụng cục 
bộ hoặc truy cập từ xa qua Internet bởi nhiều ứng dụng. Do cĩ khả năng truy cập qua 
các giao diện chuẩn mà một Web service cho phép nhiều hệ thống khác nhau cùng làm 
việc với nhau như một tiến trình duy nhất trên Web. 
2. Vai trị của Web service 
 Web service ra đời đã mở ra một hướng mới cho việc phát triển các ứng dụng trên 
Internet. Web services tạm dịch là các dịch vụ trên web. Cơng nghệ web services ra 
đời là một cuộc cách mạng hĩa cách thức hoạt động của các dịch vụ B2B và B2C. 
Web services kết hợp sử dụng nhiều cơng nghệ khác nhau cho phép hai ứng dụng cùng 
ngơn ngữ, độc lập hệ điều hành trao đổi được với nhau thơng qua mơi trường mạng 
Internet. Tuy nhiên những cơng nghệ sử dụng ở đây khơng nhất thiết phải là những 
cơng nghệ mới. ðây là điểm khác biệt của web services so với các cơng nghệ khác, đĩ 
chính là khả năng kết hợp các cơng nghệ đã cĩ như là XML, SOAP, WSDL, UDDI để 
tạo ra các service, đặc điểm này làm nổi bật vai trị của web services. 
 108 
 Web Service được thiết kế nhằm cung cấp một cơ chế cho phép các chương trình 
giao tiếp với nhau qua Internet (sử dụng các giao thức Internet như HTTP GET, HTP 
POST và SOAP). 
 3. ðặc điểm Web service 
- 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ố. 
- 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 modul. 
- Web service cĩ thể được cơng bố (publish) và gọi thực hiện qua mạng. 
Ngày nay web service đượ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ư: 
 - 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 khố 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 tố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, 
 - Những giao dịch trục tuyến cho cả B2B và B2C như: đặt vé máy bay, làm giao kèo 
thuê xe. 
 - Hệ thống thơng tin dùng java để tính tốn tỷ giá chuyển đổi giữa các loại tiền tệ. Hệ 
thống này sẽ được các ứng dụng khác dùng như một web service. 
4. Kiến trúc Web service 
 Kiến trúc của Web service bao gồm các tầng như sau: 
 109 
Hình 1: Kiến trúc Web service 
Trong đĩ bao gồm các tầng như sau: 
 - Tầng vận chuyển: 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). 
- 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 tồn, tồ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 tồn và tồn vẹn 
thơng tin khi sử dụng service. 
4.3.2. Giao thức SOAP 
 110 
SOAP là chữ viết tắt của cụm từ “Simple Object Access Protocol – Giao thức truy cập đối 
tượng đơn giản”, nhưng với sự xem xét mới nhất thì, SOAP sẽ khơng cịn là một từ viết tắt 
nữa. Chuẩn SOAP ghi nhận XML được thể hiện thế nào bên trong tài liệu SOAP, làm thế nào 
nội dung của thơng điệp được truyền tải, và làm thế nào thơng điệp được xử lý ở cả hai phía 
gởi và nhận. SOAP cũng cung cấp một tập các từ vựng chuẩn. 
Các thuật ngữ: 
Như bẩt kỳ cơng nghệ nào, SOAP cũng cĩ tập các thuật ngữ của riêng nĩ. Cĩ nhiều thuật ngữ 
được sử dụng thường xuyên để mơ tả các khía cạnh khác nhau của chuẩn SOAP. Nhiều lập 
trình viên dùng các thuật ngữ này mà khơng thật sự hiểu ý nghĩa của nĩ. ðể hiểu thật sự các 
khái niệm địi hỏi phải tốn một thời gian để hiểu ý nghĩa của từng thuật ngữ và làm thế nào để 
áp dụng cho cả chuẩn SOAP và một Web Services thực thụ 
Chú ý: Chuẩn SOAP khơng chỉ là chuẩn XML mà chuẩn này cịn bao gồm các thơng điệp 
SOAP cĩ hành vi như thế nào, các phương tiện vận chuyển khác nhau, cách mà các lỗi được 
xử lý.. 
Sự truyền tải dữ liệu 
SOAP Binding 
Thuật ngữ mơ tả làm thế nào một thơng điệp SOAP tương tác được với một giao thức vận 
chuyển như HTTP, SMTP hay FTP để di chuyển trên Internet. ðiều quan trọng là SOAP di 
chuyển bằng một giao thức chuẩn để liên lạc với các sản phẩm Web Services khác. 
Trước SOAP, nhiều người phát triển đã tạo ra các phương pháp của riêng họ để chuyển tải 
một tài liệu XML trên mạng. Các cách này vẫn hoạt động tốt trong phạm vi một nhĩm cụ thể. 
Tuy nhiên khi bạn cần làm việc với một nhĩm khác ở trong hay bên ngồi cơng ty thì điều 
này trở nên khĩ khăn vì phải huấn luyện và cĩ thể thay đổi để làm việc với việc truyền tải tài 
liệu XML mà họ đang sử dụng. Bằng cách sử dụng một tài liệu XML chuẩn trên các giao thức 
chuẩn, cơng việc cần làm khi cộng tác với nhau sẽ được giảm thiểu tối đa 
SOAP Message Exchang Pattern (MEP) 
Thuật ngữ mơ tả làm thế nào mà một tài liệu SOAP trao đổi giữa phía máy khách và chủ. 
Thơng điệp SOAP sở hữu một liên kết, như là HTTP, để nĩ cĩ thể truyền trên Internet. Việc 
nĩi chuyện giữa máy khách và chủ, ở đây là các nút, xác định các hành động mà cả hai phía 
thực hiện. 
Nhắc lại SOAP là một XML đĩng gĩi RPC. Vì thế, MEP hồn tồn là yêu cầu và phản hồi 
giữa máy khách và chủ (hay các nút khác). Như vậy nếu cĩ nhu cầu liên lạc giữa các nút thì 
việc này được thực hiện bằng nhiều yêu cầu và phản hồi để hồn tất việc truyền thơng điệp. 
Cách này khác hẳn với các cơng nghệ đối tượng từ xa khác như CORBA, cơng nghệ đĩ được 
thực hiện chỉ trong một kết nối. 
SOAP Application 
Một ứng dụng SOAP đơn giản là một ứng dụng dùng SOAP theo một vài cách khác nhau. Vài 
ứng dụng hồn tồn dựa trên chuẩn SOAP, như là Web Services cổ phiếu, hoặc dùng chuẩn 
SOAP để nhận mã và các cập nhật của phần mềm. Chú ý là một ứng dụng cĩ thể tạo, sử dụng 
hoặc là nút trung gian của Web Services. 
SOAP Node 
Trách nhiệm của một nút cĩ thể bao gồm gởi, nhận, xử lý hoặc truyền tải lại một thơng điệp 
SOAP. Một nút chỉ là một phần nhỏ của phần mềm, xử lý một tài liệu SOAP phụ thuộc vào 
 111 
vai trị của nĩ. Bên cạnh việc truyền dữ liệu, một nút cĩ trách nhiệm đảm bảo thơng tin XML 
trong tài liệu SOAP phải đúng ngữ pháp theo chuẩn SOAP. 
SOAP Role 
Một vai trị của SOAP định nghĩa một nút cụ thể hoạt động như thế nào. Nĩ cĩ thể là nút gởi, 
nhận hoặc nút trung gian. 
SOAP Sender 
Nút gởi là nút gởi yêu cầu SOAP. Nếu bạn nghĩ đến ví dụ của ứng dụng khách chủ thì khi 
ứng dụng khách thực hiện yêu cầu, nĩ gởi thơng điệp tới ứng dụng chủ để yêu cầu vài thơng 
tin. 
SOAP Receiver 
Ngược lại với SOAP sender là nút nhận. 
SOAP Intermediary 
Một nút trung gian cĩ thể xem một thơng điệp SOAP và tương tác trên vài phần thơng tin của 
thơng điệp, và chuyển đến vị trí kế tiếp của thơng điệp. Một nút trung gian thường hoạt động 
như một router. Một router sẽ xem xét thơng tin của gĩi tin chuyển trên mạng, tìm điểm kế 
tiếp của gĩi tin và chuyển gĩi tin đển đĩ. 
Message Path 
Một thơng điệp SOAP di chuyển từ phía bên gởi đến phía bên nhận thơng điệp thơng qua 
nhiều nút trung gian. Tuyến đường đi của thơng điệp được gọi là một Message Path. 
Initial SOAP Sender 
Nút gởi yêu cầu SOAP đầu tiên là nút gởi SOAP ban đầu. 
SOAP Feature 
Một đặc điểm SOAP là một phần chức năng của phần mềm hỗ trợ chức năng SOAP. 
Các thuật ngữ liên quan đến XML 
Chuẩn SOAP cũng định nghĩa một tập nhỏ các phần tử XML để đĩng gĩi dữ liệu được truyền 
giữa các nút. Thật sự chỉ cĩ vài phần tử vì phần thân của thơng điệp cĩ thể khác nhau phụ 
thuộc vào cài đặt. Sự uyển chuyển này được cho phép bởi chuẩn SOAP. 
SOAP Message 
ðây là tài liệu XML được truyền bởi một nút SOAP gởi hoặc nhận. Một nút gởi hoặc nút 
khách tạo ra một tài liệu XML chứa thơng tin mà phía bên khách cần từ phía chủ. Một khi tài 
liệu được truyền, phía bên chủ phân giải thơng tin trong tài liệu để truy xuất các giá trị khác 
nhau và tạo một thơng điệp SOAP mới để phản hồi. 
SOAP Envelope 
ðây là phần tử gốc của tài liệu SOAP XML. Tài liệu SOAP chứa nhiều định nghĩa khơng gian 
tên (namespace) nhưng các phần tử liên quan tới thơng điệp SOAP sẽ cĩ ENV: là tiếp đầu 
ngữ. 
SOAP Header 
 112 
Phần đầu của một thơng điệp SOAP chứa một khối thơng tin đầu trong tài liệu XML để định 
tuyến và xử lý thơng điệp SOAP. Dữ liệu này tách rời khỏi phần thân của tài liệu cĩ chứa 
thơng tin liên quan đến đối tượng được gọi. 
SOAP Header Block 
Phần đầu của SOAP chứa nhiều phần giới hạn hay là nhiều khối thơng tin cĩ một khối thơng 
tin của phần đầu. Những khối thơng tin của phần đầu này chứa thơng tin về các nút trung gian 
vì một nút cần biết nút kế tiếp để thơng điệp được gởi đến. 
SOAP Body 
Phần thân của SOAP thật sự chứa thơng tin của đối tượng để xử lý thơng tin. Phần thân sau 
khi được phân tách sẽ trở thành đối tượng. ðối tượng xử lý thơng tin và kết quả được đặt 
trong phần thân của tài liệu trả về. 
SOAP Fault 
ðây là một phần thơng tin của SOAP chứa thơng tin đến bất kỳ lỗi gì xảy ra tại một nút 
SOAP. 
4.3.3. Xây dựng Web Services 
- Tạo một Web Services project 
- Tạo Web Method 
 113 
- Chạy thử Web Services danh sách các hàm sẽ được liệt kê 
- Chọn hàm Add 
 114 
- Sau khi nhập các tham số vào, nhấn Invoke. Kết quả sẽ xuất hiện 
4.3.4. Triệu gọi Web Services từ ứng dụng .NET, Java và các ngơn ngữ khác 
 - Sau khi xây dựng Web Server song ta cĩ thể triệu gọi nĩ từ một ứng dụng 
khác 
 - Tạo một Window Form 
 115 
- Add Web Reference 
- Tạo màn hình: 
 116 
- Viết hàm xử lý nút nhấn: 
- Chạy thử ứng dụng ta cĩ kết quả: 
4.4 Thảo luận về các ứng dụng phân tán 
4.5. Bài tập áp dụng 
 1. Viết chương trình Chat sử dụng cơng nghệ Web Services 
 2. Viết chương trình Calculator bằng cơng nghệ Web Services 
 3. Viết chường trình quản lý FileManager bằng cơng nghệ Web Services. 
 117 
TÀI LIỆU THAM KHẢO 
1. Richard Blum, C# Network Programming, 2003 
2. Fiach Reid, Network programming in NET with C# and VB.NET, Digital 
Press, 2003 
3. Bài giảng “Nhập mơn Cơng nghệ phần mềm”, ðại học KHTN 
4. Bài giảng “Xây dựng phần mềm hướng đối tượng”, ðại học KHTN 
5. Bài giảng “Lập trình truyền thơng”, ðại học Cần Thơ 
6. Bài giảng “Cơng nghệ .NET”, Khoa CNTT – ðại học SPKT Hưng Yên 
7. Bài giảng “Java Nâng cao”, Khoa CNTT- ðại học SPKT Hưng Yên 
8. Các ví dụ tại Website: www.java2s.com 

File đính kèm:

  • pdfgiao_trinh_lap_trinh_mang_phan_2.pdf