Eski Sistemler (Legacy Systems)

Yazan : Şadi Evren ŞEKER

Bu yazının amacı, işletmelerin karşılaştığı önemli problemlerden birisi olan eski yazılım (legacy software) kavramını açıklamaktır.

Bilişim teknolojisi oldukça hızlı bir şekilde yenilenmekte ve işletmeler de kendi imkan ve ihtiyaçları doğrultusunda bu yeniliklere ayak uydurmaktadır. Ancak bazı durumlarda bazı yeniliklerin takip edilmesi ve uyarlanması, işletmenin bütün yazılım geçmişi için uygun olmamakta veya işletme imkanları buna yeterli olamamaktadır. Örneğin parkende zinciri bir firmanın, kullandığı yazılım dilini değiştirerek clipper’dan Java teknolojisine geçtiğini düşünelim. Daha önce geliştirdikleri bütün yazılımları (mesela planlama bölümü yeni yazılıma geçerken yazar kasaların hala eski yazılımla devam ettiği bir durumda) bu yeni dile taşımaları ise maddi sebeplerle (bütçesinin yüksek olması, yeterli insan kaynağı olmaması, geçişin vakit alması, eski yazılımın kullanılmasını zorunlu kılan sözleşmeler, eski yazılımın kaynak kodlarının işletmenin elinde olmaması gibi sebeplerle) mümkün olmasın. Bu durumda işletmenin yeni teknoloji ile geliştirdiği yazılımların yanında, eski teknoloji olan yazılımlara (legacy software) yeni yazılımların uyumlu çalışması gerekir. Yani işletme parkende sektöründeki planlaması ile kasa yazılımları arasındaki bağlantıyı koparmayacağına göre, bir şekilde eski ve yeni teknolojiyi birlikte yürütmek zorundadır. İşte bu uyum yazılımları eski yazılımların kullanılması için gerekli arayüzü sağlamaktadır.

Eski sistemlerin (legacy systems) kullanılmaya devam etme sebepleri

  1. İşletmenin ihtiyaçlarının karşılandığı ve işletmenin sistemi değiştirmek için bir sebep görmediği durumlar.
  2. Sistemin yeniden tasarlanması veya değiştirilmesinin mümkün olmaması (sistemin bütün ve parçalanamaz olması veya karmaşık olması gibi sebeplerle)
  3. Bir sistemin değiştirilmesi için harcanacak vakit, iş gücü ve paranın, o sistemin yeni halinden elde edilecek olan faydalardan çok daha yüksek olması durumunda.
  4. Bir sistemin sürekli çalışır durumda olmasından dolayı değiştirilmesinin mümkün olmaması veya aynı şekilde sürekli çalışır durumdaki bir sistemin geliştirilmesinin maliyetinin yüksek oluşu. Örneğin Bankalar, hava trafik kontrolleri, rezervasyon sistemleri, nükleer enerji santralleri veya askeri savunma sistemleri gibi.
  5. Eski sistemin tam olarak anlaşılamadığı durumlarda. Örneğin eski sistemi geliştiren geliştiricinin sahip olduğu bilgileri paylaşmak istememesi veya bir çalışanın işletmeyi terk etmesi gibi durumlar.
  6. Yazılım kullanıcılarının, yazılımı değiştirmek istediği durumlarda kolayca değiştirmesinin mümkün olması halinde (istediği zaman değiştirebileceği inancı)

Yukarıdaki devam sebeplerinin yanında aşağıdaki durumlarda eski sistemlerin sorun olarak görüldüğü de olabilir.

  1. Yazılımların bir donanım bağlantısı olması durumunda, ve bu donanımı temin etme maliyetlerinin yükselmesi veya tedariğinin son bulması durumunda.
  2. Sistemin çeşitli sebeplerle anlaşılmasının güç olduğu durumlarda, sistemin bakımının, güncellemelerinin yapılmasının maliyetinin yüksek olması veya imkansız olması hali. Örneğin Comair firması 2004 yılında CEO’sunun işine son vermiştir ve gerekçe olarak aslında işletmedeki hiçkimsenin bilmediği eski personel çizelgeleme yazılımının başarısızlığını göstermiştir.
  3. Güvenlik açığı riskinin yüksek olması durumunda. Yeni güncellemeler ve sistem geliştirmelerine rağmen, eski sistemlerin taşıdığı risk, şayet işletmenin kaldıramayacağı seviyedeyse.
  4. Yeni sistemle uyumlu çalışma ihtimalinin bulunmaması veya maliyetinin yüksek olması durumunda. Bu durumda genelde eski sistemin yeni sisteme uyumu için geliştirilen ara yazılımlar geçici çözümler sunmaktadır ancak eski sistemlerin ölçek ekonomisi, değişen trend ve talepler gibi durumları yakalayamaması halinde genelde eski moda geliştirme (Retrocomputing) ismi verilen ve eski sistem üzerinde geliştirme işlemi yapılır. Bu işlemin de teknolojik sınırlarına ulaşılması halinde eski sistemin( legacy system) kapatılması gündeme gelir.

Eski Sistemlerin Geliştirilmesi

Hizmet odaklı mimarilerin (service oriented architecture) gelişmesi ile birlikte eski sistemlerin üzerinde yapılan yenileme veya muhafaza yaklaşımlarında da değişimler olmuştur. Örneğin bir işletme, yazılımı tamamen yenilemek yerine, yazılımdan beklentilerini ve hizmet tanımını yapmakta, bu hizmet tanımına göre de yazılıma ilave katmanlar eklemek veya sadece bir kısmını yenilemek veya tamamını muhafaza etmek gibi kararlar alabilmektedir.

3tiered

Yukarıdaki şekil, pek çok konsol ve istemci tarafı uygulaması olan, sunucu/istemci modeli yazılımı temsil etmektedir. Buna göre bir istemci, sunucuya bağlanarak buradaki işlemlerini yapmakta ve bu sırada istemcide kurulu olan bir yazılım ve bu yazılımın ekranları kullanıcı ile iletişimi sağlamaktadır.

Günümüzde en çok kullanılan yenileme çalışması ise, aşağıdaki şekilde gösterilebilir:

4tiered

Buna göre sunucu ve sunucu arkasındaki mimariye hiç dokunulmadan ilave bir katman ile, sunucu işlemleri birer web hizmetine dönüştürülmekte ve bu hizmetlerden çok farklı amaçlarla diğer işletmeler ve kullanıcılar faydalanabilmektedir.

Yukarıdaki şekilde yer verilen gelişme ülkemizde de çoğu uygulamada sıkça başvurulan bir yenileme yöntemi olup çoğu durumda (istisnaları olmakla birlikte) eski sistemlerin yenilenmesi için en verimli yaklaşımlardan birisidir. Bu sayede işletmeler uygulamalarının önüne ekledikleri bir web hizmeti sunucusu ile tamamen yeni ara yüzler açabilmekte, ayrıca uygulama sunucusunun yerine alternatif sunucular geliştirerek uygulama sunucusunu da zaman içerisinde ikame etmektedir.

paralel4tiered

Yukarıdaki yeni şekilde, ikinci bir uygulama sunucusu sisteme eklenmiş ve işletmenin taşımaya karar verdiği yeni uygulamalar bu ikinci uygulama sunucusu üzerine taşınırken, eski uygulama sunucusu üzerinde hala işlemlerin bir kısmı devam ettirilmektedir.

Leave a Reply

You must be logged in to post a comment.