Tìm Hiểu Về Corba

Embed Size (px)

Citation preview

  • 8/10/2019 Tm Hiu V Corba

    1/252

    1

    TM HIU V CORBA

  • 8/10/2019 Tm Hiu V Corba

    2/252

    2

    CHNG 1:

    TNG QUAN V CORBA

    CORBA , vit tt t Common Object Request Broker Architecture, c xy dngnhm pht trin h thng hng i tng rng ri.

    CORBAcho php cc ng dng giao tip nhau m khng cn bit v tr v ai to ra.

    ORBl phn trung gian to kh nng cho cc mi lin h gia client/serverthngqua nhng object. Bng cch s dng ORB, clientc th gi mt phng php trn objectservermt cch thng sut m object c th trn cng mt my hay trn mng mytnh. ORB chu trch nhim tm kim object m c th hin thc cc yu cu, truynthng s, gi phng php ca n v tr v kt qu. Clientkhng cn phi bit v tr caobject, ngn ng hin thc, h iu hnh hay bt k kha cnh h thng no khc mchng khng phi l thnh phn ca giao din object. ORB, cng vi cch nh th, cungcp kh nng ni tng tc gia cc ng dng trn cc my tnh khc nhau trong vincnh ca mi trng phn b v nhiu h thng.

    Trong lnh vc client/server c th, nhng nh pht trin dng cch thit k vchun ring ca mnh to ra mt protocol dng chung gia cc thit b. Vi mt ORB,protocolc nh ngha vi nhng giao din ng dng thng qua vic c t khng phthuc ngn ng hin thc n,IDL. ORBcho php pht trin hon thin nhng c cu c xy dng sn. n gin da vo nn tng CORBA , nhng nh pht trin lp mhnh cu trc tha k s dng cng mt loiIDLm h dng to ra object mi, sau vit on m nhm dch gia bus chun v giao din c sn.

    I/ CORBA:Kh nng tng tc (interoperability) ca cc object:

  • 8/10/2019 Tm Hiu V Corba

    3/252

    3

    Trong CORBA, mt objectcung cp cc dch v m cc dch v c biudin trong mt "contract"gia object v phn cn li ca h thng. Bng "contract"nhm:

    + Cho cc clientkh hiu ca dch v m object cung cp bit bng cch no xy

    dng thng ip gi cc dch v.

    + cu trc giao tip bit dng format tt c cc thng ip m object nhn vgi.

    Mi object cn 1 handleduy nht m client c th qua tm ra thng ip truyncho n. Chng ta khng gi n l mt a ch-nhng object gi cng mt handlekhi dichuyn sang v tr khc. Ta xt handlenh loi a ch nh hng trc t ng.

    Nh vy, mi trng mng tnh ton ca chng ta l:

    - Mi nt l mt object c interfacec nh ngha tt v c nh danh bimt handle duy nht. Thng ip truyn ti gia objectnhn v ch; objectch cnh danh bi handle ca n v dng thng ip c nh ngha trong interface minterfaceny c bit n h thng.

    II/ OMA: (Object Management Architecture)

    CORBAch lin kt cc object nhng khng lin kt cc ng dng. Mun th,OMGcung cp iu trong OMA_ phi da trn CORBA.

    Nhng objectng dng mc d khng c chun ha bi OMGnhng s truyxut cc dch v v cng c ca CORBAthng qua nhng interface chun nhm cung cpnhng li im cho ngi cung cp v ngi s dng cui cng m khng cn quan tmn nhngplatformpha di.

    Da trn kin trc CORBA, OMAc t mt tp nhng hm v interface chuncho tng c cu. Vic hin thc interfacev cc chc nng ca cc nh cung cp khcnhau ng dng ln mng li ca khch hng nhm cho php pht trin thm nhng tnhnng t nhng modulemua c (hoc pht trin thm cho chnh mnh).

    CORBAservices cung cp chc nng c bn m hu nh objectno cng cn:dch v chu k sng (lifecycle) ca object (nh copy v xa), dch v t tn v th mcv nhng ci c bn khc...

    Ti v tr m CORBAservices cung cp nhng dch v cho objectth cng chnh lni CORBAfacilities cung cp nhng dch v cho cc ng dng. Kin trcCORBAfacilities gm hai phn horizontalv vertical.

    Nh vy, OMAl kin trc gm 4 phn:

  • 8/10/2019 Tm Hiu V Corba

    4/252

    4

    + C cu nn tng: ORB

    + nhng dch v thm c dng bi nhng nh pht trin ch yu nhm qun lnhng objectphn b.

    + nhng dch v c s dng chung cho nhng ng dng khc nhau v,

    + nhng ng dng phn b ca chnh chng.

    III/ Nhng li ch ca CORBA:

    Cho nhng nh pht trin:

    + CORBAl mi trng duy nht cho php chng ta tn dng tin li nhng cngc m chng ta muac t phn cng n nhng phn mm pht trin. ( cn mt kintrc c th thc thi trn tt c cc h thng mng vplatformphn cng).

    + M hnh hng i tng : to iu kin thun li cho vic thc thi trn mitrng phn b i tng

    + Cung cp cho chng mt giao din IDL v tng mng ca on m "wrapper";v c tha hng nhng ng dng k tha trong mi trng CORBA.

    + CORBA to nng sut cao nht cho nhng nh lp trnh (CORBAservices vCORBfacilities).

    + Codec ti s dngbng 2 cch: dng nhng ng dng ti kin thit nghoc mi; hoc b sung thm nhng thng tin trn nhng objectstn ti sn...

    Cho nhng ngi s dng: mt ng dng CORBA/OMAl mt tp hp ng ccc cu hin thc client v i tng, c lp cuhnh v kt ni trong thi gian thc thi

  • 8/10/2019 Tm Hiu V Corba

    5/252

    5

    gii quyt nhng vn . Ni chung l phi tng hp nhng thnh phn cc platformv OSkhc nhau.

    IV/ OMG: (Object Managenent Group):

    L s kt hp ca nhiu cng ty my tnh c lin quan.

    mt ci chun c s dng, chun phi tn ti nh mt hin thc tri quanhiu giai on pht trin v nhu cu chung => c s hnh thnh OMG ....

    CHNG 2:

    TNG QUAN V K THUT

    I/ CORBA v OMA:

    ClientClient

    Object

    Implementation

    IDL

    Stub

    IDL

    Skeleton

    Request

    Object Request Broker

  • 8/10/2019 Tm Hiu V Corba

    6/252

    6

    Request truyn t Clientn object implementationtrong kin trc ca CORBA:

    + CORBAi hi mi giao din ca object c c t trong OMG IDL. Clientch c th ly c giao din ca i tng m khng bao gi thy c chi tit hinthc no.

    + Mi yu cu ca i tng CORBA c truyn ti ORB: dng ca yu cu lging nhau d object l localhay "remote". Chi tit v s phn b lu trong ORBni mchng c iu khin t phn mm m ta mua, ch khng phi t phn mm ta xydng. on m ng dng tp trung vo vn cn gii quyt

    OMAnh ngha cu trc chung ny (hnh). CORBAservices cung cp nhng dchv mc h thng ny m hu ht h thng hng i tng u cn; trong khiCORBAfacilities cho php vic truy cp da trn chun cc d liu chung v chc nngcn thit.

    II/ CORBA object:Mt object trn mi trng CORBA (3 phn quan trng ca object l : tnh ng

    kn, tha k v a hnh).

    III/ OMG IDL:

    Trong CORBA, mt giao din c nh ngha trong OMG IDL. Vic nh nghagiao din nhm c t nhng tc v m object chun b thc thi, cc thng s nhp xutm cc tc v i hi, v bt k "exception"no pht sinh trong qu trnh x l.

    i vi ngi s dng, interface(c vit trong OMG IDL) thc hin li ha:Khi client gi mt thng ip hon ho ti interface, p ng s tr v. Cn i vinhng nh hin thc i tng, interfacetng trng cho ngha v: ngi phi hinthc tt c cc tc v c c t trong interfacebng mt ngn ng no .

    1/ Xy dng object CORBA:

    Vic u tin l phi tm hiu chnh xc i tng s lm g v v y lCORBA objectnn vic k tip l nh ngha interfaceca n trong OMG IDL.

    2/ Thc hin vic la chn:

    S chun ho cho php nhng s la chn quan trng ( nh ngn ng lp trnhdng hin thc,platformhoc h iu hnh m n thc thi, ORB kt ni, thc thi localhay remote,... ) c di li cho n nhng phn sau ca qu trnh pht trin. TrongCORBAtt c nhng g m cc nh pht trin client cn phi bit l s nh ngha IDLinterfacev tt c nhng g m object s lm.

    3/ Chn ngn ng hin thc:

  • 8/10/2019 Tm Hiu V Corba

    7/252

    7

    Ta cn xt hai vn : tnh thch hp v tnh kh thi

    Ngn ng lp trnh thch hp l ngn ng p ng c nhng g ng dng ca tacn, ch s dng ngun ti nguyn m chng ta sn c, v ta v i ng lp trnh hp tc

    c th hc hoc bit v n.

    V tnh kh thi, chng taphi kim tra cc ORBc kh thi vi nhng platformphn cng m ta d nh thc thi trn n

    i vi mi ngn ng lp trnh chnh, nh x ngn ng theo chun OMG c tkiuIDL, phng php gi, v nhng kin thit khc chuyn vo trong cc cuc gi hmbng ngn ng lp trnh. Nh hnh 2.2 m t, chnh l cch IDL skeleton v objectimplementationlm vic vi nhau.

    V vic nh x ngn ng l chun ca OMG, mi trnh bin dchIDLca cc nh

    cung cp u to ra cng mt tp cc cuc gi hm t file IDLc giao. iu ny mbo rng, d chng ta ORB ca nh cung cp no cho ngn ng c th, objectimplementation truy cp skeleton cng mt c php. Nu chng ta thc hin trn ccORBca nhiu nh cung cp, code chuyn t ORB ny sang ORBkhc.

    4/Kt ni ti ORB:

    Hai kha cnh ca implementation skeletontri ngc nhau:

    Vic kt ni ti client, c qun l bi OMG IDL, c chun ho; cn kt niORBtrn kha cnh khc th thuc v ngi ch; iu ny gip cho nh cung cp p ngnhng nhu cu ca khch hng.

    V giao din ca ORB_skeleton thuc v ngi ch nn ORB v trnh dch IDLphi cng mt xut x. Chng ta phi s dng trnh dchIDLvi ORB km theo:skeletont nh cung cp A s khng tng thch vi ORBt nh cung cp B.

    IDL

    Nh lp trnhtham kho nh xngn ng OMG

    nh x ngn ng OMG cxy dng trong

    trnh bin dch IDL

    c nh

    chn ngn ng lptrnh

    IDL

    Compiler

    Object Impl

    code

    Skeleton

    code

  • 8/10/2019 Tm Hiu V Corba

    8/252

    8

    Tm li v mc ch ca vic hin thc i tng: chng ta bt u vi vic nhngha giao dinIDLhu dng vi bt k ngn ng lp trnh v ORB no. Chng ta c thdng trnh dch IDLc km theo vi ORB to ra skeletonm c th kt ni viORB chn sau khi nhp vo IDL file. Tnh nng c th tch hp (c m bo binh x ngn ng chun)cho php chng ta bin dch bng trnh dch IDLca nh cungcp khc v to raskeletonbng cng cc cuc gi hm, nhngstub th kt ni vi ORBca nh cung cp mi.

    IV/ ORB:

    nh ngha v ORB c xt qua. Hin ti, ta cn xt n nhng kha cnhkhc:

    Trong cu trc, ngi ta khng i hi ORBphi hin thc nh nhng thnh phnn m n c nh ngha nh nhng interfacestrc thuc n. Bt k s hin thc ORBno cng cung cp nhng giao din thch hp chp nhn c. Interfacec t chctrong 3 loi sau:

    + Cc tc v l nh nhau i vi tt c s hin thc ORB.

    + Cc tc v ng vi nhng kiu c th ca object.

    + Cc tc v tng ng vi nhng phong cch hin thc object cth.

    Nhng ORBkhc nhau chn cch hin thc khc nhau. Khi hai ORB lm vicchung vi nhau, nhng ORB phi phn bit nhng tham chiu object (OR) ca chng.

    Bin dch v link Bin dch v link

    Client Object

    Stub Skelet

    ORB

    Hnh 2.2 Vai tr ca chun ha nh x ngn ng OMG.

  • 8/10/2019 Tm Hiu V Corba

    9/252

    9

    Nhn (Core) ORBl mt phn ca ORBcung cp s hin din c bn ca nhngobject v s truyn thng ca cc requests. CORBAc thit k nhm h tr nhng ccu objectkhc nhau v CORBA cng cu thnh ORBvi nhng thnh phn pha trn"ORB Core"(n cung cp nhng interfacesnhm c th che i nhng s khc nhau gia

    nhng ORB Cores).

    1/Nn tng cho kh nng tng tc qua li:

    Mc tiu ca chng ta l s dng mt "web" ca ORB -ORB to kh nngtng tc qua li gia tt c i tng CORBAtrn mng. Hai vn ny sinh:

    - Location: nh a ch cho invocationn object implimentationnh th no.=> gii quyt: object reference.

    - Translation: invocationm chng ta gi i c dch sang dng format khc

    nh th no v p ng tr v ra sao.=> gii quyt: IDL.

    2/ Object reference:

    Mt OR l thng tin cn thit c t object trong ORB. Hai ORBimplementation c th chn cch th hin cho OR khc nhau. S th hin ca ORcch kh thi (valid) trong thi gian sng ca client.

    Mi object CORBA trong h thng u c object reference(OR) caring n m khng quan tm n thi gian sng ca object; c gn bi ORBca n lcto ra object v vn cn valid cho n khi object b xa i mt cch tng minh. Clientlu gi nhng ORbng nhiu cch khc nhau, v giao tip vi chng bng yu cu phthuc vo nh x ngn ng ang dng. S giao tip ny to kh nng cho ORBgi trctip n object ch c c t.

    Client c th lu tr nhng tham chiu ca mt object trong mt file hay mtdatabase. Sau , khi client ly tham chiu ra, OMA i hi cuc gi phi c thc thimt cch hon ho ngay c khi object ch b xa trong thi gian qu (nhng khngng khi object b xa mt cch tng minh). iu ny c ngha l ORkhng n ginch l a ch networkhay b nh ca object. Nhng tiu chun OMGcho php mi nhcung cp ORBhin thc cch dch ORsang object ch thc s c xem l tt nht ivi h thng v nn tng ca khch hng.

    iu bt buc l ORBno cng phi hiu c mi OR mi lc. V bt k mtng dng dng ORBno trn network cng c th ly cc ORv truyn cho ORBcachnh n nhm gi object.

    V v th, ORng vai tr rt quan trng trong vic cho php user s dng tinguyn trong h thng phn b tri rng.

  • 8/10/2019 Tm Hiu V Corba

    10/252

    10

    V chng ta ang ng v tr l ngi s dng ORBthay v l ngi to ra ORB,khi nim ca OR cho php chng ta nh hng trc: ta c th truyn ORn ORB, vORB truyn php gi n object ch. V nu nh chng ta ang truyn hay ang nhnORnh mt thng s th ORBch quan tm n nhng chi tit khng lin quan n v trv qung ng truyn ti ca OR.

    3/ IDL vORB:

    ORBquan tm n nhng chi tit nh lin kt nhng nhm platformvi nhngdng format khc nhau. ORBcn mt cng c thc hin: l OMG IDL.

    CORBA i hi phi lu tr v nh ngha IDL ca tt c cc objectca n trongIR (Interface Repository). Tp hp nhng nh ngha giao din ny l ti nguyn quantrng trong h thng phn b.

    IDL cn phi hu dng i vi client, object implementationv cc tin ch khc.

    Thun li ca IR trong vic lin kt ORB: Bit c kiu v th t lin kt cacc s trong thng ip to kh nng lin lc gia cc ORBnhm chuyn i th tbyte v dng format d liu bt k ni no cn thit. Li ch chnh ca vic s dngIRlDII (Dynamic Invocation Interface).

    4/ DI I : (Dynamic I nvocation I nterf ace)

    gi mt tc v trn object, clientphi gi v, c lin kt tnh vi stub tngng. V nhng nh pht trin xc nh nhng stub no cha trong client m h vitcode ca n nn interfaceny (SII) khng th truy xut nhng object va thm vo hthng.

    Nhng ngi s dng cp cao (phc tp) mun s dng object mi sau khi hc cung cp thm bt k ORBtrn mng m khng phi i hoc ci t phn mi chosofware ca clienttrn desktop.

    DIIcung cp kh nng ny v n c "built in" cho mi ORB tun theo chunCORBA. Ti thi im thc thi,DIIcung cp cho client:

    + Tm thy objectmi.

    + Tm thy nhng interfaceca chng (nhng object mi).

    + Ly ra nhng nh ngha v interfaces.

    + To v pht ra php gi.

    + Nhn p ng kt qu hoc thng tin "exception".

  • 8/10/2019 Tm Hiu V Corba

    11/252

    11

    DII tht ra l mt ORB interface c nh ngha trong IDL m n bao gmnhng gii thut tm ng nhm cho php client v ORBxy dng v gi nhng tc vca bt k object no khi chng ln vic chung vi nhau v ang s dng nhng nhngha interfacestIR.

    Bng cch no m client c th bit objecthay interfaceno m client mun lytIR? V d, ti thi im ci t, nhng objectmi c th to ra cc ng nhp vo filem clientbit c, lit k tn interfaceca chng vi nhng thng tin ph mclient cth display trong mt menu; iu ny cung cp cho user thng tin cn thit chn objectv client vi thng tin cn thit ly nh ngha interface t IR. Nhng phng cchchun dng tm thy nhng object trong h thng phi k n Naming v Traderservices.

    Nhng tin li khi s dngDII:

    + Client khng cn phi bit nhng interfaces ca server trong thi gian bin

    dch; tht ra nh ngha interfacethm ch khng cn tn ti ti thi im m client cbin dch. iu ny to kh nng linh ng hu hiu cho nhng ng dng dngDII.

    + DIIcung cp nhiu option cha nhng thng s tr v t mt tc v. ngdng client c th tr v kt qu mt cch bnh thng, gi tc v v dng ng cnhone_wayhay lu vo kt qu. Nhng option ny to tnh linh ng trong nhng ng dngDIIhn l trong nhng phn thc hin php gistatic.

    Nhng bt li khi s dngDII:

    + Nhng ng dng dngDIIthng phc tp hn nhng ng dng tng ng khis dng client stub(tnh). Bi v mt php gi tc v dng DIIphi truyn tng i smt trong mt thi im, gi tc v v nhn tng i s tr v mt => cng vic t nhtv thng gy ra qu trnh error_prone.

    +Trong khi kh nng kim tra kiu c xy dng trong c cu gi hm tnh, thi vi nhng php gi tc v trongDIIl khng cn thit.

    + V tng i s mt truyn tng thi im, nn chi ph thm s pht sinh.

    + V chi ph pht sinh thm nn client ca DII phi tha hip vi server trongtrng hpclient cn cp mt hay nhiu interface.

    V/ Kh nng tng tc trn nn tng CORBA:

    1/ Truy xut mt object t mt ORB t xa:

    Client Object

    Stub Skel

    ORB 1

    Client Object

    Stub Skel

    ORB 2

  • 8/10/2019 Tm Hiu V Corba

    12/252

    12

    Kh nng tng tc trong CORBA da trn mi lin lc ORB-ORB.

    Clienttruyn cuc gi thng thng da trn IDLn ORBcc b. Nu cuc gicha OR ca object implementationcc b, ORBtm ng gi n n object ch; nukhng c th ORBtm ng cho php gi n ORBt xa. Sau , ORBt xa tm ngcho php gi n object ch.

    ORBs qun l tt c nhng chi tit ca cuc gi: gii quyt ORcho ORBt xav object; chuyn i th t bytev dngformat ni cn thit.

    Mi ORB phi lu tr t nht l hai c s d liu hoc hai h thng th mc: IRvi tp cc nh ngha interface v implementation vi nhng thng tin v objectimplementation. Nhng chi tit truyn thng phi c ng b ha nh nhng ORBprotocolphi lin kt hoc nhnggatewaysphi chuyn i gia chng.

    Nhng chi tit v implementationphi c quan tm bi nhng nh hin thcORB. Quyt nh v nhng protocolc lin quan s nh hng n nhng nh qun trmng

    2/ T hp thnh phn i tng mua:

    Clientv object implementationc th:

    + trn cc ORB ca nh cung cp khc.

    + Trn nhngplatform khc nhau.

    + Trn h iu hnh khc.

    + Trn h thng mng khc.

    + V c vit di dng ngn ng lp trnh khc nhau.

    Tt c nhng g nh lp trnh cn vit client truy cp nhng objectt xa l bnsao caIDL fileca n, m t nhng vic m tng tc v phi thc hin v m t OR.

    Tin trnh c m t trong hnh. Khi chng ta mua phn mm, chng ta nhnc c hai object implementation c th thc thi v mt file IDL t nh cung cp. Ci

  • 8/10/2019 Tm Hiu V Corba

    13/252

    13

    t objecttrn ORBtrnserver modem n s trc thuc. Tin trnh thc hin sinh ra OR.

    Khi ta vit client, di chuyn n phn development platformv khng nht thitphi cng platformhay ORBang thc thi object implementation. Chng ta khng cn

    quan tm n ngn ng m nh cung cp dng vit object m chng ta mua. Chng tac th vit client bng bt c ngn ng no m chng ta mun, v vy hy chn trnh dchIDLh tr c mi trng pht trin chng ta cn. S dng client stubtruy xut ORBttrong on m client, tNaming servicevfilelu tr, chng ta ly ra ORv dng n gi nhng tc v ca objectm chng ta mua bt cni no m n trc thuc.

    Hnh 2.5 : Pht trin mt object trong mi trng phn mm

    t ngi bn

    Khng dng

    Np vdch

    Desktop Server

    IDL Object

    Bin dchlink

    Client

    code

    - - - - -- - - - -

    Client Object

    ORB ORB

    t ngi bn

    Ci t

    Skeleton

    codeStub

    code

    Stu

    Skel

    c vit bingi lp trnh

  • 8/10/2019 Tm Hiu V Corba

    14/252

    14

    3/ Phn b client v object:

    Qu trnh ng kha cnh client ging nh c trnh by trn.

    Qu trnh hin thc objectc thc thi tun t trn platformpht trin server,

    lu trskeleton IDLv xy dng on m c th thc thi vi n.

    Khi hai thnh phn hon thnh v register vo ORB c lin quan th client cth ly ORt naming servicehay bt k nino m n lu tr; v gi nhng tc v trnobject bng cch truyn cuc gi ti ORBcc b ca n.

    VI/ Kin trc qun l i tng: (OMA)

    Phi c mt ngn ng chung cho tt c cc ng dng hoc l chng ta khng thnhn ra tt c cc phn mm thnh phn plug_and_play. Ngn ng chung chnh lOMG's OMA. OMA nh ngha mi trng m ni kh nng tng tc thm nhp ln

    t mc h thng vo nhng thnh phn ng dng.

    - Cu trc ca OMA:

    Ta c th phn chia h thng ra lm 4 tng lp, v tr ca mi thnh phn khngtng ng vi s kt ni ca chng (v mi th u kt ni vi ORB) v cng khngtng ng chnh xc vi cch nh thi gian. y, v tr tng ng vi vic mi thnhphn c tnh c bn nh th no; vic thit k tng thp hn s nh hng n vic thitk ca tng cao hn mc d chng ta khng nht thit phi hon thnh tt c nhng thnhphn thuc tng c th no trc khi bt u lm vic vi nhng thnh phn ca tngcao hn.

    UserInformation

    ManagementSystem

    Mana ementTask

    Mana ement

    Healthcare Financial etc..

    ApplicationObjects

    CORBAfacilitiesVertical CORBAfacilities

    Horizontal CORBAfacilities

    Hnh : OMGs Object Management Architecture:

  • 8/10/2019 Tm Hiu V Corba

    15/252

    15

    HNH :Tng quan v CORBA v OMA:2.6

    Users

    Application Object: S cnh tranhv i mi cp ngdng

    CORBAfacilities: Thao tc v lu tr d liu cp ngdng

    CORBAservices: Cc dch v cn bn cho

    ng dng hngi tng

  • 8/10/2019 Tm Hiu V Corba

    16/252

    16

  • 8/10/2019 Tm Hiu V Corba

    17/252

    17

    CHNG 3:

    GII THIU V OMG IDL

    i vi nhng n lp trnh, t nht chng ta cng cn ti liu km theo vi snphm ORB chng ta chn; xy dng ORB, chng ta phi c nhng c t OMG chnhgc.

    OMG IDL(IDL: Iterface Definition Language) l ngn ng dng m t nhnginterface m client object gi v do object implementations cung cp. Mt nh nghainterfacec vit trong OMG IDLnh ngha interfacev c t nhng thng s catng tc v mt cch y . Mt OMG IDLinterface cung cp nhng thng tin cn thitcho vic pht trin nhng client s dng cc tc v ca interface. Vic nh x khi nimOMG IDL ti ngn ng lp trnh ca clientty thucvo cc cng c sn c trong ngnng ca client.

    I/ S tun theo chun CORBA:

    1/ CORBA core:

    Tt c nhng sn phm ca CORBA phi tun theo nhng c t ca CORBAcore; gm:

    - M hnh i tng CORBA .

    - Kin trc CORBA.

    - C php v ng cnh OMG IDL.

    v nhng thnh phn ORB sau:

    - DII.

    - DSI (Dynamic Skeleton Iterface)

    - IR (Interface Repository).

    - ORB interface.

    - BOA (Basic object Adapter).

    Ngoi ra, sn phm ti thiu cng phi h tr:

    - Mt nh x ngn ng.

  • 8/10/2019 Tm Hiu V Corba

    18/252

    18

    Nh cung cp khng nht thit phi cung cp trnh dch cho bt k ngn ng lptrnh no; tuy nhin trnh dch cho mi ngn ng c chun ha phi ph hp vi nhnhiu km theo.

    2/ Nhng im tun theo CORBA b sung:

    Kh nng tng tc CORBA l mt im bt buc ring r, ngha l khng phitt c ORB tng tc. minh chng cho s bt buc ca kh nng tng tc CORBA,mt ORB phi cIIOP protocol( Internet Iter_ORB protocol) t nhin hoc thng quahalf_bridge, cng c th s dng DCE CIOP ( Distributed Computing EnviromentCommon Iter_ORB protocol).

    Mi CORBAservice l mt im s tun theo c tnh cht ring.

    3/ c t mi trng CORBA:

    Danh sch cn c c t gm:

    -

    CORBA core.

    - Rng buc ngn ng.

    - Kh nng tng tc CORBA, gm IIOP c i hi.

    - DCE ESIOP (ESIOP:Enviroment specific inter_ORB protocol).

    - CORBA service (mt trongcc loiservicengoi tr Traderv Sercurity).

    - Hai CORBAservice quan trng (l Trader v Sercurity Service).

    - Mt CORBAfacilitytng lai: l s hin th v qun l ti liu phc(Compound Document Management and Prsentation).

    Trong , ta lu n khi nim context obbject:

    Context object cha mt danh sch cc cp tn_tr c gi l cc tnh cht.Context objectstng ng CORBA trong mi trng UNIX hoc PC-DOS.

    (Addition):

    Mt c t OMG IDLgm mt hoc nhiu file. Mi file c dch trong nhiugiai on. Giai on u tin l tin x l, l giai on thc thi "file inclusion"(#include...) v s thay th macro.

    Mc ch chnh s dng nhng cng c tin x l gm lun nhng c t caOMG IDLkhc. c t OMG IDLgm nhng nh ngha kiu, nh ngha hng, nhngha "exception"hoc nh ngha v module.....

  • 8/10/2019 Tm Hiu V Corba

    19/252

    19

  • 8/10/2019 Tm Hiu V Corba

    20/252

    20

    CHNG 4:

    TM HIU V ORB KHA CNH CLIENT

    I/ Tng quan v ORB v kha cnh Client:Chng ta bit mt request truyn t client thng qua IDL stub, ORB v

    skeletonca object ch, cui cng n object implementationni objectc thc thi vkt qu tr v bng con ng tng ng. Chng ta cng bit rng nh ngha ca ttc nhng giao din trong OMG IDLcho php nhng ORB iu khin tt c nhng chi titca request/reponse, bao gm s phin dch v dng khi client v object ch trn hthng khc nhau; v client c mt OR v object ch, truyn n n ORB km trong miyu cu biu th yu cu ca mt objectc th.

    Hnh 4.1 cho thy 6 interfaces ORBv 8 thnh phn ORB. Hai interfaces ch lin

    lc vi client, hai ci khc kin lc vi object implementation trong khi ORB interfacecung cp service cho c hai. DSI giao tip vi nhng ORB t xa. IR v implementationRepository services c truy xut trc tip thng qua ORB interface v gin tip tnhng php gi tc v thng qua DII v SII.

    Client truyn request ti ORB thng qua IDL stubtnh (SII) hoc DII. Mt s skhc bit quan trng gia SII v DII. im khc bit chnh l DII cho php chng ta lachn kiu tc v v object ti thi im thc thi, trong khi SII i hi phi la chn trongthi gian bin dch. Nm na, DII cho php nh kiu ng cn SII cho php nh nghatnh.

    Ngoi ra:-

    V s rng buc ng nn DII khng th kim tra kiu trong thi gian bindch trong khi th SII c th.

    - ORB i hi tng stubring cho tng interface tnh, nhng ch cn mt DIIinterfacec cung cp bi ORB chnh n.

    - Nhng cuc gi SII thng ng b nhng DII c gi trong mode hocng b, hoc bt ng b hoc ng b tr hon.

    ORB interfacescung cp s truy cp ti IR v implementation Repositoryv mtvi tc v trn nhng tham chiu objectm ch c ORB c th thc hin.

    Ta xt s c th sau:

    Hnh 4.1 Cu trc ca ORB

  • 8/10/2019 Tm Hiu V Corba

    21/252

    21

    Clients Object Implementations

    Dynamic

    Invocation

    Interface

    (DII)

    Static

    IDL

    Stubs

    (SII)

    ORB

    Interface

    Object

    Adapters

    Static

    IDL

    Skeletons

    Dynamic

    Skeleton

    Interface

    Object Request Broker

    Interface Repository Implementation Repository

  • 8/10/2019 Tm Hiu V Corba

    22/252

    22

    CHNG 5:

    TM HIU V ORB KHA CNH SERVER

    I/ Kch hot Server v gi object implementation:

    Kha cnh Server ca ORB phc tp hn kha cnh Client nhiu. nhng nh xydng object phi vit on "code" tip xc vi ORB trong sut trng thi "startup vshutdown", "saving v restoring".

    BOA (Basic Object Adapter) h tr mt s cu hnh khc nhau ca server vobject implementation: Qu trnh server tch bit vi ORB, trong n thc thi mt s hinthc object ring bit.

    Vi kha cnh client, chng ta ch gii quyt vn s hin thc objects; mi mts hin thc object cho mt interface trong module ca IDL. Nhng trn kha cnhobject, chng t c th thy c cu trc hin thc; v BOA c trang b x l nhngi tng nhm li trong nhiu cch khc nhau. Mt qu trnh n c gi l mt servertrong nhng c t OMG ang chy mt s object, mi mt ci cho mt interface.

    Hnh trn cho thy cu trc ca BOA v s tng tc gia BOA v ObjectImplementation. BOA s khi ng mt chng trnh cung cp Objectimplementation mt server (1). OI (Object implementation) cho BOA bit rng n vahon thnh vic khi to v bt u iu khin request (2). Khi yu cu u tin caobject n, OI "activate" object (3). Sau , BOA gi tc v tng ng skeleton tnginterface(4). Ti nhng ln khc nhau, s hin thc truy xut nhng service BOA nh toobject, deactivation ....(5)

    Hoc chi tit hn, ta c th xt mt chui cc tc v c th:

  • 8/10/2019 Tm Hiu V Corba

    23/252

    23

    Xem hnh 5.1: din t mt lot cc tc v trong trng hp chng ta

    1 ORB nhn yu cu hng ti mt i tng trong server. ORB kim tra IR ca n vxc nh khng c server cng nh khng c i tng hin hot ng.

    2. ORB kch hot server bng vic dng ni ph thuc h thng. Nh mt phn ca qutrnh kch hot, server c truyn thng tin m n cn lin lc vi BOA. ORB tmthi gi cuc gi ban u ti object.

    3. Server gi impl_is_ready trn BOA, BOA bit rng server sn sng kch hot object.

    4. BOA gi thng trnh kch hot i tng ca server cho i tng mc tiu bngvic truyn OR cho server, server kch hot object. Nu i tng c kch hot vtr trng thi ca n b nh bn vng, thng tin c ly li v phc hi trng thitrc. Kha cho s ct gi bn vng cho i tng c duy tr bi BOA kt hp viOR v c ly li bi object khi khi ng bng get_id .

    5. BOA truyn cuc gi n i tng qua skeleton v nhn p ng gi li client.

    6. BOA c th nhn thm cc yu cu trn i tng truyn qua skeleton bc (5).Cng c th nhn thm cc cuc gi object trong server bc (4) v sau qua bc(5) cho mi object mi.

  • 8/10/2019 Tm Hiu V Corba

    24/252

    24

    7. Server c th quyt nh shutdown mt object v l do no (user yu cu...). utin n gi thng trnh BOA deactivate_obj bng vic c t object mc tiu, sau BOA s khng gi cc cuc gi ti i tng m khng kch hot li n trc tin. itng ct trng thi ca n vo b nh bn vng trc khi shutdown. 8. Tng t, server c th shutdown ton b. u tin n gi chng trnh BOA:deactivate_impl, bng vic thng tin BOA l n khng sn sng kch hot i tngna. Khi nhn yu cu tip theo, BOA s bt u bc 1.

    II/ Chun ha kha cnh server:

    CORBA khng cung cp lnh cho client khi ng mt OI, client ch gi yu cuv ORB lm tt c mi vic. iu ny khng c ngha l tt c i tng ang hot ng

    2.3.

    4. 5.

    7. 8.

    1.ORBnhn

    cuc gi

    Methodssend response

    Deactivate-

    object deactivate-

    implimpl-is-ready

    Object Implementation

    Activate

    Server ActivateObject

    pass invocation

    Skeleton

    BOA

    ORB Core

    Hnh 5.1 Kch hot, gi, gii hot i tng bng BOA

    6.

  • 8/10/2019 Tm Hiu V Corba

    25/252

    25

    mi lc, s dng cc ti nguyn. Thay cho iu l cc giao din cho php linhhot ORB v nh qun tr h thng c th qun l tt c i tng v ti nguyn.

    BOA c OMG chun ha.

    Khi cc thnh vin ca OMG vit c t BOA nguyn thy, h hnh dung c mthoc vi ORB trong tng h thng v hu ht nhng cuc gi object lin quan n IPC(interprocess communication) v th nhng ORB nh (c gng gim thiu nhng thngtin d tha) tr nn ph bin; ngha l s kt ni client_ORB lun lun cc b, nhanh vhiu qu.

    Nh vy, code kha cnh server m n kt ni OI ti OA, s khng lin ktnhng ORB khc nhau; vd nh code trn kha cnh client kt ni ORB v ly ra nhngOR khi to.

    III/ Cc thnh phn kha cnh server:

    Ta xt on code trong OI m n lm vic vi ORB v OA nhm cung cp nhnghm qun l.

    OA cung cp nhng interface gia ORB v object cho php ORB chun b object nhn mt request v cho php nhng object bo cho ORB bit chng sn sng nhn(hoc cha) x l request. Thnh phn ca OA gia ORB v cc object ti v tr nhngservice c cung cp bi nhng ORB khc nhau.

    Hnh 5.2: xt cu trc ORB di kha cnh server.

  • 8/10/2019 Tm Hiu V Corba

    26/252

    26

    "IDL skeleton tnh" l s tng ng kha cnh server ca "client stub", cto ra bi trnh dch IDL ni ORB v OI. C mt skeleton cho tng kiu object.

    ORB dng DII hoc DSI to skeleton i din cho cc objects t xa.ORBkhng c nhng skeleton tnh cho nhng cuc gi t xa v th tc ci t OIchthm vo skeleton vo ORB chnh n, ch khng phi ca client. ORB s to skeletonng truyn nhng cuc gi cho nhng object t xa thng qua ORB ca chnh n.

    Xt n ORB interface (tc v thc hin trn OR). OR c ly di hai dng:mt c th c s dng trc tip trong cuc gi nh ch hay thng s, nhng ch hudng trong phin n c lu tr; dng cn li (gi l chuyn i sang dng chui) vncn hu hiu t phin ny n phin khc v c th c lu tr trong d liu hoc file.

    Object Implementation

    ORB

    InterfaceObject

    Adapters

    Static IDL

    Skeletons Dynamic

    Skeleton

    Interfaces

    ORB

    InterfaceRepository ImplementationRepositoryHnh 5.2:ORB kha cnh server. OIs c th gi tc v ORB c nhngha cho IR hoc nhng tc v OR. OA thc hin giao tip nhm kchhot hoc gii hot object. IDL Skeleton tnh truyn cuc gi n onjectv ngn tr li. Nhng cuc gi DSI thng truyn nhng cuc gi tiORB khc thng qua IPC hoc truyn trn mng, mc d n c th cnh a ch cho nhng object trong ORNB ny (h tr DSI)

  • 8/10/2019 Tm Hiu V Corba

    27/252

    27

    IV/ Cu trc ca OI:

    OI cung cp nhng hnh vi v trng thi thc s ca mt object v mt vi vn b sung thm.

    S xem xt ca OI khng h n gin. Tr nhng server c s dng thngxuyn, hu ht nhng object khng thc thi v lc no cng c kch hot trong giaion m n c th c gi. iu ny lm lng ph rt nhiu ti nguyn trong thc t. Doo, OI, ORBv CORBAservices (nh Persistence) kt hp vi nhau kch hot nhngobject khi cn v cho php chng lu li nhng trng thi v gii hot trong sut thigian khng s dng. S kch hot sau s "restore" trng thi trc khi nhng cuc gic x l v cho client thy rng object lun c thc thi v lu trng thi trongthi gian qu .

    i vi nhng nh hin thc object, thuc tnh ny th hin s bt buc. Khi

    chng ta vit mt object tun theo lut OMA, chng ta phi cung cp cch thc lu trtrng thi ca object khi "shutdown" nhm to iu kin cho object bit v khi phctrng thi m n c khi "shutdown" neu h thng cht v mt l do no . V chng taphi cung cp mt on code c trong trng thi khi u v t cc gi tr ti v trthch hp.

    Chng ta cn phi phn bit r: s to ra object v s kch hot object. S to raobject l ta phi s dng mu mi v mt tham chiu oject mi. Cn nu chng ta sdng nhng tham chiu c sn trong Naming Service hoc Trading Sevice th chnh ls kch hot object.

    Trong khi chng ta to mt object trong qu trnh tch bit vi client, th: Khichng ta ang kt mi vi mi trng chun CORBA: client gi tc v "create" ti"object factory" v tr v OR ca object mi. Object "factory" xy dng object c ththc thi c trong bt k dng g n ly c, vn duy tr nhng thng tin hin thc sau truyn nhng thng tin ny chi Implementation Repository. "Object factory" xy dngmt kha gi l "id" nhm mc ch lu tr lu di object. K tip hoc l n lu trinterface ca object trong IR v nhn mt OR interfacedef hoc l ly ra OR ca interface(khi lu tr). S dng nhng tc v ph thuc vo ORB nhn vo trongimplementation Repository ca object mt OR implementation (chng hn). Khi nhncuc gi, ORB dng nhng thng tin ny kch hot object. "Factory" c th gi tc vBOA "Object create" vi 3 thng tin input: tham chiu interface, tham chiu hin thc vid. BOA v ORB to ra OR lin kt vi bn trong ORB vi 3 thng tin ny v tr v cho"factory"-> tr v cho clients v client c th dng li cho cc cuc gi sau hoc c thtruyn cho client khc dng.

    OI c mt thnh phn cung cp cc chc nng cho object. Phn ny hot ng khiobject c gi thng qua nh x ngn ng. Object khng th xc nh c cuc githng DII hay SII nhng n phi cung cp mt giao din c bit nu nh n mun cgi thng qua DSI.

  • 8/10/2019 Tm Hiu V Corba

    28/252

    28

    V/ OA (Object Adapter):

    OA l cha kha quan trng cho kh nng lu chuyn ca OI.

    Object c cung cp trong nhiu cch khc nhau. Mt vi object s thng trtrong qu trnh ca chnh chng v yu cu kch hot bi ORB trc khi cc object c s dng; mt s khc nm bn trong qu trnh cng vi cc "client" v khng ckch hot; v vn cn mt s khc c qun l bi h thng d liu hng i tng vyu cu mt tp cc services khc nhau bng cch gi ORB. Bng cch nh ngha OAcho tng kiu tng, CORBA cho php bt k ORB no c th hot ng vi tt ccc i tng.

    Cc OA , nh BOA, c nhim v:

    - Lu ghi (register) nhng hin thc.

    -

    To v ch gii cc OR.

    - nh x OR thnh hin thc tng ng.

    - Kch hot v gii hot cc OI.

    - Gi cc method thng qua skeleton hoc DSI v c lin quan n SercurityService.

    C ba loi OA theo OMG:

    1/ BOA:

    BOA l OA duy nht c chun ha bi OMG. BOA c th iu khin mtchng trnh trn method, trn object hoc l mt chng trnh "share" cho nhiu bn cacng mt kiu object, BOA c th cung cp cch lu tr cho nhng object lu di bngkha. Nhng giao din kch hot i tng nh ngha trong c t.

    2/ OA th vin:

    Adapter ny c c bit ha nm trong mt qu trng n truy xut object.

    3/ Adapter d liu hng i tng:(OO Database Adapter)

    Adapter ny kt ni ti d lieu hng i tng truy xut nhng object clu tr trong n.

    VI/ BOA:

    BOA cung cp:

  • 8/10/2019 Tm Hiu V Corba

    29/252

    29

    - To v ch gii OR.- Kch hot v gii hot OI.

    - Kch hot v gii hot nhng object ring r.

    - Gi method thng qua skeleton.

    i vi BOA, server l mt unit thc thi; cn object hin thc mt method hayinterface

    BOA c 4 ch kch hot:

    - Shared server: server c kch hot bi BOA m trong n ko theo nhiuobject kch hot theo.

    -

    Persistent server: ging nh "shared server" ngoi tr server c kch hotngoi BOA v "register" trong th tc ci t.

    - Unshared server: ch c duy nht mt i tng ca hin thc cung cp c thhot ng ti mt thi im.

    Trong , hai ch u ng dng nhiu nht.

    A

    BC

    Basic

    Object

    Adapter

    D

    Start Process

    Register Impl

    Process

    Object

  • 8/10/2019 Tm Hiu V Corba

    30/252

    30

    VII/ IDL skeleton tnh:

    IDL skeleton kha cnh server ng vai tr ging nh IDL stub kha cnhclient. Chng kt ni vi server thng qua nh x ngn ng lp trnh v kt ni vi OAthng qua giao din s hu. Cuc gi truyn thng qua skeleton t OA ti

    implementation v request tr v bng con ng tr v tng ng.

    Ni server thng tr trong qu trnh ca chnh n, skeleton qun l cch truynIPC ang s dng "shared memory" hoc "network"

    VIII/ DSI :

    ORB s dng DSI truyn request ti bt k OI no hoc i din m n c thtip xc trn mng khng ch nhng ci m n ni c thng qua stub tnh.

    DSI cho php hai ORB xy dng cu ni truyn cuc gi n ORB ca object

    t xa v nhn v p ng.

    Cc cu ni DSI ng dng truyn cuc gi object thng qua cc ORB: mt ngvai tr ngi gi cn li l ngi b gi (invokee).

    DSI c ORB dng to mt proxy skeleton cho cc object, thng l t xa,m cc static skeleton ca chng khng b rng buc vi n. Cc ORB thng thiu ccstatic skeleton cho cc cuc gi t xa, v th tc ci t mt OI s gn skeleton ca n chvi ORB ring ca n ch khng phi client. Cc ORB sau s to mt dynamicskeleton truyn cc cuc gi ti object t xa theo ORB ring ca n. DynamicSkeleton c thc dng cho nhiu l do, trong mt l do thng c ch l chocc object cc b c to ng (dynamic) bng vic dng cc script hoc cc ngn ngbin dch.

    CHNG 6:

    CORBA interoperability(Kh nng tng tc trong CORBA)

    I/ Kh nng tng tc trong CORBA:

    Bn vai tr user v kh nng tng tc trong CORBA:

  • 8/10/2019 Tm Hiu V Corba

    31/252

    31

    - S dng nhng object phn b.

    - Chn la, mua, ci t, lp cu hnh, bo qun mng object phn b.

    -

    Vit client v object cho h thng.

    - Nu l nh hin thc ORB th phi vit v kh nng tng tc ORB.

    1/ i vi ngi s dng:

    Kh nng tng tc CORBA l k thut trong sut. Khi chng ta thc thi mt ngdng phn b, chng ta khng th thy v mode "tng tc" hoc giao thc lin lc.

    Nu l user, chng ta khng th "thy" v kh nng tng tc trong CORBA.

    2/ i vi ngi qun tr h thng v nhng khch hng mua ORB:

    Nu l nhng khch hng mua ORB , chng ta phi thc hin cng kiu phn tchv lp cu hnh cho bt k h thng c kh nng tng tc khc.

    Nhng kin thc v kh nng tng tc trong CORBA gip chng ta p ngc nhng nhu cu t user.

    3/ i vi nhng nh lp trnh i tng:

    Trong trng hp ny, kh nng tng tc trong CORBA hon ton trong suti vi nhng nh lp trng i tng. Khi h cung cp mt interface OMG IDL choobject, v tr ca n tr nn trong sut v nhng nh qun tr, ci t c th nh v object bt k u trn mng.

    Nhng cn phi thit k ng dng sao cho ta c th kt hp tc thc thi vchc nng.

    II/ S giao tip ORB-ORB:

    Kh nng tng tc trong CORBA da trn s giao tip ORB-ORB.

    Client Object

    Stub Skel

    ORB 1

    Client Object

    Stub Skel

    ORB 2

  • 8/10/2019 Tm Hiu V Corba

    32/252

    32

    Hnh 6.1: Kh nng tng tc thng qua s giao tip ORB-ORB. Tt c nhng

    client kt ni ORB 1 u c th truy xut nhng OI trong ORB1 v ORB2

    Hnh trn cho ta thy: Mt cuc gi t client ca ORB 1 thng qua IDL stub voORB core. ORB kim tra OR v truy cu v tr ca implementation trong implementationRepository. Nu implementation cc b, ORB truyn cuc gi thng qua skeleton choobject. Nu l t xa, ORB1 truyn cuc gi cho ORB2 thng qua ng giao tip v OIkhng bit client l cc b hay t xa.

    Trong CORBA, s giao tip lun i t ORB ny n ORB khc.

    1/ Vin cnh khng ng nht:C hai cch ORB trao i vi nhau:

    - ORB lin lc vi nhau cng mt giao thc -> c th trc tip trao i vinhau.

    - Dng cu ni dch giao thc ny sang giao thc khc khi cc ORB s dngcc giao thc khcnhau.

    CORBA 2.0 cung cp c hai cch ny.

    III/ CORBA domain:

    ng nht min ca t chc chung cng chia x mt platforn chung, h iuhnh, phn cng v phn mm mng... v t tn cho kiu min ny"technology domain".

    Mt domain l mt tm vc ring trong cc c tnh chung c a ra v ccnguyn tc chung c tin hnh sao cho m bo tnh trong sut ca s phn b; c thl s khc bit v v tr kin trc b x l, c ch mng, biu din d liu. Thngdomain l mt tp cc i tng chia x cc c tnh chung hoc tun theo cc nguyntc chung.

    C rt nhiu kiu domain khc nhau. Chng ta c th pht ha khi qut v ccdomain:

    - Chng tn ti v l do no (nh bo mt chng hn).

    - Nhng ng dng v d liu qua gii hn domain.

  • 8/10/2019 Tm Hiu V Corba

    33/252

    33

    - Nu mi i lng ca mt domain u c mt i lng tng ng domainkhc (nh x), chng ta c th chuyn i qua li gia cc domain nhngni cn thit.

    - Cc gii ORB ch nh ngha mt phn nh ca domain trong h thng.

    Khi xem xt xong nhng phn t , ta nhn thy nn s dng dng cu ni hin thc kh nng tng tc bn trong CORBA hn l s dng sc giao tip trc tipgia cc ORB.

    Nh vy, Bridging domain l mt cch khi nim, l mt nh x hoc mt c chni nm bin gii gia cc domain bng vic chuyn cc yu cu gia hai domain ringbit ( cu ni domain).

    C hai cch kt ni: kt ni k thut v kt ni theo ch trung gian.

    C hai dng cu ni: cu ni trc tip v cu ni trung gian.

    1/ Kt ni c tnh k thut v kt ni theo ch trung gian:

    Kt ni c tnh k thut i hi nghim ngt v ch giao thc mng hoc nhdng d liu.

    Kt ni theo ch trung gian: ngha l giao thng ngang qua cc ranh gii cgim st v iu khin bng cc phng cch ph thuc vo ni dung.

    2/ Cu ni trc tip v cu ni trung gian:

    + Kt ni trc tip: hai domain trao i trc tip vi nhau qua cu ni n c khnng chuyn i tt c nhng chi tit message i hi. Kt ni trc tip l khi nim haidomain; tng qut holn l kt ni nhiu domain ngha l cha nhiu bn cch kt nihai domain, mi mt bn nh th c kt ni cho tng cp domain.

    Cch kt ni ny nhanh v hiu qu v mi cu ni c thit k c bit cho tngcp domain.

    Nhng cch ny li km linh ng v i hi qu nhiu cu ni: s cu ni tngtheo hm m vi s domain

    vi n: s domain

    2

    )1(

    !2)!2(

    !

    nn

    n

    n

    isocauno

    Dng cho cc domain thun ty qun tr. Th d nh khi bng qua cc domainqun tr an ton gia cc ORB ging nhau.

    Xt hnh sau:

    Ni trc tip hai domain

  • 8/10/2019 Tm Hiu V Corba

    34/252

    34

    Domain caProtocol A

    Domain caProtocol B

    Ni A-D Ni B-C

    Ni A-C Ni B-D

    Ni C-D

    Domain ca protocol C

  • 8/10/2019 Tm Hiu V Corba

    35/252

    35

    + Kt ni trung gian: tt c nhng domain u mi vi mt protocol chung. Khimt message truyn qua cu ni u tin, nhng phn cn message c chuyn ivo protocol chung. Khi message truyn t cng chung vo domain ch, cu ni th hais chuyn i n sang protocol ch.

    - Thun li:

    Li ch ln nht ca cch kt ni ny: s lng cu ni tng theo s lng domain(=n-1 vi n: s domain).

    Li ch k tip l n c cu hnh "backone" cho nhng mng ln, a protocol;cch kt ni trung gian t cu hnh mt cch t nhin cho nhng mng ny v nhng cuni CORBA s nh v trong cng v tr nhng cu ni protocol sn sng tn ti.Protocol chung c s dng c th l IIOP (internet inter_ORB protocol).

    - Bt li:

    Khng hiu qu cho nhng mng nh t domain nh nhng mng ch c haidomain nn d dng cch kt ni trc tip.

    Phi dch n hai ln i vi hu ht nhng message. Th nhng cng c nhngmessage t nhng domain c cng protocol vi vng chung, do chng ch cn dchmt ln.

    C s khc nhau gia half_bridge v full_bridge: half_bridge ch cn chuyn imt chiu (t mt protocol sang protocol khc); cn full_bridge (t mt protocol sangprotocol khc v ngc li). IIOP l mt protocol n m mi ORB phi giao tip vi n.Nhng trc tin, ORB khng cn phi hin thc protocol ny; k tip ORB c phphin thc bt k protocol b sung no.

    Ni A-B

    Domain ca protocol D

  • 8/10/2019 Tm Hiu V Corba

    36/252

  • 8/10/2019 Tm Hiu V Corba

    37/252

    37

    3/ IORs (nhng OR c kh nng tng tc_lin kt):

    C dng chun cho OR . N c s dng trong vic tm ng cho request ORBn v khng bao gi c truyn cho client hoc OI. N c s dng trong cc cucgi gia cc ORB vi nhau -> c gi l IOR (Interoperable object reference: thamchiu i tng c kh nng tng tc_lin kt).

    Thng tin trong IR cc cuc gi truyn t ORB ny n ORB khc.

    iu ny i hi c nhng thng tin sau:

    - Kiu ca object: ORB cn bit kiu object lu tr ton b h thng.

    - ORB ang gi dng protocol g? IOR lit k protocol hoc nhng protocolc chp nhn bi ORB . Nhng khi n truyn qua cu ni, n tr thnhkh gi ch i vi nhng protocol c chp nhn bi cu ni. iu ny yucu nhng cu ni nhn ra IORs v cp nht thng tin ny khi chng truynqua. IORs khng l nhng mc tiu m chng cn c truyn nh thng s.

    -

    Nhng service no sn sng ? Nhng cuc gi thng lin quan n nhngservice ORB m rng.

    - OR "null"? Nhn ra gi tr "null", cu ni c th trnh c cng vic cnthit.

    Backbone-

    Protocol D

    Domain caprotocol A

    Domain caprotocol BHalf-bridge A-D Half-bridge B-D

    Half-bridge C-D

    Domain ca protocol C Domain ca protocol D

  • 8/10/2019 Tm Hiu V Corba

    38/252

    38

    IOR c c t b OMG p ng nhng nhu cu ny gm ID kiu c theo saubi mt hoc nhiu "tagged profile".

    Mi protocol u c mt "tag" v mt "profile". "Tag" l i lng 4 byte gipcc nh xy dng ORB trnh nhn bn.

    Profile cha tt c nhng thng tin m ORB t xa cn thc hin cuc gi angdng protocol. Profile c hai dng n hoc a thnh phn: Profile n thnh phn cmt profile "id". Profile a thnh phn c mt "id" thnh phn cho mi phn. Khi profile"id" cho protocol a thnh phn l 1 th mi thnh phn c mt "id" thnh phn cachng n.

    Ta xt n IIOP v DCE ESIOP. "Tag" ca IIOP l 0; DCE ESIOP ( DistributedComputing enviroment Enviroment specific inter_ORB protocol) c mt profile athnh phn.

    Dng profile c nh ngha bi nh hin thc hay nhm quy nh "tag". Nhngnh hin thc khng cn l dng format v ni dung ca proifle register nhngOMG s chp nhn vto mt nh ngha chung nu h c c.

    4/ Kt ni inline v mc request (request level):

    Bt k ngi no c hai ORB v trnh dch IDL c th xy dng cu ni gmskeleton t mt ORB v stub t ci khc; v truyn request qua .

    Cu ni request_level dng ORB APIs; CORBA cung cp mt s API dngc trong cc cu ni ny nh DSI c chun ha c bit cho vic "s dng". Ccthnh phn APIs v CORBA cn thit v hu dng trong vic lp cu ni: DII, DSI, IRs,OAs bao gm BOA v ORs bao gm IORs.

  • 8/10/2019 Tm Hiu V Corba

    39/252

    39

    Thay th cho cu ni request_level l cu ni in_line. Trong cu ni in_line, code

    trong cc ORB thc thi s chuyn i v s nh xi t ORB ny sang ORB khc.

    Ni chung, cu ni "request_level" d dng xy dng hn; trong khi cu niinline hiu qu hn, mc d s thit k kho lo c th gim thi ti a cc kh khnc lin kt vi cu ni "request_level"

    Client

    Stub DSI

    ORB 1

    Object

    impl

    DII Skel

    ORB 2

    REQUEST_LEVEL BRIDGE

    Hnh 6.5: Request_level bridge xy dng dng ORB API ton cc

  • 8/10/2019 Tm Hiu V Corba

    40/252

    40

    5/ Cc cu ni "request_level" dng "interface_specific" v "Generic":

    Cc cu ni "request_level" dng:

    - Interface_specific: c xy dng dng trnh bin dch IDL, to ra stub vskeleton, kiu cu ni ny ch h tr nhng interface c t hp trong cuni khi n c xy dng.

    - "Generic": tn dng c y nhng thun li ca DII, DSI v IR; kiucuni mi interface c nhn dng ra trong h thng.

    IV/ Cu trc ca s c t tng tc:

    Khng c API sn c cho kh nng tng tc CORBA 2.0. Nu OR ch l mtobject cc b, cuc gi thuc phm vi cc b; nu l t xa th cuc gi truyn t xa Nu

    ORB s dng CORBA 2.0 th l nhng g ta c c v client v ORB giao tip viORB ch khng phi c mng. Tt c nhng s giao tip trn mng ch l mt ORB giaotip vi mt ORB. cng chnh l cch CORBA lm vic.

    GIOP (General inter_ORB protocol): ch nhng c t cho giao thc truynthng ip lin kt ORB chung theo CORBA 2.0. GIOP c thit k nhm c hinthc trn bt k phng tin ng tin cy no. Trong hnh v v tr GIOP l s th hin

    Client

    Stub DSI

    ORB 1

    Object

    DII Skel

    ORB 2

    Hnh 6.6: Cu ni in_line c xy dng dng APIs trongORB

  • 8/10/2019 Tm Hiu V Corba

    41/252

    41

    d liu chung (CDE: Common Data Enviroment),by thng ip GIOP v dng formatca chng...

    ESIOP (Enviromentspecific inter_ORB protocol): mi ESIOP nh ngha protocolca n c lp trong sut thi gian n p ng cc yu cu giao tip ORB_ORB ca cc

    p ng v yu cu i tng.

    DCE ESIOP c t s giao tip ORB-ORB da trn cuc gi v p ng DCERPC. N s dng cng CDR nh GIOP nhng thay th by thng ip ca GIOP bnghai tc v DCE RPC: locate v invoke. DCE ESIOP c ch nh chnh thc thnh DCECIOP (DCE Common inter_ORB protocol trong c t OMG)

    Hnh 6.7: Cu trc ca s c t kh nng tng tc CORBA 2.0

    V/ GIOP v IIOP:

    IIOP l GIOP gm lun TCP/IP. GIOP/IIOP c thit k nhm p ng nhngmc tiu sau:

    - Tnh sn c rng nht: IIOP da trn TCP/IP, sn c c ch giao tip uynchuyn v c s dng rng ln nht v ch nh ngha mt s lp b sungnhm chuyn cc request CORBA gia cc ORB.

    - Tnh n gin: Gi GIOP cng n gin cng tt- Tnh t l: (co dn) c thit k thch hp vi kch thcInternet hm nay

    v trc kia.

    - Chi ph thp.

    APPLICATION

    COMPONENT

    CORBA 1.2 API

    CORBA CORE / IDL

    CORBA 2.0

    GIOP

    TCP/IP

    (IIOP)

    IPX OSI ...

    ESIOP

    DCE CIOP Cc EIOP

    khc

  • 8/10/2019 Tm Hiu V Corba

    42/252

    42

    - Tnh tng qut: GIOP c thit k hin thc bt kprotocol kt ni cnh hng no, khng ch TCP/IP.

    - Trng lp tnh cht kin trc:GIOP lp cc m nhim v kin trc v hinthc cc ORB v cu ni h tr cho n.

    GIOP bao gm ba c t:

    - nh ngha CDR.

    - nh dng thng ip GIOP.

    - Cc m nhim lu chuyn GIOP.

    c t IIOP c thm:

    -

    Lu chuyn IIOP .

    IIOP khng phi l mt t tch bit; n l mt nh x ca GIOP ti TCP/IP.

    1/ CDR:

    CDR nh ngha tt c nhng kiu d liu c OMG IDL, type codes v nhngkiu c xy dng nh struct, enum v sequence.

    Mt im ca CDR l tt c nhng GIOP "share" mt CDR v th kt ni phnny ca thng ip d dng.

    CDR c cc c im sau:- Th t byte c th thay i (variable).

    Cc my c th t byte chung c th trao i thng ip m khng phi trao i(swap) byte. Khi lin lc gia cc my c th t byte khc nhau, ngi khi u thngip xc nh th t byte v ngi nhn p ng cho vic swap cc byte ph hp vith t ng ca n.

    Mi GIOP message cha mt flag ch th th t byte thch hp.

    - Cc kiu cn bn c chnh (sp thng hng) cho php d liu c x lmt cch hiu qu bi cc cu trc cng c vic sp d liu trong b nh.

    - Anh x OMG IDL hon ton: khi cn thit CDR nh ngha biu din cc kiud liu cha c nh ngha hoc ph thuc hin thc trong c t CORBA Core.

  • 8/10/2019 Tm Hiu V Corba

    43/252

    43

    2/ Dng thng ip GIOP:

    GIOP nh ngha 7 dng thng ip cho s giao tip ORB -ORB. Cc thng ipny mang yu cu, nh v OIs v qun l cc knh giao tip.Chngh tr tt c cm vhnh vi c i hi bi CORBA.

    By thng ip ny n gin ha vic giao tip. Trong hu ht trng hp, thngip t client ORB n object ORB ngay sau khi n c thit lp.

    Vi tnh cht ca vic lu chuyn thng ip:

    - Vic kt ni khng cn i: Vai tr ca client v server tch bit nhau, cgn lc kt ni. Client bt u ni, gi yu cu nhng khng tr li. Serverchp nhn ni, gi tr li nhng khng yu cu.

    - Request c th c "mutiplex": ngha l, nhiu client trong cng ORB ban ucng "share" mt cuc kt ni ti ORB t xa.Thng tin trong request kghc

    nhau trong cng cuc kt ni.

    - Request c th overlap (ph lp): Nu khng ng b, th t ca ccrequest/reply c h tr thng qua cc bin request/reply.

    Trong by thng ip, ba thng ip c gi t client: Request, CancelRequest,LocateRequest. Ba c gi t server: Reply, LocateReply, CloseConnection; vMessageError c gi cho c hai.

    Xt n cc thng ip:

    - Request message: bao gm GIOP header, request header v thn request.Header cha context service, mt request ID, object identifier, tc v v mt s thng tinkhc.Thn request cha tt c tham s in v inout.

    - Reply message gm GIOP header, GIOP request header v thn reply. Thnreply cha mt service context, request ID v mt m trng thi (status code).Nu m trng thi cha no_exception, khi thn reply cha tr tr v, nutheo sau l cc tham s in v inout.

    Nu m trng thi l USER_EXCEPTION hocSYSTEM_EXCEPTION, thn cha exception c m ha.

    Nu l LOCATION_FORWARD: thn cha mt IOR m ORB ban uphi gi li yu cu ban u n vi n. Vic gi li ny thc hin m khngcn bit v client ban u.

    - CancelRequest cha GIOP header theo sau l CancelRequest header virequest ID thng bo cho server l client khng i tr li cho Request vLocateRequestna.

  • 8/10/2019 Tm Hiu V Corba

    44/252

    44

    - LocateRequest xc nh mt OR ring c hp l, server hin hnh c khnng phc v cc yu cu hay khng, nu khng th xc nh a ch mi choyu cu OR .

    -

    LocateReply : GIOP header, LocateReply header vi request ID, tr trngthi, thn cha IOR ca ch mi, nu c.

    - CloseConnection : Thng tin cho cc client rng server s kt thc vic ni vkhng p ng yu cu na. Server ch c php lm iu ny khi khng cyu cu no cha c gii quyt, mc d yu cu c th c nhn trongkhong thi gian khi gi CloseConnection v nhn bit ca n ORB nhn.iu ny cng cho cc ORB bit l chng s khng nhn tr li cc yu cucha gii quyt cuc ni v phi tin hnh mt cuc ni khc. ORB nhngi mt ngoi l COMM_FAILUREn cc client vi mt trng thi hontt COMPLETED_MAYBE.

    - MessageError :c gi p ng cho bt k GIOP message no m v l do no khngth nhn bit (uninterpretable).

    3/ Lu chuyn GIOP message:

    GIOP yu cu:

    - Protocol kt ni c nh hng.

    - Cp pht ng tin cy.

    - Nhng ngi tam gia phi c thng bo nhng cuc kt ni khng theo tht.

    - M hnh bt u cuc kt ni phi p ng nhng yu cu no .

    4/ I IOP:nh x ca thng ip GIOP chuyn n s kt ni TCP/IP c gi l IIOP

    (giao thc Internet InterORB: Internet Inter-ORB Protocol). N bao gm phn c tcho IIOP IOR.

    VI/ ESIOPs v DCE CIOP:

    Giao thc khng phi l GIOP th l ESIOP theo CORBA 2.0; ngha l kin trcc bn gm min tr v cch kt ni, IOR v nhng interface c kh nng tng tc gmDSI. Khng phi mi giao thc li6n kt ORB u lESIOP v ta c kh nng xy dngmt protocol ring m khng thuc thnh phn CORBA 2.0.

  • 8/10/2019 Tm Hiu V Corba

    45/252

    45

    DCE CIOP thay th chc nng ca 7 thng ip bng hai tc v DCE RPC:invoke v locate.

    1/ Vai tr ca DCE trong DCE CIOP:

    DCE CIOP l giao thc giao tip ORB-ORB, n ng vai tr tng t nh IIOP.Client v OI ch tng tc vi nhng ORB cc b.

    RPCs c s dng bi DCE CIOP c chn mt cch c bit cho giao tipORB-ORB.

    S cn tht s dng DCE CIOP: chng ta c th trnh lp cc cng vic ci t,lp cu hnh, hun luyn i ng cho nhng giao thc mi bng cch mua DCE CIOP.Cng mt lc chng ta c th tn dng nhng tin li vic qun tr mng DCE, Namingv Directory sevices, DCE sercurity.

    DCE CIOP nhm tho cc goal:

    - H tr cc ng dng da trn CORBA vi h thng quy m ln c nhiu nhcung cp.

    - Cc dch v n by do DCE cung cp bt c ni no thch hp.

    - Cho php hin thc hiu qu v trc tip s dng cc DCE APIs ton cc.

    - Vn gi c kh nng t do cho php hin thc ORB .

    2/ Cu trc ca c t DCE CIOP:

    DCE CIOP thc thi trn mt RPC c kh nng tng tc (lin kt) vi nhng giaothc.

    Mt vi c im DCE RPC:

    - kt ni gia client v server, DCE RPC nh ngha nhng giao thc bt ktni v kt ni c nh hng.

    - H tr nhiu giao thc pha di transprot, bao gm TCP/IP.

    -

    H tr nhiu yu cu d dang n nhiu object CORBA trn cng mt cuckt ni.

    - H tr kh nng phn mnh ca cc thng ip.

    DCE CIOPs dng cng mt CDR nh GIOP; v nhng header thng ip DCEESIOP cng c c t nh nhng kiu ca OMG IDL.

  • 8/10/2019 Tm Hiu V Corba

    46/252

    46

  • 8/10/2019 Tm Hiu V Corba

    47/252

    47

    CC DCH VCA CORBA

  • 8/10/2019 Tm Hiu V Corba

    48/252

    48

    PHN 1 : DCH V LIFECYCLE & RELATIONSHIP

    1.1/TNG QUT V CC DCH V V CC PHNG TIN CA CORBA(CORBAServices and CORBAfacilities)

    OMA (Object Management Architecture) (nh trong hnh 1.1) l m hnh cc

    thnh phn phn mm do OMG xng. Kin trc ny m t cch thc cc giao tipca cc thnh phn phn mm c chun ha thm nhp vo cc i tng ng dng to ra mt mi trng phn mm cm v chy (plug-and-play) da trn k thuthng i tng. Cc i tng ng dng -mc d khng c chun ha bi OMG - ss dng cc

    HNH 1.1 :Kin trc OMA ca OMG

    dch v v cc phng tin ca CORBA thng qua mt giao tip chun to ra s tinli cho c ngi cung cp v ngi s dng CORBA : i vi ngi cung cp, iu nys lm gim gi thnh pht trin v m rng th trng, i vi ngi s dng, ccthnh phn ny s to ra mi trng phn mm c gi thnh r v d dng t cu hnhcho ph hp vi iu kin ca cng ty ca h.

    ApplicationObjects

    CORBAfacilities

    Vertical CORBAfacilities

    Horizontal CORBAfacilities

    Financial etcHealthcare

    User

    Interface

    InfoMgmt

    SystemMgmt

    TaskMgmt

    Object Request Broker

    etc

    CORBAService

    Lifecycle Naming Persistence

  • 8/10/2019 Tm Hiu V Corba

    49/252

    49

    Vi mi dch v v phng tin, OMG chun ha nh ngha v dch v nhsau : giao tip m t theo OMG IDL, km theo l nh ngha r rng vchc nngdi dng vn bn. Vi CORBA, phn hin thc ca cc thnh phn ny khng cchun ha. iu ny cho php cc nh cung cp a ra cc sn phm cnh tranh vi nhauv cc nn (platform), tc thc thi, kh nng s dng ti nguyn v gi c khc nhau

    v do cho php ngi s dng c c li ch cao nht bi v h c th s dng mtphng tin c chun ha v s dng mt chng trnh chun ca bt k nh cungcp no x l chng.

    Cc dch v ca CORBA cung cp cc chc nng c bn mmi chng trnhhng i tng u cn n. Cc phng tin theo chiu ngang (horizontal facilities)cung cp cc chc nng mc ng dng (application-level) vi cc tin ch ph bin,chng hn nh cc phng tin qun l ti liu phc hp (compound document) , ccphng tin trnh din v gip . Cui cng, cc phng tin theo chiu dc (verticalfacilities) cung cp mt cch chun thao tc v x l d liu v hm, kt ni cc ngdng cng nghip trong cc lnh vc khc nhau.

    Hin nay, OMG c t cho cc dch v sau y :

    Lifecycle v Relation services (cc dch v v chu k sng v quan hgia cc i tng).

    Persistent Object v Externalization services (cc dch v v tnh vnh cuca i tng v cc i tng ngoi).

    Naming v Trader services (cc dch v v qun l tn v chn la i

    tng).

    Event service (dch v qun l s kin).

    Transaction v Concurrency service (cc dch v v qun l giao dch v

    x l ng thi). Property v Query services (cc dch v v tnh cht v truy vn cc i

    tng).

    Security v Licensing services (cc dch v v bo mt v cp quyn).

    Hin nay, cc thnh vin ca OMG cng ang c t cho dch v Object Startup,chc nng chnh ca dch v ny l h tr cho dch v Transaction. Bn cnh , n cngs c cc i tng dng n khi cn mt s khi to c bit khi ORB hoc cc hthng c khi ng ln u tin. V mt dch v na l Object Collection, dch v nys chun ho cc thao tc nh thit lp v thu thp cc i tng, thay cho nh ngha tmthi c cung cp bi dch v Object Query hin nay.

    1.2/DCH V LIFECYCLE :

    Dch v ny m t cch thc v quy c to ra, xo, sao chp v di chuyn cci tng. Quy c ny cho php client thc hin cc tc v lifecycle trn cc object cc v tr khc nhau, hoc mt v tr c ch nh trc nu cn thit, dng giao tipchun v khng vi phm tnh trong sut v v tr c xy dng trong CORBA.

  • 8/10/2019 Tm Hiu V Corba

    50/252

    50

    1.2.1/Cc i tng sn xut (Factory Objects) :

    to ra mt i tng bng cch gi CORBA , mt client phi c mt thamkho (reference) n mt i tng m n c th gi mt lnh n l factory object.

    Nh chng ta bit, ch c hai cch to ra cc i tng : Cch u tin l cci tng trong h thng s c khi to vchy t du nhc dng lnh (command-lineprompt hoc kch bn script). Nu ngi s dng khi to ng i tng, i tngny n lt mnh s to ra nhng i tng mi v thi hnh chng.

    iu ny c ngha l chng ta khng cn mt factory cho mi i tng trong hthng. Mt s i tng khng cn n factory object bi v chng c khi to t mtth tc ci t.

    Nh vy nhng i tng cn n factory object khi to l cc i tng cnhiu thc th hoc bn sao, hoc cc i tng cn c di chuyn t ni ny n nikhc, hoc cc i tng c to ra v thc thi trong mt giai on no v sau

    c lu tr li, v n c xa i khi hon thnh cng vic ca mnh.Khi nim factory object dng ch nhng i tng to ra cc i tng khc,

    v qu trnh to ra i tng l mt phn ca h thng i tng phn b. Ngi s dngvn c th to ra cc i tng theo cch thng thng nht trong mi trng i tngring bit ca mnh v d nh mt vi ORB cho php ngi s dng dng cch bnhthng ca ngn ng lp trnh to ra mt i tng CORBA tn ti trong cng qutrnh ca ngi s dng.

    Mt factory object c th lm c nhiu cng vic khc nhau, mc d qu trnhto i tng c th khng cn chng, cc cng vic ca factory object l :

    Xc nh v tr cho mt i tng mi.

    Phn b ti nguyn (b nh, khng gian lu tr c nh, cc ti nguynph thuc h thng) m i tng cn.

    ng k vi BOA c mt tham kho i tng v con tr n khnggian lu tr c nh.

    To ra mt i tng s dng cc ti nguyn va nhn c.

    Bo cho BOA bit i tng c kch khi ng.

    Tr v tham kho n i tng cho client gi.

    Factory object c th lm thm cng vic sau :

    ng k i tng vi cc dch v Naming hoc Trader client c thx l chng nu chng thch hp vi cc dch v ny

    1.2.2/Di chuyn, sao chp v xa i tng (Move, Copy, Delete) :

    Dch v Lifecycle a ra cc c t cho cc tc v sau :

    Di chuyn mt i tng.

  • 8/10/2019 Tm Hiu V Corba

    51/252

    51

    Sao chp mt i tng.

    Xa mt i tng.

    ng gc ngi s dng, cc tc v trn dng nh l cc dch v doCORBA cung cp, h ch vic gi cc tc v ny v chng lm vic. Tuy nhin nu gc ngi hin thc th cc tc v trn khng phi l dch v c sn, ngi lp trnh phit hin thc cc tc v ny theo yu cu ca mnh.

    1.2.3/Cc loi giao tip v i tng :

    Cc i tng c giao tip ca cc dch v CORBA chia lm hai loi nh sau :

    Cc i tng c trng (Specific object) : Cc i tng ny c mc chchnh l s dng cc giao tip ca CORBA (v d nh cc i tng thucdch v Naming mang cc giao tip gii quyt vn tn).

    Cc i tng tng qut (Generic objects) : cc i tng ny ch tnh c

    c cc giao tip ca cc dch v CORBA. V d nh mt i tng ti liuphc hp phi c cc giao tip ca dch v Lifecycle mc d cc tc v dichuyn, sao chp v xa khng phi l mc ch chnh ca chng).

    Cc giao tip c chia lm ba loi khc nhau nh sau :

    Cc giao tip chc nng (Functional interfaces) : cc giao tip ny thc scung cp cc dch v (bao gm dch v Naming c lu trc y).

    Cc giao tip tham gia (Participant interfaces) : c to ra (v thngc k tha bi) cc i tng tng qut tham gia vo cc dch v theocch no .

    Cc giao tip qun tr (Administrative interfaces) : dng qun tr cc

    dch v theo mt vi cch no .

    i vi dch v Lifecycle, cc giao tip di chuyn, sao chp v xa l cc giaotip tham gia v c sinh ra bi cc i tng tng qut. Cc dch v CORBA nykhng c chun ha, v vy mi trng ORB khng th cung cp dch v Lifecycle;thay vo , n chun ha giao tip m ngi s dng dng gi dch v Lifecycle trncc i tng tng qut.

    Mt cch c trng, cc i tng ny s k tha module Lifecycle nh mtthnh phn trong giao tip ca chng. S k tha to ra mt cch d dng thu c ccthnh phn giao tip. Tuy nhin, khi mt i tng k tha mt giao tip, ngi lp trnhphi cung cp cc chc nng c th lm vic vi giao tip .

    Sau y l cc phn c t dng IDL cho cc thao tc sao chp, xo (thao tc dichuyn c th c xem nh l tng hp ca hai thao tc sao chp sang v tr mi v xai tng v tr c).

    in ter face L if eCycleObject {

    L if eCycleObject copy (in FactoryF inder there,

    in Cri teri a the_cri teri a)

  • 8/10/2019 Tm Hiu V Corba

    52/252

    52

    raises (NoFactory, NotCopyable, I nvali dCri teri a,

    CannotMeetCriteria)

    void remove()

    raises(NotRemoveable);

    void move(in FactoryFi nder there,

    in Cri teri a the_cri teri a)

    rai ses(NoFactory, NotM oveable, I nvali dCri ter ia,

    CannotMeetCriteria)

    }

    mc ch ca tc v xa (remove) l hy b i tng v gii phng h thng khi cc tinguyn m n ang gi. Cng vic ny khng c c t m do ngi lp trnh hinthc.

    Tuy nhin, c mt s i tng thuc loi khng th xa. i vi nhng itng ny, ngi lp trnh c th dng mt trong hai cch sau : Hoc l cho cc i tng khng mang giao tip ca dch v Lifecycle, do cc li gi n cc phng thcxa, sao chp, di chuyn s tr v mt ngoi l (exception) chun lBAD_OPERATION. Hoc l vn cho cc i tng ny c giao tip ca dch vLifecycle, nhng s tr v ngoi l NotRemoveablenu c li gi n phng thc ny.Mt chng trnh client nn kim tra c hai trng hp ny. Mt s i tng nn kimtra quyn ca client quyt nh mt yu cu xa i tng l hp l hay khng, nu li

    gi l khng hp l, mt ngoi l chun NO_PERMISSIONs c tr v.

    1.2.4/V tr : Cc i tng tm kim (Factory Finders)

    Trong mi trng CORBA, s trong sut v v tr ng ngha vi vic ch mua vci t mt phin bn v chy bt k ni no. minh ha cho khi nim c lp v vtr, dch v Lifecycle a ra nh ngha v cc i tng tm kim (factory finderobjects). Cc i tng ny cho php tm ra mt i tng bt k trong h thng. Ccfactory finder object c th khng cng tn ti trn mt my ring bit no v phn hinthc ca cc object ny khng c c t,n ty thuc vo nh cung cp. Cc objectloi ny c phn giao tip c c t bng IDL nh sau :

    Factor ies fi nd_factori es (

    in Key factory_key

    )

    raises(no_factory)

    i s factory_key l mt tn c m t trong dch v Naming. Nh cc i tng ny, chng ta c th tm ra tham kho n mt i tng ang tn ti trong h thng.

  • 8/10/2019 Tm Hiu V Corba

    53/252

    53

    1.3/DCH V RELATIONSHIP

    1.3.1/Quan h v vai tr (Relationship v Role) :

    Cc thnh phn, tt c mi i tng c kt ni vi nhau bi cc quan h. Do

    tc v sao chp phi hin thc c vic sao chp nhng kt ni ny bao gm vic chsao chp i tng chnh v cc quan h ca n hoc phc tp hn l sao chp i tngchnh, cc i tng lin quan v ti ra cc quan h mi kt ni cc i tng miny. Dch v Relationship s cung cp cc lut v cc quan h di dng cc thuc tnhc th iu chnh c. V dch v Relationship to ra cc quan h bng cch thay v ktni trc tip cc i tng, n s to ra cc vai tr (Role) v cc i tng nt (NodeObject) c vai tr nh mt i din (proxy) cho cc i tng trong cc quan h cachng.

    Cch to quan h nh trn c t nht l hai im thun tin hn so vi cch kt nitrc tip cc i tng to quan h : Th nht, n cho php cc i tng ny kt nivo dch v ny v khng lm thay i i tng, nht l cc i tng khng c sn ccthuc tnh quan h . Th hai, n cho php duyt qua cc quan h m khng cn dng trctip n cc i tng. Nu h thng c nhiu i tng hoc cc i tng kh x l thcch lm ny t ra u vit hn.

    Tuy nhin cch lm ny cng c mt im bt tin nh, l khng c mt cchthc chun no mt client c th truy xut n cc vai tr v cc quan h ca mt itng t i tng (mc d lm ngc li l vic rt d dng). iu ny c ngha lcc client gi cc tham kho n cc i tng s phi tm ra cc quan h ca chng theocch khc. Bi v cc i tng mc trn thng c khuynh hng lm vic vi ccquan h c th l cc role v cc nodehn l chnh cc i tng m chng i din.

    C nhiu cch tm ra cc quan h ca mt i tng, ngi s dng hoc ngi

    qun tr c th tm ra chng nh vo dch v Naming. Ngi lp trnh ra cc i tng cth k tha giao tip node s cm t sau y, giao tip ny cho php cc i tng cth s dng trc tip cc quan h ca chng. Cc i tng khng thay i ( c ttrc v khng c giao tip node) c th c trao cho mt con tr n cc node cachng nh l mt thuc tnh nh vo mt dch v mi ca OMG l dch v Property.

    Quan h c th c m t qua cc c im sau y :

    Kiu (Type) : Cc i tng quan h v cc quan h c phn chia thnhcc kiu khc nhau. V d nh s thu ngi lm cng l quan h giangi lm vcng ty, trong khi quan h ch nhn nh ngha quan h giangi v xe.

    Vai tr (Role) : Cc i tng c th c nhng vai tr khc nhau. V dnh trong quan h thu ngi lm cng th cng ty ng vai tr ch vcng nhn ng vai tr ngi lm. Mt i tng c th ng thi ngnhng vai tr khc nhau trong cc quan h khc nhau .V d mt ngi cth lm mt cng ty ny v lm ch mt cng ty khc.

    Bc (Degree) : c im ca cc quan h c th c m t bng mt svai tr theo yu cu. V d nh quan h thu ngi c hai vai tr : ngi

  • 8/10/2019 Tm Hiu V Corba

    54/252

    54

    ch v ngi lm. Tuy nhin c tnh ny khc vi c tnh s lng(Cardinality).

    S lng (Cardinality) : S lng ti a cc quan h c th c trong mtvai tr ring bit. V d nh vai tr ngi ch c th bao gm quan hngi lm vi nhiu ngi.

    Ng ngha (Semantic) : nh ngha cc thuc tnh quan h v cc tc vc trng.

    1.3.2/Dch v Relationship c bn : Role v Relationship

    nh ngha dch v Relationship ra ba mc khc nhau trong vic hin thcdch v ny.

    Mc c bn nht ch nh ngha cc vai tr v cc quan h. biu din cho mtquan h, dch v Relationship to ra cc i tng vai tr (Role object) v cc i tngquan h (Relationship object) kt ni cc i tng vai tr nh trong hnh v di y.

    Cc i tng vai tr cho bit v cc i tng m chng i din cho v quan h giachng. Mi mt i tng quan h ch chp nhn mt s i tng vai tr m chng phikt ni, nu dng mt i tng vai tr khc vi i tng vai tr m chng chp nhns tr v mt li.

    Owner Owner ThingRole Role

    Owner

    Relationship

    HNH 1.2 :Quan h gia Robert v Yugo (Robert s hu Yugo)

    Tuy nhin cch lm ny c mt s hn ch. Th nht, n khng cho php ngis dng truy xut cc quan h t cc i tng ban u c i din bi cc i tngvai tr bng cch dng giao tip ca dch v Relationship hoc cc tc v bi v cc i

    tng ny khng thuc phm vi qun l ca dch v ny (Nu mt i tng mun thamgia vo cc quan h, n phi kt tha giao tip node, nhng iu ny khng phi l mtphn c bn ca dch v ny). Th hai, cc quan h khng c kh nng dng chung cci tng vai tr. p ng c cc iu kin ny, cn n mc tip theo ca dch vRelationship, mc ny cung cp thm cc i tng Node v giao tip duyt quan h(Traversal).

    1.3.3/Mc th hai ca dch v Relationship : S cc i tng quan h (Graphsof Related Objects)

    Rober Yugo

    Related Role Object Object

    Relationship

    Object

  • 8/10/2019 Tm Hiu V Corba

    55/252

    55

    Mc ny h tr cho s cc i tng quan h bng cch b sung thm cc giaotip nt(Node) v duyt quan h (Traversal). Giao tip Nodethu thp tt c cc vai trca mt i tng . Giao tip Traversalcung cp tc v duyt trn s cc i tngquan h bng cch i theo cc quan h v duyt qua cc i tng quan h trong s ng mt ln. iu ny c bit c ch khi ta thm vo giao tip Traversal cc tc v b

    sung nh l di chuyn hoc sao chp i tng. V d ta c s sau :

    Contained ContainedRole Role

    Containment ContainmentRelationship Relationship

    Contained ContainedRole Role

    ContainmentRelationship

    Contained Contained

    Role Role

    Containment

    Relationship

    Contained References

    Role Role

    ReferencesRelationship

    Referenced

    Role

    HNH 1.3 : Cc thnh phn quan h ca mt bn bo co. Mt trong cc chngc cha mt biu c tham kho n mt bn tnh. Mt chng khc c cha logo.

    S ny biu din cho mt ti liu phc hp gm c nhiu thnh phn khcnhau nh vn bn, hnh nh, bng tnh v cc thnh phn ny c quan h vi nhau. mc ny, mi i tng c i din bng mt i tng node n, khng ph thucvo s vai tr v s quan h m chng tham gia vo. Mt node s l mt i tng ring

    Chapter

    Spreadsheet

    Graph

    Chapter

    LogoDocumen

    Related

    Object

    Role Object

    Relationship

    Object

  • 8/10/2019 Tm Hiu V Corba

    56/252

    56

    bit khi n biu din cho mt i tng khng thay i (immutable object), nhng ncng c th c lp trnh tha k giao tip ny. Do trong s ny, i tngdocument l mt node cha tt c cc tham kho n i tng m n i din cng nhtt c cc vai tr m n tham gia trong cc quan h ca n vi cc i tng khc. Trongmi trng hng i tng phn tn, tt c cc i tng trong s trn u l cc i

    tng c kch hot v c th c to ra bi cc chng trnh c lp nhau. V itng duy nht kt ni cc i tng ny li vi nhau chnh l i tng document node c cp trn.

    1.3.4/Mc th ba :

    Chngta s khng cp n mc ny trong ti liu ny.

    1.3.5/ng nht i tng (Object Identity) :

    Thot trng th vn hai i tng c ng nht vi nhau hay khng l mt vn

    rt d dng, nhng trong mt mi trng phn b th vn khng phi l n gin.V d nh vi i tng proxy trong mi trng CORBA, nu nh chng ta gi mt tcv trn i tng ny hoc trn i tng tht s th kt qu tr v l nh nhau, hoc nunh chng ta mun xc nh trng thi ca i tng th kt qu cng ging nhau. Nhngtht ra, c hai tham kho ring bit trong trng hp ny, mt tham kho n cu ni(bridge) trong khi tham kho kia l tham kho n i tng tht s. Vy vn ngnht hai i tng ph thuc vo vic chng ta nhn chng di gc no. Vi quanim ca ngi nh cu hnh h thng v cc giao thc mng th hai i tng ny l haii tng khc nhau, nhng vi quan im l ngi gi cc tc v v nhn kt qu tr vca cc i tng ny th chng l nh nhau.

    V vy CORBA khng h tr cho vn ng nht gia cc i tng mc ct kin trc c bn. Tuy nhin dch v Relationship phi hin thc tc v duyt v vi nim v s ng nht bit c cc i tng ang lm g v khi no th n hon ttcng vic ca mnh.

    Do , dch v Relationship nh ngha ra mt n th (module) l Object Identity h tr cho khi nim ng nht i tng. Mi i tng c quan h hoc cc tc vlifecyle phc hp (compound lifecycle operations) phi c giao tip IdentifiableObject.Mi i tng khc mun gii quyt vn ng nht c th k tha giao tip ny.

    Giao tip ny c hai thnh phn. Thnh phn th nht l thuc tnh ch c(readonly attribute) Object Identifiertr v mt s ID t chn ngu nhin m client cth s dng so snh vi ID ca mt IdentifiableObjectkhc. Nu hai ID ny l khcnhau th cc i tng chc chn l khc nhau, nu chng trng nhau th c th l hai itng cng loi hoc trng nhau. Phng thc kim tra s ng nht ny t ra c hiuqu nu ch mun bit hai i tng c ng nht hay khng. N c th c dng trctc v duyt i tng, nu kt qu l mi i tng u c mt ID ring bit th tc vduyt c th c thi hnh, nu khng th cn phi dng mt on m khc v dng mtthnh phn khc ca IdentifiableObject.

  • 8/10/2019 Tm Hiu V Corba

    57/252

  • 8/10/2019 Tm Hiu V Corba

    58/252

    58

    vy. Nhng nhng i tng tham gia thc hin cc tc v ny l cc i tng c tnhng ngun rt a dng v chng thc hin cc tc v ny thng qua giao tip m chngk tha v dng cc tc v Lifecycle chun cho tng i tng.

    Cc i tng ny c th lm vic chung vi nhau c bi v khi tc v duython tt, client c th gi cc tc v Lifecycle chun nh di chuyn, sao chp, xo trn

    cc i tng v c th bit chc rng chng c th p ng cc li gi ny. Do , nu c i tng no c cc phng thc xa hoc sao chp th nn c

    hin thc vi giao tip chun do dch v Lifecycle cung cp.

    1.4/ROLE V RELATIONSHIP IDL

    1.4.1/c t IDL cho cc i tng RoleFactory v Role :

    Cc i tng role c to ra bi cc i tng RoleFactory. Sau y l c tIDL cho i tng RoleFactory :

    in ter face RoleFactory {exception ;

    readonly attribute I nterfaceDef role_type;

    Role create_role ( in RelatedObject related_object)

    raises (N ilRelatedObject, RelatedObjectTypeEr ror );

    }

    Mi i tng RoleFactory ch to ra cc i tng Role c kiu n, v th cn

    c mt dy cc i tng RoleFactory nu mun phn loi cc i tng c vai tr khcnhau. Bng cch lm cho cc vai tr c kiu tht s ca cc i tng Role, dch vRelationship c th c c nhng thun li trong vic kim tra tnh nht qun ca cci tng h thng khi cc quan h c to ra sau . i tng RoleFactory chathng tin v kiu ca i tng role trong thuc tnh ch c role_type phng khi ngis dng mun kim tra kiu i tng.

    Cc i tng tht s (hay cn gi l cc i tng quan h Related Object) - lnhng i tng m cc i tng Role l i din cho chng - c gn cho cc itng Role khi cc i tng Role c to ra. iu ny cho php cc i tngRoleFactory kim tra kiu ca cc i tng quan h c ng vi vai tr m chng thamgia hay khng.

    Sau y l c t IDL cho i tng Role (ch nu mt phn):

    in ter face Role {

    exception ;

    readonly attr ibu te RelatedObject related_object;

    RelatedObject get_other_related_object (

  • 8/10/2019 Tm Hiu V Corba

    59/252

    59

    in RelationshipHandle Rel,

    in RoleName target_name)

    raises();

    Role get_other_role (

    in RelationshipHandle rel,

    in RoleName target_name)

    raises();

    void get_relationships (

    in unsigned long how_many,

    out RelationshipHandle rels,

    out RelationshipI terator i terator);

    void link (

    in RelationshipHandle rel,

    in NameRoles name_roles)

    raises();

    void unli nk (

    in RelationshipHandle rel)

    raises();

    }

    Thuc tnh ch c RelatedObjectc gn khi i tng Role c to ra v cth c bt k client no truy cp n. Khi mt i tng Role thuc v mt quan h cth, mt client c th truy xut n cc i tng Role khc v cc i tng quan hvi chng bng cch dng cc tc v get_other_rolev get_other_related_objects. Biv mt i tng Role c th thuc v mt s quan h khc nhau nn cng c m tphng thc l get_relationships tr v s cc quan h m i tng Role ny thucv.

    Cc tc v linkv unlinks c cp n trong phn c t giao tip cho itng Relationship Factory.

    1.4.2/c t IDL cho cc i tng Relationship Factory v Relationship :Cc i tng Relationship c to ra bi cc i tng Relationship Factory, v

    ng vi mi kiu i tng Relationship khc nhau th c mt i tng RelationshipFactory ring bit. to ra mt i tng Relationship, chng ta gi phng thccreateca i tng Relationship Factory v cung cp i s l mt cu trc Role v ktqu tr v s l mt i tng Relationship :

    struct NamedRole(Rolename name; Role aRole);

  • 8/10/2019 Tm Hiu V Corba

    60/252

    60

    typedef sequence NamedRoles;

    in terf ace Relati onshipFactory {

    struct NamedRoleType {

    RoleName name;

    I nterfaceDef named_role_type;

    }

    typedef sequence NamedRoleTypes;

    readonly attri bute I nterfaceDef relationship_type;

    readonly attr ibute unsigned shor t degree;

    readonly attri bute NamedRoleTyps named_role_types;

    exception();

    Relationship create (

    in NamedRoles named_roles

    )

    raises (

    RoleTypeError,

    MaxCardinalityExceeded,

    DegreeError,DuplicateRoleName,

    UnknowRoleName

    )

    }

    Cc Role c truyn cho i tng Relationship Factory trong cu trcNamedRole, c t IDL trn y nh ngha y cc thuc tnh ch c cho phpclient c th xc nhn nhng g bit v cc i tng factory loi quan h no mcc i tng ny c th to ra, kiu ca i tng Role m n chp nhn

    Tc v Relationship createnhn cc i s l cc tn ca cc role v tr v mtquan h. i tng RelationshipFactory dng tc v link trong qu trnh khi to.Trc khi hon thnh vic khi to, i tng RelationshipFactorydng tc v linkthng bo cho cc role lin quan rng chng c em vo quan h ny.

    Sau y l phn c t IDL cho i tng Relationship :

    in terf ace Relationship : Identi f iableObject {

  • 8/10/2019 Tm Hiu V Corba

    61/252

    61

    readonly attr ibute NamedRoles name_roles;

    void destroy () raises (CannotUnlink);

    }

    Vi thuc tnh name_roles, client c th tm c cc i tng lin quan nquan h ny. Tc v destroy s gi tc v unlink ca i tng Role thuc quan h ny.

    1.4.3/c t IDL cho i tng Node :

    Cc i tng Node c k tha t cc i tng Identifiable, cc i tng nythu thp cc i tng quan h v cc i tng role. i tng Node cho php duyttrn s cc i tng quan h bng cch cung cp cc thnh phn sau y :

    Mt thuc tnh ch c tr v tt c cc i tng Role ca n.

    Mt tc v tr v tt c cc Role vi mt kiu ring bit.

    Cc tc v thm v xa cc Role trong danh sch cc Role ca n.

    Cn c mt thuc tnh khc tr v i tng quan h. Thuc tnh ny khngc dng trong vic duyt s , nhng n l kt ni cn thit thc thi mt s tc vtrn cc i tng quan h nh sao chp hoc xa da trn kt qu ca vic duyt s .

    Giao tip nodec th c dng theo hai cch : Cch th nht l cc itng c nhn thy l c quan h c th tha k giao tip ny, cch ny bo m rngmi client c tham kho n i tng quan h cng ng thi c tham kho n mtnode. Cch th hai l mt i tng node ring bit c th c to ra v dngnh mtproxy cho i tng c sn, cch ny cho php to ra cc quan h cho cc i tngquan h t c i tng c sn (immutable object) v duyt trn s cc i tng quanh m khng cn phi kch hot cc i tng ban u.

    Mt i tng Node c to ra t mt i tng NodeFactory. Sau y l phnc t IDL cho i tng NodeFactory :

    in terf ace NodeFactory {

    Node create_object (

    in Object related_object

    )

    }

    Theo nh c t ny th i tng quan h c khi gn lc i tng Node

    cto ra. V v i tng Node ch c mt kiu duy nht nn cng ch c mt kiu itng NodeFactory duy nht (khng ging nh cc i tng Role v cc i tngRelationship) . iu ny l hp l v mt i tng node c th tham gia vo bt k quanh no theo nhiu quan im khc nhau.

    Sau y l phn c t IDL cho i tng Node :

    in terf ace Node : I denti fi ableObject {

  • 8/10/2019 Tm Hiu V Corba

    62/252

    62

    typedef sequence Roles

    exception();

    readonly attr ibute RelatedObject related_object;

    readonly attr ibute Roles roles_of_node;

    Roles roles_of_type (

    in I nterfaceDef role_type

    )

    void add_role (in Role a_role)

    raises (Dupl icateRoleType);

    void remove_role (in I nterfaceDef of_type)

    raises(NoSuchRole);

    }

    Theo c t ny, cc i tng quan h (related) v cc i tng Role c th ddng nhn c t cc thuc tnh ch c RelatedObject v Roles, tuy nhin cc itng role phi thuc cc kiu khc nhau. Vic c cc i tng role cng kiu l khngth c bi v s to ra exception DuplicateRoleType trong tc v add_role. Nhngmt node c th c nhiu Role c cng mt kiu cha (suppertype) chung c tr v bitc v roles_of_type. Hn ch ny bo m cho rng buc v s lng (cardinality).

    PHN 2 : DCH V PERSISTENT OBJECT & EXTERNALIZATION

  • 8/10/2019 Tm Hiu V Corba

    63/252

    63

    Tng qut v dch v Persistent Object (Tnh vnh cu ca i tng):

    Kin trc OMA quy nh rng trng thi (state) ca cc i tng (i vi cc itng c trng thi bn trong internal state) phi khng thay i k t ln gi cui cngn ln gi tip theo. Bi v CORBA cho php lu li mt tham kho n mt i tngtrong mt phin lm vic v ly li tham kho ny trong phin lm vic khc nn trngthi ca mt i tng phi c lu gi bt k thi gian. Nu mt client to ra mt itng trong mt phin lm vic th client hon ton c quyn cho rng trng thi mclient quy nh cho i tng s khng thay i gia cc ln gi tr khi c mt trong cctrng hp sau xy ra : 1.i tng c s dng chung bi cc client khc, v dnh trong trng hp tham kho ca i tng c ng k vi dch v Naming hocc gi n mt i tng khc trong mt tc v no ; 2. Hoc l mt client gi mtbn sao ca tham kho n i tng xa i tng ny. Trong trng hp u tin,trng thi ca i tng c th b thay i bi bt k client no c tham kho n itng, trong trng hp th hai, s tham kho n i tng b xa l khng thc, v do khi nim v tnh vnh cu ca i tng khng cn ngha y. Numt i tng khng c trng thi trong c ngha l tt c cc kt qu tr v ch phthuc vo i s c cung cp lc gi v khng ph thuc vo bt k kt qu no cacc ln gi trc th khng cn n dch v ny.

    Khi nim v tnh vnh cu ca i tng l mt khi nim n gin nu ngdi gc ca client. Theo quan im ca client th mt thc th lun lun hot ngtrong bt k thi im no v do lun lun bo tn cc trng thi ca n. Client khngphi khi ng hoc chm dt s hot ng ca thc th , hoc ghi li hay phc hi litrng thi ca chng. i vi client, y l mt dch v ca OMA.

    Nhng nu ng di gc ca ngi hin thc i tng th y khng phi lmt dch v c sn m h phi vit cc on m duy tr tnh vnh cu ca i tng

    qua cc thi im khc nhau, t lc i tng c to ra cho n khi i tng b hyb. C vi cch lm c iu ny, cch d nht l lm cho i tng lun lun ckch hot trong b nh, tuy nhin n ch dng cho cc i tng nh v dng t b nh.Mt s cc i tng khc dng nhiu b nh v i hi phi c lu tr trng thi quacc phin lm vic hoc ngay c khi h thng b v (crash), i vi cc i tngny, cn phi lu li trng thi ca chng trong cc phng tin lu tr c nh. Mt si tng khc li cho php client ch nh ni chng s c lu tr v phc hi. Do cc i tng ny phi cho php client dng cc tc v store v restoremt cch tngminh v do cc tc v ny phi c xem nh l mt phn ca dch v PersistentObject.

    Kin trc OMA cung cp dch v Persistent Object (POS) chun ha qu trnhny. Sau y l cc cng vic m dch v ny phi lm chun ha vic lu tr v phchi trng thi ca cc i tng :

    vic lu tr c th c lm t ng hoc c ch nh mt cch tngminh bi client.

    vic lu tr c trng thi c tin hnh bt k l mt i tng nhay l mt s cc i tng quan h.

  • 8/10/2019 Tm Hiu V Corba

    64/252

    64

    vic lu tr c tin hnh bt k s phng php lu tr ang c sdng.

    vic lu tr c thc hin qua mt ph rng cc tc v v cc thc thlu tr.

    Ngoi ra, POS cn cung cp mt dch v tnh vnh cu ca i tng theo mhnh hng i tng.

    2.1/KIN TRC CA POS :

    to ra tnh mm do v s chun ha trong POS, kin trc OMA chia dch vny ra lm mt s thnh phn nh sau (c minh ha trong hnh 2.1)

    Persistent Object : mt s i tng t duy tr kh nng persistent ca mnhtrong khi mt s i tng khc cho php client lm iu ny. Thut ng i tng vnhcu vit tt l PO dng ch c hai loi i tng ny. Mt i tng c kh nngpersistent nh k tha v hin thc giao tip PO.

    PID : dng nh danh cho mt i tng persistent. Mt PID hoc PersistantIdentifier c dng nh danh cho trng thi ca ca PO vi khng gian lu tr cnh. Tng t nh tham kho n i tng (Object Reference), mt PID c th cchuyn thnh mt chui (stringified) lu tr v dng li trong cc phin lm vic sau.Tuy nhin, khng ging nh Object Reference, PID khng th c dng nh danhi tng khi gi phng thc ca i tng; n ch c dng trong ng cnh ca POS.

    Client: Nu nh PO k tha v hin thc giao tip ca PO th client ng vai trlm giao tip vi POS.

    Persisten Object Manager: y l ni ra quyt nh, hnh v ch minh ha mtcu trc n gin. Nhng trong thc t c nhiu PDS, kho cha d liu (datastore) vgiao thc (protocol). Persistent Object Manager s qun l tt c cc thnh phn ny.

    Persistent Persistent

    Object Identifier

    Protocol

    Client

    PO

    PDS

    POM

    PID

  • 8/10/2019 Tm Hiu V Corba

    65/252

    65

    Persistent Object

    ManagerPersistent Data

    Service

    Datastore

    HNH 2.1 : Cc thnh phn ca dch v Persistent Object. Cc thnh phn ct mu cha nm tc v giao tip c m t iu khin tnh vnh cu qua cc tc

    v connecthoc store/restore.Persistent Data Service & Protocol : Dch v Persistent Data (PDS) l mt

    thnh phn hin thc giao tip ca giao thc (Protocol) v phi hp vi cc tc vpersistent tht s.

    Datastore: c th n gin l mt file d liu phng (flat file) hoc phc tp hnl mt c s d liu (c th kt hp vi cc hot ng qun l giao dch). Bi v nhiudatastore l th ng nn chng cn c mt PDS kch hot khng gian lu tr v nhnc cc tc v.

    cho n gin, POS dng cng mt tp cc tc v (vi phn ln cc tham sging nhau) cho cc giao tip ca PO, POM v PDS. Cc tc v l :

    2.1.1/iu khin tnh vnh cu (Controlling Persistent) :POS cung cp hai cch iu khin tnh vnh cu ca i tng : Connection v

    Store/Restore.

    Connection: to ra quan h gia d liu ng ca i tng v d liuc nh ca n. Khi kt ni ni c thit lp, cc d liu ny c thc xem nh cng loi; sau khi kt ni chm dt, cc d liu c nh vntip tc duy tr cc gi tr ca chng. Cc tc v kt ni gm c connectv disconnect.

    Store/Restore: cho php client hay i tng iu khin s di chuyn dliu gia khng gian lu tr c nh v cc trng hp dng d liu ng.Cc tc v ca n gm c store v restore.

    Cn mt phng thc khc l delete hy mt PID. Nh trn hnh 2.1, giaotip ca nm tc v ny c sinh ra bi giao tip ca cc i tng Persistent (PO),POM, PDS. iu ny cho php s hin thc ca POS n gin hn cu trc nhiu thnhphn ngh trn, bi v mt yu cu t mt client c th c truyn mt cch ngin t PO n POM v cng vic tht s ca chng l kch hot khng gian lu tr cnh (persistent storage).

  • 8/10/2019 Tm Hiu V Corba

    66/252

    66

    2.2/V D V POS :

    bit cch lm vic ca POS, chng ta hy xem qua mt v d n gin l cchmt client yu cu POS lu li mt i tng ti liu (document) n gin.

    Gi s rng i tng client c PID ca document, v i tng documentc k tha giao tip PO . Do client c th gi tc v storetrn i tng ny vitham s l PID ca i tng document.

    i tng PO n lt mnh li gi tc v storetrn Persistent Object Manager.Tc v ny c thm mt i s :

    void store (in Object obj, in PID p);

    i tng document t tham kho n n lm i s th nht trong tcv ny,tham kho ny s c chuyn n cho PDS bit c i tng no cn c lu tr.Nhng u tin POM phi lm mt s thao tc chun b.

    POM ly thuc tnh datastore_typet PID. Trong bc tip theo, POM cn bitPDS v giao thc no s cdng chung vi nhau. iu ny cha c chun ha, vvy trong bc ny POM phi dng cc tc v khng chun ha (c th on c cctc v ny c hin thc bng IMG IDL) tm ra protocol v PDS no m PO s lmvic. iu ny c ngha l cc PO ch c th lm vic vi mt vi phin bn ca POM, tnht cho n khi OMG a ra mt c t mi v mt phin bn c th hn cho POS.

    Do , trong bc ny, dng cc phng thc do nh cung cp a ra, POM tmra PDS v protocol dng cho kiu ca i tng document v PID ca n. Sau n gitc v storeca PDS, tc v ny mi thc s l tc v cn thit. Tc v storeny cntham s l tham kho ca i tng PO

    void store (in Object obj, in PID p);

    PO v PDS dng chung mt protocol. C mt s cc protocol khc nhau cthit lp, v mt trong nhng cng vic ca POM l chn ng PDS dng chung protocolvi i tng PO. Dng protocol ny, PDS yu cu PO gi cc d liu ca n cho mnhv lu li n trn khng gian lu tr c nh.

    2.3/PROTOCOL (GIAO THC)

    POS m t ba loi protocol c trng v chp nhn nhiu loi khc. Ba loiprotocol m POS a ra l :

    2.3.1/Giao thc Direct Access (giao thc truy xut trc tip)

    Cch trc tip nht thit lp v ly ra cc gi tr kt hp vi cc i tn g ldng cc thuc tnh (attribute). Direct Access (truy xut trc tip) hay DA l giao thcxy dng da trn khi nim ny, giao thc ny cung cp cch thc to ra cc d liui tng trong PDS m cc thuc tnh ca cc i tng ny c bo m tnh vnhcu nh dch v. c t v giao thc ny hon tt bao gm cc giao tip c trng ca

  • 8/10/2019 Tm Hiu V Corba

    67/252

    67

    DA cho PID, PO, PDS v giao thc. Tuy nhin mt s giao tip c xem nh l tychn, cho php mt s h thng hin thc dch v ny theo cch t nhin hn.

    S dng giao thc DA, mt ngi s dng c th thit lp v ly ra cc thuc tnhtrn cc i tng persistent theo cch thng thng l dng cc tc v IDL; im khcbit l dch v s gi cho gi tr ca cc thuc tnh khng thay i. Cch dng m hnh

    IDL c thit lp sn nh vy cho php vic s dng dch v c d dng. c t v dch v cn m rng cho php truy xut ng (dynamic access) n cc

    thuc tnh persistent, v cng cho php gom nhm (clustering) cc d liu ca cc itng trong cc tc v x l nhm.

    2.3.2/Giao thc ODMG-93 :

    Giao thc ODMG-93 c xy dng da trn c t ca Object DatabaseManagement Group (Nhm qun l c s d liu i tng) a ra vo nm 1993 chocc c s d liu i tng. N l mt tp cha (superset) ca giao thc DA; y l mt

    giao thc thch hp nht cho nhng ngi hin ang s dng mt OODB tng thch vic t ODMG-93, bi v cc d liu c sn s c chuyn trc tip t PDS ndatastore m khng cn phi chuyn i.

    2.3.3/Giao thc Dynamic Data Object (Giao thc d liu i tng ng) :

    Giao thc Dynamic Data Object hay DDO l mt i din datastore trung lp cacc d liu persistent ca mt i tng. Dng giao thc ny, ngi s dng c th thamkho n tt c cc d liu persistent ca mt i tng vi mt PID n. iu ny rtthun tin nu nh chng ta phi x l nhiu mc d liu mt lc v t thun tin hn nuchng ta ch x l mt mc d liu n nh bitmap.

    2.3.4/Cc giao thc khc :

    Mt s cc giao thc khc c c t v hin thc. Tuy nhin chng ta skhng cp n chng trong bi vit ny.

    2.4/DATASTORE :

    y l thnh phn cui cng ca POS. Mt s cc giao tip ca datastore c thc c nh ngha; mt s khc th khng cn nh ngha v chng tng ng vi ccgiao thc. V d nu datastore l mt c s d liu ODMG v cc i tng dng giaothc ODMG-93 th PDS khng cn phi nh dng li d liu c trao cho n v i trc

    tip vo OODB.POS nh ngha mt n th DS_CLI vi tp hp cc giao tip ca n nhm chun

    ha lp lu tr dng vi DDO PDS. CLI l t vit tt ca Call Level Interface; mt cchy hn, n thng c bit di tn gi X/Open Data Management Call LevelInterface, y l mt chun ca X/Open c thit k ghi li cc c s d liu v ccfile h thng. Giao tip ny c chun ha to ra s thun li cho cc cng ty munt hin thc POS hoc cung cp datastore cho cc POS ca cc nh cung cp khc. Vi

  • 8/10/2019 Tm Hiu V Corba

    68/252

    68

    vai tr l ngi s dng hoc kin trc h thng, chng ta ch cn nh l POS c th dngcc bng quan h hoc cc file VSAM nh l mt chn la lu tr ca n.

    2.5/DCH V EXTERNALIZATION (DCH V LU TR M RNG)

    Dch v Externalization (ES) nh ngha cc giao tip, giao thc v quy c ghiv pht litrng thi ca i tng di dng mt dng d liu chun (data stream) cth c bt ly bi mt mt phng tin ghi thch hp hoc gi i trn mng.

    Externalization tng t nh persistent bi v trng thi ca cc i tng clu tr vnh vin. Tuy nhin dch v khng ging vi POS ch n khng cung cp mtch cho php lu tr ring bit tng bin ca mt i tng khi c mt thay i trnbin , do , nu c mt thnh phn no ca i tng b thay i th dch v ny bucphi ghi li ton b trng thi ca i tng.

    Externalization tng t nh tc v di chuyn hoc sao chp , trong trng thica cc i tng c l ra (externalized) mt v tr (location) v c thu li

    (internalized) v tr khc (remote location). C ba im khc bit quan trng l : Thnht, khng c cch no ch nh v tr khi bt u tc v ( move v copyl cc tc vn; ES dng cp tc v externalize v internalize); Th hai, vi ES, tc v internalizec th xy ra ti mt v tr khng c ktni vi v tr ban u qua bt k mng no; Vth ba l tc v internalize c th tr hon bao lu cn