Java EE 5 Хөрсний давуу талууд
Аль болох богино хугацаанд их ажлыг чанартай хийж гүйцэтгэхийг хүн бүхэн хүсдэг. Аливаа шинэ технологийн зорилго нь хүний хүчин зүйлийг аль болох багасгаж ач холбогдол багатай хэрнээ цаг хугацаа их шаарддаг "бохир" ажлуудыг автоматжуулах явдал байдаг. Бохир ажлууд олон бий. Багаж гэдэг зүгээр нэг хөдөлмөрийн зэвсэг төдий биш. Өнөө цагт энэ нь өөртөө бүхэл бүтэн гүн ухаан, шинэ сэтгэлгээ, шинэ хандлага, шинэ арга барил, шинэ урлагыг агуулдаг. Зөвхөн хүнийг хөгжүүлнэ гэсэн өрөөсгөл хандлагаар үйлдвэрлэлийн бүтээмжийн асуудалд хандах нь учир дутагдалтай, бас эрсдэлтэй. Нэгэн цогц шийдлийг агуулсан шинэ багаж, шинэ технологийн талаар хийсэн нэгэн ярилцлагыг та бүхэнд толилуулъя.
Java EE 5 Хөрсний давуу талууд: Мэргэшсэн Инженер Билл Шеннонтой хийсэн ярилцлага.
Жава Хөрс, Enterprise Edition 5 (Java EE буюу J2EE) хэрэглээнд гарлаа. Шинэ хувилбарын тасархай онцлог гэвэл шинэ бүтээгдэхүүнийг зах зээлд гаргах цагийг ихээхэн хэмнэхэд чиглэгдсэн илүү эвлэг, илүү хүчтэй, илүү цомхон шийдлүүд юм. Энэ юу болох талаар Sun Microsystems пүүсийн Мэргэшсэн Инженер Билл Шенноноос асууж тодруулсан юм.
А: Java EE 5 ашиглан хөдөлмөрөө хөнгөвчлөх ямар боломжууд нэмэгдсэн талаар тодруулахгүй юу?
Х: Хөгжүүлэгчдийн хөдөлмөрийг хөнгөвчлөх маш олон зүйл сэдсэн, гэхдээ яг юунаас эхлэхээ мэдэхгүй байна. Тоймолж хэлбэл таны ашиглах багаж чинь эрс сайжирсан гэх болов уу.
Юуны өмнө заавал байрлуулалт тодорхойлогч /deployment descriptor/ ашиглах шаардлагагүй болж байна. Хамгийн энгийн зүйл хийхэд, жишээ нь олон модуль нэгтгэн "ear" файл үүсгэхийн тулд тэдгээр модуль хаана байгаа жагсаалтыг байрлуулалт тодорхойлогч дотор бичих шаардлага гардаг. Одоо бол ингэх шаардлагагүй, ердөө л тохирох газар нь тохирох файлаа хийх хэрэгтэй, жишээ нь бүх нийтийн сангуудаа "lib" дотор хийнэ гэх мэт.
Хялбар жишээ авч үзье. Урьд нь вэб үйлчилгээ байгуулахын тулд тухайн вэб үйлчилгээгээ тодорхойлсон Жава үүд /interface/, мөн тухайн вэб үйлчилгээг хэрэгжүүлсэн Жава анги, контайнертаа зориулан тухайн үйлчилгээний талаархи мэдээллийг дүрсэлсэн байрлуулалт тодорхойлогч, хийгээд вэб үйлчилгээ ажиллуулагч орчиндоо /runtime/ зориулан вэб үйлдлүүд болон жава ангиудын хамаарлыг тусгасан тогтоцын /configuration/ файл зэргийг бичих шаардлага гардаг байсан. Хэрэглэгдэхүүн /application/ бүрийн хувьд эдгээр нь бараг өөрчлөгддөггүй ижилхэн давтагддаг зүйл байлаа. Жава ЕЕ 5 гарснаар тухайн вэб үйлчилгээг хэрэгжүүлсэн цорын ганц анги бичих замаар энэ бүхнийг хийх боломжтой болсон. Эх код дотор оруулсан товчлол /annotation/, эсвэл товчлолгүй үед яах ёстойг заасан заяамал дүрэм зэрэг дээр тулгуурлан үлдсэн бүх ажлыг контайнер өөрөө автоматаар хийнэ.
Хялбархан вэб үйлчилгээний кодыг бүрэн эхээр нь дор харууллаа:
package endpoint;
import javax.jws.WebService;
@WebService
public class Hello {
public String sayHello(String param) {
return "Hello " + param;
}
}
Хэмнэх хугацаа
А: Өмнөх хувилбартайгаа харьцуулахад Жава ЕЕ 5 ашигласнаар хөгжүүлэгчдийн enterprise хэрэглэгдэхүүн бичихэд зарцуулагдах хугацаа нь хэр зэрэг хэмнэгдэхийг барагцаалан хэлж болох уу?
Х: Мэдээж үүнийг хэмжих нь түвэгтэй, ямар төрлийн хэрэглэгдэхүүн бичиж буйгаас ихээхэн хамаарна. Харьцангуй хялбар хэрэглэгдэхүүний хувьд, хэрэглэгдэхүүнийг хөгжүүлэхэд зарцуулах хугацаа нь тухайн хэрэглэгдэхүүн дэхь кодын мөрийн тоотой шууд хамааралтай. Энэ тохиолдолд, мөрийн тоо бараг хоёр дахин цөөрсөн гэж болно. Мөн иймэрхүү хэрэглэгдэхүүн бичихийн тулд ойлгож мэдсэн байх шаардлагатай ухагдахуунуудын тоо цөөрсөн гэдгийг нэмэж тооцвол хэмнэлтийн хэмжээ бүр их гарна. Томоохон хэмжээний хэрэглэгдэхүүний хувьд гэвэл, хэрэглэгдэхүүний амин сүнс нь бизнесийн логик хэсэг байдаг, энд сүрхий ялгаа гарахгүй. Харин судлаж эзэмших ёстой ухагдахуунуудын тоо цөөрч тогтолцоо бүхэлдээ хялбарчлагдснаар ийм хэрэглэдэхүүн байгуулахад илүү амар хялбар болно. Та жинхэнэ ёсоор нь бүх анхаарлаа зөвхөн бизнесийн логик дээрээ төвлөрүүлэх боломжтой боллоо.
А: Жава ЕЕ 5 дахь товчлолын талаар арай дэлгэрэнгүй тайлбарлана уу?
Х: Жава ЕЕ нь enterprise хэрэглэгдэхүүн хөгжүүлэх олон асуудал дээр мэдэгдэл бичих /declarative/ хандлагыг ямагт түлхүү анхаарч ирсэн. Хөтөлбөрлөлийн иймэрхүү хэв маяг Жава хэлэнд байдаггүй тул мэдэгдлийн мэдээллийг хадгалахдаа байрлуулалт тодорхойлогч хэмээх тусдаа файл ашигласаар ирсэн. Товчлол бий болсноор иймэрхүү мэдээллийг байх ёстой газар нь болох эх код дотор бичих боломж нээгдсэн.
Тодруулбал, контайнераар ямар нэгэн зүйл хийлгэхийг хүсэхдээ заавал API дуудах, хажуугаар нь байрлуулалт тодорхойлогч хөтлөөд түүнийгээ бичиж буй кодтойгоо нягт уялдуулах гэх мэт олон шаардлага байхгүй болсон. Та контайнерын хүсэлтээ код дотроо шууд бичихэд л болно. Тухайлбал, "энэ анги бол веб үйлчилгээ мөн" гэх юмуу "энэ арга бол гүйлгээ мөн" гэх мэт.
Мэдээж хэрэг, эдгээр шинэ чадвар нэмэгдлээ гээд хуучин нь устаж мөхнө, хэрэгцээнээс гарна гэсэн үг биш. Үнэхээрийн шаардлагатай үе тохиолдох цагт байрлуулалт тодорхойлогч ашиглах нь зөв зүйтэй алхам болох болов уу.
А: Өд сөд нь ургаж гүйцээд Жава ЕЕ 5 руу орохоор ид шохоорхон буй 1000 авъяаслаг хөгжүүлэгчдийн өмнө үг хэлэх боломж гарвал та тэдэнд юу хэлэх вэ?
Х: Энэ бол аавын чинь мэддэг Жава ЕЕ огтхон ч биш!
J2EE бол дэндүү түвэгтэй хэмээн айн сүрдэж явсан хүмүүст хандан хэлэхэд одоо ингэж айх хэрэггүй болсныг уламжлая. Spring, Hibernate зэрэг өөр технологийг тахин шүтдэг хүмүүст хэлэхэд тэдгээр технологийн олон сайхан санаанууд Жава ЕЕ технологид нэвтэрсэн болохыг дуулгая.
Та Жава ЕЕ 5 технологийг сонирхон судлаад бүх зүйл хичнээн амар хялбар болсныг гайхан бишрэх болно.
Enterprise JavaBeans 3.0 болон the Java Persistence API
А: EJB 3.0-д EJB хөтөлбөрлөлийн загвар хэрхэн хялбаршсан талаар ярина уу. EJB 3.0 дотор Уламжлалт Жава Обьект /POJO - Plain Old Java Object/ ашиглан хөтөлбөрлөлийг яаж хялбаршуулах вэ?
Х: Юуны өмнө хэлэхэд, хүмүүсийн яриад буй "EJB 3.0" гэдэг зүйл нь хоёр тусдаа юмнаас бүрддэг. EJB хөтөлбөрлөлийн сонгодог загварыг асар их хөнгөвчилсөнд EJB 3.0-ийн мөн чанар оршино. Ялангуяа шинээр гаргасан Java Persistence API бол яах аргагүй гайхалтай ажил.
Java Persistence нь олон талаараа EJB CMP (Container Manager Persistence)-ийг орлоно, гэхдээ энэ нь CMP огт байхгүй болсон гэсэн үг биш. Java Persistence нь Жава обьектыг хүснэгтэн /relational/ өгөгдлийн сантай холбох илүү авсаархан чиг хандлага бөгөөд Hibernate, TopLink, болон JDO (Java Data Objects) зэрэг бусад бүтээгдэхүүн, технологиудад гарсан шинэ санаагаар ихэд баяжсан юм. Тэднээс суралцсан сургамжууд, түүнчлэн EJB CMP ашигласан олон жилийн туршлагаас Java Persistence үүссэн. Java Persistence нь EJB CMP -ээс эрс ялгаатай хэрнээ дурдагдсан бусад технологийг илүү их санагдуулах болно. Товчлол бүхий POJO дээр Java Persistence тулгуурлана. Жава ЕЕ-ийн бүрэлдэхүүн дотор, эсвэл Жава ЕЕ-ийн гаднахь Жава SE орчин дотор гэсэн хоёр янзаар Java Persistence-ийг ашиглаж болно.
Түүнчлэн бид EJB хөтөлбөрлөлийн загварыг онцгой хялбарчилж бас чадсан. EJB контайнерын гүйлгээ хийх чадварыг бүрэн ашигласан төлөвтэй болон төлөвгүй компонентуудыг бичихэд маш хялбархан болсон. Тухайлбал ердөө л @Stateless товчлол бүхий POJO ашиглан EJB компонент бичиж болно. Заяамал тохиргоо ёсоор, тухайн компонентын бүх ил аргуудыг үйлчлүүлэгчээс дуудах боломжтой бөгөөд тэдгээр арга нь гүйлгээ дотор ажиллана. Гүйлгээний шаардлагууд болон аргуудын аюулгүй байдлын шаардлагыг удирдах зориулалттай өөр нэмэлт товчлолуудыг ч бас хэрэглэх боломж бий.
JavaServer Faces болон Вэб Хэрэглэгдэхүүний Зохиомж
А: JavaServer Faces (JSF) технологи нэмэгдснээр вэб хэрэглэгдэхүүний зохиомж хэр зэрэг эвлэг болсон бэ?
Х: JSF нь вэб хэрэглэгдэхүүн бичихийг хялбарчлах болон их хэмжээний код бичих ажлаас чөлөөлөх гэсэн хоёр чиглэлээр вэб хэрэглэгдэхүүн хөгжүүлэлтийг илүү эвтэйхэн болгож байгаа.
JSF рүү чиглэсэн гуравдагч /third-party/ компонентийн зах зээл хангалттай хөгжөөд байгаа нь өндөр чанартай, арилжааны бэлэн компонентуудыг өөрийн хэрэглэгдэхүүн дотроо ашиглах өргөн боломжийг хөгжүүлэгчдийн өмнө нээн өгч байна. JSF бол IBM, Oracle, BEA, JBoss, болон Borland зэрэг томоохон үйлдвэрлэгчдээс өргөн дэмжлэг авсан Java Community Process (JCP) стандарт юм. Өөрөөр хэлбэл, зах зээл нь сайтар төлөвшсөн гэдэг утгаараа JSF рүү оруулсан таны хөрөнгө оруулалтын үр өгөөж ямагт өндөр байх болно.
JSF-ийн арга барилын хувьд эвлэг байдал нь өмнөх технологитой харьцуулахад хийсвэрлэлийн илүү өндөр түвшинд хэрэглэгчийн үүдээ /user interface/ зохиох боломжийг хуудас зохион бүтээгчдэд олгодог түүний компонент загвар дээр тулгуурладаг. JSF нь вэб хэрэглэгдэхүүн бүтээхэд төрөл бүрийн багажууд ашиглах боломжтой Swing маягийн үзэгдлийн загвар ашигладаг давуу талтай.
GlassFish-ийн ач холбогдол
А: GlassFish болон нээлттэй кодчлолын хамтлагийн гол ач холбогдол юу вэ? Нээлттэй кодчлолын хамтлаг Жава ЕЕ 5-ын талаар юу ойлгох ёстой вэ?
Х: GlassFish хамтлаг нь Жава ЕЕ 5-ийг бүхэлд нь хэрэгжүүлсэн үнэгүй, нээлтэй кодчлол бүхий хэрэглэгдэхүүн үйлчлэгч /application server/ бүтээж байна. Энэ хамтлаг дотор Sun болон Sun-бус оролцогчдын аль аль нь бий. Тухайлбал, GlassFish доторхи Java Persistence хэрэгжүүлэлт /implementation/ бол Oracle-ийн оруулсан хувь нэмэр юм. GlassFish бол үнэхээрийн хамтач үйл ажиллагааны илрэл мөн. Жава ЕЕ зүйлчлэлийн /spec/ туршилтын хэрэгжүүлэлтийг /reference implementation/ бүтээхэд туслахыг хүссэн хүн бүхний өмнө GlassFish хамтлагын үүд үргэлж нээлттэй.
GlassFish бол үнэгүй, бас код нь нээлттэй. Давтан хэлье: GlassFish үнэгүй, код нь нээлттэй. GlassFish нь OSI-итгэмжит CDDL лиценз ашигладаг.
А: Жава ЕЕ-ийн ирээдүйн хөгжилд хөгжүүлэгчид хувь нэмрээ яаж оруулж болох вэ?
Х: Жава ЕЕ-ийн ирээдүйн хөгжилд хувь нэмэр оруулах олон арга зам бий. Магадгүй хамгийн зөв хандлага бол Жава ЕЕ төв хуудас руу орж, хичээл уншиж, SDK татан авч ажиллуулж үзээд санал сэтгэгдлээ хуваалцах явдал байх болов уу.
"Энэ бүхэн яаж ажиллаад байна" гэдгийг ойлгохыг сонирхсон хөгжүүлэгч бүхэн GlassFish -ийг нарийвчлан ухаж төнхөхийг хүсэх нь лавтай.
Хөгжүүлэгчдэд зориулсан ашигтай санамж, зөвлөмж, болон жишээ хөтөлбөрүүд GlassFish вэб буудал /site/ дээр бий. GlassFish төсөлд бодит хувь нэмэр хэрхэн оруулах тухай зааварчилгаа бас тэнд бий.
Эцэст нь, Жава ЕЕ зүйлчлэлийн ирээдүйн хөгжилд шууд оролцохыг хүссэн хөгжүүлэгчид нь JCP гишүүнээр элсэн ноорог зүйлчлэлийг /draft spec/ нягтлан шалгаж, зүйлчлэл боловсруулах ирээдүйн багт оролцох талаар одооноос анхаарах шаардлагатай.
А: Жава ЕЕ 5-ийн талаар мэдэх ёстой хамгийн чухал зүйлийг ганц үгээр тодорхойл гэвэл юу гэхсэн бол?
Ердөө л ганцхан зүйлийг нэрлэнэ гэвэл маш хэцүү. Жава ЕЕ 5-ийг бүхэлд нь хамран хөтөлбөрлөлийн загварыг хөнгөвчилсөн гол түлхүүр бол товчлол мөн гэдэг нь эргэлзээгүй. Persistence, вэб үйлчилгээ, гүйлгээ, аюулгүй байдал болон Жава ЕЕ-ийн бусад хүчирхэг чадваруудыг хөнгөвчлөхдөө бид товчлолыг ашиглаж байна. Бидний тооцож байгаагаар, хэрэглэгдэхүүн хөгжүүлэх товчлолын хандлагыг хөгжүүлэгчид хурдан ойлгож нэвтрүүлэн улмаар Жава ЕЕ 5-ийн боловсронгуй persistence болон вэб үйлчилгээний чадварууд руу нэвтрэн орох болов уу.

0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home