loading...
Sunday, January 18, 2009

January 18, 2009
Windows API

Windows API (Aplication Programming Interface)
Merupakan sekumpulan fungsi-fungsi ekternal yang terdapat dalam file-file perpustakaan Windows (Library Windows) atau library lainnya yang dapat digunakan oleh programmer.

Fungsi ini dapat menangani semua yang berhubungan dengan Windows, kotak dialog (buka file, simpan file, memilih font, memilih warna, dan lain-lain), Windows shell, setting sistem operasi, penanganan file, mengakses sistem registry, memainkan musik, dan sebagainya. Fungsi ini menyediakan banyak fitur-fitur stnadar untuk semua program yang berbasis Windows.

DLL (Dynamic Link Library)
Merupakan library Windows berupa kode yang sudah dikompilasi dan dapat digunakan oleh program lain. Bila meletakkan fungsi dan subrutin ke dalam DLL akan membuat fungsi dapat diakses oleh semua program pada saat bersamaan. DLL biasanya ditulis dengan bahasa C/C++, Delphi atau bahasa lainnya yang mendukung sistem operasi Windows.
Dengan pemanggilan fungsi yang terdapat dalam DLL, akses ribuan fungsi yang berhubungan dangan sistem Windows dapat dilakukan.

COM (Componen Object Model)
Merupakan spesifikasi untuk menulis software yang dapat digunakan kembali (reusable). COM merupakan model yang didasarkan pada binary reuse artinya bahwa komponen ini tidak bergantung pada bahasa pemrograman untuk membuatnya. COM memakai sistem object-oriented
DCOM (Distributed COM)
Merupakan suatu teknologi baru karena teknologi ini banyak dipakai dalam sistem distribusi pada sistem jaringan TCP/IP, Protokol yang digunakan oleh DCOM dapat meliputi:
- Protokol TCP/IP
- Protokol UDP/IP
- Protokol HTTP
- Protokol RPC
Seiring dengan kemajuan di bidang distributed system, protokol untuk distribusi komponen dapat melalui protokol FTP, SMTP,POP dan sebagainya.
Secara umum DCOM menerapkan sistem Client-Server sehinggan terdapat istilah DCOM Server dan DCOM Client

COM+
Merupakan hasil pengembangan dari komponen COM dan MTS. COM+ menyediakan servis berbasis enterprise yang didasarkan pada Component Object Model (COM) untuk membangun sistem distribusi.

Keandalan COM+ telah teruji sejak lama sebagai alternatif dalam membangun sistem distibusi dan transaksi
Active X

Activ X Control
Nama resminya adalah OLE Control yang merupakan bagian dari sistem COM karena mengimplementasikan interface Iunknown. Komponen ActiveX Control banyak digunakan pada aplikasi web yang mengenkapsulasi business logic dalam satu komponen.

ActiveX Document
Mirip dengan dokumen pada Microsoft Office, tetapi bukan berarti bahwa ActiveX Dokument merupakan bagian dari Microsoft Office. Teknologi ActiveX Document bukanlah suatu teknologi baru. Jika kita memakai Microsoft Word maka Word Document tidaklah sama dengan Word Application. Word Document berisi dokumen yang sesungguhnya (*.doc), sedangkan Word Application berisi aplikasi yang membuat Word Document (bertipe file *.exe)

Antarmuka Pemrograman Aplikasi Windows

Antarmuka Pemrograman Aplikasi Windows (berasal dari Bahasa Inggris: Windows Application Programming Interface), yang sering disebut sebagai WinAPI atau Windows API adalah sekumpulan antarmuka pemrograman aplikasi yang dibuat oleh Microsoft dalam intisistem operasi Microsoft Windows buatannya. Semua program Windows, kecuali program konsol, harus berinteraksi dengan Windows API tanpa melihat dengan bahasa apa ia dibuat. Akses terhadap elemen sistem operasi yang lebih rendah, seperti halnya yang dibutuhkan olehdevice driver, tidak disediakan oleh Windows API, tapi disediakan oleh Windows Driver Foundation atau Native API dalam versi-versi baru Windows.
Agar para pengembang perangkat lunak dapat menggunakan versi-versi Windows baru, Microsoft sering merilis Software Development Kit(SDK), yang terdiri atas dokumentasi dan alat bantu untuk membangun aplikasi-aplikasi Windows dengan teknologi terbaru Microsoft Windows.
Versi-versi Windows API
Hampir pada setiap peluncuran versi baru Windows, Microsoft memperkenalkan API baru terhadap Windows API. Meskipun demikian, nama dari panggilan API tersebut tetap dipertahankan dan konsisten antara satu versi dengan versi yang lainnya, dan perubahan nama pun mungkin dilakukan jika memang terjadi di sana perubahan besar-besaran pada platform Windows itu sendiri. Microsoft pun kemudian akan mengubah nama keluarga Win32 API yang digunakan saat ini menjadi Windows API, dan membuatnya dapat digunakan oleh semua versi API sistem operasi Windows.

Win16 API
Windows 16 API atau Win16 API merupakan API yang digunakan pertama kali pada versi Windows 16-bit. Pada awalnya, Win16 API disebut dengan Windows API, tapi kemudian diubah menjadi Win16 dalam usaha Microsoft untuk membedakannya dengan versi Windows API yang lebih baru yang berjalan pada Windows 32-bit, Win32 API. Fungsi-fungsi Win16 API umumnya terdapat di dalam berkas-berkas inti sistem operasi: kernel.exe (atau krnl286.exe pada Windows for 286 atau krnl386.exe pada Windows yang berjalan pada Enhanced 386), user.exe, dangdi.exe. Meskipun memiliki ekstensi EXE, sebenarnya mereka bukanlah berkas yang dapat dieksekusi (executable), melainkan mereka adalah DLL (Dynamic Linking Library).

Win32 API
Win32 API merupakan antarmuka pemrograman yang terdapat di dalam sistem operasi Windows 32-bit modern. Seperti halnya Win16 API, Win32 API juga sama mengimplementasikan fungsi-fungsi di dalam DLL sistem operasi. DLL inti yang dimiliki oleh Win32 API antara lainkernel32.dll, user32.dll, dan gdi32.dll. Win32 pertama kali muncul pada tahun 1993, saat Windows NT diluncurkan. Windows 95 juga menggunakan Win32 API, dan pada awalnya dikenal dengan sebutan Win32c, di mana huruf "c" di sana merujuk kepada "compatibility", tapi istilah ini akhirnya ditinggalkan oleh Microsoft demi konsistensi nama "Win32".
Dalam Windows NT 4.0 dan para penerusnya (termasuk di antaranya versi-versi terbaru Windows), panggilan-panggilan Win32 dieksekusi oleh dua modul, yakni csrss.exe (Client/Server Runtime SubSystem) di dalam modus pengguna dan Win32K.sys di dalam modus kernel.

Win32s API
Win32s API merupakan sebuah ekstensi untuk keluarga Windows 3.1x yang mengimplementasikan sekumpulan kecil dari Win32 API untuk sistem-sistem tersebut, yang merupakan sistem operasi 16-bit. Huruf "s" di sana merupakan singkatan dari "subset."

Win32 for 64-bit Windows
Win32 for 64-bit Windows, yang sebelumnya dikenal dengan sebutan Win64, merupakan sebuah versi Windows API yang ditargetkan untuk digunakan oleh Windows versi 64-bit, yakni Windows XP Professional x64 Edition dan Windows Server 2003 x64 Edition (untuk prosesor-prosesor x86-64) dan Windows XP 64-bit Edition dan Windows Server 2003 for Itanium-series (untuk prosesor-prosesor IA-64). Dengan kemunculan Win64, Windows NT pun akhirnya masuk ke dalam pasar komputasi 64-bit, dan kompatibilitas aplikasi 32-bit pun masih terjaga. Akan tetapi, memang semua pointer memori dialamatkan dengan menggunakan alamat 64-bit, sehingga kode sumber program harus dicek ulang untuk melihat apakah ada masalah kompatibilitas dengan pointer aritmetika 64-bit dan jika perlu ditulis ulang. Tidak ada penambahan fungsi-fungsi baru yang spesifik ditambahkan ke dalam Windows versi 64-bit.
Implementasi dari pihak ketiga

Meskipun implementasi Windows API dilindungi hak cipta, di Amerika Serikat, setiap vendor pihak ketiga dapat melakukan emulasi terhadap Windows dengan menyediakan API yang identik tanpa harus melanggar kode etik hak cipta.
Contoh-contoh emulasi terhadap Windows API antara lain:
 Proyek Wine, merupakan sebuah percobaan yang sedang terus dilakukan untuk menyediakan lapisan kompatibilitas Win32 API untuk platform-platform mirip UNIX, seperti BSD atau Linux.
 ReactOS bahkan lebih jauh lagi dan menyediakan sebuah emulasi terhadap sistem operasi Windows secara keseluruhan, mengingat tim kerja ReactOS serta proyek Wine pun memang bekerja sama secara erat untuk mempromosikan penggunaan kode kembali (code reuse) dan juga kompatibilitas.
 HX DOS-Extender, juga merupakan proyek lainnya yang melakukan emulasi terhadap Windows API, untuk mengizinkan program Windows sederhana dari command-line DOS.
Fungsionalitas yang ditawarkan
Fungsionalitas yang ditawarkan oleh Windows API dapat digolongkan ke dalam delapan kategori:
 Base Services:
Menyediakan akses terhadap beberapa sumber daya fundamental yang tersedia di dalam sebuah sistem yang menjalankan sistem operasi Microsoft Windows. Fungsi-fungsi ini terdapat dalam kernel.exe, krnl286.exe, atau krnl386.exe (dalam Windows 16-bit) dan kernel32.dllserta advapi32.dll dalam Windows 32-bit. Subkomponen yang terdapat pada golongan ini antara lain:
 File system (sistem berkas): FAT12, FAT16, FAT32, CDFS, UDFS dan NTFS
 Devices
 Process and threads
 Error handling.
 Advanced Services
Menyediakan akses terhadap fungsionalitas yang berada di luar kernel sistem operasi Windows. Fungsionalitas yang termasuk di dalam kategori ini adalah akses registry Windows, shutdown (turn-off, restart, hibernate, atau standby) Windows, manajemen Windows service, hingga manajemen akun pengguna. Fungsi-fungsi ini terdapat di dalam advapi32.dll, dan hanya terdapat pada versi Windows 32-bit.
 Graphics Device Interface (GDI)
Menyediakan fungsionalitas untuk mengeluarkan tampilan grafik ke monitor, printer dan beberapa perangkat keluaran lainnya. Dalam Windows 16-bit, GDI ditangani oleh GDI.EXE, atau GDI32.DLL dalam Windows 32-bit.
 User Interface
Menyediakan fungsionalitas untuk membuat dan mengatur layar jendela dan sebagian besar kontrol dasar, seperti tombol (button), baris geser (scroll bar), hingga menerima input dari pengguna melalui keyboard atau mouse. Dalam Windows 16-bit, fungsionalitas user interfaceditangani oleh USER.EXE, atau User32.DLL dalam Windows 32-bit. Saat Windows XP dirilis, kontrol-kontrol dasar Windows digabungkan ke dalam ComCtl32.DLL, bersama-sama dengan Common Control Library.
 Common Dialog Box Library
Menyediakan fungsionalitas untuk membuat kotak dialog untuk membuka dan menutup berkas, memilih warna, huruf (font) dan lain sebagainya. Antarmuka ini terdapat pada sebuah berkas dengan nama Commdlg.dll pada Windows 16-bit, atau Comdlg32.dll pada Windows 32-bit. Meskipun demikian, fungsionalitas ini dimasukkan dalam kategori User Interface.
 Common Control Library
Mengizinkan aplikasi agar dapat mengakses beberapa kontrol tingkat lanjut yang disediakan oleh sistem operasi, seperti halnya baris status (status bar), baris kemajuan (progress bar), baris peralatan (toolbar), dan juga tabulasi (tab). Pustaka untuk ini disediakan oleh sebuah DLL yang disebut dengan CommCtrl.DLL dalam sistem operasi Windows 16-bit, atau ComCtl32.DLL dalam Windows 32-bit. Ini juga dikelompokkan ke dalam kategori User Interface di dalam API.
 Windows Shell
Komponen Windows API yang mengizinkan aplikasi untuk mengakses fungsionalitas yang disediakan oleh shell sistem operasi, dan juga mengubah atau bahkan meningkatkannya. Komponen ini terdapat di dalam DLL Shell.DLL dalam Windows 16-bit, sementara dalam Windows 32-bit terdapat di dalam Shell32.DLL. Windows 95 juga menawarkan sebuah DLL yang disebut sebagai ShlWApi.DLL. Ini juga dikelompokkan ke dalam kategori User Interface di dalam API.
 Network Services
Mengizinkan aplikasi agar dapat mengakses kemampuan jaringan di dalam sistem operasi. Komponen ini memiliki beberapa subkomponen, yakni:
 Network Basic Input Output System (NetBIOS)
 Windows Socket (Winsock)
 Network Dynamic Data Exchange (NetDDE)
 Remote Procedure Call (RPC)
 dan masih banyak yang lainnya.
Web API
Penjelajah Web, Microsoft Internet Explorer juga menawarkan banyak API yang juga digunakan oleh banyak aplikasi, dan kini dianggap sebagai bagian dari Windows API. Program Internet Explorer memang telah dimasukkan dan diintegrasikan ke dalam Windows semenjak versi Windows 98, dan menyediakan beberapa layanan terkait kepada aplikasi. Khususnya, Web API ini digunakan untuk menyediakan:
 Sebuah kontrol penjelajah Web yang dapat dibenamkan ke dalam beberapa aplikasi, yang dikandung dalam shdocvw.dll dan mshtml.dll.
 Layanan pemantau Universal Resource Locator (URL), yang dikandung di dalam URLMon.dll, yang membuat membuat objek-objek COM dapat digunakan oleh aplikasi untuk melakukan resolusi terhadap URL. Aplikasi juga dapat menyediakan handler URL mereka masing-masing untuk kepentingan lainnya.
 Sebuah pustaka untuk membantu penanganan input multi bahasa dan juga dukungan terhadap teks internasional, selain Bahasa Latin(mlang.dll).
 DirectX Transform, sekumpulan komponen filter gambar.
 Dukungan XML (yang dikandung oleh komponen MSXML).
 Akses terhadap Windows Address Book.
Multimedia
Selain sistem dan Web, Microsoft juga membuat API yang digunakan untuk memfasilitasi fitur multimedia, yang disebut dengan DirectX. DirectX pertama kali diintegrasikan di dalam Windows semenjak Windows 95 OSR2. DirectX menyediakan beberapa layanan untuk permainan dan multimedia, termasuk di antaranya adalah:
 Direct3D, sebagai alternatif terhadap OpenGL untuk mengakses perangkat keras akselerasi grafik 3 dimensi.
 DirectDraw, untuk mengakses perangkat keras akselerasi grafik 2 dimensi. Saat DirectX 9 dirilis, komponen ini mulai ditinggalkan, karena keberadaan Direct3D, yang menyediakan jauh lebih banyak fungsionalitas grafik dan juga performa yang lebih tinggi (selain tentunyarendering grafik dua dimensi juga merupakan bagian dari rendering grafik tiga dimensi).
 DirectSound, untuk mengakses kartu suara yang memiliki akselerasi perangkat keras.
 DirectInput, untuk melakukan komunikasi dengan perangkat input, seperti halnya gamepad dan joystick.
 DirectPlay, sebagai infrastruktur permainan multiplayer. Saat DirectX 9 dirilis, komponen ini juga ditinggalkan dan Microsoft pun sudah tidak lagi merekomendasikannya untuk digunakan saat pengembangan game.
 DirectShow, yang membangun dan menjalankan multimedia generik. Kira-kira sebanding dan setara dengan GStreamer framework dan sering digunakan untuk melakukan rendering video di dalam game dan juga membuat beberapa multimedia player (Windows Media Playerdibangun berdasarkan teknologi DirectShow). DirectShow juga tidak disarankan untuk mengembangkan game.
 DirectMusic, untuk mengakses perangkat Musical Instrumentation Device Interface (MIDI).
Interaksi antar Program
Windows API sebagian besar menumpukan dirinya untuk memfasilitasi interaksi antara sistem operasi dengan aplikasi. Untuk memfasilitas komunikasi sesama aplikasi-aplikasi Windows, Microsoft telah mengembangkan sekumpulan teknologi di dalam Windows API yang utama. Hal ini dimulai dari Dynamic Data Exchange (DDE), yang kemudian digantikan Object Linking and Embedding (OLE), dan kemudian kembali digantikan oleh Component Object Model (COM).

AWT
AWT (Abstract Windowing Toolkit) merupakan package yang diperkenalkan untuk mengembangkan aplikasi berbasis GUI. Dalam AWT, tercakup :
Class-class yang digunakan untuk meletakkan class-class lain, atau disebut container. Di antaranya adalah JFrame, JPanel, JDialog. Class-class yang berkaitan dengan komponen-komponen untuk GUI seperti Button, TextField, Label, RadioButton. Class, interface dan adapter yang digunakan untuk penanganan event, seperti EventListener, dan ActionEvent.

Abstract Window Toolkit
Sejarah
Ketika Sun Microsystems Java pertama dirilis pada tahun 1995, AWT menyediakan widget tipis abstak tingkat atas yang asli pengguna.Misalnya, menciptakan sebuah AWT kotak akan menyebabkan AWT langsung untuk memanggil subroutine yang asli yang membuat kotak.Namun, cek kotak pada Microsoft Windows tidak persis sama dengan sebuah kotak pada Mac OS atau pada berbagai jenis UNIX. Beberapa pengembang aplikasi lebih memilih model ini karena menyediakan tingkat tinggi kesetiaan kepada yang asli windowing toolkit halus dan integrasi dengan aplikasi asli. Dengan kata lain, yang ditulis menggunakan program GUI AWT tampak seperti asli Microsoft Windows ketika aplikasi dijalankan di Windows, tetapi program yang sama seperti yang asli Apple Macintosh ketika menjalankan aplikasi pada Mac, dll Namun, beberapa pengembang aplikasi benci model ini karena mereka lebih memilih mereka untuk melihat aplikasi yang sama pada seluruh platform.
Dalam J2SE 1.2, dengan AWT dari widget superseded oleh sebagian besar adalah mereka yang swing toolkit. Selain menyediakan kaya set UI widgets, swing mengacu widget sendiri (dengan menggunakan Java 2D untuk memanggil menjadi rendah tingkat lokal subroutines dalam subsistem grafis), dan bukan bergantung pada sistem operasi tingkat tinggi pengguna modul. Swing menyediakan pilihan untuk menggunakan sebuah sistem "tampilan dan nuansa" yang menggunakan platform asli dari tampilan dan nuansa, atau cross-platform tampilan dan nuansa (the "Tampilan dan Nuansa Jawa") yang tampak sama pada semua platform. Namun, bergantung pada AWT swing untuk antarmuka dengan sistem windowing asli.

Arsitektur
AWT yang menyediakan dua tingkatan API:
 J umum antarmuka antara Jawa dan sistem yang asli, digunakan untuk windowing, acara, tata letak manajer. API ini merupakan inti JavaGUI program dan juga digunakan oleh ayun dan Java 2D. Berisi:
 Antarmuka antara sistem windowing asli dan aplikasi Java;
 Inti dari GUI event subsistem;
 Beberapa layout manajer;
 Antarmuka untuk memasukkan perangkat seperti mouse dan keyboard, dan
 J java.awt.datatransfer paket untuk penggunaan dengan Clipboard dan Drag dan Drop.
 J dasar set GUI widgets seperti tombol, kotak teks, dan menu. Ia juga menyediakan AWT Penutur Interface, yang memungkinkan renderingperpustakaan dikompilasi ke kode asli untuk mengambil langsung ke sebuah AWT Canvas objek menggambar permukaan.
AWT juga menyediakan beberapa macam utilitas berguna, yang dapat juga digunakan oleh swing, seperti:
 Akses ke sistem tray untuk mendukung sistem dan
 Kemampuan untuk meluncurkan beberapa aplikasi desktop seperti browser web dan email klien dari aplikasi Java.
Baik AWT maupun swing adalah inherently thread aman. Oleh karena itu, kode yang update GUI atau proses kegiatan yang harus dijalankan pada Even dispatching thread. Kegagalan untuk melakukan hal ini dapat mengakibatkan mogok ras atau kondisi. Untuk masalah ini, sebuah utilitas bernama kelas SwingWorker memungkinkan aplikasi-waktu untuk melakukan tugas-tugas berikut merupakan interaksi pengguna acara di event dispatching thread.
Mixing AWT dan komponen swing
Sebelum Java 6 Update 12, pencampuran swing dan AWT komponen dasar widget sering mengakibatkan efek samping tidak diinginkan, dengan AWT widget terjadi di atas perubahan widget tanpa memandang ditetapkan prioritas. Masalah ini disebabkan karena fakta bahwa rendering arsitektur dari dua widget toolkit sangat berbeda, walaupun berat atas pinjaman swing kontainer dari AWT [1].
Sejak Java 6 Update 12, sekarang ini mungkin untuk campuran swing dan AWT widget tanpa masalah prioritas [2] [3]
Pelaksanaan
AWT adalah sebagai jembatan bagi pengguna yang asli, pelaksanaannya baru pada sistem operasi mungkin melibatkan banyak pekerjaan, terutama untuk set AWT GUI widget, yang memerlukan pengembangan ab initio asli dari rekan-rekan untuk tiap AWT widget .
Sejak pembukaan Jawa, sebuah proyek bernama Caciocavallo telah dibuat. Tujuannya adalah untuk menyediakan Java API berdasarkanOpenJDK untuk memudahkan pelaksanaan AWT pada sistem baru. [4]. Proyek ini telah berhasil experimented pelaksanaan AWT widget menggunakan Java2D [5]

0 comments:

Post a Comment