August 14, 2013

Java EE Application Model

Java EE Application Model


Java EE Application များသည် Java Programming Language နှင့် Java Virtual Machine အပေါ်တွင် တည်ဆောက် ထားကြပါသည်။ Java EE သည် Enterprise Application များအတွက် မရှိမဖြစ် လိုအပ်သော ပြောင်းရွှေ့ရလွယ်ကူစေရေး၊ လုံခြုံစိတ်ချမှု့ရှိစေရေးနှင့် Developer များအတွက် ထုတ်လုပ်မှု့ စွမ်းအင် တိုးတက်စေရေးတို့အတွက် အခြေခံ Application Model ကို အကြံပြုထားပါသည်။ Java EE အား Enterprise လုပ်ငန်းတစ်ခု ၏ Customer များ၊ ဝန်ထမ်းများ၊ ပံ့ပိုးသူများ၊ အကျိုးတူ လုပ်ကိုင်နေသူများနှင့် အခြားသော ပါဝင်ပတ်သက်နေသူများက အသုံးပြုနေသော Application များအား Service ပေးနိုင်ရန်ရည်ရွယ်၍ Design ရေးသားထားပါသည်။ Enterprise Application များသည် လွန်စွာ ကြီးမား ရှုပ်ထွေးတတ်၍၊ Resource အမျိုးမျိုးမှ အချက်အလက်များအား အသုံးပြုနိုင်ရန် လိုအပ်နေတတ်ပြီး၊ နေရာ ပတ်ဝင်းကျင် အမျိုးမျိုးရှိ Application များကိုလည်း Client အမျိုးမျိုးဖြင့် ဆက်သွယ် အသုံးပြုရန် လိုအပ်ပါသည်။

Java EE Application များအား ကောင်းမွန်စွာ ထိမ်းချုပ်ကွတ်ကဲနိုင်ရန် အတွက်၊ အသုံးပြုသူများအတွက် ပံ့ပိုးပေးနေသော Function များအားလုံးသည် Middle Tier ဖြင့် ဆက်သွယ်ထားလေ့ ရှိပါသည်။ Middle Tier သည် Enterprise's Information Technology Department မှ ကောင်းစွာ ထိမ်းချုပ်မှု့ပေးနိုင်သော ပတ်ဝင်းကျင် အဖြစ် တည်ရှိနေလေ့ရှိပါသည်။ Middle Tier သည် Dedicated Server Hardware ပေါ်တွင် အလုပ်လုပ်နေပြီး၊ Enterprise Service များအားလုံးကို အပြည့်အဝ ဆက်သွယ် အသုံးပြု နိုင်ပါသည်။

Java EE Application Model သည် Enterprise Level Application များ၏ လိုအပ်ချက်များဖြစ်ကြသော Scalability, Accessibility နှင့် Manageability တို့အား ပံ့ပိုးပေးနိုင်သော Multi-tier Application ၏ ဖွဲ့စည်းပုံဖြင့် ဖွဲ့စည်းတည်ဆောက် ထားပါသည်။  အဆိုပါ Model သည် Multitier Application များအား တည်ဆောက်ရန်အတွက် လိုအပ်သော လုပ်ငန်းဆောင်တာများအား အောက်ပါအတိုင်း ခွဲခြားထားပါသည်။
  • Developer များက ရေးသားရန်လိုအပ်သော Business နှင့် Presentation Logic များ
  • Java EE Platform မှ ပံ့ပိုးပေးမည့် Standard Services များ
Multitier Application များအား Develop လုပ်ရာတွင် ကြုံတွေ့ရလေ့ရှိသော ပြဿနာများအား ဖြေရှင်းရန် Java EE Platform မှပံ့ပိုးပေးထားသော Solution များအား Developer များသည် ယုံကြည်စိတ်ချစွာ အသုံးပြုနိုင်ပါသည်။


Distributed Multitier Applications

Java EE Platform သည် Enterprise Application များအတွက် Multitier Application Model အား အသုံးပြုပါသည်။ Application Logic များအား သူ၏ လုပ်ဆောင်စွမ်းရည်များအလိုက် Components များအဖြစ် ခွဲခြားထားပြီး၊ အဆိုပါ Components များဖြင့် Enterprise Application များကို ဖွဲ့စည်းထားပါသည်။ တဖန် Enterprise Application များသည်လည်း ပါဝင်သော Component များ၏ စွမ်းရည်များအလိုက် Multitier Enterprise Platform Machine များအပေါ်တွင် အသီးသီး Install လုပ်ထားပါသည်။

 အထက်ဖော်ပြပါ Figure 1-1 ဖြင့် Tier အမျိုးမျိုးဖြင့် ခွဲခြားထားသော Java EE Application အမျိုးအစား နှစ်မျိုးကို ဖော်ပြထားပါသည်။ Figure 1-1 တွင် ဖော်ပြထားသော Java EE Application များ၏ အစိတ်အပိုင်းများသည် Java EE Components များ ဖြစ်ကြပါသည်။
  • Client Tier Components များသည် Client Machine ပေါ်တွင် အလုပ်လုပ်ပါသည်။
  • Web Tier Components များသည် Java EE Server အပေါ်တွင် အလုပ်လုပ်ပါသည်။
  • Business Tier Components များသည်လည်း Java EE Server အပေါ်တွင် အလုပ်လုပ်ပါသည်။
  • Enterprise Information System (EIS) Tier Components များသည် Database Server အပေါ်တွင် အလုပ်လုပ်ပါသည်။
 Figure 1-1 တွင်ဖော်ပြထားသကဲ့သို့ Java EE Application များသည် Tier အမျိုးမျိုးပေါ်တွင် တည်ရှိသော်လည်း Java EE Application များအား ရေဘုံယအားဖြင့် နေရာသုံးခုပေါ်တွင် (Client Tier သည် Client Machine အပေါ်တွင် အလုပ်လုပ်ပြီး၊ Web Tier နှင့် Business Tier သည် Java EE Server အပေါ်တွင် အလုပ်လုပ်ကာ EIS Tier သည် Database Server အပေါ်တွင် အလုပ်လုပ်သည်။) အလုပ်လုပ်သောကြောင့် Three Tier Application အဖြစ်စဉ်းစားပါသည်။  အထက်ဖော်ပြပါ Three Tier Applications များသည် အခြေခံ Two Tier Model ဖြစ်သော Client and Server Model ကို ချဲ့ထွင်ထားခြင်း သာဖြစ်ပြီး Multitier Application Server အား Client Application နှင့် Back End Storage ၏ အကြားတွင် ထားရှိထားခြင်း သာဖြစ်၏။


Security


အခြားသော Enterprise Application Model များသည် Applicationတိုင်းတွင် Platformအလိုက် Security စီမံချက်များကို လိုအပ်သော်လည်း၊ Java EE Security ပတ်ဝင်းကျင်သည် Security သတ်မှတ်ချက်များအား Deploy လုပ်ချိန်တွင် သတ်မှတ်နိုင်ရန် စီမံထားပါသည်။ Java EE Platform သည် Application များအား Security Implementation အမျိုးမျိုးကို ကျယ်ပြန့်စွာ အသုံးပြုနိုင်စေရန် အတွက်၊ Security Features များအား ရေးသားရာတွင် ကြုံတွေ့ရမည့် ရှုပ်ထွေးမှု့များအား Developer များရှေ့မှ ဖုန်းကွယ်ပေးထားပါသည်။

Java EE Platform သည် Developer များက ကြိုတင်သတ်မှတ်ထားသော အခြေခံ Declarative ACL စည်းမျဉ်းများအား ပံ့ပိုးပေးနိုင်ပြီး၊ Application အား Deploy လုပ်သည့်အခါတွင် သတ်မှတ် ပေးနိုင်ပါသည်။ ထို့အပြင် အခြေခံ Login လုပ်သည့် နည်းလမ်းကိုလည်း ပံ့ပိုးထားပြီး Developer များသည် အဆိုပါ နည်းလမ်းများအား ကိုယ်တိုင်ရေးသားရန် မလိုအပ်ပါ။ ထို့ကြောင့် Java EE Platform အား အသုံးပြုပါက Application တစ်ခုအား Security Platform အမျိုးမျိုးတွင် Code များအား ပြုပြင် ပြောင်းလည်းစရာမလိုပဲ အသုံးပြုနိုင်ပါသည်။


Java EE Components


Java EE Applications များသည် Components များဖြင့် ဖွဲ့စည်းထားပါသည်။ Java EE Components များသည် ကိုယ်တိုင်က Functional Unit တစ်ခုအဖြစ် Java EE Applications များတွင် ပါဝင်နေပြီး၊ ၎င်း၏ Class များနှင့် File များသည် အခြားသော Components များနှင့် ဆက်သွယ်နိုင်ပါသည်။

Java EE ၏ ထူးခြားချက်များအား အောက်ပါ Components များဖြင့် သတ်မှတ်နိုင်ပါသည်။
  • Application Clients များနှင့် Applets များသည် Client ပေါ်တွင် အလုပ်လုပ်သော Components များ ဖြစ်ကြ၏။
  • Java Servlet, Java Server Face (JSF) နှင့် Java Server Page (JSP) နည်းပညာ Components များသည် web components များဖြစ်ကြပြီး Server အပေါ်တွင် အလုပ်လုပ်ပါသည်။
  • Enterprise Java Bean (EJB) Components များသည် Business Components များဖြစ်ကြပြီး Server အပေါ်တွင် အလုပ်လုပ်ကြပါသည်။
Java EE Components များသည် Java Programming ဘာသာရပ်ဖြင့် ရေးသားထားပြီး၊ အခြားသော Java Program များကဲ့သို့ပင် Compile လုပ်ရန် လိုအပ်ပါသည်။ Java EE Components များနှင့် အခြားသော အခြေခံ Java Class များ၏ ကွာခြားချက်သည်၊ Java EE Components များသည် တိကျသောပုံစံ ဖြင့်သတ်မှတ်ထားပြီး၊ Java EE ၏ ထူးခြားချက်များနှင့် အညီရေးသားရန် လိုအပ်ပါသည်။ ထို့အပြင် ၎င်းတို့အား Manage လုပ်မည့် Java EE Server အပေါ်တွင် နောက်ဆုံး Product အနေဖြင့် Deploy လုပ်ရန် လိုအပ်ပါသည်။


Java EE Clients


Java EE Clients များသည် များသောအားဖြင့် Web Client နှင့် Application Client များ ဖြစ်ကြ၏။
  • Web Client

    Web Client တစ်ခုအား အဓိကအားဖြင့် အစိတ်အပိုင်း နှစ်ခု ပါဝင်ပါသည်။
    1. ပထမ အစိတ်အပိုင်းမှာ web tier အပေါ်တွင် အလုပ်လုပ်သော Web Component များက Generate လုပ်သော Markup Language (HTML, XML . etc) တို့ဖြင့် ရေးသားထားသော Dynamic Web Page များ ဖြစ်ကြ၏။
    2. ဒုတိယ အစိတ်အပိုင်းမှာ Server မှ လက်ခံရရှိသော Page များအား ဖော်ပြပေးနိုင်သော Browser ပင် ဖြစ်၏။
    Web Client များအား အချို့သော အခါများတွင် Thin Client ဟုလည်း ခေါ်ဆိုပါသည်။ Thin Client များသည် Database များအား Access လုပ်ရန် မလိုအပ်သလို၊ ရှုပ်ထွေးသော Business Logic များအားလည်း လုပ်ဆောင်ရန် မလိုအပ်ပဲ၊ Legacy Application များနှင့်လည်း ဆက်သွယ်အသုံးပြုရန် မလိုအပ်ပါ။ Thin Client များအား အသုံးပြုခြင်း အားဖြင့်၊ လေးလံသော လုပ်ငန်းဆောင်တာများအား၊ Java EE Server side technology များဖြစ်ကြသော Security, Speed, Service နှင့် Reliability တို့အား တိုးမြှင့်ပေးနိုင်သည့် Java EE Server များအပေါ်တွင် အလုပ်လုပ်သော Enterprise Bean များအား လုပ်ဆောင်စေနိုင်ပါသည်။ 
  • Application Client

    Application Client သည် Client Machine အပေါ်တွင် အလုပ်လုပ်ပြီး၊ Mark Up Language များဖြင့် ရေးသားထားသော User Interface များထက် ပြည့်စုံသော User Interface များအား အသုံးပြုလိုသည့် အခါမျိုးတွင် အသုံးပြုလေ့ရှိပါသည်။ Application Client များတွင် Swing, AWT ဒါမှမဟုတ် JavaFX ဖြင့် ရေးသားထားသော GUI ကို ပိုင်ဆိုင်ပြီး၊ လိုအပ်ပါက Command Line Interface မှတဆင့်လည်း အသုံးပြုနိုင်ပါသည်။
    Application Client များသည် Business Tier ပေါ်တွင် အလုပ်လုပ်သော Enterprise Bean များအား တိုက်ရိုက်ဆက်သွယ် အလုပ်လုပ် နိုင်သလို၊ လိုအပ်ပါက HTTP ဆက်သွယ်မှု့ ကိုအသုံးပြုပြီး web tier ပေါ်တွင် အလုပ်လုပ်သော Servlet များနှင့်လည်း ဆက်သွယ် အသုံးပြုနိုင်ပါသည်။
    အခြားသော ဘာသာရပ်များနှင့် ရေးသားထားသော Application Client များသည်လည်း Java EE Server နှင့် ဆက်သွယ်အသုံးပြုနိုင်ပြီး၊ Java Platform နှင့် Legacy System များ၊ Clients များနှင့် Non-Java Platform များနှင့်လည်း ဆက်သွယ်ပေးနိုင်ပါသည်။
  • Applet

    Web Tier အတွင်းမှ လက်ခံ ရရှိလာသော Web Page အတွင်းတွင် Embedded Applet များလည်း ပါဝင်နိုင်ပါသည်။ Applet များအား Java ဘာသာရပ်ဖြင့် ရေးသားထားပြီး၊ သေးငယ်သော Client Application များဖြစ်ကာ Browser အပေါ်တွင် Install လုပ်ထားသော JVM အပေါ်တွင် အလုပ်လုပ်ပါသည်။ Browser အပေါ်တွင် Applet များအား အောင်မြင်စွာ အလုပ်လုပ်စေနိုင်ရန် အတွက် Client System ဘက်တွင် Java Plug-in နှင့် Security Policy File များအား ပြင်ဆင်ထားရန် လိုအပ်ပါသည်။
    Web Components များအား Plug-in နှင့် Security Policy File များမလိုအပ်သော Web Client များနှင့် အသုံးပြုရန် ညွှန်းဆိုထားပါသည်။ အလားတူစွာပင် Web Components များသည် Application Programming နှင့် Web Page Design အား ခွဲခြားပေးနိုင်သောကြောင့် ပိုမိုရှင်းလင်း၍ Modular Application Design ကို ရေးသားစေနိုင်ပါသည်။ ထို့ကြောင့် ပါဝင်ပတ်သက်သော web designer များသည် Java Code များအား လေ့လာစရာမလိုအပ်ပဲ ၎င်းတို့၏ လုပ်ငန်းကို လုပ်ဆောင်စေနိုင်ပါသည်။
  • Java Bean Component Architecture

    မတူညီသော Tier များအကြားရှိ Data Flow အား Management လုပ်နိုင်ရန်အတွက်၊ Client ကော Server Tier အပေါ်တွင်ရှိသော Components များသည် Java Bean Component Architecture ကို အခြေခံသော Components များအား အသုံးပြုရန် လိုအပ်ပါသည်။
    • Application Client သို့မဟုတ် Applet များနှင့် Server အပေါ်ရှိ Component များအကြားရှိ Data Flow
    • Server အပေါ်ရှိ Components များနှင့် Database အကြားရှိ Data Flow
    Java Bean Components များအား ရေးသားရာတွင် Java EE Specification ဖြင့်ရေးသားထားသော Java EE Components များအား စဉ်းစားစရာ မလိုအပ်ပေ။ သို့ရာတွင် Java Beans များတွင် Properties များပါဝင်ပြီး၊ အဆိုပါ Properties များအား ဆက်သွယ်နိုင်စေရန် Get နှင့် Set Method များအား ရေးသားထားရန် လိုအပ်ပါသည်။ ဤနည်းဖြင့် JavaBean များအား ရိုးရှင်းသော Design နှင့် ရေးသားနည်းတို့ဖြင့် ရေးသားနိုင်သော်လည်း၊ Java Beans Architecture မှသတ်မှတ်ထားသော အမည်ပေးစနစ်နှင့် Design စီးမျဉ်းများအား လိုက်နာရန် လိုအပ်ပါသည်။
  • Java EE Server Communication

    အောက်ဖော်ပြပါ Figure 1-2 တွင် Client Tier ပေါ်တွင် အသုံးပြုနိုင်သော Elements များအား ဖော်ပြထားပါသည်။ Clients များသည် Java EE Server အပေါ်တွင် အလုပ်လုပ်နေသော Business Tier သို့ တိုက်ရိုက်သော်၎င်း၊ ၎င်းတို့ကိုယ်တိုင်အလုပ်လုပ်နေသော Browser များအား ကြားခံကာ Web Tier ပေါ်တွင် အလုပ်လုပ်နေသော Servlet သို့မဟုတ် Service များမှ တဆင့်သော်၎င်း ဆက်သွယ် နိုင်ပါသည်။




Web Components


Java EE Web Components များသည် Servlet သို့မဟုတ် JSPနှင့် JSF Technology တို့ဖြင့် ရေးသားထားသော Web Page များဖြစ်ကြသည်။ Servlet များသည် Server အပေါ်တွင် ရှိသော Java Program များဖြစ်ကြပြီး၊ Web Browser မှရောက်ရှိလာသော HTTP Request များအား ခေါ်ဆိုသည့်အခါတွင် အသုံးပြုနိုင်ပြီး၊ HTTP Response များအား တည်ဆောက်ပေးနိုင်ပါသည်။ JSP Page များသည် Text ဖြင့်ရေးသားထားသော Documents များဖြစ်ကြပြီး၊ Servlet အနေဖြင့် အလုပ်လုပ်နိုင်ပါသည်။ ၎င်းတို့သည် Static Contents များအား ရေးသားရာတွင် Servlet နှင့်စာလျှင် ပိုမို၍ သဘာဝကျသော နည်းလမ်းဖြင့် ရေးသားနိုင်ပါသည်။ JSF Technology သည် Servlet နှင့် JSP တို့အား Build လုပ်ပေးနိုင်ပြီး၊ Web Applications များအတွက် UI Framework အား ပံ့ပိုးပေးပါသည်။
Static HTML Page များနှင့် Applet များအား Web Components များနှင့် အတူ Application အဖြစ် Bundle လုပ်နေသော်လည်း၊ Java EE Specification များဖြင့် ရေးသားထားသော Web Components  အနေဖြင့် စဉ်းစားမည်မဟုတ်ပါ။ Server side utility class များသည်လည်း Web Components များနှင့် အတူ Bundle လုပ်သော်လည်း HTML များကဲ့သို့ပင် Web Components အဖြစ် စဉ်းစားမည် မဟုတ်ပါ။


အထက်ဖော်ပြပါ Figure 1-3 တွင် ဖော်ပြထားသကဲ့သို့ပင် Web Tier တွင်လည်း Client Tier ကဲ့သို့ပင် Java Bean Components များကို ပါဝင်ရန်လိုအပ်ပြီး၊ ၎င်းတို့သည် Client Tier မှလာသော User Inputs များအား Manage လုပ်ပေးရန် လိုအပ်ပြီး၊ အဆိုပါ Inputs များအား Business Tier အပေါ်တွင် အလုပ်လုပ်နေသော Enterprise Bean များမှ အသုံးပြုရန် ပေးပို့ပေးရပါသည်။


Business Components

Business Components များသည် Business Tier သို့မဟုတ် Web Tier အပေါ်တွင် အလုပ်လုပ်ကြသော Enterprise Java Bean များ ဖြစ်ကြပါသည်။ ၎င်းတို့တွင် Business Domain များ၏ လိုအပ်ချက်များ၊ ဖြေရှင်းချက်များအားပေးရန် လိုအပ်သော Business Logic များအား ရေးသားထားပါသည်။

Figure 1-4 တွင် ဖော်ပြထားသကဲ့သို့ပင် Enterprise Bean များသည် Clientထံမှ Data များအားရယူပြီး၊ လိုအပ်ပါက အသုံးပြုကာ၊ EIS Tier တွင် သိမ်းဆည်းရန် ပေးပို့နေပါသည်။ တဖန် EIS Tier မှ Data များအား ထုတ်ယူကာ၊ လိုအပ်ပါက အသုံးပြုကာ Client ထံသို့ ပြန်ပို့ပေးပါသည်။



Enterprise Information System Tier

EIS Tier သည် Enterprise Information System Software များအား Handle လုပ်ကာ၊ ၎င်းတွင် Enterprise Resource Planning (ERP), Mainframe Transaction Processing, Database Systems နှင့် အခြားသော Legacy System တို့ပါဝင်ကြပါသည်။ ဥပမာအားဖြင့် Java EE Components များသည် Database များအား ဆက်သွယ်ရန် EIS Tier အား Access လုပ်ရန် လိုအပ်ပါသည်။

ကိုးကား
http://docs.oracle.com/javaee/7/tutorial/doc/home.htm

ဆက်ပါဦးမည်။ လေးစားစွာဖြင့်
မင်းလွင်

No comments:

Post a Comment