NASA uzmanları, Mars Rover’ın yerine getiridiği görevde Java teknolojisinden yararlanıyor. Bu teknoloji ile yarattıkları ve ‘Maestro’ adını verdikleri sistem; veriyi görüntüye dönüştürme, işbirliği, komuta ve kontrol özelliklerinin kombinasyonunu sunuyor. Sistem, NASA uzmanlarının görüntülere bakarak araziyi üç boyutlu olarak yeniden yapılandırmalarını sağlarken, farklı alanlardaki uzmanların da görüntüleri ve araziyi izlemelerine, görsel veri tabanlarını incelemelerine ve ihtiyaç duydukları alanlarda işbirliğinin yapılabilmesine olanak veriyor.
Bütün bunları uzaktan, dağıtık ve işbirlikçi bir yapıda sunan sistem, dünyanın değişik bölgelerindeki farklı disiplinlerdeki uzmanların verileri sadece değerlendirmekle kalmayıp, görevin nasıl ilerlemesi gerektiğine de işbirliği içerisinde karar verebilmesine imkan veriyor. NASA için California Teknoloji Enstitüsü tarafından yönetilen ve güneş sisteminin robotik keşfi için kurulan Jet Propulsion Laboratory (JPL) uzmanlarının yaptığı en hoş şeylerden biri ise Maestro uygulamasının halka yönelik ‘konuya meraklı topluluklar’ için bir sürümünü gerçekleştirmiş olmaları.
Java, Rover’ın Dünyadan Kontrol Edilmesine Nasıl Yardımcı Oluyor?
Java Gelişmiş Görüntüleme (Java Advanced Imaging) adı verilen ve benzersiz ayrıntılarıyla görüntüler üreten panoramik bir kameranın yakaladığı görüntüler için kullanılan bir Java API bulunuyor.
Söz konusu görüntüler, Rover’ın üzerindeki iki farklı kameradan gelen görüntüler birleştirilerek yaratılıyor. İki mercek aracılığıyla elde edilen bu iki görüntü ile tıpkı insanın gözle algılaması gibi beynin nesnelerin ne kadar uzakta olduğunu şekillendirmesini sağlayan, üç boyutlu izlenimi veren bir haritalandırma yapılabilmesi sağlanıyor.
Üç boyutlu izlenimi veren görüntüler sayesinde ise ‘Üç Boyutlu Görüntü İlişkilendirmesi’ adı verilen bir işlemden yararlanarak, görüntünün her bir pixel’ini hesaplamak suretiyle bu resimdeki öğenin ‘gerçekte ne kadar uzakta olduğunu’ belirleyebiliyorlar. Bunun sonucunda da büyük bir resimdeki her bir kayanın, her bir öğenin ne uzaklıkta olduğunu hesaplayabilen JPL uzmanı bilim adamları; 3-boyutlu bir örnek oluşturuyor ve siz de etrafınızdaki dünyayı renkli ve üç boyutlu olarak görebiliyorsunuz.
Mars Rover’ı, Java mı Kumanda Ediyor?
Komuta ve kontrol sistemi anlamında oldukça büyük bir bölümü, Java uygulamasından oluşurken,
bununla girift halde bir çok parça da bulunuyor. Rover’ın kendi üzerinde bulunan bilgisayarında, şu anda yer almasa da dünya üzerinden yürütülen ve Rover’a kadar ulaşan komuta ve kontrol zincirinin tamamındaki birçok bölüm, Java tarafından gerçekleştiriliyor. Her alt sistemin, ‘son parçasına kadar’
Java koduna dayalı olması söz konusu değil, fakat önemli ve büyük bir parçası Java’ya dayalı.
Bu özellikle, veri görselleştirme, kullanıcı arayüzü üst uç araçları ve veritabanının tamamına
yakını için geçerli bulunuyor.
Halka Yönelik Maestro Uygulaması, Nasıl Çalışıyor?
Maestro web sitesini ziyaret edenler (http://mars.telascience.org), iki tür download seçeneği ile karşılaşıyorlar. Biri maestro uygulamasının kendisi diğeri ise Mars’tan gelen bir dizi meraklandırıcı verinin ilki. Sitede, Solaris, Linux, Windows ve diğer farklı platformlar için farklı sürümler de bulunuyor. Tüm bu sürümlere sahip oldukları gerçeği ise Java’nın ne kadar taşınabilir ve çapraz bir platform olduğunu gözler önüne seriyor. Aslında hepsi aynı program, yalnızca ‘farklı paketlenmiş’.
İlk veri seti indirilip yüklendiğinde, kullanıcıyı bazı verileri göstererek ilerleten bir senaryo ile karşılaşılıyor. Orada bulunan 3-boyutlu örnek ve mouse kullanılarak, 3-boyutlu örnek bilfiil elle yönlendirilebiliyor ve eğer kullanıcı Mars Rover’ın iniş noktasına uzak duruyorsa, arkasına bakarak görüntü alabiliyor. Aynı noktada, dolanmak da mümkün oluyor. Kayalar veya hava yastıklarından birinin tamamen sönmeyebildiği yerlerden biri olan bu alan izlenebiliyor. Tüm bu ‘3-boyutlu yürüyerek-görselleştirme’ hareketi için; Java 3-D API, Java Gelişmiş Görüntüleme API, Java networking API’ları ve kullanıcı arayüzü API’larından oluşan standart Java API’ları kullanılıyor.
Biraz da Mars’ta Dolaşmaya Ne Dersiniz?
Maestro sürümünden yararlanılarak, sadece arazi değil,m Rover’ın da üç boyutlu bir örneği görülüyor. Benzeri oluşturulmuş arazi üzerinde Rover’ı sürme şansı sunan uygulama, video oyunu görünümü taşısa da bu kez arazi örneği tamamen gerçek. Mars’tan gelen verilerle oluşturulmuş bir arazide dolaşmak söz konusu ve hayal ürünü bir oyunu oynamaktan çok farklı…
Java’yı Bu Tür Uygulamalar İçin Bu Kadar Cazip Kılan Nedir?
Bu sorunun bir değil birçok yanıtı bulunsa da en önemli nedeni, çeşitli platformların üzerinde çalışabiliyor olması. JPL uzmanı bilim adamlarının çalışmalarına bakıldığında; Solaris, Linux, Windows, Apple kutuları görülüyor ve Java, hepsinin üzerinde çalışabiliyor. Sun için kullanılabilir, standart ve mevcut API kitaplıklarına bakıldığında, çok geniş bir araç takımı olduğu görülüyor. 3-boyutlu Örnekleme API’ları, Gelişmiş Görüntüleme API’ları, tüm kullanıcı arayüzü API’ları ile networking API’ları da bu kapsama giriyor ve JPL’ciler, hepsini kullanıyor.
Buna ek olarak, insanların değerlendirme yaparken hesaba kattığı ‘geliştirici üretkenliği’ gibi çeşitli konularda birçok Java deneyimi bulunması da Java’nın cazibesini arttırıyor. Örneğin bir kişinin, bir yazılım parçasını Java ile geliştirirken, C veya C++’ya oranla ne kadar zamanda geliştirdiği kıyaslandığında, Java’nın iki kat daha etkin olduğu görülüyor. Başka bir deyişle, bir grup mühendisin C++ ile 10 ayda tamamlayacağı bir iş Java ile 5 ayda tamamlanıyor.
Java’nın bir başka önemli cazibesi ise daha güvenilir uygulamalar yapılandırılabilmesi. Çünkü, Java’lı
uygulamaların çok daha kesintisiz çalışabiliyor olması, makinenizin bit yığınlarından patlayacak hale geleceğinden endişe etmenizi engelliyor. Özellikle, entegrasyonu konusunda dikkatli olunması gereken geniş veritabanları söz konusu olduğunda, güvenlik büyük önem kazanıyor. Ve “Neden Java’yı tercih ettiniz?” sorusunu sorduğunuz Java geliştiricilerinin her birinden, farklı bir cevap almanız mümkün olduğundan, birbirine dolaşmış birçok farklı nedenden dolayı Java’nın tercih edildiği söylenebilir.