Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehPanji Mahendra Telah diubah "10 tahun yang lalu
1
ORM Framework dan JEE Pattern dalam Aplikasi Enterprise Resource Planning
Dian Indah Savitri G Pembimbing 1 : wisnu ananta kusuma, S.t.,m.t. Pembimbing 2 : toto haryanto,s.kom.
2
pendahuluan
3
Latar Belakang ERP aplikasi enterprise yang menyatukan aktivitas bisnis perusahaan. Aplikasi ERP menghubungkan transaksi bisnis to bisnis, bisnis to customer, perhitungan financial, dan human resource.(Parr 2000) B2C B2B
4
Arsitektur ERP yang diakomodari oleh Java EE (MVC)
View Controller Model Presentation Layer Graphical User Interface Browser utk data entry Akses thd fungsi sistem Application Layer Business rules, logika, fungsi program terhadap data yang diterima/ ditransfer dari/ke server database. Database Layer Manajemen data transaksi termasuk didalamnya metadata. Rashid, et. al 2002
5
Mismacth paradigm Granularity Subtypes Identity Assosiation
Pengembangan aplikasi enterprise berbasis objek Basisdata Realsional Obejct Relational Mapping Granularity Subtypes Identity Assosiation Navigasi data Bauer dan King 2007
6
Tujuan penelitian Menganalisis ketidaksesuaian yang muncul dari rancangan sistem Retail ERP yang dikembangkan Ernita (2008) dan basis data relasional yang digunakan. Menerapkan konsep ORM untuk mengatasi masalah ketidaksesuaian tersebut. Memanfaatkan konsep design pattern dalam akses basis data oleh lapisan aplikasi.
7
Manfaat penelitian pemeliharaan dan pengelolaan manajemen basis data pada pengembangan sistem ERP selanjutnya. menghemat koneksi pada server basis data
8
Tinjauan pustaka
9
Enterprise Resource Planning
suatu aplikasi terintegrasi yang berkonsentrasi untuk menyatukan aktivitas proses transaksi enterprise. Beberapa inti modul ERP yang ditemukan pada sistem ERP yaitu (Rashid et. al 2002): Manajemen akuntasi, manajemen keuangan, manajemen manufacturing, manajemen produksi, manajemen transportasi, manajemen penjualan dan distribusi, manajemen sumberdaya manusia, Supply Chain Management (SCM), Customer Relationship Management (CRM), dan E-business Rashid et. al 2002
10
Object Persistence objek yang dihasilkan dari suatu sistem yang dapat disimpan dalam waktu lama bahkan bersifat permanen. disimpan dalam bentuk basis data relasional, file system dalam harddisk, file XML, Web Service, ODBMS (Object Data Base Management System), dan LDAP. Peak dan Heudecker 2006
11
Object Relational Mismatch
ketidaksesuaian antara basis data yang menggunakan konsep relasional dengan pengembangan aplikasi yang menggunakan konsep berorientasi objek. Ketidaksesuaian tersebut meliputi aspek: Granularity Subtypes Identity Asosiasi Navigasi data Bauer dan King 2007
12
Object Relational Mapping
sebuah framework yang mengatasi perbedaan sistem basis data yang bersifat relational dengan paradigma pengembangan aplikasi yang berorientasi objek. menjembatani dialek SQL yang digunakan. Bauer dan King 2007
13
Design Pattern unsur-unsur rancangan yang seringkali muncul pada berbagai jenis sistem. merupakan katalog permasalahan beserta solusi yang sudah teruji dalam perancangan sistem. DAO pattern : pola yang mengenkapsulasi data akses dan manipulasi ke dalam lapisan yang berbeda. Service pattern (facade) : pola yang mengintegrasikan DAO-DAO pattern ke dalam lapisan baru yang disebut Service. Alur et al. 2003
14
Design pattern (cont..) Singleton : adalah pola yang hanya mempunyai satu instansiasi dari suatu class yang dipakai pada sistem tertentu. Proxy : adalah pola yang merancang suatu objek mewakili kontrol atau akses objek lain bertindak seolah-oleh objek tersebut melakukannya. Factory method : pola untuk mengenkapsulasi suatu objek dan diinstasiasi satu kali untuk digunakan berulang-ulang.
15
Declarative transaction
suatu teknik untuk medeklarasikan semua transaksi dalam suatu file konfigurasi untuk menangani semua proses transaksi tanpa harus membuat kode-kode program untuk menangani transaksi secara eksplisit. mengatur rollback (method dan exception) apabila terjadi kegagalan transaksi Walls dan Beidenbach 2005
16
Inversion of Control Disebut juga Dependency Injection.
adalah suatu konsep yang diterapkan oleh suatu objek untuk mendapatkan objek lain yang dibutuhkan tanpa harus mencari dan memasukan objek tersebut secara eksplisit. Walls dan Beidenbach 2003
17
Metode penelitian
18
Analisis kebutuhan ORM
Metode Penelitian Studi literatur Analisis kebutuhan ORM Implementasi ORM evaluasi
19
HASIL DAN PEMBAHASAN
20
Deskripsi umum Modul pembelian Purchase Requisition (PR)
Request for Quotation (RFQ) Purchase Order (PO) Demand Order (DO) Goods Receive Manajemen Inventory Modul akuntansi Jurnal buku besar (General Ledger) Invoices dan payment Account Payable Account Payment Managemen COA (Code of Account) Modul Penjualan Katalog barang Add to Cart Pelanggan Pengantaran
21
Analisis mismatch Granularity
Basis data relasional tidak mengenal user-defined-data-type RFQ mempunyai beberapa Price akan dimapping ke satu tabel. RFQDetail Price
22
Analisis mismatch (cont..)
Identitas Basis data primary key Java lokasi memory (==) Secara lojik sama (equals()) Navigasi data perbedaan mekanisme mengakses data pada objek dan tabel. Basis data menggunkan SQL (query join) Java method getter
23
Analisis mismatch (cont..)
Asosiasi One-to-one One-to-many Many-to-many
24
Membuat DTO dan menghilangkan mismach
Membuat konfigurasi basis data dan hibernate public class Product{ private int id; private String prodName; private Double unitPrice; //getter and setter method} Prod_ID Prod_name Unit price 1 pupuk 100 2 bibit 200
25
Penanganan mismatch Granularitas
RFQ mempunyai beberapa Price akan dimapping ke satu tabel. Ada tipe data Price pada class RFQ. Entitas price menentukan entitas RFQ. Disebut juga parent child Cascade = {CascadeType.PERSIST, CascadeType.REMOVE}, fetch = FetchType.EAGER)
26
Penanganan mismatch (cont..)
Identitas Menambah pada setiap entitas. @Entity @Table(name = "IN_ITEM") public class InventoryItem{ @Id @GeneratedValue (strategy=GenerationType .AUTO) @Id merepresentasikan suatu primary key, dan secara lojik berbeda dengan id entitas lainnya.
27
Penanganan mismach (cont..)
Asosiasi One-to-one Join column berada pada entitas yang total participant. @OneToOne @JoinColumn (name = " id_ pu_ order") apabila asosiasinya bidirectional @OneToOne (mappedBy="order") private PurchaseDemand purDemand;
28
Penanganan mismach (cont..)
Asosiasi (cont..) One-to-many Join column berada pada entitas dengan kardinalitas many. @ManyToOne @JoinColumn ( name = " id_pu_requisition") private Requisition requisition; Apabila asosiasinya bidirectional @OneToMany (mappedBy = "requisition") private List <RequisitionDetail> requisitionDetail = new ArrayList <RequisitionDetail>();
29
Penanganan mismatch Asosiasi (cont..) Many-to-many
Join tabel berada pada entitas total participant Menghasilkan 1 tabel hasil asosiasi @ManyToMany @JoinTable(name= "ad_modul_group", "id_ad_modul")}, private List <AdminGroup> adminGroups=new ArrayList <Admin Group>(); Apabila mappingnya bidirectional @ManyToMany(mappedBy="adminGroups") private List <AdminModul> admin Moduls = new ArrayList<AdminModul>();
30
Penanganan mismatch Navigasi data
Bagaimana cara mengakses objek dari objek lain. Arah navigasi Unidirectional Bidirectional invProdBrand.getInItem.getName(); Pada basis data tidak mengenal arah navigasi, akses tabel dari tabel lain menggunakan join Select name from IN_ITEM i left outer join IN_PROD_BRAND pb on i.id=pb.id where i.id=123
31
Fungsi akses data menerapkan DAO, singleton, factory method patttern
DAO pattern Akses dan manipulasi data Berisi fungsi-fungsi (saveOrUpdate(insert dan update), delete, getAll (select *), getById (select * from CLASS where id = ?), dll ) Singleton pattern Objek dataSource Berisi properti koneksi basis data. Objek sessionFactory Membuat objek Session yang bertanggungjawab selama transaksi (begin, commit, rollback).
32
Fungsi akses data (cont..)
Objek dataSource dan sessionFactory dibuat dan dimasukan ke dalam objek DAO. Menggunkan teknik Dependency Injection atau Inversion of Control. Oleh Spring Framework
33
Penyederhanaan fungsi akses data menggunakan façade dan proxy pattern
50 objek DTO, masing-masing mempunyai objek DAO untuk akses data (save, update, delete, get, dll) Façade pattern menyederhanakan DAO ke dalam lapisan Service sesuai dengan submodulnya. Menghasilkan 7 interface Service. Service penguhubung dengan lapisan aplikasi
34
Penyederhanaan fungsi akses data (cont..)
Service dipanggil oleh lapisan aplikasi. Proxy pattern teknik declatarive transaction. Service tidak mengaskes daa secara langsung Memanggil “moduleXXXService” pada hibernate.ctx.xml Membuat class proxy yang berisi fungsi-fungsi untuk transaksi (begin, comit, rollback). Fungsi-fungsi tersebut dimasukan ke dalam obje Session melalui method getHibernateTemplate(). Tidak perlu menuliskan transaksi secara programatik.
35
Declarative transaction
<bean id="moduleInventoryService" class="org.spring framework.transaction.interceptor. TransactionProxyFactoryBean"> <property name="target"ref="inventoryService"/> <property name="transactionManager ref"hibernateTransactionManager"/> <property name="transaction Attributes"> <props> <prop key="*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="save*"> PROPAGATION_REQUIRED </prop> <prop key="delete*"> PROPAGATION_REQUIRED</prop> </props> </property> </bean>
36
SessionFactory sessionFactory = new AnnotationConfiguration()
SessionFactory sessionFactory = new AnnotationConfiguration().configure() .buildSessionFactory(); Cart cart = new Cart(); cart.setSatus ("active"); cart.setAmount(25000) Session session = sessionFactory.openSession(); Transaction tx = session.BeginTransaction(); session.save(cart); tx.commit(); session.close();
37
public class OrderCartDaoHibernate extends HibernateDaoSupport{ public void save(Cart cart) { getHibernateTemplate().saveOr Update(cart); }
38
Pembuatan skema basis data
Dilakukan oleh Properti <prop key = "hibernate. hbm2ddl.auto"> create </prop>. pada saat sessionFactory dijalankan akan membuat semua tabel dan pada saat ditutup tabel yang dihasilkan tidak akan dihapus. Properti hiberntae.show_sql akan menampilkan SQL yang digunakan saat query menggunakan HQL
39
File properti basis data
jdbc.username=root jdbc.password=admin jdbc.url=jdbc:mysql://localhost: 3306/erp jdbc.driver=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect hibernate.show_sql=true hibernate.hbm2ddl.auto=create hibernate.format_sql=true
40
Penyatuan lapisan persistensi dan lapisan aplikasi
JSF controller Memanggil Service Dimasukan pada file faces-config.xml.
41
evaluasi Menganalis hasil implementasi.
ORM tidak bergantung pada DBMS. Properti koneksi berada pada satu tempat. Mendukung fitur lazy-loading. Mengamati data yang sering dan jarang digunakan.
42
Kesimpulan dan saran
43
kesimpulan Mismatch yang muncul pada pengembangan Retail ERP terdiri dari 4 aspek: Granularity, Identity, Asosiasi, dan Navigasi data. ORM terbukti menghilangkan mismatch antara konsep pemrograman berorientasi objek dan basis data relasional. Design pattern membuat kode program menjadi rapi dan terstruktur. Pemanfaatan design pattern pada teknik decalarative transaction dan Inversion of Control memudahkan proses akses dan manipulasi data.
44
saran Melakukan unit testing dengan Junit dan DBUnit.
Penerapan ORM pada WebService. Penerapan ORM pada framework yang berbeda (TopLink, OpenJPA, iBatis) atau pada platfrom yang berbeda (.Net) kemudian dibandingkan hasilnya.
45
Daftar pustaka
46
Daftar pustaka Alur D, Crupi J, Malks D Core J2EE™ Patterns: Best Practices and Design Strategies, 2nd Edition. United States: Addison-Wesley. Bauer C, King G Java Persistence with Hibernate. United States : Manning. Ernita, H Pengembangan Enterprise Resource Planning Untuk Perusahaan Ritel. [Skripsi]. Bogor: Departemen Ilmu Komputer, Institut Pertanian Bogor. Gamma E, Helm R, Johnson R, Vlissides J Design Patterns: Elements of Reusable Object-Oriented Software. United States: Addison-Wesley.
47
Parr A. N. 2000. A Taxonomi of ERP Implementation Approach
Parr A. N A Taxonomi of ERP Implementation Approach. School of Business System, Monash University. Peak P, Heudecker N Hibernate Quickly. United States: Manning. Rashid MA, et.al The Evolution of ERP System: A Historical Perspective. USA: IRM Press Walls C, Breidenbach R Spring in Action. United States: Manning.
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.