---
title: 'Yapılandırma Modelleri'
source: 'https://academia.sh/tr/kurslar/ag-isletimi/yapilandirma-modelleri'
course: 'Ağ İşletimi ve Otomasyon'
language: tr
updated: '2026-08-17T18:07:14+00:00'
license: 'CC BY-SA 4.0'
---

# Yapılandırma Modelleri

Aygıt yapılandırması bir veri modeliyle tanımlandığında model genişledikçe kapsanan alan 80'den 113'e çıkar ve eksik temsil edilen aygıt 30'dan 9'a iner; kalan dokuz alan hiçbir modele girmez çünkü değer kaynağı aygıtın kendisidir.

Önceki ders şablonu bir kabul üzerine kurdu: kırk aygıtın yapılandırması aynı alanlarla
tarif edilebilir. Ölçüm bu kabulün tutmadığı yeri de gösterdi — alan listesindeki son satır,
özel aygıtın istediği yerel kuraldı ve hiçbir şablon onu taşımıyordu. O satırın nereye
gittiği açıkta kaldı.

Bu dersin sorusu tam olarak odur. Bir aygıtın yapılandırması metin olmaktan çıkıp bir **veri
modeliyle** tanımlandığında, model neyi temsil edebilir? Hangi aygıt modele sığmaz? Ve
modelin dışında kalan alan yok mu olur, yoksa gözden mi kaybolur? Ölçülen şey modelin
kapsadığı değil, **kapsamadığıdır**.

## Model Bir Sözleşmedir

Elle yapılandırmanın çıktısı bir metindir ve metnin anlamı onu okuyan aygıtın içindedir.
Aynı metni iki ayrı yönetim aracı, iki ayrı biçimde yorumlayabilir; hangisinin haklı olduğunu
söyleyecek bir yer yoktur.

**Yapılandırma modeli (configuration model)** bu boşluğu kapatır. Model, yapılandırmanın
hangi alanlardan oluştuğunu, her alanın türünü, hangi koşulda zorunlu olduğunu ve hangi
değer aralığını kabul ettiğini **aygıttan bağımsız** bir yerde bildirir. Bildirimsel
yapılandırmanın "istenen son durum" dediği şey, ancak böyle bir modelle yazılabilir; model
yoksa istenen durumun yazılacağı bir dilbilgisi de yoktur.

Modelin üç işi vardır. **Doğrulama:** modele uymayan bir yapılandırma aygıta gönderilmeden
reddedilir. **Karşılaştırma:** iki yapılandırma alan alan karşılaştırılabilir, çünkü ikisi de
aynı alan kümesiyle yazılmıştır — yapılandırma sapması ancak bu karşılaştırmayla ölçülebilir.
**Üretim:** aynı model üzerinden farklı aygıtlar için farklı değerler üretilebilir.

```text
# ogretilen model semasi , calistirilmamistir

aygit:
  arayuz      : metin       , zorunlu                        , ortak deger
  adres       : adres       , zorunlu                        , aygita ozgu
  oncelik     : sayi 0-7    , sinif etkilesim ise zorunlu    , ortak deger
  zamanlayici : sayi (ms)   , gecikme esigin ustundeyse zor. , aygita ozgu
  toplama     : liste       , kapasite esigin ustundeyse zor., ortak deger
  # yerel_kural : modelde karsiligi yok
```

Şemanın son satırı yorum içinde duruyor ve bu dersin ölçtüğü şey odur.

## Değerin Kaynağı: Üç Sınıf

Bir alanın modelde bulunması, o alanın değerinin nereden geleceğini söylemez. Üç kaynak
ayrılır ve ayrım modelin sınırını belirler.

**Ortak değer.** Alan bütün aygıtlarda aynıdır. Şablon değeri bir kez taşır ve kırk aygıta
aynı değeri yazar. Bu, kaldıracın en verimli çalıştığı yerdir.

**Aygıta özgü değer.** Alan modelde vardır ama değeri aygıdın kendi niteliğinden türer —
adres envanterden gelir, zamanlayıcı gecikmeden hesaplanır. Şablon burada bir değer değil,
bir **kural** taşır; kural kırk kez ayrı ayrı çalıştırılır. Kaldıraç hâlâ tektir, çıktısı
kırk ayrı değerdir.

**Temsil edilemez alan.** Alanın modelde karşılığı yoktur ve olamaz. Bir aygıtın yalnız
kendisine ait bir kuralı modele eklemek, modeli kırk ayrı şekle sokardı; o noktada model bir
sözleşme olmaktan çıkıp kırk ayrı yapılandırmanın toplamı olurdu. Modelin dışında kalan alan
bir eksiklik değil, **modelin tanımının sonucudur**.

Ölçümün varsayımları:

- **OT7** — Kırk aygıtlık özne kümesi kursun sabitidir ve değiştirilmez; alan türetimi önceki
  dersteki kuralın aynısıdır.
- **OT8** — Model bir alan adı kümesidir. Bir aygıt, ancak gerektirdiği bütün alanlar modelde
  varsa **tam temsil** edilir; tek bir alanı eksikse eksik temsil edilir.
- **OT9** — Üç model genişliği iç içedir: her biri bir öncekinin üstüne alan ekler, hiçbiri
  alan çıkarmaz. Genişlik sırası çekirdek, genişletilmiş, tam.
- **OT10** — `yerel_kural` hiçbir modelde yoktur. Bu bir kusur değil kurgunun kararıdır;
  gerekçesi yukarıdaki üçüncü sınıftır.
- **OT11** — Her alanın tek bir değer kaynağı vardır: ortak, aygıta özgü ya da temsil
  edilemez. Kaynak alanın adına bağlıdır, aygıta göre değişmez.
- **OT12** — Şablon aygıtın sınıfına göre yazılır ve rapor etkileşim sınıfı üzerine
  kuruludur; sınıfı uyuşmayan özel aygıt sapar, başka sınıftaki sapma rapora düşmez.

## Ölçüm

```python
"""Yapilandirma modeli: modelin temsil edemedigi aygit.

Bolum 1 - uc model genisligi: kapsanan alan, disarida kalan alan ve aygit.
Bolum 2 - alanin deger kaynagi: ortak, aygita ozgu, temsil edilemez.
Bolum 3 - kuyruk: sablonun disinda kalan ve raporda gorunmeyen.
"""
TOHUM = 20260812
KAYNAK = {"arayuz": "ortak", "adres": "aygıta özgü", "oncelik": "ortak",
          "zamanlayici": "aygıta özgü", "toplama": "ortak",
          "yerel_kural": "temsil edilemez"}
MODELLER = {
    "çekirdek": ("arayuz", "adres"),
    "genişletilmiş": ("arayuz", "adres", "oncelik", "zamanlayici"),
    "tam": ("arayuz", "adres", "oncelik", "zamanlayici", "toplama"),
}


def uretec(tohum):
    d = tohum % 2147483646 + 1

    def r(n):
        nonlocal d
        d = (d * 48271) % 2147483647
        return d % n
    return r


def ozneler(sayi=40, tohum=TOHUM):
    r, liste = uretec(tohum), []
    for i in range(sayi):
        liste.append({"no": i + 1, "kapasite": 20 + r(81),
                      "gecikme": 5 + r(45),
                      "sinif": ("etkilesim", "toplu", "yedek")[r(3)],
                      "ozel": r(9) == 0})
    return liste


def alanlar(o):
    """Aygitin yapilandirmasinin gerektirdigi alanlar."""
    a = ["arayuz", "adres"]
    if o["sinif"] == "etkilesim":
        a.append("oncelik")
    if o["gecikme"] > 30:
        a.append("zamanlayici")
    if o["kapasite"] >= 80:
        a.append("toplama")
    if o["ozel"]:
        a.append("yerel_kural")
    return a


def olc(oz, model):
    """Modelin kapsadigi ve disarida biraktigi alan ile aygit sayisi."""
    kapsanan = disarida = tam = eksik = 0
    for o in oz:
        d = [a for a in alanlar(o) if a not in model]
        kapsanan += len(alanlar(o)) - len(d)
        disarida += len(d)
        if d:
            eksik += 1
        else:
            tam += 1
    return kapsanan, disarida, tam, eksik


def uygula(oz, sablon_sinifi):
    """Tek sablon kirk aygita uygulanir; ozel aygitlar sapar."""
    uyan = sapan = gizli = 0
    for o in oz:
        if o["sinif"] == sablon_sinifi or not o["ozel"]:
            uyan += 1
        else:
            sapan += 1
            if o["sinif"] != "etkilesim":
                gizli += 1
    return uyan, sapan, gizli


oz = ozneler()
toplam = sum(len(alanlar(o)) for o in oz)
print(f"özne {len(oz)} | toplam alan örneği {toplam} | ayrı alan adı "
      f"{len(KAYNAK)} | özel aygıt {sum(o['ozel'] for o in oz)}")
print()
print(f"{'model':<14s} {'alan adı':>9s} {'kapsanan':>9s} {'dışarıda':>9s} "
      f"{'tam temsil':>11s} {'eksik temsil':>13s}")
for ad, model in MODELLER.items():
    k, d, t, e = olc(oz, model)
    print(f"{ad:<14s} {len(model):9d} {k:9d} {d:9d} {t:11d} {e:13d}")

print()
print(f"{'alan':<13s} {'aygıt':>6s} {'değer kaynağı':>16s} "
      f"{'ilk kapsayan model':>19s}")
for alan, kaynak in KAYNAK.items():
    sayi = sum(1 for o in oz if alan in alanlar(o))
    ilk = next((ad for ad, m in MODELLER.items() if alan in m), "yok")
    print(f"{alan:<13s} {sayi:6d} {kaynak:>16s} {ilk:>19s}")

print()
for kaynak in ("ortak", "aygıta özgü", "temsil edilemez"):
    sayi = sum(1 for o in oz for a in alanlar(o) if KAYNAK[a] == kaynak)
    print(f"{kaynak:<16s} alan örneği {sayi:4d}  toplamın {sayi / toplam:.3f} payı")

print()
print(f"{'şablon sınıfı':<14s} {'uyan':>6s} {'sapan':>6s} "
      f"{'raporda görünmeyen':>19s}")
for s in ("etkilesim", "toplu", "yedek"):
    u, sp, g = uygula(oz, s)
    print(f"{s:<14s} {u:6d} {sp:6d} {g:19d}")
```

```
özne 40 | toplam alan örneği 122 | ayrı alan adı 6 | özel aygıt 9

model           alan adı  kapsanan  dışarıda  tam temsil  eksik temsil
çekirdek               2        80        42          10            30
genişletilmiş          4       105        17          23            17
tam                    5       113         9          31             9

alan           aygıt    değer kaynağı  ilk kapsayan model
arayuz            40            ortak            çekirdek
adres             40      aygıta özgü            çekirdek
oncelik           11            ortak       genişletilmiş
zamanlayici       14      aygıta özgü       genişletilmiş
toplama            8            ortak                 tam
yerel_kural        9  temsil edilemez                 yok

ortak            alan örneği   59  toplamın 0.484 payı
aygıta özgü      alan örneği   54  toplamın 0.443 payı
temsil edilemez  alan örneği    9  toplamın 0.074 payı

şablon sınıfı    uyan  sapan  raporda görünmeyen
etkilesim          34      6                   6
toplu              34      6                   3
yedek              34      6                   3
```

## Modelin Kapatabildiği

Üst tablo modeli genişletmenin ne kazandırdığını veriyor. İki alanlı **çekirdek** model
kırk aygıtın yalnız **10**'unu tam temsil ediyor; **30** aygıtın en az bir alanı modelin
dışında kalıyor ve dışarıda kalan alan örneği **42**. Model dört alana çıktığında dışarıda
kalan alan **17**'ye, eksik temsil edilen aygıt **17**'ye iniyor. Beş alanlı **tam** modelde
dışarıda kalan alan **9**, eksik temsil edilen aygıt **9**.

Kazancın biçimi öğreticidir. İki alandan dört alana geçiş dışarıda kalan alanı **42**'den
**17**'ye indiriyor — yirmi beş alanlık bir kazanç, iki alan karşılığında. Dört alandan beş
alana geçiş ise yalnız **8** alan kazandırıyor. Modelin her yeni alanı bir öncekinden daha az
aygıtı ilgilendirir, çünkü alanlar aygıtlara eşit dağılmaz: arayüz ve adres kırk aygıtta,
zamanlayıcı **14**, öncelik **11**, toplama **8** aygıtta gerekli.

Bu, model tasarımının pratik kuralını verir. Modeli genişletme kararı alan sayısına değil,
**o alanın kaç aygıtı eksik temsilden çıkardığına** bakarak verilir; ve bu sayı her adımda
küçülür.

## Modelin Kapatamadığı

Son satırda dışarıda kalan alan **9**'da duruyor ve modeli genişleterek buradan aşağı
inilemiyor. Orta tablo nedenini söylüyor: `yerel_kural` alanının ilk kapsayan modeli **yok**.
Bu dokuz alan örneği, kırk aygıtın **9** özel aygıdına aittir ve her biri yalnız kendi
aygıdına anlamlıdır.

Alt tablo aynı şeyi paya çevirerek gösteriyor. Yüz yirmi iki alan örneğinin **59**'u ortak
değerli — toplamın **0,484**'ü. **54**'ü aygıta özgü, yani modelde tanımlı ama değeri kırk
kez ayrı hesaplanan alanlar; payı **0,443**. Geriye kalan **9** alan örneği, toplamın
**0,074**'ü, hiçbir modele girmiyor.

Bu üç payın toplamı modelin ne olduğunu tarif ediyor. Kaldıracın gerçekten tek bir değer
taşıdığı kısım toplamın yarısına bile ulaşmıyor. İkinci pay kaldıracın bir kural taşıyıp
kırk ayrı sonuç ürettiği kısım — burada model çalışıyor ama tek bir değeri kırk aygıta
yazmanın sadeliği yok. Üçüncü pay ise kaldıracın hiç uzanmadığı yer.

Alt tablonun sonuncu satırları bunun şablon tarafındaki karşılığını veriyor: şablon hangi
sınıfa göre yazılırsa yazılsın uyan **34**, sapan **6**. Sapan altı aygıdın hepsi özeldir,
yani hepsi `yerel_kural` taşır. Ama dikkat edilmesi gereken şey ötekilerdir: dokuz özel
aygıdın **üçü** her seferinde şablonun sınıfına uyar ve şablonu **alır** — modelin temsil
edemediği bir alanı taşıdıkları hâlde. Raporda görünmeyen sapan yine **6**, **3** ve **3**.

## Modelin İki Yönlü Sınırı

Ölçüm modelin bir yönünü sayıyor: aygıdın istediği alan modelde yok. Sınırın ikinci yönü de
vardır ve bu kurguda ölçülmez — **modelin bildirdiği alanı aygıt kabul etmez.** Model beş
alan tanımlar, aygıt bunların dördünü tanır ve beşincisini reddeder; ya da tanır ama
modelin izin verdiği aralığın tamamını kabul etmez.

İki yön aynı sonucu vermez. Birinci yöndeki eksiklik **yazma anında** bellidir: model
yazılırken alanın orada olmadığı görülür ve karar bilinçli verilir. İkinci yöndeki eksiklik
ise **uygulama anında** ortaya çıkar ve kırk aygıtın hepsinde aynı anda çıkmaz — alanı kabul
eden aygıtlar değişir, etmeyenler değişmez. Sonuç, önceki derste sayılan hata modlarından
biridir: sıraya bağlı kısmi uygulama. Ağın bir kısmı yeni, bir kısmı eski yapılandırmayla
kalır ve ikisi arasında tutarsız davranır.

Bu yüzden modelin doğrulaması iki aşamalıdır. Birinci aşama modelin kendi içinde tutarlı
olup olmadığına bakar ve aygıta hiç gitmez. İkinci aşama, modelin belirli bir aygıtta
uygulanabilir olup olmadığını sorar ve bu ancak aygıta sorularak öğrenilir. İkinci aşamayı
uygulamadan önce yapmanın adı sonraki derslerde ölçülecek olan kuru çalışmadır; modelin
kendi doğrulaması onun yerine geçmez.

## Model Dışı Alan Nereye Gider

Modelin dışında kalan alan yok olmaz; aygıtta durmaya devam eder. İki politika vardır ve
ikisi de bir yüzey açar.

**Dokunmama politikası.** Yönetim aracı modelin tanımadığı alana hiç dokunmaz. Aygıtın
yapılandırması ikiye bölünür: modelle yönetilen kısım ve elle yönetilen kısım. Bu kurguda
elle kalan **9** alan örneğidir. Yapılandırma sapması tam olarak bu bölgede yaşar, çünkü
karşılaştırma yalnız modelin bildiği alanlarda yapılabilir — model bilmediği bir alanın
değiştiğini göremez.

**Serbest alan politikası.** Model, tanımadığı yapılandırmayı taşımak için yapısı olmayan bir
alan bulundurur ve içeriği olduğu gibi aygıta yazar. Alan artık taşınır ama **doğrulanmaz**:
tür denetimi, aralık denetimi ve karşılaştırma bu alanda çalışmaz. Dokuz alan örneği modelin
içinde görünür, modelin verdiği güvencelerin hiçbirini almaz.

Sayılan yüzey ve daraltmalar şunlardır.

**Birinci yüzey — doğrulanmayan yapılandırma metni.** Serbest alan, doğrulamadan geçmeden
kırk aygıta ulaşabilecek bir yoldur; içeriğindeki bir hata modelin hiçbir denetimine
takılmaz. **Daraltma:** serbest alan aygıt başına adlandırılır ve yalnız o aygıtta geçerli
kılınır; içeriği şablonun değil, aygıtın envanter kaydının parçası olur. Böylece bir yerdeki
hata bir aygıtta kalır.

**İkinci yüzey — modelin göremediği bölge.** Dokunmama politikasında aygıdın bir kısmı hiçbir
karşılaştırmaya girmez ve o bölgedeki yapılandırma sapması sessizdir. **Daraltma:**
yönetilmeyen bölgenin sınırı modelde açıkça bildirilir ve bu bölgenin varlığı raporun bir
satırına dönüştürülür — "şu aygıtta şu kadar alan yönetim dışıdır" satırı, sapmanın kendisini
göstermese de **nerede olabileceğini** gösterir.

**Üçüncü yüzey — modele giren gizli bilgi.** Kimlik bilgisi, anahtar ve erişim belirteci
yapılandırma modelinin içinde taşınmaz. Model bir depoda durur, karşılaştırılır, kopyalanır
ve gözden geçirilir; bu işlemlerin hiçbiri gizli bir değer için uygun değildir. **Daraltma:**
model yalnız bir **başvuru** taşır ve değerin kendisi ayrı bir yerde durur; hangi yerde
durduğu işletmenin ayrı bir kararıdır ve bu kursun konusu değildir.

## Özet

- Yapılandırma modeli alanların adını, türünü ve zorunluluğunu aygıttan bağımsız bildirir;
  doğrulama, karşılaştırma ve üretim ancak bu bildirimle yapılabilir.
- Model genişledikçe kapsanan alan **80 → 105 → 113**, eksik temsil edilen aygıt
  **30 → 17 → 9** olur; her yeni alanın kazancı bir öncekinden küçüktür.
- Alanların değer kaynağı üçe ayrılır: ortak **59** örnek (**0,484**), aygıta özgü **54**
  örnek (**0,443**), temsil edilemez **9** örnek (**0,074**).
- Dokuz alan hiçbir modele girmez çünkü değeri yalnız kendi aygıdına anlamlıdır; modeli
  oraya kadar genişletmek, modeli kırk ayrı yapılandırmanın toplamına çevirirdi.
- Şablon tarafında uyan **34**, sapan **6**, raporda görünmeyen **6 / 3 / 3**; dokuz özel
  aygıdın **üçü** ise şablonu alır ve modelin temsil edemediği alanı taşımaya devam eder.

## Sonraki Adım

Bu ders modelin ne söyleyebildiğini ölçtü ve modelin yazıldığı yerde durduğunu varsaydı.
Oysa modelin bir işe yaraması için aygıta ulaşması gerekir: bir yerden bir istek gider,
aygıt onu alır, uygular ve bir yanıt döner. Bu yolun kendi kuralları vardır ve en önemlisi
şudur — aynı isteği iki kez göndermek ne yapar? Sonraki ders yapılandırmaya erişimi sağlayan
programlanabilir arayüzleri ve arayüzün **etkisiz** olup olmamasının kırk aygıtta ne
değiştirdiğini ölçer.
