Teknoloji Üretkenlik

Native Client Teknolojisinin 13 Temel Özelliği

NACL


Web konusunda çok heyecan verici yeniliklerin kapısındayız. (yine mi ? 🙂  Her yeniliğin yeni bir fırsat olduğunu da düşünürsek heycanımız daha da artırıyor! Araştırılacak ve yazılacak çok ama çok şey var…  Bugün Google Native Client teknolojisine biraz daha (çok fazla değil) derinlemesine gireceğiz;  genel teknik alt yapısından ve de kurulumundan  bahsedeceğiz.

Native Client in ne olduğundan daha önceki yazımızda bahsettiğimiş ve demiştik ki: browser içinde hiçbir plugin gerektirmeden 3D ortamı sunan Google in heycan verici  teknolojisidir. Bu makaleyi okumadan önce ilk yazıya bir gözatmanızı öneririm.

Temel Özellikler:

  1. Native Client bir open-source projesidir ve NEW BSD (BSD 3) lisanslıdır; browser ortamında gerçek 3D oyun deneyimi sunmak için Google in ürettiği bir teknolojidir. Aslında sadece oyunlar değil, her türlü video editing, multimedia yazılımları, ve normal yollarla mümkün olmayan görsellikte her türlü 2D / 3D web uygulamalası artık olağan hale gelecektir.
  2. Bunlar geçmişte de hayal edilmiş ve bir çok başarısız girişim ile daha önce denemişti: ActiveX, Java, Shockwave 3D,  türlü çeşitli browser pluginleri  vs…  (özellikle Java ve ActiveX in web maceraları tam anlamı ile faciha ile sonuçlanmıştır.) Google geçmişten dersler çıkararak geliştirdiği bu teknolojide hiçbir kurulum ya da plugin gerektirmeden doğal browser ortamında neredeyse normal masaüstü programların / oyunlarının 3D deneyiminin aynını  sunuyor. Üstelik platform (işletim sistemi) bağımsız bir şekilde!
  3. Native Client, normal masaüstü yazılımlarına oranla en fazla %5 lik performans kaybı ile istemci bilgisayar donanımının tüm 3D grafik kartı, Ses kartı, multithread (çoklu görev), klavye / mouse / game pad girdileri,  hafıza erişimi ve sınırlı bir miktar disk depolama özelliklerini kullanır. Browser a hiçbir plugin veya yazılım kurmayı gerektirmez. Bu şekilde sisteme en çok yük bindiren konsol oyunlarının bile browser dan oynanması sağlanabilir. FullScreen desteği ile bir web sayfasında olduğumuzu dahi düşünemeyeceğimiz anlar olacak.
  4. Bu insanların web uygulamalarından artık beklediği şeydir. Web uygulamaları geleceğin yegane ortamı olacağına göre, basit bir baloncuğu hoplatmak için yüzlerce satır javascript kodu yazmanın gerektiği günümüz web ortamından fazlası gerekiyor artık. Her şey webe kayacaksa, neden bilgisayar donanımını hiçbir şekilde kullanamayan basit script lere razı olalım?  🙂
  5. Native Client, sunucudan gelen derlenmiş (binary) kodu browser ortamında güvenli bir şekilde çalıştırır. Bütün Chrome lada çalışan bu standart kod işletim sistemlerinden bağımsızdır. Yani chromun olduğu her yerde aynı Native Client kodu çalışır. Ancak şimdilik işlemci bağımlılığı vardır (yani bazı işlemciler şimdilik desteklenmiyor).
  6. Bir Native Client uygulaması C / C++ ile  geliştirilmiş bir modülü ve o modülü içeren html js css web dosyalarından meydana gelir. SDK sında C ve C++ dilleri doğal yolla desteklenir. Diğer diller üzerinde çalışılmaktadır, örneğin:  C# gibi. Kodlar GNU / GCC evrensel derleyicilerinin çok benzeri bir ortamda derlenir. Native Client ortamında bir kez derlenen kodlar tekrar derlenmeksizin kolayca uygulamadan uygulamaya taşınabilir.
  7. Bugüne kadar sayısız desktop uygulaması için sayısız yazılım firması milyonlarca satır kod üretildi. Bu kodların pek çok kısımları da çok fazla bir değişikliğe maruz kalmadan Native Client ortamına aktarılabilir (port edilebilir). (başlıca değişmesi gereken kısımlar kullanıcı arabirimi event handling kısımlarıdır.)
  8. Normalde desktop uygulamalarını bilgisayarlara tek tek install etmek veya browser plugini yüklemek çok ciddi güvenlik açıkları yaratır ve de efor kaybettirir. Bunları kurup kaldırmakla geçen zaman bir yana dursun;  eğer windows kullanıyorsanız sonu eninde sonunda karışan sisteminiz ile beraber “format c:”  dir!  Native Client da ise web ortamında ise install / uninstall yoktur. Web ortamından kolayca yüklenen ve işi bitince kolayca çekip giden derlenmiş kodlar vardır.
  9. Native Client gerek derleme anında, gerekse çalışma (runtime) anında sürekli kontroller ve kısıtlamalar yapar,  bunlar güvenlik amaçlıdır. Chrome in içerdiği Sandbox-Safe sayesinde kötü niyetli yazılımlar özellikle istemci tarafında amacına ulaşamaz. Derleme aşamasında da zaten bi çok kısıtlama uygulanmaktadır. Dahası Native Client uygulamaları ancak Google Web Store üzerinden yüklenebilir. Aksi durumda Chrome zaten çalıştırmaz. Burada da denetleme mekanizmaları mevcuttur.
  10. Native Client kullanıcı verilerini de güvenceye almak için karmaşık kriptolama algoritmaları da içerir. Kullanıcı bilgileri network ortamında okunabilir gitmez.
  11. Sesleri işlemek için codecler, imaj ve video araçları, network api leri, 3D için  OpenGL ES API si, programlanabilir shadder lar vs.. sayısız yardımcı araçlar içerir.
  12. Native Client uygulamaları Google Web Store dan kolaylıkla yüzmilyonlarca kişi ile buluşturulur. buradan Chroma bir tık ile yüklenir, ve bir tık ile anında kaldırılır. Ve uygulamalar kullanıcının müdahalesine gerek kalmadan update edilebilir.
  13. Native Client SDK kullanılarak uygulamalar geliştirilir, bu SDK  GNU-GCC   C / C++ derleyicilerinin bir miktar değiştirilmiş bir versiyonunu, GNU ve Unix tabanlı “Binutils” yardımcı araçlarının bir kısmını, iki open source  C / C++ kütüphannesini (glibc, newlib), ve tabiki Native Client framework leri, ki google framework yerine “Pepper” tabirini kullanıyor. (bunları ilerde açacağız.)

Yazar Hakkında

Gökhan ZER

1978 samsun doğumlu olan Gökhan ZER,

Meslek hayatına Kadir Has Üniversitesi Bilgi İşlem Departmanın da Web Programcısı / Veri Tabanı Yöneticisi olarak devam etmektedir.

Hobi olarak new age / esntrumantal müzik DJ liği yapmaktadır.