1. Trang chủ
  2. » Luận Văn - Báo Cáo

nghiên cứu mô hình kháchchủ, đặc biệt là ứng dụng mô hình kháchchủ trong SQL server 2000 để lưu trữ thông tin

59 432 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 59
Dung lượng 743,5 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

CHƯƠNG II: Sử dụng mô hình SQL Server 2000 trong mô hình khách/chủ Nội dung phần này giới thiệu về SQL Server 2000, các thành phầnchính của máy chủ, máy khách và hệ thống cơ sở dữ liệu C

Trang 1

Bảng viết tắt

ADO: ActiveX Data Objects

ANSI: American National Standards Institute

API: Application Programming Interface

DB: Database

DBMS: Database Management System

DNA: Distributed Internet Application

DAO: Data Access Object

HTML: Hypertext Maskup Language

ISO: International Standards Organization

IPC: Windows Interprocess Communications

IPX/SPX: Internetwork Package Exchange/Sequence PackageExchange

MFC: Microsoft Foundation Classes

MS DTC Service: Microsoft Distributed Transaction Coordinator

LAN: Local Access Network

Net-Libraries: Network-Libraries

SP: Store Procedure

SQL: Structured Query Language

PC: Profetionnal Computer

ODBC: Open Database Connectivity

TCP/IP: Tranfer Control Protocol/ Internet Protocol

T-SQL: Transact-SQL

TDS: Tabular Data Stream

USI: User System Interface

UPS: Uninterruptable Power Supply

VIA: Virtual Interface Architecture

XML: Extensible Markup Language

Mở đầu

Trong những năm gần đây, đi đôi với sự phát triển mạnh mẽ của khoahọc kỹ thuật, tin học đã đi sâu ứng dụng vào mọi lĩnh vực khác nhau trong đờisống xã hội Đặc biệt là trong việc xây dựng hệ thống quản lý thông tin, giúpích rất nhiều cho công việc, chi phí, thời gian và nhân lực Ta có thể kể ra đây

Trang 2

một số áp dụng: hệ thống quản lý đào tạo giáo dục nhằm trợ giúp lãnh đạo cáctrờng học trong công tác quản lý học tập, đào tạo, tra cứu, tìm kiếm Hệthống tra cứu thông tin có thể có thể ứng dụng cho việc quản lý th viện, giúpcho nhiều ngời ở nhiều địa điểm khác nhau mà không phải chờ đợi và côngviệc tra cứu tìm ra cuốn sách mình cần cũng vô cùng nhanh chóng Nh vậychúng ta cũng có thể thấy rõ ràng một thực tế là các hệ thống thông tin rất đadạng về mọi mặt, cả về nội dung và phơng pháp lu trữ Kết quả tất yếu là việcquản lý các thông tin đó sẽ không đợc thống nhất, dễ gây ra sai lệnh, nhầmlẫn, khó khăn cho việc tra cứu, tìm kiếm

Để giải quyết vấn đề trên, luận văn đi sâu nghiên cứu mô hìnhKhách/Chủ, đặc biệt là ứng dụng mô hình Khách/Chủ trong SQL Server 2000

để lu trữ thông tin

Những vấn đề luận văn nghiên cứu:

 Kiến trúc mô hình Client/Server

 Mô hình Client/Server trong SQL Server 2000

 Xét một ví dụ cụ thể cho những phần nghiên cứu luận văn

Bài toán Quản lý Đào tạo Khoa học sau Đại học của tr“Quản lý Đào tạo Khoa học sau Đại học của tr ờng Đại học S phạm”

-Luận văn sẽ đợc thiết kế bao gồm bốn chơng sau:

CHƯƠNG I: Giới thiệu về mô hình Client/Server

Nội dung phần này là đa ra kiến thức cơ bản về mô hình Client/Server,cấu trúc phần mềm, kiến trúc phần mềm hai lớp, kiến trúc phần mềm ba lớpcủa mô hình Client/Server

CHƯƠNG II: Sử dụng mô hình SQL Server 2000 trong mô hình khách/chủ

Nội dung phần này giới thiệu về SQL Server 2000, các thành phầnchính của máy chủ, máy khách và hệ thống cơ sở dữ liệu Client/Server

CHƯƠNG III: Bài toán Quản lý Đào tạo Khoa học sau Đại học

Nội dung phần này trình bày phân tích thiết kế hệ thống thông tin chobài toán Quản lý Khoa học sau Đại học

CHƯƠNG IV: Thiết kế hệ thống Quản lý Đào tạo Khoa học

Nội dung phần này trình bày thiết kế hệ thống thông tin cho bài toánQuản lý Khoa học sau Đại học

Trang 3

Trong một thời gian hạn hẹp và khả năng còn nhiều hạn chế, hơn nữaphạm vi nghiên cứu của đề tài lớn nên chắc chắn luận văn còn nhiều khiếmkhuyết Em rất mong đợc sự đóng góp ý kiến của các thầy cô giáo và toàn thểcác bạn đồng nghiệp.

Cuối cùng, em xin chân thành cảm ơn các thầy cô giảng dạy khoaToán-Tin, đã tận tình hớng dẫn, giúp đỡ và tạo mọi điều kiện về cơ sở vật chấtgiúp em hoàn thành bài luận văn này

Chơng 1 Mô hình Khách/Chủ

Thuật ngữ khách/Chủ đợc sử dụng đầu tiên vào đầu những năm

1980 trong cuộc hội thảo về máy tính cá nhân trên mạng Nhng mô hình vềKhách/Chủ đợc thực sự chấp nhận vào cuối những năm 1980 Mô hình này bắtnguồn từ việc xây dựng các mô hình theo kiến trúc máy tính lớn (Mainframe),

ở đây ngời dùng tơng tác với máy chủ (host) thông qua các thiết bị đầu cuối,các thiết bị đầu cuối này sẽ thu nhận các thao tác của ngời sử dụng và thôngtin sau đó gửi tới máy chủ xử lý Tiếp theo ngời ta phát triển mô hình kiến trúcchia sẻ file Các máy chủ lấy các files từ các vị trí đợc chia sẻ để gửi tới ngờiyêu cầu để chạy trên môi trờng máy tính cá nhân Cấu trúc chia sẻ files nàychỉ tiện lợi khi số ngời sử dụng chia sẻ là ít, nội dung cập nhật không thờngxuyên và khối lợng dữ liệu chuyển tải là ít Đến những năm 1990 các mạngtính toán theo mô hình cục bộ đã thay đổi vì số ngời sử dụng thờng xuyên

Trang 4

tăng lên, việc sử dụng giao diện đồ hoạ trở lên phổ dụng làm cho máy tính lớn

và thiết bị đầu cuối không còn thích hợp nữa Từ đây các máy PC đợc sử dụngtheo cấu trúc Khách/Chủ kéo theo kiến trúc Khách/Chủ ra đời

1.1 Định nghĩa mô hình Khách/Chủ

Mô hình Khách/Chủ là mô hình mà cơ sở thông tin đợc xây dựng tậptrung tại một điểm gọi là Server và việc khai thác cơ sở thông tin này đợc phântán tại nhiều điểm khác nhau, các điểm này gọi là Client Một Client sẽ gửiyêu cầu tới Server theo một số giao thức nào đó, và thông tin hoặc hành độngnày sẽ đợc Server gửi trả lại Hình dới đây thể hiện mô hình Khách/Chủ cơbản:

Tính năng cơ bản của mô hình Khách/Chủ:

1) Các Client và Server là các modules hàm cùng định nghĩagiống nhau (ví dụ: chúng cùng che dấu cài đặt thông tin) Cáchàm thực hiện bởi một Client và một Server có thể đợc cài đặtbởi một modules phần mềm, thành phần phần cứng, hoặc kếthợp cả hai Client hoặc Server thờng là chạy trên hai máykhác nhau nhng cũng có thể Client và Server chạy trên cùngmột máy

2) Quan hệ giữa Khách và Chủ trong mô hình Khách/Chủ thực ra

là quan hệ giữa hai hàm modules Khi một module phíaKhách khởi tạo một yêu cầu dịch vụ thì tơng ứng bên phíaChủ sẽ đáp trả bằng cách gọi một module thích hợp để đáp trảyêu cầu của máy Khách Tuy nhiên, một máy Chủ phục vụyêu cầu dịch vụ cho máy Khách nào đó cũng có thể trở thànhmột máy Khách đối với máy Chủ khác

3) Thay đổi thông tin giữa Khách và Chủ chỉ thông qua các gói tin (ví dụ: không thông tin nào là đợc thay đổi qua biến toàn cục) Các yêu cầu dịch vụ và thông tin cần thêm là đợc đặt trong các gói tin để gửi đến máy Chủ Máy Chủ sẽ gửi lại các

Trang 5

yêu cầu bằng cách tơng tự nh là máy Khách, tức là máy Chủ trả lời các yêu cầu này cũng bằng gói tin.

1.2 Ưu nhợc điểm của máy tính Khách/Chủ

Ưu điểm của mô hình Khách/Chủ:

+ Nâng cao đợc vai trò của máy tính để bàn, giúp các trạm làm việc cókhả năng thực hiện nhiều công việc trớc đây chỉ thực hiện đợc trên máy tínhlớn (Frame) Nh vậy chi phí mạng sẽ giảm đáng kể

+ Cho phép một số thao tác dữ liệu đợc gói gọn trên nút chứa dữ liệu.Vì vậy, thông tin lu thông trên mạng và thời gian trả lời giảm, thông lợng vàkhả năng mang thông tin của mạng tăng lên Ngợc lại yêu cầu về giải thông(Band Width) giảm kéo theo chi phí giảm

+ Cho phép dùng các giao diện đồ họa trên các trạm làm việc giúp việc

sử dụng và đào tạo dễ dàng hơn

+ Chú ý đến khuyến khích chấp nhận hệ thống mở (Thực tế mô hìnhKhách/Chủ có thể chạy trên các cấu hình phần cứng và phần mềm khác nhau) + Việc cài đặt mô hình này dễ hơn mô hình phân tán

+ Trong mô hình, các máy trạm có thể không cần phải quá mạnh

+ Các quá trình xử lý gần với dữ liệu hơn do đó giảm tối đa sự lu

chuyển trên mạng

+ Quản lý, kiểm soát dữ liệu tốt hơn, đảm bảo tính duy nhất của dữ liệu trong mạng

+ Có điều kiện tốt nhất để bảo vệ và bảo quản dữ liệu

+ Phù hợp với phần lớn các mô hình quản lý trong nhiều lĩnh vực nên

có thị trờng phát triển rộng

Nhợc điểm của mô hình Khách/Chủ:

+ Dữ liệu lu chuyển trên đờng rất lớn nên dễ có sự sai lệch số liệu do vậtlý

+ Khối lợng dữ liệu tại Server rất lớn Vì vậy, truy cập sẽ chậm

+ Nếu quá nhiều các quá trình quan trọng mà nằm tại máy chủ thì có thểphát sinh hiện tợng nút cổ chai (BottleNeck) Tuy nhiên với sự phát triển vợtbậc của ngành điện tử nói chung và máy tính nói riêng thì những nhợc điểmtrên đã đợc khắc phục Ngoài ra rất nhiều ngành và cơ sở kinh tế chấp nhậnmột điều kiện là: “Quản lý Đào tạo Khoa học sau Đại học của trchậm nhng tin cậy và có khả năng làm chủ”, do đó mô hìnhKhách/Chủ là sự lựa chọn tuyệt vời trong mô hình quản lý dữ liệu ngày nay

1.3 Mô hình Khách/Chủ trong chia sẻ thiết bị

Trang 6

Mô hình Khách/Chủ nổi lên nh một mô hình cao cấp của chia sẻ thiết bịtrong phạm vi một mạng LAN Trong môi trờng mạng LAN chia sẻ thiết bị,mỗi máy tính cá nhân gắn liền với một hệ thống thiết bị cho phép các máytính này có thể chia sẻ tài nguyên chung Việc chia sẻ file trên đĩa cứng hoặcmáy in là một ví dụ Trong phạm vi mạng LAN, thiết bị dùng để chia sẻ đợcgọi là máy chủ (server), tên Server đợc tiếp cận theo nghĩa các thiết bị chia sẻ

đợc sử dụng để nhận các yêu cầu cho các dịch vụ xuất phát từ các máy PCkhác sinh ra Trong một số kiểu chia sẻ cổ điển, các máy PC (Client) thờngphát sinh quá trình yêu cầu chia sẻ các thiết bị nh máy in, hoặc tệp Tất cả cácquá trình này đều thông qua Server

Tóm lại : Yêu cầu phát sinh từ Client và sẽ đợc Server xử lý và trả lời

Hệ điều hành Giao tiếp với mạng

Trang 7

Tại máy khách (Client):

Xuất phát là các phần mềm ứng dụng yêu cầu Những yêu cầu này đợcchuyển cho mức xử lý, mức này làm nhiệm vụ đóng gói, thiết lập giao tiếp vớigiao thức mạng (Network protocol) ở mức dới Phần thông tin này sẽ đợc mứcmạng (Network) gửi đi

Tại máy chủ (Server) :

Thông tin nhận đợc sẽ đợc phần giao tiếp với mạng chuyển lên trên hệ

điều hành, hệ điều hành sẽ phát sinh quá trình và quản lý quá trình, phục vụcho yêu cầu này Hệ điều hành ở đây phần lớn dùng hệ điều hành đa nhiệm.Thông tin yêu cầu sẽ đợc hai nhóm dịch vụ phục vụ phân tích và gửi lên cácứng dụng để khai thác thông tin cần thiết Quá trình trả lời đợc thực hiện ngợclại

Ví dụ: Dới đây là các xử lý giữa Khách/Chủ dựa trên các Data File

1 Trạm Client yêu cầu một ứng dụng

2 Server gửi ứng dụng này cho Client

3 Client yêu cầu các tệp dữ liệu

4 Server gửi toàn bộ tệp dữ liệu cho Client

5 Tiến trình xảy ra tại Client trên tệp dữ liệu

6 Client trả lại Server tệp dữ liệu sau khi đã thay đổi hoặc thực hiệnxong công việc

II Kiến trúc phần mềm và cơ sở dữ liệu trong mô hình Khách/Chủ

Trang 8

Các tổ hợp xử lý đợc phân chia theo một thứ tự nhất định Nhìn mộtcách tổng thể các tổ hợp xử lý của một kiểu ứng dụng đợc phân chia thành cácmức sau :

Mức trình bày logic :

Đây là sự tham gia của các chơng trình ứng dụng dùng trao đổitrực tiếp với một trạm đầu cuối hoặc một trạm làm việc Công việc thực hiệncủa mức logic trình bày là khuôn dạng trình bày trên màn hình, đọc và ghi cácthông tin lên màn hình, quản lý các cửa sổ, bàn phím, các thao tác của conchuột Có một vài công cụ đã đợc xây dựng cho tầng này là IBM’s CICS, IMS/

DC và TSC Tuy nhiên, các ứng dụng trên chỉ tập trung vào môi trờng máytính lớn (MainFrame) Các giao diện Graphics trên các PC cũng đợc cung cấp

nh OS/2, Present Manager, MicroSoft’s Windows Trên môi trờng Unix cũng

có X Windows, OSF’s Motif and SUN’s Open Look

Mức tác vụ logic:

Đây là sự tham gia của các chơng trình ứng dụng sử dụng dữ liệu

đầu vào (từ màn hình hoặc từ cơ sở dữ liệu) để thực hiện các chơng trình cầnthiết Các chơng trình đợc ngời lập trình viên viết trên các ngôn ngữ thế hệ 3(Third Generation Languages)

Mức logic dữ liệu :

Đây là sự tham gia của các chơng trình mà các chơng trình nàytrực tiếp thao tác với các cơ sở dữ liệu Cơ sở dữ liệu đợc quản lý trực tiếp bởi

hệ thống quản lý cơ sở dữ liệu Thao tác cơ sở dữ liệu dựa trên các lợc đồ quan

hệ đã đợc thiết kế trên các ngôn ngữ nh SQL hoặc bằng cách thông qua ngônngữ thế hệ 3 hoặc thế hệ 4

Xử lý dữ liệu :

Đây là những xử lý thực tế trên các cơ sở dữ liệu, các xử lý này

đợc thực hiện bởi hệ quản trị cơ sở dữ liệu Nghĩa là hệ quản trị cơ sở dữ liệu

xử lý công việc hoàn toàn độc lập trên nền của mức logic tác vụ, nghĩa là trênmức tác vụ ngời lập trình không phải quan tâm đến hoạt động trên hệ quản trịcơ sở dữ liệu nào Mặc dù vậy dới quan điểm kiến trúc thì quá trình xử lý dữliệu là phần thiết yếu nhất trong các tổ hợp trên

Trang 10

- Thành phần phần mềm cơ sở dữ liệu (Database software components).

- Bản thân cơ sở dữ liệu (The Database)

Nhng các ứng dụng trong mô hình cơ sở dữ liệu Khách/Chủ, cơ sở dữliệu nằm trên một máy tính khác với các máy có thành phần xử lý ứng dụng.Phần mềm cơ sở dữ liệu đợc tách ra khỏi hệ thống Client chạy các chơng trìnhứng dụng và hệ thống Server lu trữ cơ sở dữ liệu

Trong mô hình này, các thành phần xử lý ứng dụng trên hệ thống Client

đa ra yêu cầu cho phần mềm cơ sở dữ liệu trên máy tính Client, phần mềm này sẽ kết nối với phần mềm cơ sở dữ liệu chạy trên Server để truy cập vào cơ

sở dữ liệu và gửi trả kết quả cho máy Client

Hình 1-4 : Mô hình cơ sở dữ liệu Khách/Chủ ( Client/Server Databasemodel)

Mới nhìn mô hình cơ sở dữ liệu Khách/Chủ có vẻ giống nh mô hình file-server Nhng mô hình cơ sở dữ liệu Khách/Chủ có nhiều thuận lợi hơn mô

Mạng

ứng dụng Phần mềm CSDL

Client

Phần mềm CSDL

SERVER CSDL

ứng dụng Phần mềm CSDL

Client

ứng dụng Phần mềm CSDL

Client

Trang 11

hình file-server Với mô hình file-server, thông tin gắn với sự truy cập cơ sở dữ liệu vật lý phải chạy trên toàn mạng Một giao tác yêu cầu nhiều sự truy cập dữ liệu có thể gây ra lu lợng truyền trên mạng tăng.

Giả sử một ngòi dùng cuối tạo ra một vấn tin (information query) đểlấy dữ liệu tổng số trên 1000 sản phẩm chẳng hạn, lúc đó ngời sử dụng đòi hỏilấy dữ liệu từ 1000 bản ghi Với cách tiếp cận file-server, nội dung của tất cả

1000 bản ghi sẽ đợc đa lên mạng Vì phần mềm cơ sở dữ liệu chạy trên máycủa ngời sử dụng phải truy cập từng bản ghi để thỏa mãn yêu cầu của ngời sửdụng Với cách tiếp cận cơ sở dữ liệu Khách/Chủ, chỉ có lời gọi vấn tin ban

liệu, chạy trên máy lu trữ dữ liệu sẽ xử lý các bản ghi dữ liệu theo yêu cầu vấntin của ngời sử dụng và sau đó trả về kết quả cuối cùng

Phần mềm tiền xử lý (Front-end software)

Trong mô hình cơ sở dữ liệu Khách/Chủ, ngời ta thờng nói đến cácfront-end software và back-end software Front-end software đợc chạy trênmột máy tính cá nhân hoặc một trạm làm việc và đáp ứng các yêu cầu đơn lẻriêng biệt Phần mềm này đóng vai trò của Client trong ứng dụng cơ sở dữ liệuKhách/Chủ và thực hiện chức năng hớng tới nhu cầu của ngời dùng cuối cùng,phần mềm Front-end software thờng đợc chia làm các loại nh sau :

- Phần mềm cơ sở dữ liệu ngời dùng cuối (End user database software) :Phần mềm cơ sở dữ liệu này có thể thực hiện bởi ngời sử dụng cuối cùng trênchính hệ thống của họ để truy cập vào các hệ thống cục bộ nhỏ cũng nh kếtnối với các cơ sở dữ liệu lớn trên cơ sở dữ liệu Server

- Phần mềm báo cáo và truy vấn đơn giản (Simple query and reporting software) : Phần mềm này đợc thiết kế để cung cấp các công cụ dễ dùng hơn trong việc lấy dữ liệu từ cơ sở dữ liệu và tạo các báo cáo đơn giản từ cơ sở dữ liệu đã có

- Phần mềm phân tích dữ liệu (Data analysis software) : Phần mềmnày cung cấp các hàm về tìm kiếm, khôi phục, chúng có thể cung cấp cácphân tích phức tạp cho ngời dùng

- Công cụ phát triển ứng dụng (Application development tools) : Cáccông cụ này cung cấp các khả năng về ngôn ngữ mà các nhân viên hệ thốngthông tin chuyên nghiệp sử để xây dựng cơ sở dữ liệu của họ Các công cụ vềthông dịch, biên dịch đơn đến các công cụ CASE (Computer Aided

Trang 12

Software), chúng tự động tất cả các bớc trong quá trình phát triển ứng dụng vàsinh ra chơng trình cho các ứng dụng cơ sở dữ liệu.

- Công cụ quản trị dữ liệu (Data Administration Tools) : Các công cụnày cho phép ngời quản trị cơ sở dữ liệu sử dụng máy tính cá nhân hoặc trạmlàm việc để thực hiện việc quản trị cơ sở dữ liệu nh định nghĩa các cơ sở dữliệu, thực hiện lu trữ hay phục hồi

Phần mềm hậu xử lý (Back-end software)

Phần mềm này bao gồm phần mềm cơ sở dữ liệu Khách/Chủ và phầnmềm mạng chạy trên máy đóng vai trò là Server cơ sở dữ liệu

2.3 Kiến trúc phần mềm Khách/Chủ

2.3.1 Mục đích

Cấu trúc Khách/Chủ ra đời để thay thế sự giới hạn của cấu trúc chia

thế cho file server Các yêu cầu của ngời sử dụng có thể đợc trả lời trực tiếpbằng việc sử dụng các hệ thống quản lý dữ liệu quan hệ (Relational DatabaseManagement System-DBMS) Cấu trúc Khách/Chủ giảm rất lớn tải truyềnthông trên mạng (Reduce Network Traffic) bằng việc cung cấp các trả lời truyvấn (query response) thay vì chuyển tải toàn bộ file dữ liệu Nó cải tiến trongviệc cập nhật dữ liệu từ các chơng trình, tơng tác trực tiếp với ngời sử dụng tớicác dữ liệu chia sẻ Trong Khách/Chủ các gọi thủ tục từ xa RPCs (RemoteProcedure Calls) hoặc các câu lệnh của các ngôn ngữ truy vấn chuẩn SQL(Standard Query Language) là các chuẩn đặc trng truyền thông giữa client vàserver

2.3.2 Kiến trúc phần mềm hai lớp

Kiến trúc phần mềm hai lớp đợc phát triển vào những năm 1980 bắtnguồn từ thiết kế kiến trúc phần mềm cho file server Kiến trúc hai lớp này đ-

ợc phát triển nhằm nâng cao khả năng sử dụng bằng việc hỗ trợ các nền cơ sở

và giao diện thân thiện với ngời sử dụng và nâng cao tính ổn định khi hệ thốngngời sử dụng lên đến hàng trăm Mặt khác, nó là một hệ thống rất mềm dẻo vàlinh hoạt vì nó cho phép dữ liệu đợc chia sẻ trong các môi trờng đồng nhất Vàyêu cầu xen kẽ các phép toán rất ít

Kiến trúc hai lớp bao gồm ba cấu thành, phân tán trên hai mức đó là :Client (requester of services), server (provider of services) và thành phần thứ

ba là :

Trang 13

1 Giao diện hệ thống ngời sử dụng (User System Interface) : Giaodiện hệ thống với ngời sử dụng chẳng hạn nh phiên (session), nhậpdữ liệu (input text), hộp thoại (dialog) và một số dịch vụ quản lýmàn hình (display management services).

2 Quản lý tiến trình (Processing management) : Chẳng hạn nh pháttriển các tiến trình, quy định các quy tắc với các tiến trình, kiểmsoát tiến trình và các dịch vụ cung cấp tài nguyên cho tiến trình

3 Quản lý cơ sở dữ liệu (Database Management) : Chẳng hạn nh dữliệu (data) và dịch vụ về file (file services)

Thiết kế hai lớp này cung cấp giao diện với ngời sử dụng là duy nhất

đối với client Nó quản lý dữ liệu (Database Management) trên server và chia

sẻ việc quản lý tiến trình giữa client và server

Nói chung, giao diện hệ thống ngời sử dụng ở client kết thúc các dịch

vụ từ server quản lý dữ liệu Trong nhiều thiết kế hai mức, hầu hết các phầnứng dụng xử lý tiến trình nằm trong môi trờng client Còn Server quản lý dữliệu thông thờng chỉ cung cấp các phần xử lý tiến trình có liên quan đến việctruy cập dữ liệu (related to acessing data) Các phần này thờng đợc cài đặttrong các nội thủ tục (Store Procedure) Các máy khách thờng truyền thôngvới máy chủ thông qua các câu lệnh SQL hoặc các giao diện ở mức gọi (Call-level interface) Điều này cho ta thấy rằng liên kết giữa hai lớp có thể thay đổi

động dựa trên yêu cầu về dữ liệu và dịch vụ của ngời sử dụng

Trong cấu trúc Khách/Chủ hai lớp này, các hệ thống giao diện với

ng-ời sử dụng nằm trên môi trờng máy cá nhân (Destop environment) và cácdịch vụ quản lý dữ liệu nằm trên máy chủ Máy chủ phải là một máy tính đủmạnh để có thể đủ khả năng phục vụ nhiều client Trên các máy chủ quản lýdữ liệu, cung cấp các nội thủ tục (Stored Procedure) và bẫy (Trigger) Các nộithủ tục (Stored Procedure) là các thủ tục chơng trình đợc lu trữ trên dữ liệu (ở

Trang 14

đây bắt nguồn từ ý niệm là chơng trình phải lu trữ cùng với dữ liệu) và cácTrigger là các “Quản lý Đào tạo Khoa học sau Đại học của trbẫy” cũng nằm trên dữ liệu, nó đợc sử dụng khi ta kích hoạtmột thao tác cơ bản với dữ liệu (Delete, Update, Change, ).

Cấu trúc Khách/Chủ hai lớp này là một giải pháp tốt cho việc xây dựngmô hình tính toán phân tán khi nhóm làm việc có từ 10 đến 100 ngời cùng làmviệc trên mạng LAN Tất nhiên, nó cũng có những giới hạn nhất định khi sốngời làm việc đồng thời lớn hơn 100 thì khả năng thực hiện của nó sẽ giảm

Đó là kết quả của việc máy chủ quản lý các kết nối thông qua thông điệp đểduy trì các kết nối (keep-alive message) với các máy khách, thậm chí kể cảlúc không làm gì Một hạn chế khác nữa đó là việc thiết lập các dịch vụ quản

lý tiến trình không mềm dẻo khi ta chọn các hệ quản lý dữ liệu khác nhau(Database Management System-DBMS), và các thiết lập hiện hành cũng bịhạn chế khi ta di chuyển các chức năng chơng trình hiện hành sang một serverluôn kéo theo việc sửa đổi lại các mã chơng trình

So sánh với cấu trúc phần mềm file server thì ta thấy kiến trúc hai lớpnày tiện lợi, ổn định, nhiều tính năng đợc sử dụng hơn và cung cấp giao diệntheo ngời sử dụng (a customized user system interface)

Trong kiến trúc này chúng ta có thể cấu hình một server hoạt động nhmột client đối với một server khác Điều này đợc hiểu nh một thiết kế kiếntrúc hai lớp theo chuỗi (a chained two tier architecturre design)

Ưu nhợc điểm :

- Tính ổn định (Scalability): Kiến trúc phần mềm hai mức chỉ chạy ổn

định đối với các hệ thống khoảng 100 ngời sử dụng Nếu số lợng client lớnquá thì server sẽ bị quá tải bởi việc liên tục kiểm soát các thông điệp để duytrì kết nối (“Quản lý Đào tạo Khoa học sau Đại học của trkeep-alive” message) với client, thậm chí khi client không thựchiện một tác vụ nào Mặt khác, việc cài đặt các tác vụ logic (business logic)trong các nội thủ tục (Stored Procedure) có thể giảm tính ổn định vì các ứngdụng logic sẽ di chuyển tới server quản lý dữ liệu nhiều hơn, các nhu cầu xử

lý các tiến trình tăng lên và nh thế sẽ hạn chế số lợng ngời sử dụng

- Cấu hình và quản trị hệ thống (System administration and

configuration): Trong kiến trúc hai lớp này rất khó bảo trì và quản lý hệ thốngvì các ứng dụng nằm trên các client cho nên tất cả các việc nâng cấp đều phảithực hiện, cài đặt và kiểm thử trên từng client Đặc biệt điều này dẫn tới mất

Trang 15

tính đồng bộ trong cấu hình của client và có thể thiếu những thay đổi cần thiếttrên các client dẫn đến công việc quản trị sẽ khó khăn lên rất nhiều.

Bó công việc (Batch jobs): Trong kiến trúc hai mức này không hiệu quả

khi ta chạy các chơng trình theo bó (running batch programs) vì các client sẽngừng hoạt động cho tới khi bó công việc kết thúc, thậm chí ngay cả khi cáccông việc đó hoàn toàn thực hiện trên server

2.3.3 Kiến trúc phần mềm ba lớp

Kiến trúc phần mềm ba lớp đợc đa ra vào những năm 1990 nhằm giải

(middle tier server (nằm giữa client và server quản lý dữ liệu)) Lớp giữa này

sẽ cung cấp các quản lý tiến trình nơi mà các tác vụ logic (business logic) vàcác quy tắc (rules) đợc thực hiện và chia sẻ giữa hàng trăm users Nó cung cấpcác chức năng nh các hàng đợi (queue), thực thi ứng dụng (applicationexcution) và trình diễn dữ liệu (Database Staging) Kiến trúc ba lớp này dùngtrong việc thiết kế các kiến trúc Khách/Chủ phân tán rất hiệu quả Nó nâng caokhả năng thực thi, tính linh hoạt, dễ bảo trì, khả năng sử dụng lại và tính ổn định

Nó dấu sự phức tạp trong xử lý phân tán đối với user

Một kiến trúc Client/Server ba lớp gồm:

1) mức cao nhất đó là giao diện hệ thống với ngời sử dụng nơi chứacác dịch vụ cho ngời dùng (Such as session, text input, dialog, anddisplay management)

2) Mức giữa Cung cấp các dịch vụ về quản lý tiến trình, chẳnghạn nh phát sinh tiến trình, phát sinh các quy định đối với tiến trình,quản lý tiến trình và cấp phát tài nguyên cho tiến trình Các dịch vụnày chia sẻ bởi nhiều ứng dụng

chuẩn bị dữ liệu Chẳng hạn, nh hàng đợi máy chủ sẽ cung cấp một

Three Tiers User System Interface

Process Management

Database managementHình 1-6: Kiến trúc Chủ/Khách ba lớp

Trang 16

hàng đợi để nhận các yêu cầu từ máy khách ( sau khi máy kháchgửi yêu cầu thì nó sẽ “Quản lý Đào tạo Khoa học sau Đại học của trthoát ra”) Và lúc này, hàng đợi máy chủ sẽtruy cập dữ liệu và trả về cho máy khách Hơn nữa, các mức giữanày thờng đợc lập lịch và độ u tiên trong các tiến trình Vì vậy, giảiquyết công việc hợp lý hơn

Có rất nhiều cách để thêm vào mức giữa này (middle tier) chẳng hạn

nh thêm một :

- Máy kiểm soát các tiến trình giao dịch (transaction processingmonitor)

- Server xử lý các thông điệp (message server)

- Server chứa các ứng dụng (application server)

Ví dụ khi thêm một Server vào mức giữa sẽ nâng cao hiệu suất, linhhoạt, dễ bảo trì, khả năng sử dụng lại và tính ổn định bằng việc tập chung các xử

lý logic Việc tập chung các xử lý logic, làm cho công tác quản trị các thay đổiquản lý sẽ dễ dàng hơn rất nhiều vì đó chính là việc nội địa hoá các chức năng hệthống Vì thế, các thay đổi chỉ cần viết một lần rồi đặt lên server mức giữa, thế làtồn tại cho toàn hệ thống

riêng biệt, trong trờng hợp này nó đợc đề cập đến nh một kiến trúcnhiều lớp Ví dụ trong ứng dụng internet chẳng hạn Các ứng dụngnày thờng có các internet client viết bằng HTML và ApplicationServer viết bằng C++ hoặc Java Khoảng cách giữa hai lớp rất lớnnên để liên kết chúng lại với nhau ngời ta đặt một mức trung gian,

đó là một web Server Khi đó mức này nhận các yêu cầu từ cácInternet Clients và sinh HTML để sử dụng các dịch vụ đợc cungcấp bởi lớp tác vụ

2) Mức thứ ba cung cấp các chức năng về quản lý dữ liệu và là máy chủdành riêng cho các dịch vụ về file dữ liệu Thành phần quản lý dữliệu này đảm bảo rằng dữ liệu toàn vẹn thông qua môi trờng phântán Nó sử dụng các đặc trng nh khóa (locking) ràng buộc(consistency ) và sao lu (replication)

Kiến trúc ba mức giải quyết công việc hợp lý hơn Nó đợc đa ra để cảitiến cho các nhóm làm việc có số lợng ngời làm việc lớn (hàng ngàn ngời)

Trang 17

Kiến trúc này đem lại sự mềm dẻo và linh hoạt hơn hẳn kiến trúc hai mức, nó

dễ dàng chuyển các module chơng trình ứng dụng từ máy này sang máy kháctrong kiến trúc ba lớp rất dễ dàng Tuy nhiên, một hạn chế trong kiến trúc bamức này là môi trờng phát triển ứng dụng là gián tiếp nên khó hơn hẳn pháttriển ứng dụng trực quan trong kiến trúc hai mức

Ưu nhợc điểm :

Việc xây dựng một phần mềm kiến trúc ba mức là một công việc phứctạp Các công cụ lập trình hỗ trợ thiết kế rất ít, không cung cấp đầy đủ tất cảcác dịch vụ cần thiết để xây dựng lên môi trờng tính toán phân tán

Một vấn đề tiềm tàng nữa là, trong thiết kế ba mức này không phải lúcnào các chức năng logic giữa các mức cũng đợc phân biệt rõ ràng Có một sốlogic quản lý tiến trình xuât hiện cả ba mức Vì vậy, việc cài đặt các chứcnăng đặc biệt phải dựa trên các điều kiện cụ thể sau :

- Dễ phát triển và kiểm thử

sẽ đi sâu vào nghiên cứu ứng dụng của mô hình Khách/Chủ trong SQL Server2000

Trang 18

Chơng 2

Sử dụng SQL Server 2000 trong mô hình

Khách/Chủ

I Cấu trúc cơ bản của SQL Server 2000

Năm 1988, Microsoft phát hành phiên bản đầu tiên của SQL Server Nó

đ-ợc thiết kế trên nền OS/2 và đđ-ợc phát triển bởi Microsoft và Sybase

Trong những năm 1990, Microsoft bắt đầu phát triển phiên bản đầu tiêncủa SQL Server trên nền NT Trong những năm đấy, Microsoft quyết địnhSQL Server nên kết hợp chặt chẽ với hệ điều hành NT Trong năm 1993,windows NT 3.1 và SQL Server 4.2 cho NT đợc phát hành Triết lý củaMicrosoft là kết hợp một cơ sở dữ liệu hiệu suất cao cùng với giao diện dễ sửdụng đã đợc chứng minh là thành công Microsoft nhanh chóng trở thành nhàcung cấp nổi tiếng về phần mềm cơ sở dữ liệu quan hệ Năm 1994, Microsoft

và Sybase chính thức kết thúc hợp tác Năm 1995, Microsoft phát hành phiênbản SQL Server 6.0 Phiên bản 6.0 về căn bản cải thiện việc thực hiện, cungcấp cài đặt sao lu dữ liệu, thực hiện quản trị tập trung Năm 1996, Microsoftphát hành phiên bản SQL Server 6.5 Phiên bản này cải tiến đáng kể cải tiến

đáng kể công nghệ đang tồn tại và cung cấp một vài tính năng mới Năm

1997, Microsoft phát hành phiên bản Enterprise Edition 6.5 Năm 1998,Microsoft phát hành phiên bản SQL Server 7.0 Năm 2000, Microsoft pháthành SQL Server 2000 Phiên bản này khắc phục những thiếu sót và nhữngvấn đề cha giải quyết một cách triệt để trong phiên bản SQL Server 7.0 Theocác nhà phát triển SQL Server, phiên bản mới này của SQL Server sẽ là côngnghệ còn phát triển trong 10 năm tới

1.1 Cơ sở dữ liệu

Một cơ sở dữ liệu trong SQL Server 2000 bao gồm tập hợp các bảngcho phép lu trữ dữ liệu và các đối tợng khác nh views, indexs, storedprocedure, và trigger Một bảng bao gồm tập hợp các dòng (bản ghi) và cột(thuộc tính) Mỗi cột trong bảng đợc thiết kế để lu trữ một loại thông tin nào

đó (ví dụ nh ngày tháng, tên, ngày sinh ) Các bảng này có một vài loại điềukhiển nh Constraints, rules, trigges để đảm bảo tính đúng đắn của dữ liệu

Trang 19

Mỗi bảng có thể có nhiều chỉ mục cho phép tìm kiếm các dòng nhanh chóng.Ràng buộc đợc thêm vào bảng để đảm bảo dữ liệu quan hệ giữa các bảng khác

có tính toàn vẹn và nhất quán Một cơ sở dữ liệu cũng có thể có các storedprocudure sử dụng mã lập trình Transact-SQL để thực hiện các thao tác trêndữ liệu

Một số tính chất của SQL Server 2000 :

Tính ổn định:

SQL Server 2000 cho phép nhiều ngời dùng truy cập cùng một thời

điểm Một thực thể của SQL Server 2000 bao gồm những tệp mà đợc tạo rabởi một tập hợp cơ sở dữ liệu và một bản sao của phần mềm quản trị cơ sở dữliệu Các ứng dụng chạy trên các máy tính client sử dụng thành phần giao tiếpSQL Server để truyền các chỉ thị qua mạng đến thực thể SQL Server 2000trên máy Server Khi một ứng dụng kết nối đến một thực thể của SQL Server

2000, nó có thể tham chiếu đến bất kỳ dữ liệu nào trong thực thể đấy với điềukiện ngời sử dụng đợc quyền truy cập Thành phần truyền thông cũng chophép truyền thông giữa SQL Server 2000 và ứng dụng chạy trên Server Có thểchạy nhiều thực thể SQL Server 2000 trên một máy tính

SQL Server đợc thiết kế để cung cấp truyền tải Web hoặc hệ thống xử

lý dữ liệu kinh doanh Các ứng dụng trên Server có khả năng làm việc với vàiClients tại một thời điểm Nhng đối với SQL Server 2000 thì những Server đa

xử lý có khả năng kết nối hàng ngàn ngời sử dụng tại cùng một thời điểm Dữliệu trong bảng SQL Server có thể đợc phân ra để trên các Server khác nhau,vì vậy một vài máy tính đa xử lý có thể hợp tác để cung cấp cho hệ thống lớnyêu cầu xử lý cơ sở dữ liệu

Trong khi SQL Server thiết kế để làm việc nh một Server trong mạngKhách/Chủ, nó cũng có khả năng làm việc trực tiếp trên một client nh một cơ

sở dữ liệu đơn Sự ổn định và tính năng dễ sử dụng của SQL Server 2000 chophép nó làm việc hiệu quả trên các client mà không tiêu tốn nhiều tài nguyên

SQL Server 2000 có các tính năng đặc trng để tránh các vấn đề logicxảy ra nếu nh một ngời sử dụng cố gắng đọc hoặc sửa dữ liệu đang đợc sửdụng bởi ngời khác

1.2 Ngôn ngữ truy vấn cấu trúc

Để làm với dữ liệu trong CSDL, phải sử dụng một tập hợp các chỉ thị vàlệnh đợc định nghĩa bởi phần mềm quản trị cơ sở dữ liệu Có một vài ngônngữ khác nhau có thể sử dụng với cơ sở dữ liệu quan hệ nhng ngôn ngữ SQL

Trang 20

là thông dụng nhất Chuẩn ngôn ngữ SQL đợc đa ra bởi hai tổ chức đó làANSI (American National Standards Institute) và ISO (International StandardsOrgainzation)

1.3 Ngôn ngữ đánh dấu mở rộng

XML nổi lên là chuẩn của Internet cho dữ liệu XML là tập hợp các thẻ

có thể sử dụng để định nghĩa tài liệu siêu văn bản Tài liệu XML có thể dễdàng xử lý bởi HMTL (Hypertext Markup Language), ngôn ngữ quan trọngnhất để hiển thị trang Web

Hầu hết lệnh SQL trả về kết quả theo quan hệ hoặc sắp xếp theo bảng,nhng thành phần cơ sở dữ liệu SQL Server 2000 còn cung cấp một mệnh đềcho XML có thể trả về kết quả nh là tài liệu XML SQL Server 2000 cũngcung cấp truy vấn XPath từ ứng dụng Internet và ứng dụng Intranet Tài liệuXML có thể đợc thêm vào CSDL SQL Server và mệnh đề OPENXML(OPENXML Clause) có thể sử dụng để thể hiện dữ liệu từ tài liệu XML nh làmột tập hợp kết quả quan hệ

- SQL Server Agent (SQL Server Agent Service): Đảm bảo nhiệm vụ

nh một lịch trình để thực thi các dịch vụ backup dữ liệu, replication…

- Microsoft Search Service

- Microsoft Distributed Transaction Coordinator (MS DTC Service): Là

mở rộng của SQL Server 2000, bao gồm các chức năng nh trao đổi dữ liệu, vàgiao tiếp dữ liệu giữa các cơ sở dữ liệu khác nhau

II Các thành phần Server

Thành phần chính của SLQ Server 2000

Net-Libraries SQL Server

Database engine (MSSQL Server Sợvice)

SQL Server Agent (SQL Agent Service)

Microsoft Search Service Distributed Microsoft

Transaction Coordinator

Trang 21

2.1 Kiến trúc Server (Server Architecture)

Các thành phần của Microsoft SQL Server nhận các lệnh SQL từ Clients

và xử lý những lệnh đó Trong phần này chỉ giới thiệu một số thành phầnchính liên quan đến việc xử lý các câu lệnh nhận đợc từ các SQL ServerClients

Hình 2-2 : Minh họa việc xử lý các câu lệnh nhận đợc từ các SQLServer Clients

2.1.1 dòng dữ liệu xếp theo bảng

Microsoft SQL Server 2000 sử dụng giao thức mức ứng dụng, gọi làTDS (Tabular Data Stream) để giao tiếp giữa ứng dụng client và SQL Server Các client sử dụng các giao thức mức ứng dụng để gửi các câu lệnhSQL lên SQL Server, đợc gọi là TDS ( Tabular Data Stream) SQL Server 2000chấp nhận các phiên bản sau của TDS

client từ SQL Server 2000 Các client chạy TDS 8.0 hỗ trợ tất cả các điểm đặctrng của SQL Server 2000

+ TDS 7.0 đợc gửi bởi các client chạy SQL Server client của phiênbản SQL Server 7.0 Các client chạy TDS 4.2 không đợc hỗ trợ các tính năng

Trang 22

đặc trng trong SQL Server 2000, lúc đó SQL Server phải điều chỉnh lại dữ liệu

để gửi trả lại các client sử dụng TDS 7.0 Thí dụ, một client TDS 7.0 không hỗtrợ loại dữ liệu sql- variant vì vậy SQL Server 2000 phải chuyển đổi tất cảcácn dữ liệu sql-variant đến unicode

+ TDS 4.2 đợc gửi bởi các client chạy SQL Server client từ phiênbản SQl Server 6.5, 6.0 và 4.21a Các client chạy TDS 4.2 không cung cấp cáctính năng đặc trng của cả SQL Server 2000 và SQL Server 7.0 Lúc đó SQLServer phải điều chỉnh lại dữ liệu để gửi trả lại đối với client sử dụng TDS 4.2.Thí dụ, client sử dụng TDS 4.2 không cung cấp loại dữ liệu unicode, vì vậySQL Server 2000 phải chuyển đổi bất kỳ kiểu dữ liệu unicode nào thànhcharacter trớc khi gửi đến client Vì vậy, có thể dẫn tới mất các ký tự mở rộng.Các client chạy TDS 4.2 không cung cấp các kiểu dữ liệu char, varchar,binary, hoặc varbinary lớn hơn 255 bytes, vì vậy SQL Server 2000 phải cắt(truncate) tất cả các giá trị lớn hơn 255 bytes trớc khi gửi chúng đến client

2.1.2 Th viện mạng máy chủ

Các gói TDS đợc tạo bởi các nhà cung cấp Microsoft OLE DB dùng choSQL Server, các ODBC driver của SQL Server, hoặc th viện động DB- LibraryDLL Sau đó các gói TDS đợc chuyển cho SQL Server Client Net—Library, và

nó sẽ gói các gói TDS thành các gói dữ liệu theo giao thức mạng đợc nhậnbởi Server Net- Library, các gói này sẽ đợc mở ra và chuyển tới Server cơ sởdữ liệu quan hệ

Tiến trình trên sẽ đợc thực hiện ngợc lại khi gỉ trả kết quả về client.Mỗi server có thể đồng thời lắng nghe nhiều giao thức mạng và chúng

sẽ chạy một Server Net- Library cho mỗi giao thức đó

2.1.3.Cơ sở dữ liệu máy chủ

Database Server xử lý tất cả các yêu cầu đợc chuyển tới nó từ Server Libraries Nó dịch tất cả các câu lệnh SQL thành sơ đồ thực thi, và sau đó sửdụng các sơ đồ này để truy cập các dữ liệu yêu cầu để tạo ra kết quả gửi vềcho client

Net-III Các thành phần của client

Các client không thể truy cập Microsoft SQL Server 2000 trực tiếp Đểthay thế các client sử dụng các chơng trình viết sẵn để truy cập dữ liệu trênSQL Server Các chơng trình ứng dụng này có thể là các tiện ích đó kèm cùngvới SQL Server 2000, các ứng dụng thứ ba chạy trên SQL Server 2000, hoặc

Trang 23

các ứng dụng riêng của các công ty, đợc phát triển bởi các nhà lập trình trênnền SQL Server 2000 hoặc các trang web SQL Server 2000 có thể truy cập đ-

ợc thông qua các kiến trúc khác nhau: Com, Microsoft Activex, hoặcWindows DNA (distributed Internet Application) SQL Server 2000 hỗ trợ hailớp chính của ứng dụng:

- Câu lệnh Transact SQL đợc gửi bởi ứng dụng cơ sở dữ liệu quan hệ tớicơ sở dữ liệu Kết quả đợc trả về nh một tập hợp quan hệ

- ứng dụng Internet gửi câu lệnh Transact SQL hoặc XPath queries

đến cơ sở dữ liệu, kết quả trả về là những tài liệu XML

Giao diện lập trình ứng dụng cơ sở dữ liệu:

ứng dụng cơ sở dữ liệu quan hệ là đợc viết để truy cập SQL Server 2000thông qua giao diện lập trình ứng dụng cơ sở dữ liệu (database applicationprogramming interface :API) Một cơ sở dữ liệu API gồm hai phần :

Các lệnh ngôn ngữ để truyền đến dữ liệu Ngôn ngữ dùng trong ứngdụng SQL Server 2000 quan hệ là Trasact-SQL

đợc sử dụng để gửi các lệnh tới cơ sở dữ liệu và xử lý các kết quả mà dữ liệutrả về

Các hỗ trợ API nguyên thủy sử dụng các lời gọi hàm API đợc ánh xạtrực tiếp với giao thức của mạng làm phơng tiện để gửi tới máy chủ (Server) ở

đây không cần có sự chuyển đổi trung gian nào để thành API khác SQLServer cung cấp các hỗ trợ cho hai lớp chính sau :

OLE DB

SQL Server bao gồm cả cung cấp OLE DB Các nhà cung cấp này hỗtrợ viết các ứng dụng có sử dụng OLE DB hoặc các APIs khác có sử dụngOLE DB, chẳng hạn nh ActiveX Data Object (ADO) Qua các các nhà cungcấp, SQL Server hỗ trợ các đối tợng hoặc thành phần có sử dụng OLE DB,

nh ActiveX, ADO, hoặc Windows DNA applications

ODBC

ODBC là một định nghĩa chuẩn của giao diện lập trình ứng dụng (API),dùng truy cập dữ liệu trong cơ sở dữ liệu quan hệ SQL Server 2000 hỗ trợODBC nh một giao diện lập trình, dùng cho các ứng dụng viết bằng C, C++,

và Microsoft Visual Basic mà có kết nối đến SQL Server ODBC định nghĩa làmột giao diện mức gọi (call-level interface:CLI) Một CLI đợc định nghĩa nhtập hợp các hàm và các tham số CLI sử dụng một ngôn ngữ lập trình để gọi

Trang 24

các hàm SQL Server cung cấp một vài APIs trên nền ODBC sau: RDO, DAO,MFC database classes.

Ngoài ra SQL Server 2000 còn hỗ trợ :

DB-Library :

DB-Library là một API đặc trng đối với SQL Server 2000 và MicrosoftSQL Server SQL Server hỗ trợ các ứng dụng DB-Library đợc viết bằng ngônngữ C Các ứng dụng DB-Library đang tồn tại viết trên nền SQL Server cácphiên bản trớc đây của Microsoft SQL Server có thể chạy trên SQL Server

2000, nhng nhiều tính năng đợc giới thiệu trong SQL Server 2000 và SQLServer 7.0 là không đợc hỗ trợ đối với các ứng dụng DB-Library này

IV Kiến trúc Khách/Chủ

Microsoft SQL Server 2000 đợc thiết kế để làm việc hiệu quả trên một số môi trờng nh :

Trang 25

 Một cơ sở dữ liệu trung tâm trên một Server đợc chia sẻcho nhiều ngời kết nối đến nó

trên máy cá nhân này

4.1 Hệ thống cơ sở dữ liệu Khách/Chủ

Trong hệ thống Khách/Chủ đã đợc xây dựng thì cơ sở dữ liệu nằm ởmáy trung tâm, máy này đợc gọi là Server, nó chia sẻ tài nguyên với một sốngời sử dụng.Ngời dùng truy cập vào Server thông qua một chơng trình ứngdụng :

 Trong một hệ thống nhiều lớp, nh Windows DNA, các Client Applicationlogic chạy trên hai hoặc nhiều vị trí :

- Một thin Client chạy trên các máy địa phơng (local computer) củangời sử dụng và chủ yếu là để hiển thị kết quả tới ngời dùng

- Còn lớp các tác vụ (Business logic) nằm trên Server Applications vàchạy trên Server Các thin Client yêu cầu các hàm từ ứng dụng Server (ServerApplication), các ứng dụng Server này là các multithread application nên có

trên máy Server nh cơ sở dữ liệu, hoặc có thể kết nối thông qua mạng đến mộtServer khác, trờng hợp này coi nh cơ sở dữ liệu Server

Một trờng hợp đặc trng cho các ứng dụng Internet : Chẳng hạn, mộtServer Application có thể chạy trên Microsoft Internet Information Services(IIS) và phục vụ hàng ngàn Thin Client chạy trên Internet hoặc Intranet ServerApplication sẽ dùng một phần kết nối, để truyền thông với một hoặc nhiềuthực thể của SQL Server 2000 Các thực thể SQL Server 2000 có thể đợc cài

đặt trên cùng một máy với IIS, hoặc có thể cài đặt ở Server khác trên mạng

máy tính cục bộ của họ, đợc biết nh một ứng dụng Client Các ứng dụng này

Client chạy cả mức tác vụ logic (business logic) và các đoạn mã để hiển thịkết quả về cho ngời dùng, vì thế thỉnh thoảng nó đợc coi nh một thick client

Trang 26

Những tiện lợi của hệ thống cơ sở dữ liệu Server

Dữ liệu đợc lu trữ và quản lý tại một điểm trung tâm đem lại cho ta một số tiện lợi sau :

 Mỗi hạng mục dữ liệu đợc lu trữ ở vị trí trung tâm, nơi mà tất cả ngời sửdụng có thể làm việc với nó Các bản sao riêng biệt không lu trữ trên mỗiclient, điều đó sẽ giảm các vấn đề với ngời sử dụng và để đảm bảo chắcchắn rằng tất cả họ làm việc với cùng một thông tin Hệ thống của họkhông cần đảm bảo rằng tất cả bản sao của dữ liệu đợc cập nhật cùng vớigiá trị hiện hành, bởi vì chỉ có một bản sao ở vị trí trung tâm

 Các tác vụ hoặc quy tắc về an toàn (Business and Security rules) có thể

định nghĩa một lần trên Server và áp dụng cho tất cả các user Điều này cóthể thực hiện trực tiếp trên cơ sở dữ liệu thông qua việc dùng các dàngbuộc về dữ liệu (constraints), stored procedures và triggers (các bẫy).Tacũng có thể thực hiện điều đó trên Server Application

 Một Server cơ sở dữ liệu quan hệ làm giảm sự vận chuyển của mạng bằngviệc chỉ gửi trả các dữ liệu mà ứng dụng cần.Ví dụ, nếu một ứng dụng làmviệc với một file server cần hiển thị danh sách tên các nhà đại diện bánhàng ở Oregon, nó phải lấy tất cả file employee Nếu ứng dụng làm việcvới server cơ sở dữ liệu quan hệ, nó gửi lệnh sau:

SELECT FIRST_NAME, LAST_NAME

FROM EMPLOYEESWHERE MP_TITLE=’SALES REPRESENTATIVE’AND EMP_STATE=’OR’

Cơ sở dữ liệu quan hệ sẽ gửi trả lại tất cả tên của các đại diện bán hàng

ở Oregon, mà không phải tất cả các thông tin trong employees

 Chi phí về phần cứng giảm

Vì dữ liệu không lu trữ trên mỗi client, nên các client không có cáckhông gian đĩa giành riêng để lu trữ dữ liệu Các client cũng không cần có khảnăng xử lý để quản lý dữ liệu cục bộ, và server không cần có khả năng xử lýgiành riêng cho việc hiển thị dữ liệu

Các Server có thể cấu hình để nâng cao công suất vào/ra cần thiết đểgửi và nhận dữ liệu Các client có thể cấu hình để hiển thị dữ liệu nhận đ ợc từserver tốt hơn

Trang 27

Server có thể đặt ở một vị trí tơng đối an toàn và trang bị các thiết bị nhUPS (Uninterruptable Power Supply) sẽ kinh tế hơn là trang bị cho tất cảclient.

 Công tác bảo trì chẳng hạn nh lu trữ và khôi phục dữ liệu cũng đơngiản hơn vì chúng tập trung tại máy chủ trung tâm)

Trong các hệ thống Khách/Chủ lớn, hàng ngàn ngời sử dụng có thểkết nối tới SQL Server cùng một thời điểm SQL Server hoàn toàn đợc bảo vệcho môi trờng này với các chế độ bảo vệ để tránh các lỗi Chẳng hạn nh nhiềungời sử dụng cùng cập nhật một mẩu dữ liệu cùng một thời điểm SQL cũngcấp phát các tài nguyên sẵn có rất hiệu quả, nh bộ nhớ, giải thông của mạng(network bandwidth), và đọc/ghi đĩa (disk I/O), cho nhiều ngời sử dụng

Các ứng dụng SQL Server có thể chạy trên cùng một máy vớiSQL Server ứng dụng kết nối đến SQL Server 2000 bằng cách sử dụng thànhphần IPC (Windows Interprocess Communications), chẳng hạn nh chia sẻ bộnhớ, thay vì sử dụng mạng Điều này cho phép SQL Server sử dụng đợc trongcác hệ thống nhỏ, những nơi mà các ứng dụng cần lu trữ dữ liệu cục bộ

Trang 28

Hình 2-4 : Hình họa SQL Server 2000 hoạt động nh là cơ sở dữ

liệu server cho cả large Web site và hệ thống Khách/Chủ

4.2 Hệ thống cơ sở dữ liệu cá nhân

Mặc dù SQL Server 2000 làm việc nh một cơ sở dữ liệu Server rất hiệuquả, bên cạnh đó nó có thể đợc dùng trong các ứng dụng đòi hỏi các cơ sở dữliệu đứng một mình, lu trữ cục bộ trên các client SQL Server có thể tự độngcấu hình để chạy tốt trên tài nguyên sẵn có của client mà không cần có mộtngời quản trị dữ liệu cho mỗi client Các nhà cung cấp ứng dụng cũng có thểnhúng SQL Server để trở thành một bộ phận lu trữ dữ liệu của ứng dụng củahọ

Khi các client sử dụng các cơ sở dữ liệu SQL cục bộ, ứng dụng kết nối

đến thực thể cục bộ của cơ sở dữ liệu cũng tơng tự nh cách chúng kết nối quamạng tới một cơ sở dữ liệu chạy trên một một máy chủ từ xa Cái khác nhau là

Trang 29

kết nối cục bộ thông qua IPCs cục bộ nh là chia sẻ bộ nhớ, còn kết nối xa phảithông qua mạng.

Hình 2-5 : Minh hoạ sử dụng SQL Server 2000 trong hệ thống cơ

sở dữ liệu desktop

Các thành phần truyền thông

Microsoft SQL Server 2000 sử dụng thành phần gọi là th viện mạngclient (Client Net-Libraries)

Sau đây là những thành phần quản lý truyền thông giữa SQL Server

2000 và các Client của nó theo thứ tự sau :

1 Các ứng dụng client (Client Application) gọi OLE DB, ODBC, Library, hoặc Embedded SQL API Do đó các OLE DB Provider,ODBC driver, hoặc DB-Library DLL sẽ đợc sử dụng trong truyền thôngcủa SQL Server

DB-2 OLE DB Provider, ODBC driver, hoặc DB-Library DLL gọi Library của Client Từ đây Client Net-Library gọi một IPC API

Net-3 Lời gọi IPC API của Client sẽ đợc chuyển tới Server Net-Library bằngcác mức dới của IPC Nếu đó là một local IPC thì các lời gọi sẽ đợcchuyển bằng cách sử dụng thao tác IPC của windows (a windowsoperating IPC) chẳng hạn nh Shared Memory hoặc local Named Pipes.Nếu đó là một network IPC thì network protocol stack trên client sửdụng mạng để truyền thông với network protocol stack trên server

4 Net-Library trên Server chuyển các yêu cầu đợc gửi từ Client lên SQLServer 2000

Ngày đăng: 23/06/2016, 17:10

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w