28 Ağustos 2013 Çarşamba

Visual Stuido Task List by Comment Line

Technical Dept konusu ile alakalı olarak, hangi durumda olursak olalım sağduyulu kodlamaya yapmaya özen gösterme çabası bazı durumlarda technicaldept oluşturumamıza neden  oluyor.

Bunun da geriye dönük kalan işlerin takibi gibi bir zorluğa, kalan işin ne olduğu kodu nereye yazacaktım vs. için çok fazla zaman kaybı oluşabiliyor.

Bunun için Visual Studio 2012'de  todo ile başlayan comment satırları bırakabilirsiniz.



Visual Studio Kontrol Panel --> View --> Task List altında DropDown Comment seçildiğinde kod içindeki TaskList'e hızlıca erişebilirsiniz.


22 Ağustos 2012 Çarşamba

10 Eylül 2010 Cuma

TRUNCATE vs. DELETE

Truncate ile Delete arasındaki farklardan bahsetmeden önce DML ve DDL cümlelerinden bahsedilmesi daha doğru geliyor bana,


DML açılımından da anlaşılacağı gibi, Data Manipulation Language , veriler üzerindeki yapılan manipülasyon scriptleri kapsamaktadır. (SQL Veri İşleme Dili)
Bu işlemlerin kalıcı olması için COMMIT komutu kullanılmaktadır. Geri almak için ise ROLLBACK yapılır.

Bunlar nelerdir?

insert , update , delete

-Data Definition Language(DDL) - Verilerin saklandığı yapıların (tabloların) tanımlandığı ve düzenlendiği komutları içerir.

DDL Komutlar: ( alıntı = http://www.mustafabodur.com/?tag=/sql)

* Create - Yeni bir Veritabanı(Database), Tablo(Table), İndeks(Index), Veri Tipi(Type), View(View), Stored Procedure-Saklı Yordam(Procedure), Fonksiyon(Function), Trigger-Tetikleyici(Trigger) vb. gibi oluşturabileceğimiz komuttur.
* Alter - Daha önce oluşturulmuş bir veritabanı nesnesinin(database objects) üzerinde değişiklik yapmamızı sağlayacak komuttur.
* Drop - Daha önce oluşturulmuş veritabanı nesnesini kaldırmak için kullanılan komuttur.




TRUNCATE vs. DELETE
Truncate ile Delete (Where koşulu olmayan) arasında benzerlik olmasına rağmen yapısal farklılıklar bulunmaktadır.

Trucate delete göre çok hızlı çalışır. Nedeni olarakta geri alma bilgisi üretilmediği içindir. (TRUNCATE -> DDL, DELETE -> DML)

Truncate işlemleri sırasında trucate edilen tablodaki trigerlar çalışmaz, fakat delete işlemi için yazılmış triggerlar var ise çalışır , delete işlemi esnasında.

Konuyla ilgili faydalı bir kayna http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands

4 Mayıs 2010 Salı

IPTV and Multicasting

1.Giriş

Internet Protokol Television, veya IPTV ile kast edilen IP ağı üzerinden , televizyon yayının yapılması.
IPTV teknolojisi kullanılarak kablolar ile, uydu vasıtasıyla yada radio frekansları kullanılarak kolayca videolar/DVDs, dijital videolar web içerikleri dağıtımı gerçekleştirilebilmekte. Tüm bu ve benzeri multimedia içerikleri standart, yüksek çözünürlüklü ya da bilgisayarlarda gösterilebilen veriler olabilmektedir.
Çeşitleri;
Farkında yada değil bir çok insan günlük hayatında IPTV kullanmakta zaten. Bunları gruplandırmaya çalışırsak.
1-)Internet IPTV: dünyanın herhangi bir yerinde interntet ile ulaştırabilmekte. Verilebilecek en güzel örneklerlerden biri Youtube. Bantgenişliğini optimize kullanmak için veya içeriğin tamamının iletilebilmesi için herhangi bir çaba sarf edilmemekte. Videolar kolayca , herhangi bir tarayıcıda izlenebilmekte fakat düşük kalitede ve iletim gecikmesi ile beraber.
2-)Telco IPTV: Telefon/Internet sağlayıcısı tarafından iletim gerşekleştirilmekte, başka bir deyişle telekominikasyon sağlayıcı tarafından. Televizyon seyretmek için internet kullanılıyor ise , internet sağlayıcımız telefon hattımız ile iletimi sağlamakta. Servis kalitesini desteklemekte, içeriğin tamamının geldiğinden emin olunuyor. Bunu da servis sağlayıcımız öncesin de yayınlanacak içeriğin bir server da tutarak yapmakta.
3-)Broadcast IPTV:Televizyon yayınları ücretsiz olarak, halka internet üzerinden iletilmekte. Bir çok televizyon kanalının internet sitesinde görebilmekteyiz bu örneği. Maalesefki bantgenişliği veya servis kalitesi için herhangi bir kontrol bulunmamakta.
4-)Local IPTV: Diğer bilinen adıyla Building IPTV; bina içinde kampüste veya herhangi bir yerel alan ağı (Local Area Network (LAN)) için dizayn edilmiştir. İnternet bantgenişliği için herhangi bir sorun teşkil etmemekte.
Bir çok organizasyon tarafından benimsenmesinin başlıca sebepleri;
• Televizyon ve video içeriği kolayca bilgisayarlara bir ağ ile taşınabilmekte, sayısı fazla olan personel kolayca haberlere ve şirket bilgilerine erişebilmekte.
• Aynı alt yapı kullanılarak, kaç kanalın yayınlanacağı yada hangi aygıtların ağa bağlanıp görüntüyü sağlayacağı gibi kaygılar yok.
• IPTV teknoloji ile tek kablo altyapısı kullanılarak maliyetlerin düşeceğine inanılması.
IPTV kullanımın bir çok organizasyon için yarar sağlamakta. Bunlardan bazıları;
• İnşaat (Construction): Yapım aşamasındaki binalar için IPTV çözümü ile AV ile coaxial ağ (network) entegrasyonu yayın içeriği (broadcast media) IP ağı içinde sağlanmış olacak. Esneklik ve ölçeklenebilirlik artarken müşteriler için bina maliyeti düşecektir.
• İş dünyası (Corporate): IPTV iş dünyası için bir çok kolaylık sağlamakta, şirketlere ait önemli kararlar alınırken real time iletişim sağlanarak, yada eğitim içeriklerinin dağıtımı gibi.
• Eğitim (Education): Litimitsiz şekilde eğitim metaryallerine ulaşım imkanı sağlamakta.
• Finans (Finance): Anlık olaylara,uluslar arası veya ulusa özel kanallar tarafından dağıtılan içerikler ile finansal arena da ki olayların takibi efektif olarak yapılabilmekte.
• Sağlık Sektörü (Healthcare): Hastalar hem televizyon hem radio hemde videolara yataklarında erişebilir.
Asya kıtasında IPTV kullanımında lider. Hong Kong 500.000 den fazla sayıda abonesi ile dünya çapında başı çekmekte, Taiwan, Japan ve China dengeli bir şekilde global alanda IPTV ekipmanları için baskın olmaktadır. Bir kaç faktor Asia daki IPTV kullanımı verimli kılmakta. Bir tanesi; Asia daki bir çok ülkedeki bantgenişliğinin yeterince hızlı olmasından kaynaklanmakta. IPTV ‘nin ihtiyacı olan altyapının büyük bir kısmı zaten bu ülkelerde var olmasından kaynaklanmaktadır. 2000 yılında Asia filmleri ve programları online olarak izlenebilmekteydi. Sonuç olarak IPTV ‘nin faydalı, benzer zayıflıkları olan pay-TV alternatifine kıyasla.

Şekil 1: Dijital TV Ödemelerin Asya Ülkelerinde ki Dağılımı
2. IPTV Çalışma Mekanizması
Günümüzde bir çok evde kullanılan televizyon yayınları , sürekli olarak her müşteriye aynı içerik gönderilmekte. IPTV de ise durum biraz farklı çalışıyor. İnternetten nasıl istediğimiz içeriği görüntüleyebiliyorsak, televizyon yayınlarıda aynı şekilde bize ulaşacak. İstediğimiz içerik için servis sağlayıcısı bilgilendirilerek.
Genel methot olarak , kapalı bir dağıtım uygulanacak servis sağlayıcısı tarafından ve içerik toplayıcısından. Internet protokolleri kullanılacak fakat televizyon içeriği tam olarak internet üzerinden yayın yapmayacak. IPTV daha fazla bant genişliğine , müşterilerine vaad ettiği ve özel aygıtların karşılayacağı şekilde , ihtiyaç duymakta. Özel aygıtlardan kasıt, tipik olarak set üstü kutular (set top boxes) IPTV içeriğini TV sinyallerine dönüştürmek , sıradan TV görüntüsü elde edebilmek için kullanılmakta. Kapalı ağ sisteminin kullanılmasının sebebi ise geleneksel radio-televizyon yayını (broadcast) servis sağlayıcıların kalitesini ve güvenilirliğini gibi özellikleri sağlayabilmesi, kalite ve güvenilirlik (içeriğin iletilip iletilememesi) açık internette gerçekleştirilememekte.

Şekil 2.1: Geleneksel radio-televizyon yayınına karşı IPTV servisi
Farklı şekilde evlere dağıtımın yapılması yeni ortaya çıkan bir method. Kablo üreticileri şimdi ki kablo altyapısını IPTV yapısına uygun olacak şekilde yapılandırmaktalar, geleneksel bakırkablo (wireline) telefon şirketleri yeni yatırımlar yapmaktalar; fiber ortamda bu servisi sağlayabilmek için. 1990 larda uydudan televiyon yayını , izle – öde dijital yayın yapan kablolu iletişim şirketleri tek yön(one-way) analog sistemden çift yön (two way) dijital sisteme geçiş yaptılar. Bir çok isteğe bağlı video yayını yapan servislerin kulladığı set üstü kutular(set top box) DVR kabiliyetide eklendi.
Telefon şirkeketlerinin büyük engelleri var , şu anki kullanılan bakır teller , IPTV nin ihtiyacı olan bantgenişliğini sağlayacak şekilde yenilenememekte. Konuyla ilgli olarak iki büyük proje var US de AT&T’s Project Lightspeed ve Verizon’s FiOS Internet ve TV servisi. Verizon FiOS servisini ; büyük bir altyapıyı evlere kadar taşımayı hedefliyor. Fiber-To-The-Premises (FTTP), optik kablolar ile tüm müşteri binalarına fiber optik kablo ile iletim sağlanacak. AT&T’s Project Ligthspeed ile Verizon ‘s fiberin komşulara kadar taşınıp sonrasında içeriğin ADSL ile birbirinden ayrı evlere dağıtılması konusunda karşıt olmaktalar.

Şekil 2.2 : Basitleştirilmiş şekilde, AT&T’nin Lightspeed projesinin gösterimi
2.1 IPTV’nin hayata geçirilmesi sırasında yaşanacak zorluklar
Başarılı bir şekilde IPTV nin kullanımın yaygınlaşması için bir çok teknik altyapının değiştirilmesi/sağlanması gerekmekte. En önemlisi video sinyallerinin kaliteli olması. İleri düzeyde sıkıştıma ve sıkıştırılan verinin açılması tekniği, bantgenişliği tam olarak uygunluk sağlayacak veri akışlarının (datastreams) oluşturulması ihtiyacını doğurmaktadır, bu da yayın (broadcast) kalitesini düşürmektedir. Burdanda teknik açıdan büyük değişikliklere gidilmesi gerektiği ortaya çıkmakta. Yüksek kalitede video iletimi kablolu tv şirketleri veya direk uydu yayını yapan kuruluşlar tarafından MPEG2 sıkışrıtma tekniğini kullanmakta. Bu tip kodekler 2 ila 3 Mbps bantgenişliğine ihtiyaç duyarlar , standart netlikteli TV yayınları için, yüsek netliktekiyayınlar ise 12 ila 19 Mbps arası çözünürlüğe ihtiyaç duymaktalar. Şuanki dağıtılmış ortamda yüksek bant genişliğinin sağlanması zor. Bunun yerine the ITU ve MPEG standartları birleşerek yeni bir standart ortaya çıkmıştır. MPEG-4 10, bilinen adıyla H.264/AVC, %50 daha az ölçekli bit oranında yüksek kaliteli video içeriği sağlamıştır MPEG2 ye göre. Bantgenişliğini daha pratik ve ekonomik kullanmış oluyoruz bu sayede.
İkinci bir standartta yaygın bir şekilde kullanılmakta olan IPTV iletişiminde, Windows Media Video 9. Video kodek teknojisidir ve Microsoft tarafından geliştirilmiştir. H.264 ile kıyaslanabilecek ölçüde bant genişliği ve video kalitesi sunmaktadır. Bu anlamda markette tek bir lider olmadığını söyleyebiliriz.
Üreticiler yüksek çözünürlüklü televizyonlar (HDTV) için, HD set üstü kutular (set top box), HD DVD playerlar ve diğer HD ekipmanları uygun maliyetlere üretim ihtiyacı duymaktalar. Sadece şuanki video ve audi sıkıştırılma standartları için değil gelecek nesil teknolojilere ayak uydurabilmek için. Bir de geliştirilen bu standartlar gittikçe karmaşıklaşmakta, sinyalleri işleme sırasındaki büyük boyutlardaki veriyi yükleme gibi performansı zorlayacak durumlar , özelliklede ortamın çoklu şifre çözücü (decoder) ihtiyacı olup, çoklu veri akışı ile ilgilenmesi gibi durumlar nedeniyle.
3. Güvenilir Bir IPTV Ağı Dizaynı
Gerçek zamanlı (Real Time) çoklu ortam (multimedia) dağıtımı IP desteği ile gerçekleştirildiğinde içeriğin ve servis sağlayıların moment kazanmalarına yardımcı olmaktadır. Gerçek zamanlı dağıtımlar da zorluk, radio-tv yayını (broadcast) alan kullanıcıların tecrübelerinden yola çıkarak, en fazla bir kaç saniyelik gecikmelere müsade edilebilmesi. Kayıp kurtarma (loss-recorvery) mekanizmaları kısıtlı kapasite ile ancak kayıp paket problemini iyileştirebilmekte. Paket kayıpları ile oluşan problemin giderilmesi için, yüksek katmanda ki (higher-layer) methodların kombinasyonları kullanılabilmekte. Örneğin oynatıcı (player), kayıp saklama (loss-concealment) algoritmaları, tekrar transfer işlemi ve paket seviyesinde artıklılık (packet-level redundancy) mekanizması gibi. Biz bu kombinasyonları kullanarak , yüksek katmanda (higher-layer), kayıp kurtarma (loss-recorvery) mekanizmaları ve prokolleri ile hızlıca yeniden saklama (restored) işlemini gerçekleştirmiş oluyoruz. IP-transport network hataları ile karşılaşıldığında ise, son kullanıcıya ihtiyacı olan servis kalitesi tarafından (quality of service (QoS)) sağlanmaktadır.
Bir çok IPTV standartlarının sağlanması ve gerekli servis kalitesinin (QoS) tasarlanabilmesi için, çokluyayın (multicast) kullanılmakta. Bu sayede etkili , uygun maliyetli ağ ve bağlantı katmanında (link layer) hızlı yeniden yönlendirme (fast reroute (FRR)) sağlanmakta. Fiziksel katmanda (physical layer) oluşan hatalar sadece tek bir bağlantıyı etkilemekte, bu problem de FRR kullanılarak yaklaşık 50 milisaniye içerisinde düzeltilebilmekte. Trafik çakışmasını öneleyebilmek için Interior Gateway Protocol (IGP) kullanılmakta.
Çoklu hata (multiple failure) ile oluşan aksama zamanının hedef ağın aygıtlarına ulaşım süresini aşmadan çözüme bulunması için metodları tanımlamak gerekirse; FRR, IGP ve çokluyayın protokolü uyum içinde kullanıldığı takdirde ve uygun bant genişliği ile çoklu hata ile oluşan yol (path) çakışması gibi sorunlar minimize edilmiş oluyor. Tüm bunlar güvenilir bir IPTV ağı içinde istenilen kısıtlamalardır.
3.1 IPTV Örnek Ağ Mimarisi

Şekil 3.1 : Örnek IPTV Ağ Mimarisi

Sadeleştirilmiş bir halde her düğüm için IPTV servisinin iletimi için gerekli network topolojisinin örneği şekil 3.1 ile örneklendirilmiştir. Bu örnek spesifik bir IPTV mimarisidir , farklı varyasyonları bulunmaktadır.
• SHO : Süper merkez ofisi (Super hub office) ulusal video yayınlarını , uydu veya kablo aracılığı ile toplamakta ve büyük saklama lokasyonlarına (VHO) dağıtılmasını sağlamaktadır.
• VHO: Video Merkez Ofisi (Video hub office) SHO dan gelen içerik ile lokal bölgelerden gelen ve diğer servislerden gelen içeriği birleştirmekte ve içeriğin yönlendiriciler (router) ; metro IPTV anahattındaki ; vasıtası ile VSOs dağıtımını sağlamaktadır.
• Router(Yönlendirici): SHO ve VHO IPTV içeriklerinin transfer edilmesinden sorumludur. Uzak mesafelerdeki IP anahattına bu içeriği göndermekte.
• VSO: Yönlendiriciler , eternet vasıtası ile içeriğin DSLAMs yerleşmesini sağlamaktadır.
• DSLAM: Dijital abone hattı çoklayıcısı (Digital subscriber line access multiplexers) , video iletime hazır aygıt (Video Ready Access Device) olarakta bilinmekte, çevresel olarak yaşam alanalarına yakın bölgelerde bulunmaktadır. Yüz ila 200 arasında konut giriş yeri (residantal gateways (RGs)) hizmeti vermektedir , Konutların yakından konumlandırılarak. DSLAM ile RG arasında sinyal iletimi için çeşitli teknikler bulunmaktadır. Bunlardan en tipik olanları DSL (VDSL ) , BPON ve GPON.
• RG: Konut giriş yeri (Residential Gateway), video içeriğini set üstü kutulara (set-top box ) iletmektedir,
• Voice servisi; voice over IP dönüşümü ve IP gibi VHO‘a iletilmesi sağlanmaktadır. VoIP gateway veya VDSL ile analog formlardan digital formlara dönüşüm sağlanmaktadır.
Bir sonraki durum ise ses(voice) sinyalleri çoğullama çözme (demultiplexed) işlemi DSLAM üzerinde sağlanmaktdır ve uzak (remote) terminallere (TDM ve SONET teknolojileri kullanılan) bağlanılmakta.
SHO ve her bir VHO arasında iki yönlendirici bulunmakta ve yönlendiriciler tarafında oluşan hataların ; donanımsal veya yazılım güncellenmesi gibi; ortaya çıkmasında yedekli çalışmaya olanak vermektedir. Uzak mesafeli IPTV ana hatlarındaki bağlantılar 2.5 veya 10 Gbps Ethernet veya SONET (Syncronous Optical Network) kullanılmakta. Çünkü verimli ağaç benzeri (tree-like) topolojiler kullanılıyor ve IP çokluyayın ekonomik avantajlar sağlıyor IPTV iletiminde. SHO ile VHO arasında sınırlı bağlantı var bu anlamda, çünkü genel yayın (broadcast) tree yapısı kullanılıyor.Şekil 3.1 deki kesikli çizgiler ile gösterilen bağlantılar çokluyayın ağacının bir parçası değil , ekstra bağlantılar ile ağ hatası oluştuğu durumlarda çokluyayın ağacı olacak şekilde tekrar düzenlenmeli.

Şekil 3.2 : IPTV ağı Broadcast video akışı . Kesikli çizgiler ile gösterilenler basitleştirilerek gösterilmiş alternative video içeriğinin yolculuğu.
Şekil 3.2 de gösterilen kesikli çizgiler ile SHO’dan başlayarak son kullanıcıdaki STB ye kadar uzanan yolculuğu tasvir etmekte. SHO ve VHO içerisinde çeşitli aygılar görülmekte, içeriği depolama cihazı (A-servers ) ve içerik dağıtım cihazı (D-servers). Live-feed video ve diğer çoklu ortam (multimedia) akışları D-server içinde arabellekte saklanmakta, diğer uygulamalara iletilmek üzere. Bir D-serverının ortalama I/O kapasitesi bir kaç yüz mbps . A-server ise VHO daki toplanan lokal TV istasyonları ve iletişim programlarından gelen içeriğin yanısıra ulusal içeriğin SHO toplanması için kullanılmakta.
VoD Şekil 3.2 de bahsedilmiştir. Tipik olarak VoD server , SHO da yada diğer merkezi bir noktada konumlandırılmış, lokal olarak konumlandırılmış olan VHO içinde olan VoD serverına dağıtım yapmaktadır. STB’lere IP bağlantı odaklı tekliyayın (connection oriented unicast) olarak iletim yapmakta, çünkü birbirinden bağımsız kullanıcılara dağıtım gerektiği için.
Bahsedilenlerin dışında IPTV transferinde, kullanılan diğer protokollerden bahsedilirse; video içeriğinin bazı video sıkıştırma algoritmaları kullanılarak yapılmakta , MPEG veya H.264 gibi. Oluşturulan video frame leri paketlenerek tipik olarak Real Time Transport Protocol(RTP) üzerine, UDP onunda üzerinde IP protokolleri kullanılarak transfer edilmekte. IPTV mimarisi , Tv içeriğini çokluyayınlamak (multicast edebilmek için) Protocol Independent Multicast , Source Specific Multicast (PIMSSM) protokollerini kullanır. Her bir ulusal kanaldan gelen yayın SHO da toplanıyor, ve tanımlanmış çokluyayın gruplara atanıyor. Yüzlerce standart çözünürlük (standart-definition (SD; 1.5 to 3 mbps)) ve yüksek çözünürlük (high definition (HD; 6 to 10 mbps)) kanal , diğer multimedya sinyaller var. Bu nedenle toplamda gbps’ler mertebesinde bant genişliği söz konusudur.
Bu toplam HD kanalların sayısına bağlı olarak önemli bir artış göstermektedir. Genelyayın (Broadcast) sinyalleri VSO giriş yaparken, IPTV mimarisi Internet Group Management Protokol(IGMP) kullanır, PIM-SSM yerine STB’lerin, data-link katmanında çokluyayın gruplarına katılması için. Çünkü VSO yönlendirme düğmeleri (switchs) taşıyıcı sınıfı yönlendiricilerin (carrier-grade router) tüm özelliklerini taşımamakta. IGMP snooping tekniği kullanarak; STB ile yerleşim birimlerinde bulunan ara yönlendiricilerin (intermediate routers) filtrelediği IGMP messajlarını ve bölgesel olarak tekrarlanmış kanalların; kullanıcıların isteği olan mesajlardan; faydalanılarak , birçok hub-spoke mimarisi içerisindeki switchler ile metroda bulunan yönlendiriciler arasındaki çok büyük miktardaki kontrol mesajlarının yönetilebilmesi içinde IGMP kullanılmaktadır.
4. Çokluyayın Yönlendirme
Bir den fazla kullanıcı aynı içerikli veriye, (yaklaşık olarak) aynı zamanda ihtiyaç duyduğu zaman, çokluyayın daha efektif bir yöntem tekliyayına nazaran. Bir tekliyayın paket tekbir kaynak IP adres ve tekbir hedef IP adrese sahip iken, bir çokluyayın paket tekbir kaynak IP adres , fakat birden fazla hedef adres vardır, ve bu gruba veri iletimini gerçekleştirir. Avantaj olan birden çok evsahibi (host) aynı çokluyayın akışını (stream) kabul eder, tekliyayında ise herbiri için farklı akış vardır, bu nedenle bantgenişli çokluyayın yöntemi ile daha verimli kullanılmış olur.

Şekil 4.1 Çokluyayın ile tekliyayının farkı
Tekliyayın ve genelyayın çokluyayına nazaran çok daha kolay yapılandırılabiliniyor. Çünkü çokluyayın da çokluyayın grubundakiler tanımlanması ,trafik onların spesifik lokasyonlara gönderilmesi gerekiyor. Ağ çokluyayın grubunda bulunmayanlara trafiği yönlendirmemesi gerekiyor , bantgenişliğini efektif kullanabilmesi için.
Çokluyayın trafik internette kullanımı hızla artmakta. Bir çok uygulamanın iletimi için paketlenerek çok sayıdaki kullanıcıya iletiliyor. Paketler (exponential) üstsel bir artışla kopyalanarak iletiliyor, bu durumdaki bant genişliği yönlendiriciler ek yük göz korkutucu olmakta.
Çokluyayın paketlerinin geniş ağ üzerinde iletimi kompleks bir süreç (procees) var. Bu sürecin bir kaç tane bileşeni (component) var. İlk adım alıcıların tanımlamalarının yapılması. Çokluyayın akışına alıcı olmak isteyen evsahipleri kendilerini tanıtmak zorundalar öne ağ içinde. Buna kayıt olma süreci “registration process” diyoruz, tek Ip adres kümesinden birisi set ediliyor (D sınıfı adres) çokluyayın iletişim için rezerve edilmiş olan bir kümedir. Merkezi bir çokluyayın veri iletimi içinde belirli bir gruptaki alıcı kaydı (receive register) için yapılmaktadır.
Öncelikle alıcılar belirli bir gruba (tek bir alıcı birden fazla grubada katılabilir) katılabilmesi için, ağ çokluyayın trafik için doğru son durak (end stations) atanması gerekiyor. İnternet üzerindeki , bir yönlendirme (routing) protokolü ile, kayıt olmuş alcılar (registered receiver) uygun yönlendirme yollarını belirlenmesi gerekmekte. Ayrıca, veri kaynağı bazı noktalarda kopyalanması gerekmekte. Bu sayede bilgi çoklu lokasyonlara simultene olarak iletilebilmekte. İletim süreci çokluyayın yönlendirme (delivery process muticast routing ) protokolleri sayesinde gerçekleştirilmekte. Bir çok çokluyayın yönlendirme protokolü (multicast routing) bulunmaktadır ve bir çoğunun kendine özgü zayıf ve güçlü yönleri bulunmaktadır.
Bir çok çokluyayın veri transferi çift yönlüdür (uni-diractional). Bunun yanısıra tek yönlü (bi-diractional) çokluyayın trafik için IETF(Internet Engineering Task Force) ,yeni çalışmaları bulunmaktadır.
Çokluyayın iletimi TCP üstkatman ( upper-layer) protokol gibi değildir. Kaynak tarafından kaç tane akışsonu iş istasyonu (downstream workstation) tarafından kabul edilecek veri bilinemediğinden , bunu TCP ile gerçekleştirmek imkansız. En iyi eforu UDP ile sağlanıyor çokluyayın trafik için.
4.1 Çokluyayın Notasyonu
Çokluyayın grup genellikle “G” ile , kaynak (source) “S” ile sembolize edilir. Kombinasyonları (S,G) ile spesifikleştirmek için (S1,G1) şeklinde. Birden fazla kaynak var ise (* , G) şeklinde gösterilmektedir.
4.2 Evsahipleri (Hosts) Çokluyayın Grubuna Nasıl Üye Olur?
Internet Group Management Protocol (IGMP), evsahiplerinin dinamik olarak çokluyayın grubuna dahil olmasını sağlamaktadır. IGMP Internet protokolünün bir parçasıdır ve üç versiyonu bulunmaktadır. Evsahiplerinin bu protokole ihtiyaç duyduklarında kaynaklar hangi spesifik çokluyayın grubuna katılabileceğini söyleyebilmektedir.
4.3 Çokluyayın Yönlendirmeler
Çokluyayın yönlendirici yönlendirme işlemini yapabilmesi için çokluyayın yönlendirme protokollerinin uygulanması gerekmektedir. Bir çok yönlendirici protokol seçeneği bulunmaktadır.
• DVMRP – Distance Vector Multicast Routing Protokol
• MOSPF – Multicast Open Shortest Path First
• PIM V2 – Protokol Independent Multicast
En yaygın olarak kullanılanı PIM V2 protokolüdür. Çokluyayın yönlendirilmesi , tekliyayın yönlendirilmesinin tam zıttı şekilde çalışmaktadır. Tekliyayın yönlendirilmesi protokolü, yönlendirici hedefe karar verirken temel olarak hedef IP adres üzerinde durur. Çokluyayın yönlendiricisi ise temel olarak kaynak IP adres üzerinde durulmaktadır.
Internet Assigned Numer Authority (IANA) IP adreslerinin body kısımlarını kontrol ediyor. Çokluyayın uygulamalar için IANA tarafından “Class D” adres aralığndaki Ip’ ler atanmaktadır. Bu aralık 224.0.0.0 ile 239.255.255.255 arasındadır. Class D aynı zamanda kendi içinde alt gruplara ayrılmıştır.
224.0.0.0 – 224.0.0.255 Yönlendirme (routing) protokolleri için ayrılmıştır.
224.0.1.0 – 224.0.1.255 İnternet kontrol blok (Internet control block)
224.0.2.0 – 238.255.255.255 Global kavram adresleri (Globaly scope address)
239.0.0.0 – 239.255.255.255 Kısıtlı kavram adresleri (Limited scope address)
Global kavram adresleri (Globaly scoped) genel çokluyayın uygulamalar içindir. Bu adres aralığının yüz, iki yüz tanesi kadarı spesifik organizasyonlar için ayrılmıştır. Büyük bir kısmı ise yeni kullanıcı uygulamaları için kullanılabilmek için hazırdır.
Kısıtlı kavram adresleri (Limited Scope) ise belirli uygulamalar için dizayn edilmiştir. Özerk sistemler içinde dış dünyaya yönledirilmede kullanılmayan sistemlerdir.
Çokluyayın yönlendirme dağıtım (multicast routing distribution) ağaçları kullanmaktadır.PIM ile kaynak dağıtım ağacı (source distribution tree) (Dense Mode, push model) veya paylaşımlı dağıtım (shared distribution) ağaçları (Sparse Mode, pull model) kullanılabilmekte.
Çokluyayın LAN iletimi çokluyayın alıcının aynı ağdaymış gibi yapılmakta. Bu nedenle çokluyayın iletimi, belirli bir grup Ethernet MAC adresini bu amaç ile kullanmaktadır. Bu aralık 0100.5e00.0000-0100.537f.ffff aralığındaki MAC adresleri Class D IP adresleri eşleşmekte.
Fakat, MAC adreslerinin tümü, mümkün olan tüm Class D adresleri ile eşleşmemekte. Her bir MAC adresi 32 eş zamanlı Class D adresi. IP protokolü alıcı yığının içinde olası çakışma problemini çözmesi gerekmektedir.
4.4 Çokluyayın Çerçeveleri 2. Katmanda Anahtarlama
(Switching Multicast Frames at Layer 2)
IGMP snooping switcher tarafından yapılabilmekte, IGMP paketleri yönlendirebilmek için hangi evsahibi hangi gruba katılmış , izlenebilmesi gerekiyor, bunun yoluda IGMP paketlerinin içine bakmak ile gerçekleşmektedi(IGMP Snooping). Unutulmaması gereken bir noktada IGMP evsahipleri ile yönlendiriciler arasındadır.

Şekil 4.4 IGMP Snooping
4.5 Çokluyayın Kayıt Olma Süreci (Multicast Registration Process)
Multicast iletişim için ilk adım alıcıların tanımlanmasıdır. Bu işlem Internet Goup Managment Protocal (IGMP) tarafından evsahibi ile lokal yönlendirici arasında gerçekleştirilmektedir.
Tarihsel olarak, IGMP IP protokolünden türetilmiştir. IGMP ilk olarak 1986 yılında ortaya çıkmıştır, RFC 988. Bir kaç kez revize edilmişti bu zamana kadar. Son sürümü versiyon 3 2002 yılında RFC 3376 ile ortaya çıkmıştır.
IGMP kullanıcıların istedikleri çokluyayın grubuna katılma eğilimlerini anons etmelerine izin vermektedir. Bu gruplar Class D Ip adresi ile tanımlanmıştır. Bir iş istasyonu (workstation) belirli bir çokluyayın gruba katılmak istediğinde IGMP “join” mesajını lokal yönlendiriciye göndermekteler. Eğer çoklu yönlendirici tekbir segment bulunduruyorsa, karşılık olarak karar verilmiş olan “designated router” (DR) tüm IGMP mesajlarını bu segment için yönetiyor olacak.
Bir yönlendirici bir veya daha fazla “joins” spesifik bir grup için almış ise, bu spesifik grup için gönderilmek istenen herhangi bir pakedi uygun bir arayüze (interface) yönlendirir. Yönlendirici sadece tek bir veri paket kopyasını her arayüze ileticek, ortak bir çokluyayın MAC ve IP adresi bilgileri kullanılıyor olacak paket iletiminde.
Yönlendiriciler düzenli olarak iş istasyonlarına çokluyayın grubuna bağlı olup olmak istemediklerini sorgulayan “queries” alır. Bu sorgular iyi bilinen (224.0.0.1) adresi üzerinden haberleşilir, tüm sistemler tarafından bilinmektedir. Eğer alıcı hala ilgileniyorsa ilgili gruba bağlı kalmakla “membership report” mesajı ile geri döner. Eğer geri dönüşler olmuyor ise, ilgili grubu onun yönlendirme (forwarding) tablosundan siler.
Versiyon 2 ile sorgu zamanları (query timer) için beklenen zaman aralığı sona ermesini beklemeden gruptan çıkmak istiyorsa “leave” mesajı ile ayrılabilmesi sağlanmıştır.
Çokluyayın protokoller temel olarak, tek bir kaynaktan birden fazla hedefe veri aktarımı için dizayn edilmiştir. Bazı durumlarda ise birden fazla kaynaktan bir den fazla hedefe veri aktarımı söz konusu olabilir. Buna örnek olarak video konferanslar verilebilir böyle durumlar için. Fakat, özel (ad hoc) kaynaklar tarafından gönderilen istenmeyen paketler tersine alıcılara ulaşılır. Bu aynı zamanda güvenlik (security) problemlerinide ortaya çıkarmaktadır.
IGMPv3 ile kaynaklar spesifikleştirilebiliniyor, bu sayede receiver kaynaktan gelenleri dinleyebiliyorlar. Kaynaklar “include” filtreleri “join” ve “report” mesajlarını şart koymaktadır, veya “exclude” filtreleri ile kaynak red edilebilir. Bir uçtan bir uca bu filtreler sayesinde güvenlik ve performans açısından çok iyi etkileri görülmüştür multicast iletişim için. Bu filtreler için yeni boyuttaki tablolar uygun yönlendiricilere eklenir, bu sayede kabul edilebilir kaynakları takib edebilir hale gelicekler.
Çoğu yönlendirici tarafından şuanda IGMP versiyon 2 kullanılmakta. Bir çok bayi çoktan IGMP versiyon 3 desteklemekte ve hızla popularitesi artmaktadır.
4.6 Ipv6 Çokluyayın Desteği
Ipv6 çokluyayını desteklemektedir. İlk üç bit Ipv6 adreslerini (128-bit adres) format prefix (FP) tanımlanmaktadır. Eğer format prefix binary olarak 111 olarak set edilmiş ise multicast adresi temsil ettiği anlamına gelmektedir(Benzer şekilde Ipv4 class D adres gibi).
IGMP yerine Ipv6 da kendi kayıt (registration) protokolü bulunmaktadır, Multicast Listener Discovery(MLD). MLD’nin ilk versiyonu (contained RFC 2710) IGMP versiyon 2 ye benzemektedir. “join” ve “leave” mesajları içermektedir. MLD versiyon 2 için önerilen “include” ve “exclude” fonksiyonlarıdır.
4.7 Çokluyayın Yönledirme
Kayıt sürecini (registration process) daha önce tanımlamıştık, alıcıların çokluyayın gruplara katılımını sağlamaktadır. Lokal yönlendiriciler bu süreci kullanarak çokluyayın veri iletiminin nasıl iletileceğini hesaplamaktadır. Yönlendiriciler bu rolü üstelenmiş ise eğer, son hop yönlendiricisi (Last Hop Router (LHR)) adı verilir ve bu yönlendiriciler alıcılar ile iletişim yolunun sonunda bulunmaktadır. İlk hop yönlendiriciler (First Hop Router (FHR)) çokluyayın trafiğinin kaynağına en yakın yönlendiricidir. Akıllı bir kontrol planı mekanizması verinin efektif bir şekilde ilk hop yönlendiriciden (first hop router) son hop yönlendiriciye (last hop router) iletilmesini sağlamaktadır. Kısaca, yönlendirme protokolüne ihtiyaç duyulmaktadır.
4.8 Çoklu Yayın Yönlendirme Protokolü
Bir çok farklı çokluyayın yönlendirme protokolü vardır, ve her biri kendi özgü teknolojik çözüm içermektedir. Distance Vector Multicast Routing Protocol (DVMRP) ilk çıkan multicast routing protokolüdür. DVMRP temel çalışma prensibi, ağaçlardaki aralıklarla olan multicast grupları arasında atlama yapmaktadır, temel çalışma prensibi newer multicast protokolünü kullanarak gerçekleşmektedir. DVMRP kısıtlı şekilde esneklik, fonksiyonellik, scalability (ölçeklenebilirlik) sağlamaktadır. Bu nedenle yeni protokollerle beraber yürürlükten kalkmıştır.
Yeni oluşturulan multicast routing ler OSPF(Open Shortest Path First) prokolünün uzantısı olan MOSPF (Multicast Open Shortest Path)dür. MOSPF protokolü, özelleştirilmiş uygulamalarda kullanılmakta fakat yaygın değildir.
4.8.1 Protokol Bağımsız Çokluyayın (Protocol Independent Multicast(PIM))
1990 ların sonunda PIM geliştirilmiştir. İsminden de anlaşılacağı gibi, hiç bir spesifik protokole bağlılığı yoktur. Nasıl oluşturulmuş olursa olsun var olan yönlendirme tablolarından faydalanarak, çokluyayın verinin yönlendirilmesi için kullanmaktadır.
PIM versiyonlarından biri, Dense Mode. PIM-DM çalışma mantığı, “push” çokluyayın veri kullanıcılara doğru. Eğer çokluyayın trafiğinin sonunda herhangi bir gönderilen akışa ihtiyacı olan kullanıcı bulunumaz ise, aldıkları gereksiz akıştan dolayı “stop” mesajı gönderirler akışbaşlangıç yönlendiricisine (upstream router). Bu mesaja “prune” mesajı da denir, akışbaşlangıç yönlendiricileri yönlendirme ağacının belirlenmiş dalları (branch) eleme yapılacaktır.

Şekil 4.2 Dense mode ile Sparse Mode arasındaki fark
4.8.2 PIM-SM
PIM ile genel olarak Sparse Mode protokolü kullanılır.”pull” metodolojisi ile çalışır. Bunun anlamı veriyi göndermeden önce alıcıların belirlenmesi şarttır. Internete çokluyayın veri akışı iletilme sırasında ek yük ve bant genişliği ihtiyaçlarından kaçınır.
PIM-SM protokolü yanlızca varolan yönlendiriciler arasındadır. PIM-SM bir çok karakterislik özelliği yönlendirme protokollerine benzemektedir. Bunlardan bazıları, discovery mesajları, topoloji bilgileri, error detection ve notification(bilgilendirme).
PIM-SM routerları periyodik olarak, “Hello” mesajı üretir, discover ve var olan oturumlarının devamını sağlamak için. Bu mesajlar 224.0.0.13 adresi tarafından hizmete sunulur. Komşular keşfedilir ve katılmak istedikleri çokluyayın gruplara için akışsonu yönlendiricilere PIM-SM “join” mesajı gönderirler (IGMP veya MLD ile karıştırılmamalı). Daha sonra katılım sağlanmış ise (S1, G1) veya (*,G1) şeklinde notasyonlar ile tutulmaktadır. Akış başlangıcı yönlendiriciler çokluyayın verileri akışsonu aygıtlara yönlendirebilirler.
4.8.2.1 Buluşma Noktası (Rendezvous Point)
Her çokluyayın grubu kendine ait buluşma noktasına sahiptir. Bu buluşma noktalarının sorumluluğu, Kaynaktan tüm alıcılara olan yönlendirme bilgilerinin iletilmesi. Aynı zamanda RP buluşma noktası ağacının köküdür.


Şekil 4.3 Örnek bir buluşma noktası


4.8.2.2 En kısa yol ağacı (Shortest Path Tree)
Şekil 4.3ile gösterilen örnekte LHR biri hem RP hemde FHR bağlı böyle bir durumda hem RP den hemde FHR dan aynı verinin iki kopyasını alacaktır. Bunun engellenemesi amacı ile RP’e “prune” mesajı göndermektedir, bu sayede RPT den silinecektir. SPT tamamen opsiyoneldir ,sadece daha efektif gerçekleştirilebilmesi için.
4.8.3 Özet - PIM-SM Veri akışı
• Alıcılar DR (designated router) yönlendiricisine IGMP “join” mesajı gönderir.
• DR/LHR RP (rendezvous point) yönlendiricisine PIM-SM “join” mesajı gönderir.
• RP LHR RPT(rendezvous point tree)’ye ekler.
• Kaynak FHR(first hop router) veriyi gönderir.
• FHR tekyayın kayıt- kapsule edilmiş şekilde (unicast register-encapsulated) veriyi RP gönderir.
• RPT de bulunan tüm LHR veriyi gönderir ve FHR RPT ye ekler.
• RP PIM “join” mesajını FHR gönderir.
• FHR çokluyayın verisini RPT boyunca gönderir.
• RP register “stop” mesajı FHR gönderir.
• LHR evsahipleri ile alıcılar arasında daha kısa yol arar.
• LHR “join” mesajı gönderir FHR.
• FHR LHR’a doğru en kısa yol ağacını oluşturur.
• LHR “join” mesajı gönderir FHR.
• FHR LHR’a doğru en kısa yol ağacını oluşturur.
• LHR aynı verinin iki kopyasını biri SPT den diğeri RPT den alır.
• Bunu engellemek için LHR “prune” mesajı gönderir RP’e.


5. Sonuç
İncelenen kaynaklarında belirtiği gibi IPTV teknolojisin yaygınlaşabilmesi için, altyapı değişikliğinin şart olduğu. Bunun yanı sıra internet üzerinde Iptv verisinin iletimi için çokluyayın methodunun diğer methodlara göre en uygun olanının , çokluyayın metodunda yapılan iyileştirmeler veya ek özelliklerin Iptv teknolojisi açısından da faydalı olacağıdır.
6.Kaynaklar
1. Robert Doverspike, Guangzhi Li , Kostas N. Oikonomou , K.K. Ramakrishnan, Rakesh K. Sinha, Dongmei Wang, Chris ChaseDesigning a Reliable IPTV Network , IEEE INTERNET COMPUTING ,2009

2. Tetsuya Yamaguchi, Tomoyuki Kanekiyo, Motoyuki Horii, Katsuhiko Kawazoe, Fumio Kishino, Highly Efficient Transmission System for Digital Broadcasting Redistribution Services over IP Multicast Networks, IEEE Transactions on Consumer Electronics, Vol. 54, No. 2, MAY 2008

3. John Barrett, The IPTV Conundrum in Asia, A Parks Associates White Paper , 2006

4. MoCA® IPTV White Paper 2008 Multimedia over Coax Alliance

5. Preparing for the IPTV Future, 2006 Micronas USA

6. Multicast Routing PIM Sparse Mode and Other Protocols , November 2003 Spirent Communications White Paper

20 Ocak 2010 Çarşamba

Eclipse incompatible jvm

Elimizdeki jvm 1.5 versiyonundan yüksek olmasına rağmen, eclipse exe yi çalıştırırken böyle bir hata ile karşılaşılmış ise , environment variables, path içindeki System variables içindeki jre arasında en öne c:\Program Files\Java\jre1.6.0_01\bin (yada sizinki hangi jre ise); yerleştirilir ise, problem giderilebilir.

9 Aralık 2009 Çarşamba

Application Express (Oracle)


APEX; Oracle veritabanı bağlantısı kullanarak hızlı ve az programlama bilgisi gerektiren web uygulaması geliştirmeye yardımcı olan bir tool.

http://apex.oracle.com/i/index.html adresinden workspace'nizi oluşturup hemen uygulama geliştirmeye başlayabilirsiniz.

Daha detaylı bilgi için;

Aradan 5 sene geçmesine rağmen girdiğim içeriği detaylandırmak istedim. (Tonguç Abi'te verdiğim söze istinaden :) ) . Tabi 5 sene geçince Oracle boş durmamış APEX 'i çok zenginleştirmiş.



Bu sayfada adım adım Apex Web uygulama Tool'u ücretsiz 25 Mb workspace alanı için anlatımı var. 
Hesap oluşturmak için, resimdede görüldüğü gibi "Request Free Workspace" butonu ile devam edilebilir.


Oracle Application Express 4.2 ile benim ilk gözüme çarpan yenilik, Packaged App. Sample olarak install edilmiş uygulma dışında birsürü farklı tema da uygulamayı install ederek, üzerinde kendi ihtiyaçlarınıza uygun değişiklikler  kolaylıkla yaparak çalışabilirsiniz.


Sample uyguluma üzerin de yaptığım küçük bir değişikliği paylaşacağım : 

Aşağıdaki resim developer'ın gördüğü admin paneli,  Buradan yeni bir uygulama create edilebilir, veya mevcut uygulamalarınızda değişiklikler yapabilirsiniz.



Ben mevcut sample uygulama üzerinde bir değişiklik yapacağım: Resimde görülen uygulamalarda Edit butonu ile değişiklikler yapılabilmekte. 




Uygulama ile ilgili componentlerin tamamı sayfa bazlı listeleiyor. View seçeneği sanırım 4.2 versiyonu ile gelmiş , tree based bir yapıdada componentlerin görülmesi söz konusu.