TRUNG TÂM TIN HỌCNỘ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... -Remoting giúp việc gọi thực hiệ
Trang 1.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 2TRUNG 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
Trang 3TRUNG 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
Trang 4TRUNG 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
Trang 5-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
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 6TRUNG TÂM TIN HỌC
II KIẾN TRÚC NET REMOTING
Trang 7-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 8TRUNG 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
Trang 9TRUNG 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
MarshalByRefObject
Trang 10TRUNG 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
Trang 11TRUNG TÂM TIN HỌC
III MỘT SỐ CÁC KHÁI NIỆM
3 Channel
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 12TRUNG TÂM TIN HỌC
III MỘT SỐ CÁC KHÁI NIỆM
3 Channel
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
hợp cho sự truyền thông giữa client và server được thành công
Trang 13TRUNG 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
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
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 14TRUNG TÂM TIN HỌC
III MỘT SỐ CÁC KHÁI NIỆM
4 Đăng ký 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
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 15TRUNG 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
Trang 16TRUNG 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
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 17TRUNG 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
Trang 18TRUNG 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ộ
Trang 19TRUNG 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
Trang 20TRUNG TÂM TIN HỌC
1 Single call object (Marshal-by-Value)
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)
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
Trang 22TRUNG TÂM TIN HỌC
“Hello” và tên của người dùng.
Trang 24TRUNG 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
Trang 25TRUNG TÂM TIN HỌC
+ Đặt tên cho đơi tượng vừa tạo ra là
Xây dựng một ứng dụng phân tán
Trang 26TRUNG TÂM TIN HỌC
Xây dựng một ứng dụng phân tán
Trang 28TRUNG 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 Windows
Form Application, đặt tên là Server
Xây dựng một ứng dụng phân tán
Trang 29TRUNG TÂM TIN HỌC
Xây dựng một ứng dụng phân tán
Trang 30TRUNG TÂM TIN HỌC
+ Thiết kế giao diện cho phép người dùng nhập
vào số hiệu một cổng để khởi động Server
Xây dựng một ứng dụng phân tán
Trang 32TRUNG TÂM TIN HỌC
+ Tham chiếu đến MyRemoteClass đã tạo
Xây dựng một ứng dụng phân tán
Trang 34TRUNG TÂM TIN HỌC
+ Thêm các namespace cần thiết
Xây dựng một ứng dụng phân tán
Trang 35TRUNG TÂM TIN HỌC
+ Đăng ký kênh truyền và đăng ký đối tượng
remote
+ Chọn Build Solution
Xây dựng một ứng dụng phân tán
Trang 36TRUNG TÂM TIN HỌC
Bước 3 :
Xây dựng Client Application
(Windows application)
Xây dựng một ứng dụng phân tán
Trang 37TRUNG TÂM TIN HỌC
+ Các bước tạo Project (đặt tên là Client), thêm
các tham chiếu, không gian tên tương tự với Project Server.
+ Thiết kế giao diện cho phép người dùng nhập
tên máy tính, số hiệu cổng cần kết nối và tên người dùng
Xây dựng một ứng dụng phân tán
Trang 38TRUNG TÂM TIN HỌC
+ Kết nối đến máy chủ thông qua tên, số hiệu
cổng và giao thức
Xây dựng một ứng dụng phân tán
Trang 40TRUNG TÂM TIN HỌC
NỘI DUNG
Phần 3: Windows Windows Services Services
Trang 41TRUNG TÂM TIN HỌC
Nội dung
• Giới thiệu Windows Service
• Các bước tạo Service Project
Trang 42TRUNG TÂM TIN HỌC
Giới thiệu Windows Service
• Windows service là những tiến trình thực thi
hậu cảnh, không hỗ trợ giao diện
• Service có thể khởi động tự động khi khởi động
máy tính ngay cả khi người dùng chưa đăng
nhập
Service là cách lý tưởng để hiện thực một ứng dụng chạy hậu cảnh và không cần tương tác với người dùng
Trang 43TRUNG TÂM TIN HỌC
Trang 44TRUNG TÂM TIN HỌC
Trang 45TRUNG TÂM TIN HỌC
Thiết lập thuộc tính
Trang 46TRUNG TÂM TIN HỌC
Các bước tạo Windows Service
• Thêm các control vào project
• Người lập trình cần hiện thực các phương thức
OnStart và OnStop, đồng thời override bất kỳ phương thức nào mình cần
• Build project
• Thêm bộ installer cần thiết cho ứng dụng
service vừa tạo
Trang 47TRUNG TÂM TIN HỌC
Tạo Install Project cho một Service
• Không giống với các ứng dụng khác, người lập
trình không thể đơn giản chỉ thực thi file service
• Các Service phải được cài đặt trước khi thực thi
• .NET Framework cung cấp lớp ServiceInstaller
và ServiceProcessInstaller cho mục đích này
Sử dụng ServiceInstaller để định nghĩa các thông tin:
mô tả service, tên hiển thị, tên service và loại khởi động
Sử dụng ServiceProcessInstaller định nghĩa các
thông tin tài khoản cho service
Trang 48TRUNG TÂM TIN HỌC
Tạo Installer Project: Bước 1
Trang 49TRUNG TÂM TIN HỌC
Tạo Installer Project: Bước 2, 3
• Thiết lập StartType property của ServiceInstaller
Automatic: service sẽ tự động khởi đông sau khi máy
tính khởi đông
Manual (mặc định): người dùng phải khởi động
service
Disabled: service không khởi đông và người dùng
phải thay đổi thay đổi kiểu của StartType thành các giá trị ở trên
• Thiết lập thuộc tính Description và DisplayName
cho ServiceInstaller component
Trang 50TRUNG TÂM TIN HỌC
Tạo Installer Project: Bước 4
• Thiết lập thuộc tính Account cho ProjectInstaller của
ServiceProcessInstaller để cho biết security context
LocalService: tài khoản là một user không có quyền ưu tiên Sử
dụng LocalService để tối thiểu hóa các vấn đề bảo mật
NetworkService: Cho phép service đăng nhập vào máy khác
trên mạng
LocalSystem: Service thực thi với quyền gần như không giới
hạn
User (mặc định): Hệ thống cần chứng thực username và
password khi service được cài đặt
• Có thể thiết lập Username và Password trong thuộc tính của lớp ServiceProcessInstaller
Trang 51TRUNG TÂM TIN HỌC
Tạo Installer Project: Bước 5,6
• Xác định startup project
Nhấp chuột phải lên Solution Explorer và sau đó
chọn Properties
Trong Project Designer, ở tab Application, chon
service từ danh sách Startup Object
• Build project
Trang 52TRUNG TÂM TIN HỌC
Triển khai dịch vụ - Deploy Service
• Dùng InstallUtil
Deploy: InstallUtil yourservice.exe
Undeploy: InstallUtil /u yourservice.exe.
Trang 54TRUNG TÂM TIN HỌC
Bước 1 Xây dựng Remote Object
• Tạo class library
Trang 56TRUNG TÂM TIN HỌC
public DataTable Doc_Bang(string
tenthutuc,Tham_So[] pts )
{ } Truyển vào tên của thủ tục nội tại và danh sách
tham số, trả về một bảng dữ liệu
Trang 57tham số, trả về kết quả thực hiện TTNT
Trang 58TRUNG TÂM TIN HỌC
• Định nghĩa lớp tham số
Trang 59TRUNG TÂM TIN HỌC
Bước 2 :Tạo Remote Server
Application
Trang 60TRUNG TÂM TIN HỌC
Tạo Remote Server Application
• Tham chiếu đến các thư viện
Trang 61TRUNG TÂM TIN HỌC
Tạo Remote Server Application
• Khai báo các biến
Trang 62TRUNG TÂM TIN HỌC
-khai báo đối tượng Formatters
Trang 63TRUNG TÂM TIN HỌC
Trang 64TRUNG TÂM TIN HỌC
Trang 65TRUNG TÂM TIN HỌC
đăng ký
Trang 66TRUNG TÂM TIN HỌC
thống :Khởi động Visual Studio
Command với administrator
Trang 67TRUNG TÂM TIN HỌC
thống :Khởi động Visual Studio
Command với administrator
Trang 68TRUNG TÂM TIN HỌC
Proxy Object
• Proxy object biểu diễn cho remote object được
tạo ra
Proxy object là một con trỏ đến remote object Nó
chứa các thông tin như vị trí server, kênh thông tin liên lạc được đăng ký
• Một proxy object được tạo ra khi có một yêu
cầu của client
Trang 69TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
Trang 70TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Tham chiếu đến các thư viện
Trang 71TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Khai báo các biến toàn cục
Trang 72TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Xây dựng thủ tục tạo Remoting Object
Trang 73TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
Trang 74TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Trong sự kiện Click của nút Ghi
Trang 75TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Xây dựng thủ tục trong sqlserver
Trang 76TRUNG TÂM TIN HỌC
Bước 3 :Tạo Clien Remoting
• Xây dựng thủ tục trong sqlserver
Trang 77TRUNG TÂM TIN HỌC
bạn