47
Component Object Model (COM) Oleh : Edi Sugiarto, S.Kom, M.Kom

Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

  • Upload
    ngominh

  • View
    239

  • Download
    12

Embed Size (px)

Citation preview

Page 1: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Component Object Model (COM)

Oleh :

Edi Sugiarto, S.Kom, M.Kom

Page 2: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 3: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 4: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• 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.

Page 5: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Component Object Model foundation

Page 6: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 7: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 8: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 9: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• 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

Page 10: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• 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.

Interface COM

Page 11: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Fitur dan Fungsi

• Tidak ketergantungan terhadap bahasa

pemrograman

• Mudah digunakan

• Memisahkan interface dan implementasi

• Reusabilitas yang tinggi

• Mengimplementasikan aplikasi terdistribusi

lintas proses

Page 12: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 13: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Object Linking and Embedding (OLE)

Page 14: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 15: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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)

Page 16: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

– dikirim dalam bentuk dynamic link library dengan

ekstensi .ocx

– Pada 1996 dikenal dengan ActiveX Control

Page 17: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Kegunaan OLE

• Memungkinkan penggunakan informasi suatu

aplikasi dalam aplikasi lain.

• Mengelola Compound Documents

Page 18: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Contoh OLE dalam Visual Basic

Page 19: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan
Page 20: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

OLE Automation

Page 21: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 22: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

OLE Automation (Lanj)

• Microsoft merancang OLE Automation

sebagai solusi bagi masalah pemrograman

makro lintas aplikasi dan tidak tergantung

dengan satu bahasa pemrograman.

Page 23: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Contoh PenggunaanAutomation 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

Page 24: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan
Page 25: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

ActiveX

Page 26: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 27: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

ActiveX

• Istilah ActiveX pertamakali diperkenalkan

oleh Microsoft pada “Internet Profesional

Developer Conference” maret 1996.

• Kata ActiveX merupakan slogan untuk

“Aktifkan Internet”.

Page 28: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 29: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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 fungsi-

fungsi user interface seperti 3D Toolbar,

notepad, spreadsheet, dll.

Page 30: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

ActiveX Control dalamlingkungan 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.

Page 31: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

ActiveX Control dalamlingkungan 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.

Page 32: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Scenario PenggunaanActiveX 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.

Page 33: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan
Page 34: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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

Page 35: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Contoh ActiveX dalamVisual Basic

Page 36: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan
Page 37: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Menampilkan file .swf melalui

ActiveX ShockwaveFlash

Page 38: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Distributed Component Object Model (DCOM)

Page 39: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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.

Page 40: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

DCOM Overview

Page 41: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• Pada prinsipnya COM mendefinisikan

bagaimana komponen dan klien mereka

berinteraksi tanpa sistem perantara.

Page 42: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• 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

Page 43: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• Ketika klien dan komponen berada pada mesin

yang berbeda, DCOM hanya menggantikan

komunikasi antar-proses lokal dengan protokol

jaringan

Page 44: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Ada Pertanyaan ?

Page 45: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

Terima kasih

Page 46: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

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/en-

us/um/people/ymwang/papers/HTML/COMEssay/S.htm

Page 47: Component Object Model (COM) - dinus.ac.iddinus.ac.id/repository/docs/ajar/11._EDI_PA_Component_Object_Model... · • ActiveX Control dapat dikatakan sebagai OLE yang telah dikembangkan

• 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

Daftar Pustaka