API
Аппликейшн програмчлалын интерфейс(API)
Аппликейшн програмчлалын интерфейс (API)

АПИ нь нэг аппликейшн хэрхэн өөр аппликейшнтэй харилцан ажиллахыг тодорхойлох дүрмийн олонлогийг агуулдаг. Үүнд програм хангамжийг байгуулах хэрэгсэлүүд, протоколууд, subroutine-ууд агуулагдана. Сайн API нь бүх жижиг хэсгүүдийн байгуулалтийг харгалзан үзсэнээр програм хангамжийг бүтээх ажлыг хялбаршуулж өгдөг. API нь маш олон form(хэлбэр)- г тодорхойлж болно. Гэхдээ ихэвчлэн routines(зорилгын дараалал), өгөгдлийн бүтцүүд, объект классууд, хувьсагчуудыг оруулж тодорхойлдог. Олон төрлийн API байдаг бөгөөд жишээ нь : POSIX, Microsoft Windows API, the C++ Standard Template Library, and Java API. API-гийн эрх зүйн байдал нь оюуны өмчийн хуулийн тал дээр маргаантай байдаг.
АПИ нь үндсэн хоёр ашиг тусийг авчирдаг:
- Хялбаршуулах давхаргаар хангах замаар нарийн төвөгтэй байдлийг нуух
- Стандартчилал
Аппликейшн хоорондын харилцан ажиллагаа гэж юу вэ?
Үндсэндээ, энэ нь нэг аппликейшн өөр аппликейшнын эзэмшиж буй өгөгдөлтэй холбогдох эсвэл аппликейшнруу өгөгдөл илгээх үед тохиолддог. Өөр нэг харилцаа нь нэг аппликейшн өөр сервист хүсэлт илгээх үед байж болно. АПИ нь хэрэглэгчийн харилцааг биш, software-to-software харилцааг хангаж өгдөг. АПИ-гаар програм хангамжууд ямар нэг хэрэглэгчийн мэдлэг оролцоогүйгээр хоорондоо харилцдаг. Үүнийг маш энгийнээр тайлбарлах юм бол жишээ нь та онлайнаар кино тасалбар захиалвал кино тасалбар захиалгын веб сайт таны картны мэдээллийг удирдаж байгаа аппликейшины илгээсэн АПИ-г ашиглан картны мэдээлэл тохирч байгаа эсэхийг шалгана. ө.х та нэг л интерфейсийг буюу кино захиалгийн хуудсыг харж байхад ард нь маш олон аппликейшнууд АПИ-г ашиглан хамтдаа ажиллаж байдаг ба нэгтгэлийн энэ хэлбэрийг seamless буюу үл үзэгдэлт гэж нэрлэдэг. Энэ мэтээр програм хангамжийн функцууд нэг аппликейшнээс нөгөөрүү шилжиж байх үед хэрэглэгчид хэзээ ч үүнийг анзаардаггүй.
Зорилго
График хэрэглэгчийн интерфэйс нь хэрэглэгч програм ашиглахад илүү хялбар болгодог шиг, програмчлалын интерфэйс нь хөгжүүлэгчид аппликейшнд суурилсан технологи хийхэд хялбар болгодог.
Хэрэглээ
Сангууд болон тогтолцоонууд
API-гийн програм хангамжийн library нь ихэнхдээ олон төрөлтэй байдаг: API-гийн library-н зарчим нь цогц бодит хэрэгжилтээр тодорхойлогддог. API нь адил програмчлалын интерфэйстэй өөр library-уудаас олон төрлийн формын хэрэгжүүлэлтийг авч ажиллаж чаддаг. Бусад library-н адил хэл дээр бичигдсэн програмыг API салган авч хэрэгжүүлэхийг зөвшөөрдөг. Жишээ нь: Scala болон java хөрвүүлэгчид нь bytecode дээр ажилладаг ба scala хөгжүүлэгчдийн давуу тал нь ямар ч java API-г ашиглаж чаддаг. API нь ямар ч програмчлалын хэл байсан өөрчилж чаддаг.API нь LUA горимын хэл бөгөөд ерөнхий код, нарийн төвөгтэй өгөгдлүүд, алдаанууд, Java-н обьект хандалтат хэлний ангиудын шинж чанар ба классын гишүүд зэргээс бүрдэнэ.API нь бас хэлний үүрэгтэй Интерфэйс хийхэд fortran аас python интерфейс-г мөн SWIG ба F2PY түүлийг ашигладаг. API нь програм хангамжын фрэймворкыг төрөлжүүлж чаддаг: Фрэймворк нь өөр өөр API-г өөр өөр library-уудтай ерөнхийд нь хэрэгжүүлж чаддаг бөгөөд идэвхитэй төлөвт байгаа классын агууллагыг өөртөө удамшуулцж авч чаддаг.
Үйлдлийн систем
API нь үйлдлийн систем ба аппликейшн хоёрын хоорондох онцлогийг гаргадаг. Ерөнхий том 3-н бэлэн болсон хэрэглээний програмын холбоос бол Windows үйлдлийн системийн WIN32 API, POSIX-ийн үндсэн суурь систем(үүнд: UNIX LINUX-ийн дэвшилтэд хувилбарууд болон MAC-OS-X(http://en.wikipedia.org/wiki/Mac_OS_X_Lion) орно)ийн POSIX API(http://en.wikipedia.org/wiki/POSIX_Threads) мөн JAVA(http://en.wikipedia.org/wiki/Java) виртуаль машиний загварийн програм болох JAVA API байна. POSIX жишээ нь: API нь POSIX дээр бичсэн кодыг аль нэг үйлдлийн систем дээр шалгаад дараа нь өөр үйлдлийн систем дээр ч ажиллах боломжтой болгох юм. Linux болон Berkeley Software Distribution POSIX API-уудыг хэрэгжүүлэх үйлдлийн системүүдийн жишээ юм. API-н онцлог нь эх код нь 2тын интерфейс аппликейшн буюу ABI-д суурилсан байдаг. Жишээ нь POSIX APIтай нийцдэг бол Linux Standard Base нь ABI тай нийцдэг.
Pthread Api
Thread сан нь програмчид thread –ыг үүсгэх болон удирдахад зориулсан API –аар хангадаг. API –д байгаа санд зориулсан фунзц дуудалт нь ерөнхийдөө кернелрүү систем дуудлага хийж таардаг.Java thread API нь thread үүсгэлт болон удирдлага, тохируулгыг шууд жава програмаас хий боломжийг олгодог. Гэвч ихэнхидээ JVM нь хостын үйлдлийн систем дээр ажилладаг болохоор Java thread API нь ерөнхийдөө хостын системд байгаа байгаа thread сангуудыг ашиглан суурьлагддаг. Энэ нь Windows системд , java thread –үүд нь Win32 ашиглаж суурьлагдана гэсэн үг unix болон linux нь голцуу Pthreads- ыг ашигладаг.

Java API
Java маш олон бэлэн бэлдсэн class-уудтай байдаг ба тэдгээрийг JAVA API гээд байгаа юм. Эдгээр class-уудыг хэд хэдэн Package (багц)-д хувиарилсан байдаг. Package-ууд нь өөрсдийн гэсэн нэртэй байх ба жишээ нь javax.swing энэ package нь Swing GUI-н class-уудыг агуулдаг. Мөн java.util гэж маш хэрэгтэй ultilities буюу хэрэсэлүүдийн package байдаг. Ер нь бол эдгээр бэлэн class-уудыг ашиглахдаа package-г import хийх эсвэл зүгээр package-н нэрийг бичээд ард нь class-н нэрийг бичсэнээр ашиглах боломжтой юмаа. Бид 2 дахь аргийг нь ашиглаж байсан. System, String, Math гээд л эдгээр нь java.lang package-д багтдаг(java.lang package нь java-с цаанаас нь автоматаар import хийгдсэн байдаг). Жишээ нь : String обьект нь тэмдэгт стрингтэй ажиллахад хэрэг болох стейт, бихэвиорыг; File обьект нь програмчид файлсистем дээр хялбархнаар файл үүсгэж, устгаж, шалгаж, харьцуулж, өөрчлөх боломж олгодог; Socket обьект нь сүлжээний сокетуудыг үүсгэж, хэрэглэх боломж олгодог; олон янзын GUI обьектын контролууд нь янз бүрийн товчнууд, чекбоксууд болон графикан юзер интерфейстэй холбоотой өөр юу л байна бараг цөмийг нь агуулсан байдаг. Үнэндээ сонголт хийж болох мянга мянган классууд энэ санд бий. Эдгээрийг ашигласнаар програмч тухайн аппликейшны дизайнд л анхаарах боломжтой болох бөгөөд харин түүнийг ажилуулах (далд орших, доорх) дэд бүтцэд нэг их анхаараад байх шаардлагүй болдог.

Жавагийн Жава Платформ АПИ Тодорхойлолтуудын Лавлах нь (http://java.sun.com/javase/6/docs/api/index.html) Жава Платформ 6, Стандарт Эдишинтэй дагалдах бүх пакажууд, интерфейсүүд, классууд, фийлдүүд (fields), методуудын тухай тайлбар, тодорхойлолтыг агуулсан байдаг. Дизайн API-н загвар нь хэрэглээнд маш чухал ач холбогдолтой. Програмын интерфейсын үүрэг нь мэдээллийг нууцлан бичих бөгөөд ажиллах зарчим нь хэрэглэгчийн мэдэх шаардлагагүй програмын нарийн төвөгтэй модулиудыг нууцлах боломж олгодог. Тиймээс API загвар нь хэрэглэгчийн хүлээгдсэн цорын ганц хэрэгсэл юм. Програмын интерфейсийн загвар нь програм хангамжийн чухал хэсэг бөгөөд програм хангамжийн байгууламжийн цогц хэсэг юм. Иошуа Блок зэрэг хэд хэдэн зохиогч API-г хэрхэн зохион байгуулах талаар зөвлөмж гаргасан байдаг.
Алсын API
Java SDK-д алсын аппликейшн интерфейс дуудалт гэж байдаг. Энэ нь апп төхөөрөмжийн сервисээс ямар ч жава аппликейшнд хүссэн үйлчилгээгээ авах боломжийг олгодог. Алсын API хөгжүүлэгчид нь хэлээс үл хамааран харилцаа холбооны тодорхой стандартыг ашиглан өөр технологиуд дээр хамтран ажиллах боломж олгодог. Гэхдээ прокси обьект дээр нь өөрчлөлт хийвэл алсын обьект дээр хүртэл өөрчлөлт хийх шаардлага гардаг.
Веб API
Веб API интерфейсын тодорхойлолт нь компани болон аппликейшнүүдийн хоорондох харилцан үйлчлэлийг харуулдаг. Веб аппликейшн хийхэд HTML/ CSS/ Javascript гурвал нь хэрэглэгчийн интерфейс, Ruby ба Python хэл сервер хэсгийг хийхэд илүү өргөн хэрэглэгдэх болсон. Гар утасны хувьд бидний сайн мэдэх iOS ба Android хэрэглэдэг. Мөн томоохон агентлагуудын дунд WebGL -ийг сонирхон хэрэглэх нь эрс нэмэгдсэн.
Бодлого
API технологийн компаниуд өөр хоорондоо нэгтгэх хамгийн түгээмэл нэг арга байдаг. Бизнесийн эко системийн гишүүд нь сайтар бодсоны эцэст API-г ашигласан юм. API-г гаргах гол бодлого нь:
• Хамгаалалт: API-г зөвхөн компаны дотоод ажилчид хэрэглэнэ. • Хамтрагч: Зөвхөн тодорхой бизнесийн түншүүд API ашиглаж болно. Жишээ нь Uber болон Lyft зэрэг машины үйлчилгээний компаниуд нь үйлчлүүлэгчдэд автомашины уралдаанд захиалга өгөхдөө шууд аппликейшнээс өгөхийг зөвшөөрдөг. • Нээлттэй: API – г бүх хэрэглэгчид ашиглах боломжтой.
Зохиогчийн эрх болон маргаан
2010 онд Oracle Corporation Android үйлдлийн систем суулгагдсан Java шинэ хэрэгжилтийг тараасан учир Google-ийг шүүхэд өгсөн. Google JavaApi-г хуулбарлах ямар нэгэн зөвшөөрөлгүй байсан хэдий ч OpenJDK-тай адил төсөл боловсруулсан. Шүүгч Уильям Alsup Oracle-н талд ялалтыг өгсөн хэдий ч google-н энэ үйл явдалаас шалтгаалан програм хангамжийн хуулбарын талаар тушаалуудыг өргөн барьсан байдаг.
Холбоос
- http://as.wiley.com/WileyCDA/WileyTitle/productCd-EHEP002013.html --> Operating system concepts 9th edition