Giáo trình Lập trình truyền thông

Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
CHƯƠNG 1  
Tng quan vlp trình truyn thông  
Mc đích  
Chương này nhm cung cp cho các bn mt cái nhìn tng quan vcác vn đề có  
liên quan trong lp trình truyn thông  
Yêu cu  
Sau khi hoàn tt chương này, bn có th:  
ƒ Gii thích được Cơ chế giao tiếp liên quá trình (Inter-Process  
Communication ) là gì.  
ƒ Mô tchc năng, nhim vca các tng trong mô hình OSI.  
ƒ Định nghĩa vgiao thc và bin lun được scn thiết ca giao thc trong  
truyn thông .  
ƒ Mô tvbgiao thc TCP/IP.  
ƒ Định nghĩa mô hình Client – Server.  
ƒ Phân bit được 2 chế độ giao tiếp: Nghn và Không nghn.  
ƒ Phân bit được các kiu kiến trúc chương trình.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
1
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.1. Cơ chế giao tiếp liên quá trình là gì ?  
Truyn thông là mt khái nim dùng để chsgiao tiếp, trao đổi thông tin gia hai  
hay nhiu thc thtrong mt hthng nào đó. Nếu hthng mà chúng ta xem xét là xã hi  
loài người, thì truyn thông có thlà quá trình trao đổi thông tin gia người vi người  
trong cuc sng thông qua các phương tin truyn ti thông tin khác nhau như không khí  
(trong trò chuyn trc tiếp), hthng đin thoi, sách, báo, các phương tin nghe nhìn,  
mng máy tính...  
Nếu hthng mà chúng ta xem xét là mt hthng máy tính hay mt hthng  
mng thì truyn thông có thể được phân thành hai mc:  
ƒ Mc phn cng: là sgiao tiếp, trao đổi thông tin gia các bphn vt lý  
cu thành nên hthng máy tính như CPU, bnh, thiết bvào ra, card giao  
tiếp mng, nhvào các phương tin truyn thông như hthng BUS ni, hệ  
thng BUS vào ra hay các dây cáp mng . . .  
ƒ Mc phn mm: là sgiao tiếp, trao đổi thông tin gia các thành phn bên  
trong ca mt chương trình hay gia các chương trình vi nhau thông qua  
các cơ chế truyn thông được htrbi các hệ điu hành, hệ điu hành  
mng.  
Trong các hthng máy tính đơn nhim (monotasking) cổ đin, ví dMS-DOS, ti  
mt thi đim chcho phép tn ti mt quá trình. Vic giao tiếp, trao đổi thông tin chdin  
ra trong phm vi ca mt chương trình. Đó là sgiao tiếp gia các thtc dưới hình thc  
chia scác biến toàn cc, hay bng cách truyn các tham skhi gi hàm, thtc hay bng  
giá trtrvca mt hàm . . . Ngược li, trong các hthng đa nhim (multitasking) có  
nhiu quá trình tn ti song song nhau, mi quá trình được thc hin trong mt không gian  
địa ch(Address space) riêng bit. Vic giao tiếp gia các quá trình mun thc hin được  
đòi hi phi có nhng tin ích htrbi hệ điu hành, hệ điu hành mng. Các tin ích  
này thường được gi vi cái tên là Cơ chế giao tiếp liên quá trình (IPC - Inter-Process  
Communication).  
1.2. Phân loi cơ chế giao tiếp liên quá trình  
Các cơ chế giao tiếp liên quá trình được htrbi các hệ điu hành đa nhim, hệ  
điu hành mng được chia ra làm hai loi:  
ƒ Loi 1: Cơ chế giao tiếp liên quá trình htrgiao tiếp gia các quá trình trên  
cùng mt máy tính. (Hình H1.1)  
Hình 1.1 - Cơ chế giao tiếp liên quá trình loi 1  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
2
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Loi 2: Cơ chế giao tiếp liên quá trình htrgiao tiếp gia các quá trình nm  
trên các máy tính khác nhau (Hình H1.2).  
Hình 1.2 - Cơ chế giao tiếp liên quá trình loi 2  
Trong cơ chế giao tiếp liên quá trình trên cùng mt máy, dliu trao đổi qua li  
gia các quá trình phi đi xuyên qua ht nhân (kernel) ca hệ điu hành. Đó có thlà mt  
vùng nhdùng chung cho các quá trình đã được qui định trước bi hệ điu hành, hay mt  
tp tin trên đĩa được qun lý bi hệ điu hành trong đó mt quá trình sghi dliu vào,  
quá trình khác đọc dliu ra, . . .  
Trong cơ chế giao tiếp liên quá trình trên các máy tính khác nhau, dliu trao đổi  
gia các quá trình không nhng phi đi qua ht nhân như cơ chế giao tiếp liên quá trình  
trên mt máy tính mà hơn thế các ht nhân ca các máy có liên quan phi hiu nhau. Nói  
cách khác các ht nhân phi thothun trước vi nhau vcác qui tc trao đổi thông tin  
gia chúng. Thông thường ta gi các qui tc này là các giao thc (Protocol).  
1.3. Mô hình tham kho OSI  
Để ddàng cho vic ni kết và trao đổi thông tin gia các máy tính vi nhau, vào  
năm 1983, Tchc tiêu chun thế gii ISO đã phát trin mt mô hình cho phép hai máy  
tính có thgi và nhn dliu cho nhau. Mô hình này da trên tiếp cn phân tng (lp),  
vi mi tng đảm nhim mt scác chc năng cơ bn nào đó và được gi là mô hình OSI.  
Để hai máy tính có thtrao đổi thông tin được vi nhau cn có rt nhiu vn đề liên  
quan. Ví dnhư cn có Card mng, dây cáp mng, đin thế tín hiu trên cáp mng, cách  
thc đóng gói dliu, điu khin li đường truyn ... Bng cách phân chia các chc năng  
này vào nhng tng riêng bit nhau, vic viết các phn mm để thc hin chúng trnên dễ  
dàng hơn. Mô hình OSI giúp đồng nht các hthng máy tính khác bit nhau khi chúng  
trao đổi thông tin. Mô hình này gm có 7 tng:  
7. Tng ng dng (Application Layer)  
Đây là tng trên cùng, cung cp các ng dng truy xut đến các dch vmng.  
Nó bao gm các ng dng ca người dùng, ví dnhư các Web Browser  
(Netscape Navigator, Internet Explorer ), các Mail User Agent (Outlook  
Express, Netscape Messenger, ...) hay các chương trình làm server cung cp  
các dch vmng như các Web Server (Netscape Enterprise, Internet  
Information Service, Apache, ...), Các FTP Server, các Mail server (Send  
mail, MDeamon). Người dùng mng giao tiếp trc tiếp vi tng này.  
6. Tng trình bày (Presentation Layer)  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
3
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Tng này đảm bo các máy tính có kiu định dng dliu khác nhau vn có  
thtrao đổi thông tin cho nhau. Thông thường các máy tính sthng nht vi  
nhau vmt kiu định dng dliu trung gian để trao đổi thông tin gia các  
máy tính. Mt dliu cn gi đi sẽ được tng trình bày chuyn sang định  
dng trung gian trước khi nó được truyn lên mng. Ngược li, khi nhn dữ  
liu tmng, tng trình bày schuyn dliu sang định dng riêng ca nó.  
5. Tng giao dch (Session Layer)  
Tng này cho phép các ng dng thiết lp, sdng và xóa các kênh giao tiếp  
gia chúng (được gi là giao dch). Nó cung cp cơ chế cho vic nhn biết tên  
và các chc năng vbo mt thông tin khi truyn qua mng.  
4. Tng vn chuyn (Transport Layer)  
Tng này đảm bo truyn ti dliu gia các quá trình. Dliu gi đi được  
đảm bo không có li, theo đúng trình t, không bmt mát, trùng lp. Đối  
vi các gói tin có kích thước ln, tng này sphân chia chúng thành các phn  
nhtrước khi gi đi, cũng như tp hp li chúng khi nhn được.  
3. Tng mng (Network Layer)  
Tng này đảm bo các gói dliu (Packet) có thtruyn tmáy tính này đến  
máy tính kia cho dù không có đường truyn vt lý trc tiếp gia chúng. Nó  
nhn nhim vtìm đường đi cho dliu đến các đích khác nhau trong hệ  
thng mng.  
2. Tng liên kết dliu (Data-Link Layer)  
Tng này đảm bo truyn ti các khung dliu (Frame) gia hai máy tính có  
đường truyn vt lý ni trc tiếp vi nhau. Nó cài đặt cơ chế phát hin và xử  
lý li dliu nhn.  
1. Tng vt ký (Physical Layer)  
Điu khin vic truyn ti tht scác bit trên đường truyn vt lý. Nó định  
nghĩa các tín hiu đin, trng thái đường truyn, phương pháp mã hóa dliu,  
các loi đầu ni được sdng.  
Vnguyên tc, tng n ca mt hthng chgiao tiếp, trao đổi thông tin vi tng n  
ca hthng khác. Mi tng scó các đơn vtruyn dliu riêng:  
Tng vt lý: bit  
Tng liên kết dliu: Frame  
Tng mng: Packet  
Tng vn chuyn: Segment  
Trong thc tế, dliu được gi đi ttng trên xung tng dưới cho đến tng thp  
nht ca máy tính gi. Ở đó, dliu sẽ được truyn đi trên đường truyn vt lý. Mi khi  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
4
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
dliu được truyn xung tng phía dưới thì nó b"gói" li trong đơn vdliu ca tng  
dưới. Ti bên nhn, dliu sẽ được truyn ngược lên các tng cao dn. Mi ln qua mt  
tng, đơn vdliu tương ng sẽ được “tháo” ra.  
Đơn vdliu ca mi tng scó mt tiêu đề (header) riêng, được mô ttrong  
hình 1.3.  
OSI chlà mô hình tham kho, mi  
nhà sn xut khi phát minh ra hthng  
mng ca mình sthc hin các chc năng  
tng tng theo nhng cách thc riêng.  
Các cách thc này thường được mô tdưới  
dng các chun mng hay các giao thc  
mng. Như vy dn đến trường hp cùng  
mt chc năng nhưng hai hthng mng  
khác nhau skhông tương tác được vi  
nhau. Hình 1.4 sso sánh kiến trúc ca các  
hệ điu hành mng thông dng vi mô  
hình OSI.  
Hình 1.3 - Xlý dliu qua các tng  
Hình 1.4 - Kiến trúc ca mt shệ điu hành mng thông dng  
Để thc hin các chc năng tng 3 và tng 4 trong mô hình OSI, mi hthng  
mng scó các protocol riêng:  
ƒ UNIX: Tng 3 dùng giao thc IP, tng 4 giao thc TCP/UDP  
ƒ Netware: Tng 3 dùng giao thc IPX, tng 4 giao thc SPX  
ƒ Windows NT: chdùng 1 giao thc NETBEUI  
Nếu chdng li ở đây thì các máy tính UNIX, Netware, NT skhông trao đổi  
thông tin được vi nhau. Vi sln mnh ca mng Internet, các máy tính cài đặt các hệ  
điu hành khác nhau đòi hi phi giao tiếp được vi nhau, tc phi sdng chung mt  
giao thc. Đó chính là bgiao thc TCP/IP, giao thc ca mng Internet.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
5
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.4. Mng TCP/IP  
Đây là kiến trúc ca mng Internet, chgm 5 tng như hình vdưới đây:  
Hình 1.5 - Kiến trúc mng TCP/IP  
Người ta còn gi mô hình này là mô hình OSI đơn gin. Các giao thc được sử  
dng trên mi tng được qui định như sau:  
Hình 1.6 – Bgiao thc TCP/IP  
Tng 3 sdng giao thc IP, tng 4 có thsdng giao thc TCP chế độ có ni  
kết hoc UPD chế độ không ni kết.  
Tng 5 là tng ca các ng dng. Mi loi ng dng phi định nghĩa mt giao thc  
riêng để các thành phn trong ng dng trao đổi thông tin qua li vi nhau. Mt số ứng  
dng phbiến đã trthành chun ca mng Internet như:  
ng dng Web: Sdng giao thc HTTP để ti các trang web tWeb Server  
vWeb Browser.  
ng dng thư đin t: Sdng giao thc SMTP để chuyn tiếp mail gi đi  
đến Mail Server ca người nhn và dùng giao thc POP3 hoc IMAP để nhn  
mail vcho người đọc.  
ng dng truyn ti tp tin: Sdng giao thc FTP để ti (download) các tp  
tin tcác FTP Server xa vmáy người dùng hay ngược li.  
. . . . .  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
6
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Thông thường các tng 1,2,3 và 4 được phát trin bi các nhà sn xut hệ điu  
hành, nhà sn xut các thiết bphn cng mng. Chúng đảm nhn nhim vtruyn ti  
thông tin cho các quá trình trên tng ng dng. Chúng cài đặt các cơ chế giao tiếp liên quá  
trình để các quá trình trên tng ng dng có thtruy xut đến dch vtruyn ti thông tin  
do chúng cung cp. Trong khi đó, tng 5 là nơi các nhà sn xut phn mm khai thác để  
to ra các ng dng gii quyết các vn đề khác nhau ca cuc sng. Nó được xem như là  
tng xlý thông tin.  
1.5. Dch vmng  
Dch vmng (Net service) là mt chương trình ng dng thc hin mt tác vnào  
đó trên hthng mng.  
Ví d:  
Dch vin trên mng cho phép nhiu máy tính cùng sdng mt máy in.  
Dch vtp tin trên mng cho phép chia schương trình, dliu gia các máy  
tính.  
Dch vweb cung cp các trang web cho các máy tính khác nhau  
Có nhiu mô hình khác nhau để xây dng các dch vmng. Mt trong nhng mô  
hình được sdng khá phbiến là mô hình Client-Server. Đây là mt mô hình cơ bn để  
xây dng các dch vmng.  
1.6. Mô hình Client – Server  
1.6.1. Gii thiu  
Trong mô hình này, chương trình ng dng được chia thành 2 thành phn:  
Quá trình chuyên cung cp mt sphc vnào đó, chng hn: phc vtp  
tin, phc vmáy in, phc vthư đin t, phc vWeb... Các quá trình này  
được gi là các trình phc vhay Server.  
Mt squá trình khác có yêu cu sdng các dch vdo các server cung cp  
được gi là các quá trình khách hàng hay Client.  
Vic giao tiếp gia client và server được  
thc hin dưới hình thc trao đổi các thông  
đip (Message). Để được phc v, client sgi  
mt thông đip yêu cu (Request Message) mô  
tvcông vic mun server thc hin. Khi  
nhn được thông đip yêu cu, server tiến hành  
phân tích để xác định công vic cn phi thc  
thi. Nếu vic thc hin yêu cu này có sinh ra  
kết qutrv, server sgi nó cho client trong  
mt thông đip trli (Reply Message). Dng  
thc (format) và ý nghĩa ca các thông đip  
Hình 1.7 – Mô hình Client-Server  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
trao đổi gia client và server được qui định rõ bi giao thc (protocol) ca ng dng.  
1.6.2. Ví dvdch vWeb.  
Dch vweb được tchc theo mô hình Client -Server, trong đó:  
Web server sn sàng cung cp các trang web đang được lưu trtrên đĩa cng  
cc bca mình.  
Web Client, còn gi là các Browser, có nhu cu nhn các trang web tcác  
Web Server  
HTTP là giao thc trao đổi thông tin qua li gia Web client và Web Server.  
Thông đip yêu cu là mt chui có dng sau:  
Command URL HTTP/Ver \n\n  
Thông đip trli có dng sau:  
<HEADER>\n\n  
<CONTENT>  
GisClient cn nhn trang Web ở địa chhttp://www.cit.ctu.edu.vn/, nó sẽ  
gi đến Web Server có tên www.cit.ctu.edu.vn thông đip yêu cu sau:  
Server sgi vni dung sau:  
HTTP/1.0 200 OK  
Date: Mon, 24 Nov 2003 02:43:46 GMT  
Server: Apache/1.3.23 (Unix) (Red-Hat/Linux) mod_ssl/2.8.7  
OpenSSL/0.9.6b DAV/1  
.0.3 PHP/4.1.2 mod_perl/1.26  
Last-Modified: Tue, 01 Jul 2003 08:08:52 GMT  
ETag: "17f5d-2abb-3f014194"  
Accept-Ranges: bytes  
Content-Length: 10939  
Content-Type: text/html  
X-Cache: HIT from proxy.cit.ctu.edu.vn  
Proxy-Connection: close  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0  
Transitional//EN">  
<HTML>  
<HEAD>  
<LINK href="favicon.ico" rel="SHORTCUT ICON">  
...............................  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
8
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.6.3. Các chế độ giao tiếp  
Quá trình giao tiếp gia client và server có thdin ra theo hai chế độ là nghn  
(blocked) hay không nghn (Non blocked).  
1.6.3.1. Chế độ nghn :  
Trong chế độ này, khi quá trình  
client hay server phát ra lnh gi dliu,  
(thông thường bng lnh send) , sthc  
thi ca nó sbtm dng cho đến khi  
quá trình nhn phát ra lnh nhn sdữ  
liu đó (thường là lnh receive).  
Tương tcho trường hp nhn dữ  
liu, nếu quá trình nào đó, client hay  
server, phát ra lnh nhn dliu, mà ở  
thi đim đó chưa có dliu gi đến, sự  
thc thi ca nó cũng tm dng cho đến  
khi có dliu gi đến.  
Hình 1.8 - Chế độ giao tiếp nghn  
1.6.3.2. Chế độ không nghn:  
Trong chế độ này, khi quá trình client hay server phát ra lnh gi dliu, sthc  
thi ca nó vn được tiếp tc mà không  
quan tâm đến vic có quá trình nào phát ra  
lnh nhn sdliu đó hay không.  
Tượng tcho trường hp nhn dữ  
liu, khi quá trình phát ra lnh nhn dữ  
liu, nó snhn được slượng dliu  
hin có (bng 0 nếu chưa có quá trình nào  
gi dliu đến). Sthc thi ca quá trình  
vn được tiếp tc.  
Trong thc tế cn chú ý đến chế độ  
giao tiếp nghn khi lp trình, vì nó có thể  
dn đến trường hp chương trình b"treo"  
do sln gi và nhn giliu không bng  
Hình 1.9 - Chế độ giao tiếp không nghn  
nhau gia hai bên giao tiếp.  
1.7. Các kiu kiến trúc chương trình  
mc lun lý, các chc năng mà mt chương trình ng dng thc hin có thxếp  
thành mt trong 3 loi sau:  
1. Các chc năng thc hin vic tương tác vi người dùng như to các giao din  
nhp liu hay in các báo biu, thông báo ra màn hình. Các chc năng này  
được gi chung là Dch vgiao din người dùng (User Interface Service).  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
9
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
2. Các chc năng tính toán các dliu, xlý thông tin theo nhng qui lut  
(rule), gii thut được qui định bi vn đề ng dng gii quyết. Các chc  
năng này được gi chung là Dch vnghip v(Business Rule Service).  
3. Trong quá trình tính toán, chương trình ng dng cn truy vn đến các thông  
tin đã có được lưu trên đĩa cng hay trong các cơ sdliu. Cũng như cn  
thiết phi lưu li các kết qutính toán được để sdng vsau. Các chc  
năng này được gi chung là Dch vlưu tr(Data Storage Service).  
mc vt lý, các chc năng này có thể được cài đặt vào mt hay nhiu tp tin thc  
thi hình thành các kiu kiến trúc chương trình khác nhau. Cho đến thi đim hin nay,  
người ta chia kiến trúc ca chương trình thành 3 loi được trình bày tiếp theo sau.  
1.7.1. Kiến trúc đơn tng (Single-tier Architecture)  
Trong kiu kiến trúc này, c3 thành phn ca chương trình ng dng (User  
Interface, Business Rule, Data Storage) đều được tích hp vào mt tp tin thc thi.  
Ví d: BKAV, D2, Winword, . . .  
Các ng dng kiu này chỉ được thc thi trên mt máy tính.  
User Interface  
Business Rule  
Data Storage  
Hình 1.10 - Kiến trúc chương trình đơn tng  
Ưu đim:  
Ddàng trong thiết kế cài đặt ng dng kiu này.  
Nhược đim:  
Bi vì c3 thành phn được cài vào mt tp tin thc thi, nên vic sa li hay  
nâng cp chương trình thì rt khó khăn. Toàn bchương trình phi biên dch  
li cho dù chsa đổi mt li rt nhtrong mt thành phn nào đó ( User  
Interface chng hn).  
Vic bo trì, nâng cp n bn mi là mt công vic cc knng nvì ta phi  
thc hin vic cài đặt trên tt ccác máy tính.  
Trong kiu này, mi máy tính duy trì mt cơ sdliu riêng cho nên rt khó  
trong vic trao đổi, tng hp dliu.  
Máy tính phi đủ mnh để có ththc hin đồng thi c3 loi dch v.  
1.7.2. Kiến trúc hai tng (Two - Tier Architecture)  
Kiến trúc này còn được biết đến vi tên kiến trúc Client-Server. Kiến trúc này gm  
2 chương trình thc thi: chương trình Client và chương trình Server. Chai chương trình  
có thể được thc thi trên cùng mt máy tính hay trên hai máy tính khác nhau.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
10  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Client và Server trao đổi thông tin vi nhau dưới dng các thông đip (Message) .  
Thông đip gi tClient sang Server gi là các thông đip yêu cu (Request Message) mô  
tcông vic mà phn Client mun Server thc hin.  
Hình 1.11 - Kiến trúc chương trình Client-Server  
Mi khi Server nhn được mt thông đip yêu cu, Server sphân tích yêu cu,  
thc thi công vic theo yêu cu và gi kết quvclient (nếu có) trong mt thông đip trả  
li (Reply Message). Khi vn hành, mt máy tính làm Server phc vcho nhiu máy tính  
Client.  
Mi mt ng dng Client-Server phi định nghĩa mt Giao thc (Protocol) riêng  
cho strao đổi thông tin, phi hp công vic gia Client và Server. Protocol qui định mt  
svn đề cơ bn sau:  
Khuôn dng loi thông đip.  
Slượng và ý nghĩa ca tng loi thông đip.  
Cách thc bt tay, đồng bhóa tiến trình truyn nhn gia Client và Server.  
. . . .  
Thông thường phn client đảm nhn các chc năng vUser Interface, như to các  
form nhp liu, các thông báo, các báo biu giao tiếp vi người dùng.  
Phn Server đảm nhn các chc năng vData Storage. Nhờ đó ddàng trong vic  
bo trì, chia stng hp dliu trong toàn bcông ty hoc tchc.  
Các chc năng vBusiness Rule có thể được cài đặt phn client hoc phn  
server to ra hai loi kiến trúc Client - Server là:  
o Fat Client  
o Fat Server.  
1.7.2.1. Loi Fat Client  
Trong loi này Business Rule được cài đặt bên phía Client. Phn Server chyếu  
thc hin chc năng vtruy vn và lưu trthông tin.  
Hình 1.12 - Kiến trúc chương trình Client – Server theo kiu Fat Client  
Ưu đim  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
11  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
To ra ít giao thông trên mng nhdliu tm thi trong quá trình tính toán  
được lưu ti Client.  
Nhược đim  
Vì Business Rule được cài đặt trên phía Client, đòi hi máy tính thc thi phn  
Client phi đủ mnh, dn đến tn kém trong chi phí đầu tư phn cng cho các  
công ty xí nghip.  
Phi cài li tt ccác máy tính Client khi nâng cp chương trình.  
1.7.2.2. Loi Fat Server  
Trong loi này, phn ln các chc năng vBusiness Rule được đặt phn Server.  
Phn Client chthc hin mt schc năng nhca Business Rule vkim tra tính hp lệ  
ca dliu nhp bi người dùng.  
Hình 1.13 - Kiến trúc chương trình Client – Server theo kiu Fat Server  
Ưu đim  
Vì Business Rule được đặt phn Server, các máy tính Client không cn phi  
có cu hình mnh.  
Vic nâng cp chương trình khi Business Rule thay đổi trnên nhnhàng hơn  
vì chphi cài đặt li phn Server.  
Nhược đim  
To ra nhiu thông đip trao đổi gia Client và Server làm tăng giao thông  
trên mng.  
Tăng ti trên máy Server vì nó phi đồng thi thc hin các chc năng ca  
Business Rule và Data Storage làm gim hiu năng ca chương trình.  
1.7.3. Kiến trúc đa tng (N-Tier Architecture)  
Đây là kiến trúc cho các ng dng phân tán (Distributed Application). Thông  
thường là kiến trúc 3 tng. Chương trình ng dng được tách thành 3 phn riêng bit tương  
ng cho 3 chc năng User Interface, Business Rule và Data Storage. Vì các chc năng  
thuc vBusiness Rule được tách thành mt phn riêng, nó có thể được thc thi trên mt  
máy tính Server riêng gii quyết được hu hết các nhược đim mc phi ca kiến trúc đơn  
tng và kiến trúc hai tng nói trên.  
Biên S
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Hình 1.12 - Kiến trúc chương trình đa tng  
Kiến trúc này đáp ng tt vi nhng thay đổi vqui lut xlý dliu ca vn đề  
ng dng gii quyết. Vic thay đổi chỉ ảnh hưởng trên tng Business Rule mà không  
nh hưởng đến hai tng còn li.  
Thông thường, người ta gi tên các thành phn trên là:  
Client – Application Server – Database Server  
1.8. Bài tp  
1.8.1. Bài tp bt buc  
Bài tp 1.1: Protocol HTTP  
Tìm đọc và viết mt báo cáo không quá 10 trang vgiao thc HTTP.  
Bài tp 1.2: Chat Protocol  
Tìm hiu vdch vChat trên mng Internet. Viết mt bng báo cáo không qua 10  
trang trình bày 2 ni dung sau:  
Mt bng mô tcác chc năng thường được htrtrong mt dch vChat.  
Xây dng Chat Protocol riêng ca bn trong đó mô t:  
o Các chc năng htrbi Chat Server.  
o Khuôn dng (Format) và các loi thông đip (Message) htrbi  
Protocol.  
o Sơ đồ trng thái hot động ca server và client (gii thut).  
o Minh ha các kch bn khác nhau cho tng chc năng ca dch v.  
1.8.2. Bài tp gi ý  
Bài tp 1.3: POP3 Protocol  
Tìm đọc và viết mt báo cáo không quá 10 trang vgiao thc POP3.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
13  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
CHƯƠNG 2  
Sơ lược vngôn ngJava  
Mc đích  
Chương này nhm gii thiu sơ lược vngôn ngjava cho các sinh viên đã có kiến  
thc căn bn vLp trình hướng đối tượng vi C++. Chương này skhông đề cp đến tt  
ccác vn đề có trong Java mà chgii thiu nhng vn đề cơ bn nht vngôn ngJava,  
đủ để các hc viên có thể đọc hiu các chương trình minh ha và làm được các bài tp ng  
dung các chương sau.  
Yêu cu  
Sau khi hoàn tt chương này, bn có th:  
Trình bày được nhng vn đề tng quan vngôn ngJava như:  
o Đặc đim và khnăng ca ngôn ngJava.  
o Khái nim máy o ca Java (JVM - Java Virtual Machine ).  
o Vai trò ca bphát trin ng dng JDK (Java Developpment Kit).  
o Phân bit được hai kiu chương trình Applet và Application ca Java.  
o Các kiu dliu và các phép toán được htrbi Java.  
Biên son, biên dch và thc thi thành công chương trình HelloWorld .  
Sdng thành tho các cu trúc điu khin dưới Java như: if, switch, while,  
do-while, for.  
Biết cách nhn đối sca chương trình Java.  
Biết đổi chui thành strong Java.  
Sdng được cơ chế ngoi lca Java.  
Biết định nghĩa lp mi, sdng mt lp đã có ca Java.  
Gii thích được cơ chế vào ra vi Stream trong Java.  
Sdng thành tho các phương thc ca hai lp InputStream và  
OutputStream.  
Có thnhp / xut chui trên mt InputStream / OutputStream.  
Gii thích được cơ chế lung (Thread).  
Cài đặt được các lung trong Java.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
14  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.1. Gii thiu vngôn ngJava  
1.1.1. Lch sphát trin  
Năm 1990, Sun MicroSystems thc hin dán Green nhm phát trin phn mm  
trong các thiết bdân dng. James Gosling, chuyên gia lp trình đã to ra mt ngôn ngữ  
lp trình mi có tên là Oak. Ngôn ngnày có cú pháp gn ging như C++ nhưng bqua  
các tính năng nguy him ca C++ như truy cp trc tiếp tài nguyên hthng, con tr, định  
nghĩa chng các tác t…  
Khi ngôn ngOak trưởng thành, WWW cũng đang vào thi kphát trin mnh m,  
Sun cho rng đây là mt ngôn ngthích hp cho Internet. Năm 1995, Oak đổi tên thành  
Java và sau đó đến 1996 Java đã được xem như mt chun công nghip cho Internet.  
1.1.2. Khnăng ca ngôn ngJava  
Là mt ngôn ngbc cao như C, C++, Perl, SmallTalk,.. cho nên có thể được  
dùng để to ra các ng dng để gii quyết các vn đề vs, xlý văn bn, to  
ra trò chơi, và nhiu thkhác.  
Có các môi trường lp trình đồ ha như Visual Java, Symantec Cafe,  
Jbuilder, Jcreator, ...  
Có khnăng truy cp dliu txa thông qua cu ni JDBC (Java DataBase  
Connectivity)  
Htrcác lp hu ích, tin li trong lp trình các ng dng mng (Socket)  
cũng như truy xut Web.  
Htrlp trình phân tán (Remote Method Invocation ) cho phép mt ng  
dng có thể được xlý phân tán trên các máy tính khác nhau.  
Và luôn được bsung các tính năng cao cp khác trong các phiên bn sau.  
1.1.2. Nhng đặc đim ca ngôn ngJava  
Ngôn nghoàn toàn hướng đối tượng.  
Ngôn ngữ đa nn cho phép mt chương trình có ththc thi trên các hệ điu  
hành khác nhau (MS Windows, UNIX, Linux) mà không phi biên dch li  
chương trình. Phương châm ca java là "Viết mt ln , Chy trên nhiu  
nn" (Write Once, Run Anywhere).  
Ngôn ngữ đa lung, cho phép trong mt chương trình có thcó nhiu lung  
điu khin được thc thi song song nhau, rt hu ích cho các xlý song song.  
Ngôn ngphân tán, cho phép các đối tượng ca mt ng dng được phân bố  
và thc thi trên các máy tính khác nhau.  
Ngôn ngữ động, cho phép mã lnh ca mt chương trình được ti tmt máy  
tính vmáy ca người yêu cu thc thi chương trình.  
Ngôn ngan toàn, tt ccác thao tác truy xut vào các thiết bvào ra đều thc  
hin trên máy o nhờ đó hn chế các thao tác nguy him cho máy tính tht.  
Ngôn ngữ đơn gin, dhc, kiến trúc chương trình đơn gin, trong sáng.  
1.1.3. Máy o Java (JMV - Java Virtual Machine)  
Để đảm bo tính đa nn, Java sdng cơ chế Máy o ca Java. ByteCode đó là  
ngôn ngmáy ca Máy o Java tương tnhư các lnh nhphân ca các máy tính thc.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
15  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Mt chương trình sau khi được viết bng ngôn ngJava (có phn mrng là .java) phi  
được biên dch thành tp tin thc thi được trên máy o Java (có phn mrng là .class).  
Tp tin thc thi này cha các chthdưới dng mã Bytecode mà máy o Java hiu được  
phi làm gì.  
Khi thc hin mt chương trình, máy o Java ln lượt thông dch các chthdưới  
dng Bytecode thành các chthdng nhphân ca máy tính thc và thc thi thc sự  
chúng trên máy tính thc.  
Máy o thc tế đó là mt chương trình thông dch. Vì thế các hệ điu hành khác  
nhau scó các máy o khác nhau. Để thc thi mt ng dng ca Java trên mt hệ điu  
hành cth, cn phi cài đặt máy o tương ng cho hệ điu hành đó.  
1.1.4. Hai kiu ng dng dưới ngôn ngjava  
Khi bt đầu thiết kế mt ng dng dưới ngôn ngJava, bn phi chn kiu cho nó  
Application hay Applet.  
Applet: Là mt chương trình ng dng được nhúng vào các trang web. Mã  
ca chương trình được ti vmáy người dùng tWeb server khi người dùng  
truy xut đến trang web cha nó.  
Application: Là mt chương trình ng dng được thc thi trc tiếp trên các  
máy o ca Java.  
1.1.5. Bphát trin ng dng Java (JDK- Java Development Kit)  
JDK là mt bcông ccho phép người lp trình phát trin và trin khai các ng  
dng bng ngôn ngjava được cung cp min phí bi công ty JavaSoft (hoc Sun). Có các  
bJdk cho các hệ điu hành khác nhau. Các n bn ca JDK không ngng được phát  
hành, các bn có thti vtừ địa chhttp://java.sun.com hoc http://www.javasoft.com  
Bcông cnày gm các chương trình thc thi đáng chú ý sau:  
javac: Chương trình biên dch các chương trình ngun viết bng ngôn ngữ  
java ra các tp tin thc thi được trên máy o Java.  
java: Đây là chương trình làm máy o ca Java, thông dch mã Bytecode ca  
các chương trình kiu application thành mã thc thi ca máy thc.  
appletviewer: Bthông dch, thc thi các chương trình kiu applet.  
javadoc: To tài liu vchú thích chương trình ngun mt cách tự động.  
jdb: Trình gri.  
rmic: To Stub cho ng dng kiu RMI.  
rmiregistry: Phc vdanh b(Name Server) trong hthng RMI  
1.1.6. Kiu dliu cơ bn dưới Java  
Kiu số  
Tên kiu  
byte  
Kích thước  
1 byte  
short  
int  
long  
float  
double  
2 bytes  
4 bytes  
8 bytes  
4 bytes  
8 bytes  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
16  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Kiu ký tchar  
Java dùng 2 bytes cho kiu ký t, theo chun mã UNICODE ( 127 ký tự đầu  
tương thích vi mã ASCII). Do đó, ta sdng tương tnhư bng mã ASCII.  
Kiu chui ký tString  
Thc cht đây là mt lp nm trong thư vin chun ca Java (Core API),  
java.lang.String  
Kiu lun lý boolean  
Nhn 2 giá trlà : true và false.  
Kiu mng  
o Khai báo:  
ƒ int[] a ; float[] yt; String[] names;  
ƒ hoc: int a[]; float yt[]; String names[];int maTran[][]; float  
bangDiem[][];  
o Khi to:  
ƒ a = new int[3]; yt = new float[10]; names = new String[50];  
maTran = int[10][10];  
o Sdng mng:  
ƒ int i = a[0]; float f = yt[9]; String str = names[20]; int x =  
matran [2][5];  
1.1.7. Các phép toán cơ bn  
Các phép toán trong Java cũng tương tnhư trong C++.  
Phép toán shc: +, - , *, / , % , =,++ , -- , += , - = , *= , /= , %=  
Phép toán logic ==, !=, && , ||, ! ,> , < , >= , <=  
Phép toán trên bit : & , | , ^ , << , >> , ~  
Phép toán điu kin : ? :  
Cách chuyn đổi kiu: (Kiu Mi)  
1.1.8. Qui cách đặt tên trong Java  
Tên hng, tên biến, tên lp, tên phương thc , ... được đặt tên theo qui tc bt buc  
sau:  
Tên phân bit gia chhoa và chthường.  
Dùng các chcái, ký ts, ký t_ và $.  
Không bt đầu bng ký ts.  
Không có khong trng trong tên.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
17  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
Để chương trình ngun dễ đọc, dtheo dõi người ta còn sdng quy ước đặt tên sau  
(không bt buc):  
Tên lp:  
o Các ký tự đầu tiên ca mt từ được viết hoa,  
o Các ký tcòn li viết thường.  
o Ví d: lp Nguoi, SinhVien, MonHoc, String, InputStream,  
OutputStream. . .  
Tên biến, tên hng, tên phương thc:  
o Từ đầu tiên viết thường.  
o Ký tự đầu tiên ca tthhai trở đi được viết hoa.  
Ví d: ten, ngaySinh, diaChi, inTen(), inDiaChi(), getInputStream(), . .  
.
Vtrí đặt du { và } để bt đầu và kết thúc các khi như sau:  
if (condition) {  
command1;  
command1;  
} else {  
command3;  
command4;  
}
1.2. Chương trình ng dng kiu Application  
Java là mt ngôn ngthun đối tượng (pure object). Tt ccác thành phn được  
khai báo như hng, biến, hàm thtc đều phi nm trong phm vi ca mt lp nào đó.  
Mt ng dng trong Java là mt tp hp các lp liên quan nhau, bao gm các lp trong thư  
vin do Java cung cp và các lp được định nghĩa bi người lp trình. Trong mt ng dng  
chcó mt Lp thc thi được. Đây là lp đầu tiên được xem xét đến khi chúng ta thc thi  
ng dng.  
Lp thc thi được này có các đặc đim sau:  
Có tên lp trùng vi tên tp tin cha nó.  
Phi khai báo phm vi là public  
Có cha phương thc:  
public static void main (String args[]){  
. . .  
}
là phương thc được thc thi đầu tiên.  
Nếu nhiu lp được định nghĩa trong mt tp tin, chcó mt lp được khai  
báo public.  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
18  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.2.1. Chương trình HelloWorld  
Trong ví dnày, chúng ta viết mt chương trình ng dng in ra màn hình dòng chữ  
"Hello World !". Đây là ng dng đơn gin chcó mt lp thc thi được tên là  
HelloWorld. Lp này được khai báo là public, có phương thc main(), cha trong tp tin  
cùng tên là HelloWorld.java (phn mrng bt buc phi là .java).  
Phương thc System.out.print() sin tt ccác tham strong du () ca nó ra màn  
hình.  
Ta có thdùng bt kchương trình son tho văn bn nào để biên son chương  
trình. Nhưng nhphi ghi li vi phn mrng là .java.  
1.2.3. Biên son chương trình bng phn mm Notepad ca Ms Windows  
Notepad là trình son tho đơn gin có sn trong MS Windows mà ta có thdùng  
để biên son chương trình HelloWorld. Hãy thc hin các bước sau:  
Chy chương trình Notepad:  
o Chn menu Start \ Programs \ Accessories \ Notepad  
Nhp ni dung sau vào Notepad  
public class HelloWorld {  
public static void main(String args[]) {  
System.out.print("Hello World! \n");  
}
}
Save tp tin vi tên HelloWorld.java  
o Chn menu File \ Save  
o Ti ca sSave As hãy nhp vào:  
ƒ Save in: Thư mc nơi slưu tp tin  
ƒ File Name: HelloWorld.java  
ƒ Save as type: All Files  
ƒ Nhp vào nút Save  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
19  
Khoa Công NghThông Tin - Đại Hc Cn Thơ - Giáo Trình Lp Trình Truyn Thông  
1.2.4. Cài đặt bphát trin ng dng JDK  
Chun bbngun cài đặt JDK phù hp vi hệ điu hành sdng (Gisử  
Windows 2000)  
Chy tp tin Setup.exe  
Chn nơi cài đặt, gisD:\jdk1.4  
Đặt biến môi trường  
o PATH = D:\jdk1.4\bin; để có ththc thi các chương trình này tbt  
kthư mc hin hành nào.  
o CLASSPATH = D:\jdk1.4\lib;.; chỉ đến các lp thư vin ca Java trong  
thư mc D:\jdk1.4\lib và các lp ti thư mc hin hành, thhin bng  
du chm( . ).  
1.2.5. Biên dch và thc thi chương trình  
Mca sMS-DOS: Chn menu Start \ Programs \ Accessories \ Command  
Prompt.  
Chuyn vào thư mc cha tp tin HelloWorld.java  
Dùng chương trình javac để biên dch tp tin HelloWorld.java  
javac HelloWorld.java  
o Nếu có li, trên màn hình sxut hin thông báo li vi du ^ chvtrí  
li.  
o Nếu không có li, tp tin thc thi HelloWorld.class được to ra.  
Thc thi chương trình HelloWorld.class  
java HelloWorld  
Trên màn hình sxut hin dòng chHello World!  
Biên Son: Ngô Bá Hùng - Nguyn Công Huy  
20  
Tải về để xem bản đầy đủ
pdf 96 trang Thùy Anh 27/04/2022 7820
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình Lập trình truyền thông", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_lap_trinh_truyen_thong.pdf