23 Kasım 2010 Salı

Appcelerator IDC Mobile Developer Raporu (Google, Apple, Uygulamalar)

Google vs. Apple

Google Android ve iPhone iOS arasındaki rekabet hızla sürüyor. 14-16 Eylül 2010 tarihinde konusunda uzman toplam 2158 mobil yazılım geliştirici ile yapılan ankette sonuçlar şöyle;



- Satış ve pazarlama açısından market hakimiyetinin iPhone’da olduğuna çoğunluk hemfikir durumda. Geliştiricilere göre iPhone’da uygulama yazmak ve satmak kesinlikle daha çok para kazandırıyor.
- Son dönemde her ne kadar Apple geliştiriciler ile olan anlaşmalarını daha şeffaf hale getirse de geliştiricilerin %85’i Android’i daha açık bir platform olarak nitelendiriyor.
- Cihaz güvenliği açısından iPhone %58 ile önde.
- Yakın vade görünümünde yine Apple iPhone önde, ancak geliştiriciler uzun vadede Android’in daha çok ön planda olacağına %74 ile eminler…





Uygulamalar: Doğal mı? Web tabanlı mı?
Yine yapılan ankette her 5 geliştiriciden 4’ü, kullanıcıların zengin kullanıcı deneyimlerinden yararlanmak için web tabanlı uygulamalar yerine mobil cihazın işletim sistemini baz alan doğal uygulamaları tercih ettiğini söylüyor. Daha önceki blog yazılarımızdan Web Öldü, Yaşasın Uygulamalar’da da yine benzer bir durumu işaret etmiştik. Ankete katılan geliştiricilerin uygulama geliştirirken hangi özelliklerin daha önemli olduğuna dair yaptıkları oylama da aşağıdaki gibi;


Bazı yorumlar;

- Cihazda çalışan uygulamanın local bir veritabanına sahip olmasının (Local database) oranının %81 ile internet bağlantısı (Internet Connectivity) beklentisi oranından %72 daha yüksek olması bu cihazların birer mini-bilgisayar gibi görüldüğünü gösteriyor.
- Push notifications’ın oranının yüksek olması, gerçek zamanlı iletişimin öneminin arttığını gösteriyor.

Daha ayrıntılı bilgilere raporun orijinalinden ulaşabilirsiniz;
http://www.appcelerator.com/mobile-developer-report-September-2010/

Deniz KILINÇ

22 Kasım 2010 Pazartesi

C# ile Temel I/O İşlemleri – Dosya, Dizin

Bu makalemizde C#  dili ile temel Girdi/Çıktı (Input/Output) işlemlerini nasıl yapabileceğimizi inceleyeceğiz.  Bilgisayar ile yaptığımız her işlem aslında bir girdi/çıktı işlemidir. Klavyeden veri girişi, fare ile program açmak, ekrana veya yazıcıya belge yazdırmak, dosya kaydetmek I/O işlemlerine birer örnektir.  Bizim burada inceleyeceğimiz I/O işlemleri ise .Net  System.IO isim alanı altındaki sınıflarla yapabileceğimiz dosya, dizin okuma/yazma işlemleridir.
Directory
Directory sınıfı klasör oluşturma, silme, yeniden adlandırma ve taşıma gibi klasör işlemleri yapabilmemizi sağlayan statik metotları barındıran ve hiçbir özelliği olmayan bir sınıftır. Eğer bir klasör üzerinde sadece bir işlem yapmak istiyorsanız, instance alınmadan kullanıldığı ve aşırı yüklenmeden kaçındığı için bu sınıfı kullanmanız daha faydalı olacaktır. Şimdi ufak bir uygulama ile bu metotların kullanımına bir göz atalım.

class DirectoryTest
    {
        public static void Main()
        {
            // Gerekli dosya konumlarını tanımlıyoruz.
            string path = @"C:\Test\TestDizini";
            string target = @"C:\Test\HedefDizini";
             try
           {
                // Exist Static Metodu ile dizinin var olup olmadığının kontrolü.
                if (!Directory.Exists(path))
                {
                    // CreateDirectory metodu ile dizin oluşturma işlemi.
                    Directory.CreateDirectory(path);
                    Console.WriteLine("Oluşturulma Tarihi: " + Directory.GetCreationTime(path));
                    Console.WriteLine("Son Erişim Tarihi: " + Directory.GetLastAccessTime(path));
                    Console.WriteLine("Son Değiştirilme Tarihi: " + Directory.GetLastWriteTime(path));
                    Console.WriteLine("Bulunduğu Dizinin Adı: " + Directory.GetParent(path));
                    Console.ReadLine();
                } 
                if (Directory.Exists(target))
                {
                    // Delete metodu ile dizin silme işlemi
                    Directory.Delete(target, true);
                }
                //Move metodu ile dizini taşıma işlemi.
                Directory.Move(path, target);
                //GetDirectories ile dizindeki klasörlerin seçimi.
                string[] directories = Directory.GetDirectories(@"C:\Test\");
                foreach (string dir in directories)
                {
                    Console.WriteLine(dir);
                }
                // Yeni bir Metin Belgesi oluşturma.
                File.CreateText(target + @"\NewFile.txt");
                // GetFiles ile dizindeki dosyaların seçimi.
                Console.WriteLine("{0} dizinindeki dosya sayısı: {1}", target, Directory.GetFiles(target).Length);
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("İşlem Başarısız: {0}", e.ToString());
            }
            finally { }
        }
    } 
DirectoryInfo 
DirectoryInfo, Directory sınıfına benzer metotları olan ve yine klasör işlemlerinde kullandığımız instance alınabilir bir sınıf olup bir çok özelliği vardır. Bir objeyi birden fazla kullanacağımız durumlarda, DirectoryInfo ile instance alıp çalışmamız performans açısından daha etkilidir. Uygulama içerisinde bu özellikleri kullanarak inceleyelim.
class DirectoryInfoTest
    {
        public static void Main()
        {
            // Kullanılacak dizini tanımlama.
            DirectoryInfo NewDir = new DirectoryInfo(@"C:\Test\TestDizini");
            try
            {
                // Dizinin var olup olmadığının kontrolü.
                if (NewDir.Exists)
                {
                    Console.WriteLine("Dizin Mevcut.");
                    // Dizin silme işlemi.
                    NewDir.Delete();
                    Console.WriteLine("Dizin Silindi..");
                }
                 // Yeni dizin oluşturma.
                NewDir.Create();
                Console.WriteLine("Klasör oluşturuldu.");
               
Console.WriteLine("Oluşturulma Tarihi: " + NewDir.CreationTime);
                Console.WriteLine("Bulundugu Dizinin Adı: " + NewDir.Parent);
 
               Console.WriteLine("Dizinin Adı: " + NewDir.Name);
                Console.WriteLine("Dizinin Tam Adı : " + NewDir.FullName);
                Console.WriteLine("Son Erişim Tarihi : " + NewDir.LastAccessTime);
                Console.WriteLine("Son Değiştirilme Tarihi : " + NewDir.LastWriteTime);
                Console.ReadLine(); 
                //Dizin içerisinde alt dizin oluşturma.
                DirectoryInfo SubDir = NewDir.CreateSubdirectory("AltDizin");
                //Alt Dizin içerisinde alt dizin oluşturma.
                SubDir.CreateSubdirectory("AltDizin2");
                 // GetFiles ile dizindeki dosyaların seçimi.
                Console.WriteLine("{0} dizinindeki dosya sayısı: {1}",
                NewDir.FullName, NewDir.GetFiles().Length);
                // GetDirectories ile dizindeki klasörlerin seçimi.
                Console.WriteLine("{0} dizinindeki klasör sayısı: {1}", NewDir.FullName, NewDir.GetDirectories().Length);
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("İşlem Başarısız: {0}", e.ToString());
            }
            finally { }
        }
    }


File
File sınıfı ve Directory sınıfının bazı metotları aynıdır ve tek farkı klasörler yerine dosyalar üzerinde işlem yapmasıdır. Bu metotlar şunlardır: Exists(), Delete(), GetCreationTime(), GetLastAccessTime(), GetLastWriteTime(), Move(), SetCreationTime(), SetLastAccessTime(), SetLastWriteTime(). Ortak metotların yanı sıra dosyalar üzerinde farklı işlemler yapabilmesi için farklı metotları mevcuttur. Bu metotlar da FileInfo sınıfı instance metotları ile aynıdır.
FileInfo
File sınıfı gibi dosyalar üzerinde işlem yapabilen ve de benzer metotları bulunan bir sınıftır. File sınıfı ile işlem yaparken her daim dosya yolunu girmek gerekirken, FileInfo ile instance alındıktan sonra tekrar kullanımı daha efektiftir.
 class FileInfoTest
    {
        public static void Main()
        {
            FileInfo NewFile = new FileInfo(@"C:\Test\HedefDizini\NewFile.txt");
            if (NewFile.Exists) // File sınıfı:  if(File.Exists(@"C:\Test\NewFile.txt"))
            {
                // Dosya silme işlemi.
                NewFile.Delete();   // File sınıfı: File.Delete(@"C:\Test\NewFile.txt"))
            } 
            // Dosya oluşturma.
            NewFile.CreateText(); // File sınıfı: File.CreateText(@"C:\Test\NewFile.txt"))
            Console.WriteLine("Oluşturulma Tarihi: " + NewFile.CreationTime);
            Console.WriteLine("Son Erişim Tarihi : " + NewFile.LastAccessTime);
            Console.WriteLine("Son Değiştirilme Tarihi : " + NewFile.LastWriteTime);
            Console.WriteLine("Bulundugu Dizinin Adı: " + NewFile.DirectoryName);
            Console.WriteLine("Dosyanın Adı: " + NewFile.Name);
            Console.WriteLine("Dosyanın Tam Adı: " + NewFile.FullName);
            Console.WriteLine("Dosyanın Uzantısı: " + NewFile.Extension);
            // Dosya Kopyalama
            NewFile.CopyTo(@"C:\Test\");
            Console.ReadLine();
        }
    }
Buraya kadar dosyaların oluşturulması, kopyalanması ve silinmesi gibi işlemlerin File ve FileInfo sınıfları ile nasıl yapılacağınız gördük. Dosyalar ile okuma ve yazma işlemleri yapabilmek için Stream(Akım) sınıflarından yararlanacağız.
FileStream 
Okuma ve yazma işlemlerinde dosya açarken kullandığımız bir sınıftır. Bu sınıf ile Byte düzeyinde okuma ve yazma işlemleri de yapılabilir fakat bu işlemleri etkin olarak StreamReader ve StreamWriter sınıfları ile metin düzeyinde yapmamız daha efektif olacaktır. Bir FileStream nesnesi oluşturulurken FileMode, FileAccess ve FileShare enumları ile değişik yollarda yaratılabilir. Örnek:
class FileStreamTest
    {
        public static void Main()
        {
            string adres = @"C:\TestDizini\NewFile.txt";
            FileStream fs = new FileStream(adres, FileMode.OpenOrCreate);
            FileStream fs2 = new FileStream(adres, FileMode.Append, FileAccess.Write);
            FileStream fs3 = new FileStream(adres, FileMode.Truncate, FileAccess.Write, FileShare.None); 
            // FileStream akımının tamponu temizlenir
            fs.Flush();
            // FileStream tarafından kullanılan kaynaklar boşaltılır.
            fs.Close();
        }
    } 
FileMode enum
Append: Açılan dosyanın sonuna ekleme yapmak için kullanılır. Eğer dosya bulunmazsa oluşturulur.
Create: Yeni dosya oluşturmak için kullanılır. Zaten dosya varsa üzerine yazılır.
CreateNew: Yeni dosya oluşturmak için kullanılır, belirtilen dosya mevcutsa çalışma zamanı hatası verdirir.
Open:  Dosyayı açmak için kullanılır.
OpenOrCreate: Belirtilen dosya varsa açılır, yoksa yenisi oluşturulur.
Truncate: Belirtilen dosya açılır ve içi tamamen silinir.
FileAccess enum
Read: Dosya okumak için kullanılır.
ReadWrite: Dosya okunmak ve yazılmak üzere açılır.
Write: Dosya sadece yazılmak için açılır.
FileShare enum
Inheritable: Dosyanın child (yavru) işlemler tarafından türetilebilmesini sağlar.
None: Dosyanın aynı anda başka işlemler tarafından açılmasını engeller.
Read: Dosyanın aynı anda başka işlemlerce de açılabilmesini sağlar.
ReadWrite: Dosyanın aynı anda başka işlemlerce de açılıp, okunup, yazılabilmesini sağlar.
Write: Dosyaya aynı anda başka işlemlerce yazılabilmesini sağlar.
Cihan DEMİREL

21 Kasım 2010 Pazar

Veri Ambarı Depolama Türleri (MOLAP, ROLAP, HOLAP)

Veri ambarı küplerinin henüz tasarım aşamasında belirlenen MOLAP, ROLAP ve HOLAP olmak üzere 3 ayrı kullanım şekli bulunmaktadır. Bu seçeneklerin kullanımı sorgu performansı ve güncel veri gösterimi ihtiyacına göre değişmektedir. Bu 3 seçeneğin ayrıntılarını, artı ve eksilerini beraber inceleyelim;

1) Multidimensional OLAP (MOLAP)


Sorguların tamamen analiz sunucu üzerindeki veri tabanından çekilmesi durumudur. Küp çalışma süreci (Process) başlatıldığında ham verinin bulunduğu veri tabanından, istenilen tüm data, analiz sunucu üzerindeki veri tabanına aktarılır. İşlenmiş bilgi pivot tablodan çağırıldığında en süratli sonuç döndürme durumudur. Çünkü küpün çalışma süreci esnasında veri, analiz sunucu üzerine Boyutlar (Dimensions) bazında Ölçü birimlerinin (Measure Group) hesaplanarak aktarılması sağlanmıştır. Bu durumda sorgu performansı (kullanıcının bilgiye ulaşma süresi) en iyi duruma getirilmiştir. Ancak küpün çalışma süreci çok uzun sürer ve Küpün çalışma sürecinin periyodunu düşürür. Genellikle gece çalıştırılması bu sebeptendir. Aynı zamanda verinin analiz sunucu üzerine aktarımı sonucu fiziksel disk kullanımı da en üst düzeydedir.


2) Relational OLAP (ROLAP)

Sorguların tamamıyla ilişkisel veri tabanımızdan çekilmesi durumudur. Veriler her zaman günceldir 1. örnek bir senaryoda, excel yardımı ile analiz servisine bağlanıp, filtreye ocak ayı ve bir dağıtıcı seçtiğimizde bu sorgu analiz sunucu üzerinden ham verinin bulunduğu veri tabanımıza iletilir. Bu sayede en güncel bilgiye erişiriz. Ancak sorgu performansı düşüktür. Analiz sunucu veri tabanında hiçbir bilgi tutulmaz.

3) Hybrid OLAP (HOLAP)

Holap, Rolap ve Molap yapısının en iyi yanlarını birleştirmek üzere yapılmıştır. Detay veri kaynak veri tabanında, toplamlar ise analiz sunucu üzerinde tutulur. Sunucu kaynak veri tabanındaki değişiklik bildirimlerini dinleyerek analiz sunucu üzerinde tutulan toplam bilgilerini günceller. Bu yöntem genellikle Rolap yönteminden daha iyi performans sağlar.

Bora GÜRSEL
-----------------------------------------------------
1 Kaynak data olarak gösterilen veri tabanının SSIS yardımıyla taşınmadığı durumda geçerlidir. Kaynak veri, farklı veri tabanlarından taşınıyorsa veri güncelliği taşıma işleminin frekansıyla belirlenir.

20 Kasım 2010 Cumartesi

CMMI Nedir?

CMMI (Capability Maturity Model Integration), Yetenek Olgunluk Model Entegrasyonu anlamına gelmektedir. Firmaların yazılım geliştirme süreçlerini (Proje alma, Proje geliştirme, Yazılım planlama ve geliştirme vb.) en başından ele alır ve ne durumda olduklarını değerlendirerek, firmaların kendi iç süreçlerinde iyileştirme yapmalarını amaçlar.
CMMI, Amerikan Savunma Bakanlığı’nın 1970’li yıllarda açmış olduğu yazılım ihalelerini alan firmaların projelerini geç tamamlaması ya da tamamlayamadan işi bırakması sebebi ile uğradığı sure ve maliyet kaybını biraz olsun engelleyebilmek adına ihaleye giren firmaların değerlendirebileceği bir kriter olarak oluşturulmuştur. Carnegie Mellon Üniversitesi Yazılım Mühendisliği Enstitüsü(SEI) tarafından geliştirilen bu modelleme son olarak 1 Kasım 2010 tarihinde güncellenerek son halini almıştır. Su an ABD’de birçok büyük şirket Yazılım geliştirme ihalelerinde, ihaleye giren firmaların CMMI derecesine göre karar vermektedir.

CMMI Bileşenleri
1. CMMI-DEV: Hizmet veya ürün geliştiren firmalar için tasarlanmıştır. Müşterinin isteklerine dayalı projeler gerçekleştiren, proje bitiminde bu ürüne dayalı hizmet veren firmalar bu modelden faydalanabilirler.
2. CMMI-SVC: Tamamlanan projeler ile birlikte yürütülmesi gereken destek ve geliştirme surecinin iyileştirilmesi adına bu modellemeden faydalanılabilir.
3. CMMI-ACQ: Satın alma süreçlerinin daha iyi yönetilmesi ve iyileştirilmesi adına çok sık şekilde satın alma yapan firmalar bu modellemeden faydalanabilir.
CMMI Yararları
- Firmanızda çalışan bireylerin daha etkin çalışmaları aynı doğrultuda firmanın iş süreçlerini olumlu yönde etkileyecektir.
- Organizasyondaki üretkenliğin artması ve bunun sonucunda ortaya çıkan urunun kalitesi size de müşterilerin beklentilerini karşılamada daha fazla güven sağlayacaktır.
- Bir projenin geliştirme surecindeki riskler sayısal verilere dayandırabilir duruma geldiğinden, buna göre planlama ve analizleri yapılabilir.
Emin Buğra MERHAMETLİ

19 Kasım 2010 Cuma

Mobil Numara Taşınabilirlik Sistemi İstatistikler

Cep telefon numaranızı değiştirmeden başka bir operatöre geçebildiğiniz “Numara Taşınabilirlik Sistemi - NTS” Türkiye’de 2. yılını doldurdu. Numara taşıma işlemi, abonenin numara taşıma talebi yapmasından itibaren en fazla 6 gün içerisinde gerçekleşiyor. 9 Kasım 2008 tarihinde başlayan uygulama, istatistiklere baktığımızda yoğun ilgi görmüş durumda. Bu yılın 2. Çeyrek rakamlarına göre Türkiye’de toplam 61.5 milyon mobil abone bulunuyor. NTS kapsamında taşının toplam abone sayısı ise 22 milyon 127 bin. Yani günde ortalama 30 bin abone operatör değiştirmiş ve taşınan numara sayısı toplam abone sayısının yaklaşık %28’i.

Türkiye’de üç operatör içinde en fazla abone transferini gerçekleştiren şirket, Vodafone Türkiye olurken, en fazla kayıp yaşayan şirket ise piyasanın lideri Turkcell oldu. Vodafone Türkiye yaklaşık 7 milyon 730 bin aboneyi düşük fiyatlı tarifelerle kendisine çekti. Vodafone'un bu dönemde kaybettiği abone sayısı ise 6 milyona yaklaştı. Şirket böylece toplamda 1,7 milyon üzerinde kişiyi, şirketin aboneleri arasına kattı. Turkcell ise giden abone sayısında 9 milyon 260 binleri gördü. Gelen abone sayısında 6 milyon 580 bini yakalayan şirket son 22 ayda 2,5 milyonun üzerinde abone kaybı yaşadı. Mobil cep telefonu pazarında üçüncü operatör olan Avea ise net 1 milyon abone kazandı.
NTS sisteminin resmi devlet sitesine aşağıdaki linkten erişebilirsiniz;
http://www.nts.gov.tr/
Deniz KILINÇ

8 Kasım 2010 Pazartesi

iPhone 5 NFC (Near Field Communication)

Apple bunu hep yapıyor. Tam da iPhone 4 ile rüyalarımızı gerçekleştirdiğimizi düşünürken, iPhone 5 ile ilgili haberler/dedikodular piyasaya sızmaya başladı bile. Steve Jobs’un hem beğenilen hem de eleştirilen özelliklerinden birisi, bir ürünü piyasaya sürüp piyasada oturmasını beklemeden ve kullanıcı geri-bildirimlerini almadan bir sonraki ürüne odağını kaydırması değil mi? Belki de pazarlama taktiği kim bilir… Ne amaçla olursa olsun, adından söz ettirdiği kesin, en güzel örneklerinden birisi de bu blog yazısı :)
iPhone 5 ile gelen NFC (Near Field Communication = Yakın Alan İletişimi) teknolojisi sayesinde “olayın gidişatı” değişiyor. iPhone 5 barındırdığı NFC teknolojisi ile diğer NFC teknolojisini destekleyen cihazlarla iletişim kurabilecek.

Nerelerde kullanabiliriz;
  • Mobil ticaret (POS, mobil erişim noktaları veya akıllı ürünler üzerinden)
  • Elektronik cüzdan ve mobil ödeme sistemleri
  • Elektronik biletler (ulaşım kartları, uçak, otobüs, konser ve maç biletleri)
  • Elektronik tanıma (güvenli erişim/geçiş sistemleri, personel takip sistemleri)
  • Elektronik anahtarlar (araba, ev, işyeri, otel odaları, garaj kapıları vb)
  • Elektronik reklam, içerik, bilgilendirme (akıllı posterler, afişler, bilboardlar, dergi/gazete reklamları, vb.)
Aklımıza gelen olası problemler;
  • Tüm risk tek merkezde toplandığı için bu cihazlara gözümüz gibi bakmamız gerekiyor. Aman deyin sıkı tutun.
  • Şarj bitmesi problemi devam ediyor. Yedek pil kullanamıyoruz.
Nokia’nın da NFC çip seti içeren ama teknolojinin aktif olmadığı cihazları piyasaya sürdüğü ve ileride aktive edeceği yönünde hazırlıkları olduğu biliniyor. Ayrıca bu teknoloji artık SIM kartlara da konulmaya başlanmış. Hadi hayırlısı :)
Deniz KILINÇ

3 Kasım 2010 Çarşamba

Google Maps Street View

Google tarafından geliştirilen Street view, internet üzerinden sokak sokak gezerek, kullanıcılara "gerçekten oradaymış hissi" vermeyi planlayan bir uygulamadır. Bu uygulama 360°'lik fotoğrafların XML ile flash'a yüklenmesiyle oluşmaktadır. Bu fotoğraflar otomobil ve bisikletlerle koşullara göre kar motosikletleriyle durmaksızın çekim yapan yüzlerce Google çalışanı ile çekilmektedir.
1 
2
Mesela bu uygulama ile köprülerin üzerinden etrafı seyretmek, hatta binaların süslemelerini incelemek mümkün. Uygulama sayesinde internet üzerinden örneğin tatile çıkmadan önce gideceğiniz bölge hakkında fikir sahibi olabiliyor ya da satın alacağınız evin çok işlek bir cadde üzerinde mi olduğunu harita üzerinden takip edebiliyorsunuz.

3 
Fakat bu güzel bilgilerin yanında özel yaşamın ihlali iddialarına yol açan Street View yazılımı, birçok ülkede tepkiyle karşılanmıştır. Google’ın birkaç ay önce yaptığı açıklamada, bu uygulama ile sadece kablosuz ağ bağlantılarının yerlerini ve isimleri topladığını söylemişti. Fakat artan baskılar ve davalar sonucunda, Google, kablosuz ağ bilgileri haricinde e-postaları, internet adreslerini ve şifreleri de yanlışlıkla J topladığını kabul etti. Bu bilgilerin parça parça toplandığını ve en kısa zamanda silineceğini bildirdi. Bir yazılım mühendisinin geliştirdiği kodların bu amaçla yazılmadığını ama bu sonucu doğurduğunu belirtti. Şirket yetkilisi bu bilgilerin kazayla toplandığını bunun için özür dilediklerini belirtti. Google'a açılan en ilginç davalardan birisi, sigara içtiği ailesi tarafından Street View'da görülen bir çocuğun açmış olduğu tazminat davası.
Yasin ÖZCAN

1 Kasım 2010 Pazartesi

5651 Sayılı Yasa (Internet Ortamında Yapılan Yayınların Düzenlenmesi ve Bu Yayınlar Yoluyla İşlenen Suçlarla Mücadele Edilmesi)

Çıkış amacı nedir?
5651 Yasasının çıkarılmasındaki nedenleri internet servis sağlayıcılar (Örn: TTNET, Borusan, Superonline vb.) ile internet için ücretli ya da ücretsiz tüm erişim ve yer sağlayıcıların (Örn: internet kafeler, otel, hastane vb. internet erişimini paylaştıran tüm resmi ve özel kurumlar) arasında bulunan yasal zorunluluk, sorumluluk ve hükümleri kanunen belirlemektir. Buradaki asıl amaç ise internet üzerinden meydana gelebilecek, herhangi suç unsuru içerebilecek bir olaya müdahaleye ilişkin esas ve usulleri düzenlemektir.

Yasanın yaptırımları ve kapsadığı alan nedir?

5651 sayılı kanun maddesi kapsamında belirlenen gereklerin yerine getirilmesi kesinlikle zorunlu olarak tanımlanmıştır. Aksi halde ilgili kanun maddesi içerisinde belirlenen uyarı, para cezası, hapis, kapatma ve yayından kaldırma gibi yaptırımlar, ilgili internet sağlayıcı ve yer sağlayıcı kuruma uygulanacaktır.
Burada sistem yöneticilerine düşen görev, kanunda belirtilen kayıt dosyalarını saklayarak, gerektiği zaman yetkililere bu kayıtları sunabilecek bir yapı oluşturmaktır. Olası bir yaptırımından ve de prestij kaybından kaçınmak adına en kısa sürede ilgili tedbirlerin alınması gerekmektedir.

Yasanın genel yükümlülükleri nelerdir?
  1. Kullanıcıların yasal içerikte olmayan WEB sayfalarına erişimlerinin engellenmesi
  2. Erişim log ve kayıtlarının tutulması (Zaman ve Tarih Mührü ile)
  3. Networklerine bağlı kullanıcıların iç IP loglarının tutulması
  4. Eğer bir Web sayfası mevcut ise ve bu Web sayfasını kendi sunucularında barındırıyor ise dışarıdan gelen erişim log ve kayıtlarının tutulması
İlgili logların tutulması için günümüzde kullanılabilecek çeşitli firmaların halihazırda bulunan yazılım&donanım çözümleri bulunmaktadır. Bunlar ağa bağlanarak, gerek paket yakalama yöntemiyle, gerek log sunucu desteğiyle, gerek SNMP protokolünü kullanarak, gerekse ilgili kayıtların tutulduğu sunuculardaki klasörlere erişerek bahsi geçen dosyaları kendi üzerine kopyalar ve bunları dijital olarak imzalar. Kayıtların dijital olarak imzalanması verinin bütünlüğü üzerinde herhangi bir değişiklik ve oynama yapılmadığını kanıtladığı için zorunlu bir işlem olarak belirtilmiştir. Daha sonra sistem yöneticisi bu dosyaları kanunen 6 ay ila 2 yıl arasında saklamak zorundadır.
İlgili kanuna http://www.tbmm.gov.tr/kanunlar/k5651.html linkinden ulaşabilirsiniz.

Bora ENGİN