Mô tả:
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
Đề tài:
Xây dựng ứng dụng phân tán dùng
.NET Remoting & Windows Service
Giáo viên hướng dẫn: TS.Hồ
Nhóm thực hiện:
Bảo Quốc
Trần Thị Kim Phụng
Võ Ngọc Tân
Nguyễn Bá Quang Lâm
1
1
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
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
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
3
3
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
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 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ả
5
5
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TÂM TIN HỌC
II. KIẾN TRÚCTRUNG
.NET
REMOTING
6
6
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
Trong đó:
TRUNG TÂM TIN HỌC
- 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
7
7
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
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
- 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
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
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
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
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
System.Runtime.Remoting
có
tên
- 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
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
- 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
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
- 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
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
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)
14
14
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
IV. CƠ CHẾ TRUYỀN
ĐỐI TƯỢNG
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
15
15
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
IV. CƠ CHẾ TRUYỀN
ĐỐI TƯỢNG
1. Marshal-by-Value
- 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
16
16
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
IV. CƠ CHẾ TRUYỀN
ĐỐI TƯỢNG
1. Marshal-by-Value
- 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
17
17
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
IV. CƠ CHẾ TRUYỀN
ĐỐI TƯỢNG
2. Marshal-by-Reference
- 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ộ
18
18
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TRUNG TÂM TIN HỌC
IV. CƠ CHẾ TRUYỀN
ĐỐI TƯỢNG
2. Marshal-by-Reference
- 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
19
19
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
TÂM TIN HỌC
V. CÁC LOẠI TRUNG
REMOTE
OBJECT
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
20
20
- Xem thêm -