Component Object Model (COM) Oleh : Edi Sugiarto, S.Kom, M.Kom
Component Object Model (COM) • Merupakan binary-interface standar untuk komponen perangkat lunak yang diperkenalkan microsoft pada 1993 • Digunakan untuk memungkinkan interproses komunikasi dan penciptaan objek yang dinamis dalam berbagai bahasa pemrograman • COM sering digunakan sebagai istilah yang meliputi OLE, OLE Automation, ActiveX, dan DCOM.
History • 1987 : diperkenalkan Dynamic Data Exchange (DDE) • 1988 : Antony William mendistribusikan dua makalah internal pada microsoft tentang gagasan komponen software. – Object Architecture: Dealing With the Unknown – or – Type Safety in a Dynamically Extensible Class Library pada 1988 – On Inheritance: What It Means and How To Use It pada 1990
• 1991 : diperkenalan Object Linking and Embedding • 1991 : muncul Visual Basic Extensions (VBX) • 1992 : OLE versi 2 • 1994 : diperkenalkan OLE Custom Controls (OCXs) • 1996 : ActiveX, DCOM.
Component Object Model foundation
Binary Standart • COM menyediakan cara yang standar untuk pemanggilan fungsi pada platform yang berbeda • COM menyediakan Virtual Function Table (Vtable) untuk mengimplementasikan Binary Standart. • Dengan demikian setiap bahasa yg dapat melakukan pemanggilan fungsi melalui pointer dapat melakukan pemanggilan fungsi dengan binary standart yang sama
COM Component • Component pada COM biasanya memiliki data yang saling terkait. • Component pada COM tidak berinteraksi langsung dengan component COM yang lain namun berinteraksi melalui interface pointer. • Hal tersebut merupakan fitur utama arsitektur COM untuk sepenuhnya melestarikan enkaspsulasi data
Interface COM • Dalam COM, aplikasi berinteraksi satu sama lain melalui koleksi fungsi yg disebut interface. • Sebagai contoh OLE services hanyalah antarmuka COM (COM interface) • Pada perkembangan selanjutnya pengguna dapat mendefinisikan interface sebagai pengembangan aplikasi berbasis komponen.
Interface COM • Interface is not a Class – Interface bukanlah kelas jadi tidak dapat diinstance dengan sendirinya karena tidak membawa implementasi – Hal ini menjadi dasar Konsep polimorfisme dalam interface
• Interface is not a COM Component – Interface hanyalah sekelompok fungsi yg terkait dan merupakan binary standart
Interface COM • COM Client only interact with pointer to interface – COM Client berinteraksi satu sama lain melalui pointer untuk mengakses fungsi pada interface
• COM components can implement multiple interfaces • Interface are Strongly Type – Setiap interface meiliki identifier sendiri
• Interfaces are immutable.
Fitur dan Fungsi • Tidak ketergantungan terhadap bahasa pemrograman • Mudah digunakan • Memisahkan interface dan implementasi • Reusabilitas yang tinggi • Mengimplementasikan aplikasi terdistribusi lintas proses
Keuntungan Interface COM • Kemampuan fungsi dari aplikasi berevolusi dari waktu ke waktu • Interaksi antar objek yang cepat dan sederhana • Interface yang bersifat guna ulang • Transparan • Bahasa pemrograman yang independen
Object Linking and Embedding (OLE)
Object Linking and Embedding (OLE) • Merupakan teknologi yang dikembangkan microsoft yang memungkinkan dokumen dan objek lain ditanamkan dan dihubungkan. • Beberapa pengembang mengaplikasikan dalam bentuk OLE Control eXtension (OCX) • Manfaat Utamanya : – Customize – Reduce Coding
History • OLE versi 1.0 – dirilis pada 1991 – Evolusi dari Dynamic Data Exchange (DDE) – Berkembang COM dan DCOm
• OLE versi 2.0 – Dirilis pada 1992 – OLE Automation
• OLE Custom Control – Diperkenalkan pada 1994 – Menggantikan Visual Basic Extension (VBX)
– dikirim dalam bentuk dynamic link library dengan ekstensi .ocx – Pada 1996 dikenal dengan ActiveX Control
Kegunaan OLE • Memungkinkan penggunakan informasi suatu aplikasi dalam aplikasi lain. • Mengelola Compound Documents
Contoh OLE dalam Visual Basic
OLE Automation
OLE Automation • Merupakan mekanisme inter-komunikasi berbasis COM yang ditujukan pada penggunaan bahasa scripting. • Pada awalnya didukung bahasa pemrograman visual basic namun sekarang dapat digunakan oleh bahasa pemrograman yang berjalan pada platform windows. • tujuanya agar program client dapat mengontrol OLE Server melalui bahasa pemrograman.
OLE Automation (Lanj) • Microsoft merancang OLE Automation sebagai solusi bagi masalah pemrograman makro lintas aplikasi dan tidak tergantung dengan satu bahasa pemrograman.
Contoh Penggunaan Automation dalam VB Dim excelApp as Object Set excelApp = CreateObject("Excel.Application") excelApp.Workbooks.Add excelApp.Range("A1:C6").Select excelApp.ActiveCell.Formula = "Hello World!" excelApp.Visible = True
ActiveX
ActiveX • Merupakan suatu kerangka untuk mendefinisikan perangkat lunak yang reuseable dan independent dalam bahasa pemrograman • Diperkenalkan pada 1996 oleh Microsoft sebagai perusahaan pengembang teknologi COM dan OLE • Merupakan elemen yang diprogram yang sebelumnya dikenal sebagai OLE Controls (OCXs) atau OLE Custom Control.
ActiveX • Istilah ActiveX pertamakali diperkenalkan oleh Microsoft pada “Internet Profesional Developer Conference” maret 1996. • Kata ActiveX merupakan slogan untuk “Aktifkan Internet”.
ActiveX Control • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan. • ActiveX Control pada dasarnya adalah sebuah objek OLE sederhana yang mendukung interface IUnknown. • IUnknown merupakan interface tertinggi pada COM yg memungkinkan klien mendapatkan pointer ke interface lain pada objek yg diberikan melalui method QueryInterface.
ActiveX Control • ActiveX Control dalam Visual Basic versi 6 dapat anda jumpai dalam ekstensi .OCX. • ActiveX Control berfungsi untuk menambah fungsionalitas program dengan memanggil komponen yang siap pakai dan membaur serta muncul sebagai bagian dari program. • Biasanya digunakan untuk menambah fungsifungsi user interface seperti 3D Toolbar, notepad, spreadsheet, dll.
ActiveX Control dalam lingkungan Web Browser • Pada awalnya ActiveX resmi beroperasi pada Internet Explorer 3.0 Web Browser. • Tekniknya apabila browser menemukan halaman yg menetapkan kontrol ActiveX maka otomatis akan mendownload dan menginstal kontrol tersebut tanpa intervensi pemakai. • Dalam hal ini menimbulkan masalah keamanan.
ActiveX Control dalam lingkungan Web Browser • Sehingga microsoft menetapkan standar keamanan terhadap ActiveX. – Digital Signature ketika instalasi paket – Kontrol harus menyatakan dirinya aman untuk scripting – Peningkatan keamanan pada setting default – IE memelihara daftar hitam kontrol yang buruk.
Scenario Penggunaan ActiveX Control • Terdapat tiga skenario penggunaan ActiveX Control sbb : – Stand-Alone – Disimpan di Lan namun dijalankan secara lokal – Tersimpan pada Web Server namun dijalankan secara lokal.
Mengapa ActiveX Control menjadi Penting? • Dalam lingkungan pemrograman, ActiveX meningkatkan produktivitas • Menjadi arsitektur utama untuk mengembangkan komponen software yang diprogram. • Sebagai komponen yang guna ulang • Mengurangi penggunaan baris program
Contoh ActiveX dalam Visual Basic
Menampilkan file .swf melalui ActiveX ShockwaveFlash
Distributed Component Object Model (DCOM)
DCOM • Distributed COM merupakan perluasan dari Component Object Model untuk mendukung komunikasi antar objek pada komputer yang berbeda (dlm LAN, WAN). • Tujuanya adalah untuk memecahkan permasalahan pengembangan aplikasi terdisitribusi.
DCOM Overview
• Pada prinsipnya COM mendefinisikan bagaimana komponen dan klien mereka berinteraksi tanpa sistem perantara.
• Namun dalam sistem operasi saat ini, proses terlindungi satu sama lain • Komunikasi dalam bentuk interprosses yg disediakan sistem operasi, bukan secara langsung
DCE RPC (Distributed Computing Environtment Remote Procedure Call) memungkinkan pemanggilan remote prosedur untuk lingkungan sistem tersebar, LPC digunakan untuk melakukan pencatatan komunikasi interprosses diantara proses-proses dalam komputer yang sama
• Ketika klien dan komponen berada pada mesin yang berbeda, DCOM hanya menggantikan komunikasi antar-proses lokal dengan protokol jaringan
Ada Pertanyaan ?
Terima kasih
Daftar Pustaka • Greg Perry (2000), “Sams Teach Yourself Visual Basic 6 in 21 Days, Professional Reference Edition”, Macmillan Computer Publishing, ISBN: 0672315424. • Francesco Balena (1999),”Programming Microsoft Visual Basic 6.0”, Microsoft Press, ISBN : 0-7356-0558-0 • Dobb, “Microsoft's Component Object Model (COM) is a component-software architecture that allows applications and systems to be built from components supplied by different software vendors”, 1994 • http://research.microsoft.com/enus/um/people/ymwang/papers/HTML/COMEssay/S.htm
Daftar Pustaka • Dr. Dobbs Journal and Microsoft Corporation, “The Component Object Model: Technical Overview”, 1994 • Lu Xiuxing (2010), “ActiveX Control Development of Virtual Instrument Based on COM Technology”, Northwestern Polytechnical University