29 Nisan 2011 Cuma

www.developersland.net


Yeni yazılarımı www.developersland.net sitesinde bulabilirsiniz.


21 Ocak 2011 Cuma

Ldap ve Active Directory

Active Directory Ağ ortamında kullanılan bir directory servisidir. Bu servis ağ içerisinde bulunan kaynakların isim , tanım, lokasyon, erişim ve yönetim bilgilerini tutar ayrıca gerektiğinde bu bilgileri kullanıcıların ve uygulamaların bilgilerine sunar. Active Directory ağ kaynaklarının merkezi organizasyonunu, yönetimini ve kontrolünü sağlar. Kısaca tek merkezden etkin bir yönetim sağlamaktadır.

Active Directory DNS(Domain Name System)'in temelini oluşturmaktadır.Dns global olarak erişime açık olan, içerisinde domain isimleri ve bunlara karşılık gelen ip adreslerini barındıran tablo olarak düşünülebilir.

Ldap (Lightweight Directory Access Protocol) : Directory serviste bir protokoldür ve nesnelere erişim için kullanılır. Active directoryde tüm nesneler ldap tarafından sorgulanacak biçimde dizilir. Active directory nesnelerine erişmek için iki farklı adlandırma sistemi kullanılır.
-Distinguish Name
-Relative Distinguish Name
LDAP sisteminde her kayıt attribute'lara ve bunlara karşılık gelen değerlere sahiptir.
Örneğin: dn='cn=Ferid Mövsümov, o=Akgün Yazılım, c=tr'
c=country, o=organization, cn=common name, uid=user id vs...
Active Directory forest'i içerisinde bütün domainler arasında otomatik olarak karşılıklı güven kurulur (Bu ilişkiye Transitive Trust Relationship denir). Bu durumda her iki domaindeki kaynaklar izin almaya gerek kalmadan kullanılabilir.
Directory bütün nesnelerin bilgilerinin tutulduğu yer olarak düşünülebilir. Active Directory ise kaynakların ve bilgilerin sadece statik olarak değil değişken olarak veritabanında tutulduğu sistemdir.

Active Directory asagidaki özellikleri ile temel directory servislerinin islevlerini gelistirmistir:
-Ölçeklenebilirlik.
-Genisletilebilirlik.

-Internet-standartlarinda adlandirma.
-Tek bir noktadan erisim.
-Hata toleransi.
-Güvenlik kontrolü.
-Birlikte çalisma

Ölçeklenebilirlik özelligi ile Active Directory az sayida nesne içerebilecegi gibi milyonlarca nesne de içerebilir. Genisletilebilirlik özelligi ise Active Directory’nin sahip oldugu sema üzerinde degisiklik yapilabilmesi anlamina gelmektedir. Internet standartlarinda adlandirma, ad çözümleme ve query protokolleri ise Internet ile baglanti yapmayi saglar.
Tek bir noktadan erisim özelligi ise Administrator’ün bir yerden yapacagi logon islemi ile bütün aglari yönetmesi anlamina gelir. Hata toleransi ise beklenmedik olaylara karsi Active Directory bilgilerinin çogaltilmasi islemlerini içerir. Güvenlik kontrolü ise kullanicilarin erisim kontrollerinin dagitilabilmesi (delege edilmesi) anlamina gelir. Birlikte çalisma ise Active Directory’nin diger isletim sistemleriyle bütünlesmesi anlamina gelir. LDAP, X.500 standartlari gibi.

Active Directory Ne Sağlar?
-Network’ün domain olarak adlandırılan birimler halinde düzenlenmesini sağlar.
-Kullanıcıve grupların listesini merkezi olarak tutar.
-Kullanıcıve grupların ancak gerekli izinlere sahip olmasıdurumunda kaynaklara erişmesini sağlar.
-Domain içindeki nesnelere birçok özelliklerinden erişimi sağlar.
-Domainin OU adıverilen alt parçalara bölünmesini sağlar. Bu yönetimin delege edilmesini sağlar.

Desteklediği teknolojiler
-DHCP (Dynamic Host Configuration Protocol)
-DNS (Domain Name System)
-LDAP (Lightweigth Directory Access Protocol):Dizin sistemlerine standart olarak erişmeyi sağlar.

Organizational Unit
OU’lar domain içinde kullanıcı, grup ve bilgisayarların yer aldığıkonteynerlardır.
OU’ların kullanım alanları:
-Yönetimi delege etmek
-Group policy sayesinde kısıtlamalar yapmak
-Nesneleri saklamak

Global Catalog
Birden çok domainli bir forest’da bütün domainler hakkında sorgu yapmak için Global Catalog kullanılır. Global Catalog olan yada rolünüüstlenen DC, directory’de yer alan tüm domainlere ilişkin temel bilgilere sahiptir. Böylece GC’ye ulaşan bir client, bütün domainlerin nesnelerini sorgulama şansına sahip olur. Farklıdomainlerdeki kullanıcıların faklıdomainlere logon olmasınısağlar.

Active Directory Veritabanı
Active Directory dizin bilgileri bir veritabanıüzerinde tutulur. Bu dizinde kullanıcılar, gruplar, bilgisayarlar, domain’ler Ou’lar ve güvenlik politikalarıgibi nesneler saklanır. Dizin verileri domain controllerlar üzerinde NTDS.dit dosyasında tutulur. Ntds.dit aşağıdaki tablolarıiçerir:
Shema tablosu: Active Directory’de yazılabilecek nesne türlerini, aralarındaki ilişkileri ve her nesne üzerinde seçimlik ve zorunlu özellikleri gösterir. Bu tablo oldukça statiktir ve veri tablosundan daha küçüktür.
Link Tablosu: AD’de yer alan nesnelerle ilgili değerleri içeren özelliklerden oluşur. Örneğin member of özelliğini ele alalım. Bu özellik, kullanıcının üye olduğu gruplarla ilgili bilgileri içerir. Bu tablo da veri tablosundan küçüktür.
Veri Tablosu:Active Directory’de yer alan kullanıcıları, grupları, diğer nesneleri ve uygulamaya yönelik verileri içerir. Bu tabloda her satır bir nesneyi, her sütun da o nesnenin özelliğini temsil eder.

Replikasyon bakımından ise Active Directory veri tabanıDört kısımdan oluşur
-Domain Data
-Configurasyon Data
-Shema Data
-Application Data









Kaynaklar
http://web.sakarya.edu.tr/~halils/AD.pdf

19 Ocak 2011 Çarşamba

Hibernate Cache Algoritmaları

Hibernate Cache Algoritmaları

Veritabanıyla çok fazla alış veriş içerisinde olan uygulamalar yoğun veritabanı trafiği nedeniyle performans düşüklüğü gösterirler. Bu sorunu çözmek için en iyi çözüm yolu cache algortimaları kullanmaktır.

Hibernate web uygulamalarının performansını arttırmak için yapılması gerekenler

Cache daha önce yaptığımız sorgular sonucu ulaşılan verileri tutmaktadır genel olarak. Böylece aynı veriye tekrar ulaşmak istediğimizde bu veri cache’den getirilerek bu veriye daha hızlı ulaşmamızı sağlanır. Ancak farklı bir veriye ulaşmak istediğimizde tekrar veritabanıyla bağlantı kurulmak zorundadır.

Hibernate iki farklı cache sunmaktadır. Bunlardan birincisi 1. Seviyede cache diğeri ise 2. Dereceden cachedir.

Birinci Seviye Cache: Session nesnesiyle ilişkilidir. Hibernate default olarak bu cache yöntemini kullanır.Bir transection’un birden fazla kez gerçekleştirilmesinin önüne geçer. Kullanıcının yaptığı değişiklikleri her seferinde veritabanına bağlanıp gerçekleştirmek yerine bütün değişikliklertransaction sonunda gerçekleşir.

İkinci Seviye Cache : Session Factory Nesnesiyle ilişkilidir.Veritabanına bağlantı sonucu getirilen veriler tek kullanıcı için geçerli olmak yerine tüm kullanıcılar için geçerli oluyor. Dolayısıyla cache’de bulunan bilgiler için database transaction gerçekleştirmemiz gerekmez.Burada query level cache de kullanılabilirdi.

Cache Yöntemleri

Hibernate 4 farklı cache yöntemini destekler. Bunlar;

EHCache (Easy Hibernate Cache)
OSCache (Open Symphony Cache)
Swarm Cache

JBoss Tree Cache

Ehcache

Bu yöntem hızlıdır. Kullanımı kolaydır. Read/only ve read/write cache desteklidir.Hafıza bazlı ve disk bazlı cache desteklidir. Kümelemeyi (clustering) desteklemez.

Oscache

Bu yöntem güçlüdür(powerful). Esnektir. Read only ve read write hafıza desteklidir. Hafıza bazlı ve disk bazlı cache destekler. Gruplama için temel destek sağlar (JavaGroups veya JMS ile).

SwarmCache

Gruplama bazlı cache’dir. Read only ve nonstrict read/write cache desteklidir. Okuma işlemlerinin yazma işlemlerinden daha fazla olduğu uygulamalar için daha iyidir.

JBoss Tree Cache

Güçlü bir yöntem. transaction-capable caching mimarisine ihtiyaç duyduğumuz durumlar için çok etkilidir.

Hiçbir cache sağlayıcısı tüm cache özelliklerini bir arada sağlamaz.

Read-Only: Okumanın çok sık olduğu ama hiç update yapılmadığı durumlar için çok etkin bir özellik. Bu özellik çok basit. Gruplamayı kullanmak açısından çok güvenli

Read-Write: Verilerimizi update etmek için bu özellikten faydalanırız.Bu özelliği gruplama için kullanmak istersek locking desteğinin olması gerekmektedir.

Nonstrict Read-Write: Verilerimizi çok sık update ettiğiz durumlarda bu özellik çok işimize yaramaktadır.

Kaynak: http://www.javabeat.net/articles/37-introduction-to-hibernate-caching-1.html