Selasa, 18 April 2017

Servlet

Servlet


Blog pada kali ini akan membahas seputar mengenai servlet. Untuk yang bingung apa itu servlet, akan kita bahas bersama disini.


Pengertian Servlet 
Servlet adalah teknologi java untuk aplikasi web berupa class yang digunakan untuk menerima request dan memberi respon melalui protokol http (html,xml,file dan sebagainya). Pada dasarnya servlet merupakan file java class yang telah dikompilasi dan dijalankan oleh servlet container / application server.


Manfaat dan Kelebihan Servlet

Servlet memiliki manfaat diantaranya :
- Efisien dan baik dalam perfomance
- Powerful
- Aman
- Portabilitas
- Robustness
- Telah digunakan dan diakui dunia
- Murah

Untuk manfaat servlet itu sendiri adalah : Membuka peluang yang tidak mungin dilakukan oleh applet.

Kebutuhan untuk menjalankan servlet 
> Web server yang mendukung servlet API
> Client yang meminta layanan yang disediakan oleh servlet


Struktur Dasar Servlet
Package yang diperlukan untuk membuat class Servlet adalah package java.io.* (PrintWriter), javax.servlet.* (HttpServlet), dan javax.servlet.http.* (HttpServletRequest ,HttpServletResponse).
Berikut struktur dasar class Servlet:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletTemplate extends HttpServlet {
 public void doGet(HttpServletRequest request,
          HttpServletResponse response)
   throws ServletException, IOException {

  // Use "request" to read incoming HTTP headers
  // (e.g., cookies) and query data from HTML forms.

  // Use "response" to specify the HTTP response status
  // code and headers (e.g. the content type, cookies).

  PrintWriter out = response.getWriter();
  // Use "out" to send content to browser.
 }
}

Proses akses servlet

Untuk proses akses servlet adalah sebagai berikut ini :
1. Membaca data secara eksplisit data yang dikirim oleh klien lewat browser
2. Membaca data secara implisit data HTTP request yang di kirim melalui browser
3. Generate hasil permintaan (request)
4. Kirim data (dokumen) secara eksplisit ke client
5. Kirim data response HTTP secara implisit

Status Code Response

Didalam http terdapat berbagai jenis status kode response, diantaranya :
- 1xx (Respons Informasi) : 
100 (Continue), 101 (Switching Protocols), 102 (Processing)

- 2xx (Success) : 
200 (OK), 201 (Created), 202 (Accepted), 203 (Non-Authoritative Information), 204 (No Content), 205 (Reset Content), 206 (Partial Content), 207 (Multi-Status), 208 (Already Reported), 225 (IM Used)

- 3xx (Redirection) : 
300 (Multiple Choices), 301 (Moved Permanently), 302 (Found), 303 (See Other), 304 (Not Modified), 305 (Use Proxy), 306 (Switch Proxy), 307 (Temporary Redirect), 308 (Permanent Redirect)

- 4xx (Client Errors) :
400 (Bad Request), 401 (Unauthorized), 402 (Payment Required), 403 (Forbidden), 404 (Not Found), 405 (Method Not Allowed), 406 (Not Acceptable), 407(Proxy Authentication Required), 408 (Request Timeout), 409 (Conflict), 410(Gone), 411 (Length Required),  412 (Precondition Failed), 413 (Payload Too Large), 414 (URI Too Long), 415 (unsupported Media Type), 416 (Range Not Satisfiable), 417 (Expectation Failed), 418 (I'm a teapot),  421 (Misdirected Request), 422 (Unprocessable Entity), 423 (Locked), 424 (Failed Dependency), 426 (Upgrade Required), 428 (Precondition Required), 429 (Too Many Requests), 431 (Request Header Fields Too Large), 451 (Unavailable For Legal Reasons),

- 5xx (Server Error)
500 (Internal Server Error), 501 (Not Implemented), 502 (Bad Gateway), 503 (Service Unavailable), 504 (Gateway Time-out), 505 (HTTP Version Not Supported), 506 (Variant Also Negotiates), 507 (Insufficient Storage), 508 (Loop Detected), 510 (Not Extended), 511 (Network Authentication Required)


Sumber :

Senin, 10 April 2017

Pemrograman Web J2EE dan Konsep Client Server

Pemrograman Web J2EE dan Konsep Client Server

Tidak terasa udah seminggu berlalu yah, nah karena udah seminggu berlalu topic yang kita bahas kali ini adalah Pemrograman web J2EE dan Konsep Client Server. Dari namanya aja pasti bingung-bingung yah ini tentang apa? Nah biar gak bingung lagi yuk kita sama-sama bahas.

Karakteristik Pemrograman Web
Pemrograman web memiliki beberapa karakteristik, yaitu :
1.    Teknologi Netral
Pemrograman web dibangun untuk memenuhi kebutuhan dari user/client yang memiliki teknologi netral. Maksud teknologi netral adalah teknologi yang digunakan oleh user/client bermacam-macam. Maksud dari teknologi netral disini adalah dapat berupa bermacam platform yang berjalan pada sisi client, contohnya Windows, Linux, Mac, dan lainnya. Dari teknologi yang bermacam-macam ini, user/client diharapkan bisa mengakses web yang diinginkan.
2.    User/client Tidak Perlu Sistem Operasi yang Khusus
User/client tidak perlu repot- repot meng-install aplikasi tertentu, namun cukup dengan mengaksesnya dengan system operasi yang sudah dimiliki sendiri untuk mengakses web.
3.    User/client Hanya Butuh Browser dan Internet
Untuk mengakses web, user/client cukup hanya dengan menginstal aplikasi web browser ditambah dengan koneksi internet tanpa software atau aplikasi tambahan lainnnya.
4.    User/client tidak Berperan Mengupdate Program
Update program hanya dilakukan pada sisi server, bukan pada sisi client. Jadi, user/client cukup menerima hasil update-nya, tanpa harus pusing harus update ini 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.

J2EE terbagi 2 :
·         J2EE Container
     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.

–    Java Server Pages (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.

·         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
Dari sisi client (class java)
1.       Browser
2.       Hanya interface yang digunakan oleh user
3.       Meminta data pada server
     Bentuk web (servlet)
1.       Data yang diperlukan user untuk operasi
2.       Logika aliran program dan eksekusi
3.       Menerima permintaan
     Komponen bisnis (enterprise bean)
1.       Browser merender respon dari user
2.       User akan mengetikkkan URL
3.       Klien menenrukan saluran

Client Server
Client-server adalah suatu bentuk arsitektur, dimana client adalah perangkat yang menerima yang akan menampilkan dan menjalankan aplikasi (software komputer) dan server adalah perangkat yang menyediakan dan bertindak sebagai pengelola aplikasi, data, dan keamanannya
Istilah umum client-server :
-          Html
adalah program mark-up yang digunakan untuk membuat sebuah halaman web, menampilkan berbagai informasi di dalam sebuah Penjelajahan web Internet dan formating hypertext sederhana yang ditulis kedalam berkas format ASCII agar dapat menghasilkan tampilan wujud yang terintegerasi.
-          http

Pengertian Hypertext Transfer Protocol (HTTP) :
adalah sebuah 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

- http request :
Adalah kegiatan yang mana client meminta kepada server.
§  Client adalah web browser. Contohnya : Google Chrome, Mozilla Firefox, IE, dll.
§  Server atau web server. Contohnya : Apache, GlassFish,
metode request HTTP yang umum digunakan antara lain POST dan GET.
GET
Metode GET sering digunakan untuk merequest sumber tertentu ke web server. Biasanya GET digunakan untuk mempassing value untuk diproses ke web server dan selanjutnya value itu diassign ke sebuah variabel untuk diproses oleh server.
POST
POST pada prinsipnya sama dengan GET, namun metode ini ideal untuk value yang diperoleh dari isian form dan halaman web.
-http response
adalah dimana server memberikan tanggapan terhadap request yang dikirim oleh client. Saat Server menerima request yang dikirim dari client, maka request ditangkap dan diolah menggunakan method Get dan Set, kemudian dikirim kembali kepada client yang disebut dengan Respon. Respon yang dikirim dalam bentuk status line atau response header.
Bagian pertama dari response adalah versi protokol. Format dan arti versi protokol sama dengan yang ditemukan pada pesan request.
Bagian berikutnya dari response, yaitu 200 OK  berisi kode status dari informasi yang diminta oleh pesan request. Jika method memberikan informasi apa yang harus dilakukan, maka bagian ini memberikan informasi apa yang terjadi setelah operasi dilakukan. Kode status terdiri dari dua bagian:

1.    Bagian pertama berupa kode angka (status-code;200 pada contoh). Dibuat agar kode status mudah diproses oleh komputer.
2.    Bagian kedua berupa teks penjelasan (reason-phrase;OK pada contoh). Dibuat agar mudah dimengerti oleh manusia (pengguna sistem).

-          web browser
adalah sebuah aplikasi perangkat lunak untuk melintasi, mengambil, dan menyajikan sumber informasi di World Wide Web (WWW). Sumber informasi diidentifikasi dengan Uniform Resource Identifier (URL) termasuk sebuah halaman web, gamber, video atau bagian lain dari konten web.
Tujuan : adalah untuk membawa sumber informasi kepada pengguna. Proses ini dimulai ketika pengguna memasukan sebuah Uniform Resource Identifier (URL), Misalnya http://sinria15si.blogspot.co.id ke dalam browser.

-          web server
adalah software yang menjadi tulang belakang dari WWW (World Wide Web). Web server menunggu permintaan dari client yang menggunakan browser, seperti Microsoft Internet Explorer, Mozilla Firefox, dan browser lainnya. Jika ada permintaan dari browser, maka web server akan memproses permintaan itu kemudian memberikan hasil prosesnya berupa data yang diinginkan kembali ke browser.

-          url
Lokator Sumber Seragam (LSS), yang juga dikenal dengan Uniform Resource Locator (URL), adalah rangkaian karakter menurut suatu format standar tertentu, yang digunakan untuk menunjukkan alamat suatu sumber seperti dokumen dan gambar di Internet.
-          URL merupakan suatu inovasi dasar bagi perkembangan sejarah Internet.URL per tama kali diciptakan oleh Tim Berners-Lee pada tahun 1991 agar para penulis dokumen dapat merujuk pranala ke World Wide Web.Sejak 1994, konsep URL telah dikembangkan menjadi istilah Uniform Resource Identifier (URI) yang lebih umum sifatnya. Walaupun demikian, istilah URL masih tetap digunakan secara luas.

 Sumber:



Terimakasih sudah membaca, mohon maaf jika terdapat kesalahan๐Ÿ™


Senin, 03 April 2017

WEB ARSITEKTUR

Web Arsitektur


Pada minggu ini, saya akan kembali mereview matakuliah pemrograman web, dengan pelajaran berjudul "Web Arsitektur". Kalau mendengar kata arsitektur pasti rata-rata dalam bayangan teman-teman semua adalah sebuah design atau rancangan yaa.. Nah dalam web arsitektur, kurang lebih sama seperti itu, untuk mengetahui lebih lanjut, yuk kita bahas sama sama ๐Ÿ˜€

Definisi Web Arsitektur
> Suatu metode perencanaan dalam merancang situs web yang melibatkan teknis, estetika, dan fungsionalitas. Selain itu juga melibatkan sumberdaya dan batasan dalam pembuatannya.

Komponen Web Arsitektur
Dalam Web Arsitektur terdapat 7 komponen di dalamnya yaitu :
1.Client
> Melakukan request/akses halaman, contohnya : web browser

2.Firewall
> Software yang mengatur jaringan internet dengan LAN perusahaan serta mengatur, mengamankan, dan memfilter komunikasi yang terjadi pada jaringan.

3.Proxy
> Berfungsi untuk menyimpan halaman  website pada suatu cache dan user training.

4.Web Server
> Aplikasi yang menerima request dari client. Web server juga mendukung protokol aplikasi web seperti HHTP & HTTPS

5.Database Server
> Menyediakan akses ke database

6.Media Server
> Menyediakan layanan untuk akses media yang memiliki data besar, contohnya : audio dan video

7.Content Management Server
> Server yang menangani konten semi terstruktur yang dapat diakses oleh aplikasi, contoh : dokumen XML

Istilah-istilah umum dalam Web Arsitektur
1. Tier
> Tingkatan. Dengan metode n-Tier akan punya beberapa tingkatan didalamnya

2. Layer
> Memiliki aplikasi yang fungsinya sebagai antarmuka yang memungkinkan programmer untuk mengakses data yang ada di dalamnya (data layer). Contohya : Free table, basis data (Ms Access, DBF), basis data SQL atau berkas XML

3. Process
> Inti sebuah aplikasi. Pada layer ini kode SQL ditulis untuk dikirim ke lapisan data. Setelah data layer membalas dengan ngirim data yang diminta, baru data tersebut dikirim ke presentation layer (yang di tampilkan ke pengguna / interface nya)



Penggunaan MVC ini nantinya akan membagi developer aplikasi menjadi 3 bagian :
- Manipulasi data
- Interface
- Control

Perbedaan MVC dan N-Tier

MVC (Model, View , Control)
merupakan pola yang paling sering digunakan oleh developer web
Merupakan metode untuk membuat suatu aplikasi web dengan memisahkan antara :

- Model : Datanya. Perannya mengelola data, simpan, dan ambil entity yang digunakan apilasi dari sebuah database

- View : Tampilannya. Untuk menampilkan data yang sudah diolah oleh Model

- Control : Cara memprosesnya. Sebagai penghubung agar model dan view dapat bekerja sama


N-Tier
Arsitektur client serveer dimana presentasi, pemrosesan aplikasi dan data fungsi manajemen secara logis dipisahkan.

Jenis-jenis N-Tier
1. 1 atau 2 Tier
> Single Tier : Semua komponen pada sistem dijalankan di komputer yang sama

Keuntungan
- Model sederhana
- Mudah digunakan user
- Sedikit alternatif

Kerugian
- Skala kecil
- Susah diamankan
- Tidak memungkinkan re-useable component & code

Contoh : suatu aplikasi yang dijalankan pada komputer desktop dan tersimpan dalam folder komputer itu juga.

> Two Tier : Konsep aplikasi ditempatkan pada komputer client dan mesin database dijalankan pada server jarak jauh.
Menggunakan 2 lapisan : client & server

Keuntungan 
- Mudah
- Database ditangani secara khusus
- Relatif sederhana

Kerugian
- Skalabilitas kurang
- Tingkat keamanan sangat kurang
- Lebih mahal

Contoh : Aplikasi web berbasis database

2. 3 Tier
> Terdapat application server antara client dan database server
contoh : IIS, Websphere
implementasi : biasanya terkendala dengan network bandwidth

Keuntungan
- Indenpendensi (salah satu lapis, yang lain tidak ikut salah)
- Jika ada perubahan tidak mempengaruhi lapisan yang lain (baik server/client)
- Komunikasi web server dan database server optimal

Kerugian
- Perancangan susah
- Susah atur aplikasi
- Biaya mahal

3. N-Tier
> Metodenya mirip 3 tier, bedanya pada n-Tier diperjelas bagian user interface dan data processing.
> Mempunyai business logic server

Database server dan business logic server, merupakan Data Processing
Application server dan client, merupakan User Interface

Keuntungan
- Business logic mudah di implementasikan dan dipelihara
- Client bisa akses berbagai tipe DBMS yang beda beda secara transparant
- Bisa dikembangkan tanpa banyak program
- Bisa berjalan pada banyak sistem tanpa harus banyak ngubah program

Kerugian
- Query yang dilakuka harus panggil prosedur yang telah dibuat
- Biaya mahal


Sekian pembahasan mengenai WEB ARSITEKTUR pada minggu ini, jika ada kesalahan dalam menyampaikan informasi mohon maklum karena saya masih belajar. Terimakasih sudah membaca ๐Ÿ˜‰๐Ÿ˜‰