NI Ürünleri İle İlgili Tartışmalar

cancel
Showing results for 
Search instead for 
Did you mean: 

Alt prosesli yazılım mimarisi

Solved!
Go to solution

Merhaba,

 

G# kullanıyor olmasaydınız bu verileri metne çevirip karşıya göndermeniz gerekirdi. Ancak G# nesnesine (referans ile) uygulamanın her yerinden erişebiliyor olmanız sebebiyle böyle bir zorunluluk ortadan kalkıyor. Yani oluşturduğunuz metotlar ile her yerden bu sınıflara erişebiliyorsunuz. Asıl sorun bundan çok ötede. AMC ile oluşturduğunuz iş parçacıklarını diğer iş parçacıklarından ne kadar izole edebiliyorsunuz? Yani ister G# nesnesi ister doğrudan olsun veriler iş parçacıklarınız arasında ne kadar bağımlılık oluşturuyor? Ayrıca bir yerde oluşan bir olay (event) başka noktada nasıl ele alınıyor. Bu kısımlara girildiğinde sihirli bir yöntem söylemek oldukça zor olacaktır. Bu noktadan sonrası mimari kurma gücünüze doğrudan bağlı. Fırsatınız varsa son yaptığım projede elde aldığım yöntemleri yüz yüze anlatabilirim. Siz de aklınızda başka çözümleriniz varsa söylersiniz, değerlendiririz.

 

Kolay gelsin.

 

Not: Şöyle bir ipucu vereyim. Ortak kullanılacak verileri bir alt işlemin parçası (bir arayüzün içeriği) vs. gibi ele alırsanız belli bir noktadan ileri gitmek zor olacaktır. Ortak verileriniz "paylaşımlı havuz" denebilecek bir veri bloku (shared data pool) içerisinde tutulmalıdır. Bu havuz görünürde en üst iş parçacığına bağlı gibi görünse de gerçekte hiç bir bağımlılığı yoktur. Oluşturduğunuz iş parçacıkları bu havuzdaki verilere erişip değiştirerek iş görmektedir. Dolayısıyla hiç bir iş parçacığı arasında doğrudan veri bağımlılığı oluşmaz. Ele almanız gereken bu havuzu nasıl kontrol edeceğiniz, veri değişimlerini diğer görevlere (alt işlemlere) nasıl dağıtacağınız. 

0 Kudos
Message 31 of 34
(884 Views)

Yani Create methodunu aynı isimle istediğimiz yerde kullandığımızda nesne verilerine erişebiliyoruz. Ve oluşturulma sırasıyla da Destroy etmemiz lazım sanırım. En uygun yol bu mudur? 

Aslında ana program ile alt programlar arasında bazı prosesler açısından açılıp kapanma dışında veri bağımlılığı yoktur. Bazılarında ise ana programda girilmiş verilerin alt proseslerde kullanmak üzere nesnesine ulaşması gerekiyor. Onun dışında iş yapacak alt proseslerde dinamik veri aktarımı olması gerekiyor. Yani bir prosesin çıktısı bir sonraki prosesin girişi olabilir gibi. Veri aktarımı yok ise paralel işleyiş olabilecek yada sadece arka plan prosesi olarak çalışabilecek şekilde alt prosesler tanımlanabilir. Bunu kullanıcı belirleyecektir ister veri aktarımı sağlayabilir isterse de sadece alt prosesin kendi bünyesindeki verileri kullanmasını isteyebilir. Genel manada işleyiş bu şekilde olacaktır. AMC prosesler arası mesajlarla haberleşerek mevcut durumları işliyor. G# sınıfları ise proseslerin yapacağı işleri oluşturuyor.

Bu konular hakkında görüşmeyi nasıl planlayabiliriz peki Zafer Bey?


Görkem SUNGUR
Mechatronics Engineer
0 Kudos
Message 32 of 34
(868 Views)

*Evet. Zaten "destroy" o nesne ile iş tamamen bittikten sonra yapılması gereken şey.

Anladığım kadarıyla temel ilkelere uygun bir alt yapı kurmuşsunuz. Bu şekilde çok sorun çıkmayacaktır. Ama mesele uygulamanın ne kadar esnetileceği. Daha da esnek hale gelmesini planladığınızda mümkün mertebe ne varsa soyutlamaya gitmek gerekiyor. Yani oluşturduğunuz sınıflara ait metotlar bile farklı sınıfları destekleyebilir. Bunun sınırı zaman/maliyet/iş gücüne bağlı.

 

Görüşme için İstanbul'a gelirseniz bu hafta boyu (planlanmamış bir iş çıkmaması durumunda) müsait olacağım. Baştan belirteyim; Hiç eğitim almadım. Tamamen kendi çabamla öğrenmeye çalışıyorum. Literatürü sürekli takip etmeye gayret ediyorum. Fikirlerim kişisel olabilir ve birçok şeyi siz daha iyi biliyor da olabilirsiniz. Görüşmemiz karşılıklı fikir alış verişini öteye geçmeyebilir. Yalnızca kendi tecrübelerimi paylaşacağım. Smiley Happy

0 Kudos
Message 33 of 34
(862 Views)

Estağfurullah Zafer Bey, bende sizin anlattığınız durumdayım. Bilgiler paylaşılarak ve karşılıklı görüş bildirerek en uygun doğru sonuca gider. Sizin tecrübelerinizi hitaben bizde size bir şeyler katabiliyorsak ne mutlu 🙂 O yüzden sizinle görüşmek tanışmak isterim. Fırsat bulamazsam telefon ile görüşme şansımız var mıdır?  Cevabınız için teşekkürler. Haklısınız. Her şey emek zaman ve maliyetten geçiyor. İmkan verildiği takdirde esnekliğin sınırı olmaz 🙂


Görkem SUNGUR
Mechatronics Engineer
0 Kudos
Message 34 of 34
(855 Views)