Tải bản đầy đủ (.pdf) (77 trang)

tiểu luận xây dựng ứng dụng phân tán dùng .net remoting & windows service

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (942.52 KB, 77 trang )

1
1
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
XâyXây dựngdựng ứngứng dụngdụng phânphân tántán dùngdùng
.NET Remoting & Windows .NET Remoting & Windows ServiceService
Giáo viên hướng dẫn: TS.Hồ Bảo Quốc
Trần Thị Kim Phụng
Võ Ngọc Tân
Nguyễn Bá Quang Lâm
Nhóm thực hiện:
Đề tài:
2
2
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
NỘI DUNG
Phần 1: Giới thiệu .NET Remoting
Phần 2: Các bước xây dựng một ứng
dụng phân tán dùng .NET
Remoting
Phần 3: Windows Service
3
3
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
NỘI DUNG
Phần 1: Giới thiệu .NET Remoting
I. Khái niệm .NET Remoting
II. Kiến trúc .NET Remoting
III. Một số khái niệm


IV. Cơ chế truyền đối tượng
V. Các loại Remote Object
4
4
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
I. KHÁI NIỆM .NET REMOTING
-Remoting là kỹ thuật cho phép ứng dụng gọi
các đối tượng khai báo ở những tiến trình trên
máy tính khác thông qua hệ thống mạng
5
5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
-Remoting là kỹ thuật tách các thành phần xử
lý của ứng dụng khỏi các ràng buộc vị trí vật lý
-
Có thể định vị thành phần xử lý trên cùng máy,
trên cùng hệ thống mạng, trên các máy nằm
trên các hệ thống mạng khác
-
Remoting giúp việc gọi thực hiện các phương
thức và truyền giá trị giữa các tiến trình thực
hiện đơn giản
-
Remoting được xây dựng trên nền Common
Language Runtime (CLR) và được sử dụng để
xây dựng các ứng dụng phân tán một cách
hiệu quả
I. KHÁI NIỆM .NET REMOTING

6
6
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
II. KIẾN TRÚC .NET REMOTING
7
7
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Trong đó:
-Client Object: đối tượng cần giao tiếp với
Remote Object
-
Server (Remote) Object: nhận yêu cầu/xử lý và
trả kết quả cho Client Object
-
Proxy: miêu tả Client Object trong Client
Application, sẽ xúc tiến việc gọi của Client và
trả lại kết quả của Server
-Formatter: định dạng dữ liệu (SOAP, Binary,…)
-
Channel: kênh truyền dữ liệu (TCP, HTTP,…)
-Dispatcher: tiến trình quản lý danh sách các
xử lý được gởi đến Sever (Remote) Object
8
8
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
1. Local Object và Remote Object

2. Formatters
3. Channel
4. Đăng ký Channel
9
9
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
1. Local Object và Remote Object
-
Local Object là đối tượng trong phạm vi cùng
application domain
-Đối tượng gọi là Remote Object nếu nó được
đặt bên trong một application domain khác
-
Remote Object kế thừa từ class có tên
MarshalByRefObject
10
10
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
2. Formatters
-
Formatters chịu trách nhiệm mô tả và mã hóa
dữ liệu của đối tượng để có thể gởi đi qua
mạng (serialization)
-SOAP formatter sử dụng định dạng của XML
để ghi thông tin theo cách đã được chuẩn hoá
mà ứng dụng có thể hiểu được

-
Binary formatter tạo một binary data stream
được hiểu bởi các trình ứng dụng .NET khác
11
11
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
3. Channel
-
Các Channel được dùng để thiết lập việc
truyền thông giữa .NET Server và .NET Client
-Là lớp của namespace có tên
System.Runtime.Remoting
-
Là đối tượng vận chuyển các thông điệp và dữ
liệu từ tiến trình này đến tiến trình khác
12
12
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
3. Channel
-
Một channel được đăng ký bởi ứng dụng
remote server có thể lắng nghe điểm cuối
(endpoint), chờ một thông điệp đến, và gởi
đáp trả về sau đó cho ứng dụng client
-Channel Protocol và Port number phải phù
hợp cho sự truyền thông giữa client và server

được thành công
13
13
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
3. Channel
-
Có ba loại: HTTP, TCP và IPC

TCP: chuyển dữ liệu qua mạng theo dạng
nhị phân bằng giao thức TCP để xử lý
thông điệp từ remote objects

HTTP: chuyển dữ liệu qua mạng theo định
dạng XML bằng giao thức SOAP

IPC (interprocess communication): cung
cấp thêm các lựa chọn khi các xử lý xảy ra
trong cùng một máy
14
14
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
III. MỘT SỐ CÁC KHÁI NIỆM
4. Đăng ký Channel
-
Ứng dụng server phải đăng ký một channel
trước khi các client có thể liên lạc nó
-Khi đăng ký một TCP channel hoặc một HTTP

channel, phải gán một Port number
-
Các Port numbers từ 0 cho đến 1023 được
dành riêng cho các ứng dụng chung
-
Có thể chỉ định Port number khác (lên tới
65,535)
15
15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Marshaling là quá trình chuẩn bị một đối tượng
để di chuyển qua một ranh giới nào đó.
Marshaling có thể được tiến hành theo 2 cách:
1. Marshal-by-Value
2. Marshal-by-Reference
IV. CƠ CHẾ TRUYỀN ĐỐI TƯỢNG
16
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1. Marshal-by-Value
IV. CƠ CHẾ TRUYỀN ĐỐI TƯỢNG
-
Khi một đối tượng marshal-by-value được gởi
đi giữa các thành phần, một bản sao chép toàn
bộ đối tượng sẽ được “tuần tự hóa”
(serialized) và được gởi đi thông qua
Remoting Channel tới bên gọi
-

Đối tượng sau đó được tái tạo bên trong tiến
trình gọi, nhờ vậy bên gọi có thể sử dụng
được đối tượng này
17
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1. Marshal-by-Value
IV. CƠ CHẾ TRUYỀN ĐỐI TƯỢNG
-
Tất cả các lời gọi tiếp theo trên đối tượng
được thực hiện bên tiến trình bên gọi
-Việc sao chép và tái tạo toàn bộ đối tượng có
thể tốn một ít thời gian, làm chậm khi lần đầu
tiên gọi đối tượng, đôi khi lại có hiệu quả hơn
việc tạo ra các “chuyến đi vòng qua vòng lại”
giữa client và server khi muốn có nhiều lời gọi
tới đối tượng
18
18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
2. Marshal-by-Reference
IV. CƠ CHẾ TRUYỀN ĐỐI TƯỢNG
-
Khi một đối tượng marshal-by-reference được
chuyển giữa các thành phần, một đối tượng
proxy được tạo trong tiến trình gọi
-Đối tượng này là một thay thế (stand-in) cho
đối tượng remote, nó hiện diện ở client giống

như là đối tượng ở xa và cho phép mã lệnh
client tạo các lời gọi phương thức như thể là
nó đang gọi một đối tượng cục bộ
19
19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
2. Marshal-by-Reference
IV. CƠ CHẾ TRUYỀN ĐỐI TƯỢNG
-
Khi đối tượng gọi tạo nên các lời gọi phương
thức trên đối tượng proxy, cơ sở hạ tầng .NET
Remoting gởi các lời gọi này tới remote server
-Sử dụng các đối tượng marshal-by-reference
khi đối tượng phụ thuộc vào việc sử dụng
nguồn tài nguyên
20
20
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
1. Single call object (Marshal-by-Value)
-
Các object này thực hiện một phương thức
nhưng không làm thay đổi trạng thái của nó
-Đối tượng chỉ sử dụng để chia sẻ dữ liệu cho
một client và có nhiều đối tượng được tạo ra
2. Singleton object (Marshal-by-Reference)
-
Các object này được sử dụng phục vụ cho
nhiều client và chúng có thể thay đổi trạng thái

-Sử dụng khi muốn chia sẻ dữ liệu cho nhiều
client khác nhau và có một đối tượng được
tạo ra
V.
CÁC LOẠI REMOTE OBJECT
21
21
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
NỘI DUNG
Phần 2: Các bước xây dựng một ứng dụng
phân tán dùng .NET Remoting
22
22
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Xây dựng một ứng dụng phân tán
Ví dụ xây dưng một ứng dụng cho phép
người dùng nhập tên mình trên Client, Client
sẽ kết nối đến Server để thực hiên một
phương thức từ xa đã được định nghĩa
trước. Kết quả trả về cho Client là chuỗi
“Hello” và tên của người dùng
.
23
23
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Bước 1 :
Xây dựng đối tượng Remoting

(Class library)
Xây dựng một ứng dụng phân tán
24
24
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
+ Chọn File\New\Project để tạo một Project mới.
+ Trong cửa sổ New Project chọn Class Library
Xây dựng một ứng dụng phân tán
25
25
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
+ Đặt tên cho đơi tượng vừa tạo ra là
MyRemoteClass
+ Lớp Class1 của chúng ta được thừa kế từ
MarshalByRefObject
+ Định nghĩa một phương thức có tên là
hello(string hoten)
+ Chọn Build Solution
Xây dựng một ứng dụng phân tán

×