Advanced Enterprise Java Beans Concept I oleh: Ade Melani1203000064 Lusiana Darmawan1203000617 Suryamita Harindrari1203001087 Pamela Indrajati1203000846.

Slides:



Advertisements
Presentasi serupa
OVERVIEW • Transaksi merupakan bagian dari pengeksekusian sebuah program yang melakukan pengaksesan basis data dan bahkan juga melakukan serangkaian pengubahan.
Advertisements

LDAP (Lightweight Directory Access Protocol)
Continous DBMS DATA MODELS
STORED PROCEDURED Stored procedure dan stored function merupakan fasilitas baru dari MySQL versi 5.0.
Manajemen Transaksi & Kontrol Konkurensi
Membuat class sendiri.
Chapter 9 Adding Functionality to Your Beans [menambahkan fungsi-fungsi pada Bean] Sumber : Ed Roman, Scott Ambler, Tyler Jewell, Mastering Enterprise.
Pendahuluan  Entity Beans : Bean yang berinteraksi dengan data dan penyimpanannya 2 cara memanage persistence : - Bean-Managed Persistence -> punya banyak.
Sistem Komunikasi.
Abstract Class & Interface
Workshop SCS: Java Game Programming
Proteksi data BASIS DATA.
Flow Control & Exception Handling
Presentasi Keamanan Basis Data “Transaction Management”
Modul 1- Review Java.
Metode Perancangan Program
Manajemen Basis Data menggunakan SQL Server
Mendapatkan input dari keyboard
Pemrograman Berorientasi Obyek Oleh Tita Karlita
DATABASE CONTROL.
CONCURENCY CONTROL DISTRIBUTED DATABASE. M AIN TOPICS Transaction managements Centralized database Distributed database Consistency control Centralized.
PENGONTROLAN KONKURENSI & RECOVERY
Diberikan pada Kuliah Sela Teknik Informatika - Universitas Muhammadiyah Malang Tahun 2011.
MEMBUAT CLASS SENDIRI. Pada akhir pembahasan, peserta diharapkan mampu untuk :  Membuat class  Mendeklarasikan atribut dan method untuk class  Menggunakan.
TRANSAKSI DAN PENGENDALIAN PERSAINGAN
Database Management System
PERTEMUAN KE 2 JAVA SERVER PAGES (JSP) BY : TITO SUGIHARTO
Inheritance, polymorphism, dan interface
PERTEMUAN 8 Teknik recovery.
Kelompok Advanced Enterprise Java Bean I Chapter 10 dan 11
Manajemen Transaksi (1)
Transaksi Konsep Transaksi Status transaksi
Class and Object Matakuliah : XXXX / Algoritma dan Metode Object Oriented Programming II Pertemuan : 2 Tahun : 2008 Versi : 1/0.
Advanced Enterprise Java Beans Concept I oleh: Ade Melani Lusiana Darmawan Suryamita Harindrari Pamela Indrajati
JDBC Java2 Advanced.
Collabnet Overview v Informatika BAB XIII Menangani Transaksi.
Review. Fakultas Ilmu Komputer UI 2 Database Introduction Database vs File Processing Database Actors DBA, Database Designers, Database users, Application.
TRANSACTION MANAGEMENT
Try, Catch, Finally Throws
Kelas A dapat memiliki referensi ke obyek dari kelas- kelas lain sebagai anggota. Kadang-kadang disebut sebagai hubungan “has-a”. Sebagai contoh, sebuah.
Pemrograman Berorientasi Obyek Lanjut (IT251) Ramos Somya, S.Kom., M.Cs.
1 JDBC-Update Java2 Advanced JDBC Update – Java2 Advanced.
Java Remote Object Invocation (RMI)
Dasar query basis data dengan SQLite
Manajemen Transaksi #5 D. SINAGA, M.KOM.
Recovery Adapted from: Connolly, Thomas., et.al., Database System. Wokingham England: Addison-Wesley Publishing Company.
Proteksi data BASIS DATA.
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Pertemuan 13 LINGKUNGAN DATABASE.
Backup & Recovery.
TRANSACTION MANAGEMENT
Pemrograman Berorientasi Object
KEAMANAN PADA SISTEM TERDISTRIBUSI
Mobile Computing 7 Middleware.
Manajemen Basis Data menggunakan SQL Server
Sistem Manajemen Basis Data
Association, Composition dan Inheritance
Pertemuan <<10>> Transaksi Manajemen
Transaksi Konsep Transaksi Status transaksi
Java Database Programming
Flow Control & Exception Handling
KEAMANAN PADA SISTEM TERDISTRIBUSI
Pemulihan Basis Data D. Sinaga, M.Kom.
Manajemen Transaksi D. SINAGA, M.KOM.
Keamanan Pada Sistem Terdistribusi Nama Kelompok : 1.M.Ulfi Taufik Nurahman Nurmanudin Syaifuna
Java Database Connectivity (JDBC)
KEAMANAN PADA SISTEM TERDISTRIBUSI
Pemrograman berorientasi objek
Lingkungan Basis Data.
Proteksi Data Pertemuan 13.
Transcript presentasi:

Advanced Enterprise Java Beans Concept I oleh: Ade Melani Lusiana Darmawan Suryamita Harindrari Pamela Indrajati Tirza Varananda Yoanna Widyanti Copyright ( Hak Cipta ) 2004 Silahkan menyalin, mengedarkan, dan / atau memodifikasi bagian dari dokumen ini tanpa mengubah nota hak ciptanya.

2 Agenda I. Transactions  Transactions Motivation  The ACID Properties  Transaction Models  Controlling Transactions Boundaries in EJB  Choosing Transaction Style  Transaction & Entity Bean  Container-Managed Transaction  Transaction & Message-Driven Bean  Programmatic Transaction in EJB  Transactional Isolation  Concurrency Control  Distributed Transaction: Durability and the Two-phase Commit Protocol  Distributed Transaction: Transactional Communication Protocol and Transaction Context  Designing Transactional Conversations in EJB

3 Transactions Motivation Apa yang mungkin terjadi pada sebuah database yang terhubung dengan beberapa application server ? Client Code Application Server Database

4 Transactions Motivation( cont. ) PPerhatikan kode di bawah : try { // Withdraw funds from account 1 } catch (Exception e) { // If an error occurred, do not proceed return; } try { // Otherwise, deposit funds into account 2 } catch (Exception e) { // If an error occurred, do not proceed, // and redeposit the funds back into account 1 return; } AApa yang salah dengan kode di atas ? Exception saja tidak cukup untuk Enterprise Computing

5 The ACID Properties  Atomicity “All or nothing”  Consistency - Menjamin konsistensi berdasarkan invarian - You don’t get consistency for free !  Isolation - Operasi pada data yang di-share diisolasi - Pilihan: safety atau concurrency ? Safety Concurrency  Durability - Perubahan data disimpan di transactional log - Jika sistem crash, perubahan data tidak hilang sehingga dapat diperbaiki

6 Transactional Models  Flat Transactions - Modifikasi data disimpan ke permanent storage jika transaksi diakhiri dengan commit - Jika terjadi problem  semua transactional statement harus rollback  Nested Transactions - Pohon transaksi dengan akar  transaksi utama & cabang  sub-transaksi - Sub-transaksi dapat rollback tanpa mempenga- ruhi bagian lain yang lebih tinggi - Sub-transaksi tidak bisa di-commit  transaksi gagal

7 Controlling Transaction Boundaries in EJB Transaction Boundaries - Menandai awal dan akhir dari transaksi - Berisi command: Begin : mengawali transaksi baru Commit: menerapkan semua operasi / perubahan yang diinginkan dan mengakhiri transaksi Rollback: mengembalikan ke kondisi semula semua operasi/perubahan dan mengakhiri tran- saksi Dikontrol dengan:  Programmatic Transactions - Bean code mengawali & mengakhiri transaksi - Bean membuat begin statement & commit atau abort statement - Hanya bekerja dengan session beans

8 Controlling Transaction Boundaries in EJB ( cont. )  Declarative Transactions - EJB Object mengawali & mengakhiri transaksi - EJB container yang membuat begin statement & commit atau abort statement  Client-Initiated Transactions - Client-code mengawali & mengakhiri transaksi - Client – Server harus dekat - Dikontrol dengan JTA

9 Choosing Transaction Style  Declarative Transactions Tidak perlu menulis transactional logic  Programmatic Transactions Kontrol penuh pada batasan transaksi  Client-Controlled Transactions Lebih reliable Transaction & Entity Bean o begin()  ejbLoad()  operasi yang perlu  commit()  ejbStore() o Bean-managed transaction ilegal, harus declarative transaction o Bean-managed transaction bisa digunakan pada message-driven bean

10 Container-Managed Transaction  Atribut untuk mengontrol bean  Atribut: Required, RequiredNew, Supports, Mandatory, NotSupported, Never Transaction & Message-Driven Bean  Container-Managed Transaction Dapat rollback  Bean-Managed Transaction Mulai dan selesai setelah dapat message  Tidak mendukung transaction Mengetahui message selang beberapa waktu, yang tidak ada jaminannya

11 Programmatic Transaction sangat rumit, menggunakan JTA  Corba’s Object Transaction Service (OTS) Menspesifikasi transaksi yang berjalan di balik layar, API-nya terdiri dari JTS & JTA  Java Transaction Service (JTS) Pada system-level vendor, tidak ditangani oleh programmer  Java Transaction API (JTA) Terdiri atas 2 set interface,yaitu untuk resource manager & kontrol transaksi secara programmatic

12 Programmatic Transaction( cont. ) o javax.transaction.UserTransaction method: begin(), commit(), getStatus(), rollback(), setRollbackOnly(), setTransactionTimeout() o javax.transaction.Status constant: active, noTransaction, markedRollback, preparing, prepared, committing, committed, rollingBack, rolledBack, unknown  Doomed Transaction - memaksa transaksi berhenti bila ada kesalahan - Abort menggunakan: rollback(), setRollbackOnly() - Mendeteksi doomed transaction: getRollbackOnly(), getStatus()

13 Transactional Isolation 4 level Transactional Isolation dalam EJB:  Read Uncommitted Mode Tidak menjamin isolasi, highest performance  Read Committed Mode Solusi Dirty Read Problem  Repeatable Read Mode Solusi Dirty Read dan Unrepeatable Read Problem  Serializable Solusi Dirty Read, Unrepeatable Read, dan the Phantom Problem

14 Concurrency Control  Pessimistic Concurrency Control - EJB lock data selama transaksi - Tidak ada yang dapat meng-update data hingga transaksi selesai  Optimistic Concurrency Control - EJB mendeteksi adanya perubahan data antara proses read – write - Jika ada, transaksi roll-back

15 Distributed Transaction Durability and the Two-phase Commit Protocol  Phase One - Mengirim before commit message ke setiap resource. - Untuk mencegah catastrophic failures, resource update ditulis terlebih dahulu ke suatu log - Bila terjadi database crash, kita dapat me-reapply setiap resource update dengan melihat log  Phase Two Setiap resource manager melakukan data update sebenarnya.

16 Distributed Transaction ( cont. ) Transactional Communication Protocol and Transaction Context TTransactional Communication Mekanisme komunikasi standar dalam transaksi distributed two-phase commit TTransaction Context Object yang berisi informasi mengenai current transactional state suatu sistem SSpesifikasi EJB tidak mendukung distributed two - phase commit transaction

17 Agenda II. BMP & CMP Relationships  Perbedaan antara CMP dan BMP  Kardinalitas  One-to-many (1:N) Relationship  Many-to-many (M:N) Relationship  Implementasi M:N Relationship  Aggressive Loading & Lazy Loading  OrderBean.java  Aggregation vs Composition & Cascading Delete  EJB-QL  Recursive Relationships, Circular Relationships, and Referential Integrity

18 Perbedaan antara CMP dan BMP  BMP me-manage relasinya di dalam bean itu sendiri  CMP - Bagaimana relasi bekerja  dideklarasi- kan dalam deployment descriptor - Kemudian kode-kode relasi yang dibutuhkan di-generate oleh container

19 Kardinalitas  One-to-one (1:1) Relationship  One-to-many (1:N) Relationship  Many-to-many (M:N) Relationship

20 One-to-one (1:1) Relationship orderPK OrderName SoftwareOrder ShipmentForeignPK ShipmentPK City Austin23423 ZipCode

21 One-to-one (1:1) Relationship Public class OrderBean implements EntityBean { private String orderPK; private String orderName; private Shipment shipment; // EJB local object stub public Shipment getShipment() { return shipment; } public void setShipment (Shipment s) { this.shipment = s; }... public void ejbLoad() {... } public void ejbStore() {... }} BMP

22 One-to-one (1:1) Relationship Public abstract class OrderBean implements EntityBean{ // no fields public abstract Shipment getShipment (); public abstract void setShipment (Shipment s);... public void ejbLoad() {} //empty public void ejbStore() {} //empty } CMP

23 One-to-many (1:N) Relationship companyPK Middleware company Name company Sex M M Name Ed Floyd employeePK

24 One-to-many (1:N) Relationship private Vector employees; // EJB object stubs public Collection getEmployees() { return employees; } public void setEmployees (Collection e) { this.employees = (Vector) e; }... public void ejbLoad() {... } public void ejbStore() {... } BMP

25 One-to-many (1:N) Relationship public abstract class CompanyBean implements EntityBean { // no fields public abstract Collection getEmployees() ; public abstract void setEmployees(Collection employees) ;... public void ejbLoad() {} // Empty public void ejbStore() {} // Empty } CMP

26 Many-to-many (M:N) Relationship  Contoh: students:courses, people:websites  Direpresentasikan sebagai suatu association table  Association table berisi foreign key ke dua tabel yang lain Student Table Association Table Course Table StudentNoStudentName 10101Joe EnrollmentN o StudentNoCourseNo CourseNo CourseName E-commerce

27 Implementasi M:N Relationship  Pilihan 1 : Fake the M:N relationship by introducing a third entity bean  Membuat entity bean baru  Menggunakan intermediary yang mempunyai dua 1:N relationship  Memperkecil M:N relationship menjadi dua1:N relationship

28 Implementasi M:N Relationship ( cont. )  Pilihan 2 : Model the M:N relationship as a true M:N relationship  Tidak perlu membuat entity bean baru  Setiap entity bean merepresentasikan setengah relationship dan berisi Collection dari entity bean yang lain.

29 Implementasi M:N Relationship ( cont. ) Pendekatan secara fake lebih dipilih karena : 1. Membuat entity bean bersih. Semakin sedikit relationship code yang dimasukkan ke dalam entity bean, maka semakin reusable entity bean untuk dipakai dalam berbagai kondisi. 2.Kemiripan antara entity bean dan database sehingga proses mapping lebih mudah dilakukan.

30 Directionality  Menerangkan arah untuk menavigasikan suatu relationship  Berlaku untuk semua macam kardinalitas (1:1, 1:N, M:N) 1. Bidirectional ( Dua arah ) Bisa ke entity B dari entity A dan juga ke entity A dari entity B Entity A Entity B

31 Directionality ( cont. ) 2. Unidirectional ( Satu arah ) Bisa ke entity B dari entity A, tapi tidak ke entity A dari entity B ( atau ke entity A dari entity B, tapi tidak sebaliknya ) or Entity A Entity B Entity A

32 Aggressive Loading & Lazy Loading Aggressive Loading Saat me-load bean, maka semua yang mempu- nyai relationship itu juga di-load Lazy Loading Hanya me-load yang berhubungan dengan bean yang akan diakses

33 OrderBean.java

34 Aggregation vs Composition & Cascading Delete  Aggregation contoh: murid yang mengikuti kursus  Composition contoh: antrian tersusun dari sesuatu yang mengantri  Cascading Delete - Aggregation tidak menyebabkan cascading delete - Compositon menyebabkan cascading delete

35 EJB-QL Perbedaan antara EJB-QL dan SQL: memungkinkannya memakai dot notation untuk relationship

36 Recursive Relationships, Circular Relationships, and Referential Integrity RRecursive Relationships Relationship dengan bean pada kelas yang sama CCircular Relationships Melibatkan beberapa bean RReferential Integrity Jaminan bahwa reference dari satu kesatuan ke kesatuan yang lainnya valid

37 QUESTIONS ?