21 Kasım: Internet Security & Hacking Semineri

Yağız Gönüler tarafından yayınlanmıştır 18. Kasım 2008 09:44


Beykent Üniversitesi Bilim ve Teknoloji Kulübü'nün hazırladığı, Serkan BEYDİL'in konuşmacı olarak katılacağı "Internet Security & Hacking" konulu seminere davetlisiniz.

Seminerde güvenlik bilgisayar ve internet hakkındaki sorularınıza cevap bulacaksınız.

Seminerde Bahsedilecek Bazı Konular
:

  • Cracking
  • Hacking
  • Network
  • Internet Güvenliği
  • Saldırı Türleri ve Savunma Taktikleri

Tarih : 21 Kasım
Saat : 13:00
Yer : Beykent Üniversitesi Ayazağa Kampüsü Konferans Salonu
Ulaşım bilgileri için :
http://www.beykent.edu.tr/iletisim_ulasim.aspx
Seminer için ön kayıt alınmamaktadır ve ücretsizdir.

Detayli Bilgi için http://www.beykentbtk.net/tr/forum/showthread.php?tid=39

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: , , ,

Activity | Web Security

Hotmail Türkiye'den ''sahte e-posta'' uyarısı

Yağız Gönüler tarafından yayınlanmıştır 12. Ekim 2008 12:27



Microsoft'un ücretsiz e-posta hizmeti hotmail, Türk kullanıcılarına, kişisel bilgilerini çalmayı amaçlayan sahte e-postalardan korunmanın yollarının anlatıldığı bir uyarı gönderdi.

Hotmail Türkiye, uyarıda, dünya genelinde hotmail kullanıcılarına günde 4,5 milyar adetten fazla istenmeyen e-postanın (spam) gönderildiğini ve bu iletileri filtrelemek için yoğun çaba sarf ettiklerini kaydetti.

İstenmeyen e-postalar arasında, çeşitli şirketlerden ve kurumlardan geliyormuş gibi görünen, hotmail hesabı ya da internet bankacılığı gibi bilgileri çalmayı amaçlayan ''sahte e-postaların'' da olduğu belirtilen uyarıda, bu tür sahte e-postaları tanımak için çeşitli ipuçlarından yararlanılabileceğini bildirildi.

Buna göre, öncelikle, kişisel bilgilerin istendiği e-postalara karşı dikkatli olmak gerekiyor. Örneğin, kişinin adının, doğum tarihinin, kullanıcı adının, parolasının veya bankaların internet sitelerine giriş bilgileri gibi diğer kişisel bilgilerinin sorulduğu bir e-posta, kimden gelirse gelsin, çok büyük olasılıkla dolandırıcılık amacıyla gönderilmiş oluyor.

''Şüpheli görünen'' e-postaların da dikkatle incelenmesi gerekiyor. Yani, kötü ve düzensiz yazılan, yazım hataları bulunduran ve ''bu bir şaka değil'' veya ''bu iletiyi arkadaşlarınıza iletin'' gibi ifadeler içeren e-postalar, genellikle dolandırıcılık amaçlı e-postalar oluyor.

Böyle e-postalarda, bazen şirket adları ve markalar da yanlış yazılıyor veya küçük hatalar içeriyor. Örneğin, ''windows livehotmail'' yerine ''windows hotmail'' yazılıyor.

PAROLANIZI KORUYUN

E-posta hesabını çalınmaktan korumak için 7 karakterden daha uzun, büyük-küçük harfleri, sayıları ve ''@'' veya ''#'' gibi özel karakterleri bir arada bulunduran ''güçlü bir parola'' oluşturulmasında ve düzenli aralıklarla değiştirilmesinde fayda var.

Bunun yanında, Microsoft Müşteri Destek Biriminden, ''parola değiştirme isteğinin onaylandığına'' dair bir ileti gelirse ve böyle bir talepte bulunulmadıysa, bu durum, birisinin kullanıcı hesabını çalmaya çalıştığını gösterir.

Bu durumda hemen hotmail sayfasındaki ''seçenekler'' menüsüne girilerek, parola, parola sıfırlama bilgileri ve gizli soru ile cevabın değiştirilmesi gerekiyor.

Kaynak: AA

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

Web | Web Security

Web Güvenliği - 2

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:47

 

Önceki makalede kimlik denetimini, belirli bir kaynağa erişim vermek veya kısıtlamak için yetkilendirme ile beraber kullanılan, kullanıcının tanımlanması olarak tarif etmiştik.

 

 

Kimlik Denetimi ve Yetkilendirme

Bir kullanıcının kimlik denetimini yapmak için birden fazla yol vardır ve bazen bir alışveriş sitesi örneğindeki gibi kullanıcılara, kaynaklara herhangi bir yetkilendirme olmadan da erişim izni vermek istersiniz. Bu makalede kimlik denetimi ve yetkilendirme konusunu sadece Microsoft Internet Information (IIS) üzerinde örneklendireceğim. Normalde Unix veya Linux üzerinde çalışan açık kaynaklı Apache sunucusunun da kimlik denetimi ve yetkilendirme sürecini tartışmak gerekebilirdi. Ancak sitemizin ve bizlerin .Net tabanlı çalıştığını düşünürsek IIS üzerinde konuşmak daha güvenilir olacaktır.

 

IIS ve Asp.Net’te Kimlik Denetimi ve Yetkilendirme

IIS ve Asp.Net, biz .Net geliştiricileri için 2 amiral gemidir. İkisi de zengin güvenlik özellikleriyle donatılmış özelliklere sahiptir. Genel olarak IIS ilk kontrolleri yapar ve kullanıcı bu ilk engelin üstesinden gelirse ve istenen kaynak, mesela bir ASPX sayfası gibi Asp.Net tarafından yönetiliyorsa Asp.Net güvenlik denetimi devreye girer.

 

Bir dosya’ya erişim izninin verilmesi veya verilmemesi ile ilgili son karar NTFS (New Technology File System - Yeni Teknoloji Dosya Sistemi) izinlerinin ve ilgili web.config dosyasındaki yetkilendirme kodlarının bir birleşimi tarafından verilir.

 

Dosyalar; okuma, değiştirme ve silme gibi spesifik işlemler için kısıtlanabilir veya izin verilebilir. Bu izinler Windows Explore, kod veya scriptler aracılığıyla programlamayla veya Active Directory kullanılıyorsa Group Policy (Grup Politikası) ile de ayarlanabilir. Web.config dosyası aracılığıyla ayarlanan izinler aşağıdaki gibi bir <authorization> öğesi eklenerek yapılandırılır:

 

<configuration>

<system.web>

<authorization>

<allow users="etkiAlaniAdi\kullanici1, kullanici2"/>

<deny users="*"/>

</authorization>

</system.web>

</configuration>

Burada kullanici1 adındaki bir etki alanı hesabına ve kullanici2 adındaki yerel bir hesaba erişim yetkisi verildiğini görüyoruz. Diğer tüm kullanıcılar ise yasaklanmış bulunuyor. Web.config dosyası, web uygulamasının köküne veya spesifik bir klasöre yerleştirilebilir.

 

Kısa olarak belirtmek gerekirse gelen ilk isteği IIS yönetir ve IP adresinin ve istemcinin etki alanının izin verilen listede olup olmadığını kontrol eder.

Daha sonra ise, kimlik denetimin olup olmadığını kontrol eder.

 

İstenen kaynak Asp.Net tarafından kontrol ediliyorsa, istemcinin kimlik denetimi yapılmış belgeleriyle birlikte Asp.Net çalışma sürecine aktarılır.

 

Aktarılma esnasında olumsuz bir duruma izin verilirse, tüm yetkilendirme istekleri için gerçek istemci belgeleri veya anonim erişim etkinleştirildiyse daha önce bahsedilen anonim hesap kullanılır. Eğer olumsuz bir durum yoksa, kullanılacak hesap Framework kurulum klasöründe bulunban .Net Framework machine.config dosyasında belirtilen hesap olur. Bu hesap, gerektiğinde değiştirilebilir, çok az ayrıcalığa sahip yerel bir hesaptır.

 

Web.config dosyalarında görebileceğiniz identity tagleri bundan ibarettir.

 

<identity impersonate="true">

 

Bu durumda istemci kimlik belgeleri kullanılır. Alternatif olarak belirli bir kullanıcı belirlenerek tüm isteklerin bu kullanıcıyla yetkilendirilmesi sağlanır.

 

<identity impersonate="true" name="domain\user" password="securePassword">

 

Dikkat: Kullanıcı adları düz metin halinde depolanıyorsa büyük bir güvenlik riski oluşur. Bu ayarları şifrelemek için Microsoft tarafından aspnet_setreg.exe adında bir araç sağlanmıştır. Bu araç hakkındaki her şeye makalenin sonundaki kaynaklar bölümünden ulaşabilirsiniz.

 

 

IIS ve Asp.Net’te Farklı Kimlik Denetimi Yöntemleri

Bu konuda öncelikle IIS’in durumuna ve ihtiyaçlarına göre doğru biçimde bir yapılandırma oluşturmalıyız. Bundan sonra da Asp.Net’i yapılandırıp özelleştirebiliriz. Şimdi ilk olarak IIS’i, ardından da Asp.Net kimlik denetimlerini detaylandırıyorum.

 

IIS Kimlik Denetimini Yapılandırmak

Bu konuda daha önce bahsettiğim anonim kimlik denetimi en yaygın olandır. Birçok site kullanıcılarının ana sayfaya veya diğer kısımlara bir kullanıcı adı ve parola olmadan erişmesine izin verir. Anonim kimlik denetimini etkinleştirmek için Web sitemizin Properties kısmından iletişim kutusunu açıp Directory Security sekmesini tıklayın. Authentication and Access Control Group’unda Edit buttonunu tıklayın ve Enable Anonymous Access onay kutusunu işaretleyin.

 

Bir başka seçenek ise gerektiğinde kullanıcı adının ve parolasının düz metin halinde gönderileceği anlamına gelen temel kimlik denetimi (basic authentication) bulunur. Bu seçenek SSL etkinleştirilmediği müddetçe zayıf bir seçimdir.

 

Son seçenek Passport Authentication (Pasaport kimlik denetimi)’ı etkinleştirmektir. Bu birçok site için kullanıcı adı ve parolalarının senkronize edildiği Microsoft tarafından barındırılan merkezi olarak yönetilen bir servistir. Passport etkin bir sitede imzalandığında, kullanıcının bu tip uygulamaların hepsi için kimlik denetimi yapılmış olur.

 

Passport’un devamı olan Windows CardSpace yakın zamanda Microsoft tarafından başlatılmış olan bir sistemdir. Ayrıntılarına makalenin sonundaki kaynaklar bölümünden ulaşabilirsiniz.

 

Kimlik denetimini kontrol etmek için Asp.Net kullanırken özellikle kamuya açık web siteleri için standart yaklaşım IIS’te anonim erişime izin vermektir.

 

Asp.Net Kimlik Denetimlerini Yapılandırmak

Asp.Net, 4 tane kimlik denetimini destekler; Forms, Windows, Passport ve hiçbiri veya özel. Bir kimlik denetimini ayarlamak için aşağıdaki öğeyi web.config dosyasına eklemek yeterli:

 

<authentication mode="Forms|Windows|Passport|None"></authentication>

 

Forms: Kullanıcıdan, kullanıcı tarafından oluşturulmuş web sayfası aracılığıyla bir kullanıcı adı ve parola girmesi istenir. Ayrıntılar genellikle bir veritabanıyla karşılaştırılır.

 

Windows: İstemcinin kimlik belgelerini kullanır ve daha önce bahsedildiği gibi normalde sadece şirket intranetleri gibi dahili sitelerde kullanılır.

 

Passport: Merkezi olarak yönetilen Microsoft Passport sistemidir.

 

None: Tamamen kendi özel kimlik denetimi sistemimizi kullanmak için bu kip kullanılır. Bundan sonra IIS kimlik denetimi devam etse de, Asp.Net daha fazla kontrol işlemi gerçekleşmez.

 

 

Web Güvenliği makaleleri burada bitmedi, mutlaka devamı olacaktır.

 

Tekrar görüşmek üzere, iyi çalışmalar dilerim.

 

 

Kaynaklar:

http://msdn2.microsoft.com/en-us/library/ms178477.aspx

http://msdn2.microsoft.com/en-us/library/aa480189.aspx

Web 2.0 Teknolojileri – Eric Van Der Vlist, Danny Ayers, Erik Bruchez, Joe Fawcett, Alessandro Vernet

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: , ,

Articles | Software | Web | Web Security

Web Güvenliği - 1

Yağız Gönüler tarafından yayınlanmıştır 13. Ağustos 2008 13:46
Özette bahsettiğim “ilk zamanlar”da, kullanıcı sisteme bir kullanıcı adı ve parolo ile girer ve işini görüp çıkardı. İlgili birçok insan için bu çok derin bir konuydu. Ancak sistemlerin açık ve özgür olmasını isteyen kesim, güvenliğin çok bunaltıcı olduğunu belirtip kendi “dava”larına özel bir yol çizdiler.

 

Bu makalem, diğer web güvenliği makalelerinden çok farklı olucak. Çok az, beklide hiç kod görmeyeceksiniz. Amacım, bu önemli konuyu mantıklara daha “sosyal” bir biçimde kazımak olacak. Kemerlerinizi bağlayın..

 

Güvenlik

İki tip güvenlik vardır diyebiliriz. Bunlardan ilki dosya ve uygulamaları koruyan kaynak güvenliği, ikincisi ise mesajları güvenli bir biçimde göndermek için kullanılan mesaj güvenliği. Artık güvenlik bu iki öğe üzerine kuruludur. Dilerseniz biraz daha detaylandıralım..

 

Kaynak Güvenliği

Kaynak güvenliği, iki temel zorunluluk olan kimlik denetimi ve yetkilendirme ile birlikte kullanılır.


Kimlik denetimi, tamamen kullanıcının tanımladığı bir süreçtir. Bu süreçte kullanıcı adı ve paroladan daha güvenilir bir sistem için akıllı kart gibi fiziksel bir aygıtın kullanımına veya sıranın en üstünde bir parmak izi tarayıcısı gibi biyolojik bir ölçüme sahip olmak gerekebilir. Bu konuda verilebilecek en güzel örnek, bir havaalanındaki kimlik denetimidir. Yolcunun kimlik denetimini gerçekleştirmek için pasaportunu göstermesi yeterlidir. Pasaport onayından sonra verilecek yetkiye göre yolcu uçuş yada geçiş iznine sahip olur.

 

Yetkilendirme, kimlik denetimi yapılmış bir kullanıcıya belirli bir dosya veya bir uygulamanın kullanımı gibi belirlenen bir kaynak için iznin verilip verilmeyeceğini belirler. Yetkilendirme genellikle gruplarla yapılır. Yönetici grubu tüm sistemi rahatlıkla izleyebilirken, çalışanlar grubu sadece kendi grubu dahilindeki bilgilere ulaşır. Havaalanındaki örneği devam ettirecek olursak, pasaport kontrolü yapılmış yolcunun, yolcu listesi ile karşılaştırılarak bilet aldığından emin olunmasını söyleyebiliriz.

 

Mesaj Güvenliği

Üç hedefi vardır. Bunlar gizlilik, güvenilirlik ve doğruluktur. Bu amaçlar, karşılıklı bir mesajlaşma sürecinde geçerliliğini korur.

 

 

Gizlilik, sadece belirtilen alıcının mesajları okuyabilmesi yada işleyebilmesi amacına bağlıdır. Bu yönüyle bir kimlik denetimini işin içine sokabilir.

 

Güvenilirlik, alıcının mesajın kaynağından gelip gelmemesine emin olmasıdır. Örneğin online bankacılık sisteminde, kişiye hangi hesaptan para geldiği yada hangi hesaba para gönderildiği çok önemlidir. Burada kimlik denetimi çok önemli bir rol oynar.

 

Gelen yada giden her bir mesajın doğruluğu, mesajın ilgili yere değiştirilmeden ulaşmasından sorumludur. Online veri transferlerinde verinin yol üzerinde değişmeden, türünü değiştirmeden aynen belirtilen adrese ulaşması güvenlik açısından son derece önemlidir.

 

Elbette ki tüm bunlar dışında 2 güvenlik yolu daha vardır. Bunlardan ilki, makinelerinizi virüslere, trojanlara ve diğer kötü yazılımlara karşı korumak için kullanılan donanımsal güvenliktir. Diğeri ise takdir edersiniz ki kod güvenliğidir. Kodunuzun istenmeyen görevleri gerçekleştirmek üzere çökertilmemesi veya değiştirilmemesi çok önemlidir. Aksi takdirde çıkan sonuçtan sorumlu siz tutulursunuz. Örneğin bir bankanın veritabanından sorumlusunuz ve yapmakta olduğunuz sql enjeksiyonu tam tersi yönde çalışmakta, verilerinizi yok etmektedir. İşte burada kod güvenliğinin ne kadar öneme sahip anlamak çok kolaydır.

 

Tüm bunların dışında, özellikle son 5 yılda web servislerinin güvenliğiyle de alakalı çözümler geliştirilmekte ve duyurulmaktadır.

 

Maziden alınan çok önemli dersler

Hiç şüphesiz ki alınan en büyük ders, erken alınmayan tedbirler ve standart teknikler konusundadır.

 

Erken tedbirler, yeni bir sistemi oluştururken tüm güvenlik konularının her şeyden önce göz önüne alınması gerekliliğidir. Güvenliği sonraya bırakan bir sistemin ne kadar güvenli olacağını hepimiz tahmin edebiliriz. Güvenliği başlangıç yerine ikinci plana atarsak hem daha sonrası için zaman kaybederiz, hem de büyük miktarda kod değişikliklerine yol açarız.

 

Standart teknikler, güvenilirlik, tehlikeye karşı zayıflık ve kusurlar açısından incelenmiş olan tekniklerdir. Az tanınmış tekniklere daha fazla önem veren web geliştiricileri, tarihin en büyük derslerini almıştır. Bu tekniğe örnek, birkaç yıl önceki telefon sisteminden gelir. Telekomunikasyon Mühendisleri, arama yapmadan önce özel bir erişim kodu girerek ücretsiz aramalar yapabiliyorlardı ve bu hat kontrolü için kullanılıyordu. Web, popüler olmadan önce bu kod sadece çok az kişi tarafından biliniyordu. Bununla birlikte online olarak yayımlandıklarında binlerce insan telefon şirketinin zararına aramalar gerçekleştirebiliyordu. Bu sistemdeki kusur sadece erişim kodu olan bir bilgi parçasının bilinmesine dayanan kimlik denetimi ve yetkilendirme zayıflığından kaynaklanıyordu.

 

Katmanlı Yaklaşım

En önemli sistemler, güvenlik konusunda bu katmanlı yaklaşımı uygularlar. Sistemlerin sadece uygun insanlar tarafından kullanılabileceğinden emin olmak için tek bir özelliğe dayanmazlar.

 

 

Örneğin, sürekli e-mail gönderen bir şirketi ele alalım;

 

  1. Kullanıcı iş yerine varır. Fiziksel erişimden önce mutlaka kart gibi bir aygıtı görevliye göstererek şirkete girişini gerçekleştirir.
  2. Kullanıcı oturumunu açar. Bu, işe bir kullanıcı adı ve parola aracılığıyla kimlik denetimini devreye sokar ve bazı durumlarda akıllı kart gibi bir aygıta da gereksinim duyar.
  3. Kullanıcı Microsoft Outlook gibi bir programı açar. Bu noktada yetkilendirmek genellikle kullanıcı için otomatik olarak yapılır. E-Mail sistemi, halihazırda oturum açmış olan kullanıcının sistemi kullanmasına müsaade edildiğini kontrol eder.
  4. Kullanıcı yeni bir e-mail oluşturur ve gönderir. Bazen bu mesajı dijital bir şekilde imzalar ve içeriği de Public Key Infrastructure (Açık Anahtar Altyapısı – PKI) kullanarak şifreleyebilir.
  5. E-Mail ilk olarak kimlik ve yetkilendirme denetiminden sonra şirketin güvenlik duvarını aşarak alıcının e-mail kutusuna gönderilir.
  6. Alıcının e-mail sunucusu, e-mail adresinin geçerli olup olmadığını kontrol eder.
  7. E-Mailin virüs veya zararlı bir dosya taşıyıp taşımadığını kontrol eder.
  8. Bu son noktada alıcı, göndericinin yaşadığı sürece benzer şekilde bir oturum açma sürecinden geçer ve e-maili görüntüler.

 

Bu örnek, sistem için bir tek güvenlik noktası olmadığını göstermektedir ve dolayısıyla bir tek saldırı noktası da yoktur. Kötü niyetli bir kullanıcının, başka birisinden geldiğini iddia eden imzalı bir e-mail göndermek için bir bilgi parçasından daha fazlasına ve bazen fiziksel bir kimlik denetimi aygıtına ihtiyacı olur. Verdiğim bu örnekte Microsoft Outlook gibi bir desktop uygulamasından gönderildiği ve e-mail sunucusunun posta göndermek için sadece şirketinde intranetinden erişilebilir olduğunu varsaydım.

 

 

Makalemin ilk bölümü bu kadar. İkinci bölümde kimlik denetimi ve yetkilendirme başlığını genişletip, IIS ile Asp.Net’te kimlik denetimi ve yetkilendirmeye değinicem.

 

 

Tekrar görüşmek üzere, iyi çalışmalar dilerim.

 

 

Kaynaklar:
http://www.w3.org/Security/Faq/

http://www.w3schools.com/site/site_security.asp

Web 2.0 Teknolojileri – Eric Van Der Vlist, Danny Ayers, Erik Bruchez, Joe Fawcett, Alessandro Vernet

 

Bu yazıyı ilk değerlendiren siz olun

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler: ,

Software | Web | Web Security | Articles

Her yazılımcının bilmesi gereken 10 konsept

Yağız Gönüler tarafından yayınlanmıştır 25. Temmuz 2008 11:12

Yazılım dünyası, kalabalık ekiplerin yerini büyük ve karmaşık işleri bir kaç iyi yazılımcının yapacağı bir yöne doğru ilerliyor.

yazılım mühendisi
yazılım mühendisi

Alex Iskold, bu ekiplerde yer alacak mühendislerin bilmesi gereken 10 konsepti listelemiş.

10 İlişkisel Veritabanları

learning mysql
learning mysql

İlişkisel veritabanları, çok büyük web servislerinde kötü performanslar sergilediği için son zamanlarda sevilmiyor. Ancak yazılım dünyası daha uzun bir süre onları kullanmaya devam edecek.

İlişkisel veritabanlarında veriler tablolarda kayıtlar olarak tutuluyor ve genellikle SQL adı verilen dil ile bu veriler sorgulanıyor. SQL’in veri ekleme, silme, güncelleme, filtreleme ve birden çok tablodaki verileri bir arada getirme gibi güzel yetenekleri var.
İlişkisel veritabanlarında veri yazıp okuma işini performanslı bir şekilde halledebilmek için SQL, stored procedure’ler (yerleşik yordamlar), constraint’ler (kısıtlamalar) gibi pek çok konuya hakim olmak gerekiyor.

9 Güvenlik

web security, privacy and commerce
web security, privacy and commerce

Hack olayları ve veri güvenliği önem kazandıkça güvenlik bilgisinin de önemi artıyor. Veri güvenliği; kullanıcı yönetimi, yetkilendirme, bilgi aktarımı gibi pek çok kavram içeren geniş bir konu.
Kullanıcı yönetimi, bir sistemde her kullanıcının kendisini ilgilendiren bilgilerle muhattap olması ve diğer kullanıcıların bilgilerini görememesi ile alakalı. Yetkilendirme, kullanıcıların yalnızca izin verilen işlemleri yapabilmeleriyle alakalı. Daha çok şirketleri ve iş akışı bulunduran sistemleri ilgilendiriyor. Yeni geliştirilen OAuth protokolü, web servislerde güvenliği sağlamak konusunda yardımcı oluyor. Bu sistemi flickr kullanıyor.

8 Cloud Computing

programming amazon web services
programming amazon web services

Cloud Computing, bir işin daha hızlı yapılması için aynı anda birden fazla bilgisayarın çalıştırılması esasına dayanan paralel programlamadan yola çıkılıp geliştirilmiş bir yöntem. Yararlananılabilecek hizmetlerin zaman, kullanıcı yoğunluğu gibi parametrelere bağlı olarak değişmesi esasına dayanıyor.





7 Eş Zamanlılık

java threads
java threads

Eş zamanlılık, birden fazla işin bir programın kendi içinde aynı anda yapılması ile alakalı. Örneğin java ile yazılan uygulamalarda bunun için thread’ler kullanılıyor.

Üretici / Tüketici modeli tipik bir örnek. Üretici durumunda olan kısım sürekli olarak işlenecek verileri üretiyor, tüketici olan kısım ise sürekli olarak bu verileri alıp işliyor. Bu iki kısım aynı anda çalışıyor. Her thread’in kendi içinde çalışma mantığı ayrı olsa da thread’ler verileri aynı anda ve ortak olarak kullandığı için çalışırlarken yapabilecekleri hataları önlemek uzmanlık gerektiriyor. En karmaşık thread kütüphanelerinden birisi Doug Lea tarafından üretilmiş ve java çekirdeğinde yerini almış.

6 Caching

web caching
web caching

Caching, normalde veritabanında tutulan verilerden çok sık kullanılanların hızlı ulaşılabilecek bir yere alınması ve buradan hızla kullanılması anlamına geliyor. Örneğin bir kitap siteniz varsa ve geçen haftanın popüler kitaplarını listeleyen bir kısım mevcutsa, bu verileri her gerektiğinde hesaplamak yerine haftada bir kez hesaplayıp uygun bir yere kaydediyor ve gerektiğinde buradan okuyorsunuz.
Cache’lenen verilerin tamamını bellekte tutmak maliyetli bir işlem olduğu için, bellekte tutulacak verilerin seçilmesi için uygulanacak yöntemleri seçmek yine uzmanlık gerektiriyor.
Facebook’un da aralarında olduğu bir çok modern uygulama, Brad Firzpatrick tarafından geliştirilen memcached adlı sistemi kullanıyor.

5 Hashing

lecture notes in computer science
lecture notes in computer science

Hashing, verilere hızlı ulaşmak için başka bir yöntem. Bu yöntemde, her verinin içeriğine bakılarak bu veriye özel daha kısa bir veri üretiliyor ve bu kısa veriler index olarak kullanılıyor. Index içerisinde arama yapmak da çok daha hızlı oluyor.

Hashing yapılırken her verinin farklı bir hash kodunun olması ve bu hash kodlarının hızlı ulaşımı mümkün olduğu kadar kolaylaştıracak şekilde ayarlanması farklı bir uzmanlık gerektiriyor.

4 Algoritmik Karmaşıklık Seviyesi

data structures and algorithms
data structures and algorithms

Çok yaygın olarak büyük O harfi notasyonuyla ifade edilen karmaşıklık seviyesi, bir algoritmanın hızının, algoritmanın işlediği veri miktarına göre değişimini belirliyor. Örneğin O(n) ile ifade edilen bir algoritma, n tane veriyi t zamanda işliyorsa 2n tane veriyi 2t zamanda işler. O(n^2) ile ifade edilen algoritma ise n tane veriyi t zamanda işlerken 2n tane veriyi t’nin karesi kadar zamanda işler. İşlenen veri miktarları çok büyük olunca, bunları işleyen algoritmanın karmaşıklığı çok büyük önem kazanıyor.

3 Katmanlı Mimari

large scale c++ software design
large scale c++ software design

Katmanlı mimari, bir yazılımın çalışması için gereken bileşenlerin piramit şeklinde yapılandırılması gerektiğini ifade ediyor. Piramitin her katmanındaki bileşenin çalışması, kendi altında bulunan bileşenlere bağlı olabilir ancak kendi üzerinde çalışanlara bağlı olamaz.
Bu konuda bilgi alınabilecek Structure 101 ve SA4J adlı iki güzel kaynak var.

2 Kurallar ve Şablonlar

developing java beans
developing java beans

İsimlendirme kuralları ve şablonlar üzerinde en çok durulan ve muhtemelen en önemli tasarım desenleri.
İsimlendirme kuralları yazılım geliştirilirken kullanılan tüm isimlendirmelerin ortak kurallara dayanmasını gerektiriyor. Örneğin JUnit adlı java bileşeni, test metodlarını, isimlerinin başında yer alan test kelimesi sayesinde tanıyor.

Şablonlar ise verilerin gösterimlerinin verilerden bağımsız bir şekilde yapılması ile ilgili. Örneğin XML verilerini göstermek için XSL şablonları kullanılır.

1 Arayüzler

agile software development
agile software development

Arayüz, yazılımdaki en önemli konsept. Yazılım geliştirirken problemleri mümkün olduğunca basit modellemek ve bu modellere mümkün olduğunca basit ve anlaşılır arayüzler sunmak gerekiyor.

Bu konudaki tavsiyeler şöyle:

  • Asla ileride kullanışlı olabilecek metodlar yazmayın. Minimalist olun.
  • Daha önce yaptığınız hatalar ile yüzleşmekten korkmayın. Hatalarınızı düzeltmeye açık olun.
  • Sabırlı olun ve süreçten zevk alın. Adım adım ilerleyin.

Kaynak: Bildirgec

1 kişi tarafından 5.0 olarak değerlendirildi

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Etiketler:

Algorithm | Database | Software | Web Security



Bu site BlogEngine.NET 1.4.5.0 ile oluşturulmuştur. Türkçe çevirisi BlogEngine TR ekibi tarafından yapılmıştır.
Sitedeki kod ve tasarım değişiklikleri ise Yağız Gönüler tarafından geliştirilmiştir.
2008 © www.yagizgonuler.com

Anket

Yazılım geliştirirken en keyif aldığınız alan hangisi?




Sonuçlar

Son Yorumlar

Comment RSS

Calendar

<<  Kasım 2008  >>
PaSaÇaPeCuCuPa
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

Yazıları geniş takvimde göster

Ne Dinliyorum?

Şevval Sam - Ben Seni Sevduğumi (18 saat önce)
Şevval Sam - Oy Benim Sevduceğim (18 saat önce)
Şevval Sam - Giresun Karsilamasi (18 saat önce)
Şevval Sam - Karardı Karadeniz (19 saat önce)
Şevval Sam - Potbori (19 saat önce)
Şevval Sam - Ahmedum (19 saat önce)
Şevval Sam - Çayeli'nden Oteye/Menşure (19 saat önce)
Şevval Sam - Dertliyim Kederliyim (19 saat önce)
Şevval Sam - Bu Dünya Bir Pencere (19 saat önce)
Şevval Sam - Ander Sevdaluk (19 saat önce)

Ne Okuyorum?

Haftanın Sözü



"Savaşlara ait kitaplar kütüphanemin en güzel eserleridir. Yorgunluğumu gidermeye çalıştığım zamanlarda okuduğum ve bana en çok zevk veren kitaplardır. "

Napolyon Bonapart
(1769-1821)

Ziyaretçi Sayısı

Ziyaretçi Sayısı