3 tier architecture
DESCRIPTION
hasantahan.com,3 tier architecture,3 katmanlı mimari, N tier architecture,tier,3 tier,2 tier,1 tier, n tierTRANSCRIPT
3 KAT
MANLI MİM
ARİ
3-T
I ER
AR
CH
İ TE C
T UR
E
İÇERİK
3 Katmanlı Mimari nedir? 3 Katmanlı Mimarinin Gelişimi 3 Katmanlı Mimarinin Katmanları 3 Katmanlı Mimarinin Yapısı ve Yararları 3 Katmanlı Mimari Yapısına Uygun Örnek JAVA Class
3 KATMANLI MİMARİ NEDİR?
3 katmanlı mimari, yazılım mühendisliğinde sık sık duyduğumuz kavramlardan biridir. Bu mimariyi kullanan bir programın amacı, bir kullanıcı ve veritabanı arasında kullanıcının veri isteklerine hizmet etmektir. Yazılımcı için,esnek ve yeniden kullanılabilir bir model sunar.
3 KATMANLI MİMARİ NEDİR?
Katmanları: Sunum Katmanı
(Presentation Layer) İş Katmanı
(Business Layer) Veri Katmanı
(Data Layer)
3 KATMANLI MİMARİNİN GELİŞİMİ
Tek Katmanlı Mimari 2 Katmanlı Mimari 3 Katmanlı Mimari
3 KATMANLI MİMARİNİN GELİŞİMİ
Tek Katmanlı Mimari
Veri tabanının kullanılmadığı uygulamalar diyebiliriz.Bütün processler tek bilgisayarda işlenir. Basit ve kolay bir yapısı vardır.
3 KATMANLI MİMARİNİN GELİŞİMİ
2 Katmanlı Mimari
Client/Server modeli vardır.
Tüm iş yükü clienta düşer.
3 KATMANLI MİMARİNİN GELİŞİMİ
3 Katmanlı Mimari
3 katmandan oluşur.
İş yükü,
iş katmanındadır.
3 KATMANLI MİMARİNİN KATMANLARI
3 KATMANLI MİMARİNİN KATMANLARI
Sunum Katmanı (Presentation Layer)
Kullanıcının verileri göreceği, ya da veri gireceği katmandır. Yani kullanıcı arayüzünü içerir. Örn; bilgisayarımızdan bir internet sayfasına girelim. O internet sitesine ait bilgiler önümüze geliyor. Gerekirse biz bilgi giriyoruz. Kullanıcı adı ve şifre bilgilerini gönderiyoruz.
SUNUM KATMANI (PRESENTATİON LAYER)
3 KATMANLI MİMARİNİN KATMANLARI
İş Katmanı (Business Layer)
Veri katmanı ile sunum katmanını birbirine bağlar. Veri tabanından bir bilgi getirilmesi gerektiğinde,istenen bilgi belirlenir ve iş katmanı sayesinde veritabanından bilgiler getirilerek sunum katmanına gönderilir. Veri tabanına bilgi eklenmek istendiğinde de sunum katmanından alınan veriler işlenerek data katmanına gönderilir. Bütün processler bu katmanda işlenir.
İŞ KATMANI (BUSİNESS LAYER)
3 KATMANLI MİMARİNİN KATMANLARI
Veri Katmanı (Data Layer)
Veri katmanı, veri tabanının temsil edildiği katmandır.Sql komutlarının işlenmesi diyebiliriz. Veritabanındaki CRUD (create,read,update,delete) işlemleri bu katman sayesinde gerçekleşir.
VERİ KATMANI (DATA LAYER)
Client/Server modelini kullanarak çalışır. Fakat bir web server üzerinden işlemlerini yapar.
3 KATMANLI MİMARİNİN YAPISI VE YARARLARI
3 KATMANLI MİMARİNİN YAPISI VE YARARLARI
Web server kullanıldığı için client üzerine iş düşmez. Karmaşık işlemler iş katmanında yapılır.
Çok katmanlı mimarinin alt yapısı oluşturulduktan sonra, kodlama çok hızlı gerçekleşmektedir.
Kodlar belli bir standarda uygun olarak yazılmaktadır.
Her yerde metod kullanıldığı için kodun okunurluğu artmaktadır.
3 KATMANLI MİMARİNİN YAPISI VE YARARLARI
Katmanlar birbirini referans aldığı için, katmanların büyümesi engellenmektedir. Çünkü iş ve veri katmanının, sunum katmanına yüklenme sorunluluğu ortadan kalkar ve sunum katmanının performansı artar.
Sunum katmanında veri tabanı bağlantısı ile ilgiler bulunmadığı için, güvenlik artmaktadır.
3 KATMANLI MİMARİNİN YAPISI VE YARARLARI
Bir katmanda yapılan bir değişiklik uygulamanın tamamını kapsamaktadır. Bu da daha kolay kod güncellenmesi demektir. Mesela MSSQL yerine Oracle veri tabanına geçileceği zaman sadece veri katmanını güncelemek yeterli olacaktır.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(1)
package classes;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList; // Kütüphaneler
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(2)
public class dataApplication { //Class
Statement st;
PreparedStatement prs;
ResultSet rs;
private Connection con;
private String dbname="imdb"; //veritabanı adımız
private String dbusername="hasan"; //Veritabanı kullanıcı adımız
private String dbpassword="caner"; //veritabanı şifremiz
private String host="jdbc:mysql://localhost:3306/";
private String drivername="com.mysql.jdbc.Driver";
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(3)
public Connection baglan()
{ try {
Class.forName(drivername).newInstance();
con=(Connection)DriverManager.getConnection(host+ dbname,dbusername,dbpassword);
}
catch (Exception e) {
System.out.println(e);
}
return con;
} //Veri tabanı ile bağlantı kurmak için gerekli connection oluşturur.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(4)
public ResultSet FULLRESULTSET(String TabloAdi)
{
try {
st=baglan().createStatement();
rs=st.executeQuery("SELECT * FROM "+TabloAdi);
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
} //Tablodaki tüm bilgileri getirir.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(5)
public ResultSet FULLRESULTSET(String TabloAdi,Object params)
{
try {
prs=baglan().prepareStatement("SELECT * FROM"+TabloAdi+"WHERE "+params+"=?");
prs.setObject(1, params);
rs=prs.executeQuery();
} catch (Exception e) {
System.err.println(e);
}
return rs;
} //Tek parametreye göre veri tabanından bilgi getirir.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(6)
public PreparedStatement PARAMETRELER(PreparedStatement psp,ArrayList<?> params)
{ try {
for (int i = 1; i <= params.size(); i++) {
psp.setObject(i, params.get(i-1));
}
} catch (SQLException e) {
e.printStackTrace();
}
return psp;
} //Çok parametreye göre veri tabanından bilgi getirir.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(7)
public int RUD(String sorgu,ArrayList<?> params)
{ int j=0;
try {
prs=baglan().prepareStatement(sorgu);
for (int i = 1; i <= params.size(); i++) {
prs.setObject(i, params.get(i-1));
}
j=prs.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
return j;
} //DELETE-UPDATE-INSERT işlemlerini gerçekleştirir.
3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(8)
public void CLOSEALL()
{
try {
con.close();
prs.close();
rs.close();
st.close();
} catch (Exception e) {
System.err.println(e);
}
}} //Veri tabanı bağlantısı için gerekli olan tüm nesneleri kapatır.