Pro dan Kontra memiliki WAR yang berbeda untuk sisi server dan klien dan menerapkannya di server aplikasi yang berbeda

Kami memiliki produk yang UI dikemas sebagai WAR terpisah dan server dikemas sebagai file WAR terpisah. Saat ini kedua WAR ini diterapkan dalam wadah aplikasi yang sama. Berikut adalah pro dan kontra dari pendekatan ini yang saya temukan:

Kelebihan memiliki perang yang berbeda: 1. Saya merasa memiliki dua PERANG yang berbeda memungkinkan saya fleksibilitas dalam memfaktorkan ulang UI atau kode sisi server tanpa memengaruhi yang lain. 2. Untuk memaksimalkan penggunaan memori, saya dapat menyebarkannya dalam dua wadah berbeda. jadi jika sebelumnya saya menggunakan 2 GB untuk seluruh jboss (katakanlah saya menggunakan jboss), sekarang saya berpotensi menggunakan 4 gb jika digunakan di dua server aplikasi jboss yang berbeda (tentu saja no port yang berbeda.) 3. Saya dapat menskalakan aplikasi saya. Jika besok, saya melihat bahwa server adalah hambatan saya, maka saya dapat membuat server farm, (untuk modul server saya saja), karena server itu sendiri adalah WAR yang berbeda, tanpa mengganggu UI WAR. 4. Dipasangkan secara longgar dan memberi saya berbagai titik integrasi

Kekurangan: 1. Untuk UI, saya menggunakan primefaces. saya tidak melihat kasus penggunaan di mana saya bisa melihat kerangka integrasi seperti nilai tambah jahitan. Adakah yang bisa memberi tahu saya apakah memiliki kerangka integrasi masuk akal untuk perang UI saya? Pada dasarnya, kesenangan dari jahitan adalah integrasi luar biasa yang disediakannya dengan UI, EJB, dan hal-hal lainnya. Oleh karena itu, saya tidak melihat terlalu banyak nilai di sini karena formulir saya akan meminta API lainnya untuk melakukan semua pemrosesan.

Dapatkah seseorang memberi tahu saya apakah memiliki banyak perang benar-benar membantu dalam skalabilitas dan pemeliharaan. Misalnya, salah satu keuntungan yang saya lihat adalah jika saya memiliki dua perang dan saya perlu meningkatkan platform server, saya tidak perlu menurunkan UI saya. Adakah manfaat lain selain yang saya sebutkan di atas?

Selain itu, saya ingin memahami jika semuanya dikemas sebagai EAR, bagaimana Anda menskalakan lapisan tertentu dari arsitektur kami. Seperti disebutkan di atas, jika saya merasa lapisan server adalah hambatannya, jika terjadi salah satu WAR/EAR, bagaimana saya menskalakan aplikasi saya?

Saya masih tidak yakin apakah saya perlu melanjutkan model WAR yang berbeda di server aplikasi yang berbeda, atau haruskah saya hanya memiliki satu WAR untuk keseluruhan aplikasi saya? Mohon petunjuk...


person arya    schedule 01.06.2012    source sumber
comment
oke, sebenarnya kami tidak punya EAR, hanya WAR.   -  person arya    schedule 01.06.2012


Jawaban (1)


Jika Anda backend independen dan Anda berkomunikasi dengan klien menggunakan layanan web REST atau SOAP - ini bagus. Coba bayangkan besok Anda meninggalkan klien Anda dengan Java dan membuat klien lain dengan .NET. Apakah backend memerlukan beberapa perubahan? Jika tidak, itu bagus. Jika ya - saya pikir tidak akan terjadi 2 perang.

person alexey28    schedule 01.06.2012
comment
ya, tapi bagaimana dengan kelebihannya. Saya sebenarnya melihat banyak keuntungan memiliki dua PERANG. Yang ingin saya pahami adalah bagaimana satu file EAR/WAR dapat diskalakan? Saya tidak berpikir jika semua lapisan adalah paket dalam satu WAR/EAR, mereka dapat diskalakan secara vertikal. Hanya penskalaan horizontal yang mungkin dilakukan, bukan? dan saya tidak melihat penskalaan horizontal sebagai bentuk penskalaan yang ideal. - person arya; 01.06.2012
comment
Sepertinya bukan penskalaan vertikal, tetapi Anda menskalakan kedua komponen ini secara horizontal dengan kemungkinan skala berbeda: Anda dapat memiliki 3 bagian depan dan 20 bagian belakang misalnya. Dalam kasus perang tunggal - 25 backend untuk mendapatkan hal yang sama. - person alexey28; 01.06.2012
comment
benar alexey28, sehingga membuat beberapa WAR menjadi alternatif yang lebih baik bukan? dan jika ya, bagaimana aplikasi dengan WAR tunggal mengklaim dapat diskalakan karena sebagian besar aplikasi (disebut scalable) yang saya lihat diterapkan dalam wadah tunggal sebagai WAR tunggal.... - person arya; 01.06.2012
comment
Ada dua pendekatan untuk diskalakan: 1. Solusi Anda sendiri - Anda memiliki beberapa klien yang melakukan penyeimbangan beban dan memiliki alamat backend terdaftar di cluster (dua perang). 2. Anda menggunakan solusi pengelompokan yang ada: membangun cluster server aplikasi (menurut saya Tomcat bisa melakukannya) dan menggunakan cluster server database. Dalam hal ini NoSQL dapat diperhitungkan. Tapi ini solusi yang sangat bertanggung jawab dengan menggunakan NoSQL (perang tunggal). - person alexey28; 01.06.2012
comment
alexey29...saya minta maaf...tidak mendapatkan perspektif Anda tentang NoSQL. Menurut Anda dalam hal apa ini bisa menjadi pengganti RDBMS, jika memang ada? Sebenarnya saya masih belum terlalu paham dengan konsep NoSQL... - person arya; 01.06.2012