3 tier architecture

27
3 KATMA NLI Mİ MARİ 3-TIER ARCHİTECTURE

Upload: hasan-tahan

Post on 24-Jun-2015

1.191 views

Category:

Education


2 download

DESCRIPTION

hasantahan.com,3 tier architecture,3 katmanlı mimari, N tier architecture,tier,3 tier,2 tier,1 tier, n tier

TRANSCRIPT

Page 1: 3 tier architecture

3 KAT

MANLI MİM

ARİ

3-T

I ER

AR

CH

İ TE C

T UR

E

Page 2: 3 tier architecture

İÇ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

Page 3: 3 tier architecture

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.

Page 4: 3 tier architecture

3 KATMANLI MİMARİ NEDİR?

Katmanları: Sunum Katmanı

(Presentation Layer) İş Katmanı

(Business Layer) Veri Katmanı

(Data Layer)

Page 5: 3 tier architecture

3 KATMANLI MİMARİNİN GELİŞİMİ

Tek Katmanlı Mimari 2 Katmanlı Mimari 3 Katmanlı Mimari

Page 6: 3 tier architecture

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.

Page 7: 3 tier architecture

3 KATMANLI MİMARİNİN GELİŞİMİ

2 Katmanlı Mimari

Client/Server modeli vardır.

Tüm iş yükü clienta düşer.

Page 8: 3 tier architecture

3 KATMANLI MİMARİNİN GELİŞİMİ

3 Katmanlı Mimari

3 katmandan oluşur.

İş yükü,

iş katmanındadır.

Page 9: 3 tier architecture

3 KATMANLI MİMARİNİN KATMANLARI

Page 10: 3 tier architecture

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.

Page 11: 3 tier architecture

SUNUM KATMANI (PRESENTATİON LAYER)

Page 12: 3 tier architecture

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.

Page 13: 3 tier architecture

İŞ KATMANI (BUSİNESS LAYER)

Page 14: 3 tier architecture

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.

Page 15: 3 tier architecture

VERİ KATMANI (DATA LAYER)

Page 16: 3 tier architecture

Client/Server modelini kullanarak çalışır. Fakat bir web server üzerinden işlemlerini yapar.

3 KATMANLI MİMARİNİN YAPISI VE YARARLARI

Page 17: 3 tier architecture

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.

Page 18: 3 tier architecture

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.

Page 19: 3 tier architecture

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.

Page 20: 3 tier architecture

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

 

Page 21: 3 tier architecture

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";

Page 22: 3 tier architecture

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.

Page 23: 3 tier architecture

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.

Page 24: 3 tier architecture

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.

Page 25: 3 tier architecture

3 KATMANLI MİMARİ YAPISINA UYGUN ÖRNEK JAVA CLASS(6)

 public PreparedStatement PARAMETRELER(PreparedStatement psp,ArrayList<?> params)

{    try {

     for (int i = 1; i &lt;= 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.

Page 26: 3 tier architecture

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 &lt;= 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.

Page 27: 3 tier architecture

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.