Open Service Gateway Initiative
OSGI
(Open Service Gateway Initiative) adalah sebuah rencana industri untuk cara
standar untuk menghubungkan perangkat seperti perangkat rumah tangga dan sistem
keamanan ke Internet. OSGI berencana menentukan program aplikasi antarmuka
(API) untuk pemrogram menggunakan, untuk memungkinkan komunikasi dan kontrol
antara penyedia layanan dan perangkat di dalam rumah atau usaha kecil jaringan.
OSGI API akan dibangun pada bahasa pemrograman Java. Program java pada umumnya
dapat berjalan pada platform sistem operasi komputer. OSGI adalah sebuah
interface pemrograman standar terbuka.
The
OSGI Alliance (sebelumnya dikenal sebagai Open Services Gateway inisiatif,
sekarang nama kuno) adalah sebuah organisasi standar terbuka yang didirikan
pada Maret 1999. Aliansi dan anggota – anggotanya telah ditentukan sebuah
layanan berbasis Java platform yang dapat dikelola dari jarak jauh.
Mengetahui bagaimana spesifikasi
dari OSGI
Inti
bagian dari spesifikasi adalah suatu kerangka kerja yang mendefinisikan
aplikasi model manajemen siklus hidup, sebuah layanan registrasi, sebuah
lingkungan eksekusi dan modul. Berdasarkan kerangka ini, sejumlah besar OSGI
layers, API, dan Jasa telah ditetapkan.
Spesifikasi
OSGI yang dikembangkan oleh para anggota dalam proses terbuka dan tersedia
untuk umum secara gratis di bawah Lisensi Spesifikasi OSGI. OSGI Alliance yang
memiliki program kepatuhan yang hanya terbuka untuk anggota. Pada Oktober 2009,
daftar bersertifikat OSGI implementasi berisi lima entri.
Spesifikasi
OSGI yang sekarang digunakan dalam aplikasi mulai dari ponsel ke open source
Eclipse IDE. Wilayah aplikasi lain meliputi mobil, otomasi industri,
otomatisasi bangunan, PDA, komputasi grid, hiburan (misalnya iPronto), armada
manajemen dan aplikasi server. Adapun spesifikasi yang lain dimana OSGI akan
dirancang untuk melengkapi standar perumahan yang ada, seperti orang – orang
LonWorks (lihat kontrol jaringan), CAL, CEBus, HAVi, dan lain-lain.
Mengetahui bagaimana arsitektur
dari OSGI
Ada
kerangka OSGI yang menyediakan suatu lingkungan untuk modularisasi aplikasi ke
dalam kumpulan yang lebih kecil. Setiap bundel adalah erat – coupled,
dynamically loadable kelas koleksi, botol, dan file-file konfigurasi yang
secara eksplisit menyatakan dependensi eksternal mereka (jika ada).
Kerangka
kerja konseptual yang dibagi dalam bidang-bidang berikut:
1.
Bundel
Kumpulan
jar normal komponen dengan nyata tambahan header. Sebuah bundel adalah
sekelompok kelas Java dan sumber daya tambahan yang dilengkapi dengan rincian
file pada MANIFEST.MF nyata semua isinya, serta layanan tambahan yang
diperlukan untuk memberikan kelompok termasuk kelas Java perilaku yang lebih
canggih, dengan tingkat deeming seluruh agregat sebuah komponen.
2.
Layanan
Layanan
yang menghubungkan lapisan bundel dalam cara yang dinamis dengan menawarkan,
menerbitkan dan menemukan model dapat mengikat Java lama untuk menikmati objek
(POJO). Siklus hidup menambahkan lapisan bundel dinamis yang dapat diinstal,
mulai, berhenti, diperbarui dan dihapus. Buntalan bergantung pada lapisan modul
untuk kelas loading tetapi menambahkan API untuk mengatur modul – modul dalam
run time. Memperkenalkan lapisan siklus hidup dinamika yang biasanya bukan
bagian dari aplikasi. Mekanisme ketergantungan luas digunakan untuk menjamin
operasi yang benar dari lingkungan.
3.
Layanan Registrasi (Services-Registry)
API
untuk manajemen jasa (ServiceRegistration, ServiceTracker dan
ServiceReference).
OSGi
Alliance yang telah ditentukan banyak layanan. Layanan yang ditentukan oleh
antarmuka Java. Kumpulan dapat mengimplementasikan antarmuka ini dan
mendaftarkan layanan dengan Layanan Registri. Layanan klien dapat menemukannya
di registri, atau bereaksi ketika muncul atau menghilang.
4.
Siklus Hidup (Life-Cycle)
API
untuk manajemen siklus hidup untuk (instal, start, stop, update, dan uninstall)
bundel.
5.
Modul
Lapisan
yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana sebuah
bungkusan dapat mengimpor dan mengekspor kode).
6.
Keamanan
Layer
yang menangani aspek keamanan dengan membatasi fungsionalitas bundel untuk pra
didefinisikan kemampuan.
7.
Pelaksanaan Lingkungan
Mendefinisikan
metode dan kelas apa yang tersedia dalam platform tertentu. Tidak ada daftar
tetap eksekusi lingkungan, karena dapat berubah sebagai Java Community Process
menciptakan versi baru dan edisi Jawa. Namun, set berikut saat ini didukung
oleh sebagian besar OSGI implementasi:
·
CDC-1.0/Foundation-1.0
·
CDC-1.1/Foundation-1.1
·
OSGi/Minimum-1.0
·
OSGi/Minimum-1.1
·
JRE-1.1
·
Dari J2SE-1.2 hingga J2SE-1,6
Kolaborasi
Interface Otomotif Multimedia
Kolaborasi Antarmuka
Otomotif Multimedia adalah suatu kelompok yang dibuat untuk menciptakan standar
umum yang digunakan dalam mengatur bagaimana suatu perangkat alat elektronik
bekerja misalnya komputer dan alat komunikasi kendaraan. Dan memiliki anggota:
Fiat, Ford, General Motors, Honda, Mitsubishi, Nissan, PSA Peugeot-Citroen,
Renault.
Tujuan utamanya adalah untuk:
1. Menyediakan interface
standar untuk memungkinkan pengendara mobil untuk menggunakan berbagai media,
komputer dan perangkat komunikasi - dari sistem navigasi dan hands-free telepon
selular, melalui manusia maju / mesin sistem antarmuka, termasuk pengenalan
suara dan sintesis, untuk dipersembahkan komunikasi jarak dekat ( DSRC) sistem
untuk kendaraan untuk infrastruktur komunikasi dan sistem mobil seperti airbag,
pintu kunci dan diagnostik input / output;
2. Meningkatkan
pilihan dan mengurangi keusangan sistem elektronik kendaraan.
3. Memotong biaya keseluruhan
informasi kendaraan dan peralatan hiburan dengan meningkatkan ukuran pasar yang
efektif dan memperpendek waktu pengembangan - industri otomotif efektif terdiri
dari banyak pasar yang kecil karena setiap platform kendaraan sering mengandung
berbagai adat-mengembangkan komponen dan platform yang khas hanya sekitar
50.000 unit; dan
4. Menawarkan standar
terbuka dan spesifikasi untuk informasi interface dalam kendaraan dan antara
kendaraan dan dunia luar.
Automotive Multimedia
Interface Kolaborasi (AMIC) mengatakan akan menjadi tuan rumah tiga update
internasional briefing untuk menjadi pemasok otomotif, komputer dan teknologi
tinggi industri elektronik.
Acton menekankan bahwa AMIC terbuka untuk semua pemasok yang tertarik bisnis elektronik. AMIC dibentuk pada bulan September l998dengan tujuan untuk mengembangkan serangkaian spesifikasi umum untuk multimedia interface ke sistem elektronik kendaraan bermotor untuk mengakomodasi berbagai
berbasis komputer perangkat elektronik di dalam kendaraan. Inisiatif ini-yang pendiri
Daimler-Chrysler, Ford, General Motors, Renault dan Toyota - sekarang kelompok semua auto utama pembuat, dan dengan demikian menyediakan kesempatan strategis baru untuk mencapai suatu set umum industri mobil persyaratan sebagai dasar untuk konvergensi pasar.
Acton menekankan bahwa AMIC terbuka untuk semua pemasok yang tertarik bisnis elektronik. AMIC dibentuk pada bulan September l998dengan tujuan untuk mengembangkan serangkaian spesifikasi umum untuk multimedia interface ke sistem elektronik kendaraan bermotor untuk mengakomodasi berbagai
berbasis komputer perangkat elektronik di dalam kendaraan. Inisiatif ini-yang pendiri
Daimler-Chrysler, Ford, General Motors, Renault dan Toyota - sekarang kelompok semua auto utama pembuat, dan dengan demikian menyediakan kesempatan strategis baru untuk mencapai suatu set umum industri mobil persyaratan sebagai dasar untuk konvergensi pasar.
Untuk berbagai alasan,
kendaraan telah tertinggal di belakang rumah dan perangkat komputasi mobile
ketika datang ke alat produktivitas dan multimedia. Keamanan, kehandalan,
biaya, dan desain waktu memiliki semua faktor dalam produsen mobil 'menunda
penerimaan teknologi baru. Makalah membahas otomotif standar untuk antarmuka
multimedia. Organisasi seperti Otomotif Kolaborasi Multimedia Interface (AMI-C)
memiliki kesempatan untuk menjadi kekuatan pendorong di belakang upaya standardisasi,
dan saat ini dipimpin oleh 12 produsen otomotif dan anak perusahaan yang
meliputi: BMW, DaimlerChrysler, Ford, Fiat, General Motors, Honda, Mitsubishi,
Nissan, PSA / Peugeot-Citroen, Renault, Toyota, dan VW. Seorang juru bicara
mengatakan kelompok AMIC berencana untuk mendirikan sebuah kantor di San
Francisco di masa depan.
Antarmuka Otomotif Multimedia Telematika yang
dimaksud disini adalah Automotive Multimedia Interface Collaboration atau yang
lebih dikenal dengan singkatan AMI-C, adalah suatu bentuk pengembangan dan
stadarisasi yang umum multimedia dan telematika otomotif untuk kendaraan
antarmuka jaringan komunikasi. Adapun tujuan dari adanya AI-C ini adalah :
1. Untuk menyediakan
interface yang berstandar, sehingga memungkinkan seorang pengendara kendaraan
(mobil) dapat menggunakan perangkat lain melalui berbagai media, komputer,
perangkat komunikasi dari sistem navigasi dan handsfreeyang biasa digunakan
pada telepon selular.
2. Untuk meningkatkan berbagai
macam pilihan yang dapat digunakan oleh user dan juga untuk mengurangi
keusangan sistem elektronik kendaraan.
3. Untuk memotong biaya yang
dikeluarkan untuk keseluruhan informasi kendaraan dan juga peralatan hidubran
dengan meningkatkan ukuran pasar yang efektif dan memperpendek waktu
pengembangan industri otomotif efektif.
Karena banyak jumlah kendaraan yang sering mengandung berbagai adat
mengembangkan komponen dan platfor yang khas hanya sekitar 50.000 unit.
4. Untuk menawarkan standar
terbuka dan spesifikasi bagi informasi interface dalam kendaraan dan antara
kendaraan dengan dunia luar.
Pada dasarnya kolaboasi antarmuka otomotif
multimedia itu sendiri adalah sebuah organisasi yang mana organisasi ini
dibentuk guna menciptakan standarisasi dunia yang digunakan dalam mengatur
bagaimana sebuah perangkatelektronik dapat bekerja sebagaimana yang diharapkan.
Dimana setiap alat elektronik ini harus dapat bekerja dengan selaras sehingg
kendaraan dapat lebih handal ketika digunakan. Sebelum memasang perangkat ini,
alangkah baiknya untuk terlebih dahulu mencocokkan dengan jenis atau tipe
kendaraan yang digunakan, karena pada dasarnya belum tentu perangkat yang akan
dipasang akan selalu cocok dengan kendaraan yang digunakan, karena itulah perlu
dibuat standarisasi kolaborasi antarmuka multimedia.
Sudah terdapat beberapa anggota yang aktif dalam organisasi Automotive
Multimedia Interface Collaboration (AMI-C), diantaranya adalah : Fiat, Ford,
General Motors, Mitsubishi, Nissan, PSA Peugeot-Cotroen, dan Renault.
Proses komunitas java
Java dikembangkan
mengacu pada standar yang ditentukan oleh komite didalam JCP (Java Community
Process). Spesifikasi Java tidak sekedar fondasi VMnya, tetapi menyangkut
hampir semua aspek, mulai dari mekanisme mengakses devices I/O, komponen
pertukaran objek, sampai pengembangan container. JCP merupakan badan yang
bertanggung jawab terhadap standar teknologi Java.
Virtual
Machine
mesin virtual (VM) adalah sebuah perangkat
lunak implementasi sebuah mesin (misalnya komputer) yang melaksanakan
program-program seperti mesin fisik. Sebuah mesin virtual pada awalnya
ditentukan oleh Popek dan Goldberg sebagai "yang efisien, terisolasi
duplikat dari mesin yang nyata". Saat menggunakan mesin virtual yang
mencakup tidak memiliki surat-menyurat langsung ke perangkat keras yang nyata.
Mesin virtual
dipisahkan ke dalam dua kategori utama, berdasarkan tingkat penggunaan dan
korespondensi untuk mesin nyata. Sebuah sistem mesin virtual yang lengkap
menyediakan platform sistem yang mendukung pelaksanaan lengkap sistem operasi
(OS). Sebaliknya, mesin virtual sebuah proses yang dirancang untuk menjalankan
sebuah program, yang berarti bahwa ia mendukung satu proses. Karakteristik
penting dari sebuah mesin virtual yang berjalan di dalam perangkat lunak adalah
terbatas pada sumber daya dan abstraksi yang disediakan oleh mesin virtual
tidak dapat keluar dari dunia virtual.
Contoh: Suatu program yang ditulis dalam Java
menerima jasa dari Java Runtime Environment (JRE) perangkat lunak dengan
mengeluarkan perintah untuk, dan menerima hasil yang diharapkan dari, perangkat
lunak Java. Dengan memberikan layanan ini untuk program tersebut, perangkat
lunak Java bertindak sebagai "mesin virtual", menggantikan sistem
operasi atau hardware untuk program yang biasanya akan disesuaikan.
• Sistem virtual machines
Sistem mesin virtual (kadang-kadang disebut mesin
virtual hardware) memungkinkan pembagian yang mendasari sumber daya mesin fisik
antara mesin virtual yang berbeda, masing-masing berjalan sendiri sistem
operasi. Lapisan perangkat lunak yang menyediakan virtualisasi ini disebut
mesin virtual monitor atau hypervisor. Sebuah hypervisor dapat berjalan di
hardware yang telanjang (Tipe 1 atau pribumi VM) atau di atas sistem operasi
(Tipe 2 atau host VM).
Keuntungan utama dari sistem VMS adalah:
• beberapa OS lingkungan dapat hidup berdampingan
pada komputer yang sama, dalam isolasi kuat satu sama lain
• mesin virtual dapat memberikan set instruksi
arsitektur (ISA) yang agak berbeda dari mesin yang sebenarnya
• aplikasi provisioning, pemeliharaan, tingkat
ketersediaan dan pemulihan bencana
Kerugian utama dari sistem VMS adalah:
• mesin virtual kurang efisien daripada mesin nyata
karena secara tidak langsung mengakses perangkat keras
Beberapa VMS masing-masing berjalan sistem operasi
mereka sendiri (yang disebut sistem operasi tamu) yang sering digunakan di
server konsolidasi, di mana layanan yang berbeda yang digunakan untuk
menjalankan mesin individu untuk menghindari gangguan yang terpisah, bukan
berjalan di VMS pada mesin fisik yang sama. Penggunaan ini sering
disebut-kualitas dari layanan-isolasi (QoS isolasi).
Keinginan untuk menjalankan beberapa sistem operasi
adalah motivasi asli untuk mesin virtual, seperti time-sharing memungkinkan
satu komputer di antara beberapa single-tasking OS. Teknik ini memerlukan
proses untuk berbagi sumber daya CPU antara sistem operasi tamu dan memori
virtualisasi untuk berbagi memori pada host.
OS tamu tidak harus sama, sehingga memungkinkan
untuk menjalankan OS yang berbeda pada komputer yang sama (misalnya, Microsoft
Windows dan Linux, atau versi lama dari sistem operasi untuk mendukung
perangkat lunak yang belum porting ke versi terbaru). Penggunaan mesin virtual
untuk mendukung OS tamu yang berbeda menjadi populer di embedded system;
tipikal digunakan adalah untuk mendukung real-time sistem operasi pada saat
yang sama sebagai OS tingkat tinggi seperti Linux atau Windows.
Penggunaan lainnya adalah untuk sandbox sebuah OS
yang tidak dipercaya, mungkin karena itu adalah sebuah sistem dalam
pengembangan. Mesin virtual memiliki keuntungan untuk OS lain pembangunan,
termasuk akses debugging yang lebih baik dan lebih cepat reboot.
Teknik alternatif seperti Solaris Zones menyediakan
tingkat isolasi dalam satu sistem operasi. Ini tidak memiliki isolasi selengkap
sebagai VM. Sebuah kernel mengeksploitasi dalam suatu sistem dengan beberapa
zona akan mempengaruhi semua zona. Mencapai tujuan yang sama dalam implementasi
mesin virtual akan membutuhkan mengeksploitasi kelemahan dalam hypervisor.
Sebuah hypervisor biasanya memiliki lebih kecil "serangan permukaan"
dari sebuah sistem operasi yang lengkap, membuat ini lebih menantang. Lebih
lanjut, sebuah kernel mengeksploitasi tamu di VM tidak akan mempengaruhi VMS
lain pada host, seperti gangguan yang sukses menjadi satu zona belum tentu
mempengaruhi zona lain. Zona tidak mesin virtual, tetapi contoh
"virtualisasi sistem operasi". Ini termasuk lain "lingkungan
virtual" (juga disebut "virtual server") seperti Virtuozzo,
FreeBSD penjara, Linux-VServer, chroot penjara, dan OpenVZ. Ini memberikan
beberapa bentuk rangkuman proses dalam sebuah sistem operasi. Teknologi ini
memiliki keunggulan sumber daya yang lebih efisien daripada virtualisasi penuh
dan memiliki lebih baik observability menjadi beberapa tamu secara simultan;
yang merugikan adalah bahwa, pada umumnya, mereka hanya dapat menjalankan satu
sistem operasi dan satu versi / patch tingkat sistem operasi bahwa -- jadi,
misalnya, mereka tidak dapat digunakan untuk menjalankan dua aplikasi, salah
satu yang hanya mendukung versi OS yang lebih baru dan yang lain hanya
mendukung versi OS yang lebih lama pada hardware yang sama. However, Sun
Microsystems has enhanced Solaris Zones to allow some zones to behave like Solaris
8 or Solaris 9 systems by adding a system call translator. Namun, Sun
Microsystems telah meningkatkan Solaris Zones untuk memungkinkan beberapa zona
untuk berperilaku seperti Solaris 8 atau Solaris 9 sistem dengan menambahkan
system call penerjemah.
• Proses mesin virtual
Sebuah proses VM, kadang-kadang disebut aplikasi
mesin virtual, berjalan sebagai aplikasi biasa di dalam sebuah OS dan mendukung
proses tunggal. Hal ini tercipta ketika proses itu dimulai dan hancur ketika
keluar. Tujuannya adalah untuk menyediakan sebuah platform-independen
lingkungan pemrograman yang abstrak pergi rincian perangkat keras yang
mendasarinya atau sistem operasi, dan memungkinkan sebuah program untuk
mengeksekusi dengan cara yang sama pada platform apapun.
Sebuah proses VM memberikan abstraksi tingkat tinggi
- yaitu yang tinggi tingkat bahasa pemrograman (dibandingkan dengan tingkat
rendah ISA abstraksi dari sistem VM). VMS proses diimplementasikan menggunakan
interpreter; kinerja yang sebanding dengan bahasa pemrograman terkompilasi
dicapai dengan menggunakan just-in-time compilation .
Jenis VM ini telah menjadi populer dengan bahasa
pemrograman Java, yang diimplementasikan menggunakan mesin virtual Java. Contoh
lain termasuk Bayan mesin virtual, yang berfungsi sebagai lapisan abstraksi
selama beberapa ditafsirkan lanugages, dan. NET Framework, yang berjalan pada
sebuah VM yang disebut Common Language Runtime.
Suatu kasus khusus VMS adalah proses sistem yang
abstrak atas mekanisme komunikasi yang (berpotensi heterogen) komputer cluster.
Seperti VM tidak terdiri dari sebuah proses tunggal, tetapi satu proses per
mesin fisik di cluster. Mereka dirancang untuk memudahkan tugas pemrograman
aplikasi paralel dengan membiarkan programmer fokus pada algoritma daripada
mekanisme komunikasi yang disediakan oleh interkoneksi dan OS. Mereka tidak
menyembunyikan fakta bahwa terjadi komunikasi, dan dengan demikian tidak
berusaha untuk menyajikan cluster sebagai satu mesin paralel.
Tidak seperti proses lain VMS, sistem ini tidak
menyediakan bahasa pemrograman tertentu, tetapi tertanam dalam bahasa yang ada;
biasanya sistem seperti menyediakan binding untuk beberapa bahasa (misalnya, C
dan FORTRAN). Examples are PVM ( Parallel Virtual Machine ) and MPI ( Message
Passing Interface ). Contohnya adalah PVM (Paralel Virtual Machine) dan MPI
(Message Passing Interface). Mereka tidak ketat mesin virtual, sebagai aplikasi
yang berjalan di atas masih memiliki akses ke semua layanan OS, dan karena itu
tidak terbatas pada model sistem yang disediakan oleh "VM".
APIs
Sebuah application programming interface (API)
adalah antarmuka bahwa sebuah program perangkat lunak alat untuk memungkinkan
perangkat lunak lain untuk berinteraksi dengan itu, banyak cara yang sama
seperti perangkat lunak mungkin akan mengimplementasikan antarmuka pengguna
untuk memungkinkan manusia untuk menggunakannya. API dilaksanakan oleh
aplikasi, perpustakaan dan sistem operasi untuk menentukan bagaimana perangkat
lunak lain dapat membuat panggilan ke atau layanan permintaan dari mereka.
Sebuah API menentukan kosa kata dan konvensi memanggil para pemrogram harus
mempekerjakan untuk menggunakan layanan . Ini mungkin termasuk spesifikasi
untuk rutinitas, struktur data, kelas objek, dan protokol yang digunakan untuk
berkomunikasi antara konsumen dan pelaksana API.
• Fitur
API adalah sebuah abstraksi. Perangkat lunak yang
menyediakan fungsionalitas yang dijelaskan oleh API dikatakan sebuah
implementasi dari API.
API dapat:
• Tergantung pada bahasa, yaitu hanya tersedia dalam
bahasa pemrograman tertentu, dengan menggunakan sintaks dan unsur-unsur bahasa
itu untuk membuat API nyaman untuk digunakan dalam konteks ini.
• Bahasa-independen, yaitu ditulis dengan cara yang
berarti dapat dipanggil dari beberapa bahasa pemrograman. Ini adalah fitur yang
diinginkan untuk layanan-gaya API yang tidak terikat pada suatu proses atau
sistem dan dapat diberikan sebagai remote procedure calls atau layanan web.
Sebagai contoh, sebuah website yang memungkinkan
pengguna untuk memeriksa restoran lokal mampu lapisan tinjauan di atas peta
mereka diambil dari Google Maps, karena Google Maps API yang memiliki
memungkinkan hal ituGoogle Maps 'API mengontrol informasi apa pihak ketiga
situs bisa ambil, dan apa yang bisa dilakukan dengan itu.
"API" dapat digunakan untuk mengacu ke
antarmuka lengkap, satu fungsi, atau bahkan satu set berbagai API yang
disediakan oleh sebuah organisasi. Dengan demikian, cakupan makna biasanya
ditentukan oleh orang atau dokumen yang mengkomunikasikan informasi.
• Web API
Ketika digunakan dalam konteks pengembangan web,
biasanya sebuah API yang didefinisikan set Hypertext Transfer Protocol (HTTP)
pesan permintaan bersama dengan definisi respon struktur pesan, biasanya
dinyatakan dalam sebuah Sementara "Web API" secara virtual sinonim
untuk layanan web, tren baru-baru ini (yang disebut Web 2.0) telah bergerak
jauh dari Simple Object Access Protocol (SOAP) layanan berbasis lebih langsung
terhadap Negara Representasi Transfer (REST) gaya komunikasi. Web API
memungkinkan kombinasi dari berbagai layanan ke aplikasi baru yang dikenal
sebagai mashup.
• Implementasi
POSIX standard mendefinisikan sebuah API yang
memungkinkan berbagai fungsi komputasi umum harus ditulis sedemikian rupa
sehingga mereka dapat beroperasi pada banyak sistem yang berbeda (Mac OS X dan
berbagai Berkeley Software Distribusi (BSD) mengimplementasikan interface ini),
namun, dengan menggunakan ini memerlukan kompilasi ulang untuk setiap platform.
API yang kompatibel, di sisi lain, memungkinkan dikompilasi kode obyek untuk
berfungsi tanpa perubahan apapun, pada pelaksanaan sistem apapun yang API. Hal
ini menguntungkan kedua penyedia perangkat lunak (di mana mereka dapat
mendistribusikan perangkat lunak yang ada pada sistem baru tanpa memproduksi /
mendistribusikan upgrade) dan pengguna (di mana mereka mungkin lebih tua
menginstal perangkat lunak pada sistem baru mereka tanpa membeli upgrade),
meskipun hal ini memerlukan berbagai perangkat lunak secara umum pelaksanaan
perpustakaan API diperlukan juga.
Microsoft telah menunjukkan komitmen untuk API yang
kompatibel ke belakang, terutama di dalam Windows API (Win32) perpustakaan,
seperti aplikasi yang lebih tua dapat berjalan di Windows versi yang lebih baru
menggunakan pengaturan khusus eksekusi yang disebut "Compatibility
Mode" . Apple Inc telah menunjukkan kecenderungan yang kurang perhatian
ini, memecah kompatibilitas atau mengimplementasikan dalam sebuah API yang
lebih lambat "mode emulasi"; ini memungkinkan kebebasan lebih besar
dalam pembangunan, pada biaya pembuatan perangkat lunak yang lebih tua usang.
Antara Unix-seperti sistem operasi, ada banyak
terkait tetapi tidak sesuai sistem operasi berjalan pada platform hardware yang
umum (khususnya Intel 80386 sistem yang kompatibel). Sudah ada beberapa usaha
untuk standarisasi API vendor perangkat lunak sehingga dapat mendistribusikan
satu aplikasi binari untuk semua sistem ini, namun sampai saat ini, tidak satu
pun telah bertemu dengan banyak keberhasilan. Linux Standard Base adalah
berusaha untuk melakukan hal ini untuk Linux platform, sementara banyak dari
beragam Unix BSD (FreeBSD, NetBSD, OpenBSD) menerapkan berbagai tingkat
kompatibilitas API untuk kedua backward compatibility (memungkinkan program
yang ditulis untuk versi lama untuk berjalan di distribusi baru sistem) dan
lintas-platform kompatibilitas (memungkinkan eksekusi kode asing tanpa
mengkompilasi ulang).