You are on page 1of 20

SELDA CAN

m
20122029

İÇERİK

o
BİLEŞEN MODELİNE GİRİŞ…………………………………………………………..2

1.BİLEŞEN NESNE MODELİ(COM) NEDİR?................................................................3

i.c
GENEL TANIMI………………………………………………………………..3

ÖZELLİKLERİ………………………………………………………………….3

2.DAĞITIK BİLEŞEN MODELİ(DCOM) NEDİR?..........................................................9

ÖZELLİKLERİ

dil
NESNE MODELİ………………………………………………………9

İLETİŞİM………………………………………………………………10

GÖREVLER……………………………………………………………11

HATAYA DAYANIKLILIK…………………………………………..12
va
İNTERNETTE DCOM…………………………………………………………..12

ÖZEL AĞLARDA DCOM………………………………………………………12

3.GÜVENLİK……………………………………………………………………………..13
ja

AYARLAMA İLE GÜVENLİK…………………………………………………13

PROGRAMLAMA İLE GÜVENLİK……………………………………………13

4.BAĞLANTI YÖNETİMİ………………………………………………………………..13
w.

5.UYGULAMA ÖRNEKLERİ…………………………………………………………….14
ww

1
o m
DCOM(Distributed Component Object Model)

i.c
BİLEŞEN MODELİNE GİRİŞ

Yazılım dünyasının gelişimine paralel olarak ihtiyaca cevap verecek yeni teknoloji arayışları da
hızlanmıştır. Uygulama geliştiriciler tarafından uzun süre, var olan problemleri çözen ve ihtiyaca cevap verecek
nitelikte bir yapı olan Nesneye Yönelik programlama yaklaşımı kullanılmıştır.Fakat Nesneye Yönelik
programlama yaklaşımı ile oluşturulan nesnelerin,mimari sınırları ve ağ yapılarını aşan ,aynı ve çapraz adres
evrenlerinde etkileşimi sağlayan standart bir alt yapıya sahip olmayışları, bu yaklaşımın değerini yitirmeye
başlamasına sebep olmuştur.

dil
Oluşturulan bu nesneler arasında etkileşimin olmayışı insanları yeni teknoloji arayışlarına itmiştir.Bu
arayışın sonucunda nesneler arası etkileşimi sağlayan,uygulama geliştiricilere oluşturulan paket bileşenlerin
tekrar ve her ortamda kullanılması olanağı veren COM(Component Object Model) teknolojisi ortaya çıkmıştır.

COM teknolojisiyle uygulama geliştiriciler kendi fonksiyonlarını yazılım bileşenleriyle bütünleştirerek


kullanabilmişlerdir.Bu durum sonucunda yazılımı oluşturacak bileşenler hazır paketler halinde alınarak yazılım
geliştirilmeye başlanmıştır.Böylelikle uygulama geliştiriciler,uygulama bileşenlerini kendileri oluşturmadan
va
hazır halde aldıkları ve her uygulamada sorunsuz kullanabildikleri için geliştirme zamanından da kazanç
sağlamış oldular.

Yeni ihtiyaçlar doğdukça farklı teknoloji arayışları da sürmüştür.COM ilk ortaya çıktığında aynı makine
üzerinde çalışan uygulamalar arasında etkileşim sağlanabiliyordu.Dolayısıyla,COM teknolojisi de bu ihtiyaç
çerçevesinde geliştirilmiş bir teknoloji olmuştur.Günümüz bilgisayarlar arası etkileşimler düşünüldüğünde
uygulamaların kullanımının sadece aynı makine üzerinde kalamayacağı açık olarak görülmektedir.
ja

Uygulamaların birbirleriyle etkileşimi için aynı makine üzerinde çalışıyor olmaları kısıtını ortadan kaldırmak
amacıyla yeni çalışmalar yapılmış ve 1991 yılında IBM,Sun Microsystem gibi bazı şirketlerin de desteklediği
Omg(The Object Management Group) tarafından CORBA(Common Object Request Broker Architecture)
mimarisi geliştirilmiştir.Geliştirilen diğer bir mimari ise Microsoft’un geliştirdiği DCOM(Distributed
Component Object Model) olmuştur.Bu mimari, COM teknolojisinin gelişmişi olarak ağ üzerinde değişik
makinelerdeki nesneler arası iletişim kurmayı hedefleyen bir mimari olarak geliştirilmiştir.
w.
ww

2
1.BİLEŞEN NESNE MODELİ(COM) nedir?

m
Genel Tanımı

COM teknolojisi Microsoft tarafından piyasaya sunulmuş tümleşik bileşen tabanlı bir yapıdır.Bu
tümleşik bileşen tabanlı yapı bileşenlerin birbirleriyle etkileşimini ve bilgi akışını sağlayan bir alt yapı öngörür
ve bu alt yapı sayesinde uygulama geliştiriciler ,oluşturulmuş nesneleri yeniden kullanabilirler.Yeniden

o
kullanabilirlik, uygulama geliştiricilere sistem oluşturmada kolaylık sağlayan ve,bu şekilde oluşturulmuş farklı
kuruluşların sistem bileşenlerinin standart bir yapıyı kullanarak birbirleriyle iletişim kurmasına olanak veren
önemli bir özelliktir.Temel olarak aynı yapıya sahip COM teknolojisini kullanabilen nesnelerin, bu yapıya uygun
özelliklerinin fazla esnek olmaması, sistem bakımını ve nesnelerin farklı COM yapısını kullanan ortamlara uyum

i.c
sağlamasını kolaylaştırır.

COM teknolojisi,uygulama geliştiricilere standart bir uygulama geliştirme arayüzü tanımlamıştır.Bu


arayüzle uygulama geliştiricilerin COM yapısını kullanabilen nesneler yaratması ve bu nesneleri özel
uygulamalarda kullanarak değişik uygulamalardaki nesnelerle etkileşim sağlayabilmesine olanak vermek
hedeflenmiştir.Bunun için önemli olan nesnelerin Microsoft’un tanımladığı ikili yapıya uygun
olmasıdır.Yanı;nesneler bu ikili yapı bozulmadan özelleşebilir ve değişebilirler.

dil
COM teknolojisi bu yaklaşımla programlamaya evrensellik sağlamıştır.Böylelikle programlama
anlayışında da değişim yaşanmıştır.

Özellikleri

COM genel olarak karmaşık uygulamaların farklı ortamlardaki uygulamalarla etkileşim sorununu
çözmek için yeni bir anlayış ortaya çıkarmıştır.
va
COM nesne tabanlı programlama dili olarak tasarlanmış,oluşturulan nesnelere farklı özellikler
kazandırılarak yazılımlarım birbirleriyle etkileşmesi sağlanmıştır.Böylelikle,geliştirilen firmadan ve
programlama dilinden ve çalıştığı işletim sisteminden bağımsız bir şekilde bir çok bileşenin (ve de uygulamanın)
Birbirleriyle iletişim kurmasını ve birlikte çalışmasını sağlayan bir mimari oluşturulmuştur.

COM,bilindik yapıdaki sunucu modeline göre istemciler bazı işlemler yapma olanağı sunar.COM’dan
hizmet alacak şekilde tasarlanmış bir istemci birçok servis sağlayıcıya da değişik şekillerde bağlantı kurabilir.Bu
bağlantı da önemli bir fark bağlantı kurulduğu an yazılım ile nesneler arası bağlantının da kurulabilmesidir.Daha
ja

açık bir ifadeyle COM,istemci yazılım ile sunucu nesneler arasındaki bağlantıyı herhangi bir arayüzün zorunlu
kıldığı kodların işletim yükü olmadan ,dolaylı yoldan bir aracıya ihtiyaç duymadan,kurabilmektedir.

Bir istemci sunucudaki COM nesneleriyle 3 farklı şekilde bağlantı kurabilirler.

1.In-process server:İstemci sunucuyu içeren kütüphaneye doğrudan bağlanabilir.İstemci ve sunucu aynı


w.

görev içinde çalışabilirler.İletişim, fonksiyon çağrılarıyla gerçekleşir.

2.Local Object Proxy:İstemci aynı makinede farklı bir görevde çalışan sunucuya inter-process iletişim
mekanizmasıyla erişebilir.Bu mekanizmaya tüy-sıklet Uzaktan Yöntem ÇağrmaRPC) denir.

3.Remote Object Proxy:İstemci başka bir makinede çalışan uzak sunucuya erişebilir.İstemci ve sunucu
arasındaki bu ağ iletişimi DCE RPC sayesinde olur.Uzak sunuculara erişimi destekleyen bu mekanizma
ww

DCOM’dur.

3
o m
i.c
Şekil 1:COM NESNELERİNE ERİŞİM METODLARI
dil
va
Eğer sunucu ve istemci, aynı görevde ise, ikisinin arasında verinin paylaşımı basittir.Bununla birlikte,
sunucu görev, yerel bir sunucu veya uzak bir sunucu olarak istemciden ayrıldığı zaman , COM veriyi
paylaşmak için biçimlemeli ve yığmalıdır. Veriyi bu şekilde hazırlamak sıraya dizmek,düzenlemek(marshalling)
anlamına gelir. Sıraya dizmek, arayüz detaylarını belirlemek için Proxy ve stub nesnelerinin karşılıklı iletişimi
ja

üzerinden gerçekleşir. (Şekil 2 de gösterilmiştir) COM, nesnenin server görevinde "Stub" ı yaratır, ve stub,
arayüz göstergesini yönetir.Ardından COM, istemci görevinde "Proxy" nesnesini yaratır ve onu stub nesnesine
bağlar.Ve sonrasında proxy nesnesi istemciye arayüz göstergesini sağlar.

İstemci, sunucu nesnesine geçen parametreleri sıraya dizen proxy nesnesinden, sunucunun arayüzlerini
çağırır. Stub, parametreleri düzensizleştirir ve sunucu nesnesinin içinde asıl çağrıyı yapar. Çağrının tamamladığı
w.

zaman, Stub, dönen değerleri sıraya dizer ve onları istemciden dönen değerlerin olduğu Proxy nesnesine
gönderir.Aynı Proxy/Stub mekanizması, istemci ve sunucunun farklı makinelerde olduğu zaman kullanılır.

Sıraya dizme ve dizmeme işleminin geliştirilmesi istemci ve sunucu görevlerin aynı makinede(COM)
olması ve olmamasına(DCOM) göre farklılık gösterir
ww

4
o m
i.c
dil
Şekil 2:COM’DA KARŞILIKLI GÖREVLERİN İLETİŞİMİ

COM teknolojisinin uygulama geliştirmeyi kolaylaştıracağı muhakkaktır ama bunun için mutlaka
va
gerçekleştirilmesi gereken bazı karmaşık yapılarda gereksinimleri vardır.Bunun yanında genişleyebilir,hazır bir
teknoloji sunma amacı ile uygulama geliştirme ortamlarında rahatça kullanılabilme,programlama dili
özelliklerini geliştirerek dilin bütünlüğünü sağlama gibi özelliklerle ortaya çıkmıştır.

COM’dan önce ortaya çıkan Nesne Modellerinin büyük bir sorunu olan deployment(geliştirilen
uygulamaların hizmet verecek şekilde çalışabileceği ortamlara yüklenmesi) COM ile güçlü bir özellik olarak
ortaya çıkmıştır. Önceki modellerde, teknolojik değişimler var olan nesnelere uygulanmak istendiğinde
uygulama yüklenen ortamlarda sorunlarla karşılaşılıyordu.Bu nedenle var olan nesnelerin tekrar yaratılma
ja

zorunluluğu ortaya çıkıyordu.Bu düşünceyi aşmak için, COM’da nesnelerin ya da servislerin eski sistemlere
uygunluğu sağlanmıştır. Böylelikle yapılan değişimler istemciyi etkilememekte,yaratılan nesnelerin ve var olan
sistemlerin gelişmelere paralel olarak yeni bir bağlantı kurabilme özelliğini kazanabilmeleri için alt yapıyı
etkileyeceği varsayılmıştır.Yükleme probleminin yarattığı sorunları aşmak için COM teknolojisi bazı özellikler
belirlemiştir:
w.

● Bileşen Nesne’lerini oluşturma ve bunların yeniden kullanabilirliğini sağlama

● İkili bir alt yapıyla etkileşimi sağlama

● Etkili bir nesne modeli yaklaşımı kullanma


ww

● Dağılım yetenekleri gösterebilme

5
1.YENİDEN KULLANILABİLİRLİK

m
Nesneler, yazılımın bir parçası , özellikleriyle ve bu özellikler kümesi üzerinde yapılabilecek işlemler
ile tanımlanır.Nesneleri baz alarak program geliştirme olan Nesneye Yönelik programlama yaklaşımının en
önemli özelliklerinden bir tanesi de Kapsülleme (Encapsulation)’dir.Kapsülleme, nesnelerin fonksiyonlarının
gerçekleştirimlerinin,sahip oldukları verilerin yapı ve biçimlerine ait bilgilerin saklanması kapsüller içinde
anlamına gelmektedir. Ve bu bilgiler nesneye istek gönderen istemciden gizli tutulmaktadır. Çünkü istemciler
sadece nesnelerin davranışlarıyla ilgilenir ve davranış biçimlerine göre istek gönderirler. Dolayısıyla isteklerin

o
nasıl gerçekleştirildiği ve nesnenin iç yapısı ile ilgili bilgiler istemcileri ilgilendirmez.

COM teknolojisinde de oluşturulan nesne kapsülleri, bu nesnelerin ihtiyaç duyulduğunda yeniden


yaratılma yükü olmaksızın kullanılabilmeleri için ,biçimsel bir yapıda kullanıcılara sunulmuşlardır.. Biçimsel

i.c
yapıdaki nesne ile bu nesnenin istemcileri arasındaki iletişim anlayışına belli bir standart getirilerek, COM türü
nesnelerin yeniden kullanılabilir olması sağlanmıştır.

Yeniden Kullanılabilirlik özelliğiyle,istemci nesneleri istekte bulunulan sunucu nesnenin, özelliklerini


dolaysız kullanabilir.Bu yapıda iki farklı yaklaşım vardır:

Kapsama(Containment) yaklaşımına göre, bir istemcinin bir nesneye ulaşması ve onun özelliklerine sahip
olabilmesi için, öncelikli olarak arayüz kapsamındaki işlevsel olmayan bir dış nesneye ulaşması gerekir. Bir

dil
istemci ancak bu dış nesnenin kullanımı ile dolaylı olarak içerideki işlevsel yapıdaki nesnelerle iletişim kurabilir.
va
Şekil 3:İstemci COM nesnelerine arayüz kapsamındaki bir dış nesneyle erişebilir.

Bütünleşme(Aggregation) yaklaşımında ise bir istemci bir nesne ile bütünleşerek yani tamamen nesnenin iç
yapısına bağlantı kurarak etkileşimini gerçekleştirir. Ancak bağlantı kurulma işlemi, dıştaki nesnelerin,
ja

istemcinin hizmet almasını onaylayıp gerekli koşulları sağlamasıyla başlar.

2.İKİLİ(BINARY) YAPI STANDARDI


w.

Bileşen Nesne Modeli, nesnelerin yaratılması ve istemci-nesne arasındaki bağlantıyı standart


mekanizmalar şeklinde tanımlamıştır. Bu mekanizmalar, bilinen Nesneye Yönelik programlama ortamından
farklı olarak uygulamalardan ve bu uygulamaların oluşturulduğu dilden bağımsızdır.

Bileşen Nesne Modeli’nin işletim sisteminden,donanım ortamından,uygulama dilinden bağımsız olması


İkili Yapı Standardı ile sağlanmıştır.Ağ ortamında da kullanılan bu yapı mimariden bağımsız bir iletişim ve
protokol yapısı ile farklı ortamlarda oluşturulan nesnelerin birbirleriyle etkileşimini sağlamaktadır.Bu yapı
ww

kullanıldığı sürece, nesneler birbirlerinin gerçekleştirimine bakmadan sadece nasıl bağlantı kurulacağı ve verinin
nasıl aktarılacağını bilerek birbirleriyle etkileşim içinde olabilirler.

. Bu yapıyı kullanan metotlardan oluşan arayüz (yazılım bileşenlerinin anlaşmalarını sağlayan işlemler
kümesi ) COM içeriğinde tanımlanarak yazılımlara sağlanmıştır.Her arayüz yazılımlar için ortak özelliklere
sahip bir bağlantı noktası konumundadır.Uygulama geliştiriciler bu bağlantı yapılarını özelleştirerek kendi nesne
yapılarını oluştururlar.

6
Arayüz kullanımının sağladığı yararlar

m
• Zaman içerisinde uygulamaların geliştirilebilmesini sağlayan fonksiyonellik
• Aynı oluşum içerisindeki nesnelerin, çok hızlı ve basit bir şekilde etkileşebilmeleri
• Konum bağımsızlığı
• Programlama Dilinden bağımsızlık

olarak sıralanabilir.

o
İkili Yapı yerine başka bir standart düşünülseydi, uygulama geliştiricilerin her ortama uygun veri akışını
düzenleyecek protokol yapılarını tanımlamaları gerekecekti.Günümüzde var olan sistemlerin sayısı göz önüne
alınırsa, her sistemin gereksinimine uygun çok fazla metot kullanarak nesneler arası bağlantı kurmak

i.c
gerekecekti.Yazılan kodlar arasından seçim yaparak sistemin protokolüne uygun kodun bulunup çalıştırılması
sistemin hızını azaltacaktır.Tüm bunlar düşünüldüğünde bilgisayar mimarisinin alt yapısı olan ikili yapı
kullanılması en uygun olanıdır.

3.ETKİLİ NESNE MODELİ YAKLAŞIMI

COM Nesne Modeli ;






dil
Arayüz ve nesne sınıfının tanımını belirten, evrensel ve biricik kimlikler kullanır,
Var olan programlama dilleri ile sorun oluşturmayacak yeniden kullanılabilen metotlar sağlar,
Yazılım bileşenlerinin çeşitli şekillerde etkileşimini sağlayacak tek bir programlama modeli sunar,
Nesnelerin yaşam döngülerini, referans kullanarak kontrol eder,
Nesne düzeyinde esnek bir güvenlik yapısı sağlar..
va
Çok geniş alanda kullanım gösteren Nesne sistemleri çok fazla sayıda bileşen ve arayüz kullanımına
neden olur.Sistemlerin bu arayüz ve bileşenleri insanların verdiği isimlerle tanımaya çalışması büyük sistemlerde
karışıklığa sebep olur.Çünkü verilen bu isimler çakışmaya neden olabilir.Bu sorun COM teknolojisinde evrensel
biricik kimlik numaraları kullanımıyla aşılmıştır.128-bit’lik tamsayı değerleri karmaşık sistemlerde bile arayüz
ve bileşenleri ayırt etmek için yeterlidir.Bu şekilde oluşacak bağlantı hatalarının önüne geçilmiştir.
ja

Arayüzlere kaynak kod üretimi sırasında verilen isimler “I” (Interface) karakteriyle başlamak
zorunluluğu getirilmiş,böylelikle her arayüz çalışma zamanında kendini bu biricik kimliklerle referans ettirir. Bu
biricik kimlikler,bir arayüzün istemcisinin bu arayüzü destekleyip desteklemediğini sorgulamada kullanılır.
Çünkü; bir istemci bir nesneye ulaşmak için o nesnenin içinde bulunduğu arayüzün göstergelerini kullanır.
w.
ww

7
Bir istemcinin arayüz göstergeleriyle bir nesnenin göstergesini elde etmek için çeşitli yöntemler vardır:

m
• COM kütüphane uygulama programlama arayüz fonksiyonlarından biri çağrılarak, türü önceden tanımlı
bir nesne oluşturulması ve bu fonksiyonun bu arayüze bir gösterge ile oluşan bu nesnenin bir
göstergesini sonuç olarak döndürmesi
• COM kütüphane uygulama programlama arayüz fonksiyonlarından biri çağrılarak, parametre olarak
gönderilen sınıf kimliğine bağlı olarak bir nesne yaratılması ve istek gönderilen arayüze bir göstergeyi
sonuç olarak döndürmesi

o
• İstemcisi olduğu arayüzün bir fonksiyonun çağrılarak, istenilen nesnenin yaratılması veya daha önceden
yaratılmış ve kullanılan nesneye bağlantı kurularak, bu nesnenin bulunduğu arayüzün bir göstergesini
sonuç olarak döndürmesi
• İstemcinin asıl gerçekleştirici olarak görülmesiyle, arayüz göstergelerini parametre olarak kullanıp
nesnelerin gerçekleştirimini sağlaması

i.c
COM’da nesneler arası bağlantılar efendi-köle ilişkisi şeklinde kurulmaktadır.Köle nesne,Efendi nesne
ile bağlantı kurduğunda sadece kendine ait özelliklerin göstergelerini getirir,diğer özellikler Efendi nesnenin
sahip olduğu özelliklerle kalıtım yoluyla bağdaştırılır.Köle nesne bağlantı kurulduğu an efendi nesnenin
yapabildiği her şeyi yapabilir.Bu durumda da kapsüllemedeki gibi Efendi nesnenin gerçekleştirimi ile ilgili

dil
bilgilere köle nesne erişemez.Burada kalıtım hiçbir şekilde nesneler arsı iletişimi etkilemez.

Kalıtım mekanizmasına göre, bir arayüzün bir istemci tarafından gerçekleştirimi oluşturulduğunda,
aslında fonksiyon göstergelerinin bulunduğu bir tabloya bir gösterge oluşturulmuş demektir. Bir gösterge
kullanımıyla bu tabloya ulaşan bir kaynak kod grubu, bu fonksiyonlardan herhangi birini çağırabilme iznine de
sahip olur. Kavramsal olarak Arayüze Gösterge, arayüzün sahip olduğu ve göstergelerle referans edilerek
çağrılan fonksiyonlar tablosunun bir göstergesi olarak kullanılır.
va
COM’un nesne modeline diğer bir yaklaşımı da çalışma zamanında gelen isteğe göre yaratılan
nesnelerin,yaşam döngüsünü ne zaman tanımlayacağını, belli bir algoritma mantığında gerçekleştirmesini
sağlamaktır..Bazı programlama dilleri bu işlemi programcıya bırakmak yerine,kendisi program sonlanınca var
olan nesneleri siler.Bazı diller is bu işlemi tamamıyla programcıya bırakır.COM teknolojisi ise bu işlem için
nesneye gelen istek sayısı gibi parametrelere bakılarak sistem tarafından gerçekleştirilir.

Her nesne kendine ait tanımladığı 32-bitlik bir sayaçla kaç tane istemcisi dolayısıyla yaratıldığı arayüzle
kaç tane istemcinin iletişimde olduğunu tutarak kendi yaşam döngüsünü belirler. İstemci de bağlantı kurduğu
ja

arayüzde nesne referans sayacını arttırma yükümlülüğündedir.

Bir istemci bir arayüzün göstergesini ilk defa kullanmaya başladığında sayaç 1 olur.Eğer istemci başka
bir arayüzden de isteğine sonuç elde ederse istemciye bağlı sayaç 2 değerine çıkarılır.İstemci, iletişimde olduğu
arayüzlerle ilişkisini bitirmek istediğinde arayüzlerdeki referans sayaç değeri bir azaltır ve kendine ait sayacı da
sıfırlar.Bir nesne ancak kendi referans sayaç değeri “0” olduğunda yok edilir.
w.

4. DAĞILIM YETENEKLERİ

COM teknolojisinde birçok nesne bileşenleri farklı ortamlarda çalışabilmektedir.COM’da var olan
dağılım sunucu ve istemci düzeyi olarak iki ayrı şekilde ele alınır.COM kütüphanesi sınıf kimliklerini kullanarak
istemcilere, “Gerçekleştirim Konumlayıcı” servisleri sağlar. İstemci sadece sınıf kimliğini COM sunucu
uygulamasına sunarak hangi türde bir servis istediğini belirterek, COM’un ilgili servisi oluşturmasını ve
ww

sunmasını sağlar. COM sonuç olarak sınıfın gerçekleştirimini yerleştirerek, istemci ile bu gerçekleştirim arasında
bir bağlantı kurar.

8
2.DAĞITIK BİLEŞEN NESNE MODELİ(DCOM) nedir?

m
Genel Tanımı

DCOM, Bileşen Nesne Modelinin(COM) bir uzantısıdır.COM bileşenlerin ve istemcilerin nasıl


etkileştiklerini düzenler.COM aynı makinedeki farklı görevlere istemcinin erişmesine olanak verirken,farklı
makinelerde haberleşmeyi sağlayamaz.

o
İstemci görev ve bileşenler ayrı makinelerde olduğu zaman DCOM yerel Inter-process haberleşmesini
ağ protokolü ile sağlar.

i.c
dil
va
Şekil 4:DCOM MİMARİSİ
ja

Özellikleri

1.NESNE MODELİ
w.

DCOM Uzaktan Nesne Modelini(remote-object model) benimser. Aslında DCOM ile hem aynı
makinedeki hem de farklı makinelerdeki istemci sunucu görevleri etkileşebilir.DCOM modeli basit bir arayüz
geliştirimidir,basit bir nesne aynı zamanda birden çok arayüz geliştirebilir.Bu arayüzler belirli standartlarda bir
tabloyla belirlenmiştir.DCOM Microsoft IDL(MIDL- Microsoft Interface Defination Language ) olarak
bilinen ikili arayüzlerin tanımlandığı bir tablo kullanmaktadır.Her arayüz(interface) 128 bitlik biricik bir
belirtece sahiptir.(Interface Identifier-IID) DCOM nesneleri bir sınıfın örneği olarak yaratılır.Bu nedenle
aslında DCOM sınıf nesneleri olarak da tanımlanabilir.Bütün nesneler standart bir nesne arayüzü uygular.Bir
nesne yaratıldığı zaman sınıf nesnesi bu arayüze bir gösterge döndürür. Ayrıca her nesne sınıfının da kendine ait
ww

biricik referansı vardır(CLSID)

Bileşenlerin Tekrar Kullanabilirliği

DCOM bileşenleri de COM bileşenleri gibi tekrar kullanılabilir.Böylelikle yazılım geliştirme işleminde
de kazanç sağlanabilir.

9
Dilden Bağımsızlığı

m
DCOM da COM’un devamı olarak dilden bağımsızdır.DCOM bileşenleri her dilde oluşturulabilir ve
oluşturulan bileşenler farklı dillerde ve araçlarda da kullanılabilir.Dil bağımsızlığı sayesinde geliştiriciler kendi
dilleriyle gerçekleştirim yapabilir,yeni bir dil öğrenmek zorunda kalmazlar.C++,Microsoft VJ++,Object Pascal
(Delphi),Visual Basic ve Cobol gibi dillere DCOM bileşenleri geliştirilebilir.

Ancak yine de dil bağımsızlığında bazı kısıtlamalar vardır.Mesela, DCOM Java’nın sadece Microsoft

o
tarafından geliştirilmişiyle çalışır.

Protokol Bağımsızlığı

i.c
DCOM TCP/IP, UDP IPX/SPX ve NETBIOS gibi birçok iletişim protokolüyle çalışabilmektedir.Böylelikle
uygulamanın belirli bir platforma bağlı kalması önlenir. DCOM bu protokollerin hepsinde güvenlik iskeleti
sağlamaktadır.

Platform Bağımsızlığı

Dağıtık bir uygulama istemci ve sunucu taraflarında değişik platformlarla bütünleşmek zorundadırlar.
Arabirim farklılıkları, değişik sistem servisleri, mevcut ağ protokolleri değişik platformlar üzerinde çalışmayı

dil
zorlaştırmaktadır.Bu problemi çözmek için bütün platformların ortak özellikleri ile soyut bir tabaka
oluşturulmuştur.Ancak bu soyut tabaka ek yükler getirmekte ve platformların kendilerine has özelliklerini
kullanma olanağını engellemektedir.

Platform ikili standartı: DCOM yazılım geliştiricilere değişik araçlarla hazırlanmış bileşenleri
birleştirme olanağı vermek için bu standardı tanımlamaktadır. DCOM ’da çalışma zamanı(run-time) kütüphanesi,
gerçekleştirime göre değişmesine rağmen çalışma zamanı kütüphanesi ve bileşen arasındaki ilişki
standartlaşmıştır.
va
Çapraz Platform işletilebilirlik (interoperability) standartı:DCOM çapraz nesne tabanlı dağıtık
işletim, bileşen bağlanması, oluşturulması, yerleştirilmesi, bileşenler üzerinde metot çağırma ve güvenlik
iskeletleri için platform servisleri tanımlamaktadır.

Ayrıca DCOM platformlar üzerindeki servisleri eşzamanlı erişim, kütük sistem etkileşimi arayüz
gerçekleştirimi için kullanmaktadır.
ja

2.İLETİŞİM

DCOM ’da iletişim ilk başlarda sadece zamanuyumluydu.(Synchronous) İstemci bir nesne çağırdığında
işi bitene kadar o nesneyi bloke ederdi(elinde bulundururdu)Bu yöntem hala default olarak desteklenmekle
birlikte DCOM ’a yeni çağırma metotları da eklenmiştir.
w.

Nesne Çağırma Modelleri

Synchronous nesne çağırma modeli callback arayüzleri de içermektedir.Callback arayüzler bağlanabilir


nesnelerle desteklenmektedir.Bir bağlanabilir nesne istemci tarafından uygulanan callback arayüzleri
beirtir.İstemci bağlanabilir bir nesneye bağlandığında,callback arayüzüne bir gösterge sağlar.Eğer bağlanabilir
nesne uzak bir makinede ise arayüz göstergesinin düzenlenmesi (marshalling) ve o makineye(istemcinin olduğu
ww

makine) gönderilmesi gereklidir.

Asynchronous nesne çağırma modeli geçicidir.Devamlı iletişimde ise mesajların sıralanmasını öngörür.

Olaylar

DCOM’ da olayları uygulamada ilk başlarda istemci ve sunucunun aktif olmasını öngören bağlanabilir
nesne kullanılmaktaydı.Birçok istemcinin aynı bağlanabilir nesneye bağlanabilmesi mümkündür.Bununla
birlikte olayları yönetmekte farklı yöntemler de kullanılır.

10
Olaylar sadece girdi parametreleriyle çağrılan metotlarla da modellenebilmektedir.Olaylar olay sınıfı
diye adlandırılan ve DCOM nesneleriyle temsil edilen bir sınıfta gruplandırılır.Ayrı bir olay sınıfı geliştirmeye

m
gerek yoktur.DCOM’ da default bir olay sınıfı tanımlanmıştır.Olay sınıfı nesne ile ilişkilendirildikten sonra
olaylar o nesnenin metotları gibi yönetilebilir ancak olayın kendisi bir nesne değildir.

DCOM’ da olaylar saklanır.Böylelikle olay meydana gelirken istemcinin aktif olma zorunluluğu
yoktur.Bu yolla,olay sistemi istemcini olay sınıfı ile iletişime geçerek ,metot çağrılarıyla sıralanmış olayları
birbiri ardına cevaplar.

o
İletiler

Geçici asynchronous iletişimin yanında, DCOM sıralanmış bileşenler(Queued Components-QC)

i.c
yoluyla sürekli asynchronous iletişime de olanak sağlar.QC Microsoft Message-Queuing(MSMQ) ‘de
tanımlanmış bir arayüzdür.QC ‘nin bir özelliği MSMQ tarafından istemci ve nesnelerden tamamen
saklanmasıdır.

3.GÖREVLER

İstemci taraf için nesneler kendi adres alanındaymış gibi işlem yapılır.Yani; istemci taraf başka bir
makinede işlem yapıldığını anlamaz. Çağrılan yöntemler ve kullanılan nesne bileşenleri sanki kendi adres

dil
alanındaymış gibi işlem yapar.DCOM’ da istemcinin yeniden çağrılan bir nesneye referansı bir arayüz
göstergesidir.İstemci bu arayüz göstergesini referans gösterilen arayüzde metot çağırmada kullanır.İki görev
arasında iletişim bu göstergeler sayesinde olur.Bir göstergeyle işlem yapmak demek aslında o göstergenin ait
olduğu arayüzün biricik olan IID’ si ile işlem yapmak anlamına gelir.

GÖREV A GÖREV B
va
İSTEMCİ UYGULAMASI İSTEMCİ UYGULAMASI
ja

Sıralanmış PROXY (UN)MARSHALER İSTEMCİ


İSTEMCİ PROXY
İstemci PROXY
PROXY (UN)MARSHALER
w.

Proxy

bağlama bilgisi aynı bağlama bilgisi


ww

SUNUCU NESNESİ

STUB
NESNESİ NESNE

11
m
4.HATAYA DAYANIKLILIK

DCOM protokol seviyesinde temel bir hata payı sağlar.Kullanılan pinging mekanizması ağ ve alıcı
tarafındaki donanım hatalarını yakalar. Eğer ağ kısa zaman içinde düzelirse DCOM bağlantıyı otomatik olarak
yeniden kurar.

o
Kullanılan diğer bir yöntem de referans bileşeni yöntemidir.Bu yöntemle alıcı, bileşende bir hata
oluştuğunda referans bileşenini kullanarak yeniden bağlantı sağlar.

Kullanılan bir diğer yöntem hot backup yöntemidir. Bu yöntemde aynı sunucu bileşeni iki ayrı

i.c
makinede aynı bilgilerle paralel olarak çalıştırılmaktadır. Alıcılar bu iki makineyi birleştirebilirler.

Başka bir bilgisayarda düzenleyici bileşen çalıştırma yöntemiyle ise alıcı bu iki sunucu bileşenini
birbiri yerine kullanabilir.

İnternette DCOM

DCOM uygulamaları özel ağlara oranla daha ucuz olan TCP/IP ağlarını kullanabilirler.Bazı sunucu

dil
makineler protokol-seviyeli veya uygulama-seviyeli firewall(güvenlik duvarı)’lar arkasında çalışmaktadır.
DCOM her iki tür firewall arkasında da çalışabilmektedir.DCOM bağlantıları başlatmak için tek bir port
kullanmakta ve makine üzerinde çalışan bileşenler için ayarlanabilir portlar tahsis edebilmektedir.Bu özellikler
sayesinde DCOM tabanlı uygulamalar interneti özel bağlantılar ve haberleşmeler için kullanabilir,uzak
makinedeki herhangi bir istemci ile özel olmayan bağlantılar yapabilir.

Özel Ağlarda DCOM


va
En alt seviyede interneti ucuz, global TCP/IP ağı olarak kullanmak şirketlere uzak sitelerle bireysel
kullanıcıları birleştirmek için imkan sunmaktadır.

Windows NT 4.0 Point-to-Point Tunnelling Protocol (PPTP) gibi özel ağlar ağı, özel bilgilerin
internet üzerinden taşınmasını sağlamaktadır.DCOM tabanlı uygulamalar bu tür özel ağları da desteklemektedir.
ja

3.GÜVENLİK

Ağı bir uygulamanın dağıtımda kullanmanın, bant genişliği ve gecikme gibi fiziksel sınırlamaların
yanında istemciler ve bileşenler arasında güvenliği sağlama sorunu da vardır.Çoğu işlemin ağ üzerindeki
herkesin fiziksel erişimine açık olmasına rağmen, daha üst seviye de bu işlemlerin sınırlandırılması
w.

gerekmektedir.Dağıtık uygulama geliştirme platformununun sağladığı güvenlik desteği olmadığı zaman her
uygulama kendi güvenlik mekanizmasını gerçekleştirmek zorundadır.Dağıtık bir platform değişik kullanıcıları
ve değişik grupları güvenli bir şekilde ayırabilen bir güvenlik iskeletine sahip olmalıdır.

DCOM Windows NT’nin genişletilebilir güvenlik iskeletini kullanmaktadır. Windows NT; çoklu
tanıma, doğrulama mekanizmaları ve herkese açık anahtarları denetleme mekanizmaları içermektedir.

1.Kimlik Güvenliği:Nesneler herkesin erişememesi gereken hassas kütüklere ve veri tabanlarına


ww

erişebilirler. Bu hassas kütüklere ve veri tabanlarına erişimin oluşturabileceği sorunları ortadan kaldırmak üzere
geliştirilen yöntemde nesnelere erişmek isteyen herkesin(istemci) kimlik numarası kontrol edilir ve nesnenin
istemcinin kimlik numarasını alması sağlanır. İstemcinin imtiyazlarına göre ağ erişimi , kütük erişimi ve veri
tabanı erişimi kısıtlandırılır.Ancak uygulama Internet uygulaması ise , istemciye kimlik numarası vermenin
hiçbir güvenilir yöntemi yoktur.Bu nedenle nesnelere kendi güvenlik sorumluluğunu vermek daha basittir.

2.İşletim(başlatma)(launch) Güvenliği:Nesneler bazen diğer uygulamaları çalıştırabilir veya diğer


nesnelerin bir örneğini oluşturabilir.

12
m
3.Erişim Güvenliği:Bir nesneye kimin erişeceğine kara verir. DCOM 'da bütün nesneler eşit erişim
bağlamına sahiptir.Bu uygulama geliştiricilerin güvenlik detaylarını görmezden gelmelerini sağlamıştır.

4.İletişim poliçesi: İletişim poliçesi mesajlar için güvenlik korumasını tanımlar. DCOM veri güvenliği
için iki seçenek sunar:

o
1.Mesaj Güvenirliği: Veri güvenirliği her transfer paketindeki CRC ikilleri ile sağlanır. Veri
güvenirliği bu bağlamda mesajın değişmeyeceği anlamına gelir. Bu her veri paketinin doğruluğu kanıtlanmış
bilgiler taşıdığı anlamına gelmektedir.

i.c
2.Mesaj Gizliliği: Mesaj güvenilirliği mesajların başkaları tarafından okunmayacağı anlamına
gelmez.Mesaj gizliliği mesajların başkaları tarafından ulaşılamayacağı garantisini verir.Bu şifreleme(encryption)
tarafından yapılır.

DCOM’ da güvenlik iki şekilde gerçekleştirilmiştir.

Ayarlama ile Güvenlik

dil
DCOM istemci veya bileşende özel bir güvenlik kodu gerektirmeden dağıtık uygulamalarda güvenliği
sağlamaktadır. DCOM, bileşenin yerini saklayan bir model olduğu gibi bileşenin güvenlik gereksinimlerini de
saklamaktadır. Güvenlik gereksinimi olmayan bir makinede çalışan bir kod güvenliğe ihtiyaç olan bir ortamda da
kolayca çalışabilir.

DCOM her bileşen için ayrı güvenlik ayarları yapmaya olanak sunar. DCOM bileşene erişim hakkı
bulunan grup ve kullanıcıları belirleyen Erişim Kontrol Listeleri(Access Control List) saklamaktadır.
va
İstemci bir metodu çağırdığında veya bileşenin örneğini(instance) oluşturduğunda DCOM, istemcinin
kullanıcı adını alır. Windows NT bu kullanıcı adını doğrular. Bundan sonra DCOM kullanıcı adını bileşenin
çalıştığı bilgisayara iletir. Ardından bileşenin bulunduğu makinedeki DCOM, kullanıcı adının geçerliliğini
yeniden sınar.Eğer kullanıcı adı listede yer almıyorsa DCOM isteği reddeder.
ja

Programlama ile Güvenlik

Bazı uygulamalar için listeye bağlı erişimle güvenlik yeterli olmayabilir. Bileşenin bazı metotları sadece
belirli kullanıcılar tarafından çağrılabilir.
w.

Bir metot çağırıldığında bileşen DCOM istemciyi kişileştirir. Bundan sonra işletim dizisi (thread)
sadece istemciye izin verilen nesneler üzerinde işlemler yapabilir. Bileşen korunan bir nesneye erişmeye
çalıştığında başarısızlığa uğramışsa metot çağrısı reddedilir.

Bileşenler istemcinin doğrulanmış kullanıcı adını alıp kendi veri tabanında izinler için sorgulama
yapabilirler. Uygulama şifreleri ve diğer bilgileri tutmak zorunda değildir.
ww

4.BAĞLANTI YÖNETİMİ

Ağ içerisindeki bağlantılar bilgisayar içi bağlantılara göre daha zayıf olduğundan ağ üzerindeki
uygulamalarda istemcinin aktif olup olmadığı, ağda veya donanımda bir sorun olup olmadığı kontrol
edilmelidir.DCOM tek bir istemci kullanılan veya birçok istemci tarafından paylaşılan bileşenleri bileşene ait
referans sayacı kullanarak yönetmektedir.Referans sayacı istemci bileşene bağlantı kurduğu zaman artmakta

13
istemci bağlantıyı bitirdiği zaman ise bir azalmaktadır.Bu sayaç sıfır olduğunda bileşen kendini serbest
bırakabilir.

m
DCOM istemcilerin aktif olup olmadığını kontrol etmek için pinging protokolü kullanmaktadır. İstemci
makine periyodik olarak sinyal göndermektedir. Eğer üç ping periyodundan daha fazla bir bağlantı kopukluğu
fark edilirse DCOM referans sayacını azaltır, eğer sıfırlanmışsa bileşeni serbest bırakır.

Uygulamalar Garbage Collection mekanizmasını kullanarak bileşenleri serbest bırakabilirler.

o
Garbage Collection

Bir nesnenin ömrünü kontrol etmede kullanılan mekanizma referans sayma, AddRef ve Release

i.c
metotlarının kullanılması ile gerçekleşir. AddRef ve Release metotları uzaktaki bir nesneye çağrı yollamak ciddi
ağ performans sorunlarına yol açabilir. Bu nedenle DCOM bu metot çağrılarını düzenlemektedir.

COM kodları genelde yerel AddRef ve Release’ leri hemen RemAddRef ve RemRelease’ lere
çevirmez. Örneğin proxy kodları nesne üzerindeki arabirimlere ait bütün yerel referanslar serbest kalana kadar
bütün arabirimlerin serbest kalmalarını erteler.

Pinging

dil
Uzaktan referans sayma istemci beklenmedik bir biçimde sonlandığında yeterli olmayacaktır.Pinging
beklenmedik sonlanmaları belirlemek için kullanılan bir yöntemdir.

Bu yöntemde her dış nesne bir ping ve pingout(kalan süre) sürelerinin tutulduğu bir sayaca
sahiptir.Eğer bu süre içinde isteme cevap alınamazsa bu arabirimle ilgili bütün uzak referansların süresi bitmiş
sayılır ve bu bileşenler garbage collector tarafından serbest bırakılır.DCOM etkin bir pinging altyapısına
sahiptir.
va
Bağlantı Noktaları

Birçok gerçek zamanlı, dağıtık uygulama nesneler arasında iki yönlü iletişimi gerektirir.Bağlantı
noktaları arabirim göstergesinin nesneye aktarımını standart hale getirir. Bu mekanizma nesneler arasında
karşılıklı referans gösterme sorununu da çözmektedir.
ja

Dağıtımlı uygulamalarda birçok istemci aynı bağlantı noktasını kullanarak kayıt olur ve bağlantı noktası
bütün istemcilere bildiri gönderir. Bu çok yönlülük zaman uyumlu bir biçimde sırası gelen istemciyi çağırmayı
gerektirdiğinden zayıf ağlar ve yavaş istemciler için ek tasarımlar yapılmalıdır.
w.

5.UYGULAMA ÖRNEKLERİ

StokMarketSunucu ve İstemci Uygulaması

StokMarket Sunucu görevi girilen değerle ilişkilendirilmiş stok değerini belirtir. “get_price()” metodu
ile girilen özel değere ilişkin stok değerini alır.
ww

Bu uygulama için 4 dosya gerekmektedir.İlk dosya IDL dosyasıdır ve arayüzü(interface) ve onun


metotlarını içermektedir.İkinci dosya istemcinin sunucu nesnesine referansı elde ederek bu aryüzlerdeki
metotları çağırmasını içeriyor.Üçüncü dosya da sunucu nesnesinin geliştirilmesini içermektedir.Dördüncü dosya
ise, sunucu makinede DCOM Sunucu nesnesine çağıran JavaReg programıdır.

14
IDL arayüzü

m
İstemci uzak dağıtık bir nesneye ihtiyaç duyduğunda,uzak nesne tarafından geliştirilen metodu çağırır. Uzak
dağıtık nesnenin sağladığı kapsüllenmiş nesne servisi ve uzak nesne arayüzü IDL dosyasında tanımlanıştır.IDL
dosyasında tanımlı arayüz uzak nesne ve istemci arasında iletişim kurar.

IStockMarket arayüzü ve onun nesne sınıfı olan StockMarket coclass bloğu içinde belirtilmiştir.DCOM ‘da
her arayüz Interface ID(IID) olarak bilinen benzersiz bir tanıyıcı olarak verilir.Benzer olarak da her nesne

o
sınıfı Class ID (CLSID) olarak bilinen özel bir UUID olarak verilir.

i.c
StockMarketLib.idl

[
uuid(7371a240-2e51-11d0-b4c1-444553540000),
version(1.0)
]

library SimpleStocks
{
importlib("stdole32.tlb");
[

]
dil
uuid(BC4C0AB0-5A45-11d2-99C5-00A02414C655),
dual

interface IStockMarket : IDispatch


va
{
HRESULT get_price([in] BSTR p1, [out, retval] float * rtn);
}

[
uuid(BC4C0AB3-5A45-11d2-99C5-00A02414C655),
]
coclass StockMarket
ja

{
interface IStockMarket;
};

};
w.

Uzak nesne metodunu çağırmak için,istemci Proxy için çağrı yapar.

Dağıtık Nesne İstemcisini Geliştirme


ww

IStockMarket market = (IStockMarket)new simplestocks.StockMarket();

Arayüz alınarak uzak nesne ile iletişime geçilir.

DCOM istemcisi DCOM sunucu nesnesi metotlarını çağırır.

15
StockMarketCilent.java

m
import simplestocks.*;

public class StockMarketClient

o
public static void main(String[] args)

i.c
try
{

IStockMarket market = (IStockMarket)new simplestocks.StockMarket();

System.out.println( "The price of MY COMPANY is " +


market.get_price("MY_COMPANY") );

dil
catch (com.ms.com.ComFailException e)

System.out.println( "COM Exception:" );


va
System.out.println( e.getHResult() );

System.out.println( e.getMessage() );

}
ja

}
w.

Dağıtık Sunucu Nesnesini Geliştirme

Java/Com için bütün sınıflar com.ms.com paketinde tanımlanmıştır.DCOM sunucu nesnesinin geliştirilmesinde
IDL dosyasında tanımlandığı gibi IStockMarket arayüzü kullanılmıştır.StockMarket sınıfı ve onun metodu
olan get_price() metodu “public” tanımlanmış, dolayısıyla paket dışında da her yerden erişilebilir hale
getirilmiştir. CLSID ise “private” olarak tanımlanmıştır.get_price() metodu ComExeption fırlatabilir.
ww

StockMarket.java

import com.ms.com.*;

import simplestocks.*;

16
m
public class StockMarket implements IStockMarket

{
private static final String CLSID = "BC4C0AB3-5A45-11d2-99C5-00A02414C655";

public float get_price( String symbol )

o
{
float price = 0;

i.c
for( int i = 0; i < symbol.length(); i++ )

{
price += (int) symbol.charAt(i);

dil
price /= 5;

return price;

}
va
Sunucu Ana Programı

DCOM sunucu geliştirimi için Main program sağlanmamıştır.Java Destekçisi(Support) Internet Explorer’da
in_process sunucu gibi çalışır.Bunun için de in_process sunucuya yüklenmesi için bir “surrogate .EXE”
dosyası tanımlanabilir.JavaReg/surrogate Java’da COM sınıfına uzaktan erişimi desteklemek için bir
ja

seçenektir.İlk kayıt işlemi için aşağıdaki komut satırı kullanılır.

javareg /register /class:StockMarket /clsid:{FE19E681-508B-11d2-A187-000000000000} /surrogate


w.

Bu komut LocalServer32 anahtarını olağan InprocServer32 anahtarına ek olarak kayda ekler.

HKEY_CLASSES_ROOT

CLSID

{BC4C0AB3-5A45-11d2-99C5-00A02414C655}
ww

InprocServer32 = msjava.dll

LocalServer32 = javareg /clsid:{BC4C0AB3-5A45-11d2-99C5-00A02414C655} /surrogate

17
Bu JavaReg dosyasının “surrogate” olarak işlemesine neden olur.Java kullanılarak geliştirilen COM sınıfında
uzak bir nesne istemde bulunduğunda, JavaReg çağrılır.JavaReg özel bir sınıfla birlikte Internet Explorer’ a Java

m
Destekçisini yükler.Bunun anlamı dağıtık bir Java uygulamasında yükleme programı aynı zamanda JavaReg
dosyasını ve Java sınıflarını da yüklemek zorundadır.LocalServer32 anahtarını JavaReg programını sınıf
seçeneği ile özel olarak aynı sınıf adıyla birlikte /clsid ya da /surrogate seçenekleri olmadan tekrar çalıştırarak
kaldırabilirsiniz.

javareg /register /class:StockMarket

o
StockMarket.reg

REGEDIT4

i.c
[HKEY_CLASSES_ROOT\CLSID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}]

@="Java Class: StockMarket"

"AppID"="{BC4C0AB3-5A45-11d2-99C5-00A02414C655}"

@="MSJAVA.DLL"

"ThreadingModel"="Both"
dil
[HKEY_CLASSES_ROOT\CLSID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}\InprocServer32]
va
"JavaClass"="StockMarket"

[HKEY_CLASSES_ROOT\CLSID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}\LocalServer32]

@="javareg /clsid:{BC4C0AB3-5A45-11d2-99C5-00A02414C655} /surrogate"


ja

[HKEY_CLASSES_ROOT\CLSID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}\Implemented Categories]
w.

[HKEY_CLASSES_ROOT\CLSID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}\Implemented
Categories\{BE0975F0-BBDD-11CF-97DF-00AA001F73C1}]

[HKEY_CLASSES_ROOT\AppID\{BC4C0AB3-5A45-11d2-99C5-00A02414C655}]
ww

@="Java Class: StockMarket"

18
StockMarketApplet.java

m
import java.applet.Applet;

import java.awt.*;

import simplestocks.*;

o
public class StockMarketApplet extends Applet

i.c
IStockMarket market = null;

public void paint( Graphics g )

try

dil
g.setColor( java.awt.Color.black );

g.drawString("The stock price of MY COMPANY is " +market.get_price("MY_COMPANY"),


40, 40);
va
}

catch (com.ms.com.ComFailException e)

System.out.println( "COM Exception:" );


ja

System.out.println( e.getHResult() );

System.out.println( e.getMessage() );
w.

public void init()

{
ww

try

market = (IStockMarket)new simplestocks.StockMarket();

19
catch (com.ms.com.ComFailException e)

m
{

System.out.println( "COM Exception:" );

System.out.println( e.getHResult() );

o
System.out.println( e.getMessage() );

i.c
}

NOT:Bu örnek Visual J++ ile yukarıdaki gibi herhangi bir applet sınıfı ile denenebilir.

dil
Sonuç olarak; DCOM QueryInterface() metodu ile nesneler için çeşitli arayüzler tanımlanmasını
destekler.Çalışma zamanında ele alınıyormuş gibi işleyen uzak sunucu nesnesi için arayüz göstergesi tanımlar.
Protokol olarak Uzak Nesne Yöntem Çağırma(ORPC) ’ yı kullanır.İstemci tarafındaki stub nesnesi Proxy olarak,
va
sunucu tarafındaki stub nesnesi de stub olarak adlandırılır.İstemci ve sunucu nesneleri arasında parametre
geçişleri Arayüz Tanımlama dosyasında(IDL) belirtilmiştir.C++, Java, Object Pascal (Dlphi) , Visual Basic ve
Cobol dilleri ile programlama geliştirmeye olanak vermesi ile günümüzde yaygın olarak kullanılan bir
teknolojidir.
ja
w.
ww

20

You might also like