Home > CBSE > Komponen S/W

Komponen S/W

Apa itu komponen S/W ? Definisi menurut Szyperski adalah sbb:

  • A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only.
  • A software component can be deployed independently and is subject to composition by third party.

Dari definisi di atas, kita tahu bahwa komponen S/W harus bisa di-deploy secara independent, sehingga harus punya batas yang jelas dengan lingkungannya (komponen lain). Komponen S/W harus punya definisi interface yang jelas. Implementasi komponen harus ter-enkapsulasi dan tidak dapat diakses langsung tanpa melalui interface-nya. Komponen S/W belum siap pakai, tetapi harus dikomposisi dengan komponen atau sistem lain sehingga akhirnya menjadi produk jadi.

Categories: CBSE
  1. July 31, 2008 at 2:05 pm

    ini selama ini sering bikin bingung.

    karena yang namanya “interface” itu bisa macam-macam artinya.
    1. Interface, sebuah abstraksi dari sebuah kelas yang harus diimplementasikan.
    2. Interface, tampilan sebuah perangkat lunak
    3. Interface, pada komponen S/W

    Nah kalau untuk komponan S/W sebenarnya interface itu implementasinya seperti apa sih, Bu?

  2. July 31, 2008 at 4:50 pm

    interface yang dimaksud di sini how to use the component bukan??

    jadi misalkan ada component email yang berfungsi untuk mengirimkan email, harus ada dong cara untuk mengeset subject, to, cc, body email tapi jangan sampe component email dipake untuk muter lagu?

    CMIIW…

    Contohnya mungkin API di java bukan??

  3. August 1, 2008 at 6:25 am

    berarti implementasinya itu memang bisa macam-macam ya. bisa class, bisa object, bisa interface (konteks OOP Java), dan lain-lain.
    terus kalau standard untuk component development bagaimana, Bu?
    sepertinya menyenangkan kalau IF ITB bisa punya koleksi komponen-komponen siap pakai terus dijual ke industri. ^_^

  4. yaniwid
    August 1, 2008 at 9:06 am

    Petra, Wisnu,
    Secara konsep, interface komponen S/W bisa dianalogikan dengan interface komponen H/W. Sebuah komponen H/W biasanya punya ‘colokan’/slot antarmuka untuk ‘dipasangkan’ dengan komponen H/W lainnya.
    Komponen S/W terdiri dari dua bagian, yaitu komponennya sendiri dan interface-nya. Implementasinya tergantung pada teknologi yang digunakan. Misalnya, komponen pada Java adalah bean. Setiap bean akan mempunyai home interface dan local/remote interface. Dunia luar akan mengakses bean melalui interface ini. Di Java, komponen ada beberapa tipe. Ada entity bean, session bean, dan message-driven bean.
    Untuk teknologi yang lain, berbeda lagi implementasi komponennya. Kita bahas sedikit demi sedikit nanti ya…

  5. August 1, 2008 at 10:27 am

    itu bukannya bean pada EJB (Entreprise Java Bean)?

    EJB = POJO + Annotation??

    POJO == Plain Old Java Object

    ??

    tapi sepakat dengan interface yang dimaksud😀, colokan hehehe…

  6. August 1, 2008 at 10:36 am

    Enterprise JavaBeans beda ah dengan JavaBeans

    Enterprise JavaBeans (EJB) technology is the server-side component architecture for Java Platform, Enterprise Edition (Java EE). EJB technology enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology.

    JavaBeans technology is the component architecture for the Java 2 Platform, Standard Edition (J2SE). Components (JavaBeans) are reusable software programs that you can develop and assemble easily to create sophisticated applications.

    CMIIW

  7. yaniwid
    August 1, 2008 at 12:10 pm

    Bean yang saya maksud adalah EJB. Kalau nggak salah, Javabean adalah versi awal dari EJB. J2SE menyediakan berbagai javabean siap pakai. Kita bisa taruh javabean di bean box, lalu kita manipulasi propertinya. Kalau nggak salah, memanfaatkan Java Introspection.

  8. August 2, 2008 at 10:40 am

    Sebatas pengetahuan saya, yang dibilang oleh Wisnu sebagai POJO itu adalah yang dimaksud dengan Javabeans. Karena sebatas yang eksplorasi saya juga, Javabean memang sebatas konvensi supaya sebuah class (bean) menjadi reusable.
    Kalau EJB itu juga sedalam eksplorasi saya sudah merupakan spesifikasi mirip Javabean yang memudahkan penggunaannya di dalam sistem yang terdistribusi.

    Setelah saya baca buku tentang EJB 2.0, konsepnya memang sangat berguna bagi bisnis yang besar dan terdistribusi di mana-mana karena ada fitur persistance, secure, distributed, dan highly concurrent yang sudah dimanage oleh Java-nya sendiri.
    Kalau bisnis-bisnis kecil sepertinya teknologinya terlalu mewah.
    (sudah out of topic, hehe)

    CMIIW

  9. yaniwid
    August 2, 2008 at 2:50 pm

    Yang menarik: distributed. Remote interface memungkinkan hal ini. Kita bisa mengakses bean yang ada di lokasi lain dengan mudah…

  10. August 2, 2008 at 3:54 pm

    hooh di konsepnya sih bisa remote, entah tapi belum sampai koding untuk mengakses remote…

    kadang rada aneh dengan EJB yang katanya bisa diakses oleh JVM yang berbeda (if remote interface).

    JVM berbeda berarti khan bisa diartikan beda komputer

    apa mungkin yang dimaksud bisa remote itu jika dijadikan webservice ya?? tapi engga kok katanya remote itu ya remote, masalah webservice itu beda lagi…

    kadang rada khawatir juga dengan TA saya :p, soalnya di gambar yang saya buat, tiap-tiap komponen dari tiap subsistem loose coupled, namun dalam implementasinya saat ini masih satu JVM😀 huehue….

    besar sekali… menurut saya sih mudah sekali konsep akan pembangunan sebuah software, namun ketika implementasi… hem…

    sama ketika diskusi tentang SOA dengan seorang teman, SOA ya seperti itu, tapi kalo di break down jauh ke dalam, banyak ‘pihak’ yang terlibat huehue…

    mungkin disana itu ya yang disebut software engineering

  11. August 2, 2008 at 5:31 pm

    Setau saya juga sih, konsep EJB dengan WS itu satu konsep tapi berbeda.

    Dengan WS itu kita memang berkomunikasi dengan sistem yang ada di tempat lain sesuai dengan fungsi-fungsi dan tipe-tipe data yang telah didefinisikan pada WSDL kemudian data-data ini dipertukarkan dengan SOAP.
    Nah, tapi konsep EJB itu jauh lebih menarik. AFAIK, dengan menggunakan EJB, kita memain-mainkan sebuah bean di sisi client seakan-akan bean itu juga ada di sisi server. Jadi programmer hanya perlu memikirkan implementasi bean tersebut sesuai proses bisnis tempat bean tersebut dipakai. Tidak perlu lagi memikirkan masalah pengaturan sesi, keamanan, threading, dll.

    Yah, memang dewasa ini gak perlu yang namanya koding dari 0. Untuk membuat sebuah sistem enterprise yang fully distributed, khan gak perlu lagi merancang mulai dari level socket, kemudian mendefinisikan protokol, lalu membuat pengaturan multithreading dan sesi pada server, dst. Sun menyediakan sebuah sistem yang “tinggal pakai” yakni EJB. Dengan menggunakan EJB, membuat sistem terdistribusi itu mudah. Programmer cuman tinggal mendefinisikan sebuah bean saja, (plus home interface dan remote interface) dan segalanya akan diatur oleh environmentnya.

    Haduh, bahasannya terlalu jauh melenceng nih.

    Tapi saya lihat bahasan-bahasan RPL sudah agak-agak mengawang-awang jauh di atas implementasi teknologinya. Jargon-jargon seperti EJB, SOA, WS, SOAP, RMI, RPC, ORB sudah sering keluar, tapi saya yakin masih banyak yang bingung.
    Di kuliah PPL disuruh menggunakan WS, tapi di kuliah ProgiN kita baru belajar yang namanya socket. Sementara di antara keduanya masih banyak “barang-barang” yang belum pernah terjamah.

    Kesimpulannya Informatika sudah terlalu luas, Bu.

  12. yaniwid
    August 3, 2008 at 11:57 am

    Setuju Wisnu, implementasi tak seindah konsepnya. Masih banyak yang harus kita coba-coba implementasikan, bahkan kadang-kadang ada trik yang harus dieksplor juga. Kabar-baiknya, paling tidak kita sudah bisa mengacu konsep yang lumayan jelas…🙂

    Petra, baru tau ya IF itu luuaaasss… ??
    Belajar di IF masih seperti mengumpulkan puzzle ? Mudah-mudahan kurikulum baru akan lebih jelas ya…😉

  13. aquataine
    August 5, 2008 at 2:18 am

    Bu, ikut comment yaa, CMIIW.

    Component interface != OOP (class) interface
    Component interface = base class,interface,DAO,Factory,
    data (remember contract?->WSDL,IDL..),
    …..

    EJB != POJO + Annotation
    anotasi adalah fitur Java sebagai bahasa pemrograman (1.5) bukan EJB. JavaDoc annotation adalah contoh implementasi dari konsep anotasi.

    Secara pragmatis, konsep EJB terletak di container. Selebihnya EJB dibangun dari plain Java (POJO), kumpulan dari library (bean) yang menurut Sun dibutuhkan untuk aplikasi enterprise saat ini(that’s why it’s named EJB :-D). Konsep bean sudah ada di Java SE atau secara konsep bahkan sebelum Java. Inti dari bean cukup sederhana yaitu objek yang di rancang untuk reusability.

    Perbedaan EJB dgn bean terletak di container, yang sebenarnya adalah layer sekaligus abstraksi tambahan yang di definisikan oleh Sun. Tujuan EJB adalah mendefinisikan sebuah standar bagi para developer untuk membuat bean yang capable untuk sistem enterprise.
    Kebutuhan enterprise (saat ini) antara lain: remote invocation, scalability, manageable,….
    Implementasi remoting sudah ada dari sebelum EJB misal dari socket, CORBA, RMI, sampai WS. Konsep scalability misalkan: clustering, thread pooling, dsb. Jadi sebenarnya developer bisa saja (dan tetap reasonable utk beberapa kasus) mengimplementasikan kebutuhannya tanpa EJB. Namun di sinilah peranan EJB sebagai framework yang standar (dan juga framework yang lain), memudahkan (simplifikasi) developer untuk mengembangkan aplikasi.

    Dengan container, bean dapat berinteraksi satu sama lain tanpa harus tahu secara spesifik implementasi antar bean (abstraksi).JVM sendiri sebenarnya adalah sebuah container. Dengan JVM, objek akan dapat berjalan di beberapa OS tanpa perubahan kode. EJB dibangun di atas JVM, jadi EJB sebenarnya adalah kumpulan objek di atas JVM, jadi wajar
    EJB bisa berkomunikasi dengan EJB lain di beda JVM selama
    JVM tersebut kompatibel.

    Yang ingin saya tekankan di sini adalah sangat bijak jika kita memperlakukan sebuah komponen secara kontekstual. EJB adalah salah satu framework Java, dan framework hanya memfasilitasi kita melakukan pengembangan software. Apakah kita memilih CORBA, WS, RMI, Plain Socket,dll.. menurut saya itu seharusnya sudah ada di luar scope EJB sebagai framework.

    Dan satu lagi, EJB adalah sebuah produk, EJB dibentuk dari konsep yang sudah ada dan dipakai sebelumnya. Contohnya implementasi AOP pada EJB, sebenarnya sebelum EJB, AOP sudah digunakan secara luas (AspectJ). JPA (Java Persistence API), spesifikasi objek persisten pada EJB dibangun dengan mengadopsi Hibernate (Open source ORM).

  14. yaniwid
    August 5, 2008 at 7:45 am

    @all: Thx for sharing…

  1. August 3, 2008 at 7:30 am

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: