CodeGym/Java Blog/Acak/Bagian 2. Mari kita bicara sedikit tentang arsitektur per...
John Squirrels
Level 41
San Francisco

Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak

Dipublikasikan di grup Acak
anggota
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 mengacu pada struktur yang dibuat dalam aplikasi, yaitu seluruh modul dan komponen program dan bagaimana mereka berinteraksi. Pemrogram telah mengerjakan arsitektur yang baik untuk waktu yang sangat lama, jadi tidak mengherankan jika kami mendengar banyak pola arsitektur. Anda perlu memahaminya: saat menulis aplikasi web, sangat penting untuk menghasilkan arsitektur yang baik, karena aplikasi web memiliki lebih banyak komponen dan modul daripada aplikasi biasa. Sebuah pola arsitekturadalah cara cerdas untuk memecahkan beberapa masalah desain perangkat lunak. Anda mungkin menemukan pola desain seperti factory method, abstract factory, builder, prototype, singleton, dan mungkin lainnya. Kami menggunakannya saat menulis kode, membuat kelas, dan merencanakan bagaimana kelas akan berinteraksi. Pola arsitektur digunakan pada tingkat abstraksi yang lebih tinggi, saat merencanakan interaksi pengguna dengan server, data, dan komponen lainnya. Mari kita lihat beberapa pola dan cara menggunakannya.

arsitektur klien-server

Nama itu memberi kesan bahwa segala sesuatu tentang pola ini sederhana dan jelas. Tetapi mari kita perjelas beberapa poin, sehingga ketika Anda mulai mempelajari Musim Semi, Anda akan mengerti apa yang sedang kita bicarakan. Katakanlah Anda telah menulis aplikasi obrolan, dan Anda serta seorang teman mulai menggunakannya. Anda dapat mengadopsi pendekatan yang sangat sederhana, mengirim pesan satu sama lain secara langsung melalui Internet menggunakan alamat IP yang diketahui: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 2Pada awalnya, semuanya tampak berfungsi dengan baik sampai salah satu teman Anda yang lain meminta untuk bergabung dalam obrolan. Jadi, saat Anda memutuskan untuk menambahkan teman bersama ke obrolan, Anda menghadapi masalah arsitektural: untuk setiap peserta obrolan, Anda perlu memberikan informasi terkini tentang jumlah pengguna, dan alamat IP pengguna baru. Dan ketika sebuah pesan terkirim, itu harus disampaikan ke semua peserta. Ini adalah masalah paling jelas yang akan muncul. Banyak masalah lain akan disembunyikan di dalam kode itu sendiri. Untuk menghindarinya, Anda perlu menggunakan server, yang akan menyimpan semua informasi tentang pengguna, termasuk alamat mereka. Pesan hanya perlu dikirim ke server. Itu, pada gilirannya, mengirim pesan ke masing-masing penerima. Saat Anda memutuskan untuk menambahkan bagian server ke aplikasi obrolan Anda, Anda mulai membangun arsitektur server-klien.

Komponen arsitektur client-server

Mari kita lihat apa itu semua. Arsitektur client-server adalah pola desain yang digunakan 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, kita dapat mengetahui bahwa komponen ini menggunakan beberapa layanan (aplikasi web), menghubungi server untuk meminta beberapa informasi.

  2. Server — Di sinilah aplikasi web Anda atau bagian servernya berada. Ini menyimpan informasi pengguna yang diperlukan atau dapat memintanya. Selain itu, ketika klien mengirim permintaan, serverlah yang mengembalikan informasi yang diminta.

  3. Jaringan — Bagian ini sederhana. Ini memfasilitasi pertukaran informasi antara klien dan server.

Server dapat menangani sejumlah besar permintaan dari pengguna yang berbeda. Artinya klien bisa banyak. Jika mereka perlu bertukar informasi di antara mereka sendiri, ini harus dilakukan melalui server. Dengan demikian, server memiliki fungsi lain: kontrol lalu lintas. Sehubungan dengan program obrolan multi-pengguna kami, seluruh aplikasi akan terdiri dari dua modul:
  • modul klien — berisi antarmuka grafis untuk masuk dan mengirim/menerima pesan

  • modul server — aplikasi web yang dihosting di server dan menerima pesan dari pengguna, memprosesnya, lalu mengirimkannya ke penerima

Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 4Saat kami ingin melihat informasi yang berguna (atau tidak terlalu berguna) di Internet, kami membuka browser, memasukkan kueri di bilah pencarian, dan mendapatkan informasi dari mesin pencari sebagai tanggapan. Dalam rantai ini, browser adalah kliennya. Ini mengirimkan permintaan dengan informasi tentang apa yang kami cari ke server. Server memproses permintaan, menemukan hasil yang paling relevan, mengemasnya dalam format yang dapat dipahami browser (klien) dan mengirimkannya kembali. Layanan kompleks seperti mesin telusur dapat memiliki banyak server. Misalnya, server otorisasi, server untuk menemukan informasi, server untuk menghasilkan respons, dll. Tetapi klien tidak mengetahui dan tidak peduli tentang semua ini: untuk klien, server adalah entitas terpadu. Klien hanya tahu tentang titik masuk, yaitu, alamat server tujuan pengiriman permintaan. Ingat aplikasi yang kami periksabagian sebelumnya dari seri ini . Itu untuk memantau suhu udara rata-rata di semua negara secara real time. Arsitekturnya terlihat seperti ini: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 5Aplikasi kita terletak di server. Katakanlah setiap lima detik mengirimkan permintaan ke server yang dioperasikan oleh stasiun meteorologi lokal, menerima informasi suhu untuk negara tertentu dari server, dan menyimpan informasi ini. Saat klien meminta kami untuk "melihat suhu udara dunia saat ini", kami mengembalikan informasi yang paling baru disimpan, diurutkan berdasarkan negara. Jadi, aplikasi kita bertindak sebagai server (saat memproses permintaan pengguna) dan klien (saat menerima informasi dari server lain).
Inilah poin penting: konsep server bukan tentang komputer tertentu, melainkan tentang hubungan antara entitas jaringan .
Arsitektur client-server yang sederhana sangat jarang digunakan dan hanya untuk aplikasi yang sangat sederhana. Untuk proyek yang sangat besar dan kompleks, kami menggunakan arsitektur yang berbeda, yang akan Anda temui di masa mendatang. Sekarang mari kita lihat model yang sangat mirip dengan arsitektur client-server.

Arsitektur tiga tingkat

Ini adalah pola arsitektur yang memperkenalkan modul ketiga — penyimpanan data . Dalam pola ini, ketiga tingkatan tersebut biasa disebut layer atau tier: Bagian 2. Mari kita bicara sedikit tentang arsitektur perangkat lunak - 6
  1. Lapisan klien adalah antarmuka pengguna, juga disebut tingkat presentasi. Itu bisa berupa browser web yang menerima halaman HTML, atau antarmuka pengguna grafis yang ditulis menggunakan JavaFX. Hal utama adalah lapisan ini memungkinkan pengguna mengirim permintaan ke server dan memproses responsnya.

  2. Lapisan logika adalah server yang memproses permintaan/tanggapan. Sering juga disebut lapisan server. Ini juga tempat semua operasi logika berlangsung: perhitungan matematis, operasi data, panggilan ke layanan lain atau penyimpanan data, dll.

  3. Lapisan data adalah server basis data: server kami berinteraksi dengannya. Lapisan ini menyimpan semua informasi yang diperlukan agar aplikasi dapat beroperasi.

Dengan demikian, server kami memikul semua tanggung jawab untuk mengakses data dan tidak mengizinkan pengguna untuk mengaksesnya secara langsung.

Keuntungan dari arsitektur tiga tingkat

Arsitektur seperti ini memberi kita banyak keuntungan, antara lain:
  1. Kemampuan untuk melindungi dari injeksi SQL (ini adalah serangan pada server; melibatkan pengiriman kode SQL yang, ketika dieksekusi, memungkinkan penyerang memengaruhi basis data kami).

  2. Pemisahan data yang ingin kita kontrol akses penggunanya.

  3. Kemampuan untuk memodifikasi data sebelum mengirimkannya ke klien.

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

  5. Persyaratan yang lebih ketat pada kualitas koneksi pengguna. Saat membuat respons di server, kami sering mendapatkan banyak informasi berbeda dari database dan memformatnya, hanya menyisakan apa yang dibutuhkan pengguna. Melakukan hal ini mengurangi jumlah informasi yang kami kirimkan sebagai tanggapan kami kepada klien.

Seberapa sering pola arsitektur harus digunakan?

Jika Anda terbiasa dengan, katakanlah, pola desain metode pabrik , Anda mungkin bertanya-tanya kapan harus menggunakannya. Terkadang sulit memutuskan apa yang harus dilakukan: membuat objek menggunakan operator baru atau menggunakan metode pabrik. Namun seiring waktu, pemahaman datang. Hal-hal sedikit berbeda dalam hal pola arsitektur. Kerangka kerja perusahaan dirancang untuk memungkinkan programmer membuat proyek berdasarkan beberapa pola yang diterima secara umum. Oleh karena itu, sebelum mempelajari Spring Framework, Anda harus memahami arsitektur client-server, arsitektur three-tier, dan arsitektur MVC. Jangan khawatir: kita masih akan berbicara tentang arsitektur MVC. Bagian 3. HTTP/HTTPS Bagian 4. Dasar-dasar Maven Bagian 5. Servlet dan Java Servlet API. Menulis aplikasi web sederhana Bagian 6. Servlet containers Bagian 7. Memperkenalkan pola MVC (Model-View-Controller)
Komentar
  • Populer
  • Baru
  • Lama
Anda harus login untuk memberikan komentar
Halaman ini belum memiliki komentar