1.
Open Service Gateway Initiative
Pengertian dari Open
Service Gateway Initiative:
OSGI (Open Service
Gateway Initiative) adalah sebuah rencana industri dengan cara standar untuk
menghubungkan perangkat seperti perangkat rumah tangga dan sistem keamanan ke
Internet. OSGI adalah sebuah interface pemrograman standar terbuka, didirikan
pada Maret 1999. Aliansi OSGi dan anggota – anggotanya telah ditentukan oleh
sebuah layanan berbasis Java platform yang dapat dikelola dari jarak jauh. OSGI
berencana menentukan program aplikasi antarmuka (API) yang 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.
1. Arsitektur OSGi
Arsitektur OSGi adalah
sebuah set spesifikasi yang mendefinisikan sebuah komponen sistem dinamik untuk
Java. Spesifikasi ini memungkinkan sebuah model pengembangan dimana aplikasi
(secara dinamik) terdiri dari berbagai komponen yang berbeda. Spesifikasi OSGi
memungkinkan komponen-komponennya untuk menyembunyikan implementasinya dari
komponen lainnya ketika berkomunikasi melalui services dimana biasanya ketika
hal ini berlangsung implementasi antar komponen dapat terlihat jelas. Model
yang simple ini telah jauh mencapai efek dari segala aspek dari proses
pengembangan software.
Ø Bundles
Bundles adalah normal jar komponen dengan nyata tambahan header.
Ø Services
Layanan yang menghubungkan lapisan bundel dalam cara yang dinamis dengan
menawarkan menerbitkan-menemukan-model mengikat Jawa lama untuk menikmati objek
(POJO).
Ø Services
API untuk jasa manajemen (ServiceRegistration, ServiceTracker dan
ServiceReference).
Ø Life-Cycle
API untuk manajemen siklus hidup untuk (instal, start, stop, update, dan
uninstall) bundel.
Ø Modules
Lapisan yang mendefinisikan enkapsulasi dan deklarasi dependensi (bagaimana
sebuah bungkusan dapat mengimpor dan mengekspor kode).
Ø Security
Layer yang menangani aspek keamanan dengan membatasi fungsionalitas bundel
untuk pra-didefinisikan kemampuan.
Ø Execution Environment
Mendefinisikan metode dan kelas apa yang tersedia dalam platform tertentuTidak
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.1/Foundation-1.1 CDC-1.1/Foundation-1.1
• OSGi/Minimum-1.0 OSGi/Minimum-1.0
• OSGi/Minimum-1.1 OSGi/Minimum-1.1
• JRE-1.1 JRE-1.1
• From J2SE-1.2 up to J2SE-1.6 Dari J2SE-1.2 hingga J2SE-1,6
• CDC-1.0/Foundation-1.0 CDC-1.0/Foundation-1.0
2. Fungsional
Ø Mengurangi Kompleksitas
(Reduced Complexity)
Mengembangkan dengan
teknologi OSGi berarti mengembangkan bundel: komponenOSGi. Bundel adalah modul.
Mereka menyembunyikan internal dari bundel lain danberkomunikasi melalui
layanan didefinisikan dengan baik. Menyembunyikan internals berartilebih banyak
kebebasan untuk berubah nanti. Hal ini tidak hanya mengurangi jumlah bug,
itu juga membuat kumpulan sederhana untuk berkembang karena bundel ukuran
benarmenerapkan sepotong fungsionalitas melalui interface didefinisikan dengan
baik. Ada sebuahblog menarik yang menjelaskan teknologi OSGi apa yang mereka
lakukan bagi prosespembangunan
Ø Reuse
Para model komponen OSGi
membuatnya sangat mudah untuk menggunakan banyak komponen pihak ketiga dalam
suatu aplikasi. Peningkatan jumlah proyek-proyek sumber terbuka memberikan
JAR’s mereka siap dibuat untuk OSGi. Namun, perpustakaan komersial
jugamenjadi tersedia sebagai bundel siap pakai.
Ø Real World
OSGI kerangka kerja yang
dinamis. Ini dapat memperbarui bundel on the fly dan pelayanan yang datang dan
pergi. Ini dapat menghemat dalam penulisan kode dan juga menyediakan
visibilitas global, debugging tools, dan fungsionalitas lebih daripada yang
telah dilaksanakan selama satu solusi khusus.
Ø Easy Deployment
Teknologi OSGi bukan
hanya sebuah standard untuk komponen, tapi juga menentukan bagaimana komponen
diinstal dan dikelola. API telah digunakan oleh banyak berkas untuk menyediakan
sebuah agen manajemen. Agen manajemen ini bisa sesederhana sebagai perintah
shell, TR-69 sebuah protokol manajemen pengemudi, OMA DM protokol sopir,
komputasi awan antarmuka untuk Amazon EC2, atau IBM Tivoli sistem manajemen.
Manajemen standar API membuatnya sangat mudah untuk mengintegrasikan teknologi
OSGi dalam sistem yang ada dan masa depan.
Ø Dynamic Updates
Model komponen OSGi
adalah model dinamis. Kumpulan dapat diinstal, mulai, berhenti,diperbarui, dan
dihapus tanpa menurunkan keseluruhan sistem. Banyak pengembang Java tidak
percaya ini dapat dilakukan pada awalnya oleh karena itu tidak digunakan dalam produksi.Namun,
setelah menggunakan ini dalam pembangunan selama beberapa waktu, sebagian besar
mulai menyadari bahwa itu benar-benar bekerja dan secara signifikan mengurangi
waktu penyebaran.
Ø Simple
The OSGi API sangat
sederhana. API inti hanya terdiri dari satu paket dan kurang dari 30 kelas /
interface. API inti ini cukup untuk menulis kumpulan, menginstalnya, start,
stop, update,dan menghapus mereka dan mencakup semua pendengar dan keamanan
kelas.
Ø Kecil (Small)
The OSGi Release 4
Framework dapat diimplementasikan kedalam JAR 300KB. Ini adalah overhead kecil
untuk jumlah fungsi yang ditambahkan ke salah satu aplikasi dengan memasukkan
OSGi. Oleh karena itu OSGi berjalan pada berbagai macam perangkat: dari sangat
kecil, kecil, dan untuk mainframe. Hanya meminta Java VM minimal untuk
menjalankan dan menambahkan sangat sedikit di atasnya.
Ø Cepat (Fast)
Salah satu tanggung
jawab utama dari Framework OSGi memuat kelas-kelas dari bundel.Di Java
tradisional, JARs benar-benar terlihat dan ditempatkan pada daftar linear.
Pencarian sebuah kelas memerlukan pencarian melalui daftar ini. Sebaliknya,
pra-kabel OSGi bundel dan tahu persis untuk setiap bundel bundel yang
menyediakan kelas. Kurangnya pencarian yang signifikan faktor mempercepat saat
startup.
3. Struktural
Ø Layer
Bundles : komponen OSGI yang dibuat
pengembang
Service : Service layer
menghubungkan bundle dengan dinamis.
Life-cycle : API yang diinstal,
start, stop, update, dan uninstall bundle
Module : bagian untuk export dan
import kode
Security : bagian yang mengatur
keamanan bundle
Execution Environment : menetapkan
metode dan class yang dipakai.
Konsep ini akan dijelaskan di bawah.
Ø Module
Konsep
modul adalah pekerjaan yang lebih mudah. Module adalah inti dari spesifikasi
dan pemakaian dalam konsep bundle. Dalam isrilah Java, bundle ada dalam file
lama JAR, Osgi menyembunyikan segalanya kecuali setelah di-export.
Ø Service
Alasan
kenapa kita butuh model service dikarenakan Java sulit ditulis dengan class
sharing. Solusi standart java menggunakan Factories menggunakan dynamic class
dan static.
Ø Deployment
Bundle
dijalankan di OSGI Framework. Ini bukanlah kontainer seperti server aplikasi
java. Ini adalah collaborative environment yang berjalan di virtual machine
yang sama dan share kode.
Ø Implementation
Spesifikasi
OSGI membutuhkan referensi implementasi setiap spesifikasi. Bagaimanapun, sejak
spesifikasi pertama selalu untuk perusahaan telah diimplementasikan sebagai
open source. Sekarang telah ada 4 open source framework dan banyak implementasi
OSGI.
Ø Konklusi
Spesifikasi
OSGI menyediakan model komponen yang dewasa dan komprehensif dengan API yang
sangat efektif. Merubah monolitik atau plugin yang berkembang didasarkan sistem
OSGI hampir selalu menyediakan peningkatan yang besar dan lebih banyak projek
yang dikemas.
2. Kolaborasi
Antar Muka Automaotif Mulimedia AMI-C (Automotive Multimedia Interface
Collaboration)
Arsitektur
AMI-C - The Automotive Multimedia
Interface Kolaborasi (AMI-C) 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) :
- Release 2 specifications due Dec. 2002
- Characteristic
- Vehicle control: Low-speed wired communication
- Information system: High-speed wired communication
The Otomotif Multimedia Interface
Kolaborasi (AMI-C) mengumumkan di seluruh dunia cipta penugasan dari 1394
spesifikasi teknis otomotif ke Trade Association 1394 AMI-C berikut dokumen
sekarang milik 1394TA:
- AMI-C 3023 Power Management Specification
- AMI-C 3013 Power Management Architecture
- AMI-C 2002 1.0.2 Common Message Set Power Management
- AMI-C 3034 Power Management Test Documents
- AMI-C 4001 Revision Physical Speci .cation
Fungsional Dan Struktur
Fungsional dari AMIC (Automotive
Multimedia Interface Collaboration)
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.
3. Proses Komunitas Java
PENGERTIAN PROSES
KOMUNITAS JAVA (Java Community Process JCP)
Proses Komunitas
Java (Java Community Process/JCP) didirikan pada tahun 1998, adalah
mekanisme formal yang memungkinkan pihak yang berkepentingan untuk
mengembangkan spesifikasi teknis standar untuk teknologi Java. Siapapun bisa
menjadi Anggota JCP dengan mengisi formulir yang tersedia di situs JCP. Keanggotaan
JCP untuk organisasi dan entitas komersial membutuhkan biaya tahunan tetapi
bebas untuk individu.
JCP melibatkan penggunaan Permintaan Spesifikasi Java (Java Spesification
Request / JSRs), yaitu dokumen formal yang menggambarkan spesifikasi yang
diusulkan dan teknologi untuk menambah platform Java. Ulasan publik Formal JSRs
akan muncul sebelum JSR menjadi final dan Komite Eksekutif JCP menilainya di
atasnya. Sebuah JSR akhir menyediakan implementasi referensi yang merupakan
implementasi bebas dari teknologi dalam bentuk kode sumber dan Kompatibilitas
Kit Teknologi untuk memverifikasi API spesifikasi. Sebuah JSR menggambarkan JCP
itu sendiri. Seperti tahun 2009, JSR 215 menggambarkan versi sekarang (2.7)
dari JCP.
Sebagai sebuah platform,
Java memiliki dua buah bagian penting, yaitu
1. Java Virtual Machine
2. Java Application Programmig (Java API).
Pada saat ini teknologi java semakin berkembang, Sun Microsystem memperkenalkan
Java versi 1.2 atau lebih dikenal dengan nama Java 2 yang terdiri atas JDK dan
JRE versi 1.2. Pada Java 2 ini, java dibagi menjadi 3 kategori:
·
Java 2 Standart
Edition (J2SE), Kategori ini
digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi Java pada level
PC (Personal Computer)
·
Java 2
Enterprise Edition (J2EE),
Kategori ini digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi
Java pada lingkungan entriprise dengan menambahkan
fungsionalitas-fungsionalitas java semacam EJB (Enterprise Java Bean), Java
CORBA, Servlet dan JSP serta Java XML (Extensible Markup Language)
·
Java 2 Micro
Edition (J2ME), Kategori ini
digunakan untuk menjalankan dan mengembangkan aplikasi-aplikasi java pada
handled devices atau perangkat-perangkat semacam handphone, Palm,PDA, dan
Pocket PC. J2ME dirancang untuk dapat menjalankan program Java pada
perangkat-perangkat semacam handphone dan PDA, yang memiliki karakteristik yang
berbeda dengan sebuah komputer biasa, misalnya kecilnya jumlah memori pada
handphone dan PDA. J2ME terdiri atas komponen-komponen sebagai berikut Java
Virtual Machine (JVM) dan Java API (Application Programming Interface) serta
Tools lain untuk pengembangan aplikasi Java semacam emulator Java Phone dan
emulator Motorolla. Dalam J2ME dibagi menjadi dua bagian yang dikenal dengan
istilahconfiguration dan profile.
VIRTUAL MACHINE
Virtual machine (VM) adalah suatu environment, biasanya sebuah program atau
system operasi, yang tidak ada secara fisik tetapi dijalankan dalam environment
lain. Dalam konteks ini, VM disebut “guest” sementara environment yang
menjalankannya disebut “host”. Ide dasar dari virtual machine adalah
mengabtraksi perangkat keras dari satu komputer (CPU, memori, disk, dst) ke
beberapa environment eksekusi, sehingga menciptakan illusi bahwa masing-masing
environment menjalankan komputernya [terpisah] sendiri.VM muncul karena adanya
keinginan untuk menjalankan banyak sistem operasi pada satu komputer.
Teknologi virtual machine memiliki banyak kegunaan seperti memungkinkan
konsolidasi perangkat keras, memudahkan recovery sistem, dan menjalankan
perangkat lunak terdahulu. Salah satu penerapan penting dari teknologi VM
adalah integrasi lintas platform.
Beberapa penerapan lainnya yang penting adalah:
• Konsolidasi server.
Jika beberapa server menjalankan aplikasi yang hanya memakan sedikit sumber
daya, VM dapat digunakan untuk menggabungkan aplikasi-aplikasi tersebut
sehingga berjalan pada satu server saja, walaupun aplikasi tersebut memerlukan
sistem operasi yang berbeda-beda.
• Otomasi dan konsolidasi lingkungan pengembangan dan testing.
Setiap VM dapat berperan sebagai lingkungan yang berbeda, ini memudahkan
pengembang sehingga tidak perlu menyediakan lingkungan tersebut secara fisik.
• Menjalankan perangkat lunak terdahulu.
Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang
lebih baru.
• Memudahkan recovery sistem.
Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan
portabilitas dan fleksibilitas antar platform.
• Demonstrasi perangkat lunak.
Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat
disediakan secara cepat.
Teknologi VM memiliki beberapa keunggulan, antara lain:
• Hal keamanan.
VM memiliki perlindungan yang lengkap pada berbagai sistem sumber daya, yaitu
dengan meniadakan pembagian sumber daya secara langsung, sehingga tidak ada
masalah proteksi dalam VM. Sistem VM adalah kendaraan yang sempurna untuk
penelitian dan pengembangan sistem operasi. Dengan VM, jika terdapat suatu
perubahan pada satu bagian dari mesin, maka dijamin tidak akan mengubah komponen
lainnya.
• Memungkinkan untuk mendefinisikan suatu jaringan dari Virtual Machine (VM).
Tiap-tiap bagian mengirim informasi melalui jaringan komunikasi virtual. Sekali
lagi, jaringan dimodelkan setelah komunikasi fisik jaringan diimplementasikan
pada perangkat lunak.
Kekurangan Virtual Machine (VM)
Beberapa kesulitan utama dari konsep VM, diantaranya adalah:
• Sistem penyimpanan.
Sebagai contoh kesulitan dalam sistem penyimpanan adalah sebagai berikut:
Andaikan kita mempunyai suatu mesin yang memiliki 3 disk drive namun ingin
mendukung 7 VM. Keadaan ini jelas tidak memungkinkan bagi kita untuk dapat
mengalokasikan setiap disk drive untuk tiap VM, karena perangkat lunak untuk
mesin virtual sendiri akan membutuhkan ruang disk secara substansial untuk menyediakan
memori virtual dan spooling. Solusinya adalah dengan menyediakan disk virtual
atau yang dikenal pula dengan minidisk, dimana ukuran daya penyimpanannya
identik dengan ukuran sebenarnya. Dengan demikian, pendekatan VM juga
menyediakan sebuah antarmuka yang identik dengan perangkat keras yang
mendasari.
• Pengimplementasian sulit.
Meski konsep VM cukup baik, namun VM sulit diimplementasikan.
JAVA APPLICATION PROGRAMMING INTERFACE (JAVA API)
Java API merupakan komponen-komponen dan kelas JAVA yang sudah jadi, yang
memiliki berbagai kemampuan. Kemampuan untuk menangani objek, string, angka,
dsb.
Java API terdiri dari tiga bagian utama:
- Java
Standard Edition (SE), sebuah standar API untuk merancang aplikasi desktop dan applets dengan bahasa dasar yang mendukung grafis, keamanan,
konektivitas basis data dan jaringan.
- Java
Enterprose Edition (EE), sebuah inisiatif API untuk merancang aplikasi
serverdengan mendukung untuk basis data.
- Java
Macro Edition (ME), sebuah API untuk merancang aplikasi yang jalan pada alat kecil
seperti telepon genggam, komputer genggam dan pager.
.
Beberapa fitur yang ditawarkan Java API yang digunakan oleh user yang
berkecimpung di dunia java :
1. Applet
Java Applet merupakan program Java yang berjalan di atas browser. Penggunaan
applet ini akan membuat halaman HTML lebih dinamis dan menarik.
2. Java Networking
3. Java Database Connectivity (JDBC)
JDBC API terdiri atas class dan interface yang ditulis dalam bahasa Java untuk
sebagai alat bantu bagi pembuat program (developer ) dan menyediakan sekumpulan
API untuk mengatur keamanan mengakses database seperti Oracle, MySQL,
PostgreSQL, Microsoft SQL Server. Jadi keunggulan API JDBC dapat mengakses
sumber data dan berjalan pada semua Platform yang mempunyai Java Viortual
Machine (JVM).
4. Java Server Pages (JSP)
JSP adalah suatu teknologi web berbasis bahasa pemrograman Java dan berjalan
pada platform Java. JSP merupakan engembangan dari Servlet serta merupakan
bagian dari teknologi Java 2 Platform, Enterprise Edition (J2EE).
5. Java Card
Platform yang ada pada JAVA dikembangkan oleh yang namanya Java Community
Process (JCP). JCP didirikan pada tahun 1998, merupakan suatu proses formal
yang memungkinkan pihak-pihak yang tertarik untuk terlibat dalam mengembangkan
versi dan fitur dari platform JAVA tersebut. Di dalam JCP terdapat yang namanya
Java Specification Request’s atau JSRs. JSRs adalah kumpulan dokumen formal
yang menggambarkan spesifikasi dan teknologi yang diusulkan oleh orang-orang
yang terlibat dalam JCP untuk melakukan penambahan fitur-fitur yang terdapat
pada platform JAVA tersebut.
Publik formal review dari JSRs akan muncul sebelum JSRs final di putuskan oleh
komite eksekutif JCP. JSRs terakhir yang menyediakan implementasi referensi
yang merupakan implementasi teknologi dalam bentuk kode sumber dan teknologi
kompatibilitas kit untuk melakukan verifikasi terhadap Java API. Jadi dapat
dikatakan bahwa sebuah JSRs menggambarkan JCP itu sendiri.
Nama Kelompok
Adiel Tri Raharjo
NPM: 10113198
Ardiansyah
NPM : 11113245
Ario Christianto
NPM: 11113354