-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ê
Trang 1Xây dựng dựng ứng ứng dụng dụng phân phân tán tán dùng dùng NET Remoting & Windows
.NET Remoting & Windows Service Service
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:
Trang 2NỘ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
Trang 3NỘ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
Trang 4I 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
Trang 5-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
Trang 6II KIẾN TRÚC NET REMOTING
Trang 7Trong đó:
-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
Trang 8III MỘT SỐ CÁC KHÁI NIỆM
1 Local Object và Remote Object
2 Formatters
3 Channel
4 Đăng ký Channel
Trang 9III 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
Trang 10III 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
Trang 11III 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
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
Trang 12III 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
Trang 13III 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
Trang 14III 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)
Trang 15Marshaling 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
Trang 161 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
Trang 171 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
Trang 182 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ộ
Trang 192 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
Trang 201 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