Açık kaynaklı coğrafi bilgi sistemleri dünyasında, mekansal verilerin yönetimi ve paylaşımı söz konusu olduğunda akla gelen ilk çözümlerden biri GeoServer’dır. Esnek yapısı ve geniş format desteği sayesinde, karmaşık harita projelerini web ortamına taşımanın en etkili yollarından birini sunar. Bu platform, yalnızca harita sunucusu olarak değil, aynı zamanda farklı veri kaynakları arasında bir köprü görevi gören güçlü bir entegrasyon aracıdır. Kurumsal şirketlerden bireysel geliştiricilere kadar geniş bir kullanıcı kitlesine hitap eden GeoServer, özellikle OGC standartlarına tam uyumlu olmasıyla rakiplerinden ayrılır. İlk bakışta sadece bir sunucu yazılımı gibi görünse de, aslında arka planda yatan yetenekleriyle tam teşekküllü bir mekansal veri altyapısının temel taşını oluşturur. Kullanıcıların ham verileri alıp anlamlı ve etkileşimli harita katmanlarına dönüştürmesine olanak tanıyan bu sistem, modern web haritacılığının vazgeçilmez bir bileşenidir. GeoServer’ı öğrenmeye başlamak, coğrafi verileri sadece izlemekten çıkarıp, profesyonelce sunmak ve yönetmek için atılan ilk somut adımdır. İster bir şehir planlamacısı, ister çevre mühendisi veya yazılım geliştirici olun, coğrafi veri tabanlarınızı internette güvenli ve standartlara uygun bir şekilde paylaşma ihtiyacınızı karşılayacak en doğru adreslerden biri burasıdır. GeoServer’ın ne olduğunu ve nasıl çalıştığını adım adım anlamak, mekansal zekaya dayalı projelerinizin başarısı için kritik bir öneme sahiptir.
GeoServer Nedir ve Temel Bileşenleri Nelerdir?
GeoServer, Java programlama diliyle yazılmış, açık kaynak kodlu ve topluluk destekli bir harita sunucusu yazılımıdır. Temel görevi, mekansal verileri (vektör ve raster) standart web servisleri aracılığıyla istemcilere sunmaktır. Bu yazılım, verileri doğrudan bir klasörden okumak yerine, bir "veri deposu" kavramı üzerinden çalışır. Bir veri deposu; bir dosya (Shapefile, GeoTIFF gibi), bir veritabanı (PostgreSQL/PostGIS, Oracle Spatial) veya başka bir sunucu (WMS kaskadı) olabilir. GeoServer'ın en büyük gücü, bu farklı kaynaklardaki verileri tek bir merkezden, standart OGC (Open Geospatial Consortium) protokolleri olan WMS (Web Map Service) ve WFS (Web Feature Service) ile servis edebilmesidir. WMS, verinin sunucu tarafında bir harita resmine (PNG, JPEG) dönüştürülerek gönderilmesini sağlar; bu, hızlı görüntüleme için idealdir. WFS ise ham vektör veriyi (nokta, çizgi, poligon geometrileri ve öznitelik bilgileri) istemciye gönderir; böylece kullanıcı veriyi indirip üzerinde düzenleme, analiz ve sorgulama yapabilir. Ayrıca raster verilerin etkili bir şekilde sunulması için WCS (Web Coverage Service) protokolünü de destekler. GeoServer'ın yönetimi tamamen web tabanlı bir arayüz üzerinden yapılır; bu arayüz sayesinde sunucuya bağlanır, veri depoları oluşturur, katman stillerini (SLD) yönetir ve güvenlik ayarlarını yapılandırırsınız.
GeoServer'ın çekirdek mimarisi birkaç kritik bileşenden oluşur ve her birinin rolünü anlamak, yazılımı etkin kullanmanın anahtarıdır. Bu bileşenler; çalışma alanları (workspace), depolar (stores), katmanlar (layers) ve katman gruplarıdır (layer groups). Çalışma alanları, projelerinizi birbirinden izole etmek için kullanılan isim alanlarıdır. Örneğin, "belediye_projesi" ve "cevre_projesi" adında iki ayrı çalışma alanı oluşturarak, aynı isimli katmanların çakışmasını engelleyebilirsiniz. Veri depoları, GeoServer'ın veri kaynağına nasıl bağlanacağını tanımlayan yapılandırma nesneleridir; bir veritabanı bağlantısı için sunucu adresi, port, kullanıcı adı ve şifre burada saklanır. Katman ise, veri deposundaki belirli bir tablonun veya dosyadaki bir özellik tipinin (feature type) GeoServer tarafından yayınlanan halidir. Her katman, WMS ve WFS servisleri için ayrı ayrı etkinleştirilebilir. Son olarak katman grupları, birden fazla katmanı belirli bir sırayla üst üste bindirerek tek bir istekte sunulacak birleşik bir harita oluşturmak için kullanılır; bu, temel harita altlıkları oluşturmak için oldukça kullanışlıdır.
GeoServer'ı daha yakından tanımak için işlevselliğini öne çıkaran maddelere göz atmak faydalı olacaktır:
- OGC Standartlarına Tam Uyum: WMS, WFS, WCS, WMTS ve WPS gibi temel standartları eksiksiz destekleyerek, QGIS, ArcGIS ve Leaflet gibi çok çeşitli masaüstü ve web istemcileriyle sorunsuz entegre olur.
- Zengin Veri Formatı Desteği: Shapefile, GeoPackage, GeoTIFF, PostGIS, Oracle Spatial, SQL Server, NetCDF gibi onlarca vektör ve raster veri formatını yerel olarak okuyabilir.
- Güçlü Stil Dili (SLD ve CSS): Harita katmanlarının renklendirilmesi, etiketlenmesi ve sembolojisi, OGC standardı SLD (Styled Layer Descriptor) veya daha kolay bir alternatif olan CSS benzeri bir sözdizimi ile detaylıca kontrol edilebilir.
- Entegre Güvenlik Sistemi: Katman, servis ve çalışma alanı bazında detaylı yetkilendirme yapmanıza olanak tanıyan, kullanıcı rolleri ve kurallara dayalı bir erişim kontrol mekanizmasına sahiptir.
- Verimli Performans ve Önbellekleme: Yerleşik GeoWebCache (GWC) entegrasyonu sayesinde, üretilen harita karelerini diskte saklayarak tekrarlayan isteklerde inanılmaz bir hız artışı sağlar.
GeoServer Kurulumu Adım Adım Nasıl Yapılır?
GeoServer'ı kurmaya başlamadan önce, Java Runtime Environment'ın (JRE) sisteminizde kurulu olduğundan emin olmanız en kritik ön koşuldur. GeoServer, Java 11 veya 17 gibi uzun dönem destekli (LTS) sürümlerle en kararlı şekilde çalışır. Daha yeni veya çok eski Java sürümleri, uyumsuzluk sorunlarına yol açabilir, bu yüzden GeoServer'ın resmi dokümantasyonunda önerilen Java sürümünü kontrol etmek hayati önem taşır. Kurulum süreci, seçtiğiniz işletim sistemine göre küçük farklılıklar gösterir. Windows için bağımsız bir yükleyici (installer), macOS ve Linux için ise platform bağımsız bir ikili arşiv (binary zip/tar.gz) veya işletim sisteminizin paket yöneticisi üzerinden kurulum seçenekleri mevcuttur. Özellikle üretim ortamlarında, GeoServer'ı bir servis olarak kurmak, bilgisayar her açıldığında otomatik olarak başlamasını sağlamak için en doğru yöntemdir. Windows yükleyicisi bu seçeneği kurulum sırasında size soracaktır.
Kurulum adımlarına sırasıyla bakacak olursak, öncelikle resmi GeoServer web sitesinden (geoserver.org) kararlı (stable) sürümü indirmeniz gerekir. İndirme sayfasında, "Platform Independent Binary" seçeneği en esnek yöntemdir; bu dosyayı istediğiniz bir dizine çıkartarak GeoServer'ı çalıştırabilirsiniz. Windows kullanıyorsanız, Java'nın sistem değişkenlerine (PATH) doğru bir şekilde eklenmiş olması şarttır. İndirdiğiniz arşivi C:\GeoServer gibi kısa ve boşluksuz bir yola çıkartın. Kurulumun sonraki aşamalarında dosya yolu erişim sorunları yaşamamak için bu detay oldukça önemlidir. Arşivi çıkarttıktan sonra, ana dizinde bulunan start.jar dosyası, GeoServer'ı başlatmak için gereken ana bileşendir. Komut satırını açıp GeoServer'ın kurulu olduğu dizine giderek java -jar start.jar komutunu çalıştırmak, sunucuyu başlatmanın en temel yoludur. Başlangıçta bir dizi log mesajı göreceksiniz ve "Server startup in XXXX ms" gibi bir mesaj gördüğünüzde GeoServer başarıyla ayağa kalkmış demektir.
Sunucu çalışmaya başladıktan sonra, yönetim arayüzüne erişmek için web tarayıcınızı açıp adres çubuğuna http://localhost:8080/geoserver/web yazın. Bu adres, GeoServer'ın varsayılan portta (8080) ve bağlam yolunda (/geoserver) çalıştığını varsayar. Karşınıza giriş ekranı gelecektir. İlk kurulum için varsayılan yönetici kullanıcı adı admin ve şifre geoserverdır. Bu noktada en hayati uyarı şudur: Sunucuyu canlı bir ağ ortamına açmadan önce mutlaka bu varsayılan şifreyi değiştirin. Aksi takdirde, sunucunuz tamamen savunmasız kalabilir. Şifreyi, sol menüdeki "Güvenlik > Kullanıcılar, Gruplar, Roller" bölümünden admin kullanıcısına tıklayıp değiştirebilirsiniz. Artık GeoServer arayüzüne giriş yaptınız ve ilk veri setinizi eklemeye hazırsınız.
GeoServer’da İlk Katman Nasıl Yayınlanır?
GeoServer arayüzüne başarıyla giriş yaptıktan sonra, bir veriyi harita olarak yayınlamak için izlenmesi gereken akış; çalışma alanı oluşturmak, veri deposu tanımlamak ve son olarak katmanı yayınlamak şeklindedir. İlk adım olarak sol menüden "Veri > Çalışma Alanları" yolunu izleyip "Yeni çalışma alanı ekle" butonuna tıklayın. Açılan formda, çalışma alanınıza bir isim (örneğin: test_projesi) ve benzersiz bir URI (Uniform Resource Identifier) verin. URI genellikle projenizin web adresi gibi bir şey olabilir (örneğin: http://www.ornekproje.com/test), ancak gerçek bir adres olması zorunlu değildir; benzersiz olması yeterlidir. "Gönder" butonuna basarak çalışma alanını oluşturun. Bu adım, verilerinizi mantıksal bir çatı altında toplamak için bir isim alanı yaratır.
Sıradaki adım, veri deponuzu oluşturmaktır. Sol menüden "Veri > Veri Depoları"na gidin ve "Yeni veri deposu ekle"ye tıklayın. Karşınıza onlarca veri kaynağı seçeneği çıkacaktır. En basit ve yaygın senaryo olarak, bir Shapefile dizini ekleyelim. "Vektör Veri Kaynakları" altından "Directory of spatial files (shapefiles)" seçeneğini seçin. Açılan formda, daha önce oluşturduğunuz test_projesi çalışma alanını seçin. "Veri Depo Adı" kısmına anlamlı bir isim (örneğin: ulkeler_deposu) girin. En önemli kısım "Bağlantı Parametreleri" altındaki "shapefile dosyalarının dizini" alanıdır; buraya shapefile'larınızın (.shp, .dbf, .shx dosyalarının) bulunduğu klasörün tam yolunu yazın veya "Gözat" butonu ile seçin. Dikkat edilmesi gereken nokta: GeoServer'ın bu dizine okuma/yazma izninin olduğundan emin olmalısınız, aksi takdirde veri deposu kaydedilirken hata alabilirsiniz. "Kaydet" butonuna bastığınızda, GeoServer belirtilen dizini tarayacak ve içindeki tüm geçerli shapefile'ları listeleyecektir.
Son aşama, bulunan bu veri setini bir katman olarak yayınlamaktır. Veri deposunu kaydettikten sonra, otomatik olarak o depodaki kaynakların listelendiği bir sayfaya yönlendirilirsiniz. Yayınlamak istediğiniz katmanın adının yanındaki "Yayınla" bağlantısına tıklayın. Sizi katman düzenleme ve yayınlama sayfasına götürecektir. Bu sayfadaki en kritik sekmeler "Veri" ve "Yayınlama"dır. "Veri" sekmesinde, katmanın adı, başlığı ve özeti gibi üstveri bilgilerini doldurun. "Yayınlama" sekmesinde ise katmanın hangi servislerle sunulacağını (WMS, WFS gibi) ve varsayılan stilini belirlersiniz. GeoServer, veri tipinize göre otomatik olarak basit bir varsayılan stil atar. Sayfanın en altındaki "Kaydet" butonuna basarak katmanınızı yayınlayın. Artık katmanınız "Katman Önizlemesi" sayfasında listelenecek ve oradan OpenLayers ile ön izlemesini yapabileceksiniz. Bu üç adımlık süreç (Çalışma Alanı -> Veri Deposu -> Katman), GeoServer'daki tüm veri yayınlama operasyonlarının temelini oluşturur ve her türlü veri kaynağı için bu mantık geçerlidir.
GeoServer'da Stil (SLD) Oluşturma ve Uygulama İşlemi
Bir katmanı yayınladıktan sonra, onu varsayılan gri veya rastgele renklerle görmek yerine, verinizin anlamını vurgulayan etkileyici bir haritaya dönüştürmek istersiniz. Bu dönüşümün anahtarı, OGC tarafından standartlaştırılmış bir XML tabanlı dil olan Styled Layer Descriptor (SLD) kullanmaktır. SLD belgesi, bir katmandaki coğrafi detayların (feature) nasıl çizileceğini, hangi renklerin kullanılacağını, çizgi kalınlıklarını, dolgu desenlerini, etiket metinlerinin içeriğini, yazı tipini ve konumlandırmasını en ince ayrıntısına kadar tanımlar. GeoServer, SLD stil dosyalarını oluşturmak ve yönetmek için entegre bir arayüz sunar, ancak aynı zamanda daha az kod yazmak isteyenler için CSS eklentisi aracılığıyla da stil tanımlamayı destekler. SLD'nin mantığı, bir veri kümesindeki her bir özelliğe sırayla uygulanan bir dizi kural (rule) tanımlamaya dayanır. Bu kurallar, öznitelik değerlerine, geometri türüne veya harita ölçeğine göre dinamik olarak tetiklenebilir ve böylece son derece esnek bir kartografik ifade gücü sağlar.
Kendi SLD stilinizi oluşturmak için GeoServer arayüzünde sol menüden "Veri > Stiller"e gidin ve "Yeni stil ekle" butonuna tıklayın. Açılan sayfada, stilinize bir isim verin ve çalışma alanını seçin. Asıl iş, sayfanın ortasındaki büyük metin editöründe gerçekleşir. Buraya geçerli bir SLD XML kodu yazmanız gerekir. Örneğin, bir ülkeler katmanını nüfus yoğunluğuna göre farklı tonlarda maviye boyamak için bir kural seti oluşturabilirsiniz. Editöre yazdığınız SLD kodunun temel yapısı <StyledLayerDescriptor> kök elemanı ile başlar ve <NamedLayer> ile devam eder. Asıl stil kuralları <UserStyle> etiketi içinde toplanır. Bir kural, bir filtre ve bir sembolleştiriciden oluşur. <Filter> etiketi, kuralın hangi detaylara uygulanacağını belirtir; örneğin, PropertyIsGreaterThan operatörü ile "nüfus > 1000000" olan ülkeleri seçebilirsiniz. <PolygonSymbolizer> ise bu filtreden geçen poligonların nasıl görüneceğini (dolgu rengi, kenar çizgisi kalınlığı gibi) tanımlar.
SLD kodu yazarken dikkat edilmesi gereken en önemli püf noktası, <ogc:PropertyName> içinde kullandığınız öznitelik adının, veri kaynağınızdaki sütun adıyla birebir aynı olması gerektiğidir; küçük-büyük harf duyarlılığına dikkat etmezseniz stiliniz hiçbir şey göstermez. Kodu yazdıktan sonra, editörün altındaki "Doğrula" butonuna basarak XML yapısının doğru olup olmadığını kontrol etmek, hataları erken yakalamanızı sağlar. Doğrulama başarılıysa "Gönder" ile stili kaydedin. Oluşturduğunuz stili bir katmana bağlamak için, katmanlar listesine gidip ilgili katmanın ismine tıklayın ve "Yayınlama" sekmesine geçin. Burada "WMS Ayarları" altında bulunan "Kullanılabilir Stiller" kutusundan kaydettiğiniz stili bulup ok butonuyla "Varsayılan Stil" alanına taşıyın ve sayfayı kaydedin. Katman önizlemesine döndüğünüzde haritanızın yeni renklerle çizildiğini göreceksiniz. Etiket eklemek isterseniz, SLD kodunuza bir <TextSymbolizer> kuralı eklemeniz ve etikette hangi özniteliğin yazacağını <Label> etiketiyle belirtmeniz yeterlidir. Stil yönetimi, GeoServer'ı bir harita sunucusundan bir harita tasarım platformuna dönüştüren en güçlü araçtır.
GeoServer'da Güvenlik ve Kullanıcı Yönetimi Nasıl Yapılandırılır?
GeoServer'ı üretim ortamında kullanmanın olmazsa olmaz adımı, kapsamlı bir güvenlik yapılandırmasıdır. Varsayılan kurulumla gelen açık erişim, herkesin verilerinizi görüntülemesine, indirmesine ve hatta yetkisiz kişilerin sunucu ayarlarını değiştirmesine olanak tanır. GeoServer'ın güvenlik altyapısı, tıpkı bir bahçenin etrafındaki katmanlı duvarlar gibi, birden çok seviyede erişim kontrolü sağlar: kimlik doğrulama (authentication), yetkilendirme (authorization) ve servis güvenliği. Kimlik doğrulama, bir kullanıcının iddia ettiği kişi olduğunu kanıtlama sürecidir ve GeoServer; form tabanlı, HTTP Basic, LDAP ve OAuth2 gibi çeşitli yöntemleri destekler. Yetkilendirme ise doğrulanmış bir kullanıcının hangi kaynaklara (çalışma alanları, katmanlar, servisler) erişebileceğini kural zincirleri ile belirleme işidir. Bu yapılandırmaların tamamı, web arayüzündeki "Güvenlik" menüsü altından merkezi olarak yönetilir.
Güvenli bir yapılandırma için ilk adım, daha önce bahsedildiği gibi, admin kullanıcısının şifresini değiştirmek ve mümkünse admin hesabını devre dışı bırakıp kendinize özel bir yönetici hesabı oluşturmaktır. Bunun için "Kullanıcılar, Gruplar, Roller" sayfasına gidip yeni bir kullanıcı oluşturun ve ona ADMIN rolünü atayın. Bu işlemden sonra admin kullanıcısını devre dışı bırakabilirsiniz. Asıl kısıtlamaları yapmak için "Veri" ve "Servisler" altındaki güvenlik sayfalarını kullanırsınız. "Veri Güvenliği" sayfasında, belirli bir çalışma alanına veya doğrudan bir katmana erişim kuralları tanımlayabilirsiniz. Örneğin, gizli_proje adlı çalışma alanına yalnızca YETKILI rolündeki kullanıcıların okuma erişimi olmasını sağlayan bir kural oluşturabilirsiniz. Kurallar bir zincir halinde işler; GeoServer, bir kaynağa erişim isteği geldiğinde, listedeki kuralları yukarıdan aşağıya doğru sırayla kontrol eder ve ilk eşleşen kuralın izin veya ret kararını uygular.
Erişim kurallarınızı oluştururken şu noktaya çok dikkat etmelisiniz: Listenin en altında, her şeye izin veren bir "..r=" kuralı varsayılan olarak bulunur. Katman bazında kısıtlama yapacaksanız, bu genel izin kuralının üstüne kendi reddet veya izin ver kurallarınızı yerleştirmelisiniz; aksi takdirde kuralınız hiçbir zaman tetiklenmez ve herkese açık erişim devam eder. Örneğin, taslak_haritalar katman grubuna herkesin erişimini engellemek için, ".*.r=*" kuralının üstüne bir tane taslak_haritalar.*.r=ROLE_ADMIN kuralı eklemelisiniz. Bu, katman grubuna sadece admin rolüne sahip kişilerin erişebileceğini, diğer herkesin ise reddedileceğini belirtir. Servis güvenliği ise daha üst düzey bir filtredir; örneğin, WFS servisini tüm dünyaya kapatıp sadece WMS servisine izin verebilir, hatta WFS üzerinden veri düzenleme (transaction) işlemlerini tamamen devre dışı bırakabilirsiniz. Katman, servis ve çalışma alanı seviyesindeki bu zincirleme güvenlik kuralları sayesinde, verilerinizi tam olarak istediğiniz hassasiyette koruyabilirsiniz.
Yorumlar
Yorum Gönder
1.Görüşleriniz bizim için önemlidir.
2. Konu dışı sorularınız için İletişim sayfasından ulaşabilirsiniz.