SDK နှင့် API တို့၏ ဆက်စပ်မှုကားကဲသို့ရှိသနည်း။
ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးရေးတွင်၊ စနစ်၏ အရွယ်အစား တိုးလာသည်နှင့်အမျှ၊ ရှုပ်ထွေးသောစနစ်ကို ငယ်သောအပိုင်းများအဖြစ်ပိုင်းခြားထားခြင်းသည် အရေးကြီးပါသည်။ ထိုအထဲတွင် ပရိုဂရާމမင်းမျက်နှာပြင် (interface) ၏ ဒီဇိုင်းသည် အထူးအရေးကြီးပါသည်။ မျက်နှာပြင်ဒီဇိုင်း၏ အဓိကလုပ်ငန်းစဉ်မှာ ဆော့ဖ်ဝဲလ်စနစ်၏ တာဝန်များကို ထိန်းညှိပေးရန်ဖြစ်သည်။ ကောင်းမွန်သောမျက်နှာပြင်ဒီဇိုင်းသည် စနစ်၏အစိတ်အပိုင်းများအကြား မှီခိုမှုနည်းစေပြီး၊ မော်ဂျူးလ်၏စည်းလုံးညီညွတ်မှုကို မြှင့်တင်ပေးကာ၊ မော်ဂျူးလ်များအကြား ဆက်စပ်မှုနည်းစေပြီး စနစ်ကိုထိန်းသိမ်းရန်နှင့် ချဲ့ထွင်ရန်လွယ်ကူစေပါသည်။ API သည် မျက်နှာပြင်တစ်ခုအနေဖြင့် ပရိုဂရမ်များအကြား ဆက်သွယ်ဆောင်ရွက်ရာတွင် အရေးကြီးသောအခ role ည့်မှတ်ပြီး SDK နှင့် API တို့သည် နီးစပ်စွာ ဆက်စပ်နေပါသည်။
01 API
(1) API ဆိုသည့်အဓိပ္ပာယ်
API ဆိုသည်မှာ “အက်ပလီကေးရှင်း ပရိုဂရާމမင်းမျက်နှာပြင်” (Application Programming Interface)၏ အတိုကောက်ဖြစ်ပြီး၊ နှစ်ခုသော့သော့ကွဲကွဲသော အရာများကို ဆက်သွယ်ရန်အတွက် ကြိုတင်သတ်မှတ်ထားသော လုပ်ဆောင်ချက်များ (functions) ၏ စုစည်းမှုဖြစ်သည်။ ၎င်းသည် အက်ပလီကေးရှင်းများနှင့် ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးရေးသူများအနေဖြင့် ဆော့ဖ်ဝဲလ် သို့မဟုတ် ဟာ့ဒ်ဝဲလ်၏ လုပ်ဆောင်ချက်များကို source code ကိုထိန်းညှိရန် သို့မဟုတ် အတွင်းပိုင်း လုပ်ငန်းဆောင်ရွက်မှုများကို နားလည်ရန်မလိုပဲ ဝင်ရောက်အသုံးပြုနိုင်သည့် လမ်းကြောင်းတစ်ခုကို ပေးပါသည်။
အမှန်တကယ်တွင် API ဆိုသည်မှာ အခြားသူများ ကြိုတင်ရေးသားထားသော လုပ်ဆောင်ချက်တစ်ခုကို လုပ်ဆောင်နိုင်သော လုပ်ဆောင်ချက်များဖြစ်သည်။ သင်သည် ပေးထားသော interface ကိုလိုက်၍ လုပ်ဆောင်ချက်ကိုခေါ်ဆိုပြီး သတ်မှတ်ထားသော parameters များကိုပေးပို့ရုံဖြင့် လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ပေးနိုင်ပါသည်။

“မျက်နှာပြင်” ဆိုသည့်အယူအဆအရ၊ ကွန်ပျူတာနယ်ပယ်တွင် ၎င်းသည် နှစ်ခုသော့သော့ကွဲကွဲသော အင်အားကြားတွင် ဆက်သွယ်ဆောင်ရွက်သည့်နေရာကို ဆိုလိုသည်။ ၎င်းသည် နှစ်ခုလုံးသော့သော့ကွဲကွဲသော စနစ်ဖြစ်စေ၊ နှစ်ခုသော့သော့ကွဲကွဲသော ပရိုဂရမ်ဖြစ်စေနိုင်သည်။ မျက်နှာပြင်၏ “I” ကိုဤသို့ နားလည်နိုင်သည်။ ဤအခြေခံပေါ်တွင် လူနှင့် ပရိုဂရမ်ကြားတွင် ဆက်သွယ်ဆောင်ရွက်သည့်နေရာကို UI (User Interface) ဟုခေါ်ပြီး လူတိုင်း၏ input ပုံစံများဖြစ်သည့် mouse, keyboard, touch screen နှင့် အသံ input တို့ကိုလည်း ပါဝင်သည်။ ပရိုဂရမ်နှင့် ပရိုဂရမ်ကြားတွင် ဆက်သွယ်ဆောင်ရွက်မှုကို API ဟုခေါ်ပြီး လူမဟုတ်သော အရာများကြားတွင် ဆက်သွယ်ဆောင်ရွက်မှုအားလုံးကို API ဖြင့်ဆောင်ရွက်သည်။ ဤသို့သော ဆက်သွယ်ဆောင်ရွက်မှု၏ အနှစ်သာရမှာ ဒေတာလွှဲပြောင်းခြင်းနှင့် လုပ်ဆောင်ချက်ကို triggering လုပ်ခြင်းဖြစ်သည်။
(2) API ၏ အမျိုးအစားများ
API များကို စနစ်အဆင့် API (Windows, Linux, Unix စသည်တို့) နှင့် operating system အဆင့်မဟုတ်သော custom API များဟူ၍ ခွဲခြားနိုင်သည်။ ထိရောက်သော code encapsulation pattern တစ်ခုအနေဖြင့် Microsoft Windows ၏ API ဖွံ့ဖြိုးရေးပုံစံကို အများအားဖြင့် commercial application ဖွံ့ဖြိုးရေး ကုမ္ပဏီများက အတုယူပြီး third party များအနေဖြင့် လုပ်ဆောင်ချက်များကို ချဲ့ထွင်နိုင်ရန်အတွက် commercial application system API လုပ်ဆောင်ချက်များကို ထုတ်ပြန်ကြသည်။ ဥပမာအားဖြင့် Google, Apple ကုမ္ပဏီနှင့် Nokia စသည့် မိုဘိုင်းလ်ဖုန်းဖွံ့ဖြိုးရေး API များဖြစ်သည်။
API များကို ဖွင့်ဟသော API နှင့် ပုဂ္ဂိုလ်ရေး API များဟူ၍လည်း ခွဲခြားနိုင်သည်။ ဖွင့်ဟသော API ဆိုသည်မှာ လူတိုင်းအသုံးပြုနိုင်သော interface ဖြစ်ပြီး၊ ဘယ်သူမဆို ခေါ်ဆိုပြီး နောက်ခံရှိသော ဒေတာကိုရယူနိုင်သည်။ တစ်ခါတစ်ခါ ကုမ္ပဏီများသည် API ကို၎င်းတို့၏ public open system အဖြစ်သတ်မှတ်ကြသည်။ ကုမ္ပဏီသည် ၎င်းတို့၏ system interface standard ကိုသတ်မှတ်ပြီး system integration, customization နှင့် application program စသည်တို့ကို လုပ်ဆောင်ရန်လိုအပ်သည့်အခါ ကုမ္ပဏီဝင်အားလုံးသည် ဤ interface standard ဖြင့် source code ကိုခေါ်ဆိုနိုင်သည်။ ဤ interface standard ကို ဖွင့်ဟသော API ဟုခေါ်သည်။ ပုဂ္ဂိုလ်ရေး API ဆိုသည်မှာ ပြင်ပသို့ဖွင့်လှစ်ထားခြင်းမရှိသော interface ဖြစ်သည်။
02 SDK
(1) SDK ဆိုသည့်အဓိပ္ပာယ်
SDK ဆိုသည်မှာ “ဆော့ဖ်ဝဲလ်ဖွံ့ဖြိုးရေးကိရိယာအစု” (Software Development Kit)၏ အတိုကောက်ဖြစ်ပြီး၊ ဆော့ဖ်ဝဲလ်အင်ဂျင်နီယာများအနေဖြင့် အထူးပြုသော software package, software framework, hardware platform, operating system စသည်တို့အတွက် application software ကိုတည်ဆောက်ရန်အတွက် အသုံးပြုသည့် development tools ၏ စုစည်းမှုဖြစ်သည်။ ရိုးရိုးပြောရလျှင် SDK ဆိုသည်မှာ third party service provider မှ ပေးသော ဆော့ဖ်ဝဲလ်ထုတ်ကုန်တစ်ခု၏ လုပ်ဆောင်ချက်ကို လုပ်ဆောင်ရန်အတွက် ကိရိယာအစုဖြစ်သည်။
SDK များသည် အများအားဖြင့် အထူးပြုသော ကုမ္ပဏီများမှ ပေးသော professional service စုစည်းမှုဖြစ်သည်။ ဥပမာအားဖြင့် Android development tools သို့မဟုတ် hardware-based development services စသည်တို့ဖြစ်သည်။ ဆော့ဖ်ဝဲလ်တစ်ခု၏ လုပ်ဆောင်ချက်အတွက် SDK လည်းရှိသည်။ ဥပမာအားဖြင့် push technology, image recognition technology, mobile payment technology, speech recognition analysis technology စသည်တို့ဖြစ်သည်။ အင်တာနက်ဖွင့်ဟမှု၏ trend အရ၊ လုပ်ဆောင်ချက်ဆိုင်ရာ SDK များကို တစ်ခုခုသော product အဖြစ် operating လုပ်ဆောင်ကြသည်။
ဖွံ့ဖြိုးရေးသူများသည် product ၏ လုပ်ဆောင်ချက်တစ်ခုစီကို ဖွံ့ဖြိုးရန်မလိုအပ်တော့ဘဲ၊ သင့်လျော်ပြီး ယုံကြည်စိတ်ချသော SDK service ကိုရွေးချယ်ပြီး product တွင် လုပ်ဆောင်ချက်တစ်ခုကို integrate လုပ်ရန်အတွက် နည်းပါးသောအချိန်ကိုသာ အသုံးပြုရန်လိုအပ်ပါသည်။
(2) SDK နှင့် API ၏ ကွာခြားချက်
SDK ဆိုသည်မှာ development integration tool environment နှင့် API ဆိုသည်မှာ data interface ဖြစ်သည်။ SDK ပတ်ဝန်းကျင်တွင် API data ကိုခေါ်သုံးသည်။
အမှန်တကယ်တွင် SDK သည် API ၏ definition ကိုပါဝင်ထားပြီး API သည် လုပ်ဆောင်ချက်တစ်ခုကို သို့မဟုတ် interface ၏ standard ကိုသတ်မှတ်သည်။ SDK တွင် ဤလုပ်ဆောင်ချက်နှင့် standard တို့ကိုပါဝင်နိုင်သော်လည်း SDK သည် API နှင့်၎င်း၏ implementation ကိုသာမက ၎င်းတွင် အခြားအထောက်အကူပြုလုပ်ဆောင်ချက်များစွာပါဝင်သော software toolkit တစ်ခုဖြစ်သည်။
API ကိုအသုံးပြုရန်အတွက်လိုအပ်သော အချက်အလက်များကို SDK တွင်ပါဝင်ထားသောကြောင့် လူများသည် API ကိုအသုံးပြု၍ Windows application ကိုရေးသားခြင်းကို “SDK programming” ဟုလည်းခေါ်လေ့ရှိသည်။





