Bahan ini adalah sebahagian daripada siri "Pengenalan kepada Pembangunan Perusahaan" . Bahagian pertama, mengenai rangkaian, ada di sini . Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 1Seni bina perisian merujuk struktur yang dicipta dalam aplikasi, iaitu keseluruhan modul dan komponen program dan cara ia berinteraksi. Pengaturcara telah mengusahakan seni bina yang baik untuk masa yang lama, jadi tidak menghairankan bahawa kami telah mendengar banyak corak seni bina. Anda perlu memahaminya: apabila menulis aplikasi web, adalah penting untuk menghasilkan seni bina yang baik, kerana aplikasi web mempunyai lebih banyak komponen dan modul daripada aplikasi biasa. Corak seni binaialah cara pintar untuk menyelesaikan beberapa masalah reka bentuk perisian. Anda mungkin menjumpai corak reka bentuk seperti kaedah kilang, kilang abstrak, pembina, prototaip, tunggal dan mungkin lain-lain. Kami menggunakannya semasa menulis kod, mencipta kelas dan merancang cara kelas akan berinteraksi. Corak seni bina digunakan pada tahap abstraksi yang lebih tinggi, apabila merancang interaksi pengguna dengan pelayan, data dan komponen lain. Mari kita lihat beberapa corak dan cara menggunakannya.

Seni bina pelayan-pelanggan

Nama itu menimbulkan tanggapan bahawa segala-galanya tentang corak ini adalah mudah dan jelas. Tetapi mari kita jelaskan beberapa perkara, supaya apabila anda mula belajar Spring, anda akan memahami apa yang kita bicarakan. Katakan anda telah menulis apl sembang dan anda dan rakan mula menggunakannya. Anda boleh menggunakan pendekatan yang sangat mudah, menghantar mesej kepada satu sama lain secara langsung melalui Internet menggunakan alamat IP yang diketahui: Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 2Pada mulanya, semuanya nampaknya berfungsi dengan baik sehingga seorang lagi rakan anda meminta untuk menyertai sembang. Jadi apabila anda memutuskan untuk menambah rakan bersama anda pada sembang, anda menghadapi masalah seni bina: untuk setiap peserta sembang, anda perlu memberikan maklumat semasa tentang bilangan pengguna dan alamat IP pengguna baharu. Dan apabila mesej dihantar, ia perlu dihantar kepada semua peserta. Ini adalah masalah paling jelas yang akan timbul. Sekumpulan masalah lain akan disembunyikan dalam kod itu sendiri. Untuk mengelakkannya, anda perlu menggunakan pelayan, yang akan menyimpan semua maklumat tentang pengguna, termasuk alamat mereka. Mesej hanya perlu dihantar ke pelayan. Ia, seterusnya, menghantar mesej kepada setiap penerima. Apabila anda memutuskan untuk menambah bahagian pelayan pada apl sembang anda, anda mula membina seni bina pelayan pelanggan.

Komponen seni bina pelanggan-pelayan

Mari kita lihat apa itu semua. Seni bina pelayan pelanggan ialah corak reka bentuk yang digunakan untuk mencipta aplikasi web. Seni bina ini terdiri daripada tiga komponen: Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 3
  1. Pelanggan — Daripada namanya, kita boleh tahu bahawa komponen ini menggunakan beberapa perkhidmatan (aplikasi web), menghubungi pelayan untuk meminta beberapa maklumat.

  2. Pelayan — Di sinilah aplikasi web anda atau bahagian pelayannya berada. Ia menyimpan maklumat pengguna yang diperlukan atau boleh memintanya. Selain itu, apabila pelanggan menghantar permintaan, pelayanlah yang mengembalikan maklumat yang diminta.

  3. Rangkaian — Bahagian ini mudah. Ia memudahkan pertukaran maklumat antara pelanggan dan pelayan.

Pelayan boleh mengendalikan sejumlah besar permintaan daripada pengguna yang berbeza. Ini bermakna bahawa terdapat banyak pelanggan. Jika mereka perlu bertukar maklumat sesama mereka, ini perlu berlaku melalui pelayan. Oleh itu, pelayan mempunyai fungsi lain: kawalan trafik. Berkaitan dengan program sembang berbilang pengguna kami, semua aplikasi keseluruhan akan terdiri daripada dua modul:
  • modul klien — mengandungi antara muka grafik untuk melog masuk dan menghantar/menerima mesej

  • modul pelayan — aplikasi web yang dihoskan pada pelayan dan menerima mesej daripada pengguna, memprosesnya, dan kemudian menghantarnya kepada penerima

Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 4Apabila kami ingin melihat maklumat yang berguna (atau tidak sangat berguna) di Internet, kami membuka pelayar, memasukkan pertanyaan dalam bar carian dan mendapatkan maklumat daripada enjin carian sebagai tindak balas. Dalam rantaian ini, penyemak imbas adalah pelanggan. Ia menghantar permintaan dengan maklumat tentang perkara yang kami cari kepada pelayan. Pelayan memproses permintaan, mencari hasil yang paling relevan, membungkusnya dalam format yang boleh difahami oleh pelayar (pelanggan) dan menghantarnya kembali. Perkhidmatan kompleks seperti enjin carian boleh mempunyai banyak pelayan. Contohnya, pelayan kebenaran, pelayan untuk mencari maklumat, pelayan untuk menjana respons, dsb. Tetapi pelanggan tidak menyedari dan tidak mengambil berat tentang mana-mana perkara ini: bagi pelanggan, pelayan adalah entiti bersatu. Pelanggan hanya tahu tentang pintu masuk, iaitu, alamat pelayan yang permintaan harus dihantar. Ingat aplikasi yang kami periksabahagian sebelumnya siri ini . Ia adalah untuk memantau purata suhu udara di semua negara dalam masa nyata. Seni binanya kelihatan seperti ini: Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 5Aplikasi kami terletak pada pelayan. Katakan setiap lima saat ia menghantar permintaan kepada pelayan yang dikendalikan oleh stesen meteorologi tempatan, menerima maklumat suhu untuk negara tertentu daripada pelayan dan menyimpan maklumat ini. Apabila pelanggan meminta kami untuk "melihat suhu udara semasa dunia", kami memulangkan maklumat terbaharu yang disimpan, diisih mengikut negara. Oleh itu, aplikasi kami bertindak sebagai pelayan (apabila ia memproses permintaan pengguna) dan pelanggan (apabila ia menerima maklumat daripada pelayan lain).
Berikut ialah perkara penting: konsep pelayan bukan mengenai komputer tertentu, sebaliknya mengenai hubungan antara entiti rangkaian .
Seni bina pelayan pelanggan yang mudah digunakan sangat jarang dan hanya untuk aplikasi yang sangat mudah. Untuk projek yang sangat besar dan kompleks, kami menggunakan seni bina yang berbeza, yang akan anda temui pada masa hadapan. Sekarang mari kita lihat model yang hampir sama dengan seni bina pelayan-pelanggan.

Seni bina tiga peringkat

Ini ialah corak seni bina yang memperkenalkan modul ketiga — penyimpanan data . Dalam corak ini, tiga peringkat biasanya dipanggil lapisan atau peringkat: Bahagian 2. Mari kita bercakap sedikit tentang seni bina perisian - 6
  1. Lapisan klien ialah antara muka pengguna, juga dipanggil peringkat pembentangan. Ia boleh menjadi pelayar web yang menerima halaman HTML, atau antara muka pengguna grafik yang ditulis menggunakan JavaFX. Perkara utama ialah lapisan ini membolehkan pengguna menghantar permintaan ke pelayan dan memproses responsnya.

  2. Lapisan logik ialah pelayan yang memproses permintaan/tindak balas. Selalunya ia juga dipanggil lapisan pelayan. Di sini jugalah semua operasi logik berlaku: pengiraan matematik, operasi data, panggilan ke perkhidmatan lain atau storan data, dsb.

  3. Lapisan data ialah pelayan pangkalan data: pelayan kami berinteraksi dengannya. Lapisan ini menyimpan semua maklumat yang diperlukan untuk aplikasi beroperasi.

Oleh itu, pelayan kami memikul semua tanggungjawab untuk mengakses data dan tidak membenarkan pengguna mengaksesnya secara langsung.

Kelebihan seni bina tiga peringkat

Seni bina seperti ini memberi kita banyak kelebihan, termasuk:
  1. Keupayaan untuk melindungi daripada suntikan SQL (ini adalah serangan ke atas pelayan; ia melibatkan penghantaran kod SQL yang, apabila dilaksanakan, membolehkan penyerang menjejaskan pangkalan data kami).

  2. Pemisahan data yang kami mahu mengawal akses pengguna.

  3. Keupayaan untuk mengubah suai data sebelum menghantarnya kepada pelanggan.

  4. Skalabiliti (keupayaan untuk mengembangkan aplikasi kami kepada berbilang pelayan yang akan menggunakan pangkalan data yang sama.

  5. Keperluan yang lebih ketat mengenai kualiti sambungan pengguna. Apabila menjana respons pada pelayan, kami selalunya mendapat banyak maklumat yang berbeza daripada pangkalan data dan memformatnya, hanya meninggalkan apa yang pengguna perlukan. Melakukan ini mengurangkan jumlah maklumat yang kami hantar dalam respons kami kepada pelanggan.

Berapa kerapkah corak seni bina harus digunakan?

Jika anda biasa dengan, katakan, corak reka bentuk kaedah kilang , anda mungkin tertanya-tanya bila hendak menggunakannya. Kadangkala sukar untuk memutuskan perkara yang perlu dilakukan: cipta objek menggunakan operator baharu atau menggunakan kaedah kilang. Tetapi lama-kelamaan, pemahaman datang. Perkara sedikit berbeza apabila ia berkaitan dengan corak seni bina. Rangka kerja perusahaan direka bentuk untuk membolehkan pengaturcara mencipta projek berdasarkan beberapa corak yang diterima umum. Sehubungan itu, sebelum mempelajari Rangka Kerja Spring, anda semestinya memahami seni bina pelayan pelanggan, seni bina tiga peringkat dan seni bina MVC. Jangan risau: kita akan bercakap tentang seni bina MVC. Bahagian 3. HTTP/HTTPS Bahagian 4. Asas Maven Bahagian 5. Servlets dan Java Servlet API. Menulis aplikasi web ringkas Bahagian 6. Bekas Servlet Bahagian 7. Memperkenalkan corak MVC (Model-View-Controller)