• Sonuç bulunamadı

Microsoft Robotics Studio’nun Anahtar Bileşenleri

4 ROBOTLARA GENEL BİR BAKIŞ VE MICROSOFT ROBOTICS

4.6 Microsoft Robotics Studio’nun Anahtar Bileşenleri

Robot uygulamalarını geliştirmek, düzenlemek ve uygulamak için MSRS’de birçok servis ve araçlar bulunmaktadır. MSRS ile oluşturulmuş uygulamalar bir web ağı üzerinden veya yerel ağ üzerinden çalışabilmektedir. Bu özellik, araştırmacılara web tabanlı robot uygulamaları yapmalarına imkân sağlamaktadır.

4.6.1 Runtime (İşlem / İşletim Takibi)

MSRS’deki işlem takibi (Runtime), Şekil 4.2’de görüldüğü gibi 3 alt dala ayrılır. Bunlar;

 Eş Zamanlı ve Koordineli İşlem Takibi (“Concurrency and Coordination Runtime (CCR)”)

 Merkezi Olmayan Yazılım Servisleri (“Decentralized Software Services (DSS)”)

 .NET Programlama Dili Tabanlı İşlem Takibi 2.0 (“The .NET Common Language Runtime 2.0 (CLR)”)

CCR, asenkron işlemlerden oluşan uygulamaları koordine etmeyi sağlayan mesaja yönelik bir modeldir. DSS, World Wide Web ile Web servisleri mimarisine kombine bir şekilde çalışan, servise yönelik bir modeldir. CLR ise her iki işlem takibi modelini de destekler, ayrıca .NET Framework imkanlarını sunar.

Şekil 4.2 MSRS işlem takibi (Runtime) servisleri

4.6.2 Eş Zamanlı ve Koordineli İşlem Takibi (CCR)

CCR, MSRS işlem takibini servise bağlayan bir arabulucudur. MSRS’de de tanıtıldığı gibi, asenkron işlemli uygulamalar yapabilmemizi sağlar. CCR, asenkron işlemlerde kullanılacak her türlü uygulamayı içeren bir .NET kütüphanesini de kullanıma sunmuş olur. Böylece programcıyı, her bir uygulama için farklı kod yazma zahmetinden kurtarır.

Robot uygulamalarında asenkron işlemlerin niçin bu kadar önem taşıdığı söylenecek olursa, eğer işlemler asenkron olmazsa, robotumuz birden çok, değişik işlemleri aynı anda yapamaz. Sadece bir tekerleğini ya da bir kolunu hareket ettirebilir. Yaptığı bir servise ait işi bitirmeden bir sonrakine geçemez, aynı anda birden fazla servisin işini yerine getiremez.

Robotlar, bulundukları ortamın şartlarını algılayabilecekleri birçok sensörle donatılmışlardır. Aynı zamanda, hareketlerini veya amaçlarını gerçekleştirebilmek için eyleyicileri bulunmaktadır. Bütün bu sensörler ve eyleyicileri, robotu çalıştıracak

İşlem Takibi (Runtime) Servisleri

Merkezi Olmayan Yazılım Servisleri (DSS)

Eş Zamanlı ve Koordineli İşlem Takibi (CCR)

olan asıl amaç ile koordineli ve uyumlu olmak zorundadır. İşte CCR, bunu yapabilmek için gereken birbirinden bağımsız işleri yönetir.

Burada kısa bir şekilde sensörlerin robotlarda ne işe yaradıklarını söyleyecek olursak. Robotlar bulundukları ortama ait bilgiyi alabilmek için sensörleri kullanırlar. Bu sensörler adeta robotunuzun gözü, kulağı, teni ve burnu gibidir. Robotunuz için kullanılabilecek düzinelerce çeşitlilikte sensör bulunmaktadır. Çoğu robotta en azından bir adet kontak sensörü bulunur. Bu sensör dokunmaya veya ışığa duyarlı bir modeldir. Ayrıca, robotta bir sıcaklık kayıt sensörü veya bulunduğu yerin tespiti için bir GPS alıcısı gibi kompleks sensörlerde bulunabilir.

CCR’ye geri dönersek, CCR olmasaydı programcılar servisleri koordine edebilmek için çeşitli geri bildirim metotları geliştirmek zorunda kalırlardı, asenkron işlemlerde oluşabilecek aksaklıkları engellemek için karmaşık kodlara gereksinim duyarlardı. Bu durum kesinlikle kullanışsız ve zahmetli olurdu. Burada ise programcı, asenkron işlemleri yönetirken birçok zahmetten kurtulmaktadır.

4.6.3 Merkezi Olmayan Yazılım Servisleri (DSS)

DSS (Decentralized Software Services), programcıların etkileşimli ortamda servisleri izleyebilmelerini sağlar. DSS, Temsili Durum Transfer (Representational State Transfer [REST]) protokolleri üzerine kuruludur. REST aynı zamanda World Wide Web (www) protokollerini de kapsamaktadır. Web ortamında her yeni bir sayfa için gereken bilgiler, istenmeyen ve en son kullanılan başvuru üzerinden gelir. Her yeni istek, bir öncekinden bağımsızdır. Ayrıca .NET Web programcıları değişken oturumlardaki gibi, birbirlerinden bağımsız olan istekler arasındaki bilginin depolanması için servis tabanlı depolar kullanabilirler.

REST, alışılagelmiş bir model değildir ama amaçlarını yerine getirebilmek için standartlar kullanır. REST kaynakların nasıl kullanılacağına ilişkin kurallar içerir ve istenilen bilgiler Web yoluyla iletilir. Bu ve bunun gibi basit kurallar, milyonlarca insanın, interneti her gün basit ve kolayca kullanabilmelerini sağlamaktadır.

Bir robotu uzaktan kumanda edebilmek için, MSRS oldukça karmaşık ve geliştirilmiş bir çözüme ihtiyaç duyar. REST prensiplerinin önemi işte burada ortaya

çıkıyor. Çünkü Web’deki karmaşık transfer işleri, bu prensipler sayesinde basite indirgenebiliyor. REST, oldukça geniş bir kullanım alanı olan HTTP iletişim protokolünü ve beraberinde XML dilini kullanmaktadır. Yapısal XML’e (Structured XML) kolayca dönüştürülebilir.

MSRS aynı zamanda esnek ve geliştirilmiş senaryolara uyum sağlayabilecek bir iletim protokolüne de ihtiyaç duymaktadır. Basit Obje Erişim Protokolü (Simple Object Access Protocol [SOAP]) bunun için en iyi seçimlerden biridir.

Sürekli adı geçen servisin ne olduğu hakkında kısa bir bilgi verecek olursak. Web ortamında ve yerel ağ üzerinde, Tek Biçimli Kaynak Belirleyici (Uniform Resource Identifier [URI]) ile kullanılabilir olan servis, MSRS robot uygulamalarının anahtar objesidir. Bir veya birden çok obje üzerindeki işlemleri çalıştıran, bir çeşit kod topluluğudur. Servisler, robot uygulamalarının temel taşları, bir inşaatın tuğlaları gibidir. Robottan gelen bilgileri alıp, bu bilgilere göre robota ne yapacağını öğreten bilgiler yollayan araçlardır.

MSRS ekibi, kurallarına Web servislerinin kurallarını dâhil etmişlerdir. Bu durum onlara yapısal veri manipülasyonlarında ve olay bildirilerinde esnek çözümler sunar. Web servisleriyle birlikte REST modelini kullanmakla MSRS, farklı makineler arası etkileşimi destekleyen, kaynağı açılabilir ve etkili bir platform sağlar. Her bir servisi diğerinden izole edebilmek ve işin normal gidişatından ayrık durumlar sağlayabilmek için bunu DSS ile kombine ettiğinizde ise, robot uygulamalarında kullanabileceğiniz çok etkili ve güçlü bir araç ortaya çıkmış olur.

Burada bir durumu bildirmek isterim. MSRS internet protokollerini sırf işlem takibini (Runtime) yürütmek amacıyla kullanır. Yoksa bu robot uygulamalarınızı illa ki internet veya yerel ağ üzerinde çalıştırmak zorunda olduğunuz anlamına gelmez. Yani, robot uygulamalarınızın tüm elemanları aynı makine üzerinde yer alabilir. Bir Web Dizayn uzmanı olmanıza veya web siteleri tasarımına başlamanıza gerek yoktur. Burada yalnızca DSS işlem takibinin temelinin bu protokollere dayandığını daha iyi anlayabilmek için verilmiştir.

4.6.4 Merkezi Olmayan Yazılım Servisleri Protokolü (DSSP)

MSRS, DSSP adlı, SOAP tabanlı protokolü önermektedir. MSRS için özel olarak tasarlanmış olan bu DSSP protokolü, HTTP üzerinden erişim sağlar ve mesaj tabanlı işlemlerde alternatif bir metot olarak önerilir. Örneğin MSRS üzerinde çalışan bir HTTP işlemi olan GET’i örnek alalım. Bu işlem, XML sütunundaki gibi, istenilen bilginin çağrılmasını sağlar. Bir servisin, başka bir servisten gelen veriyi elde tutması için, bu verinin SOAP mesajı gibi gönderilmesi gerekir. Bunu sağlayabilmek için MSRS, HTTP-GET işlemini destekler.

Servisleri kullanmanın öncelikli faydalarından biri, birlikte çalışarak ana görevi başarabilmeleridir. Bir servis, bilgiyi başka bir servise iletmek zorundadır. Bunun olabilmesi için, SOAP mesajındaki gibi, her servisin gelen mesajı makine dilinde onaylaması gereklidir.

DSSP, tüm HTTP tabanlı işlemler için, birbirine yakın, karşılaştırılabilir konumlar önerir. Örneğin GET, POST, PUT ve QUERY gibi. DSSP aynı zamanda MSRS’nin ihtiyaç duyduğu fonksiyonları destekleyen özel ek işlemler de sunmaktadır. Örneğin MSRS, üye servise iletilmiş olan olay bildirimlerini isteyen bir işleme ihtiyaç duymaktadır.

HTTP, ABONE (SUBSCRIBE) işlemini desteklemez ancak DSSP destekler. ABONE işlemi MSRS’de desteklenmek üzere özellikle eklenmiştir.

DSSP, HTTP’nin veya Web servislerinin yerini alacak değildir, bu sadece HTTP’nin bir uzantısı, ekidir ve Web servislerinin önerdiği avantajlar sunar.

4.6.5 İşlem Takibi (RunTime) Servisleri

DSS, işlem takibi servisleri diye bilinen altyapı servislerini teklif etmeye olanak sağlayan açılabilir bir taban sağlar. Bu servisler MSRS tarafından oluşturulan diğer servisleri yönetmek için kullanılır. Servisleri yöneten servisler kulağa şaşırtıcı geliyor olabilir ama aslında gerçekleşen de tam olarak budur. Örneğin, HTML tabanlı bir kullanıcı ara yüzünün Kontrol Paneli haline gelmesine olanak sağlayan işlem takibi servisleri vardır. Üzerinde çalıştığınız makinede çalışan tüm servisleri

listeleyen kontrol paneli diğer servislerin yerini tespit edip çalıştırmak için kullanılır. Kısacası her şeyi izleyebildiğimiz ve kontrol edebildiğimiz Web tabanlı bir ortam oluşturur.

Benzer Belgeler