Saya perlu mempelajari Layanan Web di Java. Apa saja jenis yang berbeda di dalamnya? [Tutup]

91

Baru-baru ini, saya memutuskan untuk mulai belajar tentang layanan web java dan ketika saya mulai mencari tutorial untuk layanan web java di google, saya menemukan bahwa ada banyak jenis layanan web berbasis XML, berbasis SOAP, juga layanan web RESTful.

Juga, saya menemukan bahwa ada spesifikasi JAX-WS untuk layanan web berbasis xml, dan spesifikasi JAX-RS untuk membuat layanan web RESTful.

Q1) Saya bingung, alangkah baiknya jika ada yang bisa membantu saya memahami perbedaan antara berbagai jenis layanan web ini, sehingga saya dapat memutuskan mana yang akan dipelajari terlebih dahulu.

Q2) Juga, saya ingin belajar secara mendalam tentang cara membuat berbagai jenis layanan web di java. Apakah ada tutorial atau sumber daya yang dapat memberikan gambaran tentang setiap jenis layanan web dan perbandingan di antara keduanya.

Q3) berdasarkan skenario dan kondisi apa yang harus saya putuskan bahwa saya ingin membuat layanan web berbasis XML daripada layanan SOAP atau saya harus menggunakan layanan RESTful.

Rajesh Pantula
sumber
Tutorial Java EE 6
Paul Vargas

Jawaban:

142
  1. SOAP Web Services berbasis standar dan didukung oleh hampir setiap platform perangkat lunak: Mereka sangat bergantung pada XML dan memiliki dukungan untuk transaksi, keamanan, pesan asinkron dan banyak masalah lainnya. Ini adalah standar yang cukup besar dan rumit, tetapi mencakup hampir semua situasi perpesanan. Di sisi lain, layanan RESTful mengandalkan protokol HTTP dan kata kerja (GET, POST, PUT, DELETE) untuk menukar pesan dalam format apa pun, JSON dan XML yang lebih disukai. Ini adalah pendekatan arsitektur yang cukup sederhana dan elegan.
  2. Seperti dalam setiap topik di Dunia Java, ada beberapa perpustakaan untuk membangun / menggunakan Layanan Web. Di Sisi SOAP Anda memiliki standar JAX-WS dan Apache Axis , dan di REST Anda dapat menggunakan Fasilitas Restlets atau Spring REST di antara pustaka lainnya.

Dengan pertanyaan 3, artikel ini menyatakan bahwa RESTful Services sesuai dalam skenario ini:

  • Jika Anda memiliki bandwidth terbatas
  • Jika operasi Anda tidak memiliki kewarganegaraan: Tidak ada informasi yang disimpan dari satu pemanggilan ke pemanggilan berikutnya, dan setiap permintaan diperlakukan secara independen.
  • Jika klien Anda membutuhkan caching.

Sedangkan SOAP adalah cara yang harus dilakukan ketika:

  • Jika Anda membutuhkan pemrosesan asynchronous
  • Jika Anda membutuhkan kontrak formal / Antarmuka
  • Dalam operasi layanan Anda adalah stateful: Misalnya, Anda menyimpan informasi / data pada permintaan dan menggunakan data yang disimpan itu pada permintaan berikutnya.
Carlos Gavidia-Calderon
sumber
11
1 karena sudah begitu jelas dan menyatakan skenario :)
Rajesh Pantula
Jawaban yang tajam dan jelas.
Krishna
1 untuk jawaban yang bagus ... !!!
Shailesh Saxena
Jawaban bagus, Bisakah Anda ceritakan apa itu operasi tanpa kewarganegaraan / stateful?
Keerthivasan
Saya mengedit jawabannya termasuk konsep-konsep itu.
Carlos Gavidia-Calderon
13

Q1) Berikut adalah beberapa hal untuk dibaca atau google lebih banyak:

Perbedaan utama antara SOAP dan layanan web RESTful di java http://www.ajaxonomy.com/2008/xml/web-services-part-1-soap-vs-rest

Terserah Anda apa yang ingin Anda pelajari dulu. Saya sarankan Anda melihat kerangka CXF . Anda dapat membangun layanan istirahat / sabun.

Q2) Berikut adalah beberapa tutorial bagus untuk sabun (saya sudah menandai mereka):

http://united-coders.com/phillip-steffensen/developing-a-simple-soap-webservice-using-spring-301-and-apache-cxf-226

http://www.benmccann.com/blog/web-services-tutorial-with-apache-cxf/

http://www.mastertheboss.com/web-interfaces/337-apache-cxf-interceptors.html

Cara terbaik untuk belajar tidak hanya dengan membaca tutorial. Tetapi pertama-tama Anda akan melalui tutorial untuk mendapatkan ide dasar sehingga Anda dapat melihat bahwa Anda dapat menghasilkan sesuatu (atau tidak) dan itu akan membuat Anda termotivasi.

SO adalah cara yang bagus untuk mempelajari teknologi tertentu (atau lebih), orang-orang mengajukan banyak pertanyaan aneh, dan selalu ada jawaban yang lebih aneh. Tetapi secara keseluruhan Anda akan belajar tentang cara-cara untuk menyelesaikan masalah dengan cara lain. Mungkin Anda tidak mengetahuinya, mungkin Anda tidak bisa memikirkannya sendiri.

Berlangganan beberapa tag yang menarik bagi Anda dan gigih, ajukan pertanyaan yang bagus dan coba berikan jawaban yang baik dan saya jamin Anda akan mempelajarinya seiring berjalannya waktu (jika Anda gigih).

Q3) Anda harus menjawab sendiri pertanyaan ini. Pertama dengan memutuskan apa yang akan Anda bangun, setelah semua Anda perlu memikirkan beberapa proyek mini atau sesuatu dan mengambilnya dari sana.

Jika Anda memutuskan untuk menggunakan CXF sebagai kerangka kerja Anda untuk membangun layanan REST / SOAP, saya sarankan Anda mencari buku ini Apache CXF Web Service Development. Fantastis, tidak sulit untuk dibaca dan juga tidak terlalu besar (menang menang).

semut
sumber
7

SOAP WS mendukung baik gaya integrasi remote procedure call (yaitu RPC) dan message oriented middle-ware (MOM). Restful Web Service hanya mendukung gaya integrasi RPC.

SOAP WS adalah protokol transport netral. Mendukung banyak protokol seperti HTTP (S), Messaging, TCP, UDP SMTP, dll. REST adalah protokol transport khusus. Hanya mendukung protokol HTTP atau HTTPS.

SOAP WS hanya mengizinkan format data XML. Anda menentukan operasi, yang menelusuri melalui POST. Fokusnya adalah mengakses operasi bernama dan mengekspos logika aplikasi sebagai layanan. REST mengizinkan berbagai format data seperti XML, data JSON, teks, HTML, dll. Semua browser dapat digunakan karena pendekatan REST menggunakan operasi standar GET, PUT, POST, dan DELETE Web. Fokusnya adalah mengakses sumber daya bernama dan mengekspos data sebagai layanan. REST memiliki dukungan AJAX. Itu bisa menggunakan objek XMLHttpRequest. Baik untuk operasi CRUD (Buat, Baca, Perbarui, dan Hapus) stateless. GET - representasikan () POST - acceptRepresention () PUT - storeRepresention () DELETE - removeRepresention ()

Bacaan berbasis SOAP tidak dapat disimpan dalam cache. Bacaan berbasis REST dapat di-cache. Berkinerja dan menskalakan lebih baik. SOAP WS mendukung keamanan SSL dan keamanan WS, yang menambahkan beberapa fitur keamanan perusahaan seperti menjaga keamanan hingga titik di mana diperlukan, menjaga identitas melalui perantara dan tidak hanya menunjuk ke titik SSL saja, mengamankan bagian pesan yang berbeda dengan algoritma keamanan yang berbeda, dll. REST hanya mendukung keamanan SSL point-to-point. SSL mengenkripsi keseluruhan pesan, apakah semuanya sensitif atau tidak. SOAP memiliki dukungan komprehensif untuk manajemen transaksi berbasis ACID untuk transaksi jangka pendek dan manajemen transaksi berbasis kompensasi untuk transaksi jangka panjang. Ini juga mendukung komit dua fase di seluruh sumber daya terdistribusi. REST mendukung transaksi,

SOAP memiliki logika sukses atau coba lagi yang dibangun dan memberikan keandalan ujung ke ujung bahkan melalui perantara SOAP. REST tidak memiliki sistem perpesanan standar, dan mengharapkan klien yang meminta layanan untuk menangani kegagalan komunikasi dengan mencoba kembali.

sumber http://java-success.blogspot.in/2012/02/java-web-services-interview-questions.html

murali
sumber
> Restful Web Service hanya mendukung gaya integrasi RPC. REST bukanlah RPC, kata RPC, "tentukan beberapa metode yang melakukan sesuatu" sedangkan REST mengatakan, "tentukan beberapa sumber daya dan mereka akan memiliki metode ini". peej.co.uk/articles/rest.html
urmalp
0

Jika aplikasi Anda sering menggunakan protokol http maka REST adalah yang terbaik karena bobotnya yang ringan, dan mengetahui bahwa aplikasi Anda hanya menggunakan protokol http, memilih SOAP tidak terlalu bagus karena berat, Lebih baik buat keputusan pemilihan layanan web berdasarkan protokol yang kami gunakan dalam aplikasi kami.

merasa baik dan memprogram
sumber