July 6, 2013

Java EE 7 ကို ရေးပါမည်

Java EE Technology ဟာ အလွန်ကျယ်ပြန့်ပါသည်။ သူ့မှာ အဆင့်မျိုးစုံ ပါဝင်ပြီး ပံ့ပိုးထားတဲ့ API တွေကလည်း အများကြီးရှိကြ၏။ ကျွှန်တော် ဒီဘလောဂ်မှာ Java EE အကြောင်းကို စမလို့ ကြံစည်နေခဲ့သည်မှာ Java EE 6 ထွက်လာကတည်းက ဖြစ်သည်။

ကျွှန်တော့်မှာစိုးရိမ်နေတာတစ်ခု ရှိ၏။ Java အခြေခံ မသိခဲ့ရင်၊ Web Architecture အကြောင်းနားမလည်ခဲ့ရင်၊ Database အကြောင်းတွေ Data Model အကြောင်းတွေ နားမလည်ခဲ့ရင် နားလည်ရခက်လိမ့်မယ်ဟု။ ဒီလိုတွေးရင်း Java EE အကြောင်းမရေးခင်၊ Java SE အခြေခံ သဘောတရားတွေ၊ API တွေ နဲ့ Servlet, JSP အစရှိတဲ့ Web အခြေခံတွေ၊ Data Modeling အကြောင်းများကို မိတ်ဆက်နေခဲ့ပါသည်။

အဲ့ဒီလိုလုပ်နေရင်း Java EE 6 ကနေ Java EE 7 ကို ပြောင်းသွားခဲ့ပါသည်။ ကျွှန်တော်ကိုယ်တိုင်လည်း Java EE 6 ကို အပေါ်ရံပဲ လုပ်ဖြစ်ပြီး အတွင်းပိုင်းအထိ ဝင်ရောက်ခဲ့ခြင်း မရှိခဲ့ပါ။ CDI တို့၊ Web Service အချို့တို့၊ ပြီးတော့ Message Beans တို့ကို မသုံးဖြစ်ခဲ့သေးပါ။ JSF, JPA နဲ့ EJB Session Beans လောက်နဲ့ ကြေနပ်ခဲ့ရပါသည်။


ယခု Java EE 7 ကို ရောက်ပြီဖြစ်သည်။ အခြားဟာတွေ မတတ်ရင် Java EE 7 ကို လေ့လာလို့မရဘူးလား။ Java EE 7 ကို လေ့လာဖို့ Java EE 6 ကို လေ့လာထားဖို့လိုသလား။ ကျွှန်တော်ပြန်စဉ်းစားဖို့ လိုအပ် လာပါသည်။ အမှန်အတိုင်း ပြောရရင် Java EE 7 ကလည်း စ၍ဖြစ်ပါသည်။ အခြေခံကို နားလည်ထားရင်တော့ လေ့လာရလွယ်သည်မှာမှန်သည်။ သို့သော်လည်း လေ့လာ၍ မဖြစ်ဆိုသည်မှာမဟုတ်။  ဟုတ်ပြီ ကျွှန်တော် Java EE 7 အကြောင်းကို စရေးပါတော့မည်။


Enterprise Application တစ်ခု၏ ရှိသင့်သော အခြေခံ သဘောတရား


Java EE 7 အကြောင်းကို မစသေးခင် Enterprise Application အကြောင်းကို အရင် ရှင်းချင်ပါသည်။ သို့မဟုတ်ပါက နည်းပညာ အသစ်များဘက်တွင် စိတ်အရောက်များပြီး၊ Enterprise Application ၏ အနှစ်သာရများကို မတွေ့ပဲ နေတတ်သောကြောင့် ဖြစ်ပါသည်။ Enterprise Application ဆိုသည်မှာ လုပ်ငန်းများတွင် အသုံးပြုသည့် အပလီများကို စုစည်း၍ ခေါ်ဆိုကြခြင်း ဖြစ်ပါသည်။

လုပ်ငန်းများတွင် Resource များရှိကြသည်။ ၎င်းတို့သည် IT ဆိုသည့် နည်းပညာ မပေါ်ပေါက်ခင်က အသီးသီး သီးခြားစီ အသုံးချနေခဲ့ကြသော်လည်း IT ခေတ်ကိုအရောက်တွင် လုပ်ငန်း အတွင်းရှိ အချက်အလက်များအား အကျိုးရှိရှိ အသုံးချနိုင်ရန် Database ဆိုသည့် နည်းပညာ ပေါ်ပေါက်လာသည်။ ၎င်း၏ အချက်အလက်များကို အသုံးချပြီး Application အမျိုးမျိုးလည်း ပေါ်ပေါက်လာခဲ့ပါသည်။

ဥပမာ ဆိုကြပါစို့။ စားသောက်ဆိုင်တစ်ဆိုင်တွင် အလုပ်သမားများ၊ အရောင်းစာရင်းများ၊ သုံးကုန်ပစ္စည်းများရှိကြသည်။ တစ်နေ့တစ်နေ့ အရောင်းအဝယ်စာရင်းများအား Management လုပ်နိုင်ရန် အတွက် System ရှိမည်။ အလုပ်သမားများ၏ ရာထူး၊ လစာ အစရှိသည့် အချက်အလက်များအား Management လုပ်မည့် System ရှိမည်၊ ကုန်ပစ္စည်း Store အား Management လုပ်မည့် System ရှိမည်။ ၎င်း System များအားလုံးကို စုစည်း၍ Enterprise System ဟု ခေါ်ပါသည်။

Enterprise System အတွင်းရှိ System များသည် တစ်ခုနှင့်တစ်ခု သီးခြားစီရပ်တည် နေသရောင်ရှိသော်လည်း တစ်ခုနှင့်တစ်ခုသည် ဆက်စပ်နေရန် လိုအပ်ပါသည်။ ဆိုင်အရောင်းအဝယ် Management System အပေါ်မှုတည်၍၊ ဘယ်အချိန်မျိုးမှာ ဘယ်ပစ္စည်းများအား ကြိုမှာထားသင့်သည် ဟု ခန့်မှန်းနိုင်မည်ဖြစ်သည်။ တဖန် ဘယ်လိုအခါမျိုးမှာ ဘယ်လိုကုန်ပစ္စည်းမျိုးဟာ ပေါပေါများများ ရနိုင်သည်ဆိုသည့် အချက်ကို ကြည့်၍၊ ဘယ်လိုအခါမျိုးမှာ ဘယ်လို ဟင်းလျှာမျိုးကို ရောင်းချသင့်သည်ဟု တွက်ချက်နိုင်မည် ဖြစ်သည်။ Enterprise System အတွင်းမှရရှိ သော အချက်အလက်များ အားလုံးသည် Business Decision အတွက် အလွန်အရေးပါသော အချက်များ ဖြစ်လာပါမည်။

တနည်းဆိုရသော် Enterprise System အား Design ရေးသားရာတွင် Business Decision Making အတွက် မည်ကဲ့သို့ အထောက်အကူ ပြုမည်ဆိုသည့် အချက်ကို များစွာစဉ်းစားရန် လိုအပ်လှပါသည်။ ကျွှန်တော်ကိုယ်တိုင် အပါအဝင် Developer အတော်များများသိ Technological Point များတွင် စိတ်အရောက်များ၍ Enterprise System ၏ Concept များကို မေ့လျှော့နေတတ်ကြ၏။

Java EE တွင် အထက်ပါ အချက်အလက်များအား နည်းပါးစေရန် East To Development ဆိုသည့် အချက်ကို အဓိကထား လာပြီး၊ Web Standard များဖြစ်ကြသော HTML5, WebSocket နှင့် SOAP Protocol ကို အခြေခံသော Web Service နည်းပညာများကို ထည့်သွင်းလာသည်ကို တွေ့ရပါသည်။


Java EE ၏ ခရီးစဉ်


Java EE 7 ဆိုသည်မှာ Java Enterprise Edition 7 ၏ အတိုကောက် အခေါ်အဝေါ်ဖြစ်ပါသည်။ အမည် အတိုင်းပင် Enterprise တွေမှာသုံးဖို့အတွက် လိုအပ်သည့် API များကို စုဝေးထားသော Java Platform ဖြစ်ပါသည်။ Java EE Technology တွင် စတင် Standardize လုပ်နိုင်ခဲ့သည်မှာ Java EE 5 မှစသည်ဟု ဆိုနိုင်မည် ဖြစ်သည်။

ယခင်ကဆိုလျှင် Middle Ware Vender များက Enterprise တွင် အသုံးပြုရန် လိုအပ်သော API များ Service များအား စုစည်း၍ အသီးသီး ရောင်းချနေခဲ့ကြသည်။ ထို့အပြင် Opensource Community များကလည်း အသီးသီး နည်းပညာအသစ်များ၊ Framework အသစ်များကို ပံ့ပိုးလာခဲ့သည်။ Standard မှာ ပျောက်လုနည်းပါးပင် ဖြစ်လာခဲ့၏။

Standardize ဖြစ်မြောက်ရေး အတွက် ကြိုးစားလာသည်မှာ Java EE 5 မှ စသည်ဟု ဆိုခဲ့၏။ အဘယ်ကြောင့်ဆိုသော် ယနေ့တိုင် Develop လုပ်ရန် ခက်ခဲခဲ့သော EJB သည် EJB 3.0 ဟု ပြောင်းလည်းခဲ့ပြီး Annotation များကို အသုံးပြု၍ ရေးသားလာနိုင်သည်။ ထို့အပြင် Dependency Injection များ၊ Validation များ အပြင်၊ JPA ဟု OR Mapping နည်းပညာကို အသုံးပြုသော Entity Layer နှင့် ဆက်သွယ်သည့်နည်းပညာများကို Standard အဖြစ်အသုံးပြုလာသည်။ Web Application တွင် မရှိမဖြစ်လိုဖြစ်သော MVC Framework တစ်ခု အဖြစ် JSF ကိုလည်း အသုံးပြုလာသည်။ JSF အတွင်း
တွင် MVC ကို အခြေခံထားပြီး၊ Standard UI Component များကိုလည်း ဖြည့်စွက်လာသည်ကို တွေ့ရပါသည်။

Standardize ဖြစ်မြောက်ရေး အတွက် ဒုတိယ ခြေလှမ်းမှာ Java EE 6 ဖြစ်ပါသည်။ Java EE 6 အရောက်တွင် ယခင် Java EE များထက် ပို၍ Flexible ဖြစ်လာသည်ဟု ဆိုရမည် ဖြစ်သည်။ EJB 3.1 တွင် EJB Module အား Web Module အတွင်းတွင် ရေးသားလာနိုင်သည်။ Interface ကိုလည်း ရေးသားရန် မလိုအပ်တော့ပါ။  ထို့အပြင် EJB သည် Singleton နှင့် Asynchronous တို့အား Support လုပ်လာနိုင်ပါသည်။ Web Technology များဖြစ်ကြသော JSF နှင့် Servlet တို့တွင်လည်း Asynchronous ကို Support လုပ်လာသည်ကို တွေ့ရပါသည်။ Web Technology ၏ Standard အဖြစ်ရပ်တည်နေသော Ajax နှင့် အစဉ်ပြေစွာ ပူးတွဲဆောင်ရွက်နိုင်ရန် ပံ့ပိုးလာမှု့ ဖြစ်ပါသည်။ ကျွှန်တော်အနှစ်အသက်ဆုံးမှာ Deployment Descriptor အား Module အလိုက်ခွဲနိုင်အောင် ကြိုးပမ်းမှု့ ဖြစ်ပါသည်။ ထိုအချိန်က Opensource Framework များအား စုစည်း၍ အသုံးပြုမည်ဆိုပါက web.xml အား ရေးရအလွန်ခက်ခဲ ခဲ့ပါသည်။ ထိုအခက်အခဲကို ဖြေရှင်းရန် Servlet 3.0 တွင် လမ်းစရှိခဲ့ပါသည်။

ယနေ့ Java EE 7 အရောက်တွင် Java EE သည် Cloud ဆီသို့ ခြေလှမ်းဦးတည်နေပြီဟု တွေ့မြင်ရပါသည်။ Cloud နှင့် ပတ်သက်သောနည်းပညာများမှာ Java EE 8 ဆီသို့ ချန်ရစ်ခဲ့သော်လည်း၊ Web Standard များဆီသို့ အရောက်သွားရန် ပြင်ဆင်လာခဲ့သည်။ JSF 2.2 တွင် HTML5 ကို အတော်များများ Support လုပ်လာပြီး၊ JSON Parser ကိုလည်း ဖြည့်စွက်လာခဲ့သည်။ Web Socket API သည် Server Push Technology အတွက် မရှိမဖြစ်လိုအပ်လာမည့် နည်းပညာ တစ်မျိုးဖြစ်ပါသည်။ ၎င်းအပြင် Enterprise System အတွက် မရှိမဖြစ်လိုအပ်သော Batch Technology, Concurrency Technology များကိုလည်း အားဖြည့်လာပါသည်။ ထို့အပြင် နည်းပညာ အသစ်များအပြင်၊ ရှိပြီးသားနည်းပညာများကိုလည်း မွန်းမံလာခဲ့သည်ကို တွေ့ရ၏။

အထူးပြောကြားလိုသည်မှာ Develop လုပ်ရန် လွယ်ကူလာခြင်းပင် ဖြစ်၏။ ယခင်ကဆိုလျှင် JSF နှင့် JPA အား Develop လုပ်ရန် အခြားသော Third Party မှ Lib များအား ဖြည့်စွက်ရန် လိုအပ်ခဲ့သည်။ Internet Connection မကောင်းသော ကျွှန်တော်တို့နိုင်ငံအတွက် Maven ကို သုံးရမလွယ်ကူပါသဖြင့် ကိုယ့်ဟာကိုယ် Lib များအား ပြင်ဆင်ရသည်မှာမလွယ်ကူပါ။ ထို့အပြင် Configuration File များမှာလည်း အတော်ပင် ဦးနှောက်ခြောက်စရာ တစ်ခု ဖြစ်ခဲ့ပါသည်။ Java EE 7 အရောက်တွင် Glassfish 4.0 ကို သုံးရုံဖြင့် JPA ကော JSF ပါ အခြား Lib သုံးစရာမလိုပဲ ရေးသားနိုင်ပါသည်။ Eclipse တွင် Plugin များကို အကြိမ်ကြိမ် Install လုပ်စရာမလိုအပ်တော့ပါ။ Java EE 7 ကို လေ့လာရန် အချိန်ကျပြီ ဖြစ်ပါသည်။

နောက်ဘလောဂ်တွင် Java EE 7 ၏ New Features များနှင့် Java EE အား သုံး၍ ရေးသားသင့်သော Application Model အကြောင်းကို လေ့လာရင်း ရေးသားသွားပါဦးမည်။ Enterprise Application Developer များသည် Business အား ဘယ်လိုအကျိုးရှိစွာ အသုံးပြုနိုင်အောင် ဖန်တီးမည် ဆိုသည့် အချက်ကိုသာ ကရုပြုသင့်ပါသည်။ ပတ်ဝင်းကျင်ကို ဘယ်လိုပြင်ဆင်ရမည်။ ဘယ်လိုရေးရမည်ဆိုသည့် အချက်ကိုစိုးရိမ်နေစရာ မလိုသင့်ပေ။ ထိုအချက်များကို Java EE 7 ၏ Application Server များဘက်မှ တာဝန်ယူသွားမည် ဖြစ်ပေသည်။

လေးစားစွာဖြင့်
မင်းလွင်

1 comment:

  1. Thank for sharing your knowledge bro. Your blog can help me a lot while I studying Java EE. I would like you to write more about Java EE article. I am appreciate for your writing and I always reading your article. Thanks for supporting our Myanmar Java youths programmers.

    ReplyDelete