Yazılım Mühendisliği Stüdyosu
Bu dönem dersin teması günümüzün güncel konularından Veri-Yoğun Uygulamalar (Data- Intensive Applications ) tasarlanması ve geliştirilmesi olarak belirlenmiştir.
Son yıllarındaki yazılım geliştirme uygulamaları incelendiğinde Arka katman (backend) ve sunucu –taraflı sistemlerde datanın işlenmesi ve depolanmasının klasik yaklaşımdan farklı gerçekleştiği görülebilir. Aşağıdaki anahtar sözcükler yeni çözüm yaklaşımlarını
betimlemektedir: NoSQL ,Big Data, WebScale, Sharding , ACID, CAP theorem, Cloud services, MapReduce, Real-time……….
Son 10 yılda veritabanlarındaki gelişmeler, uygulamaların temelini oluşturan dağıtık sistemler bu tür yazılım geliştirmeyi teşvik eden nedenlerdir; bu nedenler aşağıdakilerle özetlenebilir:
• Google, Amazon, Yahoo, Facebook, LinkedIn, Twitter büyük miktarda veri trafiğine sahip oldukları için yeni geliştirme araçları oluşturmada oldukça zorlanmaktadır.
• Yapılacak işin çevik (agile) olması ile birlikte gerçekleştirilecek testlerin ucuzlaması gerekliliği doğmuştur. Ayrıca piyasadaki yeniliklere hızlı ulaşmak isteği, ayrıca geliştirme zamanının olabildiğince kısa ve veri modellerinin esnek olması önemli olmuştur.
• Açık ve ücretsiz kaynak yazılımının önemi artmıştır. Hizmet içi ısmarlanan ticari yazılımlar (bespoke in house) tercih edilmeye başlamıştır.
• CPU saat hızları kısıtlı olarak artarken çok çekirdekli işlemciler standart kalmaktadır;
buna karşılık ağlar gittikçe genişlemektedir. Bu da paralelliğin artma eğiliminde olduğu anlamına gelmektedir.
• Küçük bir takım çalışmasında bile pek çok makinenin ve hatta çoklu coğrafik bölgelerin dağıtıldığı istemler olabilmektedir. Çözüm olarak Amazon Web Servisler bir IaaS (Infrastructure as a Service ) örneği olarak verilebilir.
• Çeşitli nedenle oluşan kesintiler gittikçe artmakta istenmeyen durumlar oluşturmaktadır;
oysa servislerin son derecede güvenilir olmaları önemlidir.
Günümüzün güncel konularından Veri-Yoğun Uygulamalar teknolojik gelişmelerle neler yapabileceğinin sınırlarını belirler. Verinin veri-yoğun olması için veri miktarı, karmaşıklığı ya da verinin değişim hızı önemlidir.
Veri-yoğun data, CPU dönüşümlerinin dar boğaz oluşturduğu hesaplama yoğun (compur- intensive) datadan farklı olduğu için teknoloji ve geliştirme araçları da diğerlerine göre farklılık gösterir. Yeni tip veri tabanı olan NoSQL kullanılmaktadır. Fakat mesajlaşma kuyrukları, önbellekler (caches), arama indeksleri, yığın (batch) ve akıntı (stream) işleme hala önemini korumaktadır. Bu nedenle pek çok uygulamada bunların kombinasyonu kullanır.
İncelenecek Konular
Sunucu/arka katman uygulamaları geliştirilirken verinin işlenmesi ve depolaması ve uygulamaların Internet üzerinde kullanılması (örneğin web uygulamaları, mobil uygulamalar ve İnternet’e bağlı sensörler) ile ilgili bilgi verilmektedir. Ayrıca problemin çözümüne ait geliştirme araçları ile ilgili bilgiler yer almaktadır. Ders kapsamındaki konuları içeren veri sistemlerinin sadece nasıl
çalıştıkları değil, aynı zaman niçin öyle olduklarına ilişkin sorulara da yanıtlar bulunacaktır.
Günümüzde kullanılan yazılımlar açık kaynak kodlu olmaya doğru yönelmektedir. Okunabilir, değiştirme değiştirilebilir ve çalıştırılabilir kodların pratikliği artmaktadır. Satıcı problemleri açık platformlar ile azalmaktadır.
Aşağıda incelenecek temel konular özetlenmektedir:
I.Veri Yoğun uygulamalar, sorunlar, teknikler ve teknolojiler: Big Data ile ilgili genel bilgiler
II.Veri Sistemlerinin Temelleri
Güvenilir, Ölçeklenebilir ve Sürdürülebilir Uygulamalar Veri Modelleri ve Sorgulama Dilleri
Depolama ve Geri Çağırma Kodlama ve Geliştirme
III.Dağıtık Veri (Distributed Data) Çoğaltma (Replication)
Bölümleme (Partitioning) Transactions
IV.Türetilmiş Veri (Derived Data) Yığın işleme (Batch Processing ) Stream Processing
Veri Yoğun Uygulamalar olarak Geliştirilen Günümüzün Ticari Yazılımları
DICE Şubat 2015 yılında başlamış olan Avrupa Birliği’nin “Horizon 2020” programı kapsamında gerçekleştirilen araştırmalar ve yenilikler hareketidir ve big data uygulamalarının nitelikli olarak geliştirilmesini hedefleyen bir çerçeve programıdır. Bu bağlamda yüksek nitelikli veri yoğun uygulamalar aşağıdaki nitelikleri sağlayarak geliştirilebilir:
i. Açık kaynak kodlu uygulamalar, modeller ve metotlarla big data teknolojilerinden yararlanılmakta ve nitelik odaklı geliştirmenin öğrenilmesi ile uzmanların becerilerindeki eksiklikler giderilmektedir.
ii. Nitelik gereksinimlerinin sağlandığı veri yoğun uygulamaların piyasaya arz süreleri azalabilir ve son kullanıcıların önemleri artarken bağımsız ürün satıcılarının maliyetleri azaltılabilir.
iii. İnteraktif öğrenme ile uygulamanın çalıştırılması sırasındaki davranışı, bilginin geliştiricilere geri dönüşü gibi nitelik ile ilgili çeşitli sorunlar azaltılabilir.
Aşağıdaki konular bu çerçeve programında çok uluslu olarak devam etmekte olan proje alanlarını tanımlamaktadır.
Tarım
• Veri Depolama (Data warehousing): Çiftlikteki üretimin maliyeti ve optimizasyonu, mahsul maliyeti, tarımsal ürünlerin fiyatları /ticari analiz.
• Mimari (MangoDB, Hadoop1 vd./ Internet of Things): Toprağın sürümü sürecinin modellenmesi. Bu amaçla gübrelemenin, hasat hazırlığının, toprağın nemliliğinin (meteoroloji veriler ve alandaki sersörlerden) analizi ve optimizasyonu.
Otomotiv İmalatı
• Veri Depolama (Data warehousing) Nitelikli imalat için maliyetin belirlenmesi, tedarik zinciri analizi, garanti analizi, satışlar ve pazarlama analizi, insan maliyeti yönetimi.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Müşteri memnuniyetinin analizi ve parça arızasını da içeren bağlantılı araçların analizi, servis gereksinimi ve servis planlama, sürüş sürelerinin kaydı ve izlenmesi, sürücünün acil durum tespiti ve cevabı.
Bankacılık
• Veri Depolama (Data warehousing): Finansal arz kanallarında müşterinin görünümü, finansal analiz, dolandırıcılığı ortaya çıkarılması(fraud detection), güvenilirlik, insan kaynakları yönetimi, taşınmazların yönetimi ve optimizasyonu.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ) Dolandırıcılığın ortaya çıkarılması , risk analizi, müşteri duyarlılığı (customer sentiment).
İletişim
• Veri Depolama (Data warehousing): Fiyat stratejileri ve maliyetler, müşteri desteği ve servisler, pazarlama analizi, tedarik zinciri, lojistik ve süreç optimizasyonu, mevzuata uygunluk, taşınmaz optimizasyonu ve insan sermayesinin yönetimi.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ) : Sosyal bilgilerin analizi, mobil aygıt kullanımı, ağ kalitesi ve uygunluğu (sensörlerin kullanımı) , ağ dolandırıcılığı ortaya çıkarılması ve “Internet of Things” için genişletilmiş ağ yönetimi ve optimizasyonu.
Pakete Girmiş Tüketici Ürünleri
• Veri Depolama (Data warehousing): Satışların analizi, pazarlama, tedarikçiler, üretim, lojistik, tüketici eğilimleri ve riski.
1Hadoop açık kaynak ve Java tabanlı bir programlama ortamıdır. Dağıtık bir hesaplama ortamında büyük datanın işlenmesi ve depolanmasını içerir. Apache projesinin bir parçasıdır.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ): Analysis of promotional effectiveness (through social media and in-store sensors), supply chain, state of manufactured goods during transport, product placement in retail, and risk.
Eğitim ve Araştırma
• Veri Depolama (Data warehousing): Kurum veya tesisin finansal analizi, personel ve insan sermayesi yönetimi ve mezunlar profili ve teberru dağılımı.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ): Risk altındaki öğrencilerin analizi, (sensör verilerini kullanarak), sensörlerden alınan araştırma verileri ve izleme olanakları ve kullanım optimizasyonu.
Sağlık Mükellefleri
• Veri Depolama (Data warehousing): Bakım maliyet analizi, bakım analizinin, personel ve insan kaynaklarının kalitesi, risk ve dolandırıcılık kalitesi.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ): Hastalık ve salgın modellerinin araştırması, hastanın izlenmesi, tesislerin (servislerin) izlenmesi ve optimizasyonu, hasta memnuniyeti analizi ve risk analizi.
Yüksek Teknoloji ve Endüstiyel İmalat
• Veri Depolama (Data warehousing): Tedarikçi ve dağıtıcı analizi, lojistik yönetimi, üretimin (imalatın) niteliği, and güvence analizi.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things ): Fabrikasyon üretim ve nitelik analizi, ara montaj analizinin niteliği , ürün arızası ve bekleyen arıza analizi ve otomatik servis talepleri.
Sigorta (Mülkiyet ve Kaza)
• Veri Depolama (Data warehousing): Satış ve pazarlama analizi, insan kaynakları analizi ve risk analizi.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Müşteri memnuniyeti ve risk analizi.
Emniyet teşkilatı
• Veri Depolama (Data warehousing): Lojistik optimizasyonu, cinayet istatistiklerinin analizi ve insan kaynaklarının optimizasyonu
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Tehdit analizi (sosyal medya ve yakalama görüntüleri ile).
Medya and Eğlence
• Veri Depolama (Data warehousing): Gözlemci tercihlerinin analizi, medya kanallarının popülerliği reklam satışları ve pazarlama promosyonları.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things):Görüntüleme alışkanlıkları analizi (Viewing habit analysis), eğlence mekânlarında müşteri davranışlarının analizi ve müşteri memnuniyeti analizi.
Petrol ve Petrol Ürünleri
• Veri Depolama (Data warehousing): Sondaj keşif maliyetlerinin analizi, potansiyel arama siteleri, üretim, insan kaynakları ve lojistik optimizasyonu
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Sondaj keşif sensörü analizi (arıza önleme)
İlaç Sektörü
• Veri Depolama (Data warehousing): İlaç sektöründeki araştırmaları içeren klinik deneyler, test konusunun çıktısının analizi, üretimlerin finansal analizi, satış ve pazarlama analizi, insan kaynakları analizi
• Mimari (MangoDB, Hadoop vd./ Internet of Things ): Sensörlerden, sosyal davranışlardan, hastalıkların izlenmesinden ve genetik araştırmalardan elde edinilen klinik araştırmaların analizi
Perakende
• Veri Depolama (Data warehousing) Pazar sepet analizi, satış analizi, tedarik zinciri optimizasyonu, gayrimenkul optimizasyonu ve lojistik ve dağıtım optimizasyonu
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Tüm kanalların analizi ve müşteri duyarlık analizi.
Taşımacılık ve Lojistik
• Veri Depolama (Data warehousing): Ekipman ve mürettebat lojistik ve yönlendirme, satış ve pazarlama analizleri, gayrimenkul optimizasyonu ve insan kaynakları analizi ve optimizasyonu.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things): Trafik güvenliği analizi ve kontrolü, donanım performansı ve (on-board sensörlerinden) potansiyel arıza analizi, (sensörlerden gelen) lojistik yönetimi ve müşteri duyarlılığı analizi (otoyol sensörü verilerinden) Trafik optimizasyonu.
Altyapı Hizmetleri
• Veri Depolama (Data warehousing): Lojistik optimizasyonu, harita koordinat sisteminin dağıtım analizi ve optimizasyonu, müşteri enerji kullanımı ve insan kaynakları analizi ve optimizasyonu.
• Mimari (MangoDB, NoSQL, Hadoop vd./ Internet of Things) Izgara optimizasyonu ve statü, proaktif bakım optimizasyonu için akıllı sayaçların elde edilen verilerin analizi