CodeGym/Java Blogu/Rastgele/Bölüm 2. Biraz yazılım mimarisinden bahsedelim
John Squirrels
Seviye
San Francisco

Bölüm 2. Biraz yazılım mimarisinden bahsedelim

grupta yayınlandı
Bu materyal , "Kurumsal Geliştirmeye Giriş" serisinin bir parçasıdır . Ağ oluşturma ile ilgili ilk bölüm burada . Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 1Yazılım mimarisi, bir uygulama içinde oluşturulan yapıyı, yani programın tüm modüllerini ve bileşenlerini ve bunların nasıl etkileşimde bulunduğunu ifade eder. Programcılar çok uzun zamandır iyi mimariler üzerinde çalışıyorlar, bu yüzden birçok mimari model duymamız şaşırtıcı değil. Bunları anlamanız gerekir: Bir web uygulaması yazarken, iyi bir mimari bulmak çok önemlidir, çünkü bir web uygulamasında normal bir uygulamadan daha fazla bileşen ve modül bulunur. Bir mimari desenbazı yazılım tasarım problemlerini çözmenin akıllı bir yoludur. Muhtemelen fabrika yöntemi, soyut fabrika, oluşturucu, prototip, tekil ve muhtemelen diğerleri gibi tasarım modelleriyle karşılaşmışsınızdır. Bunları kod yazarken, sınıflar oluştururken ve sınıfların nasıl etkileşime gireceğini planlarken kullanırız. Kullanıcının sunucular, veriler ve diğer bileşenlerle etkileşimini planlarken mimari modeller daha yüksek bir soyutlama düzeyinde kullanılır. Bazı kalıplara ve bunların nasıl kullanılacağına hızlıca bir göz atalım.

İstemci-sunucu mimarisi

Adı, bu modelle ilgili her şeyin basit ve net olduğu izlenimini yaratıyor. Ama bazı noktaları açıklığa kavuşturalım, böylece Bahar'ı çalışmaya başladığınızda neden bahsettiğimizi anlayacaksınız. Diyelim ki bir sohbet uygulaması yazdınız ve siz ve bir arkadaşınız onu kullanmaya başladınız. Bilinen IP adreslerini kullanarak doğrudan İnternet üzerinden birbirinize mesaj göndererek çok basit bir yaklaşım benimseyebilirsiniz: Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 2İlk başta, arkadaşlarınızdan biri sohbete katılmak isteyene kadar her şey yolunda görünüyor. Bu nedenle, ortak arkadaşınızı sohbete eklemeye karar verdiğinizde, mimari bir sorunla karşı karşıya kalırsınız: her sohbet katılımcısı için, kullanıcı sayısı ve yeni kullanıcıların IP adresleri hakkında güncel bilgiler vermeniz gerekir. Ve bir mesaj gönderildiğinde, tüm katılımcılara iletilmesi gerekir. Bunlar ortaya çıkacak en bariz problemlerdir. Kodun kendisinde başka bir grup sorun gizlenecektir. Onlardan kaçınmak için bir sunucu kullanmanız gerekir., adresleri de dahil olmak üzere kullanıcılar hakkındaki tüm bilgileri depolayacak. Mesajların yalnızca sunucuya gönderilmesi gerekir. Sırayla, alıcıların her birine mesajlar gönderir. Sohbet uygulamanıza bir sunucu parçası eklemeye karar verdiğinizde, bir istemci-sunucu mimarisi oluşturmaya başlıyorsunuz.

İstemci-sunucu mimarisinin bileşenleri

Ne hakkında olduğunu görelim. İstemci -sunucu mimarisi, web uygulamaları oluşturmak için kullanılan bir tasarım modelidir. Bu mimari üç bileşenden oluşur: Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 3
  1. İstemci — Adından, bu bileşenin bazı hizmetler (web uygulaması) kullandığını ve bazı bilgiler istemek için bir sunucuyla iletişim kurduğunu söyleyebiliriz.

  2. Sunucu — Bu, web uygulamanızın veya sunucu kısmının bulunduğu yerdir. Gerekli kullanıcı bilgilerini saklar veya talep edebilir. Ek olarak, bir müşteri bir istek gönderdiğinde, istenen bilgiyi sunucu verir.

  3. Ağ — Bu kısım basittir. İstemci ve sunucu arasındaki bilgi alışverişini kolaylaştırır.

Sunucu, farklı kullanıcılardan gelen çok sayıda isteği işleyebilir. Bu, birçok müşteri olabileceği anlamına gelir. Kendi aralarında bilgi alışverişi yapmaları gerekiyorsa, bunun sunucu aracılığıyla olması gerekir. Böylece, sunucunun başka bir işlevi vardır: trafik kontrolü. Çok kullanıcılı sohbet programımızla ilgili olarak, uygulamanın tamamı iki modülden oluşacaktır:
  • bir istemci modülü — oturum açmak ve mesaj göndermek/almak için bir grafik arayüz içerir

  • bir sunucu modülü — bir sunucuda barındırılan ve kullanıcılardan gelen mesajları alan, bunları işleyen ve ardından alıcılara gönderen bir web uygulaması

Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 4İnternette yararlı (veya çok yararlı olmayan) bilgilere bakmak istediğimizde bir tarayıcı açıp arama çubuğuna bir sorgu girer ve arama motorundan yanıt olarak bilgi alırız. Bu zincirde, tarayıcı istemcidir. Sunucuya ne aradığımıza dair bilgi içeren bir istek gönderir. Sunucu isteği işler, en alakalı sonuçları bulur, bunları tarayıcının (istemcinin) anlayabileceği bir biçimde paketler ve geri gönderir. Arama motorları gibi karmaşık hizmetlerin çok sayıda sunucusu olabilir. Örneğin, bir yetkilendirme sunucusu, bilgi bulmak için bir sunucu, yanıt oluşturmak için bir sunucu vb. İstemci yalnızca giriş noktasını bilir, yani, isteklerin gönderileceği sunucunun adresi. İncelediğimiz uygulamayı hatırlayınbu serinin önceki bölümü . Tüm ülkelerdeki ortalama hava sıcaklığını gerçek zamanlı olarak izlemek içindi. Mimarisi şuna benzer: Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 5Uygulamamız sunucuda yer almaktadır. Her beş saniyede bir yerel meteoroloji istasyonlarının işlettiği sunuculara istek gönderiyor, sunuculardan belirli bir ülke için sıcaklık bilgisi alıyor ve bu bilgileri saklıyor diyelim. Müşteri bizden "dünyanın mevcut hava sıcaklığını görüntülememizi" istediğinde, ülkeye göre sıralanmış olarak en son kaydedilen bilgileri döndürürüz. Böylece uygulamamız hem sunucu (kullanıcı isteklerini işlerken) hem de istemci (diğer sunuculardan bilgi alırken) gibi davranır.
Burada önemli bir nokta var: Sunucu kavramı belirli bir bilgisayarla ilgili değil, ağ varlıkları arasındaki ilişkiyle ilgilidir .
Basit bir istemci-sunucu mimarisi çok nadiren ve sadece çok basit uygulamalar için kullanılır. Gerçekten büyük ve karmaşık projeler için ileride karşılaşacağınız farklı mimariler kullanıyoruz. Şimdi client-server mimarisine çok benzeyen bir modele bakalım.

Üç katmanlı mimari

Bu , üçüncü bir modül olan veri depolamayı tanıtan bir mimari modeldir . Bu modelde, üç seviye genellikle katmanlar veya katmanlar olarak adlandırılır: Bölüm 2. Biraz yazılım mimarisinden bahsedelim - 6
  1. İstemci katmanı, sunum katmanı olarak da adlandırılan kullanıcı arabirimidir. HTML sayfalarını alan bir web tarayıcısı veya JavaFX kullanılarak yazılmış bir grafik kullanıcı arabirimi olabilir. Önemli olan, bu katmanın kullanıcının sunucuya istek göndermesine ve yanıtlarını işlemesine izin vermesidir.

  2. Mantık katmanı, istekleri/yanıtları işleyen sunucudur. Genellikle sunucu katmanı olarak da adlandırılır. Burası aynı zamanda tüm mantıksal işlemlerin gerçekleştiği yerdir: matematiksel hesaplamalar, veri işlemleri, diğer hizmetlere veya veri depolarına yapılan çağrılar vb.

  3. Veri katmanı, veritabanı sunucusudur: sunucumuz onunla etkileşime girer. Bu katman, uygulamanın çalışması için gerekli tüm bilgileri saklar.

Bu nedenle, sunucumuz verilere erişim için tüm sorumluluğu üstlenir ve kullanıcının doğrudan erişmesine izin vermez.

Üç katmanlı mimarinin avantajları

Bunun gibi bir mimari bize aşağıdakiler dahil pek çok avantaj sağlar:
  1. SQL enjeksiyonuna karşı koruma yeteneği (bu, bir sunucuya yönelik bir saldırıdır; çalıştırıldığında bir saldırganın veritabanımızı etkilemesine izin veren SQL kodunun gönderilmesini içerir).

  2. Kullanıcı erişimini kontrol etmek istediğimiz verilerin ayrılması.

  3. İstemciye göndermeden önce verileri değiştirme yeteneği.

  4. Ölçeklenebilirlik (uygulamamızı aynı veritabanını kullanacak birden fazla sunucuya genişletme yeteneği.

  5. Kullanıcı bağlantılarının kalitesine ilişkin daha az katı gereksinimler. Sunucuda bir yanıt oluştururken, genellikle bir veritabanından pek çok farklı bilgi alır ve onu biçimlendirerek yalnızca kullanıcının ihtiyaç duyduğunu bırakırız. Bunu yapmak, müşteriye yanıt olarak gönderdiğimiz bilgi miktarını azaltır.

Mimari desenler ne sıklıkla kullanılmalıdır?

Diyelim ki fabrika yöntemi tasarım modeline aşina iseniz , muhtemelen onu ne zaman kullanacağınızı merak etmişsinizdir. Bazen ne yapılacağına karar vermek zordur: yeni işleci kullanarak veya fabrika yöntemini kullanarak bir nesne oluşturun. Ancak zamanla anlayış gelir. Mimari desenler söz konusu olduğunda işler biraz farklı. Kurumsal çerçeveler, bir programcının genel olarak kabul edilen bazı modellere dayalı bir proje oluşturmasına izin verecek şekilde tasarlanmıştır. Buna göre Spring Framework'ü öğrenmeden önce client-server mimarisini, üç katmanlı mimariyi ve MVC mimarisini mutlaka anlamalısınız. Endişelenmeyin: henüz MVC mimarisi hakkında konuşacağız. Kısım 3. HTTP/HTTPS Kısım 4. Maven'in temelleri Bölüm 5. Servlet'ler ve Java Servlet API'si. Basit bir web uygulaması yazmak Bölüm 6. Servlet kapsayıcıları Bölüm 7. MVC (Model-View-Controller) modeline giriş
Yorumlar
  • Popüler
  • Yeni
  • Eskimiş
Yorum bırakmak için giriş yapmalısınız
Bu sayfada henüz yorum yok