hàng
.II.1. Xây dựng hệ thỉng Client/Server
diẻn. iỊu nĂy lĂ kƯt quă c a viẻc quy ừỉc giựa Server vĂ c c Client, chì rò c c phũc vũ mÇ ð Ÿ Ÿ
Server cung cảp cho Client. Hệnh dung cũ thè cho vản ẵỊ nĂy lĂ viẻc quy ừỉc mưt tẻp tin ẵ nh nghỉa giao diẻn vỉi tảt că danh s ch c c ẵđi từỡng mĂ Server cho phắp c c Client gớiÙ Ÿ Ÿ Ÿ
Bank
name : string; address : string;
creatAccount(customer : Customer, accountType : string, openBalance : float) : Account; deleteAccount(account : Account) : void; getAccount() : Account[]; BankServer registerBank(bank : Bank) : void; unregisterBank(bank : Bank) : void; getBank() : Bank[]; Account accountnumber : integer; creationDate : date; getAccountNunber() : string getCreationDate() : date getCustomer() : Customer[]; withdraw(amount : float) : float; deposit(amount : float) : Account; tranfer(other : Account, amount : float) : float;
Customer name : string; securityNumber : string; address : string; getAccount() : Account[]; SavingAccount interestRate : float; getinterestRate : float; setinterestRate(newRate : float) : float; 0..n 1..n 0..n 0..n 0..n
c c y u cãu tữ xa. Mơi ẵđi từỡng tờn tŸ Ơ i mưt danh s ch t n, kièu tham sđ c a kƯt quă tră vỊŸ Ơ ð c a ẵđi từỡng ẵĩ. Sau ẵày lĂ c c bừỉc ẵè xày dỳng mưt ửng dũng theo mõ hệnh Client/Server:ð Ÿ
Bừỉc ẵãu ti n, g i thỳc thi chừỡng trệnh Ơ ă osagen y u cãu nĩ tƠ o ra c c nguy n mạu t p tinŸ Ơ º IDL nh m nh n ra c c giao diẻn chửa trong t p tin băo ẵăm cho viẻc khõng sứ dũng l± º Ÿ º i bảt kỹ giao diẻn sinh ra bới c c y u cãu kh c. Sỳ băo ẵăm duy nhảt nĂy nh m mơ ho v trẽ vĂŸ Ơ Ÿ ± Ÿ Ù thĩi gian khới to y u cãu.Ơ
Bừỉc tiƯp theo lĂ xày dỳng t p tin IDL, ớ ẵày ẵ t t n cho ẵđi từỡng tữ xa vĂ c c tham sđ.º ´ Ơ Ÿ
Khi trệnh bi n d ch IDL hoĂn thĂnh, trệnh bi n d ch IDL g i c c tiƯn trệnh thỳc thiƠ Ù Ơ Ù ă Ÿ
chợng. ãu ra c a trệnh bi n d ch IDL tờn t‡ ð Ơ Ù i ba dng t p tin:º 1. Mưt t p tin header (vẽ dũ: *.h trong Cº ++, *.class trong Java). 2. Client stub (trong Java t p tin nĂy củng cĩ dº ng *.class). 3. Server stub.
Bừỉc cuđi cùng cho ửng dũng lĂ viƯt mơ cho Client vĂ Server. Khi că hai ẵừỡc bi n d chƠ Ù to ra hai ẵđi từỡng gđc, kƯt quă nh n ẵừỡc lĂ mơ c a Client vĂ t p tin ẵđi từỡng Client s ẵừỡcº ð º li n kƯt vỉi thừ viẻn nh phàn ẵè thỳc thi c a Client.Ơ Ù ð
Hình . Các bớc để xây dựng ứng dụng Client/Server.
è cho tr
‡ m lĂm viẻc Client cĩ thè li n kƯt ẵừỡc vĂ gới y u cãu ẵƯn mưt Server, trừỉc ti nƠ Ơ Ơ Client phăi x c ẵ nh ẵừỡc v trẽ c a Server vĂ ẵừỡc sỳ chảp nh n kƯt nđi ẵđi vỉi Client. VảnŸ Ù Ù ð º ẵỊ mảu chđt trong viẻc li n kƯt lĂ lĂm thƯ nĂo ẵè x c ẵ nh ẵừỡc mưt c ch chẽnh x c vƠ Ÿ Ù Ÿ Ÿ Ù trẽ c a Server. VỊ m t lỷ thuyƯt, khi mưt y u cãu ẵừa ra chửa ẵỳng ẵừỡc sỳ nh n biƯt duy nhảtð ´ Ơ º tữ nhiỊu tiƯn tiƯn trệnh trong thừ mũc phũc vũ vĂ y u cãu c c Server thỳc hiẻn y u cãu cuđiƠ Ÿ Ơ cùng tră vỊ mưt kƯt quă chẽnh x c, nhừng ẵiỊu nĂy lĂm cho server giăm tđc ẵư hoŸ t ẵưng vĂ khõng thỳc tƯ. NgoĂi ra, khõng cĩ hẻ thđng mng nĂo ẵ p ửng c c y u cãu nhừ thƯ. Cho n nŸ Ÿ Ơ Ơ viẻc x c ẵ nh chẽnh x c v trẽ server lĂ cãn thiƯt, cõng viẻc nĂy ẵừỡc thỳc hiẻn thõng quaŸ Ù Ÿ Ù hai bừỉc sau ẵày:
1. X c ẵ nh v trẽ c a m y Server.Ÿ Ù Ù ð Ÿ 2. X c ẵ nh v trẽ chẽnh x c c a tiƯn trệnh tr n m y ẵĩ.Ÿ Ù Ù Ÿ ð Ơ Ÿ Mã nguơn Client Trình biên dịch Java Header Client stub Trình biên dịch Java #import Server stub Trình biên dịch Java Mã nguơn Server Trình biên dịch Java #import
file đỉi tượng
Client file đỉi tượngClient stub
Sự liên kết Mã nhị phân
Client
file đỉi tượng
Server stub file đỉi tượngServer
Sự liên kết Mã nhị phân
Server Thư viện khi
thực hiện Thư viện khi thực hiện Trình biên
dịch IDL File định nghĩa
giao diện osagent
Mưt kỵ thu t ẵè ph t trièn cho mơi bừỉc tr n lĂ cãn x c ẵ nh v trẽ c a m y Serverº Ÿ Ơ Ÿ Ù Ù ð Ÿ
mưt c ch rò rĂng. Tuy nhi n vỉi mưt v trẽ m y phũc vũ cho mơi m y y u cãu ẵừỡc x cŸ Ơ Ù Ÿ Ÿ Ơ Ÿ
ẵ nh mưt c ch linh hoÙ Ÿ t b ng c ch xem c c y u cãu kƯt nđi ẵƯn Server nhừ mưt ẵièm cuđi± Ÿ Ÿ Ơ ẵừỡc ẵ ng kỷ t¯ i băng quăn lỷ m y phũc vũ. ờng thĩi ẵ nh sđ ẵ a chì tr n m y phũc vũ ẵèŸ ‡ Ÿ Ù Ơ Ÿ
ẵăm băo viẻc kƯt nđi ẵừỡc g n bĩ vĂ cĩ thè gới thõng b o tră lĩi. Viẻc Server ch n mưt ẵ a° Ÿ ă Ù chì x c ẵ nh nhừ thƯ lĂ nguy hièm vệ cĩ thè cĩ nhiỊu m y cùng x c ẵ nh ẵƯn cùng mưtŸ Ù Ÿ Ÿ Ù ẵ a chì m y Server. Vệ lỷ do ẵĩ mĂ c c ẵièm cuđi ẵừỡc g n mưt c ch linh hoÙ Ÿ Ÿ Ÿ Ÿ t vĂo mưt cỡ sớ dự liẻu c a Server. ièm cuđi ẵừỡc duy trệ tr m mơi m y phũc vũ b ng c ch g i mưt tiƯnð ‡ Ơ Ÿ ± Ÿ ă trệnh ORB osagent nh m ẵ ng kỷ phũc vũ nhừ lĂ c c băn sao thõng tin ẵè ẵ p ửng y u cãu± ¯ Ÿ Ÿ Ơ duy nhảt cho m y kh ch.Ÿ Ÿ
Hình . Xây dựng sự kết nỉi giữa Clien và Server
Khi thỳc hiẻn mưt y u cãu tữ xa, ẵãu ti n server thỳc hiẻn ẵ ng kỷ tƠ Ơ ¯ i băng phũc vũ nhừ lĂ c c ẵièm cuđi. TiƯp ẵƯn server khới tŸ o viẻc ẵ ng kỷ t¯ i thừ mũc phũc vũ. Bày giĩ server ẵơ s n² sĂng chĩ kƯt nđi. Khi cĩ y u cãu client thỳc hiẻn viẻc kƯt nđi ẵƯn server. KƯt nđi ẵừỡc chảpƠ nh n, client gới y u cãu ẵƯn ẵièm cuđi nh m x c ẵ nh v c a server (thõng qua cụng TCP).º Ơ ± Ÿ Ù Ù ð Sau ẵĩ thõng qua ẵđi từỡng ORB gới y u cãu ẵƯn m y server. M y server nh n y u cãu c aƠ Ÿ Ÿ º Ơ ð client stub rời g i ORB ă osagent kièm tra băng ẵièm cuđi x c ẵ nh õ ẵ ng kỷ server ẵè tệmŸ Ù ¯ kiƯm m y ch nh m thỳc thi phừỡng thửc c a server. Ÿ ð ± ð
.II.2. Mô tả thuỊt toán quản lý nhiều bản sao