10
© Restyandito Pengantar JavaBeans - 1 TR 3063 Pemrograman Berbasis Komponen Pemrograman Pemrograman Berbasis Komponen Berbasis Komponen TR306 TR306 3 3 Restyandito e-mail : [email protected] website : http://lecturer.ukdw.ac.id/~dito TR3063 – Pengantar JavaBeans © Restyandito - 2 JavaBeans JavaBeans TR3063 – Pengantar JavaBeans © Restyandito - 3 Component Model Component Model Apa itu component model? A "component" is a building block program that is self-describing. Dapat dijalankan secara independen. atau Dapat dijalankan bersama dengan komponen- komponen yang lain secara interaktif untuk melakukan suatu pekerjaan yang kompleks. TM Contoh: Microsoft DCOM/ActiveX JavaBeans / Enterprise JavaBeans TR3063 – Pengantar JavaBeans © Restyandito - 4 mendukung prinsip reusability pada proses rekayasa perangkat lunak. jika suatu aplikasi dibuat menggunakan komponen, pelanggan dapat hanya membeli fungsionalitas yang diperlukan saja. pada visual builders, membantu developers untuk menggunakan fungsionalitas bisnis secara mudah dan cepat TM Component Model Component Model Kelebihan

Pengantar javabeans

Embed Size (px)

DESCRIPTION

Java enterprise

Citation preview

Page 1: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 1

TR 3063Pemrograman Berbasis Komponen

Pemrograman Pemrograman Berbasis KomponenBerbasis Komponen

TR306TR30633

Restyanditoe-mail : [email protected]

website : http://lecturer.ukdw.ac.id/~dito

TR3063 – Pengantar JavaBeans © Restyandito - 2

JavaBeans JavaBeans

TR3063 – Pengantar JavaBeans © Restyandito - 3

Component ModelComponent Model

Apa itu component model?– A "component" is a building block program that is

self-describing.– Dapat dijalankan secara independen.

atau– Dapat dijalankan bersama dengan komponen-

komponen yang lain secara interaktif untuk melakukan suatu pekerjaan yang kompleks.

TM

Contoh:Microsoft DCOM/ActiveXJavaBeans / Enterprise JavaBeans

TR3063 – Pengantar JavaBeans © Restyandito - 4

mendukung prinsip reusability pada proses rekayasa perangkat lunak.jika suatu aplikasi dibuat menggunakan komponen, pelanggan dapat hanya membeli fungsionalitas yang diperlukan saja.pada visual builders, membantu developers untuk menggunakan fungsionalitas bisnis secara mudah dan cepat

TM

Component ModelComponent Model

Kelebihan

Page 2: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 2

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 5

JavaBeansJavaBeans

Apa itu JavaBeans?– component model Java– komponen perangkat lunak yang reusable– dapat dimanipulasi secara visual menggunakan

builder tool– memungkinkan pengguna untuk membangun

aplikasi secara mudahplugging component bersama-sama secara program atau visual atau keduanya.

TM TR3063 – Pengantar JavaBeans © Restyandito - 6

JavaBeansJavaBeans

JavaBeans dapat berupa :– Visual bean

(mis. button, text-box)– Non-visual bean

(mis. FTP, SMTP, ZipCode validator)

TM

TR3063 – Pengantar JavaBeans © Restyandito - 7

JavaBeansJavaBeans

Lima fungsionalitas penting yand didukung oleh JavaBeans– Event– Property– Persistence– Introspection– Customization

TM TR3063 – Pengantar JavaBeans © Restyandito - 8

EventEvent

Apa itu event?A source bean fires an event, while a listener bean receives the event and responds to the event.– suatu message yang dikirim dari satu objek ke

objek yang lain– Pemberitahuan kepada penerima

(recipient) bahwa telah terjadi ‘sesuatu’

TM

Page 3: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 3

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 9

EventEvent

Tiga element pada event model– Event source– Event listener– Event object

TM

Mengapa diperlukan JavaBeans?untuk komunikasi antar beans

TR3063 – Pengantar JavaBeans © Restyandito - 10

PropertyProperty

TM

Apa itu property ?Public attributes of a bean that affects its apearanceor behavior– Mendefinisikan karakteristik dari suatu bean

Contoh: bean untuk melakukan fungsi RTP

possible properties : jumlah koneksi maks

– dapat di : read/write, read-only atau write-only

TR3063 – Pengantar JavaBeans © Restyandito - 11

PropertyProperty

TM

Apa itu property ?– Method untuk get/set property values

public void set<PropertyName>(<PropertyType> value);public <PropertyType> get<PropertyName>();

TR3063 – Pengantar JavaBeans © Restyandito - 12

PropertyProperty

• Empat jenis property– Simple Property

• Yang paling sederhana– Indexed Property

• Suatu property tunggal dapat menyimpan arary of values

– Bound property• Memberi tahu listeners jika salah satu properti dari

properti mengalami perubahan– Constrained property

• Memungkinkan listeners untuk memilih jika diijinkan untuk merubah property

Page 4: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 4

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 13

PersistencePersistence

TM

Apa itu persistence ?Enable a bean to save and restore its state– development tool menyimpan JavaBean di

dalam hard disk, dan dapat di-load suatu waktu– memelihara nilai property tanpa tergantung

apakah JavaBeans terdapat di memory atau hard disk

PersistentStorage

Applikasi

PersistentState

TR3063 – Pengantar JavaBeans © Restyandito - 14

Object serializationObject serialization

• Persistence dapat diperoleh dengan object serialization– Save semua content dari suatu object pada

data stream– Generate kembali objek ketika membuat

(create) dari data stream• Data stream dapat berupa file, suatu array di

memory, dsb.

TM

TR3063 – Pengantar JavaBeans © Restyandito - 15

Object serializationObject serialization

ContohApel apel = new Apel(Color.green);FileOutputStream f = new FileOutputStream(“apel.tmp”);ObjectOutputStream s = new ObjectOutputStream(f);s.writeObject(apel);s.flush();f.close();

FileOutputStreamFileOutputStream

ObjectOutputStreamObjectOutputStream

objekapel file di harddisk

“apel.tmp”TM TR3063 – Pengantar JavaBeans © Restyandito - 16

Object serializationObject serialization

FileInputStream f = new FileInputputStream(“apel.tmp”);ObjectInputStream s = new ObjectInputStream(f);Apel apel = (Apel)s.readObject();

f.close();

FileInputStreamFileInputStream

ObjectInputStreamObjectInputStream

objekapel

TM

file di harddisk“apel.tmp”

Page 5: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 5

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 17

IntrospectionIntrospection

• Bagaimana development tools mengetahui method/event/property yang terdapat pada suatu beans?– Introspection– Java Reflection API

• Java Reflection API digunakan jika bean tidak mendukungintrospection

TM TR3063 – Pengantar JavaBeans © Restyandito - 18

IntrospectionIntrospection

Apa itu introspection?To learn about the properties, events, and methodssupported by a target Java Bean. • Buat class XXXBeanInfo khusus untuk

menjelaskan class XXX to secara detil• BeanInfo mendefinisikan informasi bean

berikut:– Icon (displayed in development tool)– Property– Method– Other information

BeanBeanInfo

aku punyainformasi mu!

TM

TR3063 – Pengantar JavaBeans © Restyandito - 19

Java Reflection APIJava Reflection API

Apa itu Java Reflection API ?A Java API for find out the methods, fields, constructors, superclasses at RUNTIME• API ini juga digunakan untuk menulis development

tools yang lain:– debuggers– class browsers– GUI builders

TM TR3063 – Pengantar JavaBeans © Restyandito - 20

Java Reflection APIJava Reflection API

Contoh:– Bagaimana mencari nama class suatu objek?

– Bagaimana mencari superclass suatu class?

Button b = new Button();Class c = b.getClass();String s = c.getName();System.out.println(s);

Button b = new Button();Class c = b.getClass();Class sc = c.getSuperclass();String s = sc.getName();System.out.println(s);

TM

Page 6: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 6

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 21

Java Reflection APIJava Reflection API

Contoh :– Bagaimana mengetahui fields suatu objek?

– Bagaimana mengetahui method suatu objek?

Button b = new Button();Class c = b.getClass();Field[] f = c.getFields();System.out.println(f[0].getName() + f[0].getType());

Button b = new Button();Class c = b.getClass();Method[] m = c.getMethods();System.out.println(m[0].getName() + m[0].getReturnType());

TM TR3063 – Pengantar JavaBeans © Restyandito - 22

Referensi JavaBeansReferensi JavaBeans

• Sun JavaBeans tutorial http://java.sun.com/docs/books/tutorial/javabeans

• Writing JavaBeans using Jbuilder Java BeansExpresshttp://www.drbob42.com/jbuilder/javabean.htm

TM

TR3063 – Pengantar JavaBeans © Restyandito - 23

JavaBeans ResourcesJavaBeans Resources

• Java Bean Development Kit (BDK) (http://java.sun.com/products/javabeans/software/bdk_download.html)

• Java IDEs that support JavaBeans– SUN ONE Studio 4(http://wwws.sun.com/software/sundev/jde/)

– IBM VisualAge for Java(http://www-4.ibm.com/software/ad/vajava/)

– Borland JBuilder(http://www.inprise.com/jbuilder/)

TM TR3063 – Pengantar JavaBeans © Restyandito - 24

Enterprise JavaBeans Enterprise JavaBeans

TR3063 – Pola Adaptor & Facade

Page 7: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 7

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 25Enterprise JavaBeansTM

Enterprise JavaBeansEnterprise JavaBeans

• Enterprise JavaBeans (EJB)(http://java.sun.com/products/ejb/index.html)

• mirip dengan CORBA• Suatu spesifikasi untuk mendefinisikan

arsitektur pengembangan komponen perangkat lunak yang:– transactional– distributed object applications-based– server-side

TR3063 – Pengantar JavaBeans © Restyandito - 26

Enterprise JavaBeansEnterprise JavaBeans

• Empat element utama di EJB– EJB Server– EJB Container– Beans– EJB Client EJB Server

EJB ContainerEJB Client

Enterprise JavaBeansTM

TR3063 – Pengantar JavaBeans © Restyandito - 27

EJB ServerEJB Server

• memberikan servis penamaan dantransaksi

• membuat containers “visible”EJB Server

EJB ContainerEJB Client

Enterprise JavaBeansTM TR3063 – Pengantar JavaBeans © Restyandito - 28

EJB ContainerEJB Container

• Interface antara bean dan dunia luar• Enterprise beans tidak dapat berfungsi di luar

container• Client mengakses bean melalui container• Mengatur semua aspek

dari enterprise bean– Remote access– Security– Persistence– Transactions– Concurrency

EJB Server

EJB ContainerEJB Client

Enterprise JavaBeansTM

Page 8: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 8

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 29

EJB ClientEJB Client

• Beans berada di bawah Environment Naming Context (ENC)

• ENC diatur oleh container• Client dapat mencari container EJB via

Java Naming and Directory Interface (JNDI)

• Menggunakan beans untuk melakukan operasi

Enterprise JavaBeansTM TR3063 – Pengantar JavaBeans © Restyandito - 30

Enterprise JavaBeansEnterprise JavaBeans

• menyediakan service untuk klien EJB• “Hidup” di dalam container EJB• tipe

– Session bean– Entity bean

EJB Server

EJB ContainerEJB Client

Enterprise JavaBeansTM

TR3063 – Pengantar JavaBeans © Restyandito - 31

Session beanSession bean• representasi proses / task, yang

dilakukan atas nama client• Berasosiasi dengan client tertentu• di-create dan di-destroy oleh client• Hilang setelah system shutdown

Enterprise JavaBeansTM

Sessionbean

TR3063 – Pengantar JavaBeans © Restyandito - 32

Session beanSession bean• Berinterakasi dengan resources lain,

yaitu session beans lain, entity beans dan akses resources

• Tipe– Stateless

• Tidak menyimpan record apa yang dilakukan client pada previous call

– Stateful• Menyimpan record apa yang dilakukan client pada

previous call

Sessionbean

Enterprise JavaBeansTM

Page 9: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 9

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 33

Entity beanEntity bean• representasi data dalam database• menyediakan interface berbasis objek

pada data yang biasanya harus diakses menggunakan JDBC / API yang lain

• tipe– Container-Managed Persistence (CMP)– Bean-Managed Persistence (BMP)

Entitybean

Enterprise JavaBeansTM TR3063 – Pengantar JavaBeans © Restyandito - 34

Contoh EJBContoh EJB• sistem database toko buku• mengelola informasi mengenai

– Customer– Book– Order

• melakukan operasi pada sistem– Customer memesan buku

Enterprise JavaBeansTM

TR3063 – Pengantar JavaBeans © Restyandito - 35Enterprise JavaBeansTM

ContohContohEJB Server

EJB Container

EJB Customerclient program

EJB POSclient program

EJB Maintenanceclient program

Customer

Maintainer

DatabaseBook

Order

Sales

Sessionbean

Entitybean

TR3063 – Pengantar JavaBeans © Restyandito - 36

ContohContoh

• customer memesan buku

// In the client program

CustomerHome chome = // obtain home interfaceCustomer customer = chome.findByName(“Lee Tai Ha”);

BookHome bhome = // obtain home interfaceBook book = bhome.findByName(“Soft. Eng”);

SalesHome shome = // obtain home intefaceSales sales = shome.create();

sales.orderBook(customer, book, otherInformation);

Enterprise JavaBeansTM

Page 10: Pengantar javabeans

© Restyandito Pengantar JavaBeans - 10

TR 3063Pemrograman Berbasis Komponen

TR3063 – Pengantar JavaBeans © Restyandito - 37

EJB ResourcesEJB Resources

• J2EE (Java 2 Enterprise Edition) (http://java.sun.com/j2ee/)

• EJB Tutorial http://developer.java.sun.com/developer/onlineTraining/Beans/EJBTutorial/

• JBoss (www.jboss.org)

• PowerTier for J2EE (http://www.persistence.com/products/powertier/j2ee_datasheet.php)

Enterprise JavaBeansTM

The EndThe Endterima kasih