spesifikasi yang dikembangkan oleh para anggota dalam
proses terbuka dan tersedia untuk umum secara gratis di bawah Lisensi
Spesifikasi
.
yang memiliki
kepatuhan program yang hanya terbuka untuk anggota. Pada Oktober 2009,
daftar bersertifikat OSGi implementasi berisi lima entri.
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 •
Struktural
Struktur OSGi
Struktur OSGi digambarkan melalui model layar
(layer) yang berlapis-lapis, sebagai berikut:
Spesifikasi OSGi
Spesifikasi OSGi membutuhkan referensi spesifikasi
implementasi untuk masing-masing aspek. Namun, karena spesifikasi pertama
selalu ada perusahaan komersial yang telah menerapkan spesifikasi serta
implementasi open source. Saat ini, terdapat 4 open source implementasi dari
kerangka dan terlalu banyak untuk menghitung implementasi dari layanan OSGi.
Industri perangkat lunak yang terbuka telah menemukan teknologi OSGi dan
semakin banyak proyek artefak menyampaikan sebagai kumpulan.
Spesifikasi OSGi secara matang dan komprehensif
memberikan model komponen yang sangat efektif melalui API. Mengkonversi
monolitik atau plugin yang ditanam untuk sistem berbasis OSGi hampir selalu
memberikan peningkatan besar dalam keseluruhan proses pengembangan software.
OSGi spesifikasi yang dimulai pada tahun 1998 dan
ditujukan untuk pasar otomatisasi rumah, berusaha untuk memecahkan masalah dan
bagaimana membangun aplikasi dari komponen-komponen independen. Dalam dekade
terakhir ini, industri perangkat lunak secara mendasar berubah karena ledakan
di proyek sumber terbuka. Sepuluh tahun yang lalu, aplikasi sebagian besar
terdiri atas kode yang ditulis secara khusus. Hari ini, sebagian besar sebagian
besar perangkat lunak open source pengkabelan atas artefak yang sering tidak
dirancang untuk bekerja bersama-sama. Ini adalah masalah yang sesuai dengan
OSGi yang dirancang untuk memecahkannya. Banyak proyek mengadopsi spesifikasi
OSGi karena mereka melihat bahwa OSGi dapat berfokus pada masalah nyata dan
tidak terlalu khawatir tentang infrastruktur, serta menjadi lebih mudah untuk digunakan
dalam proyek lainnya.
2. Automative Multimedia Interface Collaboration
The Automotive Multimedia Interface Kolaborasi
(AMIC)
AMIC - The Automotive Multimedia Interface Kolaborasi (AMIC) didirikan
pada Oktober 1998 dengan tujuan untuk mengembangkan serangkaian spesifikasi
umum untuk multimedia interface ke sistem elektronik kendaraan bermotor untuk
mengakomodasi berbagai berbasis komputer perangkat elektronik di dalam
kendaraan.
AMI-C adalah organisasi global yang mewakili mayoritas dunia produksi
kendaraan. AMI-C adalah mengembangkan dan standarisasi yang umum multimedia dan
telematika otomotif antarmuka untuk kendaraan jaringan komunikasi. Organization
of motor vehicle manufactures created to facilitate the development and
standardization of automotive multimedia interfaces to motor vehicle
communication networks.– Specifications for physical network interfaces,
network protocols and In-vehicle software interfaces (telematics and local) :
Arsitektur
AMIC ditentukan unsur arsitektur platform
terintegrasi
Komponen
Arsitektur AMIC memiliki empat komponen
In-Vehicle
Jaringan
Jaringan
perangkat
Kendaraan
Antarmuka
Host
(platform komputasi)
Mengapa AMIC terhubung dengan OSGI?
Similar persyaratan
- Layanan remote disediakan untuk jaringan lokal
- Layanan dapat dikelola oleh operator jarak jauh
- Pelayanan harus berjalan pada berbagai platform
lokal
- Harus berjalan pada sumber daya terbatas (biaya
rendah) platform
Similar solusi berbasis Java
- Vendor independen
- Mekanisme untuk layanan menggabungkan dari
beberapa vendor
- Fungsi yang disediakan oleh platform OSGi meliputi
sebagian besar yang
dibutuhkan
oleh AMIC
Menggunakan API yang ada akan meningkatkan solusi
AMIC ini
- Leverage pengalaman dan keahlian yang masuk ke
sebelumnya
implementasi
- Mengurangi jumlah pembangunan API yang diperlukan
dengan menggunakan umum
solusi
sedapat mungkin.
Fungsional
Kolaborasi antar muka ototmotif multimedia adalah
sebuah organisasi yang dibentuk untuk menciptakan standarisasi dunia yang digunakan dalam mengatur bagaimana
sebuah perangkat elektronik dapat bekerja. Contoh Komputer dan alat komunikasi kendaraan atau computer
dan radio dalam mobil. Satiap alat elektronik itu harus dapat bekerja dengan
selaras sehingga kendaraan dapat lebih handal.
Setiap perangkat elektronik yang dipasang belum
tentu cocok dengan setiap kendaraan. Perangkat elektronik atau multimedia bisa
saja mengganggu sistem keselamatan dan system-sistem lain di dalam kendaraan.
Itulah kenapa perlu dibentuk standarisasi kolaborasi antarmuka multimedia.
Automotive Multimedia Interface Collaboration
(AMI-C) sudah memiliki anggota : Fiat, Ford, General Motors, Honda, Mitsubishi,
Nissan, PSA Peugeot-Citroen, Renault. AMI-C mengembangkan dan men-standarisasi
antarmuka multimedia dan telematika otomotif yang umum untuk jaringan
komunikasi kendaraan. Dan 40 pemasok elektronik mendaftarkan diri untuk menulis
standar. Mereka berpendapat untuk menulis standar diperlukan waktu selama 2
tahun. Tapi dua tahun adalah masa di telematika. Penyelenggara elektronik,
ponsel, komputer dan peralatan video yang akan menggunakan koneksi dapat
melewati beberapa generasi dalam waktu itu.
Standar-standar akan memungkinkan sebuah pasar
plug-and-play global untuk perangkat elektronik yang akan dipasang di kendaraan
dengan kemudahan yang sama dengan melampirkan pheriperal komputer pribadi.
Tujuan dari AMIC ini antara lain 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.
Struktural
Kolaborasi Antar muka Otomotif Multimedia adalah
Sebuah kelompok yang dibuat oleh pembuat (maker) untuk menciptakan standar umum
yang digunakan untuk mengatur bagaimana cara kerja perangkat elektronik,
seperti komputer dan hiburan unit, berkomunikasi dengan kendaraan.
Automotive Multimedia Interface Kolaborasi (AMIC) mengatakan akan
menjadi tuan rumah tiga update internasional briefing untuk menjadi pemasok
otomotif, komputer dan teknologi tinggi industri elektronik. Briefing akan
diadakan 23 Februari di Frankfurt, Jerman; Februari 29 di Tokyo; dan Maret 9 di
Detroit.
"AMIC
telah membuat suatu kemajuan yang signifikan dalam satu tahun terakhir ini
dalam menyelesaikan struktur organisasi dan mencapai kesepakatan mengenai
persyaratan yang diperlukan untuk hardware dan software baik di masa depan
mobil dan truk," Jurubicara AMIC Dave Acton berkata, "Dan sekarang
sudah saatnya bagi kita untuk bertemu dengan pemasok dan mereka yang tertarik
untuk menjadi pemasok untuk memastikan kami pindah ke tahap berikutnya
pembangunan kita bersama-sama".
Acton
menekankan bahwa AMIC terbuka untuk semua pemasok yang tertarik bisnis
elektronik. AMIC dibentuk pada bulan September l998 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.
3. Java Community Process
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
Sebuah 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).
Referensi
http://www.sultanifajar.blogspot.com/2012/11/open-services-gateway-initiative
http://www.osgi.org/wiki/uploads/Congress2002/Edward%20Nelson.pdf
http://code86.wordpress.com/2009/11/19/layanan-interface-dan-fitur-fitur-telematika/
http://translate.google.co.id/translate?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Virtual_machine&ei=dVgRS-DgIY2OMc2mzTM&sa=X&oi=translate&ct=result&resnum=1&ved=0CA4Q7gEwAA&prev=/search%3Fq%3Dvirtual%2Bmachine%26hl%3Did%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26hs%3DqER
http://translate.google.co.id/translate?hl=id&sl=en&tl=id&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAPI
Muhammad Fajar Mulia 4KA12 12109093