JavaRush /Java Blog /Random-ID /Bagian 2. Mari kita bicara sedikit tentang arsitektur per...

Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak

Dipublikasikan di grup Random-ID
Materi ini merupakan bagian dari seri “ Pengantar Pengembangan Usaha ”. Bagian pertama tentang jaringan ada di sini . Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 1Arsitektur perangkat lunak adalah struktur yang menjadi dasar pembuatan aplikasi dan modul serta komponen dari keseluruhan program berinteraksi. Para programmer telah lama mencoba menciptakan arsitektur yang baik, sehingga tidak mengherankan jika kita sekarang mengetahui banyak sekali pola arsitektur. Anda perlu memahaminya: ketika Anda menulis aplikasi web, masalah arsitektur menjadi akut, karena komponen dan modul di dalamnya lebih banyak daripada aplikasi biasa. Pola arsitektur adalah cara yang sudah dipikirkan dengan matang untuk memecahkan beberapa masalah desain perangkat lunak. Anda mungkin pernah menemukan pola desain seperti Metode Pabrik, Pabrik Abstrak, Pembuat, Prototipe, Singleton, dan mungkin lainnya. Mereka digunakan untuk sekadar menulis kode, membuat kelas, dan merencanakan cara mereka berinteraksi. Pola arsitektur digunakan pada tingkat abstraksi yang lebih tinggi - ketika merencanakan interaksi pengguna aplikasi dengan server, data, dan komponen proyek lainnya. Mari kita lihat sekilas beberapa template dan cara menggunakannya.

Arsitektur klien-server

Dari namanya orang mendapat kesan bahwa segala sesuatu tentang topik ini sederhana dan jelas. Namun mari kita perjelas beberapa poin sehingga ketika Anda mulai mempelajari Musim Semi bersyarat, Anda memahami dengan tepat apa yang sedang kita bicarakan. Katakanlah Anda menulis obrolan, dan Anda serta teman Anda mulai menggunakannya. Opsi sederhana dimungkinkan di sini - Anda mengirim pesan satu sama lain secara langsung melalui Internet menggunakan alamat IP yang Anda ketahui: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 2Pada awalnya, tampaknya semuanya berfungsi dengan baik, sampai teman Anda yang lain muncul dengan pertanyaan: “Mengapa tidak tidakkah kamu menambahkanku ke obrolanmu?” Dan ketika Anda memutuskan untuk menambahkan teman bersama ke obrolan, Anda dihadapkan pada masalah arsitektur: setiap pengguna obrolan perlu memperbarui informasi tentang jumlah pengguna, menambahkan alamat IP pengguna baru. Dan ketika mengirim pesan harus tersampaikan ke seluruh peserta. Ini adalah masalah paling nyata yang akan muncul. Lebih banyak masalah akan disembunyikan di dalam kode itu sendiri. Untuk menghindarinya, Anda perlu menggunakan server yang akan menyimpan semua informasi tentang pengguna dan mengetahui alamat mereka. Pesan hanya perlu dikirim ke server. Dan dia, pada gilirannya, akan mengirimkan pesan tersebut ke semua penerima. Ketika Anda memutuskan untuk menambahkan sisi server ke obrolan Anda, Anda akan mulai membangun arsitektur client-server.

Komponen arsitektur client-server

Mari kita cari tahu siapa dia. Arsitektur client-server adalah pola desain, dasar untuk membuat aplikasi web. Arsitektur ini terdiri dari tiga komponen: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 3
  1. Klien - dari namanya menjadi jelas bahwa ini adalah pengguna layanan (aplikasi web) yang menghubungi server untuk mendapatkan informasi tertentu.

  2. Server adalah tempat aplikasi web Anda atau bagian servernya berada. Dia memiliki informasi yang diperlukan tentang pengguna atau dapat memintanya. Juga, ketika klien menghubungi, server mengembalikan informasi yang diminta.

  3. Jaringannya sederhana: memastikan pertukaran informasi antara klien dan server.

Server dapat memproses sejumlah besar permintaan dari pengguna yang berbeda. Artinya, klien bisa banyak, dan jika mereka perlu bertukar informasi satu sama lain, ini harus dilakukan melalui server. Dengan demikian, server menerima fungsi tambahan lain - kontrol lalu lintas. Jika kita berbicara tentang obrolan multi-pengguna yang kita buat, seluruh kode program akan terdiri dari dua modul:
  • klien - berisi antarmuka grafis untuk otorisasi, mengirim/menerima pesan;

  • sisi server - aplikasi web yang dihosting di server dan menerima pesan dari pengguna, memprosesnya, dan kemudian mengirimkannya ke penerima.

Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 4Ketika kita ingin melihat informasi yang berguna (atau tidak terlalu berguna) di Internet, kita membuka browser, memasukkan kueri ke dalam bilah pencarian, dan sebagai tanggapan kita menerima informasi dari mesin pencari. Dalam rantai ini, browser adalah klien kami. Ini mengirimkan permintaan dengan informasi tentang apa yang kita cari ke server. Server memproses permintaan, menemukan hasil yang paling relevan, mengemasnya ke dalam format yang dapat dimengerti oleh browser (klien) dan mengirimkannya kembali. Dalam layanan kompleks seperti mesin pencari, terdapat banyak server. Misalnya server otorisasi, server untuk mencari informasi, server untuk menghasilkan respon. Tetapi klien tidak tahu apa-apa tentang ini: baginya, server adalah sesuatu yang terpadu. Klien hanya mengetahui titik masuk, yaitu alamat server tujuan pengiriman permintaan. Mari kita ingat aplikasi yang kita lihat di bagian sebelumnya - untuk memantau suhu udara rata-rata di semua negara secara real time. Arsitekturnya akan terlihat seperti ini: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 5Aplikasi kita terletak di server. Misalnya, setiap lima detik ia mengirimkan permintaan ke server pusat hidrometeorologi lokal, menerima informasi dari mereka tentang suhu di negara tertentu, dan menyimpan informasi ini. Saat klien menghubungi kami dengan permintaan untuk “melihat suhu udara dunia saat ini”, kami mengembalikan informasi terbaru yang disimpan, diurutkan berdasarkan negara. Jadi, aplikasi kita adalah server (saat memproses permintaan pengguna) dan klien (saat menerima informasi dari server lain).
Penting: konsep server bukan tentang komputer tertentu, tetapi tentang hubungan antar pelanggan jaringan .
Arsitektur client-server sederhana sangat jarang digunakan dan hanya untuk aplikasi yang sangat sederhana. Untuk proyek yang sangat besar dan kompleks, berbagai jenis arsitektur digunakan, yang akan lebih Anda kenali di masa mendatang. Sekarang mari kita lihat model yang sangat mirip dengan model client-server.

Arsitektur tiga tingkat

Ini adalah pola arsitektur yang memperkenalkan pemain ketiga: gudang data . Saat menggunakan pola ini, ketiga level tersebut biasanya disebut lapisan: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 6
  1. Lapisan klien adalah antarmuka pengguna. Ini bisa berupa browser web yang menjadi tujuan pengiriman halaman HTML, atau aplikasi GUI yang ditulis menggunakan JavaFX. Hal utama adalah dengan bantuannya pengguna dapat mengirim permintaan ke server dan memproses tanggapannya.

  2. Lapisan logika adalah server tempat permintaan/tanggapan diproses. Hal ini sering juga disebut lapisan server. Semua operasi logis juga terjadi di sini: perhitungan matematis, operasi data, panggilan ke layanan lain atau penyimpanan data.

  3. Lapisan data adalah server database: server kami mengaksesnya. Lapisan ini menyimpan semua informasi penting yang digunakan aplikasi selama operasi.

Dengan demikian, server kami memikul semua kewajiban untuk mengakses data, tanpa mengizinkan pengguna untuk mengaksesnya secara langsung.

Manfaat arsitektur tiga tingkat

Dengan menggunakan arsitektur seperti itu, kita mendapatkan banyak keuntungan, antara lain:
  1. Kemampuan untuk membangun perlindungan terhadap injeksi SQL adalah serangan terhadap server tempat kode SQL dikirimkan, dan ketika kode ini dijalankan, penyerang dapat memengaruhi database kami.

  2. Pembatasan data yang ingin kami atur akses penggunanya.

  3. Kemampuan untuk mengubah data sebelum mengirimkannya ke klien.

  4. Skalabilitas - kemampuan untuk memperluas aplikasi kita ke beberapa server yang akan menggunakan database yang sama.

  5. Lebih sedikit persyaratan untuk kualitas koneksi pengguna. Saat menghasilkan respons di server, sering kali kita mengambil banyak informasi berbeda dari database, memformatnya, hanya menyisakan apa yang dibutuhkan pengguna. Dengan cara ini kami mengurangi jumlah informasi yang kami kirimkan sebagai respons kepada klien.

Seberapa sering Anda harus menggunakan pola arsitektur?

Jika Anda familiar dengan, misalnya, pola desain Metode Pabrik , Anda mungkin bertanya-tanya kapan harus menggunakannya. Terkadang sulit untuk memutuskan apa yang harus dilakukan: membuat objek menggunakan operator baru atau menggunakan metode pabrik. Namun seiring berjalannya waktu, pemahaman datang. Dengan pola arsitektur, segalanya menjadi sedikit berbeda. Kerangka kerja perusahaan dirancang agar pemrogram dapat menggunakannya untuk membuat proyek berdasarkan beberapa pola yang diterima secara umum. Oleh karena itu, sebelum mempelajari Spring Framework, Anda pasti perlu memahami apa itu arsitektur client-server, arsitektur tiga tingkat, dan arsitektur MVC. Jangan khawatir: kita akan membicarakan arsitektur MVC nanti. Bagian 1. Apa yang perlu Anda ketahui sebelum mempelajari Spring dan JavaEE Bagian 3. Protokol HTTP/HTTPS Bagian 4. Dasar-dasar Maven Bagian 5. Servlet. Menulis aplikasi web sederhana Bagian 6. Kontainer servlet Bagian 7. Memperkenalkan pola MVC (Model-View-Controller) Bagian 8. Menulis aplikasi spring-boot kecil
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION