Tải bản đầy đủ (.pdf) (17 trang)

Báo cáo môn học Lập trình nâng cao - Remote Procedure Call (RPC)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (476.87 KB, 17 trang )

BÀI TẬP LỚN
MÔN HỌC LẬP TRÌNH NÂNG CAO
PHẦN I: Các công nghệ triệu gọi hàm/ phương thức từ xa
I.

RPC (Remote Procedure Call )

1. Giới thiệu
Remote Procedure Call (RPC) – Thủ tục gọi hàm từ xa là một kỹ thuật tiến bộ cho quá
trình kết nối từ Client đến Server để sử dụng các ứng dụng và dịch vụ. RPC cho phép client
có thể kết nối tới 1 dịch vụ sử dụng dynamic port nằm ở một máy tính khác. Trong hệ thống
mạng máy tính hiện nay có rất nhiều dịch vụ và ứng dụng sử dụng cơ chế kết nối RPC, ví dụ
quá trình đồng bộ của các Domain Controller trong hệ thống Active Directory, hoặc khi MS
Outlook kết nối tới MS Exchange Server…
Lời gọi thủ tục xa là một cơ chế cho phép một chương trình có thể gọi thực thi một
thủ tục (hay hàm) trên một máy tính khác. Trong chương trình lúc này, tồn tại hai loại
thủ tục: thủ tục cục bộ và thủ tục ở xa.
Thủ tục cục bộ là thủ tục được định nghĩa, cài đặt và thực thi tại máy của chương trình.
Thủ tục ở xa là thủ tục được định nghĩa, cài đặt và thực thi trên một máy tính khác.
Cú pháp giữa lời gọi thủ tục cục bộ và ở xa thì giống nhau. Tuy nhiên, khi một thủ
tục ở xa được gọi đến, một thành phần của chương trình gọi là Stub sẽ chuyển hướng để kích
hoạt một thủ tục tương ứng nằm trên một máy tính khác với máy của chương trình gọi. Đối
với người lập trình, việc gọi thủ tục xa và thủ tục cục bộ thì giống nhau về mặt cú pháp. Đây
chính là cơ chế cho phép đơn giản hóa việc xây dựng các ứng dụng Client-Server. Trong hệ
thống RPC, Server chính là máy tính cung cấp các thủ tục ở xa cho phép các chương trình
trên các máy tính khác gọi thực hiện. Client chính là các chương trình có thể gọi các thủ tục
ở xa trong quá trình tính toán của mình.
Một Client có thể gọi thủ tục ở xa của nhiều hơn một máy tính. Như vậy sự thực thi
của chương trình Client lúc này không còn gói gọn trên một máy tính của Client mà nó
trải rộng trên nhiều máy tính khác nhau. Đây chính là mô hình của ứng dụng phân tán
(Distributed Application).




Remote Procedure Call (RPC)
2. Kiến trúc và cơ chế hoạt động
Một ứng dụng Client-Server theo cơ chế RPC được xây dựng gồm có sáu phần như sơ
đồ dưới đây:

Kiến trúc chương trình kiểu RPC
Phần Client là một quá trình người dùng, nơi khởi tạo một lời gọi thủ tục từ xa. Mỗi lời
gọi thủ tục ở xa trên phần Client sẽ kích hoạt một thủ tục cục bộ tương ứng nằm trong phần
Stub của Client.


Phần Client Stub cung cấp một bộ các hàm cục bộ mà phần Client có thể gọi. Mỗi một
hàm của Client Stub đại diện cho một hàm ở xa được cài đặt và thực thi trên server.
Mỗi khi một hàm nào đó của Client Stub được gọi bởi Client, Client Stub sẽ đóng
gói một thông điệp để mô tả về thủ tục ở xa tương ứng mà Client muốn thực thi cùng với
các tham số nếu có. Sau đó nó sẽ nhờ hệ thống RPC Runtime cục bộ gởi thông điệp này đến
phần Server Stub của Server.
Phần RPCRuntime quản lý việc truyền thông điệp thông qua mạng giữa máy Client và
máy Server. Nó đảm nhận việc truyền lại, báo nhận, chọn đường gói tin và mã hóa thông
tin.
RPCRuntime trên máy Client nhận thông điệp yêu cầu từ ClientStub, gởi nó cho
RPCRuntime trên máy Server bằng lệnh send(). Sau đó gọi lệnh wait() để chờ kết quả trả về
từ Server.
Khi nhận được thông tiệp từ RPCRuntime của Client gởi sang, RPCRuntime bên phía
server chuyển thông điệp lên phần Server Stub.
Server Stub mở thông điệp ra xem, xác định hàm ở xa mà Client muốn thực hiện cùng
với các tham số của nó. Server Stub gọi một thủ tục tương ứng nằm trên phần Server.
Khi nhận được yêu cầu của Server Stub, Server cho thực thi thủ tục được yêu cầu và gởi

kết quả thực thi được cho Server Stub.
ServerStub đóng gói kết quả thực trong một gói tin trả lời, chuyển cho phần RPC
Runtime cục bộ để nó gởi sang RPC Runtime của Client .
RPC Runtime bên phía Client chuyển gói tin trả lời nhận được cho phần Client Stub.
ClientStub mở thông điệp chứa kết quả thực thi về cho Client tại vị trí phát ra lời gọi thủ tục
xa.
Trong các thành phần trên, RPC Runtime được cung cấp bởi hệ thống. Client Stub và
Server Stub có thể tạo ra thủ công (phải lập trình) hay có thể tạo ra bằng các công cụ cung
cấp bởi hệ thống. Cơ chế RPC được hỗ trợ bởi hầu hết các hệ điều hành mạng cũng như các
ngôn ngữ lập trình.
II. DCOM/COM+
1. Giới thiệu
Là công nghệ độc quyền của MS, nó định nghĩa các thành phần của phần mềm được
phân tán qua mạng máy tính để truyền thông với các thành phần khác . Ngoài ra, nó còn hỗ
trợ kết nối giữa các đối tượng và kết nối này có thể thay đổi lúc đang chạy


COM (Component Object Model) là một cách thức để viết các thành phần phần mềm
(software componet) cung cấp các chức năng phục vụ cho các ứng dụng, các thành phần
khác. Viết một thành phần COM cũng như viết một hàm API động, hướng đối tượng. Các
thành phần COM có thể được nối kết với các ứng dụng cũng như các thành phần COM khác.
COM chỉ là một sự đặc tả. Nó chỉ ra làm thế nào để xây dựng các thành phần có thể thay
thế một cách “động”. COM cung cấp một “chuẩn” để các ứng dụng và các thành phần phải
tuân theo để chúng có thể hoạt động được với nhau và sử dụng lại thư viện của nhau.
2. Thành phần
Thành phần COM là những đoạn mã hiện thực các hàm, các chức năng được chứa trong
file .DLL hoặc .EXE. Thành phần COM cần phải thỏa mãn được những “chuẩn” của COM.
Các thành phần COM có thể được liên kết động. Các thành phần COM có thể được “bao
gói” lại vì nó thỏa mãn các ràng buộc:
Thành phần COM hoàn toàn độc lập với ngôn ngữ hiện thực nó. Thành phần COM có

thể được hiện thực bằng nhiều ngôn ngữ như Visual C++, Visual Basic, Java …..
3. Giao diện (Interface)
Giao diện là tất cả đối với COM. Các ứng dụng chỉ có thể nhìn thấy và truy xuất đến các
thành phần COM thông qua giao diện của nó.
Giao diện làm tăng mức độ độc lập giữa ứng dụng và các thành phần COM. nhờ có giao
diện mà một thành phần COM có thể được thay thế động mà không ảnh hưởng đến ứng
dụng đang chạy.
Giao diện không bao giờ thay đổi. Nếu muốn nâng cấp một giao diện thì giao diện mới
phải tồn tại song song với giao diện cũ.
4. Các kiến trúc :
Ứng dụng Client và ứng dụng COM chạy trên cùng một máy:

Mục đích xây dựng thành phần đối với mô hình này là :
Ứng dụng COM có thể được tái sử dụng cho nhiều ứng dụng Client khác nhau.
Làm cho chương trình dễ viết, dễ kiểm tra lỗi, nâng cấp mà không ảnh hưởng đến những
ứng dụng Client đang chạy nó.


Ứng dụng Client chạy một máy, Ứng dụng COM chạy một máy. Nhưng hai máy này
cùng một mạng local.

Lúc này thành phần COM được gọi là DCOM. Có 3 cách để giao tiếp giữa ứng dụng
Client và Ứng dụng COM:
ActiveX (.exe)
Dùng MTS (Microsoft Transaction Server) để triển khai ActiveX DLL từ xa
RDS (Remote Data Access)
III. RMI
1. Tổng quan
RMI là một cơ chế cho phép một đối tượng đang chạy trên một máy ảo Java này ( Java
Virtual Machine) gọi các phương thức của một đối tượng đang tồn tại trên một máy ảo Java

khác (JVM).
Thực chất RMI là một cơ chế gọi phương thức từ xa đã được thực hiện và tích hợp trong
ngôn ngữ Java. Vì Java là một ngôn ngữ lập trình hướng đối tượng, nên phương pháp lập
trình trong RMI là phương pháp hướng đối tượng do đó các thao tác hay các lời gọi phương
thức đều liên quan đến đối tượng. Ngoài ra, RMI còn cho phép một Client có thể gửi tới một
đối tượng đến cho Server xử lý, và đối tượng này cũng có thể được xem là tham số cho lời
gọi hàm từ xa, đối tượng này cũng có những dữ liệu bên trong và các hành vi như một đối
tượng thực sự.
Lập trình đối tượng phân tán là một trong những vấn đề nóng bỗng của công nghệ phân
tán phần mềm ngày nay. Java là ngôn ngữ đi tiên phong với RMI (Remote Method
Invocation) - một kĩ thuật cài đặt các đối tượng phân tán vô cùng hiệu quả và linh động.
Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục hoặc hàm và
việc các hàm gọi lẫn nhau, truyền tham số hay kết quả cho nhau chỉ xảy ra ở máy cục bộ. Kỷ
thuật RMI (Remote Method Invoke) – mang ý nghĩa triệu gọi phương thức từ xa là cách


thức giao tiếp giữa các đối tượng trong Java có mã lệnh cài đặt nằm trên các máy khác nhau
có thể triệu gọi lẫn nhau.

Để giải quyết một số vấn đề trong việc truyền thông giữa Client/Server. RMI không gọi
trực tiếp mà thông qua lớp trung gian. Lớp này tồn tại ở cả hai phía Client và Server. Lớp ở
máy

Client

gọi

là Stub,

lớp




máy

Server

gọi

là Skel (Skeletion).

2. Mục đích của RMI
Hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau
Hỗ trợ gọi ngược phương thức ngược từ server tới các applet
Tích hợp mô hình đối tượng phân tán vào ngôn ngữ lập trình Java theo một cách tự
nhiên trong khi vẫn duy trì các ngữ cảnh đối tượng của ngôn ngữ lập trình Java
Làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ
không có sự khác biệt.
Tạo ra các ứng dụng phân tán có độ tin cậy một cách dễ dàng
Duy trì sự an toàn kiểu được cung cấp bởi môi trường thời gian chạy của nền tảng Java
Hỗ trợ các ngữ cảnh tham chiếu khác nhau cho các đối tượng từ xa
Duy trì môi trường an toàn của Java bằng các trình bảo an và các trình nạp lớp.
RMI là một công nghệ phân tán cho phép các phương thức trên các máy ảo Java được
gọi từ xa. Đây là cách đơn giản để truyền tin giữa một ứng dụng này với ứng dụng khác so
với truyền tin trực tiếp với TCP socket, cách truyền tin này đòi hỏi cả hai phía đều sử dụng
cùng một giao thức. Thay vì viết các chương trình cài đặt giao thức, những người phát triển
có thể tương tác với các phương thức đối tượng được định nghĩa bởi một giao tiếp dịch vụ
RMI. Mỗi khi có được một tham chiếu tới đối tượng từ xa, tham chiếu này có thể được xem
như là một đối tượng cục bộ, đây là cách trực quan để phát triển các ứng dụng mạng.
Lập trình đối tượng phân tán là một trong những vấn đề nóng bỗng của công nghệ phân

tán phần mềm ngày nay. Java là ngôn ngữ đi tiên phong với RMI (Remote Method
Invocation) - một kĩ thuật cài đặt các đối tượng phân tán vô cùng hiệu quả và linh động.
3. Các đặt tính của RMI
RMI là mô hình đối tượng phân tán của Java, nó giúp cho việc truyền thông giữa các đối


tượng phân tán được dễ dàng hơn.
RMI là API bậc cao được xây dựng dựa trên lập trình Socket.
RMI không những cho phép chúng ta truyền dữ liệu giữa các đối tượng trên các hệ
thống máy tính khác nhau, mà còn triệu gọi các phương thức trong các đối tượng ở xa
(Remote Object).
Việc truyền dữ liệu giữa các máy khác nhau được xử lý một cách trong suốt bởi máy ảo
Java (Java virtual machine).
Tương tự như mô hình Client/Server, RMI vẫn lấy/duy trì khái niệm của Client và
Server, tuy nhiên cách tiếp cận (approach) của RMI linh hoạt hơn, mềm dẻo hơn so với môt
hình Client/Server.
Một điều thuận lợi quan trong nhất của RMI là nó cung cấp cớ chế callbacks, nó cho
phép Server triệu gọi các phương thức ở Client.
4. Kiến trúc cơ bản của RMI
Remote interface: Nên extend từ java.rmi.remote.Nó khai báo tất cả các phương thức mà
Client có thể triệu gọi. Tất cả các method trong interface này nên throw RemoteException
Remote implementation: Được thực thi từ Remote interface và mở rộng từ
UnicastRemoteObject. Triển khai các method được khai báo trong Interface tại đây. Nó là
một Remote Object thực sự. Phát sinh hai lớp trung gian Stub và Skel.
Server class bao gồm:
- RMI registry: Bộ đăng kí này sẽ đăng kí một Remote object với Naming Registry. Giúp
các Remote object được chấp nhận khi gọi các method từ xa.
- Các class thực thi trên server.
Client class: Truy vấn trên tên Remote object trên RMI registry, thông qua stub để gọi các
phương thức trên server.


5. Cách làm việc của RMI
Các Đối tượng ở phía Server đăng kí với bộ đăng kí RMI registry.


Client kiểm tra các đối tượng ở xa trong RMI Registry.
Vị trí của một đối tượng ở xa được xác định trong RMI Registry. Một stub được trả về
cho Client.
Remote object có thể được sử dụng tương tự như Local object để truy xuất đến toàn bộ
tài nguyên. Việc truyền thông giữa Client và Server được xử lý bởi Stub và Skel.
IV. CORBA
1. Giới thiệu CORBA
CORBA còn được gọi là ngôn ngữ đặc tả giao tiếp (IDL-Interface Description
Language)
Mô tả chức năng của đối tượng thông qua hàm, phương thức, thuộc tính…
Không chứa bất kỳ cài đặt mã lệnh nào
Đặc tả đối tượng dựa trên khái niệm interface trong Java.
2. CORBA và mô hình phân tán
Trình môi giới trung gian ORB (Object Request Broker)
Cơ chế làm việc của ORB
Giao thức IIOP (Interoperate Internet Object Protocol)
Các đối tượng sau khi tạo ra bởi các ngôn ngữ lập trình khác nhau phải được gọi thông
qua một chương trình môi giới trung gian của CORBA gọi là ORB.
ORB hoạt động nhờ ngôn ngữ đặc tả IDL.
Dựa vào IDL, ORB sẽ biết được tên phương thức cần gọi, đối số, trị trả về,…Từ đó ORB có
thể gọi phương thức của đối tuợng.
ORB hoàn toàn trong suốt (transparent) đối với lập trình viên và người sử dụng.
C++
Corba
Object


Network

ORB

ORB

Delphi
Corba
Object

ORB

Java
Corba
Object

ORB (Object Request Broker)


3. Cơ chế hoạt động :

Java
Corba
Object

C++
Client

Intermidiate class

_Stub

Intermidiate class
_Skel

IIOP

ORB

Client

ORB

Server

V. Web Services
1. Tổng quan
Web Services là một cách chuẩn để tích hợp các ứng dụng trên nền web (Web-based
applications). Các ứng dụng có thể sử dụng các thành phần khác nhau để tạo thành một dịch
vụ, ví dụ như máy chủ chạy một trang web thương mại điện tử kết nối với cổng thanh toán
điện tử qua một API - Application Programming Interface ( tạo tởi công nghệ .NET thì web
services chính là nền máy chủ (IIS - Internet Information Services), và các thành phần thanh
toán, các thành phần .NET được coi là component (các thành phầm bên ngoài). Các thành
phần này được gọi bởi phương thức SOAP (Khác phương thức POST, GET) nên không bị
gặp phải firewall khi truy xuất các thành phần bên ngoài máy chủ. Và toàn bộ các thành
phần đó gọi là một Web Services.
Các Web Services cho phép các tổ chức thực hiện truyền thông dữ liệu mà không cần
phải có kiến thức về hệ thống IT phía sau tường lửa. Một số Web Services hiện nay có sẵn
miễn phí và càng ngày càng hướng dần vào các doanh nghiệp.
Theo định nghĩa của W3C (World Wide Web Consortium), Web Service là một hệ

thống phần mềm được thiết kế để hỗ trợ khả năng tương tác giữa các ứng dụng trên các máy
tính khác nhau thông qua mạng Internet, giao diện chung và sự gắn kết của nó được mô tả
bằng XML.
Web Service là tài nguyên phần mềm có thể xác định bằng địa chỉ URL, thực hiện các
chức năng và đưa ra các thông tin người dùng yêu cầu. Một dịch vụ Web được tạo nên bằng
cách lấy các chức năng và đóng gói chúng sao cho các ứng dụng khác dễ dàng nhìn thấy và


có thể truy cập đến những dịch vụ mà nó thực hiện, đồng thời có thể yêu cầu thông tin từ
dịch vụ Web khác. Nó bao gồm các mô đun độc lập cho hoạt động của khách hàng và doanh
nghiệp và bản thân nó được thực thi trên server.
Web Service mô tả một cách thức chuẩn để tích hợp các ứng dụng dựa trên nền tảng
Web, sử dụng các chuẩn mở XML (Extensible Markup Language), SOAP (Simple Object
Access Protocol), WSDL (Web Services Description Language) và UDDI (Universal
Description Discovery and Integration) thông qua giao thức Internet.
2. Cơ chế hoạt động
Một ứng dụng web Service bao gồm 2 phần: Client và Server giao tiếp với nhau qua
giao thức HTTP.
Client gửi yêu cầu qua các lời gọi hàm thông qua HTTP Request đến Server
Server gửi các kết quả được thực thi các ở các hàm thông qua HTTP Response
VI. So sánh giữa các công nghệ triệu gọi hàm/ phương thức từ xa
Gọi phương thức từ xa không phải là một khái niệm mới. Thậm chí trước khi ra đời lập
trình hướng đối tượng phần mềm đã có thể gọi các hàm và các thủ tục từ xa. Các hệ thống
như RPC đã được sử dụng trong nhiều năm và hiện nay vẫn được sử dụng.
Trước hết, Java là một ngôn ngữ độc lập với nền và cho phép các ứng dụng Java truyền
tin với các ứng dụng Java đang chạy trên bất kỳ phần cứng và hệ điều hành nào có hỗ trợ
JVM. Sự khác biệt chính giữa hai mục tiêu là RPC hỗ trợ đa ngôn ngữ, ngược lại RMI chỉ
hỗ trợ các ứng dụng được viết bằng Java.
Ngoài vấn đề về ngôn ngữ và hệ thống, có một số sự khác biệt căn bản giữa RPC và
RMI. Gọi phương thức từ xa làm việc với các đối tượng, cho phép các phương thức chấp

nhận và trả về các đối tượng Java cũng như các kiểu dữ liệu nguyên tố (premitive type).
Ngược lại gọi thủ tục từ xa không hỗ trợ khái niệm đối tượng. Các thông điệp gửi cho một
dịch vụ RPC (Remote Procedure Calling) được biểu diễn bởi ngôn ngữ XDR (External Data
Representation): dạng thức biểu diễn dữ liệu ngoài. Chỉ có các kiểu dữ liệu có thể được định
nghĩa bởi XDR mới có thể truyền đi.
1. Ưu điểm
 RMI: chỉ cần lời gọi phương thức vì đối tượng được gọi đã hiện diện trong máy ảo của
máy. Đồng thời, được sử dụng trên nhiều nền tảng di động, tích hợp sẵn trong Java
 RPC: các thủ tục gọi hàm không cần biết được thực hiện trên máy giống nhau hay khác
nhau


 CORBA: dịch vụ có thể được viết trên nhiều ngôn ngữ khác nhau, thực thi trên nhiều
nền tảng khác nhau, và truy cập bằng bất kì nền tảng ngôn ngữ với ánh xạ ngôn ngữ định
nghĩa trên giao diện (IDL). Hỗ trợ dữ liệu nguyên gốc, và một loạt kiến trúc dữ liệu. Dễ
dàng kết nối các dữ liệu và hệ thống với nhau.
Client không cần biết interface cho các server object
Cung cấp lựa chọn khi lấy kết quả trả về
 DCOM: dễ triển khai, chi phí thấp, tính ổn định, không phụ thuộc vào địa lý, quản lý kết
nối hiệu quả và dễ mở rộng.
 WEB SERVICE: khả năng vượt firewall. Hoạt động trên đa môi trường, linh hoạt và dễ
chuyển đổi. Cung cấp khả năng hoạt động rộng lớn với các ứng idnjg phần mềm khác nhau
chạy trên các nền tảng khác nhau. Sử dụng giao thức và chuẩn mở. Nâng cao khả năng tái sử
dụng, thúc đẩy hệ thống tích hợp, tạo mối quan hệ tương tác lẫn nhau và mềm dẻo giữa các
thành phần trong hệ thống
2. Nhược điểm:
 RMI: chỉ gắn chặt với các nền tảng hỗ trợ Java. Tuy nhiên, RMI hạn chế về chức năng
do hạn chế về bảo mật
 RPC:
 CORBA: việc sử dụng ngôn ngữ phải được định nghĩa sẵn. Đồng thời, một số công cụ

tích hợp trên CORBA không hỗ trợ những thay đổi với mã hiện có.
Chương trình phức tạp
Chi phí cao
Dễ gây ra lỗi
 DCOM: chỉ giới hạn trên những hệ thống của MS
 WEB SERVICE: dữ liệu truyền nhiều. Đồng thời, không hỗ trợ kết nối thời gian dài
PHẦN II : Bài tập lớn – Xây dựng phần mền quản lý học sinh PTTH

I.

Đặt vấn đề

Hiện nay, công ngh ệ thông tin đư ợc xem là một ngành mũi nhọn của các
quốc gia, đặc biệt là các quốc gia đang phát triển, tiến hành công nghi ệp hóa
và hiện đại hoá như nư ớc ta. Sự bùng nổ thông tin và sự phát triển mạnh mẽ
của công nghệ kỹ thuật số, yêu cầu muốn phát triển thì phải tin học hoá vào
tất cả các ngành các lĩnh vực.


Cùng với sự phát triển nhanh chóng về phần cứng máy tính, các phần
mềm ngày càng trở nên đa dạng,phong phú, hoàn thiện hơn và hỗ trợ hiệu quả
cho con người. Các phần mềm hiện nay ngày càng mô ph ỏng được rất nhiều
nghiệp vụ khó khăn, hỗ trợ cho người dùng thuận tiện sử dụng, thời gian xử
lý nhanh chóng, và một số nghiệp vụ được tự động hoá cao.
Do vậy mà trong việc phát triển phần mềm, sự đòi hỏi không chỉ là sự
chính xác, xử lý được nhiều nghiệp vụ thực tế mà còn phải đáp ứng các yêu
cầu khác như về tốc độ, giao diện thân thiện, mô hình hoá được thực tế vào
máy tính để người sử dụng tiện lợi, quen thuộc, tính tương thích cao, b ảo mật
cao (đối với các dữ liệu nhạy cảm), … Các phần mềm giúp tiết kiệm một
lượng lớn thời gian, công sức của con người, và tăng độ chính xác và hiệu

quả trong công việc (nhất là việc sửa lỗi và tự động đồng bộ hoá).
Một ví dụ cụ thể, việc quản lý học vụ trong trường trung học phổ thông.
Nếu không có sự hỗ trợ của tin học, việc quản lý này phải cần khá nhiều
người, chia thành nhiều khâu, mới có thể quản lý được toàn bộ hồ sơ, học
sinh (thông tin, điểm số, kỷ luật, học bạ, …), lớp học (sỉ số, GVCN, thời khoá
biểu, …), giáo viên (thông tin, l ịch dạy, …) … cũng như các nghi ệp vụ sắp
thời khoá biểu, tính điểm trung bình, x ếp loại học lực cho học sinh toàn
trường (số lượng học sinh có thể lên đến hai ba ngàn học sinh).Các công việc
này đòi hỏi nhiều thời gian và công s ức, mà sự chính xác và hiệu quả không
cao, vì đa số đều làm bằng thủ công rất ít tự động. Một số nghiệp vụ như tra
cứu, thống kê, và hiệu chỉnh thông tin khá v ất vả. Ngoài ra còn có một số khó
khăn về vấn đề lưu trữ khá đồ sộ, dễ bị thất lạc, tốn kém,… Trong khi đó, các
nghiệp vụ này hoàn toàn có thể tin học hoá một cách dễ dàng. Với sự giúp đỡ
của tin học, việc quản lý học vụ sẽ trở nên đơn giản, thuận tiện, nhanh chóng
và hiệu quả hơn rất nhiều.

II. Đặt tả
1. Cơ sở dữ liệu
Database có user : xuanloi , pass: 12345
Đã tạo database vidu có 2 table Hocsinh và Dangnhap


2. Chương trình
Tuần tự công việc
Tiến hành đăng nhập:


Vào bật Server đã kết nối CSDL thành công:

Chạy phía Client và kết nối Server :



Phía Client đã xây dựng được các thao tác
- Xem tất cả học sinh
- Lưu lại: sửa thông tin học sinh
- Thêm: nhập hoc sinh mới
- Tìm theo mã học sinh
- Xóa theo mã học sinh
- Đóng Client
- Send: gởi yêu cầu hoặc thông tin đến Server
- Save nhật ký : lưu lại tất cả các thông tin nhật ký với Server
- Open File : mở xem một file nào đó
- Save as: chỉnh sửa và lưu lại file đã mở


Mở, chỉnh sửa và lưu lại file:

Một Server có thể phục vụ cho nhiều Client cùng lúc:


III. Kết luận
Đã ứng dụng giao thức TCP/IP để làm bài tập lớn thầy giao. Chương trình mới chỉ có
những chức năng cơ bản và đơn giản. Sau này có nhiều thời gian tôi sẽ tiếp tục ứng dụng
các công nghệ này để làm chương trình hoàn chỉnh.
Rất cảm ơn thầy tạo điều kiện trong môn học này và mong được sự đóng góp quý báu
của thầy.

IV. Tài liệu tham khảo
1. .NET Toàn Tập - Tập 1: C# Căn Bản Và Visual Studio .NET IDE - Lập Trình
Visual C# Thế Nào? (Sách Tự Học) - Dương Quang Thiện

2. .NET Toàn Tập - Tập 2: C# Và.NET Framework - Lập Trình Visual C# Thế Nào?
(Sách Tự Học) - Dương Quang Thiện
3. .NET Toàn Tập - Tập 3: Lập Trình Giao Diện Người Dùng Theo C# (Lập Trình
Visual C# Thế Nào?) - Dương Quang Thiện
4. .NET Toàn Tập - Tập 4: Lập Trình Căn Cứ Dữ Liệu Dùng ADO. NET Và C# - Lập
Trình Visual C# Thế Nào (Sách Tự Học) - Dương Quang Thiện
5. .NET Toàn Tập - Tập 5: Lập Trình Web Dùng ASP.NET Và C# - Lập Trình Visual
C# Thế Nào (Sách Tự Học) - Dương Quang Thiện
6. C # Cho Người Mới Học - Lê Minh Trung
7.
- Phạm Phương Hoa
8. Tự Học SQL Server 2005 Trong 10 Tiếng - KS. Hoàng Anh Quang
9. Quản Lý Cơ Sở Dữ Liệu Với Microsoft SQL Server 2005 - Nguyễn Nam Thuận Lữ Đức Hào



×