1.1.1 J2EE l g Java 2 Platform Enterprise Edition vit tt l J2EE, nh ngha mt chun pht trin nhng ng dngthng mi a tng (multitier enterprise applications). J2EE platform cha ng nhng tnh nng tt ca Java 2 Platform nh "vit mt ln, chy mi ni", JDBC (Java Database Connectivity) truy cp c s d liu, CORBA kt hp vi nhng ti nguyn cc xy dng trn nn tng l Java 2 Platform, J2EE m rng h tr cho nhiu cng ngh mi nh Enterprise JavaBeans, Java Servlets, JavaServer Pages v XML. 1.1.2 Kin trc ca J2EE J2EE nn tng s dng mt m hnh ng dng phn tn a tng.
n Error! No text of specified style in document.-1 M n a tng ca J2EE Trong m hnh ng dng J2EE c nhiu tng: Tng khch hng (client tier), tng web (web tier),tng thng mi(business tier)v tng h thng thng tin thng mi (enterprise information system tier). Tng thng mi v tng web nm trn mt my ch ng dng gi l my ch ng dng (application server) hay my ch J2EE (J2EE server).My ch J2EE cung cp nhng dch v cn thit cho nhng thnh phn (component) ca tng thng mi v tng web.
C hai loi khch hng (client) l: Nhng khch hng ng dng (application clients) v nhng khch hng web (web client). Khch hng web truy cp ti nhng thnh phn trong tng web l cc lp Java Servlet hay Java ServerPages.Nhng khch hng ng dng l nhng ng dng c lp, chng truy cp trc tip ti cc thnh phn trong tng thng mi.
n Error! No text of specified style in document.-2 Containers v Components J2EE c cc loi container nh : - Web Container : Qun l s thc thi ca cc thnh phn web, v container ca chng chy trong my ch J2EE (J2EE server). - EJB Container : Qun l s thc thi ca cc thnh phn EJB, cc thnh phn EJB v container ca chng chy trong J2EE server. - Application client Container : Qun l s thc thi cc thnh phn ca ng dng client. - Applet Container : Qun l s thc thi ca applets(ng dng k sinh). Cc cng ngh trong J2EE : 1) Java Database Connectivity (JDBC) API: JDBC l mt tp hp cc giao din cho php cc ng dng Java truy cp vo c s d liu bt k. API ny c cng mt mc ch nh ODBC (Open Database Connectivity) Microsoft. 2) Remote Method Invocation (RMI): RMI l mt API cho php cc i tng Java giao tip t xa vi cc i tng khc. 3) Java IDL: IDL (Interface Definition Language) l mt ngn ng nn tng tiu chun khai bo c lp c s dng xc nh cc giao din i tng trin khai cung cp v i tng khch hng gi. Java IDL cho php bt k i tng Java giao tip vi cc i tng khc trong ngn ng bt k bng phng tin ca IDL. 4) Enterprise Java Beans: ng gi cc logic thng mi (business logic) v h tr thc hin giao tc v bo mt. 5) Servlets v Java Server Pages (JSP): Cng ngh dng trong xy dng nhng ng dng web. 6) Java Message Service (JMS): Tp APIs cho php ng dng to, gi, nhn, v c thng ip bt ng b. 7) Java Transaction API (JTA): JTA cho php nhng ng dng J2EE thc hin nhng giao tc phn tn (distibuted transaction). 8) JavaMail: Cho php thnh phn java gi v nhn mail. 9) Java API cho x l XML (Java API for XML Processing -JAXP): XML l mt nh dng d liu cho cc ti liu thay th cu trc trn Web. JAXP cho php cc ng dng Java phn tch v chuyn i ti liu XML. XML c s dng nhiu trong J2EE nh l mt nh dng d liu. 10) Java Naming v Directory Interface (JNDI): JNDI l mt giao thc cung cp mt tp API chun cho php truy cp ti nhng dch v naming v directory. 11) Java Persistence API (JPA) : Cho php nh x gia mt lp java vi cc ct trong mt bng. 1.2 Enterprise J ava Bean 1.2.1 Enterprise Java Bean l g? EJBs l cc thnh phn cng ngh pha my ch dng ng gi lp logic nghip v (business logic) v h tr mnh vic thc hin cc giao tc v bo mt. EJB cng c mt tch hp mt ngn xp cho messaging, scheduling, remote access, web service endpoints (SOAP and REST), dependency injection, component life cycle,..vv. Ngoi ra, EJBs cn kt hp vi cc cng ngh khc ca Java SE v Java EE nh JDBC, JavaMail, JPA, Java Transaction API (JTA), Java Messaging Service (JMS), Java Authentication and Authorization Service (JAAS), Java Naming and Directory Interface (JNDI), and Remote Method Invocation (RMI). Ngy nay EJBs l mt cch n gin cho cc vic pht trin cc m hnh lp trnh Java pha my ch, gim phc tp trong khi mang li kh nng ti s dng v kh nng m rng ti cc ng dng thng mi quan trng. Tt c nhng iu t c ny u xut pht t mt lp java nguyn thy(Plain old Java Object-POJO) s c trin khai vo mt thng cha (container). Cc loi EJB:
Session bean dng ng gi logic nghip v (business logic) cp cao v l phn quan trng nht ca cng ngh EJB. Cc loi session bean: - Stateless: Session bean khng cha trng thi giao tip gia cc phng thc v bt k th hin (instance) no ca n c th c s dng cho bt k khch hng no. - Stateful: Session bean c cha trng thi giao tip vi khch hng (client) trong sut phin lm vic (session). Message-driven beans (MDBs): c s dng lin kt cc h thng bn ngoi bng vic nhn cc thng ip bt ng b s dng JMS (Java Message Service). MDBs ch yu c s dng tch hp cc h thng thng ip hng thnh phn gia (message-oriented middleware - MOM). Entity Bean: Nhng thc th bean kt ni vi c s d liu thng qua nh x gia mt lp java v mt ct trong mt bng trong c s d liu . 1.2.2 Nng c im to nn t mn ca Enterprise Java Bean EJB l mt thnh phn pha my ch v cn c thc thi trong mt thng cha (container). Mi trng thc thi ny cung cp cc tnh nng ct yu cho nhiu ng dng thng mi nh: - Remote client communication: Cc EJBs s dng giao thc RMI Remote Method Invocation giao tip gia client v cc lp bean. V vy EJB c th c triu gi t nhiu my ch khc nhau, phc v cho nhiu loi client (Desktop Application, Web Application). Rt hu ch khi kt hp vi cc tnh nng khc xy dng nn mt kin trc phn tn a tng hot ng mt cch n nh. - Dependency injection: Ph thuc tim, cho php bean d dng truy cp ti nhng ti nguyn khc. - State management: Cho php cc stateful session bean qun l trng thi giao tip vi tng client ring bit trong mt phin lm vic. - Pooling: H cha, cho php qun l cc th hin bean ang sn sng thc hin cc yu cu t pha client. - Component life cycle: Cho php Container thng bo cho bean bit khi chuyn t trng thi ny sang trng thi khc. - Messaging: H thng qun l cc thao tc gi v nhn cc thng ip bt ng b s dng JMS API. - Transaction management:Qun l vic thc thi cc giao tc, m bo cc giao tc thc hin mt cch an ton. - Security: Bo mt cho cc phng thc, lp bean. S dng chng thc JAAS, cho php phn quyn truy cp trn phng thc hoc lp bean da vo vai tr ca client. - Concurrency support: H tr gii quyt khi c nhiu yu cu ti nguyn pht sinh cng mt thi im. m bo d liu c ton vn v nht qun - Interceptors: S chn ng li triu gi mt phng thc, cho php cung cp cc dch v chng thc, kim tra, trc khi phng thc c triu gi.