Windows Applicationlarını Webden Çalış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ını Web üzerinden hemde download/setup etmeye gerek kalmaksızın çalıştırabiliyoruz. Hemde bunu yaparken programın bilgisayarınıza zarar vermesini engellemek adına tamamen ayrılmış bir ortamda programlar çalıştırılıyor. İndirdiğiniz programın yapacağı ayar değişiklikleri, registry kayıtları tamamen virtual bir ortamda yapılıyor. Yani İşletim sistemize ve bilgisayarınıza zarar vermesi tamamen engellenmiş oluyor.

Bu ürünlerin geliştirilmesi halen devam ediyor. Oldukça profesyonel, çoğunluğu Microsoft'tan ayrılma bir ekip tarafından bir çok şart gözününde bulundurularak geliştirilmeye devam ediliyor, ancak bu hali ilede oldukça başarılı diyebiliriz. Burada şunuda unutmamak gerekir, bu platformun Surface (Windows Applicationlarını Webde çalıştırma) kısmını geliştiren biri olarak şunu söyleyebilirim ki, gerçekten bu tarz bir ürün geliştirmek oldukça zordur. Dünya üzerinde standart ve standart olayan birçok windows application var ve tüm bunları ortak bir yapı içinde çalıştırmaya çalışmak oldukça zahmetli bir iş, hali ile bu ürünün elbetteki şu aşamada bazı sıkıntıları olacaktır, ancak genel ilerleyiş ve varolan sistem içerisinde oldukça başarılı olduğunu çok rahat söyleyebilirim. Microsoft'un bile backward compability konusunda harcadığı emeği düşündüğümüzde bu işin zahmeti daha rahat anlaşılabilir.

Ürün hakkında daha detaylı bilgi almak için Xenocode'un web adresine bakabilirsiniz. Orada birçok virtualize edilmiş programı setup etmenize gerek olmaksızın çalıştırabilirsiniz. Özellikle web developerlar için tüm Browserlara tek sayfadan setup etmeksizin ulaşabilecekleri ve kendi sitelerini farklı browserlarda rahatlıkla test edebilecekleri Browsers page'ini tavsiye ederim. İlk hazırladığımızda oldukça ses getirmişti. XStream ve Surface'le çalışan örnekler ise şu anda demo aşamasındalar ve birçok stability testlerinden geçiyorlar, sanıyorum bir kaç hafta içerisinde XStream ve Surface modunda çalışan applicationlarıda yine Xenocode'un web sitesinde public kullanıma açmış olacağız. Şu aşamada indireceğiniz programlar setup gerektirmeyen Virtualize edilmiş programlar olacaktır.

XStream ve Surface stabil hale geldiğinde yapılacak duyuruyu yine buradan sizlere bildireceğim, o zamana kadar müsadenizle.

Şimdilik herkese kolay gelsin, İyi çalışmalar


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
July 13. 2009 12:47 PM

Ben çok ve İngilizce olarak tüm blogu çünkü Türkçe don't understand yazınızı okumak istiyorum, ve bir tercüman aracılığıyla makale yorumu okuyabilirsiniz.

ED

Search

Calendar

<<  March 2010  >>
MonTueWedThuFriSatSun
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234
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.