You are on page 1of 5

2/ M hnh J2EE v Client-server

2.1. J2EE J2EE l thut ng vit tc ca Java 2 Platform, Enterprise Edition , y l mt distributed computing framework (khng bit thut ng ting Vit l g :-D, mong qu v lng th) ca Sun Microsystems. Bi vit ny da trn 1 chng trong 1 cun Study Guide ca Sun v J2EE, mc ch khng phi l m t chi tit v J2 m l em li cho ngi c nhng hiu bit c bn v J2EE v cc kh nng ca n. 1. M u J2EE l mt platform pht trin nhng ng dng distributed . J2EE bao gm nhng phn sau (c xem nh l J2EE Framwork): J2EE Platform - mt platform chun hosting cc ng dng J2EE. Reference Implemetation - mt application server h tr chun mi nht ca J2EE, ngoi tr nhng tiu im ca n l nhng c tnh mi trong phin bn chun ca J2EE, y cha phi l 1 sn phm hon chnh. Compatibility Test Suite - mt cng c kim tra xem mt application server c tng thch vi chun J2EE hay khng. Thiu ci ny th mi nh cung cp c th hiu v t pht trin chun J2EE theo nhng hng khc nhau m nh th th lm gim i th mnh ca J2EE platform l write once, run anywhere. Application Programming Model (APM) Blueprint mt m hnh ng dng tham kho, c cung cp minh ho cch pht trin ng dng dng J2EE 2. Pht trin chng trnh dng J2EE

J2EE Framework cho php pht trin nhng ng dng distributed bng cch cung cp 1 tp cc dch v c bn nh qun l transaction, kim tra security, qun l trng thi, qun l ti nguyn. Cc application serve u cung cp nhng dch v c bn ny ca J2EE Framework. 3. J2EE API Nhng cng ngh c s dng trong J2EE bao gm: Java 2 Standard Edition (J2SE) - trc kia cn gi l JDK Java Database Connectivity (JDBC) - Mt API chun dng kt ni Java Platform vi c s d liu. RMI-JRMP Remote Method Invocation (RMI) , mt chun dng gi hm t xa da trn Java Remote Message Protocol (JRMP) Java Interface Definition Language (Java IDL) - mt dch v kt hp Common Object Request Broker Architecture (Corba) vo trong Java Platform cung cp tnh interoperability thng qua chun IDL . Remote Method Invocation Internet Inter- ORB Protocol (RMI-IIOP) - Mt giao thc cho php lp trnh vin RMI kt hp nhng li ch ca RMI API v giao thc CORBA IIOP giao tip vi CORBA-compliant client c pht trin bi bt c ngn ng no tun theo CORBA. Enterprise JavaBean (EJB) - mt kin trc component pht trin v trin khai cc ng dng kiu component-based distributed. Servlet tng tc vi Web client thng qua c ch request response. C ch ny da trn giao thc HTTP. Java Server Page (JSP) Dng xy dng nhng ng dng c cha ni dung web ng nh l HTML, DHTML, XML Java Message Service (JMS) - mt API giao tip vi Message Oriented Middleware (MOM) cho php truyn nhn message theo c ch point-to-point v publish/subcribre. Java Naming and Directory Interface (JNDI) - mt interface duy nht dng truy cp nhng kiu dch v khc nhau v naming v directory. Java Transaction API (JTA) - mt tp API cho php qun l transaction. ng dng c th s dng JTA start, commint, abord transaction. JavaMail - mt API cung cp 1 framework platform-independent v protocol-independent (khng ph thuc giao thc v platform) xy dng ng dng v mail v messaging JavaBean Activation Framework (JAF) - tp cc API c s dng bi cc package khc nh l JavaMail,Bn c th dng JAF xc nh kiu d liu, ng gi truy cp n d liu , m rng nhng tc v da trn d liu v khi to mt bean tng ng thc hin nhng tc v . V d JavaMail dng JAF xc nh object no s c khi to da trn kiu MIME ca object. 4. Cc thnh phn ca J2EE J2EE c xy dng trn mt m hnh container component. Bn container component ct li cung cp mi trng cho cc component khc ca J2EE thng qua cc API. Nhng component ct li ny lin quan n bn kiu container c h tr trong J2EE bao gm, Application Client, Applet, Web v EJB: Java Application component ny l 1 chng trnh standalone chy bn trong Application Client container. Application Client container cung cp nhng API h tr cho messaging, remote invocation, database connectivity v lookup service. Application Client container i hi nhng

API sau: J2SE, JMS, JNDI, RIM-IIOP v JDBC. Container ny c cung cp bi nh cung cp application server Applet Applet component l java applet chy bn trong Applet container, chnh l web browser c h tr cng ngh Java. Applet phi h tr J2SE API. Servlet v JSP y l Web-based component chy bn trong Web container, c h tr bi Web Server. Web container l mt mi trng run-time cho servlet v jsp. Web Container phi h tr nhng API sau: J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP v JDBC. Serlet v JSP cung cp mt c ch cho vic chun b, x l, nh dng ni dung ng Enterprise JavaBean (EJB) EJB component l business component chy bn trong EJB container. EJB component l phn nhn, ct li ca ng dng J2EE. EJB container cung cp cc dch v qun l transaction, bo mt, qun l trng thi, quay vng ti nguyn (resource pooling). EJB container phi h tr nhng API sau: J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP v JDBC. 5. S dng EJB EJB cha nhng business logic ca ng dng, cho nn c th ni rng EJB chnh l phn li ca phn ln cc ng dng distributed cho enterprise. Mt enterprise bean c nhng c im sau: Cha cc business logic thao tc vi d liu. c to ra v c qun l bi mt container. X l cc truy cp ca client Cha metadata, nh l thuc tnh ca transaction v security, ring bit vi cc bean. Cung cp dch v qun l transation, qun l trng thi, quay vng ti nguyn v bo mt. Nu bn thit k 1 ng dng khng cn c h tr transaction hoc bo mt, lc nn tr li cu hi c nn dng n EJB hay khng. Mi EJB bt buc phi c nhng interface v class sau: Home Interface - home interface extend javax.ejb.EJBHome. N ng vai tr nh mt Factory pattern khi to cc instance ca EJB Remote Interface remote interface extend javax.ejb.EJBObject. Remote interface cha cc business method , c gi t client. N ng vai tr nh 1 proxy ca EJB. Bean Class - cha phn ci t ca cc method khai bo trong remote interface. Bean class extend javax.ejb.SessionBean hoc javax.ejb.EntityBean hoc javax.ejb.MessageDrivenBean. 5.1 S dng Session v Entity Bean Cc ng dng cho enterprise cn nhng component linh ng trong business logic. Cc component phi c kh p ng stateless service, conversational state, v h tr vic chia x d liu. EJB c 2 loi bean chnh ng vi cc nhu cu khc nhau ca component trong ng dng: session v entity. Entity bean phc v cho vic persistence v sharing d liu. Nh th khng c ngha l session bean khng th persist object c, nhng entity bean c thit k chuyn dng cho mc ch ny. Session bean th phc v cho cc bussiness logic v wworkflow lin quan n ng dng J2EE, tng ng vi nhu cu v stateless service v conversational state. 5.2 Stateless Bean v Stateful Bean

C 2 loi session bean: stateless v stateful. Stateless Beans Stateless bean khng gi conversational state (tm dch l trng thi giao tip) ca client. Tuy nhin khng c ngha l stateless bean khng th gi c trng thi, nhng trng thi ny khng bo m xc nh client no gi n bean ny. iu ny c ngha l bn c th dng stateless bean thc hin bt c hnh ng no trong ng dng Stateful Beans Stateful bean c kh nng gi conversational state (tm dch l trng thi giao tip) ca client. Tt nhin l c nhiu cch gi consersational state trong ng dng, nhng nu state cn phi gn vi business logic th n nn c lu gi trong stateful bean. V d in hnh nht ca session stateful bean l component shopping cart trong cc ng dng mua hng trc tuyn. 5.3 S dng MessageDrivenBean MessageDrivenBean l mt im mi trong chun EJB 2.0 (EJB 1.1 ch nh ngha 2 loi bean l session v entity). Mc ch ca MesssageDrivenBean l phc v cho nhu cu v cc asynchronous service ca cc component. Bi v session v entity bean ch phc v cc dch v loi synchronous. Do cch s dng MessageDrivenBean c phn ging vi session stateless bean, ch khc cch gi bean, vi MDB th client phi gi message n MDB thc hin cc hm trong MDB. 5.4 S dng Container-Managed Persistence C 2 cch 1 entity bean persist object: container-managed persistence (CMP) v beanmanaged persistence (BMP). Trong CMP, container iu khin vic ci t cn thit cho cc tc v chn, c, ghi, cp nht object trong mt data source. Cn trong BMP, th LTV phi t ci t cc code cho cc tc v trn. CMP l tng cho vic pht trin ng dng v n khng i hi LTV phi thay i code mi khi data model thay i. Tuy nhin c c tnh linh hot, CMP khng cho php sinh ra nhng cu lnh SQL hiu qu. Hin nay cc cng c phc v vic mapping object vi c s d liu vn cn ang trogn qu trnh pht trin v cha chin mui. Trong khi ch i CMP pht trin hon thin th BMP cng vi pattern DAO c l l 1 gii php kh tt. 5.5 S dng Data Access Object Khi bn quyt nh dng BMP, c ngha l bn s phi t coding cc cu lnh SQL trong entity bean ca bn. gim s ni kt ca entity bean vi cc cu lnh SQL cn thit cho cc vic c, ghi, xo , cp nht object, bn c th to ra mt DAO pattern ng gi cc cu lnh SQL . Bng cch ny bn lm gim s ph thuc ca bn vo code v s thay i ca data model. Ni cch khc nu c s thay i th BMP entity bean ca bn vn c th gi nguyn v bn ch phi sa li phn DAO thi. DAO cha code phc v vic c , ghi, cp nht xo object trn 1 data source. N cho php 1 entity bean c th nh ngha nh 1 BMP, nhng sau ny khi cc cng c h tr cho CMP tr nn hon thin hn thi entity bean ny c th chuyn sang thnh CMP, v DAO s c thay th bi s h tr CMP ca container.

Nu bn mun tm hiu thm v DAO pattern , bn c th xem a ch sau: http://java.sun.com/blueprints/patterns/DAO.html 2.2. M hnh client-server s dng J2EE

You might also like