Kelompok Advanced Enterprise Java Bean I Chapter 10 dan 11

Slides:



Advertisements
Presentasi serupa
Penerapan Locking pada DBMS berbasis Web
Advertisements

Manajemen Transaksi & Kontrol Konkurensi
Pendahuluan  Entity Beans : Bean yang berinteraksi dengan data dan penyimpanannya 2 cara memanage persistence : - Bean-Managed Persistence -> punya banyak.
Database Android Dwi Muktianto
Workshop SCS: Java Game Programming
Presentasi Keamanan Basis Data “Transaction Management”
Pemrograman Sistem Basis Data
Metode Perancangan Program
Manajemen Basis Data menggunakan SQL Server
OBJECT ORIENTED PROGRAMMING
Pemrograman Berbasis Obyek
Pemrograman Berorientasi Obyek Oleh Tita Karlita
Konsep Database. S D L C Strategy and Analysis Design Build n Document Transition Production.
CONCURENCY CONTROL DISTRIBUTED DATABASE. M AIN TOPICS Transaction managements Centralized database Distributed database Consistency control Centralized.
Perancangan Database Pertemuan 07 s.d 08
Database Management System
Presented By : Group 2. A solution of an equation in two variables of the form. Ax + By = C and Ax + By + C = 0 A and B are not both zero, is an ordered.
Arsitektur Data Warehouse
PRAKTIKUM 3 PEMROGRAMAN BASIS DATA. Menghapus baris  Deleting rows- DELETE FROM Use the DELELE FROM command to delete row(s) from a table, with the following.
PERTEMUAN 8 Teknik recovery.
Manajemen Transaksi (1)
Advanced Enterprise Java Beans Concept I oleh: Ade Melani Lusiana Darmawan Suryamita Harindrari Pamela Indrajati
Advanced Enterprise Java Beans Concept I oleh: Ade Melani Lusiana Darmawan Suryamita Harindrari Pamela Indrajati
BAB 1 Pengenalan Database dan DBMS
METHOD, ARRAY DAN STRING
Collabnet Overview v Informatika BAB XIII Menangani Transaksi.
PEMBUATAN MODEL DATA dan DESAIN DATABASE
Review. Fakultas Ilmu Komputer UI 2 Database Introduction Database vs File Processing Database Actors DBA, Database Designers, Database users, Application.
IKI 20100: Struktur Data & Algoritma Ruli Manurung & Ade Azurat (acknowledgments: Denny, Suryana Setiawan) 1 Fasilkom UI Ruli Manurung & Ade AzuratFasilkom.
Masalah Transportasi II (Transportation Problem II)
PERTEMUAN KE-6 UNIFIED MODELLING LANGUAGE (UML) (Part 2)
Bayu Priyambadha, S.Kom.  Classes, which are the "blueprints" for an object and are the actual code that defines the properties and methods.  Objects,
Binary Search Tree. Sebuah node di Binary Search Tree memiliki path yang unik dari root menurut aturan ordering – Sebuah Node, mempunyai subtree kiri.
Samples: Smart Goals ©2014 Colin G Smith
Enkapsulasi.
CARA KERJA WEB Rofilde Hasudungan.
High Level User Interface
FONDASI PEMROGRAMAN & STRUKTUR DATA #8
Backup & Recovery.
Mobile Computing 7 Middleware.
Service level management
Manajemen Basis Data menggunakan SQL Server
Intro to OOP Yesi Novia, S.Kom.
Model Berorinetasi Data
Intro to OOP Yesi Novia, S.Kom.
SISTEM DATABASE.
Model Konvensional.
Association, Composition dan Inheritance
Pertemuan <<10>> Transaksi Manajemen
Pemrograman Berorientasi Objek
ANALYSIS.
JAva Threads.
PIBJ (PEMROGRAMAN INTERNET BERBASIS JAVA)
Kk ilo Associative entity.
UML- UNIFIED MODELING LANGUAGE
Pertemuan 4 CLASS DIAGRAM.
Model Berorinetasi Data
Pemulihan Basis Data D. Sinaga, M.Kom.
Customer Relationship Management
How Can I Be A Driver of The Month as I Am Working for Uber?
Simultaneous Linear Equations
Konsep Database.
Algoritma & Pemrograman 1 Achmad Fitro The Power of PowerPoint – thepopp.com Chapter 3.
Jaringan Komputer.
HughesNet was founded in 1971 and it is headquartered in Germantown, Maryland. It is a provider of satellite-based communications services. Hughesnet.
In this article, you can learn about how to synchronize AOL Mail with third-party applications like Gmail, Outlook, and Window Live Mail, Thunderbird.
Pemrograman berorientasi objek
Website: Website Technologies.
Draw a picture that shows where the knife, fork, spoon, and napkin are placed in a table setting.
Wednesday/ September,  There are lots of problems with trade ◦ There may be some ways that some governments can make things better by intervening.
Transcript presentasi:

Kelompok Advanced Enterprise Java Bean I Chapter 10 dan 11 Anthony Steven Anwar Chandra Edwin Richardo Hendrik GandaWijaya Johanes Yanuar Widjaja

Masalah Suatu program yang menangani banyak operasi yang terpisah namun saling terkait sering kali menghadapi banyak kendala. Kendala – kendala yang muncul itu tidak jarang susah untuk diatasi jika makanisme penanganan kesalahan dilakukan hanya secara umum

Solusi T R A N S A C T I O N Transaction adalah seri operasi yang dijalankan sebagai satu kesatuan yang besar namun memiliki atomic operation.Dengan transaction, konsep all-or-nothing dapat terjamin.

Jaminan Transaction Atomicity. Consistency. Isolation. Durability.

Jenis Transaction (1) Flat Transaction. Flat transaction adalah suatu model transaction yang paling sederhana. Flat transaction adalah suatu adalah suatu seri operasi yang dibentuk secara unti atomik yang merupakan suatu untuk kerja sendiri.

Jenis Transaction (2) Nasted Transaction. Nasted Transaction adalah suatu konsep transaction yang memperbolehkan pemrogram untuk menaruh/menambahkan suatu unit atomic ke unit atomic lainnya.

Contained-managed Transactions Transaction Attributes The Different Between Transaction and Messages driven beans

EJB Transactions Attribute Values Required RequiresNew Supports Mandatory Not Supported Never

Programmatic Transactions in EJB CORBA’s Object Transactions Services (OTS) Java Transaction Service (JTS) Java Transaction API (JTA)

Transactional Isolation Isolation merupakan suatu cara untuk menjamin agar concurrent user ‘terisolasi’ walaupun mereka mengakses database yang sama. Caranya adalah dengan ‘locking’. Maksudnya adalah akses ke suatu database hanya bisa dilakukan oleh satu transaksi saja. Transaksi berikutnya harus menunggu setelah lock dilepas. EXAMPLE?? Isolation tersebut dapat kita atur sesuai kebutuhan kita. Inilah yang dinamakan concurrency control.

Jenis Transactional Isolation READ UNCOMMITTED mode tidak memberikan jaminan isolasi apapun(paling cepat) READ COMMITTED mode Menyelesaikan dirty read problem REPEATABLE READ mode Menyelesaikan masalah sebelumnya sekaligus unrepeatable read problem SERIALIZABLE Menyelesaikan masalah sebelumnya sekaligus phantom problem EXAMPLE??

Beberapa istilah Dirty read problem terjadi apabila aplikasi kita membaca data dari database yang belum dicommit. Unrepeatable read problem terjadi apabila ketika suatu aplikasi read data di database, namun sewaktu ingin reread data tersebut, data tersebut telah berubah. Phantom problem Kumpulan data baru yang tiba-tiba muncul di database di antara 2 operasi read database. EXAMPLE??

Tabel perbandingan transactional isolation Isolation level Dirty reads Unrepeatable reads Phantom read Read Uncommitted Yes Read Committed No Repeatable read Serializable

Jenis Concurrency Control Pessimistic concurrency control Suatu algoritma di mana kita berasumsi bahwa ketika kita menggunakan lock dalam transaksi maka tidak akan ada orang lain yang mengakses data tersebut sebelum locknya dilepas Optimistic concurrency control Kita berasumsi bahwa everything is OK sehingga tidak diperlukan lock. Keuntungan VS Kerugian???

Distributed Transaction Distributed transaction merupakan transaksi yang dilakukan oleh berbagai partisipan transaksi. Flat transaction yang paling dasar bisa dilakukan dengan mengakaitkan 1 server aplikasi dengan 1 database. Distributed flat transaction memiliki sifat yang sama dengan flat transaction yaitu 1 komponen dalam 1 transaksi membatalkan transaksi, maka semua transaksi batal. Namun, perbedaannya adalah distributed flat transaction memungkinkan berbagai partisipan transaksi untuk bekerja sama dalam 1 transaksi.

Durability and two-phase commit protocol Durability menjamin semua resource updates yang dicommit dibuat permanen. Salah satu cara menjamin durability adalah dengan mendaftarkan semua operasi di database sebelum dilakukan, sehingga apabila terjadi crash, data bisa direcover. Untuk melakukannya transaksi melewati 2 fase: 1. Mengirim before commit message ke semua resources yang terlibat dalam transaksi. 2. Semua resources manager mengupdate data yang sebenarnya.(hanya terjadi apabila no1 dilakukan tanpa ada abort). Inilah yang dinamakan two phase commit protocol(2PC).

Transactional communication Merupakan mekanisme komunikasi yang harus disetujui transaction managers di dalam menjalankan 2PC. Transaction context merupakan object yang menampung informasi tentang system’s current transactional state. Designing conversation conversation Method afterBegin() Method beforeCompletion() Method afterCompletion(boolean) Kapan method tersebut dipakai???

Cardinality One-to-One relationship One-to-Many relationship Many-to-Many relationship

One-to-one relationship Definisi Contoh-contoh orderPK OrderName ShipmentforeignPK 12345 Software order 10101 ShipmentPK City ZipCode 10101 Austin 23423

Implementasi berdasarkan BMP EJB load method EJB store method Implementasi berdasarkan CMP EJB load Ejb store

1:Many relationship Implementasi BMP EjbLoad and EjbStore companyPK Name 12345 Middleware company employeePK Name Sex Company 20202 ED M 12345 20203 Floyd Implementasi BMP EjbLoad and EjbStore Implementasi CMP

Many-to-many relationship Fake M:N relationship True M:N relationship StudentPK StudentName 10101 JoeStudent EnrollmentPK StudentPK CoursePK 12345 10101 20202 CoursePK CourseName 20202 EJB

Implementasi dengan BMP Implementasi dengan CMP Directionality Implementasi dengan BMP Implementasi dengan CMP

Implementasi dengan BMP // implementasi bidirectional public class BeanPermintaan implements EntityBean{ private String permintaanPK; private String namaPermintaan; /* perhatikan kode dibawah ini, object penawaran yang harus dikirim/diload */ private Penawaran penawaran; public Penawaran getPenawaran(){return penawaran;} public void setPenawaran(Penawaran p){this.penawaran = p;} ………… } public class BeanPenawaran implements EntiyBean{ private String penawaranPK; private String namaPenawaran; /* perhatikan kode dibawah ini, object yang harus dikirim/diload*/ private Permintaan permintaan; public Permintaan getPermintaan(){return permintaan;} public void setPermintaan(Permintaan p){this.permintaan = p;}

Implementasi dengan BMP // implementasi bidirectional public class BeanPermintaan implements EntityBean{ private String permintaanPK; private String namaPermintaan; /* perhatikan kode dibawah ini, object penawaran yang harus dikirim/diload */ private Penawaran penawaran; public Penawaran getPenawaran(){return penawaran;} public void setPenawaran(Penawaran p){this.penawaran = p;} ………… } public class BeanPenawaran implements EntiyBean{ private String penawaranPK; private String namaPenawaran; /* perhatikan kode dibawah ini, object yang harus dikirim/diload*/ private Permintaan permintaan; public Permintaan getPermintaan(){return permintaan;} public void setPermintaan(Permintaan p){this.permintaan = p;}

Implementasi dengan BMP(2) // Implementasi dengan unidirectional public class BeanPermintaan implements EntiyBean{ private String permintaanPK; private String namaPermintaan; // perhatikan kode dibawah ini, object yang harus dikirim/diload private Penawaran penawaran; public Penawaran getPenawaran(){return penawaran;} public void setPenawaran(Penawaran p){this.penawaran = p;} ………… } public class BeanPenawaran implements EntiyBean{ private String penawaranPK; private String namaPenawaran; // tidak ada penanda, method set/get dari permintaan disini ???

Implementasi dengan CMP // implementasi bidirectional public abstract class BeanPermintaan implements EntityBean{ // no field public abstract Penawaran getPenawaran(); public abstract void setPenawaran(Penawaran p); ……… public void ejbLoad(){}; // kosong public void ejbStore(){}; // kosong } public abstract class BeanPenawaran implements EntityBean{ public abstract Permintaan getPermintaan(); public abstract void setPermintaan (Permintaan p);

Two Kinds Of Entity Beans Loading : Aggressive Loading Load all the other entity beans that has a relationship with the one that is being loaded. Lazy Loading Load the only related beans when we need to access those beans

Coding Example : (Lazy Loading) public class OrderBean implements EntityBean{ private String orderPK; private String orderName; private String shipmentFK; // Foreign Key to Shipment private Shipment shipment; // EJB Local Object Stub public void ejbLoad(){ //1. SQL SELECT order, loading the shipment foreign key //2. Set shipmentFK field to the loaded key. }

public shipment getShipment(){ // 1. JDNI lookup of Shipment Beans // 2. Call ShipmentHome.findPrimaryKey(shipmentFK) return shipment; } // do something

Two Kinds of Relationships Within Two Entity Beans : Aggregation a Uses Relationship. e.g: Student “Uses” courses, if the courses are deleted…. the student didn’t dead also! Composition a is-assembled-of Relationship. e.g: Orders are assembled of line items. Deleting an order deletes all line items.

Relationships and EJB-QL When setting up CMP relationships, we can also set up special queries using the EJB Query Language (EJB-QL) In this EJB-QL, we returning all customers that have placed orders. We are navigating from the order entity bean to the customer entity bean easily using a dot notation. Therefore, a bean provider don’t need to know about table or columns! They merely need to understand the relationships between the entity beans they’ve authored.

Recursive Relationship Recursive Relationship is one in which an entity bean instance has a relationship with another instance of the same entity bean class.

Circular Relationship Circular Relationship is similar to recursive relationship except that it involves several entity beans (not just a single entity).

Referential Integrity Referential Integrity is the assurance that a reference from one entity to another entity is valid. e.g : Let’s say a company, department, and position each have a relationships with an employee. If the employee removed, all references to it must also be removed, or your system must not allow the removal

Relationships, Referential Integrity, and Client Code There are many fascinating relationships that also involves collection. In a code that the container is responsible for providing an implementation of the Collection interface, a smart collection that understands how to preserve referential integrity behind the scenes is needed.