Picproje Elektronik Sitesi

BİLGİSAYAR => Donanım ve Yazılım => Konuyu başlatan: mir_as82 - 09 Haziran 2016, 23:26:36

Başlık: Register ettirmek tam olarak ne demek?
Gönderen: mir_as82 - 09 Haziran 2016, 23:26:36
Yazılımda bir modülün bir başka programa register olması ne manaya gelir? Örneğin bir cihaz yapıyoruz onu kontrol edecek başka bir program ile derleyip kullanıyoruz. Bu modülü register ettirme olayı tam olarak Nasıl oluyor? Önceden bilinen bir formatta ana program (modül yazılırken ana programın istediği gibi birşeyler yapıp mı register olur..)içinde bir struct gibi heap alanında yer alınması falan mı oluyor?
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 09 Haziran 2016, 23:45:04
Register etmek yazılımda evrensel bir kavram değil.  Sadece eski Microsoft COM yazılımlarında kullanılıyordu.

Sizin söz konusu kullanımı gördüğünüz yer nedir, ona göre izah edelim.

Verdiğiniz örnekte:

Derlenen programın bulunduğu disk adresi, sistemde önceden tanımlanmış bir yere yazılır (örneğin Windows'da bu yer Registry veritabanıdır).  Ana modül, bu veritabanına bakarak derlenen modülün diskteki yerini bulur, önce belleğe yükler, sonra çağırır (call sub).  Aynı oturum içinde daha sonraki çağrışlarda diskten belleğe yüklemek gerekmez (ana modül kapatılır ve tekrar açılırsa, derlenen modülün de tekrar belleğe alınması gerekecektir).

Eğer ana programı değiştirmek mümkün değilse, ana programın derlenen modülleri arayacağı yer zaten bellidir.  Bu durumda "register etmek", derlenen modülün adresini veritabanındaki o bilinen yere yazmak olacaktır.  Ana program çalıştığında veritabanına bakar, eğer bir modül adresi var ise, modülü çağırır.  Modül adresi yerine sıfır var ise, modül olmadığına karar verir. 

Siz register işlemini yaptıktan (yani modülün adresini veritabanına yazdıktan) sonra, modülü diskten silerseniz ve veritabanını da güncellemezseniz, ana modül çalışır, olmayan modülü çağırmak ister ve hata oluşur.

Öte yanda, eğer ana modülün kaynak kodu var ise, modül ve ana modül beraber derlenebilir ve adresler bu sırada programın içine doğrudan gömülür.  Bu durumda register etmeye ve veritabanı kullanmaya gerek kalmaz.  Yalnız bu durumda bile, sonradan register edebilme özelliği (yani veritabanı kullanımı), sisteme esneklik getirir. 
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 10 Haziran 2016, 00:52:12
Evet, bugün .NET örtüsünün altında herşey halen COM.  Eskiden doğrudan kullanmak gerekiyordu, neyse ki .NET sayesinde COM'un varlığından bile haberdar değiliz.  Programlaması çok zor bir arayüzü vardı.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: mufitsozen - 10 Haziran 2016, 01:02:41
program yazarken dikkat edilmesi gereken bazi "best practices" vardir (tavsiye edilen prensipler?). Bilhassa yazilim muhendisligi kurallari ile yazilim gelistirmeye calisilan profesyonel ortamlarda "monolithic" (yekpare) olarak değilde "modular" (moduler) programlar olarak yazilmalarina calisilir. (bunun sebepleri baska bir yazi konusu).

Bu konuda yazilim sistemini parcalarina ayirirken "loose coupling / high cohesion" prensibine uyulmasi gerekir. (gevsek baglanti / yuksek uyum).

Bu sekilde bir modul icinde birbiri ile alakali butun fonksiyonlar toparlanir ve moduller arasindaki baglanti ise dagitik bir sekilde "run time"  (program kosarken?) sirasinda yapilir.

Modullerin register edilmesi bunlarin icindeki fonksiyonlar, onlarin lietisim yapisi ve fiziksel olarak bulunduklari yerlerin vb dinamik olarak yapilmasini saglar.

Genellikle boyle bir sistemde bir katalog icinde su islemler yapilir:


genellikle com yada prism yada ... bir framework kullanilarak event, service, resource etc (olay, servis,kaynak, vs)larin moduller arasinda iletisimi saglanir.

diye yazdim ama bu teknik terim ve ingilizcedeki bazi kelimelerin turkcedeki karsiliklarindaki anlam eksikligi/farkliligindan yazdiklarimdan ben bile cok birsey anlayamadim maalesef  :(
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: mir_as82 - 10 Haziran 2016, 07:56:58
Hocam bu konu ile ilgili temel düzeyse bilgi verebilecek bir kaynak verebilir misiniz?
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 10 Haziran 2016, 12:55:26
@mufitsozen:

Verdiğiniz bilgiler güzel fakat konu için ne kadar faydalı, tartışılır.  Benim sorudan anladığım, pratiğe dönük bir yardım isteyişi.  Cevabınız ise 10 bin fit yükseklikteki görüntüyü veriyor.

> Genellikle boyle bir sistemde bir katalog icinde su islemler yapilir:

Bahsedilen bu "katalog" nedir?  Soruyu soran kişi bu bilgiyi alıp, aklında bir cevap oluşturma doğrultusunda kullanabilecek mi?  Bence hayır.  Ben cevabımda bu "katalog" için "veritabanı" ifadesini kullandım ve gerçek hayattan örnek olarak da Windows'daki Registry sistemini gösterdim.  Verdiğim örnekten sonra "katalog" ifadeniz, artı olarak ne katıyor?  Verdiğim örnek iyi değildi de, katalog ifadesi daha mı iyi anlatıyor?

Teşekkürler.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: mufitsozen - 10 Haziran 2016, 14:40:48
Alıntı yapılan: mir_as82 - 10 Haziran 2016, 07:56:58
Hocam bu konu ile ilgili temel düzeyse bilgi verebilecek bir kaynak verebilir misiniz?

https://www.amazon.com/Building-Asterisk-GUI-Proven-Method/dp/1530169348/ref=sr_1_sc_1?s=books&ie=UTF8&qid=1465551601&sr=1-1-spell&keywords=asteriks+gui (https://www.amazon.com/Building-Asterisk-GUI-Proven-Method/dp/1530169348/ref=sr_1_sc_1?s=books&ie=UTF8&qid=1465551601&sr=1-1-spell&keywords=asteriks+gui)

Burada istedigniz islemlere ait orneklerin Asterisk ile kullanimi anlatiliyor. ebook olarak bulabilirsiniz.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: ACM - 10 Haziran 2016, 16:19:25
Siz feneri hedefe tutmuşsunuz , Müfit hoca ise yola.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: mufitsozen - 10 Haziran 2016, 17:41:02
Fakat ben Asteriks ile olan ornekleri ne yapayim ben mir_as82teriks diye bir sistem yapacagim onunla nasil bu register etme filan kullanacagim dersen COM kullanabilecegin gibi daha farkli sistemlerede bakabilirsin: Ornegin D-BUS, CORBA, .NET'deki System.ComponentModel namespace vb onlarca secenegin var.

Ama benden daha bilgili birilerininde daha once soyledigi gibi bu gibi seceneklerin herbiri sana 10bin metreden bir bakis acisi verir, bilahere bunlardan birini secersen (ornegin CORBA Airline reservasyon, , e-commerce back-end, telco transaction ve finans sistemlerinde cok yogun kullanilmaktadir), Kendi "component based sw muhendisligi sistemini kurabilirsin. Wikipediadan copy/paste yaptigim su liste kendine ozel sistemini gelistirmek icin fikir verebilir. Tabiiki Microsoft, Google, Amazon filan gibi kendi Components-based development modelinide yapmakta hursun.

Konuyu hakkinda benden daha derin ve uygulamaya donuk bilgisi olan arkadaslara dogrudan sorarak bu sistemler hakkinda bilgi sahibi olabilirsin. Sonucta ben emekli bir muhendis olarak ancak 10bin metreden bakabiliyorum sonra uykum geliyor ve ilgim dagiliyor, hevesim kaciyor  :(


Component-based software technologies

    Freedesktop.org D-Bus — current open cross-language cross-platform object model
    GNOME Bonobo — deprecated GNOME cross-language object model
    KDE DCOP — deprecated KDE interprocess and software componentry communication system
    KDE KParts — KDE component framework
    Component Object Model (COM) — Microsoft Windows-only cross-language object model
    DCOM (Distributed COM) — extension making COM able to work in networks
    Common Language Infrastructure — Current .NET cross-language cross-platform object model
    XPCOM (Cross Platform Component Object Model) — developed by Mozilla for applications based on it (e.g. Mozilla Application Suite, SeaMonkey 1.x)
    IBM System Object Model SOM and DSOM — component systems from IBM used in OS/2 and AIX
    Internet Communications Engine (ICE)
    Java remote method invocation (Java RMI)
    Java Platform, Enterprise Edition (Java EE)
    JavaBean
    OpenAIR
    Remote procedure call (RPC)
    Windows Communication Foundation (WCF)


   

mesaj birleştirme:: 10 Haziran 2016, 17:43:10

Alıntı yapılan: A.C.M - 10 Haziran 2016, 16:19:25
Siz feneri hedefe tutmuşsunuz , Müfit hoca ise yola.

Aslinda mir_as82 OM'dan Asteriks ile bu tip islemleri nasil yaparim diye sormustu, onun icin ornek Asteriks. :)
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 10 Haziran 2016, 18:24:13
Yanıltıcı bir bilgilendirme yapıyorsunuz.  CORBA, nereden bakılırsa bakılsın, ölü bir teknolojidir.  Dağınık sistemlerde iletişim artık ReST API protokolü ile yapılmaktadır.  (Daha evvelinde de web services ile yapılıyordu.)

Kaldı CORBA'nın, bu forumun esas odağı olan gömülü sistemlerle zaten hiçbir zaman alakası olmamıştır.

Fazla kullanılmayan bir VOIP uygulaması olan Asterisk sisteminin konuya nasıl dahil edildiğini ise hiç anlamadım.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 10 Haziran 2016, 20:10:30
> yukarda COM da da oldu aynısı

COM için "eski" dedim, kullanılmıyor demedim.  Karburatör teknolojisi de halen kullanılıyor ama yeni çıkan araçlarda bulamazsınız, ya da yeni tasarımlarda "karbüratör kullanalım" demezsiniz.  CORBA için de aynı şey geçerli.  Tatsız, aşırı karmaşık, ve kullanımı zor bir sistem.  Sizin kullanmak zorunda kalıyor olmanız, onu kullanılması gereken bir sistem yapmaz.  Halen tüp televizyon ve VCR tamiri yapanlar da var, onlara da saygı duyuyorum, ama bu durum o kişilerin kariyerleri ile ilgilidir.

TAO'nun sponsor listesine baktım.  Maalesef listenin tarihi geçmiş.  Örnek olarak, listedeki üçüncü şirket Motorola Iridium, 90'lı yılların sonunda iflas eden uydu sistemi!  Gördüğüm kadarı ile listedeki diğer şirketler de öyle.

Söz konusu teknolojiler, github'da bulabileceğiniz, yeni sistemler için kullanımı önerilen teknolojiler olmaktan çok uzak olan legacy/miras teknolojiler.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 10 Haziran 2016, 20:46:59
Bir bilgi işlem sistemi ile bir araç arasındaki benzerlikler temelinde bir benzetme yapmıyordum.  Karbüratörü, artık kullanılmayan teknoloji örneği olarak gösterdim. 

En belirgin örneği Web olan heterojen dağıtık ortamlarda, daha önce de söylediğim üzere HTTP tabanlı protokoller kullanılıyor.  Bunların güvenliği de SSH üzerinden sağlanıyor.  En sağlam çözümün CORBA olduğu kanaatine varmanızın nedeni, tahminim o ki söz konusu sisteme olan duygusal ya da diğer bağlarınız ve o sisteme yapmış olduğunuz kişisel yatırım. 

Web üzerindeki iki sistemin CORBA üzerinden konuşmasını düşünemiyorum!  Bugün halen aktif olan Microsoft teknolojisi WCF bile "fazla ağır" bir çözüm olarak görülüyor.

CORBA deneyimi olan bir kişi, CORBA kullanmak zorunda olan kurumlar tarafından revaçta olabilir, ama bu sadece o kurumlar için geçerlidir.  CORBA kullanılmayan kurumlarda, CORBA deneyiminin prim yapacağını zannetmiyorum.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 12 Haziran 2016, 18:46:57
> çünkü eski ama eskimemiş teknoloji.. piston-motor teknolojisi gibi..

Benzetmeye katılmıyorum.  Elektrikli arabaların çıkmasına rağmen, piston-motor teknolojisi henüz ölmedi.  CORBA ise öldü.  Evet, halen kullanan olabilir, bu birşeyi değiştirmez.

> yazdığım örnekleri bir inceleyin net den biraz araştırın göreceksiniz zaten..

Abesle iştigal.  Bitmiş bir teknolojiyi niye araştırayım?

> C++ ile ciddi CORBA projesinde çalışmış düzgün development yapabilen bir adamı her işte kullanabilirsiniz.

Evet buna katılıyorum.  Fakat benim söylediğim, "CORBA deneyimi şarttır" diye bir ilana kolay kolay rastlanmayacağıdır.

Kendi adıma konuyu kapatıyorum, çünkü bir yere varamayacağız.  Hem fikrinizde sabitsiniz, hem de şu andaki yaygın teknolojileri bile (web, C#, ReST) küçümser tavır sergiliyorsunuz.  Açıkcası hangi konuya cevap vereceğimi şaşırdım.  Verdiğiniz örnekler savunma sanayiinden; o kesimin farklı isterleri bulunuyor.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: DEno_12 - 12 Haziran 2016, 23:11:11
Konu güzel oldu, sayenizde kendi adıma daha önce hiç duymadığım teknolojilerden haberim oldu. Aslında CORBA ile basit bir hello world tutorial ı hiç fena olmazdı @gerbay hocam. .NET ve java ya oldum olası ısınamadım. c++ QT ile tamam işte böyle olmalı dedim linux üzerinde geliştirme yaparken. Herhalde CORBA ile alt seviyeyle bağlılık hazzı biraz daha katlanıyor anladığım kadarıyla.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 12 Haziran 2016, 23:24:37
> Aslında CORBA ile basit bir hello world tutorial ı

"CORBA" ve "basit" kelimelerinin aynı cümlede geçmesi olanaksız! :)  Böyle bir şey mümkün değil.  Mimarisi karmaşıklık üzerine kurulmuş.  O yüzden tutulmadı.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: Yuunus - 13 Haziran 2016, 02:03:03
Iftara da CORBA guzel olur ;)
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: DEno_12 - 13 Haziran 2016, 09:57:15
Alıntı yapılan: olemiss - 12 Haziran 2016, 23:24:37
> Aslında CORBA ile basit bir hello world tutorial ı

"CORBA" ve "basit" kelimelerinin aynı cümlede geçmesi olanaksız! :)  Böyle bir şey mümkün değil.  Mimarisi karmaşıklık üzerine kurulmuş.  O yüzden tutulmadı.

@gerbay hocam bize öğretsin de basit ya da karmaşıklığına biz karar verelim.
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: olemiss - 13 Haziran 2016, 13:57:53
"Hello world for CORBA" araması için ilk çıkan sonuçlardan biri: http://www.ejbtutorial.com/programming/tutorial-for-corba-hello-world-using-java (http://www.ejbtutorial.com/programming/tutorial-for-corba-hello-world-using-java)

Sunucu kısmı 12 adım, istemci kısmı 7 adımdan oluşuyor.  Çok basit! :)
Başlık: Ynt: Register ettirmek tam olarak ne demek?
Gönderen: mufitsozen - 13 Haziran 2016, 14:50:36
Alıntı yapılan: olemiss - 13 Haziran 2016, 13:57:53
"Hello world for CORBA" araması için ilk çıkan sonuçlardan biri: http://www.ejbtutorial.com/programming/tutorial-for-corba-hello-world-using-java (http://www.ejbtutorial.com/programming/tutorial-for-corba-hello-world-using-java)

Sunucu kısmı 12 adım, istemci kısmı 7 adımdan oluşuyor.  Çok basit! :)

Sayin @olemis tamam abi, ben pes ediyorum abi, sen haklisin abi. Vurma abi!

CORBA tuuu, kaka abi, bir daha kullanirsam essek olayim abi.

ekmek mushaf çarpsın ki bir daha CORBA demem abi. vurma abi ben kalp hastasiyim, colugum cocugum var abi.

Bak suraya yaziyorum CORBA yazarsam elime, CORBA dersem agzima aci biber sureyim!

Hanm iftara ne yemek istersin dedi. mercimek corbasi diyemedim abi, Hani mercimekden olur icinde o olur bu olur bir saat anlattim.

Hanim mercibek corbasi desene bir saattir hamamdaki karilar gibi gevezelik ediyorsun dedi. CORBA dememek icin, hanim ben yasli adamim adi aklima gelmedi dedim ozur dilerim dedim, o kadar yani abi!

Bu basligi izleyen arkadaslar 60 yasina geldim, ben artik birsey ogrenmem demeyin, yoksa benim durumuma dusersiniz.

sizede bir kere daha cok tesekkurler abi, Allah ne muradiniz varsa versin abi. bu vesile ile yalan yanlis konusup genc arkadaslari kotu yonlendirmemis olurum abi.