Minggu, 12 April 2015

Pertemuan 2 - Pemrograman Web J2EE & Konsep Client Server


PEMROGRAMAN WEB J2EE

Java memiliki 3 platform, yang terdiri dari :
1.        Java Standard Edition (J2SE)
     Platform Standar pada Java yang bertugas untuk rancangan antarmuka pemakai yang dapat berupa masukan ataupun keluaran. Contohnya : Java dan GUI
2.        Java Micro Edition (J2ME)
      Platform menengah pada java yang bertugas sebagai Mobile Application atau sebagai embedded System. Contoh : Handphone, PDA, Web Phone, Navigasi mobil
3.        Java Enterprise Edition (J2EE)
     Platform teratas java yang memiliki cakupan luas. Digunakan sebagai pengembangan aplikasi dalam bentuk komponen.

Pembahasan lebih dalam mengenai J2EE.

Apa itu J2EE ?

J2EE adalah sebuah spesifikasi bukan produk yang berwujud nyata. Memiliki fungsi sebagai enterprise yang berbasis komponen. Komponen yang dimaksud adalah sebuah perintah pada java yang langsung dapat diguanakan dengan fungsi yang dimiliki masing-masing komponen. Contoh : import.swing.JOptionPane

Komponen ini dapat langsung kita digunakan pada java(aplikasi netbeans), tanpa harus memikirkan bagaimana cara membuat komponen itu. Pengguna hanya tinggal memanggil dan menggunakan komponen, maka komponen akan bekerja sesuai dengan fungsinya. Komponen import.swing.JOptionPane digunakan untuk menampilkan kotak dialog JOptionPane. Komponen jika dijual akan menghasilkan uang yang banyak, karena tidak semua orang dapat membuat komponen. Karena tingkat kesulitannya yang cukup tinggi.
      
Contoh aplikasi server yang digunakan : glassfish, Oracle AS, JBOS, IBM Websphere, JRun, JOnAS. Server Apache Tomcat adalah milik Tomcat, dan digunakan pada Java Free. Aplikasi server milik java adalah Glassfish


Komponen pada J2EE

Komponen J2EE merupakan unit-unit yang program yang masing-masing memiliki fungsionalitas. Terdiri dari :
1.        Client dan Applet, yang merupakan komponen yang berjalan pada Client
2.        Web, merupakan java servlet dan java server yang pages yang berjalan pada server
3.        Enterprise JavaBeans (EJB) yang merupakan bisnis komponen dan berjalan pada server


J2EE Container

 

Penjelasan :

1.        J2EE Server merupakan server dari J2EE yang menyediakan 2 container yaitu : Web Container dan EJB Container
1.1 Web Container adalah web server berbasis java yang menampung komponen web  serta melakukan pengelolaan dan eksekusi terhadap JSP Page dan komponen pada servlet.
Beberapa pembuat Web Container antara lain:
-   Free software: Apache Tomcat, JResin, Jetty, Sun Glassfish
-   Sun SJSAS, JBoss, IBM Websphere, Oracle Weblogic.
  Web, seperti servlet dan JSP. Terdiri dari file-file class servlet atau file-file class yang           dibutuhkan JSP, file gambar, file HTML, dan deskriptor dari web deployment. Package   yang digunakanbiasanya adalah WAR dengan ekstensi file .war.

Bagian dari web container :
-   Servlets
Teknologi Servlet adalah teknologi utama pada java untuk menambahkan fungsi ke server yang digunakan untuk merespon permintaan dari model. Mempunyai kemampuan untuk membaca kumpulan data yang diminta oleh server dan menghasilkan response yang dinamis yang berdasarkan pada data tersebut, servlet tidak terbatas pada kondisi HTTP.
-    JavaServerPages (JSP)
JSP seperti HTML. Menghasilkan keluaran dengan cara lain pada pemograman Java seperti : mencetak karakter String ketika mengeluarkan output, dalam hal ini HTTP-response, sangat complex dan sangat sulit untuk melakukan proses encode HTML melalui penggunaan String literal.

1.2     EJB (Enterprise Java Beans) Container
Model komponen berbasiskan container yang dapat didistribusikan dan menangani pengelolaan container  pada komponen Java. Client dari  aplikasi  EJB  adalah  aplikasi lain,  bukan end-user. Biasanya digunakan untuk lingkup bisnis
EJB, terdiri dari file-file class dari enterprise bean dan deskriptor dari EJB deployment. EJBbiasanya menggunakan package berupa JAR dengan ekstensi file .jar.

2.        Aplikasi Client
Memiliki fungsi untuk memberikan pelayanan terhadap client. Terdiri dari file class client dan deskriptor client.

3.        Applet Container
Memiliki fungsi untuk melakukan pengaturan terhadap applet, mengelola, serta mengeksekusi applet. Terdiri dari browser web dan Java Plug-in yang berjalan secara bersama-sama


  
J2EE Component And Container 

 

Penjelasan :

1.    JMS (Java Messaging Service)
Memberikan suatu API yang umum dan framework yang membuka pengembangan aplikasi-aplikasi messaging yang portable dalam bahasa pemrograman java. JMS API mendukung model-model pemrograman messaging yang umum pada saat ini.
2.    JNDI ( Java Naming and Directory Interface )
JNDI adalah API Java untuk naming service dan directory. Naming service atau layanan penamaan adalah sebuah layanan yang menyediakan pembuatan nama standar untuk satu kumpulan data. Konsep kunci untuk mengingat sebuah naming service  yaitu bahwa jndi menyediakan  nama unik untuk setiap entri yang didaftarkan, yang dinamakan dengan binding.
3.    JTA (Java Transaction API)
Berguna untuk implementasi aplikasi distribusi secara tradisional
4.    Java Mail
Menyediakan framework platform independence dan protokol independence untuk membangun aplikasi Java berdasarkan mail
5.    RMI- IIOP (Remote Method Invocation over the Internet Inter-ORB Protocol)
IIOP pada CORBA, ORPC pada DCOM, atau JRMP pada Java RMI) untuk mengirimkan pesan (message) ke server. Internet Inter-ORB Protocol (IIOP) merupakan protokol jarak jauh yang mendasari.
6.    JDBC (Java database connectivity)
Berfungsi untuk mengakses sistem database manajemen. JDBC memiliki beberapa kegunaan, yaitu membantu programmer untuk koneksi dengan data source, membantu mengirimkan query dan update statements ke database, dan menerima serta memroses hasil yang didapatkan dari database sesuai dengan query yang diberikan.

Aplikasi web dengan J2EE dibangun dengan menggunakan :

-       Java Runtime environment : Yang berjalan pada server dan client
-      JSP Page & Servlet : Memiliki tugas untuk menghandle request dan mengenerate dynamic                    contact
-       Komponen Server-Side JavaBean : Sebagai encapsulation dan state
-       Static HTML dan sejenisnya
-       Client Side Java Applets, Komponen JavaBean dan aArbitrary Java Class Files



KONSEP CLIENT-SERVER

Arsitektur Client-Server Dari Perspektif  Web

 
___ Client
___  Server

Pada jenis arsitektur ini, sebuah program client terhubung pada sebuah server untuk informasi yang dibutuhkan untuk melengkapi tugas-tugas yang telah diset oleh user. Client digunakan untuk aplikasi web thin clients. Program client, pada hal ini adalah browser, hanya sebuah interface yang oleh user digunakan untuk melaksanakan tugas-tugas. Yang lainnya, dari data yang user perlukan untuk dioperasikan, logika yang menentukan aliran program dan eksekusi, berada pada server.  Dari suatu perspektif web base maka server client memiliki beberapa tugas :
-  Server menerima permintaan-permintaan dari para client web browser dan kemudian meresponnya.
-   Beberapa permintaan yang datang dari client disertai nama dan alamat item yang client cari, sebagaimana beberapa data user yang disediakan.
-      Server menerima permintaan tersebut, memprosesnya, dan kemudian merespon data yang dicari oleh client atau sebuak kode error yang mengindikasikan bahwa item tidak terdapat pada server atau jika terjadi beberapa error lain.

1.        Request
       Dilakukan oleh client untuk meminta membuka sebuah halaman yang diinginkan dari server                      (URL)
2.        Respon
Dilakukan oleh server unutk memberikan respon terhadap permintaan halaman/request dari client, dapat berupa dokument atau pemberitahuan
3.        Client
Berupa browser yang berfungsi sebagai interface yang digunakan oleh user. Dalam hal ini client melakukan kegiatan meminta data kepada server
4.        Server
Adalah data yang diperlukan user untuk operasi. Berisi logika aliran program dan eksekusi.

Permintaan dari client :
-            Dikirim melalui URL
-            Ditanggapi oleh protocol HTTP

Beberapa Istilah Penting :
1.      HTML (Hypertext Markup Language )
Kumpulan perintah-perintah untuk web browser tentang bagaimana menampilkan sesuatu untuk user. Diupdate oleh World Wide Web Consortium (W3C). Merupakan sebuah standar terbuka, setiap orang dapat mengaksesnya.
2.      Web Browser
Tools atau aplikasi yang digunakan untuk membuka atau menjelajah halaman internet baik itu berupa text, gambar, suara, video dan dokumen-dokumen web lainnya. Web browser juga sering disebut dengan peramban, jadi dengan web browser inilah kita dapat menjelajah halaman internet.Contoh : Mozila, Google Chrome, Opera, Internet Explorer, Opera Mini
3.        Web Server
Sebuah software yang memberikan layanan berbasis data dan berfungsi menerima permintaan dari HTTP atau HTTPS pada client yang dikenal dan biasanya kita kenal dengan nama web browser dan untuk mengirimkan kembali yang hasilnya dalam bentuk beberapa halaman web dan pada umumnya akan berbentuk dokumen HTML

Prinsip kerja web server :
1.         User/client mengetikkan URL pada computer client
2.         Domain name diubah menjadi IP Address melalui DNS
3.         Client berhubungan dengan server melalui IP Address dan Port
4.         Client menentukan saluran
5.         Client mengirim HTTP Request ke server
6.         Server menampilkan file yang akan dikirim ke client
7.         Apabila status pengiriman gagal atau berhasil, akan diberi konfirmasi
8.         Setelah didapat konfirmasi, hubungan diputus

4.      HTTP (Hypertext Transfer Protocol)
Protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling terhubung dengan tautan, yang disebut dengan dokumen hiperteks
5.        URL (Uniform Resource Locator)
Rangkaian karakter  format standar tertentu, yang digunakan untuk menunjukkan alamat suatu sumber seperti dokumen dan gambar di Internet
6.        URLs
Merupakan cara untuk meng-code protokol, DNS atau IP Address menjadi bentuk string.
http                                   : sebagai protocol
//www.pcr.ac.id                : sebagai komputer yang dituju
/dosen                               : sebagai folder yang ada pada computer
/bahan_kuliah.html           : sebagai file/dokumen yang diambil
7.        HTTP Requests
Membaca dan menjelaskan permintaan pesan. Permintaan-permintaan dari client ke server berisikan informasi tentang macam-macam data yang user inginkan. Salah satu item informasi yang dienkapsulasi pada permintaan HTTP adalah sebuah nama method.
8.        HTTP Response
Memberikan respon terhadap permintaan Client. HTTP yang merespon dari server yang berisi headers dan body pesan, seperti yang permintaan HTTP lakukan. Mereka menggunakan kumpulan header yang berbeda, meskipun demikian disini kita tidak perlu terlalu dalam membahasnya secara detail. Cukup dengan mengatakan bahwa headers berisi informasi tentang protokol HTTP yang digunakan pada server, sebagaimana tipe dari isi yang dienkapsulasi ke dalam body pesan.

HTTP menggunakan urutan Request/Response:
-       HTTP client membuka koneksi dan mengirim sebuah pesan permintaan pada HTTP server;
-          Server  mengirimkan pesan respon, biasanya berisikan resource yang diminta.
-      Setelah mengirimkan respon, server menutup koneksi (membuat HTTP menjadi protokol tanpa status, contoh, tidak memelihara beberapa informasi koneksi diantara transaksi).

Method pada Request :

1.        GET
Merupakan method HTTP paling sederhana dan digunakan sebagian besar untuk meminta resource tertentu dari server, apakah berupa halaman web, file gambar grafis, atau sebuah
dokumen, dan lain-lain.

GET dapat juga digunakan untuk mengirim data di atas server, meskipun demikian hal itu mempunyai batasan-batasan. Jumlah total karakter yang dapat dienkapsulasi ke dalam permintaan GET adalah terbatas, sehingga untuk situasi dimana banyak data perlu dikirimkan ke server, tidak semua pesan dapat disampaikan.

Batasan lain method permintaan GET ketika mengirim data adalah data yang Anda kirim menggunakan method ini ditambahkan pada URL yang Anda kirim ke server. (Untuk sekarang, asumsikan URL sebagai alamat unik yang akan Anda kirim ke server sebagai penandaan lokasi yang Anda minta). Salah satu permasalahannya adalah URL dari beberapa permintaan yang Anda inginkan ditampilkan pada bar browser pada beberapa browser. Hal ini berarti, bahwa beberapa data sensitif seperti password atau informasi kontak (contact information) dapat diterlihat oleh siapapun.

Keuntungan dari penggunaan GET dalam pengiriman data di atas server adalah permintaan URL dari permintaan GET dapat dibookmark oleh browser. Hal ini berarti bahwa user dapat dengan mudah membookmark permintaannya dan mengakses setiap saat dari pada melalui proses tiap waktu. Hal ini juga dapat membahayakan; jika bookmark secara fungsional bukan merupakan sesuatu yang Anda inginkan pada user Anda, sebagai gantinya menggunakan method lain.

2.        POST
Jenis permintaan ini didesain seperti browser dapat membuat permintaan kompleks dari server. Mereka didesain sehingga user, melalui browser, dapat mengirim banyak data ke server. Form kompleks secara umum dicapai dengan menggunakan permintaan POST, sebagaimana form sederhana yang memelukan proses upload file ke server.

Perbedaan yang nyata antara method GET dan POST terletak pada cara mengirimkan data ke server. Seperti yang dinyatakan sebelumnya, GET hanya menambahkan data ke URL yang akan mengirim. POST, di sisi lain, mengenkapsulasi atau menyembunyikan data di dalam body pesan (message body) yang dikirim. Ketika server menerima permintaan dan menentukan bahwa itu merupakan sebuah permintaan POST, dapat dilihat dari body pesan data tersebut.













1 komentar: