26 Oktober 2010

SOA & Code Igniter

SOA & Code Igniter

Struts

Struts adalah framework yang mempromosikan penggunaan arsitektur Model-View-Controller untuk merancang aplikasi skala besar. Kerangka kerja ini mencakup seperangkat libaries tag kustom dan terkait Jawa kelas, bersama dengan berbagai kelas utilitas. Aspek yang paling kuat dari kerangka Struts adalah dukungan untuk menciptakan dan pemrosesan form berbasis web.

Pattern

Pattern adalah sebuah istilah dalam rekayasa perangkat lunak yang mengacu kepada solusi umum yang dapat digunakan secara berulang kali untuk menyelesaikan masalah-masalah umum yang ditemukan dalam desain perangkat lunak. Sebuah pola desain tidak berbentuk solusi akhir yang dapat langsung diterjemahkan menjadi kode program. Pola desain merupakan penjelasan atau templat yang menunjukkan bagaimana cara menyelesaikan sebuah masalah yang kemudian dapat digunakan di berbagai situasi yang berbeda-beda. Pola desain untuk object-oriented biasanya menunjukkan relasi dan interaksi antar kelas dan objek, tanpa menjelaskan kelas dan objek akhir yang terlibat dalam sebuah aplikasi. Algoritma biasanya tidak disebut sebagai pola desain, karena algoritma menjadi solusi masalah komputasi bukan masalah desain.

Model View Controller

Model View Controller (MVC) MVC merupakan suatu konsep yang cukup populer dalam pembangunan aplikasi web, MVC memisahkan pengembangan aplikasi berdasarkan komponen utama yang membangun sebuah aplikasi seperti manipulasi data, user interface, dan bagian yang menjadi kontrol aplikasi. Terdapat 3 jenis komponen yang membangun suatu MVC pattern dalam suatu aplikasi yaitu :

  1. Model : merepresentasikan data yang digunakan oleh aplikasi, dapat berhubungan dengan controller, tetapi tidak dapat berhubungan langsung dengan view.
  2. View : mengandung keseluruhan detail dari implementasi user interface. Disini, komponen grafis menyediakan representasi proses internal aplikasi dan menuntun alur interaksi user terhadap aplikasi. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.
  3. Controller : merupakan bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi

Framework

Framework adalah sekumpulan perintah/fungsi dasar yang dapat membantu dalam menyelesaikan proses-proses yang lebih kompleks

Pertama kelebihan dengan adanya framework akan lebih mempermudah memahami mekanisme kerja dari sebuah applikasi. Ini tentunya akan sangat membantu proses pengembangan sistem yang dilakukan secara team. Semua anggota di wajibkan untuk memahami dari pola kerja framework tersebut selebihnya anggota team hanya mempelajari proses bisnis yang di kehendaki oleh sistem untuk kemudian di tuangkan kedalam framework tersebut. Dalam artian setiap orang harus mempunyai metode yang sama dalam menyelesaikan applikasi tersebut.

Kedua dengan memakai framework akan menghemat waktu pengerjaan suatu applikasi, karena setiap anggota sudah memiliki sebuah acuan dalam menyelesaikan modul. Dalam hal ini misalnya semakin banyak library yang ada semakin mempercepat anggota untuk menemukan solusi karena tidak setiap anggota harus membuat Class atau fungsi untuk kasus yang relatif sama.

Berikutnya Team tidak akan di susahkan dengan adanya perputaran anggota dalam artian jika ada anggota yang tidak bisa melanjutkan lagi pekerjaannya anggota yang lain bisa meng-cover kekosongan tersebut. Bayangkan jika setiap modul yang dikembangkan mempunyai logika yang berbeda tentunya akan memakan waktu yang banyak untuk proses pemahan akan sistem tersebut.

Kesekian-kalinya dengan adanya framework akan menjaga integritas dari modul-modul yang dikembangkan. Tentunya hal ini juga tergantung dari metode yang dikembangkan sendiri. framework hanya membantu dan memungkinkan/mempermudah proses integrasi, tidak berarti dengan adanya framework sistem otomatis akan ter-integrasi. Dan masih ada kelebihan-kelebihan lain yang dimiliki oleh framework.

Ø Pemilihan Framework

Ada beberapa hal yang harus di pertimbangkan dalam memilih framework :

Pertama Documentasi dari framework itu sendiri. Documentasi sangat penting adanya mengingat pada umumnya tidak banyak orang/perusahaan yang membuat framework sendiri dalam membuat applikasi. Nah maka dari itu kita akan sangat tergantung dengan documentasi yang di sediakan oleh framework yang kita pilih.

Berikutnya ke sesuaian framework tersebut dengan applikasi apa yang hendak kita kembangkan. Mengambil filosofi “tidak perlu membunuh nyamuk dengan meriam”. artinya sebaiknya kita memilih framework dengan fasilitas yang pas dengan kebutuhan kita.

Berikutnya lagi perhatikan standar2 standart framework yang ada, misalkan apakah framework tersebut MVC, apakah framework tesebut mendukung versi sekian, apakah mendukung templating dll. Semakin banyak hal yang di support oleh framework tersebut semakin baik. Karena hal tersebut akan mempengaruhi kualitas dari software yang dikembangkan.

Berikutnya, adalah faktor kemudahan. Tentunya ini sangat tergantung dari sumberdaya yang ada. Standart kemudahan sangat sulit di ukur karena ini berhubungan dengan minat seseorang akan sesuatu. Namun melirik keatas berdasarkan documentasinya kita bisa mengira2 pola kerja framework tersebut.

Konsep Integrasi sistem

Konsep Integrasi sistem adalah yaitu suatu konsep sistem yang dapat saling berhubungan satu dengan yang lain dengan berbagai cara yang sesuai dengan keperluan. Hal ini sangat bermanfaat bila suatu data dalam file suatu sistem diperlukan juga oleh sistem yang lainnya atau output sustu sistem menjadi Input sistem lainnya.

Keuntungan dari integrasi sistem ini adalah membaiknya suatu arus informasi dalam sebuah organisasi. Suatu pelaporan biasanya memang memerlukan waktu, namun demikian akan semakin banyak informasi yang relevan dalam kegiatan manajerial yang dapat diperoleh bila diperlukan. Keuntungan ini merupakan alasan yang kuat untuk mengutamakan (mengunggulkan) sistem informsi terintegrasi karena tujuan utama dari sistem informasi adalah memberikan informasi yang benar pada saat yang tepat.

Suatu pelaporan biasanya memang memerlukan waktu, namun demikian akan semakin banyak informasi yang relevan dalam kegiatan manajerial yang dapat diperoleh bila diperlukan. Keuntungan ini merupakan alasan yang kuat untuk mengutamakan (mengunggulkan) sistem informsi terintegrasi karena tujuan utama dari sistem informasi adalah memberikan informasi yang benar pada saat yang tepat.


SOA

Service Oriented Architecture atau SOA memungkinkan departemen IT untuk membuat suatu transisi dari pendekatan aplikasi menuju pada suatu pendekatan proses bisnis.
SOA merupakan suatu arsitektur yang mendukung loosely coupled services untuk memungkinkan suatu bisnis yang fleksibel dalam pertukaran informasi dan penggunaan teknologi informasi. SOA terdiri dari kumpulan layanan bisnis yang mendukung suatu pengkonfigurasian kembali realisasi end-to-end bisnis proses yang fleksibel dan dinamis menggunakan deskripsi layanan berbasis interface.

SOE (Service Oriented Enterprise) Maturity Models Level

SOE Maturity Model merupakan suatu model dari “SOA yang lebih menyeluruh” dan fokus dalam membawa ROI (Return on Investment) untuk bisnis yang baik pada organisasi IT. Berikut gambar SOE Maturity Model :













Level 1 :

SOE Foundation-initial mengatur indicator kunci performa, end-to-end bisnis proses dan mengatur infrastruktur SOA. Ini mengartikan bahwa SOE bukan hanya satu layer yang mendapatkan suatu dasar dari teknologi web service akan tetapi ada tambahan dua layer yaitu the enterprise performance layer, yang mengidentifikasikan sejumlah indikator kunci performa dan the business process management layer, yang mengidentifikasikan proses awal yang bergantung pada SOA/ESB layer untuk menjaga suatu kualitas yang tinggi, performa yang tinggi, dan reliable integration menggunakan layanan teknologi. Layer ini merupakan hasil dari pengaturan awal terhadap tiga layer SOE di atasnya.

Level 2 :

SOE Repetable projects-infra-focused. Pada level ini akan menentukan arsitektur SOA, pada ESB (Enterprise Service Bus), dan implementasi dari ESB. Level 2 ini memiliki penanganan yang baik pada identifikasi semua ketergantungan terhadap (a) user bisnis, khususnya stakeholders dan bisnis analis; (b) proses dan rule arsitek untuk mendesain dan implementasi dari policy, prosedur, dan end-to-end bisnis proses dan (c) infrastruktur arsitektur SOA untuk desain yang berorientasi pada layanan dan standarisasinya. Metodologi pada level 2 ini dapat dimulai dari pengukuran terhadap proses dan performa, dapat diperkirakan keuntungannya dan dapat mulai membawa dan mengulang ROI untuk didesain ulang yang berorientasi pada proses dan layanan. Jadi di sini akan mengatur optimalisasi proses end-to-end ROI, termasuk KPI pada level EPM, business rules dan proses pada level BPM dan mendasari level ESB/SOA.

Level 3 :

SOE-extended enterprise-focused. Perluasan komposisi dan integrasi perusahaan business-to-business, dengan QoS (Quality of Service) standards support untuk proses bisnis end-to-end. Implementasi dari proses yang mendasari layanan integrasi lebih kompleks daripada proses oriented. Proses pada level ini termasuk mengeksekusi secara internal dalam masing-masing partner bisnis. Partner bisnis dapat mendefinisikan dan menyebarkan khoreografy yang kompleks dari proses-prosesnya. Masing-masing memiliki mesin proses internal sendiri. Perluasan enterprise akan dapat mengeksekusi proses end-to-end secara kuat termasuk pertukaran informasi dalam konteks proses internal.

Level 4 :

SOE-solution focused. Berfokus pada solusi horizontal dan vertikal yang membantu enterprise secara cepat dalam membangun dan menyebarkan solusi pelanggan. Solution framework pada dasarnya merupakan suatu fondasi yang dapat mempercepat life cycle of projects secara keseluruhan oleh SOE. Solution framework terdapat (a) predefined best-practice business process templates (b) predefined best-practice information model definitions; (c) redefined best-practice rules dalam kategori yang berbeda seperti declarative expressions, declarative decision, event rules dan constrains; dan (d) predefined service intergration dengan back-end atau trading partner organization. Pada level 4 ini, ahli teknik telah menghasilkan best practices untuk digunakan kembali pendefinisian solusi yang sudah ada dan menentukan area mana yang butuh di buat alternatife skesifikasinya dan perluasannya. Ini pada dasarnya merupakan pendekatan yang berbeda dan lebih dewasa untuk mengembangkan suatu solusi. SOA dan sistem BPM adalah layer inti horisontal. Pada level ini, bukan hanya arsitektur best practice dan solusi tetapi juga menurun/vertical sebagus solusi horisontal yang memiliki komponen predefined yang dapat berpengaruh terhadap service integration dan otomatisasi proses bisnis.

Level 5 :

SOE-performance, agility, and intelligence focused: Ini berkaitan pada fitur-fitur yang lebih maju dari SOE. Ini merupakan optimasi, dan kemampuan yang ada secara cepat turun dari level KPI (Key Performance Indicator) yang tinggi pada proses, partisipasi atau service deployed dalam dasar infrastruktur. Sistem dapat juga menyarankan optimalisasi dan menyediakan kemampuan untuk memprediksi peningkatan nilai KPI. Fitur-fitur lain pada level 5 :

Membangun service, proses dan policy asstes : Pada level maturity ini kemampuan hadir untuk mengorganisasikan bisnis proses, bisnis rules integrasi, dan semua aspek yang lain dari partisipasi, back-end service, atau layanan perdagangan partner dipilih dan dieksekusi. Proses, rules, dan fasilitas yang terintegrasi diperlakukan sebagai asset perusahaan, dimana dapat secara mudah digunakan dan dispesialisasikan. Sistem menyediakan pemisahan dari apa yang dimaksudkan untuk diterima dalam solusi khusus melawan bagaimana untuk mendapatkannya, untuk contohnya, service mana yang harus diminta, trading partner mana yang digunakan, proses mana yang aktif, manusia mana yang berpartisipasi untuk diberikan tugas.

Dynamic discovery : Pada level maturity ini, akan ada penemuan yang dinamis dari layanan. Sekarang kita dapat secara semantic menemukan layanan lain dan terkadang bahkan dapat membawa negosiasi otomatis, pelelangan dan kemudian akses terhadap layanan. Pengikatan terhadap penyedia layanan bersifat dinamis. Pada level ini, pendesain fokus pada tipe layanan, mengukurnya melalui properties atau meta-data dari layanan. Sistem ini memperhitungkan layanan terbaik yang harus diminta. Dynamic discovery dan kemudian yang berikutnya mengikat dengan registrasi inti, penemuan dan perubahan dari permintaan / jawaban dari apa yang telah diilustrasikan.

Benefit And Implementation of SOA

SOA menyediakan manfaat dalam 4 kategori dasar :

  • Mengurangi biaya integrasi
  • Meningkatkan penggunaan aset
  • Meningkatkan business agility
  • Pengurangan resiko bisnis

Prinsip-prinsip yang direkomendasikan ketika mengimplementasikan SOA :

  1. Mendokumentasikan proses bisnis. Dapat secara bottom up atau top down, ketersediaan dari dokumentasi proses bisnis adalah kritis dalam penyampaian SOA melalui Aplikasi berbasis Web Services
  2. SOA mengimplementasikan evolusi yang dimulai dari seorang pilot, menyampaikan nilai bisnis dan penambahan secara menaik
  3. Implementasi SOA harus didasarkan pada loosely coupled services yang menyediakan fleksibelitas yang tinggi dan penurunan biaya secara terus menerus karena reuse and lower maintenance
  4. Pelayanan harus memiliki interface standar yang rela untuk memungkinkan seamless integration dan interoperability dengan layanan yang lain
  5. Bisnis mengendalikan services, dan services mengendalikan teknologi
  6. Pokok dari SOA ialah business agility

CodeIgniter

Apakah CodeIgniter itu?

CodeIgniter adalah sebuah framework yang menerapkan konsep Model-View-Controller (MVC) sebagai pola didalam mengembangkan aplikasi berbasis PHP. Dengan pola MVC ini memungkinkan developer untuk mengorganisir file-file untuk membangun aplikasi.

CodeIgniter berisi banyak sekali instant library yang memudahkan seorang programmer PHP didalam membangun aplikasi sehingga walaupun aplikasinya besar, seorang programmer tidak perlu mendefinisikan library-library tersebut dari awal. Sebagai contoh jika kita ingin membuat sebuah fungsi database untuk memunculkan list data dari sebuah table dengan query ‘SELECT’, maka kita hanya tinggal memanggil library yang sudah disediakan dan selebihnya akan dikerjakan oleh CodeIgniter.

Memahami arsitektur URL pada CI

Pertama kali anda mengakses CodeIgniter melalui URL http://localhost/CodeIgniter maka browser anda akan menampilkan halaman welcome. Sama saja jika anda mengaksesnya melalui URL http://localhost/CodeIgniter/index.php, maka di layar browser masih menghasilkan layar welcome tersebut. Ini berarti halaman welcome tersebut sudah diset sebagai halaman defaultnya. Tetapi coba anda akses melalui URL http://localhost/CodeIgniter/index.php/welcome, maka layar browser masih akan menampilkan halaman welcome. Nah lho.. Disini bisa saya jelaskan bahwa arsitektur URL pada CI memiliki arti sebagai berikut :

http://nama_domain_situs/index.php/nama_controller/nama_method/parameter_method

Jadi URL http://localhost/CodeIgniter/index.php/welcome berarti anda sedang menjalankan sebuah controller bernama welcome dan method bernama index. Sedangkan jika nama_method nya tidak diisi maka secara otomatis CodeIgniter akan menjalankan method bernama index. Untuk lebih jelasnya coba anda buka file welcome.php didalam folder system ‘/application/controller/‘, maka anda akan temukan sintaks sebagai berikut :

class Welcome extends Controller
{
function Welcome()
{
parent::Controller();
}

function index()
{
$this->load->view('welcome_message');
}
}

Jika anda sudah pernah mempelajari konsep OOP pada PHP mungkin anda sudah mengerti maksud sintaks diatas. Jadi sebenarnya setiap controller pada CI berbentuk object atau class yang diturunkan dari sebuah class bernama Controller. Fungsi Welcome() merupakan fungsi constructor dari sebuah class bernama Welcome. Selanjutnya kita perlu memperhatikan fungsi/method index(). Method index() inilah yang dijalankan secara otomatis walaupun kita tidak menuliskannya didalam URL. Tetapi coba saja anda akses URL tadi dengan ditambahkan nama method sehingga menjadi seperti ini : http://localhost/CodeIgniter/index.php/welcome/index , pasti anda akan mendapatkan hasil yang sama.

Share This

1 komentar:

Anonim mengatakan...

Ijin Copy gan...
hiks..hik..

Pengikut

Designed By Blogger Templates