EJB2 vs EJB3
EJB (ኢንተርፕራይዝ JavaBeans) በJava EE (Java Platform, Enterprise Edition) መግለጫ ውስጥ የሚገኝ የጃቫ ኤፒአይ (መተግበሪያ ፕሮግራሚንግ በይነገጽ) ነው። ኢጄቢ ለድርጅት አፕሊኬሽኖች እድገት የስነ-ህንፃ ሞዴል ይገልፃል። ይህ የድርጅት አፕሊኬሽኑን የንግድ አመክንዮ መያዝ የሚችል የሚተዳደር አገልጋይ-ጎን ሞዴል ነው። IBM በ1997 የፈጠረው የኢጄቢ የመጀመሪያ ፈጣሪ ነው። Sun Microsystems በ1999 ተቀብሏል።
ከኢጄቢ መግቢያ በፊት፣በኋላ-መጨረሻ የንግድ ኮድ ውስጥ ላሉ ችግሮች መፍትሄዎች በፕሮግራም አውጪዎች በተደጋጋሚ ሲተገበሩ ታይቷል።በውጤቱም፣ EJB እነዚህን እንደ ጽናት፣ የግብይት ታማኝነት እና ደህንነትን የመሳሰሉ የተለመዱ ችግሮችን ለመፍታት ተጀመረ። EJB እነዚህን የኋላ መጨረሻ ችግሮች ለመፍታት መደበኛ መንገዶችን ያቀርባል፣ አፕሊኬሽኑ ሰርቨር ግብይቶችን እንዴት እንደሚያስኬድ፣ ከጃፓ (ጃቫ ፐርሲስቴንስ ኤፒአይ) አገልግሎቶች ጋር ማቀናጀት፣ የኮንፈረንስ ቁጥጥርን ማስተናገድ፣ JMS (የጃቫ መልእክት አገልግሎት) ዝግጅቶችን ማስተናገድ፣ የስያሜ ችግሮችን በJNDI መፍታት (የጃቫ ስም እና ማውጫ በይነገጽ)፣ በJCE (ጃቫ ክሪፕቶግራፊ ኤክስቴንሽን) እና JAAS (ጃቫ ማረጋገጫ እና ፍቃድ አገልግሎት) ደህንነቱ የተጠበቀ ፕሮግራሞችን ማዳበር፣ ክፍሎችን ማሰማራት፣ ከ RMI-IIOP (የጃቫ የርቀት ዘዴ መጠየቂያ በይነገጽ በበይነመረብ ኢንተር ኦርብ ፕሮቶኮል) በርቀት ይገናኙ) ፣ የድር አገልግሎቶችን ማዳበር፣ ያልተመሳሰሉ ዘዴዎችን ጥራ እና የሰዓት ቆጣሪ አገልግሎቱን ተጠቀም።
EJB2
ኢጄቢ2 (ኢጄቢ 2.0) በነሐሴ 22 ቀን 2001 ተለቀቀ። በተለያዩ አቅራቢዎች የተዘጋጁ መሳሪያዎችን በማጣመር በጃቫ ውስጥ የተከፋፈሉ ነገሮችን ተኮር አፕሊኬሽኖችን ለማዘጋጀት ዝርዝር መግለጫን ይገልጻል።የEJB2 ዋና ዋና ግቦች አንዱ ፕሮግራመሮች የኢንተርፕራይዝ አፕሊኬሽኖችን በቀላሉ እንዲያዳብሩ መፍቀድ ነበር ዝቅተኛ ደረጃ ዝርዝሮችን ለምሳሌ ባለብዙ-ክር እና የግንኙነት ስብስብ። ሌላው ዓላማ ፕሮግራመሮች አንድ ጊዜ “ቢን” እንዲጽፉ እና የትም ቦታ ሳይጠናቀሩ እንዲሮጡ መፍቀድ ነበር (የጃቫ ፕሮግራሚንግ ቋንቋን “አንድ ጊዜ ጻፍ ፣ በየትኛውም ቦታ መሮጥ” የሚለውን መፈክር በማክበር)። በተጨማሪም EJB2 በተለያዩ አቅራቢዎች የተገነቡ አካላት በቀላሉ እንዲተባበሩ እና ሻጮች ኢጄቢዎችን የሚደግፉ ማራዘሚያዎችን እንዲጽፉ ለማድረግ ያለመ ነው።
EJB3
ኢጄቢ3 (ኢጄቢ 3.0) በሜይ 11፣ 2006 ተለቀቀ። ኢጄቢ3 በቀደሙት ስሪቶች ጥቅም ላይ በዋሉት የማሰማራት ገላጭ ምትክ ማብራሪያዎችን እንዲጠቀሙ በመፍቀድ ፕሮግራመሮችን ሕይወት በጣም ቀላል አድርጓል። EJB3 የቢዝነስ በይነገጽ እና ያንን የንግድ ስራ በይነገጽ መተግበር የሚችል ልዩ አካል ባቄላ ይዟል፣ ይህም የቤት/የርቀት በይነ መጠቀሚያዎችን እና የ ejb-jar.xml ፋይልን ያስወግዳል። አጠቃላይ የEJB3 አፈጻጸም ከ EJB2 ጋር ሲነጻጸር በጣም የተሻሻለ ነው፣ እና በዚህ የEJB ልቀት ውስጥ የመዋቅር፣ የመተጣጠፍ እና የመንቀሳቀስ ችሎታ ከፍተኛ ጭማሪ አለ።
በኢጄቢ2 እና ኢጄቢ3 መካከል ያለው ልዩነት ምንድን ነው?
EJB3 በEJB2 ላይ በውቅረት እና በአፈጻጸም ላይ የሚታይ መሻሻል አለው። ለዚህ የአፈጻጸም ማሻሻያ አንዱ ምክንያት POJO (Plain Old Java Object) በሜታዳታ እና የኤክስኤምኤል ማሰማራቻ ገላጭዎችን በ EJB3 ለዕቃ ማመሳከሪያዎች ከሚጠቀሙት የJNDI ፍለጋዎች ይልቅ መጠቀም ነው። የEJB3 ውቅር በጣም ቀላል ነው ምክንያቱም ፕሮግራሚው የቤት/ርቀት በይነ መጠቀሚያዎችን እና ሌሎችን (ለምሳሌ SessionBean) መተግበር አያስፈልገውም ይህም የእቃ መመለሻ ዘዴዎችን (እንደ ejbActivate እና ejbStore ያሉ) መጠቀምን ያስወግዳል።
ከዚህም በተጨማሪ ኢጄቢ3 በተለዋዋጭነት እና በተንቀሳቃሽነት ዘርፍ ከኢጄቢ2 የተሻለ ነው። ለምሳሌ፣ የ EJB3 አካላትን ወደ DAO (Data Access Object) መቀየር ቀላል ሲሆን በተቃራኒው ደግሞ EJB3 አካላት ክብደታቸው ቀላል ነው (ከከባድ ክብደት EJB2 አካላት በተቃራኒ ከላይ የተጠቀሱትን መገናኛዎች ተግባራዊ ያደርጋሉ)። በ EJB3 የተጻፉ የውሂብ ጎታ ጥያቄዎች በጣም ተለዋዋጭ ናቸው ምክንያቱም የጠራ EJB-QL ይጠቀማል፣ በቀድሞው የ EJB-QL ስሪት ምትክ፣ ብዙ ገደቦች ነበረው።EJB3 ለሁሉም የውሂብ ግብይቶች የበለጠ አጠቃላይ JPAን በመደገፍ ሁሉንም የEJB2 ተንቀሳቃሽነት ጉዳዮች ያስወግዳል (የህጋዊ አካል ባቄላ ለዳታቤዝ መዳረሻ ይጠቀማል)።
ከEJB2 በተለየ፣ ለማስፈጸም የEJB መያዣ ከሚያስፈልገው፣ EJB3 ኮንቴይነሮችን ሳይጠቀም በገለልተኛ JVM (ጃቫ ቨርቹዋል ማሽን) ውስጥ ሊተገበር ይችላል (ይህ ሊሆን የቻለው መደበኛ መገናኛዎችን ስለማይተገበር)። እንደ EJB2፣ EJB3 በሶስተኛ ወገኖች ከሚቀርቡት ጽናት አቅራቢዎች ጋር በቀላሉ ሊሰካ ይችላል። በ EJB3 እና EJB2 መካከል ያለው ሌላው አስፈላጊ ልዩነት EJB3 በማብራሪያ ላይ የተመሰረተ ደህንነትን ሊጠቀም ይችላል, EJB2 ደግሞ የማሰማራት ገላጭዎችን ደህንነትን ይጠቀማል. ይህ ማለት በEJB3 ውስጥ የማዋቀር እና የማዋቀር ተግባራት በጣም ቀላል ናቸው፣ እና ከEJB2 ጋር ሲነፃፀሩ ከፍተኛ የአፈፃፀም ቅነሳ አለ።