Pelayan aplikasi, pelayan Web: Apa perbezaannya?

23 Ogos 2002

S: Apakah perbezaan antara pelayan aplikasi dan pelayan Web?

J:

Pelayan Web secara eksklusif menangani permintaan HTTP, sedangkan pelayan aplikasi memberikan logik perniagaan ke program aplikasi melalui sejumlah protokol.

Mari kita periksa dengan lebih terperinci.

Pelayan Web

Pelayan Web mengendalikan protokol HTTP. Apabila pelayan Web menerima permintaan HTTP, ia bertindak balas dengan respons HTTP, seperti mengirim kembali halaman HTML. Untuk memproses permintaan, pelayan Web dapat bertindak balas dengan halaman atau gambar HTML statis, mengirim pengalihan, atau mendelegasikan penjanaan respons dinamis ke beberapa program lain seperti skrip CGI, JSP (Halaman JavaServer), servlet, ASP (Halaman Pelayan Aktif ), JavaScript sisi pelayan, atau beberapa teknologi sisi pelayan yang lain. Apa pun tujuannya, program seperti pelayan menghasilkan tindak balas, paling kerap dalam HTML, untuk dilihat dalam penyemak imbas Web.

Ketahui bahawa model perwakilan pelayan Web agak mudah. Apabila permintaan masuk ke pelayan Web, pelayan Web hanya menyampaikan permintaan ke program yang paling mampu menanganinya. Pelayan Web tidak menyediakan fungsi apa pun selain hanya menyediakan lingkungan di mana program sisi pelayan dapat menjalankan dan mengembalikan respons yang dihasilkan. Program sisi pelayan biasanya menyediakan fungsi seperti pemprosesan transaksi, penyambungan pangkalan data, dan pesanan.

Walaupun pelayan Web mungkin sendiri tidak menyokong transaksi atau penyatuan sambungan pangkalan data, ia mungkin menggunakan pelbagai strategi untuk toleransi kesalahan dan skalabilitas seperti pengimbangan beban, penyimpanan cache, dan pengelompokan — ciri-ciri seringkali ditetapkan secara salah sebagai ciri yang hanya disediakan untuk pelayan aplikasi.

Pelayan aplikasi

Bagi pelayan aplikasi, menurut definisi kami, pelayan aplikasi memaparkan logik perniagaan kepada aplikasi klien melalui berbagai protokol, mungkin termasuk HTTP. Walaupun pelayan Web terutama berkaitan dengan pengiriman HTML untuk ditampilkan dalam penyemak imbas Web, pelayan aplikasi menyediakan akses ke logik perniagaan untuk digunakan oleh program aplikasi klien. Program aplikasi dapat menggunakan logik ini sama seperti memanggil metode pada objek (atau fungsi dalam dunia prosedural).

Pelanggan pelayan aplikasi seperti itu boleh merangkumi GUI (antara muka pengguna grafik) yang berjalan di PC, pelayan Web, atau bahkan pelayan aplikasi lain. Maklumat yang berulang-alik antara pelayan aplikasi dan pelanggannya tidak terhad kepada paparan paparan sederhana. Sebaliknya, maklumat itu adalah logik program. Oleh kerana logiknya berbentuk panggilan data dan kaedah dan bukan HTML statik, pelanggan dapat menggunakan logik perniagaan yang terdedah sesuka hatinya.

Dalam kebanyakan kes, pelayan memaparkan logik perniagaan ini melalui API komponen, seperti model komponen EJB (Enterprise JavaBean) yang terdapat pada pelayan aplikasi J2EE (Java 2 Platform, Enterprise Edition). Lebih-lebih lagi, pelayan aplikasi menguruskan sumbernya sendiri. Tugas menjaga pintu seperti keselamatan, pemrosesan transaksi, penyatuan sumber daya, dan pemesejan. Seperti pelayan Web, pelayan aplikasi juga dapat menggunakan pelbagai teknik skalabilitas dan toleransi kesalahan.

Satu contoh

Sebagai contoh, pertimbangkan kedai dalam talian yang menyediakan maklumat harga dan ketersediaan masa nyata. Kemungkinan besar, laman web ini akan menyediakan borang yang boleh anda pilih produk. Apabila anda mengemukakan pertanyaan anda, laman web ini melakukan pencarian dan mengembalikan hasil yang disertakan dalam halaman HTML. Laman web ini dapat melaksanakan fungsi ini dengan pelbagai cara. Saya akan menunjukkan satu senario yang tidak menggunakan pelayan aplikasi dan yang lain yang tidak. Melihat perbezaan senario ini akan membantu anda melihat fungsi pelayan aplikasi.

Senario 1: Pelayan web tanpa pelayan aplikasi

Dalam senario pertama, pelayan Web sahaja menyediakan fungsi kedai dalam talian. Pelayan Web mengambil permintaan anda, kemudian meneruskannya ke program sisi pelayan yang dapat menangani permintaan tersebut. Program sisi pelayan mencari maklumat harga dari pangkalan data atau fail rata. Setelah diambil, program sisi pelayan menggunakan maklumat untuk merumuskan respons HTML, kemudian pelayan Web menghantarnya kembali ke penyemak imbas Web anda.

Ringkasnya, pelayan Web hanya memproses permintaan HTTP dengan bertindak balas dengan halaman HTML.

Senario 2: Pelayan web dengan pelayan aplikasi

Skenario 2 menyerupai Skenario 1 di mana pelayan Web masih mewakilkan penjanaan respons ke skrip. Walau bagaimanapun, anda kini boleh memasukkan logik perniagaan untuk mencari harga ke pelayan aplikasi. Dengan perubahan itu, alih-alih skrip mengetahui cara mencari data dan merumuskan respons, skrip hanya dapat memanggil layanan pencarian pelayan aplikasi. Skrip kemudian dapat menggunakan hasil perkhidmatan ketika skrip menghasilkan respons HTML-nya.

Dalam senario ini, pelayan aplikasi memberikan logik perniagaan untuk mencari maklumat harga produk. Fungsi itu tidak mengatakan apa-apa mengenai paparan atau bagaimana pelanggan mesti menggunakan maklumat tersebut. Sebaliknya, pelanggan dan pelayan aplikasi menghantar data berulang-ulang. Apabila pelanggan memanggil perkhidmatan carian pelayan aplikasi, perkhidmatan tersebut hanya mencari maklumat dan mengembalikannya kepada pelanggan.

Dengan memisahkan logik harga dari kod penghasil tindak balas HTML, logik harga menjadi lebih dapat digunakan semula antara aplikasi. Pelanggan kedua, seperti daftar tunai, juga dapat memanggil perkhidmatan yang sama seperti kerani memeriksa pelanggan. Sebaliknya, dalam Senario 1 perkhidmatan pencarian harga tidak dapat digunakan kembali kerana maklumat tersebut disertakan dalam halaman HTML. Sebagai kesimpulan, dalam model Skenario 2, pelayan Web menangani permintaan HTTP dengan membalas dengan halaman HTML sementara pelayan aplikasi melayani logik aplikasi dengan memproses permintaan harga dan ketersediaan.

Kaveat

Baru-baru ini, perkhidmatan Web XML telah mengaburkan garis antara pelayan aplikasi dan pelayan Web. Dengan menyebarkan muatan XML ke pelayan Web, pelayan Web kini dapat memproses data dan bertindak balas seperti pelayan aplikasi pada masa lalu.

Selain itu, kebanyakan pelayan aplikasi juga mengandungi pelayan Web, yang bermaksud anda boleh menganggap pelayan Web sebagai sebahagian daripada pelayan aplikasi. Walaupun pelayan aplikasi mengandungi fungsi pelayan Web, pemaju jarang menggunakan pelayan aplikasi dengan kapasiti tersebut. Sebaliknya, apabila diperlukan, mereka sering menggunakan pelayan Web yang berdiri sendiri bersamaan dengan pelayan aplikasi. Pemisahan fungsi seperti ini membantu prestasi (permintaan Web sederhana tidak akan mempengaruhi prestasi pelayan aplikasi), konfigurasi penyebaran (pelayan Web khusus, pengelompokan, dan sebagainya), dan memungkinkan untuk pemilihan produk terbaik.

Tony Sintes adalah perunding bebas dan pengasas First Class Consulting, sebuah syarikat perunding yang pakar dalam merapatkan sistem dan latihan perusahaan yang berbeza. Di luar Konsultasi Kelas Pertama, Tony adalah penulis bebas yang aktif, dan juga pengarang Pengaturcaraan Sams Teach Yourself Object-Oriented dalam 21 Hari (Sams, 2001; ISBN: 0672321092).

Ketahui lebih lanjut mengenai topik ini

  • Untuk lebih banyak artikel mengenai pelayan aplikasi, lihat bahagian Java Application Server dari Indeks Topikal JavaWorld

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

  • Mahu lebih? Lihat halaman indeks Soal Jawab Java untuk katalog Q&A lengkap

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

  • Lebih daripada 100 tips Java berwawasan dari beberapa minda terbaik dalam perniagaan, lawatan JavaWorld ' s Java Tips halaman indeks

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

  • Ketahui lebih lanjut mengenai pelayan aplikasi dan pelayan Web dalam perbincangan Java Enterprise kami

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

  • Daftar untuk buletin e-mel Enterprise Java mingguan percuma JavaWorld

    //www.javaworld.com/subscribe

  • Anda akan mendapat banyak artikel berkaitan IT dari penerbitan saudara kami di .net

Cerita ini, "Pelayan aplikasi, pelayan Web: Apa bezanya?" pada asalnya diterbitkan oleh JavaWorld.