Sự khác nhau giữa các ứng dụng dịch vụ và các ứng dụng NET

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG DẠNG DỊCH VỤCHẠY TRÊN WINDOWS SERVER 2003DOMAIN CONTROLLER để SHUTDOWNCÁC máy TRONG DOMAIN THEO THỜIGIAN ĐỊNH TRƯỚC (Trang 28)

.NET Framework khác

Các ứng dụng dịch vụ và các ứng dụng .NET FrameWork khác nhau một vài

điểm chính như sau:

● Tập tin thực thi đã đươc biên dịch, tập tin mà một project ứng dụng dịch vụ

tạo ra phải được cài đặt trên máy trước khi project có thể hoạt động đúng nghĩa. Bạn không thể debug hay chạy một ứng dụng dịch vụ bằng cách bấm F5 hay F11; bạn không thể chạy dịch vụ ngay lập tức hay từng bước trong mã của nó. Thay vào đó, bạn phải cài đặt và khởi động dịch vụ của bạn, sau đó mới gán một debugger vào quá trình

KHOA CNTT –

ĐH KHTN

22

xử lý của dịch vụ và bạn có thể debug ứng dụng của bạn bằng cách sử dụng tất cả các cách debug chuẩn của Visual Studio.

● Bạn phải tạo các thành phần cài đặt cho các ứng dụng dịch vụ. Các thành phần cài đặt sẽ thực hiện cài đặt, đăng kí dịch vụ của bạn trên máy đích và tạo một chỉ mục cho dịch vụ của bạn với SCM của Windows.

● Trong phương thức Main, ứng dụng dịch vụ của bạn phải đưa ra lệnh Run

cho các dịch vụ mà project của bạn có. Phương thức Run này sẽ nạp các dịch vụ vào trong SCM trên máy đích thích hợp. Ở đây các bạn nên chú ý rằng việc nạp một dịch vụ thì không giống như việc khởi động dịch vụ.

● Các ứng dụng dịch vụ của Windows chạy trong phạm vi bảo mật của chính chúng và được khởi động trước khi người dùng đăng nhập vào Windows trên máy mà dịch vụđược cài đặt.

KHOA CNTT –

ĐH KHTN

23

Chương 4: Tìm hiểu về WMI (Windows Management Instrument) 4.1. Tổng quan về WMI

4.1.1. Khái niệm script và ngôn ngữ viết script

Trước khi tìm hiểu về kỹ thuật WMI chúng ta sẽ tìm hiểu sơ lược về script và ngôn ngữ viết script. Có thểđây là hai khái niệm hoàn toàn không liên quan đế đề tài nhưng để hiểu một cách thấu đáo và nhanh chóng về WMI chúng ta không thể không thông qua script.

● Script là một chương trình được viết bằng ngôn ngữ viết script (như là JScript hoặc VBScript và các ngôn ngữ viết script thay thế như Rexx, Python, và Perl). Khi so sánh các ngôn ngữ lập trình như C++ và Visual Basic, các ngôn ngữ

viết script thì thích hợp hơn để tạo ra các ứng dụng nhỏ. Script thích hợp với:

+ Việc thao tác với môi trường Windows. + Chạy các chương trình khác.

+ Tựđộng hóa các thủ tục đăng nhập.

+ Gởi các khóa một cách thường xuyên đến một ứng dụng.

● Ngôn ngữ viết script là một ngôn ngữ bất kì (như Microsoft Visual Basic Scripting Edition (VBScript) hoặc Microsoft JScript) có thể biên dịch hoặc hiểu

được các script đặc biệt. Các ngôn ngữ viết script thì thích hợp để tạo ra các ứng dụng nhỏ có khả năng đưa ra các giải pháp nhanh chóng cho những vấn đề nhỏ.

Các script có khả năng cho phép bạn truy cập cũng như thao tác với rất nhiều thành phần nằm sâu bên trong hệ thống, nhưng thật sựđể làm được điều đó các script phải cần đến WMI.

4.1.2. Tổng quan về WMI

Được đưa ra đầu tiên vào năm 1998 như là một thành phần bổ sung vào bản Windows NT 4.0 Service Pack 4, WMI là một kỹ thuật cho phép quản lý các thành phần cốt lõi bên trong hệ điều hành Windows 2000, Windows XP, và

KHOA CNTT –

ĐH KHTN

24

Windows 2003. WMI cung cấp cho bạn một phương pháp chuẩn để tương tác với thông tin quản lý hệ thống và các giao diện lập trình ứng dụng cơ sở.

Trước đây, và thậm chí cả ngày nay nhiều người vẫn sử dụng các công cụ

quản trị đồ họa để quản lý và giám sát các máy trạm và máy chủ. Hầu như chắc chắn bạn đã dùng hoặc đang dùng các công cụ quản trị đồ họa để quản lý các tài nguyên của Windows như các ổ đĩa, các tập tin, thư mục, các thành phần mạng, các cấu hình hệđiều hành, máy in, ..v..v.

Mặc dù các công cụ đồ họa đã cung cấp hầu hết các giải pháp ứng với các chức năng .Nhưng trước WMI, tất cả các công cụ quản trị đồ họa Windows đều dựa vào giao diện lập trình ứng dụng Win32 (Win32 APIs) để truy cập và quản lý các tài nguyên Windows. Tình hình này đã làm cho các nhà quản trị hệ thống không dễ dàng gì khi muốn sử dụng các ngôn ngữ viết script thông thường để tự động hóa các công việc quản trị thông thường, bởi vì hầu hết các ngôn ngữ viết script không thể gọi Win32 APIs một cách trực tiếp.

WMIđã thay đổi điều đó bằng cách cung cấp một cơ cấu và mô hình thích hợp để tất cả các tài nguyên Windows đều được mô tả và bày ra thế giới bên ngoài. Và trên tất cả là người quản trị hệ thống có thể sử dụng thư viện viết script

WMIđể tạo ra các script quản trị hệ thống để quản lý bất cứ tài nguyên Windows nào được bày ra thông qua WMI.

Với WMI bạn có thể sử dụng VBScript, Jscript hay bất kì ngôn ngữ viết script nào để viết các script dùng để quản lý và tựđộng hóa các mặt sau trong các hệ thống xí nghiệp, các hệ thống mạng và các ứng dụng của bạn:

Quản lý hệ thống Windows Server 2003, Windows XP Professional, và Windows 2000: Bạn có thể viết các script để truy lục dữ liệu thực thi, quản lý các event log, các hệ thống tập tin, máy in, các dịch vụ, tài nguyên chia sẻ, và nhiều thành phần cũng như các cấu hình hệđiều hành khác.

Quản lý mạng: Bạn có thể sử dụng WMI để viết các script quản lý các dịch vụ mạng như DNS, DHCP,…

KHOA CNTT –

ĐH KHTN

25

Giám sát tình trạng hệ thống: bạn có thể viết các script để giám sát và trả

lời các sửa đổi hệ thống tập tin và thanh ghi cũng như các thay đổi hệ điều hành thời gian thực khác.

4.2. Kiến trúc WMI

Kiến trúc WMI gồm ba lớp chính:

● Phần tiêu thụ (Consumers).

● Cơ sở hạ tầng WMI (WMI infrastructure).

●Các tài nguyên được quản lý (Managed resources).

KHOA CNTT –

ĐH KHTN

26

4.2.1. Các tài nguyên được quản lý (Managed resources)

Các tài nguyên được quản lý là thành phần logic hoặc vật lý bất kì nào, các thành phần này được bày ra và có thể được điều khiển bằng cách sử dụng WMI. Các tài nguyên Windows có thểđược quản lý bằng WMI gồm hệ thống máy tính, các ổ đĩa, các thiết bị ngoại vi, các tập tin, thư mục, các thành phần mạng, hệ điều hành phụ, máy in, các dịch vụ, các chia sẻ, Active Directory,…. Tài nguyên được quản lý giao tiếp với WMI thông qua Provider.

Khi bạn bắt đầu viết chương trình tương tác với các tài nguyên được quản lý, bạn sẽ thường nhìn thấy thuật ngữinstance (thực thể). Thuật ngữ này được sử

dụng để chỉ một đại diện ảo của tài nguyên được quản lý.

4.2.2. Cơ sở hạ tầng WMI (WMI infrastructure)

Lớp giữa trong kiến trúc WMI là cơ sở hạ tầng WMI bao gồm 3 thành phần chính: Common Information Model Object Manager (CIMOM), kho lưu trữ Common Information Model (CIM), và các Provider. Đồng thời, ba thành phần WMI này cung cấp cơ sở hạ tầng thông qua dữ liệu quản lý được định nghĩa,

được bày ra, được truy cập, và được lấy về. Thành phần thứ 4 tuy nhỏ nhưng hoàn toàn cần thiết cho việc viết script là thư viện viết script WMI.

4.2.2.1. Thư viện viết script WMI

Thư viện viết script WMI cung cấp một tập các đối tượng tự động thông qua các ngôn ngữ viết scrip (như VBScript, JScript và ActivePerl của ActiveState) truy cập cơ sở hạ tầng WMI. Thư viện viết script WMI được cung cấp trong một thư viện liên kết động đơn lẻ là wbemdisp.dll, trong thư mục %SystemRoot%\system32\wbem.

Các đối tượng tự động trong thư viện viết script WMI cung cấp một mô hình viết script thích hợp và đồng bộ cho cơ sở hạ tầng WMI. Một khi bạn hiểu

KHOA CNTT –

ĐH KHTN

27

viện viết script WMI, bạn có thể dễ dàng sử dụng các bước tương tựđể lấy ra các tài nguyên quản lý WMI khác.

4.2.2.2. Kho lưu trữ CIM

Kho lưu trữCIM là một cơ sở dữ liệu đối tượng, nó lưu trữ các đối tượng hay các lớp. Kho lưu trữCIMđược quản lý bởi CIMOM.

CIM gồm có các lớp, một lớp đại diện cho một tài nguyên có thể được quản lý. Tuy nhiên, các lớp này khác hơn các lớp thông thường một chút, các lớp này đại diện cho các tài nguyên động. Có nghĩa là, các thực thể của các tài nguyên này không được lưu trữ trong CIM mà nó được lấy về bởi Provider mỗi khi có yêu cầu từ phần tiêu thụ. Sở dĩ có điều này là vì trạng thái hoạt động của hầu hết các tài nguyên được quản lý thay đổi một cách thường xuyên nên phải được đọc theo yêu cầu đểđảm bảo thông tin lấy về là chính xác nhất.

Chú ý: Thuật ngữ kho là một điều gây nhầm lẫn trong phạm vi của CIM. Mặc dù CIM là một kho và có khả năng lưu trữ dữ liệu tĩnh nhưng vai trò chính của nó là lưu trữ các bản thiết kế cho các tài nguyên được điều khiển.

Các lớp trong CIM được tổ chức có cấp bậc, các lớp con thừa kế từ các lớp cha. Và các lớp cơ sở, cốt lõi nhất được bảo vệ chặt chẽ khỏi hệ thống và những người phát triển phần mềm.

Các lớp trong CIM gồm các thuộc tính mô tả cho cấu hình, trạng thái của các tài nguyên được quản lý và các phương thức là các hàm xử lý thực hiện các hành trên tài nguyên được quản lý.

Thực tế, CIM được lưu trữ tại thư mục %SystemRoot%\system32\wbem\ Repository\FS\ và bao gồm bốn tập tin: index.btr, index.map, objects.data, objects.map. Trong Microsoft Windows 2000 và Windows NT4.0 Service Pack 4,

CIM được chứa trong %SystemRoot%\system32\wbem\Respository\CIM.rep.

Trong Windows Millennium Edition (Me), Windows 98, và Windows 95 OSR 2.5, CIMđược chứa trong %windir%\system\wbem\Respository\CIM.rep.

KHOA CNTT –

ĐH KHTN

28

4.2.2.3. CIMOM

CIMOM (Common information Model Object Manager) điều khiển sự

tương tác giữa các phần tiêu thụ và các Provider.

Bạn có thể xem CIMOM như một người môi giới thông tin, tất cả các yêu cầu và luồng dữ liệu đều phải thông qua CIMOM. Khi một yêu cầu từ phần tiêu thụ đến CIMOM, CIMOM sẽ xem xét các yêu cầu và xác định xem Provider

nào có thông tin mà phần tiêu thụ này mong muốn. Do đó phần tiêu thụ chỉ cần biết thông tin mà mình mong muốn là gì chứ không cần phải quan tâm đến nguồn gốc hay bất kì chi tiết nào về nguồn gốc của thông tin, nó cũng không cần quan tâm đến việc các thông tin này được lấy ra như thế nào và bằng cách nào.

Để cung cấp cách thức chung cho các phần tiêu thụ truy cập WMI,

CIMOM cung cấp các dịch vụ cốt lõi sau trong cơ sở hạ tầng WMI:

Đăng kí Provider: Các Provider sẽ đăng kí vị trí và thông tin về khả

năng của mình với CIMOM. Thông tin này được lưu trữ trong CIM.

● Định tuyến yêu cầu: CIMOM sẽ sử dụng thông tin đăng kí của Provider

để gửi các yêu cầu của phần tiêu thụđến các Provider thích hợp.

Truy cập từ xa: các phần tiêu thụ truy cập đến các hệ thống có hỗ trợ

WMI từ xa bằng cách kết nối đến CIMOM trên hệ thống từ xa. Một khi kết nối

được thiết lập thì các phần tiêu thụ có thể thực hiện các thao tác tương tự các thao tác được thực hiện trên máy cục bộ.

Bảo mật: CIMOMđiều khiển việc truy cập đến các tài nguyên được điều khiển bằng cách xác nhận tính hợp lệ cho mỗi lần truy cập trước khi người dùng

được phép kết nối đến WMI trên máy cục bộ hoặc máy ở xa. Bảo mật của WMI

thì không chồng lên hay phá vỡ các bảo mật của hệđiều hành.

Truy vấn: cho phép phần tiêu thụ đưa ra các lời truy vấn đến bất kì tài nguyên được điều khiển nào bằng cách sử dụng WQL (WMI Query Language: Ngôn ngữ truy vấn WMI). CIMOM sẽ thực hiện ước lượng cho các câu truy vấn này trong trường hợp các Provider không hỗ trợ các thao tác truy vấn tự nhiên.

KHOA CNTT –

ĐH KHTN

29

Sự kiện: cho phép phần tiêu thụ nắm bắt các sự kiện đại diện cho các thay

đổi của các tài nguyên được quản lý. CIMOM sẽ thăm dò tài nguyên được quản lý tại khoảng mà bạn chỉ định, nó sẽ sinh ra một thông báo sự kiện khi điều kiện bắt sự kiện được thỏa.

4.2.2.4. Các Provider

Các Provider hoạt động như một người trung gian giữa CIMOM và tài nguyên được quản lý. Các Provider yêu cầu thông tin từ các tài nguyên được quản lý và gởi các chỉ thịđến đó thay cho các phần tiêu thụ.

Các Provider giao tiếp riêng với từng tài nguyên được quản lý qua các giao diện lập trình ứng dụng tự nhiên, do đó các chi tiết thi hành đối với từng tài nguyên được quản lý sẽ được che dấu một cách cẩn thận. Provider giao tiếp với

CIMOM qua giao diện lập trình WMI.

Thường thì các Provider được thực hiện như các thư viện liên kết động trong thư mục %SystemRoot%\system32\wbem, WMI bao gồm nhiều Provider

gắn vào hệ điều hành Win2K, Windows XP, và WS2K3. Các Provider tích hợp này cũng được biết đến như các provider chuẩn. Sau đây là một vài provider

chuẩn trong Win2K, Windows XP, và WS2K3.

Active Directory provider: ánh xạ các đối tượng Active Directory vào

WMI.

Event Log provider: quản lý các event log của Windows. Ví dụ: đọc, sao lưu dự phòng, xóa, sao chép, giám sát,… và thay đổi các cấu hình event log.

Performance Counter provider: cung cấp cách truy cập đến dữ liệu thực thi thô.

Registry provider: đọc, viết, liệt kê, giám sát, tạo và xóa các khóa và giá trị các thanh ghi.

WDM provider: cung cấp cách truy cập đến các thông tin trên các trình

điều khiển thiết bị WDM.

Win32 provider: cung cấp các thông tin về máy tính, đĩa, các thiết bị

KHOA CNTT –

ĐH KHTN

30

Trong phần 4.4 chúng ta sẽ tìm hiểu kỹ về provider này sau khi đã xem một ví dụ về cách áp dụng WMI trong ứng dụng trong phần 4.3.

Windows Installer provider: cung cấp cách truy cập đến các thông tin về các phần mềm được cài đặt.

4.2.3. Phần tiêu thụ (Consumers)

Phần tiêu thụ là lớp trên cùng trong kiến trúc của WMI. Phần tiêu thụ là một script, một ứng dụng, hoặc các công cụ quản trị khác truy cập và điều khiển thông tin quản lý một cách hiệu quả thông qua cơ sở hạ tầng WMI.

4.3. Ví dụứng dụng WMI đơn giản

Trong phần này chúng ta sẽ xem một ví dụđơn giản về việc sử dụng WMI

để lấy dung lượng bộ nhớ vật lý của máy cục bộ. Ở đây chúng tôi sẽ sử dụng ngôn ngữ VBScript để viết một script đơn giản, bạn không cần phải quan tâm nhiều lắm

đến vấn đề ngôn ngữ mà vấn đề chính là hiểu các bước thực hiện. VBScript là một ngôn ngữ viết script như nhiều ngôn ngữ viết script khác và nó có nhiều nét giống với ngôn ngữ Visual Basic nên chúng tôi nghĩ cũng không có gì là quá phức tạp để

hiểu.

Có nhiều cách để viết một script, nhưng ở đây chúng tôi sẽ chỉ cho bạn một cách đơn giản nhất để viết script này. Đầu tiên, bạn chỉ việc mở trình soạn thảo Notepad, sao chép đoạn mã sau vào đó:

strComputer = "."

Set wbemServices = GetObject("winmgmts:\\" & strComputer) Set wbemObjectSet =

wbemServices.InstancesOf("Win32_LogicalMemoryConfiguratio n")

For Each wbemObject In wbemObjectSet

WScript.Echo "Total Physical Memory (kb): " &

wbemObject.TotalPhysicalMemory

Next

Bạn sẽ lưu tập tin này lại với tên “vidu.vbs”, sau đó kích đôi chuột vào tên tập tin trong thư mục mà bạn đã lưu nó vào để chạy nó. Lúc này bạn sẽ thấy một

KHOA CNTT –

ĐH KHTN

31

hộp thoại tương tự như hình bên dưới xuất hiện mang theo thông tin về dung lượng của bộ nhớ vật lý của bạn.

Hình 4.2

Tiếp theo chúng ta sẽ xem lại ba bước chính mà đoạn mã trên đã thực hiện:

Một phần của tài liệu XÂY DỰNG ỨNG DỤNG DẠNG DỊCH VỤCHẠY TRÊN WINDOWS SERVER 2003DOMAIN CONTROLLER để SHUTDOWNCÁC máy TRONG DOMAIN THEO THỜIGIAN ĐỊNH TRƯỚC (Trang 28)

Tải bản đầy đủ (PDF)

(64 trang)