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

Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

35 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm Hiểu Lập Trình Truyền Thông Và Ứng Dụng Xây Dựng Chương Trình Chat Trong Java
Tác giả Nguyễn Phú Lộc
Người hướng dẫn Ks. Đỗ Thanh Cao
Trường học Trường Đại Học An Giang
Chuyên ngành Cử Nhân Tin Học
Thể loại Luận văn tốt nghiệp
Năm xuất bản 2006
Thành phố An Giang
Định dạng
Số trang 35
Dung lượng 26,26 MB

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

Nội dung

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong JavaTóm tắt đề tài Tên đề tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình

Trang 1

TRƯỜNG ĐẠI HỌC AN GIANG

KHOA KY THUAT - CÔNG NGHỆ - MÔI TRƯỜNG

NGUYEN PHU LỘC

LUẬN VAN TOT NGHIỆP NGANH CỬ NHAN TIN HOC

TÌM HIỂU LẬP TRINH TRUYEN THONG VA UNG DUNG

XÂY DUNG CHUONG TRINH CHAT TRONG JAVA

Trang 2

Lời cảm ơn

Em xin chân thành cảm ơn khoa Kỹ Thuật - Công Nghệ - Môi Trường đã tạo điều kiện

cho em thực hiện dé tài.

Em xin chân thành cảm ơn thay Đỗ Thanh Cao — người trực tiếp hướng dẫn, truyền

đạt cho em những kinh nghiệm quý báu để em hoàn thành đề tài này.

Em xin chân thành cảm ơn quý thầy cô trong khoa đã trang bị những kiến thức quý

báu trong những năm vừa qua.

Em xin gởi lời biệt ơn sâu sắc đên ông bà, cha mẹ, anh chị và bạn bè đã ủng hộ, giúp

đỡ và động viên em trong suốt thời gian học tập và nghiên cứu.

Mặc dù đã cố gắng để hoàn thành đề tài nhưng chắc chắn không tranh khỏi những

thiêu sót Em kính mong nhận được sự thông cảm và tận tình chỉ bảo của quý thây cô và các bạn.

An Giang, ngày 15 tháng 05 năm 2006

Sinh viên thực hiện

Nguyễn Phii Lộc

Trang 3

6u 8/8 4 da Trang 1

Phan A: Eo gõ: [Ệ KHUVẾT saueaanasaatrdiinottdtiitnioasttinttdgndi Trang 2

I Tổng quan về lập trình truyền thông . -c-<cccccsccss Trang 2

4 Cơ chế giao tiếp liên quá trình -¿-¿-¿¿52 522222232232212212222xzrrei Trang 2

2 Phân loại cơ chế giao tiếp liễn quá WỈNH soecoaonaaesesnaneoay.-aaaasznn Trang 3

3 Mô hình Client - Sewer :::::c:cccsccccsiiixbS6 0A tt 10160304480 0066400402808 0485 Trang 4 3.1 GiGi tHIGU nnŨnŨŨŨnỪẶÀ Trang 4

3.2 CO CHE Gide tip oo ceeceeccecccecscesseseeseseseeescsessssseseseseseseseecsescseeeseseseseess Trang 5

3.2.1 Chế độ nghẽn oo eeeeecccccscececscsscscecseeccscsesevscseseeecaeseeesseststsecseeteeves Trang 5

3.2.2 Chế độ không nghến S3 32v 22121212111 xe Trang 5

A, Gáo kiểu kiến trúo của chương TT saueaseiaaidibddniiiiadiriaasaaaasanaaaa Trang 6

44 Kiện trúc đợi ÔNG nanoaaaootiiigliGGSGGIGGHISIDEHIDGi00000000038g3quig Trang 68:2 Kiện TEE N8lfổNH, ì.àe ecceienirrinii24202-0/0 Trang 7

4.2.2 Nà nh on ˆ Trang 84.3 Kiến trúc đa tầng, :21 1212222112111 1111011111111 re Trang 9

5 Giới thiệu một số kĩ thuật lập trình mạng trong Java Trang 9

8:1; Gió† thiệu SO€K€Ẩossdtinaitbaseiilttitil80S04409558584449659044414830008006061014908 Trang 9

82111: GIỚI HIẾU hang gdogggh 2 UGHGIIGDGNGHRRQDOIGGRIEENVEEEGSEMESMNIRGGEIYGMNRSSĐim Trang 9

5.1.2 Số hiệu CONG (pOr) - ¿1 t2 tt 222 1812122221112 10151 111x111 xree Trang 9

5.1.3 Địa chi IP (IP Address) - - HH he Trang 10 5.2 Servlet/Java Server Pages (JSP) HH Trang 11 G5 AD[ĐĂcsecintrnddttit TT 11116 10001169601101200445E9906056830010100708/0000015140035981ivi8140085081/5 Trang 11

5.4 Remote Methods Invocation (RMI) Sa Trang 12

Ik NHôñ ngữ AVA saecpiaaagaissgititdiitsgituitiloigiESj8ES4SSEGS1432x104S-n3asaae Trang 13

1 Thiết kế giao diện người dùng (User Interface) -. -:-:s+¿ Trang 13

r0 0a Trang 13

3 Các luồng nhập xuất -c2: 321222222523 1321115511171 22112 cve2 Trang 13

4; GAD TRÌNHSGINO(SOTÔtssesosreensaenprrmsattntititnlbngutlGBHiNHGS0BBI2E900814gHT8n10010004012/6199012./004048 Trang 14

Phần B: Mô tả chương trình: -c-cccsce- Trang 15

len 1 ẽ Trang 15

Trang 4

II Mô hình hơạt GONG ‹‹‹:-::::5:ó-:c¡::2ccccco cúi tá g06142044444316833ã 1á 688%1Ä4ãx8gãaa8uáá Trang 15

tl, TSN TAC ENE NING qruqaaatgtgaGtaGttitullidtidiiajbsadituidaeiaeaaal Trang 16

4 Phần Client L2 1 12211 121222212111011111 1011101 8 1E Trang 16

IV Mô tả chỉ tiết chức năng cccccceeeeerrtrrrtirrsrrrkrrrrsrsree Trang 17

1 Chức năng chính (sendMessage, sendFile) Trang 17 2: CHOC NANG PHÙ assesses renee Trang 23

BG HiE TÔI di od bo di bu gokul lii8QIGNGQHDNGRGRSNGNHRIGaik Trang 23

2.2 Phần Server L Lt2 1212121111111 221212121110111111111 210k Trang 23

3 Phần lưu trữP c c St xSx 12121 EE H11 1181711511111 1H11 Hà rưệu Trang 24

Ý_.Giao GIG MN secccccevsssensssssevcesscecesescnsdenesecscaresteensersnnneresonasees ravseknnssinnn rvssasaeTrang 25

PARENT DEN) nueonesetptetgtrirrof00S0000002100000000001210030000000190030005000-ĐÖU0EEDNHORĐEDCSTSTS000E Trang 25

5 Phần SQIVE! toosoooooioocecdEGIGEDGDGEIGESSSIGGSAAGIAAGIGSSEURSSGGG0G3Đ003104gu3 Trang 28

Phần C: Kết luận -c 22ceccccceerirrrttrrrrrrrrrrrrrrescee Trang 30

I Kết quả đạt được qua đợt thực tập c-cccceccceriririreirrsesrsee Trang 30

Tài liệu tham khảo c2 122011111 2 211118221 1111 ng vn ng vn Trang 31

Trang 5

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

Tóm tắt đề tài

Tên đề tài:

Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

Giáo viên hướng dẫn: — Kỹ sư Đỗ Thanh Cao

Sinh viên thực hiện: Nguyễn Phú Lộc

- _ Xét trên một phạm vi rộng (trên thé giới), nó giúp cho một người có thẻ liên lạc, trò

chuyện với một người khác một cách dễ dàng mặc dù hai người đang ở rât xa nhau (hai người đang ở các quoc gia khác nhau, các châu lục khác nhau, ) Tuy nhiên để có thể đáp ứng được nhu cau trên thì đòi hỏi người sử dụng phải kết nối vào mạng Internet và

cùng với sự hỗ trợ của một số chương trình như: Yahoo Messenger, Google Talk,

những chương trình nỗi tiếng nhất trên thé giới hiện nay

- - Xét trên một phạm vi nhỏ hẹp (trong một văn phòng, cơ quan chẳng hạn), vì vấn đề

bảo mật hay một sô lý do nào đó mà người dùng không nối kết Internet hoặc không sử

dụng các dịch vụ chat có sẵn, nhưng vẫn có thể giao tiếp, trò chuyện với nhau thông qua

mạng cục bộ (Intranet, LAN) Việc tự xây dựng một chương trình chat sẽ phục vụ tốt cho

yêu cầu vừa nêu

A x A ^* ,Ã Ậ Fa A tA + ` sh A A L!Ã z , Ayr

- Đây là một cơ hội tot dé em có thé nghiên cứu, tìm hiéu một sô kiên thức cơ ban về ki

thuật lập trình mạng mà chủ yêu là lập trình socket.

ˆ x

Yéu cau:

- Néulén được hướng dé tiép cận với lập trình truyền thông trong Java.

- _ Tìm hiểu về cách thức truyền một thông điệp từ máy này sang máy khác

- Tìm hiểu về mô hình ứng dụng Client/Server

- Viết chương trình DEMO

Môi trường thực hiện:

- Phan mêm Eclipse 3.0.

- Phan mém NetBean.

Hệ thống:

- Phải có bộJDK 1.4 hoặc các phiên bản sau đó.

- _ Bộ gõ tiếng việt Unikey 3.5 hoặc các phiên bản sau đó

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang |

Trang 6

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

Phan A: Cơ sở ly thuyết

Tổng quan về Lập trình truyền thông

1 _ Cơ chế giao tiếp liên quá trình

Truyền thông là một khái niệm dùng để chỉ sự giao tiếp giữa hai hay nhiều thực

thể trong một hệ thống nào đó Nếu hệ thống 1mà ta xem là xã hội loài người thì đó là sự

trao đổi giữa người với người trong cuộc sống thông qua các phương tiện truyền tải

thông tin khác như không khí (nói chuyện trực tiếp), hệ thống điện thoại, sách báo, mạng máy tính,

Nếu hệ thống mà chúng ta đang xét là một hệ thống máy tính hay một hệ thống

mạng thì truyền thông có thé được phân thành hai mức:

% Mirc phan cứng: là sự giao tiếp, trao đổi thông tin giữa các bộ phận vật lý

cấu thành nên hệ thống máy tính như CPU, bộ nhớ, thiết bị vào ra, card giaotiếp mạng, nhờ vào các phương tiện truyền thông như hệ thống BUS nội, hệ

thông BUS vào ra hay các dây cáp mạng

“ Mức phan mém: là sự giao tiếp, trao đổi thông tin giữa các thành phần bên

trong của một chương trình hay giữa các chương trình với nhau thông qua các

cơ chế truyền thông được hỗ trợ bởi các hệ điều hành, hệ điều hành mạng.

Trong các hệ thống máy tính đơn nhiệm (monotasking) cổ điển, ví dụ MS-DOS,

tại một thời điểm chỉ cho phép tổn tại một quá trình Việc giao tiép, trao déi thong tin chỉ diễn ra trong phạm vi của một chương trình Dé là sự giao tiếp giữa các thủ tục dưới

hình thức chia sẽ các biến toàn cục, hay bằng cách truyền các tham số khi gọi hàm, thủ

tục hay bằng giá trị trả về của một ham, Ngược lại, trong các hệ thống đa nhiệm

(multitasking) có nhiều quá trình tồn tại sông Song nhau, môi quá trìnhđược thực hiện

trong một không gian địa chỉ (Address space) riêng biệt Việc giao tiếp giữa các quá

trình muốn thực hiện được đòi hỏi phải có những tiện ích hỗ trợ bởi hệ điều hành, hệ

điều hành mạng Các tiện ích này thường được gọi với cái tên là Cơ chế giao tiếp liên

quá trình (IPC - Inter-Process Communication).

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 2

Trang 7

Tên đề tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

A Ao .Ä +A ⁄ so

2 Phân loụi cơ chế giao tiêp liên qua trình

Cơ chế giao tiếp liên quá trình hỗ trợ bởi hệ điều hành đa nhiệm có thể được chia

làm hai loại:

Loại I: Cơ chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình

trên cùng một máy tính.

Hình 1: Cơ chế giao tiếp liên quá trình loại I

s* Loại 2: Co chế giao tiếp liên quá trình hỗ trợ giao tiếp giữa các quá trình

năm trên các máy tính khác nhau.

Hình 2: Cơ chế giao tiếp liên quá trình loại 2

Trong cơ chế giao tiếp liên quá trình trên cùng một máy, dit liệu trao đổi qua lạigiữa các quá trình phải đi xuyên qua hạt nhân (kernel) của hệ điều hành Đó có thể là

một vùng nhớ dùng chung cho các quá trình đã được qui định trước bởi hệ điều hành,

hay một tập tin trên đĩa được quản lý bởi hệ điều hành trong đó một quá trình sẽ ghi dit

liệu vào, quá trình khác đọc dữ liệu ra,

Trong cơ chế giao tiếp liên quá trình trên các máy tính khác nhau, đữ liệu trao đổi

giữa các quá trình không những phải đi qua hạt nhân như cơ chế giao tiếp liên quá trình

trên một máy tính mà hơn thế các hạt nhân của các máy có liên quan, phải hiệu nhau.

Nói cách khác các hạt nhân phải thỏa thuận trước với nhau về các qui tắc trao đổi thông tin giữa chúng Thông thường ta gọi các qui tắc này là các giao thức (Protocol).

Sinh viên thực hiện: Nguyễn Phú Lộc — DTH021691 Trang 3

Trang 8

a Agxs ` ak A ` x a ee A `

Tên dé tai: Tìm hiệu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

3 Mô hình Client — Server

3.1 Giới thiệu

Trong mô hình này, chương trình ứng dụng được chia thành hai phân:

trình này được gọi là các i

trinh phuc vu hay Server Y

Reply execution

Reply message

- Một số quá trình

khác có yêu cầu sử dụng _——————— Qua trình đang thực thi

các dịch vụ do các server - Quá trình đang bị nghẽn cung cap được gọi là các

trình khách hay Client Hình 3: Mô hình Client - Server

Việc giao tiếp giữa Client và Server được thực hiện dưới hình thức trao đôi

các thông điệp (Message) Để được phục vụ, Client sẽ gởi một thông điệp yêu cầu(Request Message) mo ta về công việc muốn Server thực hiện Khi nhận được

thông điệp yêu cầu, Server tiền hành phân tích để xác định công việc cần phải thực

thi Nếu việc thực hiện yêu cầu này có sinh ra kết quả trả về, Server sẽ gởi nó cho

Client trong một thông điệp trả lời (Reply Message) Dạng thức (format) và ý

nghĩa của các thông điệp trao đổi giữa Client và Server được qui định rõ bởi giao

thức (protocol) của ứng dụng.

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 4

Trang 9

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dung xây dựng chương trình chat trong Java

3.2 Các cơ chế giao tiếp

Quá trình giao tiếp giữa Client va Server có thé diễn ra theo hai chế độ nghẽn

(Blocked) hoặc không nghẽn (Not Blocked).

° 3.2.1 Chế độ nghẽn (Blocked):

Trong chế độ

: này, khi quá trình

client hay server phát

ra lệnh gởi dữ liệu,

(thông thường bằng

lệnh send) , sự thực i thi của nó sẽ bi tam :

dừng cho đến khi quá

Tương tự cho trường hợp nhận dữ

liệu, nếu quá trình

nào đó, client hay

server, phát ra lệnh —————_ Quá trình đang thực thi

nhận dữ liệu, mà ở

thời điểm đó chưa có

dữ liệu gởi đến, sự Hình 4: Chế độ giao tiếp nghẽn

thực thi của nó cũng

tạm dừng cho đến khi có dữ liệu gởi đến

3.2.2 Chế độ không nghẽn (Non Blocked):

Trong chế độ này, khi

quá trình client hay server Client Server

phát ra lệnh gởi dữ liệu, sự

thực thi của nó vẫn được tiếp

tục mà không quan tâm đến

việc có quá trình nào phat ra = SendQ)

dữ liệu đến) Sự thực thi của Quá trình đang thực thi

quá trình vẫn được tiếp tục ‘

— n Quá trình đang bị nghẽnHình 5: Chế độ giao tiếp không nghẽn

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 5

Trang 10

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

Trong thực tế cần chú ý đến chế độ giao tiếp nghẽn khi lập trình, vì nó

có thé dan đến trường hợp chương trình bị "treo" do sô lan gởi và nhận dữ

liệu không bang nhau giữa hai bên giao tiếp.

, +k eA * 2 `

4 Các kiêu kiên trúc của chương trình

O mức lý luận, các chức năng mà một chương trình ứng dụng thực hiện có thé xếp

thành một trong 3 loại sau:

- Chie năng thực hiện việc tương tác với người dùng như tao các giao diện

nhập liệu hay in các báo cáo thông báo ra màn hình Các chức năng này được

gọi chung là Dịch vụ giao diện người đùng (User Interface Service).

- Cac chức năng tính toán các dữ liệu, xử lý thông tin theo những qui luật (rule), giải thuật được qui định bởi van dé mà ứng dụng giải quyết Các chức năng này được gọi chung là Dịch vụ nghiệp vụ (Business Rule Service).

- - Trong quá trình tính toán, chương trình ứng dụng cần truy vấn đến các

thông tin đã có được lưu trên đĩa cứng hay trong các cơ sở dữ liệu Cũng như cần thiết phải lưu lại các kết quả tính toán được để sử dụng về sau Các chức năng này được gọi chung là Dịch vụ lưu trữ (Data Storage Service).

Ở mức vật lý, các chức năng này có thể được cài đặt vào một hay nhiều tập tin

thực thi hình thành các kiêu kiên trúc chương trình khác nhau Cho dén thời điểm hiện nay, người ta chia kiên trúc của chương trình thành 3 loại được trình bày tiếp theo sau.

4.1 Kiến trúc đơn tầng (Single-Tier Architecture)

Trong kiểu kiến trúc này, cả 3 thành phần của chương trình ứng dụng (User

Interface, Business Rule, Data Storage) déu được tích hợp vào một tập tin thực thi.

Vi du: Bkav, D32, Winword,

Các ứng dung kiêu này chỉ được thực thi trên một máy tính.

Hình 6: Kiến trúc chương trình đơn tang

nao đó (Business Rule).

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 6

Trang 11

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

> Viéc bảo trì, nâng cấp an ban mới là một công việc cực kỳ nặng nề vì

ta phải thực hiện việc cài đặt trên tat cả các máy tính.

> Trong kiểu này, mỗi máy tính duy trì một cơ sở dữ liệu riêng cho nên

rat khó trong việc trao đổi, tổng hợp dữ liệu.

> Máy tính phải đủ mạnh để có thể thực hiện đồng thời cả 3 loại dịch

vụ.

4.2 Kiến trúc hai tang (Two-Tier Architecture)

Kiến trúc này còn được biết đến với tên kiến trúc Client - Server Kiến trúc

này gồm 2 chương trình thực thi: chương trình Client và chương trình Server Cảhai chương trình có thể được thực thi trên cùng một máy tính hay trên hai máy tính

khác nhau

Client và Server trao đổi thông tin với nhau dưới dạng các thông điệp

(Message) Thông điệp gởi từ Client sang Server gọi là thông điệp yêu cầu (Request Message) mô tả công việc mà phân Client muôn Server thực hiện.

Request

Client Server

4 Reply

Hình 7: Kiến trúc chương trình Client — Server

Server nhận được một thông điệp yêu cầu, Server sẽ phân tích yêu cầu, thực

thi công việc theo yêu cầu và gol két qua về Client (nếu có) trong một thông điệp

trả lời (Reply Message) Khi vận hành, một máy tính làm Server phục vụ cho

nhiều máy tính Client

Mỗi một ứng dụng Client — Server phải định nghĩa một giao thức (Protocol)

riêng cho sự trao đôi thông tin, phôi hợp công việc giữa Client và Server Protocol qui định một sô van dé cơ bản sau:

Khuôn dạng loại thông điệp.

> Số lượng và ý nghĩa của từng loại thông điệp

Cách thức bắt tay, đồng bộ hóa tiến trình truyền nhận giữa Client và

Server.

Thông thường phan Client dam nhận các chức năng về User Interface, như

tạo các form nhập liệu, các thông báo, các báo biểu giao tiếp với người dùng.

Phần Server đảm nhận các chức năng về Data Storage Nhờ đó dễ dàng trong

việc bảo trì, chia sẽ tông hợp dữ liệu trong toàn bộ công ty hoặc tô chức.

Các chức năng về Business Rule có thé được cài đặt ở phan Client hoặc ở phân Server tạo ra hai loại kiên trúc Client - Server là:

> Fat Client.

> Fat Server.

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 7

Trang 12

Tên dé tài: Tìm hiéu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

4.2.1 Loại Fat Client

Trong loại này Business Rule được cài đặt bên phía Client Phần

Server chủ yêu thực hiện chức năng về truy vấn và lưu trữ thông tin,

> Tạo ra ít giao thông trên mang nhờ dit liệu tạm thời trong quá

trình tính toán được lưu tại Client.

s% Nhược điểm:

> Vi Business Rule được cài đặt trên phía Client, đòi hỏi may tính thực thi phân Client phải đủ mạnh, dan đến tôn kém trong chi phí dau

tư phân cứng cho các công ty xí nghiệp.

Ề Phải cài đặt tất cả các máy tính Client khi nâng cấp chương

trình.

4.2.2 Loại Fat Server

Trong loại này, phân lớn các chức năng về Business Rule được đặt ở phan Server Phan Client chỉ thực hiện một sô chức năng nhỏ của Business Rule về kiêm tra tính hợp lệ của dữ liệu nhập bởi người dùng.

> Tạo ra nhiều thông điệp trao đổi giữa Client và Server làm tăng

giao thông trên mạng.

> Tăng tải trên máy Server vì nó phải đồng thời thực hiện các chức năng của Business Rule và Data Storage làm giảm hiệu năng

của chương trình.

Sinh viên thực hiện: Nguyễn Phú Lộc — DTH021691 Trang 8

Trang 13

Tên đề tài: Tìm hiểu lập trình truyền thông va ứng dụng xây dựng chương trình chat trong Java

4.3 Kiến trúc đa tầng (N-Tier Architecture)

Đây là kiến trúc cho các ứng dụng phân tán (Distributed Application) Thông

thường là kiến trúc 3 tầng Chương trình ứng dụng được tách thành 3 phần riêng

biệt tương ứng cho 3 chức năng User Interface, Business Rule và Data Storage Vi

các chức năng thuộc về Business Rule được tách thành một phần riêng, nó có thểđược thục thi trên một máy tính Server riêng giải quyết được hau hết các nhược

điểm mắc phải của kiến trúc đơn tầng và kiến trúc hai tầng nói trên.

Request, ome

Business rule Reply Data Storage

: Reply Jt

User Interface

Hình 10: Kiến trúc chương trình da ting

Kiến trúc này đáp ứng tốt với những thay đổi về qui luật xử lý dữ liệu của

vấn đề mà ứng dụng giải quyết Việc thay đổi chỉ ảnh hưởng trên tầng Business

Rule mà không ảnh hưởng đến hai tầng còn lại.

Thông thường, người ta gọi tên các thành phần trên là:

Client - Application Server — Database Server

5 Giới thiệu một số kỹ thuật lập trình mang trong Java:

$.1 Giới thiệu về Socket:

và được sử dụng trong nhiều nếp ngữ lập trình khác nhau như: C, C++,

Java, Visual Basic, Visual C++,.

Socket cho phép thiết lập các kênh giao tiếp mà hai đầu kênh được

đánh dấu bởi hai công (port) Thông qua các cổng này một quá trình có thể

nhận và gởi dữ liệu với các quá trình khác.

Có hai kiểu Socket:

- Socket kiểu AF_UNIX chỉ cho phép giao tiếp giữa các quá

trình trong cùng một máy tính.

- Socket kiểu AF_INET chi cho phép giao tiếp giữa các quá

trình trên những máy tính khác nhau trên mạng.

5.1.2 SỐ hiệu cổng (port):

Đề có thể thực hiện các cuộc giao tiếp, một trong hai quá trình phảicông bố số hiệu cổng của socket mà mình sử dụng Mỗi cổng giao tiếp thể

hiện một địa chỉ xác định trong hệ thống Khi quá trình được gán một số hiệu

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 9

Trang 14

Tên dé tài: Tìm hiều lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

a Pa h A a ~ TtA 2 ES A x ` , là ` , h

công Nó có thê nhận dữ liệu gởi đên công này từ các quá trình khác Quá trình còn lại cũng được yêu câu tạo ra một socket.

Ngoài số hiệu công, hai bên giao tiếp cần phải biết địa chỉ IP của nhau.

Địa chỉ IP giúp phân biệt máy tính này với máy tính kia trên mang TCP/IP Trong khi số hiệu cổng dùng dé phân biệt các quá trình khác nhau trên cùng một máy tính.

Số hiệu cổng gán cho socket phải duy nhất trên phạm vi máy tính đó,

có giá trị trong khoảng từ 0 đến 65535 (16 bits) Trong đó công từ 0 đến

1023 được gọi là cổng hệ thống được dành riêng cho các quá trình của hệ

thống

5.1.3 Địa chỉ IP (IP Address):

Địa chi IP là một giao thức mang thuộc lớp thứ 3 (network layer) trong

mô hình OSI — được dùng để truyền những gói dit liệu qua internet Nó là

một trong những giao thức mạng được sử dụng rộng rãi trên thế giới Nó

không phụ thuộc vào loại phần cứng mạng được sử dụng IP hoạt động như một cau nối giữa các mạng khác nhau.

Socket là một giao diện giữa chương trình ứng dụng với tầng vận

chuyên Nó cho phép ta chọn giao thức sử dụng ở tâng vận chuyên là TCP hay UDP cho chương trình ứng dụng của mình.

Sự khác nhau giữa hai chế độ giao tiếp: có kết nối (TCP) và không kết nỗi (UDP).

Chế độ có kết nối (TCP) Chế độkhông kết nối (UDP

- Tổn tại kênh giao tiếp giữa - Khong tổn tại kênh giao tiếp

hai bên giao tiếp giữa hai bên giao ti€p.

- Dé liệu được gửi đi theo chế - Dir liệu được gửi đi theo chế

độ bảo đảm: có kiêm tra lôi, độ không bảo đảm: không

truyền lại gói tin lỗi hay mắt, kiểm tra lỗi, không phát hiện,bảo đảm thứ tự đên của các không truyền lại gói tin lỗi

gói tin, hay mat, khéng bao dam thir

" , Ĩ h 5 tự dén của các gói tin.

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 10

Trang 15

Tên dé tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

5.2 Servlet/Java Server Pages (JSP):

_ Trong Java, những chương trình phía chủ (server - side) thường được viet bang cách sử dụng servlet hoặc là Java Server Pages (JSP) BH cũng

có thê được việt băng những ngôn ngữ khác như: C, ASP, PHP,.

Servlet là một cách tiếp cận với lập trình ứng dụng Web Với servlet

các chương trình Java chỉ cần nạp một lân vào má ảo Java Servlet sẽ phục

vụ mọi yêu cầu từ máy khách gửi đến tương tự ISAPI (cách thức xây dựng

chương trình CGI ở dạng thư viện liên kết động được hỗ trợ bởi Windows)

Java Server Pages (JSP) là một cách đơn giản để người dùng (nhất là lập trình viên Java không chuyên) tiếp cận được hướng lập trình Web phía máy chủ hiệu quả và nhanh hơn Nếu bạn chưa biết tường tận Java hay Servlet bạn vẫn có thể thiết kế ứng dụng Web đáp ứng nhu cầu người dùng

phía trình khách thông qua các trang JSP.

Servlet đưa mã HTML vào lệnh Java trong khi ngược lai JSP đưa lệnh

Java vào các thẻ HTML Các trang JSP chứa các thẻ đặc biệt qui định gần

giống các thẻ của HTML khi bạn yêu cầu một trang JSP, trình chủ sẽ đọc trang JSP từ đĩa cứng, bộ diễn dịch JSP(JSP page compiler) sẽ diễn dich mã

lệnh Java chứa trong trang JSP thành một Servlet Sau đó trình chủ Java

Web Server sẽ triệu gọi Servlet trả kết quả thuần HTML cho trình khách.

JAVA WEB SERVER

Hình 11: Cơ chế triệu gọi trang JSP

5.3 Applet:

Applet là một trong những tiêu điểm nổi trội trong lĩnh vực lập trình web Khi công nghệ Java được giới thiệu lần đầu tiên, thì hầu như là nói vềApplet Bởi vì chúng cho phép những chương trình được download về một

trình duyệt (browser) và chạy dựa trên trình duyệt (Browser) thông qua giao

thức HTTP.

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 11

Trang 16

Tên đề tài: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java

5.4, Remote Methods Invocation (RMD):

RMI là một kỹ thuật hệ thống phân tán cho phép một máy ảo Java (JVM) truy xuất đến những phương thức đối tượng (object methods) — chạy trên một máy ảo Java khác trên mạng Kĩ thuật này cực kỳ quan trọng cho

sự phát triển của những hệ thống lớn Nó có thể phân bố những tài nguyên

và việc xử lý thông qua nhiều máy.

RMI là một công nghệ Java cho phép một máy ảo giao tiếp với những

máy ảo khác và thực thi một phương thức đối tượng Những đối tượng có

thể truy xuất đến những phương thức trên những đối tượng nằm ở xa dễ đàng như chúng ở trên máy cục bộ.

Mỗi dịch vụ của RMI được định nghĩa bằng một giao diện (interface) —

mô tả những phương thức của đối tượng có thể được thực thi từ xa Giao diện này phải được chia sẽ bởi tất cả những người phát triển - người viết nên phần mềm cho dịch vụ đó Nó đóng vai trò như một bản thiết kế của

ứng dụng — cái mà được sử dụng và chuẩn bị cho sự thi hành của dịch vụ.

Nhiều việc thực thí giao diện có thể được tạo ra, và những người phát trién

không cần quan tâm đến sự thi hành nào đang được sử dụng hoặc nguồn gốc

phát sinh.

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 12

Trang 17

Tên đề tài: Tìm hiểu lập trình truyền thông và ứng dụng xây đựng chương trình chat trong Java

H Ngôn ngữ Java

Package (gói) là một khái niệm để chỉ một tập hợp những lớp (class)'và giao diện

(interface) được những người đi trước cung cấp sẵn.

Sau đây là một số gói đã được sử dụng trong chương trình:

1, Thiết kế giao diện người dùng (User Interface):

Giao diện người dùng(User Inteface) là một thành phần không thể thiếu

trong bất kỳ một ứng dụng nào Nó là một thành phần giao tiếp giữa người dùng

và chương trình ứng dụng.

Để giúp cho những người lập trình có thể tạo nên những giao diện (UserInterface) đẹp, hap dẫn người sử dụng, Java đã cung cấp những gói (Package) hỗ

trợ cho lập trình giao diện như:

> Gói Java awt.*: Gói này cung: cấp những Class cơ sở giúp cho người

lập trình dễ dàng hơn trong việc thiết kế giao diện tương |tác với người dùng

(như: Menu, TextArea, TextField, ) Ngoài ra nó còn hỗ trợ thêm cho ta về

cách thức nắm bắt những sự kiện (click chuột vào Button, nhắn phim Enter

trên TextField, ) tương tac giữa người dùng với giao diện của chương trình

(vấn dé này được hỗ trợ khá đây đủ trong gói java.awt.event.*)

> Gói javax.swing.*: Gói này cũng có nhưng tính năng tương tự như gói

java.awt.*.

Lép trinh mang:

Có thé nói Java hỗ trợ rất mạnh về lập trình ứng dụng mạng với các lớp thư

viện socket giúp đơn giản hóa quá trình kết nỗi và chuyên dữ liệu trên mạng.

Một gói (Package) không thể thiếu được trong hầu hết các ứng dụng mạng

hiện nay là:

> Gói Java.net.*- Gói này cung cấp những thư viện lập trình mạng rất tiện

lợi Một số lớp tiêu biểu được dùng cho lập trình Client— Server sử dụng

Socket làm phương tiện giao tiép như:

- Socket: Hỗ trợ các phương thức liên quan đến Socket cho chương

trình Client ở chế độ có nối kết.

- ServerSocket: Hỗ trợ các phương thức liên quan đến Socket cho

chương trình Server ở chê độ có nôi ket.

Các luéng nhập xuat:

Thông thường, một chương trình cần nhận vào thông tin từ một nguồn tài nguyên bên ngoài hoặc là gởi thông tin đến một nơi nào đó Thông tin có thể ở bất

ky nơi nào: trong một file, trên đĩa, một vài nơi nào trên mạng, trong bộ nhớ, hoặc

trong những chương trình khác Vấn đề này cũng đã trở nên khá đơn giản trong

ngôn ngữ Java nhờ vào sự hỗ trợ của gói:

Gói java.io.*: Gói này chứa nhiều Class, cái mà những chương trình

ứng dụng có thể ssử dụng nó để đọc và ghi dữ liệu Một số lớp điển hình

thường hay được sử dụng nhất như:

Sinh viên thực hiện: Nguyễn Phú Lộc - DTH021691 Trang 13

Ngày đăng: 21/04/2025, 03:49

HÌNH ẢNH LIÊN QUAN

Hình 1: Cơ chế giao tiếp liên quá trình loại I - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình 1 Cơ chế giao tiếp liên quá trình loại I (Trang 7)
Hình 5: Chế độ giao tiếp không nghẽn - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình 5 Chế độ giao tiếp không nghẽn (Trang 9)
Hình 7: Kiến trúc chương trình Client — Server. - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình 7 Kiến trúc chương trình Client — Server (Trang 11)
Hình 10: Kiến trúc chương trình da ting - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình 10 Kiến trúc chương trình da ting (Trang 13)
Hình 11: Cơ chế triệu gọi trang JSP - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình 11 Cơ chế triệu gọi trang JSP (Trang 15)
Hình này chứa những tiểu trình (Thread) ở phía Server: - Khóa luận tốt nghiệp Kỹ thuật công nghệ môi trường: Tìm hiểu lập trình truyền thông và ứng dụng xây dựng chương trình chat trong Java
Hình n ày chứa những tiểu trình (Thread) ở phía Server: (Trang 19)

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