Server aplikasi, server Web: Apa bedanya?

23 Agustus 2002

T: Apa perbedaan antara server aplikasi dan server Web?

SEBUAH:

Server Web secara eksklusif menangani permintaan HTTP, sedangkan server aplikasi menyajikan logika bisnis ke program aplikasi melalui sejumlah protokol.

Mari kita periksa masing-masing lebih detail.

Server Web

Sebuah server Web menangani protokol HTTP. Ketika server Web menerima permintaan HTTP, ia merespons dengan tanggapan HTTP, seperti mengirim kembali halaman HTML. Untuk memproses permintaan, server Web mungkin merespons dengan halaman atau gambar HTML statis, mengirim pengalihan, atau mendelegasikan pembuatan respons dinamis ke beberapa program lain seperti skrip CGI, JSPs (JavaServer Pages), servlet, ASPs (Active Server Pages ), JavaScripts sisi server, atau beberapa teknologi sisi server lainnya. Apa pun tujuannya, program sisi server seperti itu menghasilkan respons, paling sering dalam HTML, untuk dilihat di browser Web.

Pahami bahwa model delegasi server Web cukup sederhana. Ketika sebuah permintaan masuk ke server Web, server Web hanya meneruskan permintaan tersebut ke program yang paling mampu menanganinya. Server Web tidak menyediakan fungsionalitas apa pun selain menyediakan lingkungan di mana program sisi server dapat mengeksekusi dan meneruskan respons yang dihasilkan. Program sisi server biasanya menyediakan untuk dirinya sendiri fungsi-fungsi seperti pemrosesan transaksi, konektivitas database, dan pengiriman pesan.

Meskipun server Web sendiri mungkin tidak mendukung transaksi atau penyatuan koneksi database, ia mungkin menggunakan berbagai strategi untuk toleransi kesalahan dan skalabilitas seperti load balancing, caching, dan pengelompokan — fitur-fitur yang seringkali salah ditetapkan sebagai fitur yang hanya disediakan untuk server aplikasi.

Server aplikasi

Sedangkan untuk server aplikasi, menurut definisi kami, server aplikasi mengekspos logika bisnis ke aplikasi klien melalui berbagai protokol, mungkin termasuk HTTP. Sementara server Web terutama menangani pengiriman HTML untuk ditampilkan di browser Web, server aplikasi menyediakan akses ke logika bisnis untuk digunakan oleh program aplikasi klien. Program aplikasi dapat menggunakan logika ini seperti halnya memanggil metode pada objek (atau fungsi di dunia prosedural).

Klien server aplikasi tersebut dapat menyertakan GUI (antarmuka pengguna grafis) yang berjalan di PC, server Web, atau bahkan server aplikasi lainnya. Informasi yang berjalan bolak-balik antara server aplikasi dan kliennya tidak terbatas pada markup tampilan sederhana. Sebaliknya, informasinya adalah logika program. Karena logika mengambil bentuk panggilan data dan metode dan bukan HTML statis, klien dapat menggunakan logika bisnis yang terekspos sesuai keinginannya.

Dalam kebanyakan kasus, server mengekspos logika bisnis ini melalui API komponen, seperti model komponen EJB (Enterprise JavaBean) yang ditemukan di server aplikasi J2EE (Java 2 Platform, Enterprise Edition). Selain itu, server aplikasi mengelola sumber dayanya sendiri. Tugas penjaga gerbang tersebut mencakup keamanan, pemrosesan transaksi, pengumpulan sumber daya, dan pengiriman pesan. Seperti server Web, server aplikasi juga dapat menggunakan berbagai teknik skalabilitas dan toleransi kesalahan.

Sebuah contoh

Sebagai contoh, pertimbangkan toko online yang menyediakan informasi harga dan ketersediaan waktu nyata. Kemungkinan besar, situs tersebut akan memberikan formulir yang dengannya Anda dapat memilih produk. Saat Anda mengirimkan kueri, situs melakukan pencarian dan mengembalikan hasil yang disematkan dalam halaman HTML. Situs dapat menerapkan fungsi ini dengan berbagai cara. Saya akan menunjukkan kepada Anda satu skenario yang tidak menggunakan server aplikasi dan skenario lain yang menggunakannya. Melihat bagaimana skenario ini berbeda akan membantu Anda melihat fungsi server aplikasi.

Skenario 1: Server web tanpa server aplikasi

Dalam skenario pertama, server Web sendiri menyediakan fungsionalitas toko online. Server Web menerima permintaan Anda, lalu meneruskannya ke program sisi server yang dapat menangani permintaan tersebut. Program sisi server mencari informasi harga dari database atau file datar. Setelah diambil, program sisi server menggunakan informasi tersebut untuk merumuskan respons HTML, kemudian server Web mengirimkannya kembali ke browser Web Anda.

Untuk meringkas, server Web hanya memproses permintaan HTTP dengan merespons dengan halaman HTML.

Skenario 2: Server web dengan server aplikasi

Skenario 2 mirip dengan Skenario 1 di mana server Web masih mendelegasikan pembuatan respons ke skrip. Namun, Anda sekarang dapat meletakkan logika bisnis untuk pencarian harga ke server aplikasi. Dengan perubahan itu, alih-alih skrip mengetahui cara mencari data dan merumuskan respons, skrip cukup memanggil layanan pencarian server aplikasi. Kemudian skrip dapat menggunakan hasil layanan saat skrip menghasilkan respons HTML-nya.

Dalam skenario ini, server aplikasi melayani logika bisnis untuk mencari informasi harga produk. Fungsionalitas itu tidak mengatakan apa pun tentang tampilan atau bagaimana klien harus menggunakan informasi tersebut. Sebaliknya, klien dan server aplikasi mengirim data bolak-balik. Ketika klien memanggil layanan pencarian server aplikasi, layanan hanya mencari informasi dan mengembalikannya ke klien.

Dengan memisahkan logika harga dari kode yang menghasilkan respons HTML, logika harga menjadi jauh lebih dapat digunakan kembali di antara aplikasi. Klien kedua, seperti mesin kasir, juga dapat memanggil layanan yang sama seperti petugas yang memeriksa pelanggan. Sebaliknya, dalam Skenario 1 layanan pencarian harga tidak dapat digunakan kembali karena informasi disematkan di dalam halaman HTML. Untuk meringkas, dalam model Skenario 2, server Web menangani permintaan HTTP dengan membalas dengan halaman HTML sementara server aplikasi melayani logika aplikasi dengan memproses permintaan harga dan ketersediaan.

Peringatan

Baru-baru ini, layanan Web XML telah mengaburkan batas antara server aplikasi dan server Web. Dengan mengirimkan muatan XML ke server Web, server Web sekarang dapat memproses data dan merespons sebanyak yang dimiliki server aplikasi di masa lalu.

Selain itu, sebagian besar server aplikasi juga berisi server Web, yang berarti Anda dapat menganggap server Web sebagai bagian dari server aplikasi. Sementara server aplikasi berisi fungsionalitas server Web, pengembang jarang menggunakan server aplikasi dalam kapasitas itu. Sebaliknya, bila diperlukan, mereka sering menggunakan server Web mandiri bersama dengan server aplikasi. Pemisahan fungsionalitas seperti itu membantu kinerja (permintaan Web sederhana tidak akan memengaruhi kinerja server aplikasi), konfigurasi penerapan (server Web khusus, pengelompokan, dan sebagainya), dan memungkinkan pemilihan produk terbaik di kelasnya.

Tony Sintes adalah konsultan independen dan pendiri First Class Consulting, sebuah perusahaan konsultan yang mengkhususkan diri dalam menjembatani sistem dan pelatihan perusahaan yang berbeda. Di luar Konsultasi Kelas Satu, Tony adalah penulis lepas aktif, serta penulis Sams Teach Yourself Object-Oriented Programming in 21 Days (Sams, 2001; ISBN: 0672321092).

Pelajari lebih lanjut tentang topik ini

  • Untuk artikel lebih lanjut tentang server aplikasi, telusuri bagian Server Aplikasi Java dari Indeks Topikal JavaWorld

    //www.javaworld.com/channel_content/jw-appserv-index.shtml

  • Ingin lebih? Lihat halaman indeks Q&A Java untuk katalog Q&A lengkap

    //www.javaworld.com/columns/jw-qna-index.shtml

  • Selama lebih dari 100 kiat Jawa wawasan dari beberapa pikiran terbaik dalam bisnis ini, kunjungan JavaWorld' s Java Tips halaman indeks

    //www.javaworld.com/columns/jw-tips-index.shtml

  • Pelajari lebih lanjut tentang server aplikasi dan server Web di diskusi Enterprise Java kami

    //forums.idg.net/[email protected]@.ee6b80a

  • Mendaftarlah untuk buletin email mingguan JavaWorld Enterprise gratis

    //www.javaworld.com/subscribe

  • Anda akan menemukan banyak artikel terkait TI dari publikasi saudara kita di .net

Cerita ini, "Server aplikasi, Server web: Apa bedanya?" awalnya diterbitkan oleh JavaWorld.