Tuesday, 31 July 2007

SOA: Service Oriented Architecture (Servis tabanlı mimari)

Epeydir yazamadığım bloguma yakın zamanda nesne tabanlı mimarinin yerini alması beklenen SOA(Servis odaklı mimari) dan bahsetmek istiyorum.

SOA Nedir ?

Türkçeye Servis/Hizmet Odaklı/Yönelimli Mimari gibi değişik kombinasyonlarda çevrilen SOA iş fonksiyonlarının birlikte çalışmayı destekleyecek esneklikte ve tekrar kullanımı geliştirecek şekilde, iyi tanımlanmış ve gevşek bağlı bileşenler halinde oluşturulduğu bir sistem mimarisidir.

Neden SOA ?

Rekabet ve değişen pazar koşulları kurumları iş modellerini değiştirmeye zorladığı bilinen bir gerçek.SOA dan önce de iş modellerinin değişiminden pek bahsedilemezdi.
Değişim demek yıkıp yeniden yapmaktı.Oysa SOA tüm bu zorlukları kaldırıp değişime yönelik mimari ile daha esnek bir yapıya olanak sağlıyor.
Önceki kullanılan mimarilerde BT, altyapı bileşenlerinin tümü olmasına karşın SOA da gevşek bağlı iş servislerinin olması da iş entegrasyonu yönünden de SOA nın cazip olduğunun bir göstergesidir.Ve SOA nın her bir parçası tekrar kullanıma hazırdır, görevi biten parça yeni bir görev bekler.Ancak SOA da azaltılmış risk den bahsedilir,çünkü geri dönüşüm kolaydır.SOA yı çoğu kimse Voltran'a ya da legolara benzetir.Çocuklar legolarla değişik yapılar ortaya koyabilirler.Hatta birkaç çocuk ayrı yapılar oluşturup hepsini birleştirebilirler.Sonra bu yapıyı parçalarına ayırırlar ve legolar yeni bir yapıya hazır hale gelmiştir.Voltran'da ise beş ayrı robot büyük bir görev için bir araya gelir ve Voltran'ı oluştururlar.Görev bittikten sonra da eski hallerine dönerler.Bir başka görev öncesinde birleşmeye hazırdırlar.

SOA nın neleri ile öne çıktığı aşağıdaki farklardan daha kolay anlaşılabiliyor.

Nasıl ?

SOA dan yararlanmak için belirli bir platformu bilme zorunluluğu yoktur.SOA platform bağımsız çalışır.Amaç platformlar arasında bağlantı kurmaktır.

SOA ile çalışmaya başlarken ilk önce önünüzdeki engelleri belirleyip projenizi tanımlarsınız.Teknik yeterliliklerinizi gözden geçirdikten sonra projenizi SOA prensiplerine göre uygularsınız.IBM yazılımları sizi SOA yolunda yalnız bırakmayacaktır.Bunun için tecrübe ve hedef belirlemenin büyük önem arzettiğini unutmamak gerek.


Kullanılan IBM Yazılımları :

  1. WebSphere Process Server
  2. WebSphere ESB
  3. WebSphere Business Monitor
  4. WebSphere Service Registry & Repository
  5. WebSphere Business Modeler
  6. WebSphere Integration Developer

Sonuç :

Rekabette kazanan olmak isteyen kurumlar tecrübeli BT uzmanlarının entegrasyon geliştirici sıfatlarına sahip olduklarını gördükleri zaman SOA sız geçirdikleri her saniyeyi zarar sayacaklardır.Ya da bu donanıma sahip BT uzmanı arayışı içersinde bulunacaklardır.

Kaynak :

Arden Agopyan, Kurumsal Servis Odaklı Mimari Semineri.


Monday, 21 May 2007

Algoritma nedir ?

Bir kavramı incelerken algoritma gereği ilk önce kavramın anlamından, isminin nereden geldiğinden bahsetmek gerek diye düşünüyorum.Algoritma kelimesini incelerken de aynı yolu izleyeceğim.
Algoritma kelimesi , Ebu Abdullah Muhammed İbn Musa el Harezmi isimli Özbekistan'ın Horasan kentinde doğmuş ünlü Türk matematikçinin adından gelir. Bu alim 9. yüzyılda cebir alanindaki algoritmik çalışmalarını kitaba dökerek matematiğe çok büyük bir katkı sağlamıştır. "Hisab el-cebir ve el-mukabala (حساب الجبر و المقابلة)" kitabı dünyanın ilk cebir kitabı ve aynı zamanda ilk algoritma koleksiyonunu oluşturur. Batılılar, el Harezmi (Al-Khwārizmī) sözcüğünü telaffuz edemedikleri için terim bu şekilde kalmıştır.Bir Türk adının yaygın bir kavramın kökünü oluşturması da gerçekten gurur verici .

Algoritma deyince bizim zihnimizde asıl canlanması gereken şey ise algoritmanın her işin öncesinde yapılan muhasebe işi olduğudur.Matematik hesaplamalarından ayran yapmaya ,blog yazısı yazmadan tarla sürmeye kadar her alanda ve en önemlisi programlamada algoritmayı bazı zaman fark etmesekte kullanırız.Algoritma hayatımıza yerleşmiş durumda.
Her iş için alogritma kullanılır ama algoritma geneldir.Bir iş için de farklı algoritmalar olabilir.Bu algoritmaların karmaşıklığı birbirine eşit olabileceği gibi birisi daha verimli de olabilir.Mesela iş yerine yürüyerek de gidilebilir otobüslede.Fakat otobüsle gitmek daha az vakit alacağından daha verimli olur.Bu duruma bir çok örnek verilebilir.
Algoritmalar özel durumlar için çözüm sunamazlar.Genel durumlara yönelik algoritmalardan söz edilebilir.

Algoritma kullanacağımızı farkettikten sonra en önemli kısma gelinir : Hangi algoritmayı kullanabilirim?Ram i etkili kullanmak,kodun kısa ve anlaşılır olması gibi üzerinde durulması gereken noktaları düşünerek bir seçim yapma zamanı gelmiştir.Her algoritmanın bir karmaşıklığı(complexity) vardır.Ve bu karmaşıklıklar algoritmaların en kötü ihtimalleri(worst case) göz önünde bulundurularak hesaplanır.(Bir de en iyi ihtimal dediğimiz best case vardırki bunun complexity si en iyi ihtimaller göz önüne alınarak hesaplanır.)
Mesela search algoritmalarını ele alalım.Binary search algoritmasının karmaşıklığı log n, linear search algoritmasınınki ise n dir.Eğer bizim arama yapacağımız dizi sıralı ise binary search kullanmamız daha verimli olur(log n '<' n).Bunun gibi diğer problemlerde de çeşitli algoritmalar kullanılabilir(Bfs, A* (star)). Programımızın uzunluğu-kısalığı,verimliliği algoritmaya bağlıdırAlgoritmayı (düzgün) oluşturarak kodun uzunluğunu dörtte birine indirebiliriz.Programı yazmadan önce çözümü kafamızda oluşturup ön algoritmayı oluştururuz.Bu oluşumun kağıda dökülmesi ile algoritma tamamlanmış olur.Artık hangi dili biliyorsanız yada hangi dille yazmanız isteniyorsa o dille kodunuzu da yazarsınız.Ve artık program bitmiştir. Algoritma oluştururken kolaylık için Akış Diyagramı ile işlem basamaklarını şekillerle gösterebilirsiniz.Akış Diyagramı ile ilgili ayrıntılı bilgiye de buradan ulaşabilirsiniz.

Program yazarken meselenin “ yazmak” olmayıp “etkili/verimli yazmak” olduğunu program yazmadan önce hatırlayıp, düzgün, anlaşılır algoritma ile görenlerin ağzı açık kalacak şekilde ürünü ortaya koyabilmek iyi bir yazılımcı olabilmek için ödenmesi gereken bedeldir.

Kaynakça
http://www.godoro.com
http://tr.wikipedia.org/
http://www.eksisozluk.com/
http://www.yazilimgrubu.com
http://akademik.bahcesehir.edu.tr/cse2106/lecture_notes/week9.pdf

Tuesday, 1 May 2007

Microsoft’tan Silverlight Atağı

Microsoft Nisan ayının ortalarında WPF/E teknolojisinin adını Silverlight olarak değiştirdiğini duyurdu.Peki Silverlight nedir ?Efendim Silverlight Microsoft’un bu zamana kadar WPF(Windows Presentation Foundation) olarak duyurduğu tasarım programının yeni versiyonudur.WPF nedir diye soracak olursanız da şu video bu sorunuzun cevabı olur diye düşünüyorum.

Gelişmiş ASP .NET uygulamaları olarak da adlandırılan Silverlight, 2 MB civarında dosya büyüklüğüne sahip bir eklenti olarak Internet Explorer, Firefox ve Mac'in Safari'sinde kullanılabilecek.Linux için ise herhalde “Otursunlar yazsınlar arkadaş!” diyerek herhangibir eklenti duyurulmadı.Önceleri açık kaynak kodu desteklediğini belirten Microsoft görünen o ki desteğini azaltmış.

Microsoft ‘un .NET Framework 3.0 ile yayınladığı bu yeni kütüphane sayesinde görselliği iyice artırılmış uygulamalar geliştirmek artık mümkün.Görsellikte WPF , .NET Framework 3.0 gerektirirken light versiyonu olan Silverlight (WPF/E)gerektirmiyor bu sayede tüm platformlarda (cross- platform) çalışabildiği iddia ediliyor.Şuradan Silverlight ile ilgili çeşitli videolara;röportajlara ulaşabilirsiniz.

Microsoft’un bu alanda ilerleme kaydetmesi Macromedia’yı renklerine bağlayan Adobe’yi de kızdırmış olsa gerek.Adobe en son CS3 serisini duyurmuştu.Ve cross platformda da bildiğim kadarıyla APOLLO yu duyurdu.

Microsoft’un el atmayı geciktirdiği görsellikte Silverlight ile rekabetin artacağını düşünüyorum.Öte yandan Google’ın saltanat sürdüğü,Ms’in ise yine etkili olamadığı webde, 2007 yılı içerisinde Ms’den bir atak sözkonusu olabilir.

Thursday, 26 April 2007

Bizim Mucitler

Geçen Pazar sabahı kahvaltı yaparken bir yandan da televizyon kanallarını karıştırıyordum.Derken Kanal D de bir programa takıldım ismi “Bizim Mucitler”.Malum yarışma programı.Ne zamandır yayında bilmem ama benim ilk izleyişimdi.Baya da bi ilginç geldi.Türk halkı olarak bu tür programlara alışık olmadığımız için tabi bu ilgi de… Neyse izledim biraz programı.

Yarışmanın sunucusu Abbas Güçlü, jüri üyeleri ise ATO Başkanı Sinan Aygün ile ODTÜ Rektörü Prof. Dr. Ural Akbulut.Bunlara ek olarak da siyaset, sanayi, ticaret, bilim, kültür-sanat, sahne dünyasından farklı isimler jüri üyesi olarak eşlik edecekmiş.Mesela geçen hafta konuk jüri üyesi Uğur Dündar idi.
Projelerden bahsetmek gerekirse, yarışmacının birisi sodyum bor hidrür ile çalışan araba yapmış.Çok iyi düşünülmüş bu projeyi dikkatle izleyen ATO Başkanı hemen sordu:Bana böyle bir araba yapabilirmisin? diye.Mucidimiz cevab veriyor:60 milyar verin, ben sizi burada arabaya bindirip gezdiririm.Arabanın ana yakıt kaynağı bor olması hasebiyle proje benim bu yarışmadaki favorimdi.

Bir diğer proje ise iki kişi tarafından yapılmış olan bir proje : Yolda giden arabanın sadece altından geçtiği sokak lambalarının yanmasını sağlayabilecek bir sistem.Enerji tasarrufu açısından Türkiye ekonomisine katkıda bulunması kaçınılmaz.Ama bana göre çokta büyük bir eksiği kapatacak bir proje değil.Çünkü şu anda neredeyse bütün apartman girişlerinde bulunan hareket sensörleri bu işi gayet kolay bi şekilde halledebilir.

Yarışma sadece böyle projelerle devam etmedi.Bu projelerin yanında bazı kolejlerde okuyan 4. 5. Sınıf öğrencilerde kendi çaplarında yaptıkları projeleri tanıttılar.Haliyle yarışma değerlendirilmesine dahil edilmeyecek olan bu küçük mucitlerin icatlarıda bir hayli ilginç.Takdir edersiniz ki o yaşlarda bir çocuğun hayata bakış açısını bilemeyiz.Ama bu projeleri onların ne düşündüğünü, kendi jenerasyonundakilerin nelerle meşgul olduklarını bize çok iyi yansıttı.Mesela miniklerden birisi uykuda üstü açılan çocuğu annesine bildiren bir sistem kurmuş.Sistem çocuğun vücut sıcaklığını 36 derecede tutan bir termometre ile annesine vücüt ısısı düştüğü takdirde haber veren bir alarm sisteminden ibaret.Uğur Dündar’ın 3 tane sipariş verdiği bu proje tarafımdan da ilgi gördü.Bir diğer proje de kapkaçlara önlem almak için yapılmış.Çantanın altına bir düğme yerleştirmek suretiyle tasarlanan sistem kapkaççının çantayı bulunduğu yerden aniden almasıyla alarm vererek çevredeki vatandaşları linç girişimine sevkediyor.Sitemin yapılma fikri de öğrencinin annesinin çantasını kaptırmasıyla doğmuş.ATO Başkanı Sinan Aygün bu öğrencileri çok takdir ederek hepsine de laptop vereceğini söyledi.

Böyle bir yarışmayı tabii ki takdir ettim fakat bu tür bi yarışmanın dahi reytinge alet edilmesini kesinlikle hoş görmedim.Programın sabahın 8 inde veya gecenin 12 sinde yapılması, ve NTV de yayınlanan Türk Mucitler programından esinlenilmesi amacın aslında ne olduğunu açıkça ortaya koyuyor.