Windows Applicationlarını Webden Calıştırma

Konuya başlamadan önce uzun zamandır siteyi ihmal ettiğim için herkesten özür dilerim. İş yoğunluğundan kaynaklı zaman problemim nedeni ile siteye aylardır yazı ekleyemiyordum. Her neyse bari güzel bir bilgilendirme yazısı yazayımda hatamı az da olsa telafi etmeye çalışayım.

Hepimizin sürekli dillendirdiği bir düşüncedir, Windows Appliationlarını Web den çalıştırmak. Bununla ilgili birçok çalışma yapıldığını da duymuşuzdur hepimiz. Ancak Windows Applicationlarının yapısı ve çalışma mantığının Web sayfalarından çok farklı olması nedeni ile bu konuda çok birşey yapılamamaktadır. Bir windows application da bulunan nesneler (button, checkbox, combobox, listview vs.) birer Window nesneleridir. Kendi aralarında iletişimlerini Windows Messaging denilen bir yapı ile mesajlaşarak yaparlar. Webde ise html nesneler explorer ve benzer browserlarda gösterilirken DOM nesnelerine dönüştürülüp COM nesneleri şeklinde çalışırlar.

Bir Windows Application developerı olarak bunu yıllardır defalarca düşünmüşümdür. Yani bir şekilde Windows Applicationlarını Webden çalıştırmak her zaman istediğim bir şeydi.

Bir kaç ay önce, Kenji Obata, Code Systems yada diğer adı ile Xenocode'un kurucusu bana bu fikirden söz ettiğinde oldukça heyecanlanmıştım. Kenji'nin planı hali hazırda varolan VM (Virtual Machine) lerinide kullanarak istenilen Windows Application'ı Webden çalıştırmaktı. Bana bunun ne kadar mümkün olduğunu, mümkünse bunu yazıp yazamayacağımı sorduğunda ben çok düşünmeden bu işin olabileceğini söyledim. Şimdi bu proje hayatta, ve test aşamasında. Xenocode'un VM ürünü sayesinde virtualize edilmiş herhangi bir program istenildiği takdirde Web'den Surface denilen yapı sayesinde çalıştırılabiliyor.

Şimdi çoğunuzun, arka planda programı indirip çalıştırıyorlardır dediğinizi tahmin ediyorum. Doğru arka planda istenilen bu windows application download edilip çalıştırılıyor. Ancak bu 2 farklı modda yapılıyor.

1 - Normal Mode: Bu modda virtualize edilmiş programı arka planda indirip webde çalıştırıyoruz.

2 - Streaming Mode: Bu moda ise application'ın gerekli yerlerinin indirilip çalışması şeklinde oluyor. Yani Xenocode XStream teknoloji sayesinde programın tamamı gelmeden program çalıştırılıyor. Buda ornegin 1GB lik bir programin %5 lik kısmı geldiğinde çalışıyor olmasını sağlıyor. Düşünün Türkiye gibi internette hız diye birşeyden söz edilemeyen bir ülke için ne büyük bir avantaj. Çok büyük bir programı çalıştırıyorsunuz ve 1 dakka içinde program download edilmiş gibi çalışıyor ve siz kullanmaya başlıyorsunuz. Siz kullandıkça bulunduğunuz yere göre analiz yapıp sonra yapacağınız muhtemel işlemler için gerekli yerleri arka planda indirmeye devam ediyor. Örneğin geçen gün bir demo için hazırlanan oldukça yüklü bir oyunu (177MB) 1 dakikadan kısa bir sürede webden hemde ADSL bağlantısı ile çalıştırıp oynadım. Oldukça zevkli bir tecrübe idi. İstediğiniz programı sadece 1 dakika içinde hemde zahmetsiz bir şekilde bilgisayarınızda çalıştırmak fikir olarak bile insana harika geliyor, bunu birde tecrübe etmek çok daha zevkli.


Ayrıca cache mekanizması sayesinde indirilen bu program localde cachleniyor ve sonraki girişlerinizde sizi indirme belasından kurtarıyor.

Evet bu ürünler sayesinde artık Windows Applicationlar


Comments

June 7. 2009 11:36 AM

Özcan yine cok önemli bir projeye imza attin. Projenin ne kadar komplike oldugunu her yazilim gelistirici anlayabilir sanirim. Ve senin projenin en önemli kismini tek basina nekadar kisa zamanda bitirdigini biliyorum. Seni tekrar tebrik ederim, basarilarinin devamini dilerim.
Tolga Yaramis
June 7. 2009 12:26 PM

Teşekkürler Tolga. En önemli kısım demeyelim istersen, önemli kısımlarından biri diyelim. Diğer arkadaşların bu iş üzerinde yıllarca hazırlanmış bir emeği var onlara haksızlık olabilir.

Öncelikle hazırlanmış bir Virtualize ve Streamin microkerneli var. Bu sayede user-mode da çalışan bir OS subsystemi emulate ediliyor. Bütün bunlar cidden oldukça zor ve yoğun emek gerektiren işler. Tüm bunları yazan arkadaşlar oldukça başarılı işler çıkarmışlar. Zaten bu tarz bir sistem genelde bir tek kişi tarafından oluşturulamaz. Bir ekip çalışması gereklidir ki burada bu başarıldı.

Yazımda da dediğim gibi, henüz daha işin başında sayılırız, ilerleyen zamanlarda bu işin çok daha iyi bir yere varacağını sanıyorum.

Ozcan DEGIRMENCI
June 11. 2009 08:48 AM

o diil de -zatene yapardin ;) -
en cok bitirip rahatlamana sevindim Smile)))

Oğuz YAĞMUR
June 12. 2009 12:02 AM

Teşekkürler Oğuz.
Henüz daha bitmiş sayılmaz, daha yapılması gereken oldukça çok iş var. DirectX gibi FullScreen modda çalışan programlar, windows standartları dışında geliştirilmiş programlar vs. vs. İşletim sistemi göre farklılık gösteren durumlar, örneğin Vistada bulunan DWM (DesktopWindowManager) in ortaya koyduğu Surface painting vs. vs. Yani daha oldukça çok konu var halledilmesi gereken. Ama öyle yada böyle kapı aralandı ve içeri girmeyi başardık bundan sonrası artık bir şekilde yapılır önemli olan da bu.

Ama yinede rahatlamadın mı dersen elbette rahatladım Smile İnşallah bundan sonrası da çabucak çözülür de tam olarak rahatlarız en azından bu konuda.

Ozcan DEGIRMENCI

Search

Calendar

<<  September 2010  >>
MonTueWedThuFriSatSun
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910
View posts in large calendar

Disclaimer

© 2007 - 2009
Ozcan DEGIRMENCI
All rights reserved. The content can be used elsewhere given that the source is properly acknowledged.