Overview Component-Oriented Programming Erizal, S.Si, M.Kom Universitas Respati Yogyakarta erizalmik@yahoo.com http://erizal.wordpress.com
Object-Oriented Programming (OOP) Abstraksi : mendefinisikan obyek abstrak yang mampu melakukan kegiatan, mengubah state, dan berkomunikasi dengan obyek lain pada sistem Enkapsulasi : Menyembunyikan informasi dan detail implementasi sebuah method, serta mengatur akses terhadap atribut/method
Object-Oriented Programming (OOP) Polimorfisme : Membuat obyek dari tipe yang berbeda dapat saling dipertukarkan selama dimungkinkan Inheritance : Pewarisan atribut dan method dari superclass ke subclass
Component-Oriented Programming Metode pemrograman yang menekankan dekomposisi sistem menjadi komponen yang reusable dan memiliki interface untuk dapat berkomunikasi dengan komponen yang lain. COP mengembangkan software dengan melakukan assembling components OOP berhubungan dengan class & obyek, sedangkan COP berhubungan dengan interfaces dan composition.
Kenapa COP? Menyediakan level abstraksi yang lebih tinggi Tidak menyimpan state Menggunakan message passing untuk pertukaran data COP bersifat reuseable Waktu develop bisa lebih cepat Penambahan fitur baru cukup dengan menggabungkan dengan modul lain
Komponen Bagian dari sebuah sistem yang bersifat semi- independen dan replaceable, yang menyediakan layanan yang terdefinisi Runtime Component : Dynamically bindable package of programs managed as a unit and accessed through documented interfaces that can be discovered at runtime Software Component : Piece of self-contained, self deployable computer code with well-defined functionality and can be assembled with other components through it's interface Business Component : Software implementation of business concept or business process.
Contoh Component JavaBeans dan EJB dari SUN COM, DCOM, ActiveX dan .NET Component dari Microsoft CORBA dari OMG XPCOM dari Mozilla VCL dan CLX dari Borland UNO dari OpenOffice.org
COP vs OOP Object-based Interface-based An implementation technology Supports low-level reuse Bound to OO languages Tightly coupled objects dependent on each other through inheritance implementation Does not provide clear relationship of interfaces among superclasses and subclasses. Interface-based Packaging and distribution technology Supports high-level reuse Can be written in any language Loosely coupled components Supports multiple interfaces and interface-oriented design
COP vs OOP OOP provides limited support for object retrieval and runtime composition mechanisms Has limited forms of connectors (method invocation) Has limited sets of supported services such as security, transactions, and so on OOP objects are designed to obey OO principles Supports more forms of dynamic binding and dynamic discovery Has better mechanisms for third-party composition Provides more support for higher-order services (security, transactions, etc.) COP components are designed to obey rules of the underlying component framework
Component Based Software Engineering CBSE = COA + COD + COP + COM COA = component-oriented analysis COD = component-oriented design COP = component-oriented programming COM = component-oriented management
Teknologi Berbasis Komponen Pada Enterprise Javabeans (EJB) Sun Microsystem, sebagai sebuah perusahaan pengembang software arsitektur berorientasi obyek, mengembangkan aplikasi untuk sistem berskala enterprise. Sistem ini dikenal dengan sebutan Enterprise JavaBeans (EJB). Arsitektur teknologi ini lebih menekankan kepada sistem yang terdistribusi, yakni bagaimana menjalankan komponen-komponen enterprise pada sistem yang terdistribusi.
Arsitektur EJB
CORBA Interoperabilitas adalah kemampuan saling bekerjasama antar sistem komputer. Sebenarnya interoperabilitas bukanlah barang baru, karena protokol komunikasi datapun (TCP/IP misalnya) pada dasarnya diciptakan untuk mewujudkan interoperabilitas. Yang belum banyak dikenal adalah interoperabilitas pada level perangkat lunak aplikasi.
Interoperabilitas perangkat lunak menuntut homogenitas pada suatu level tertentu. Untuk itu diperlukan semacam 'standarisasi'. Berawal dari keperluan ini lahirlah CORBA (Common Object Request Broker Architecture).
Arsitektur CORBA CORBA adalah sebuah arsitektur software yang berbasis pada teknologi berorientasi obyek atau Object Oriented (OO) dengan paradigma client-server. Dalam terminologi OO, sebuah obyek berkomunikasi dengan obyek lain dengan cara pengiriman pesan (message passing). Konteks komunikasi ini kemudian dipetakan ke dalam model client-server
Arsitektur CORBA CORBA memiliki kemampuan dalam menangani heterogenitas antara client dan server (obyek server dinamakan object implementation) Keduanya dapat saja diimplementasikan dalam hardware, sistem operasi, bahasa pemrograman, dan di lokasi yang berbeda, tetapi tetap bisa saling berkomunikasi. Kuncinya ada pada sebuah lapisan software yang disebut dengan ORB(Object Request Broker).
MVC (Model View Controller) Model View Controller (MVC) adalah sebuah pola yang dapat membangun proyek perangkat lunak lebih efektif karena dilakukan dengan memilah komponen antara Model, View, dn Controller pada bagian- bagian dalam proyek. Dalam MVC dikenal tiga komponen pembangun, di mana ada interaksi yang terjadi di antara mereka.
MVC (Model View Controller)
END OF MODUL