Aracılığıyla paylaş


İşlemler arası iletişimler

Windows işletim sistemi, uygulamalar arasında iletişim ve veri paylaşımını kolaylaştırmak için mekanizmalar sağlar. Toplu olarak, bu mekanizmaların etkinleştirdiği etkinlikler işlemler arası iletişim (IPC) olarak adlandırılır. IPC'nin bazı biçimleri, iş gücünün çeşitli özel süreçler arasında bölünmesini kolaylaştırır. IPC'nin diğer biçimleri, bir ağdaki bilgisayarlar arasında iş gücünün bölünmesini kolaylaştırır.

Uygulamalar genellikle istemci veya sunucu olarak kategorilere ayrılmış IPC kullanabilir. istemci, başka bir uygulamadan veya işlemden hizmet isteyen bir uygulama veya işlemdir. sunucu, istemci isteğine yanıt veren bir uygulama veya işlemdir. Birçok uygulama, duruma bağlı olarak hem istemci hem de sunucu görevi görür. Örneğin, bir sözcük işleme uygulaması, sunucu olarak davranan bir elektronik tablo uygulamasından üretim maliyetlerinin özet tablosunu istemek için bir istemci gibi davranabilir. Elektronik tablo uygulaması da otomatik envanter denetimi uygulamasından en son envanter düzeylerini istemek için bir istemci görevi görür.

Uygulamanızın IPC'den yararlanabileceğine karar verdikten sonra, kullanılabilir IPC yöntemlerinden hangisini kullanacağınıza karar vermeniz gerekir. Bir uygulamanın birkaç IPC mekanizması kullanması olasıdır. Bu soruların yanıtları, bir uygulamanın bir veya daha fazla IPC mekanizması kullanarak avantaj sağlayıp sağlayamayacağını belirler.

  • Uygulama, ağdaki diğer bilgisayarlarda çalışan diğer uygulamalarla iletişim kurabilmelidir veya uygulamanın yalnızca yerel bilgisayardaki uygulamalarla iletişim kurması yeterli midir?
  • Uygulama, farklı işletim sistemleri (16 bit Windows veya UNIX gibi) altında çalışıyor olabilecek diğer bilgisayarlarda çalışan uygulamalarla iletişim kurabilmelidir mi?
  • Uygulamanın kullanıcısının, uygulamanın iletişim kurabileceği diğer uygulamaları seçmesi mi gerekiyor yoksa uygulama işbirliği yapan ortaklarını örtük olarak bulabilir mi?
  • Uygulama, başka bir uygulamayla kesme ve yapıştırma işlemlerine izin verme gibi birçok farklı uygulamayla genel bir şekilde iletişim kurmalı mı yoksa iletişim gereksinimleri belirli diğer uygulamalarla sınırlı bir etkileşim kümesiyle mi sınırlı olmalıdır?
  • Performans, uygulamanın kritik bir yönü mü? Tüm IPC mekanizmaları bir miktar ek yük içerir.
  • Uygulama bir GUI uygulaması mı yoksa konsol uygulaması mı olmalıdır? Bazı IPC mekanizmaları bir GUI uygulaması gerektirir.

Aşağıdaki IPC mekanizmaları Windows tarafından desteklenir:

IPC için Pano kullanma

Pano, uygulamalar arasında veri paylaşımı için merkezi bir depo görevi görür. Kullanıcı uygulamada kesme veya kopyalama işlemi gerçekleştirdiğinde, uygulama seçilen verileri panoya bir veya daha fazla standart veya uygulama tanımlı biçimde yerleştirir. Daha sonra diğer tüm uygulamalar, anladığı kullanılabilir biçimlerden seçim yaparak verileri panodan alabilir. Pano, uygulamaların yalnızca veri biçimi konusunda anlaşmaya ihtiyaç duyduğu çok gevşek bir şekilde bağlanmış bir değişim ortamıdır. Uygulamalar aynı bilgisayarda veya bir ağdaki farklı bilgisayarlarda bulunabilir.

Anahtar noktası: Tüm uygulamalar, anladıkları veri biçimleri için panoyu desteklemelidir. Örneğin, bir metin düzenleyicisi veya sözcük işlemcisi en azından pano verilerini saf metin biçiminde üretebilmelidir ve kabul edebilmelidir. Daha fazla bilgi için bkz. pano .

IPC için COM kullanma

OLE kullanan uygulamalar bileşik belgeleriyönetir; başka bir deyişle, çeşitli uygulamalardan alınan verilerden oluşan belgeler. OLE, uygulamaların veri düzenleme için diğer uygulamalarda çağrı yapmasını kolaylaştıran hizmetler sağlar. Örneğin, OLE kullanan bir sözcük işlemcisi elektronik tablodan graf ekleyebilirsiniz. Kullanıcı, düzenleme için eklenmiş grafiği seçerek elektronik tabloyu sözcük işlemcisinden otomatik olarak başlatabilir. OLE, elektronik tabloyu başlatma ve grafı düzenleme amacıyla sunmayla ilgilenir. Kullanıcı elektronik tablodan çıktığında, grafik özgün sözcük işlemcisi belgesinde güncelleştirilir. Elektronik tablo, sözcük işlemcisinin bir uzantısı gibi görünüyor.

OLE'nin temeli Bileşen Nesne Modeli'dir (COM). COM kullanan bir yazılım bileşeni, henüz yazılmayanlar bile çok çeşitli diğer bileşenlerle iletişim kurabilir. Bileşenler nesneler ve istemciler olarak etkileşim kurar. Dağıtılmış COM, COM programlama modelini bir ağ üzerinde çalışacak şekilde genişletir.

Anahtar noktası: OLE bileşik belgeleri destekler ve bir uygulamanın seçili olduğunda veri düzenleme için otomatik olarak başka bir uygulama başlatan ekli veya bağlı veriler içermesini sağlar. Bu, uygulamanın OLE kullanan diğer tüm uygulamalar tarafından genişletilmesine olanak tanır. COM nesneleri, arabirimleri olarak bilinen bir veya daha fazla ilgili işlev kümesi aracılığıyla nesnenin verilerine erişim sağlar. Daha fazla bilgi için bkz. COM ve ActiveX Nesne Hizmetleri.

IPC için Veri Kopyalama kullanma

Veri kopyalama, uygulamanın WM_COPYDATA iletisini kullanarak başka bir uygulamaya bilgi göndermesini sağlar. Bu yöntem, gönderen uygulama ile alıcı uygulama arasında işbirliği gerektirir. Alıcı uygulamanın bilgilerin biçimini bilmesi ve göndereni tanımlayabilmesi gerekir. Gönderen uygulama, işaretçiler tarafından başvurulan belleği değiştiremez.

Anahtar noktası: Veri kopyalama, Windows mesajlaşmasını kullanarak bilgileri başka bir uygulamaya hızla göndermek için kullanılabilir. Daha fazla bilgi için bkz. Veri Kopyalama.

IPC için DDE kullanma

DDE, uygulamaların çeşitli biçimlerde veri alışverişinde bulunmalarını sağlayan bir protokoldür. Uygulamalar DDE'yi bir kerelik veri alışverişleri veya yeni veriler kullanılabilir hale geldikçe uygulamaların birbiriyle güncelleştirdiği devam eden değişimler için kullanabilir.

DDE tarafından kullanılan veri biçimleri, pano tarafından kullanılan biçimlerle aynıdır. DDE, pano mekanizmasının bir uzantısı olarak düşünülebilir. Pano neredeyse her zaman bir kullanıcı komutuna tek seferlik yanıt için kullanılır. Örneğin, menüden Yapıştır komutu seçilir. DDE genellikle bir kullanıcı komutu tarafından da başlatılır, ancak genellikle daha fazla kullanıcı etkileşimi olmadan çalışmaya devam eder. Ayrıca, daha sıkı bir şekilde bağlanmış iletişim gereksinimleri olan uygulamalar arasında özel amaçlı IPC için özel DDE veri biçimleri tanımlayabilirsiniz.

DDE değişimleri, aynı bilgisayarda veya bir ağdaki farklı bilgisayarlarda çalışan uygulamalar arasında gerçekleşebilir.

Anahtar noktası: DDE daha yeni teknolojiler kadar verimli değildir. Ancak, diğer IPC mekanizmaları uygun değilse veya yalnızca DDE'yi destekleyen mevcut bir uygulamayla arabirim oluşturmanız gerekiyorsa DDE'yi kullanmaya devam edebilirsiniz. Daha fazla bilgi için bkz. Dinamik Veri Değişimi ve Dinamik Veri Değişimi Yönetim Kitaplığı.

IPC için Dosya Eşleme kullanma

Dosya eşleme bir işlemin dosyanın içeriğini işlemin adres alanında bir bellek bloğu gibi işlemesine olanak tanır. İşlem, dosyanın içeriğini incelemek ve değiştirmek için basit işaretçi işlemlerini kullanabilir. İki veya daha fazla işlem aynı dosya eşlemesine eriştiğinde, her işlem dosyanın içeriğini okumak veya değiştirmek için kullanabileceği kendi adres alanında belleğe bir işaretçi alır. İşlemler, çok görevli bir ortamda veri bozulmasını önlemek için semafor gibi bir eşitleme nesnesi kullanmalıdır.

İşlemler arasında paylaşılan bellek adlı sağlamak için özel bir dosya eşleme örneği kullanabilirsiniz. Dosya eşleme nesnesi oluştururken sistem değiştirme dosyasını belirtirseniz, dosya eşleme nesnesi paylaşılan bellek bloğu olarak değerlendirilir. Diğer işlemler aynı dosya eşleme nesnesini açarak aynı bellek bloğuna erişebilir.

Dosya eşleme oldukça verimlidir ve ayrıca yetkisiz veri bozulmasını önlemeye yardımcı olabilecek işletim sistemi tarafından desteklenen güvenlik öznitelikleri sağlar. Dosya eşleme yalnızca yerel bilgisayardaki işlemler arasında kullanılabilir; ağ üzerinden kullanılamaz.

Anahtar noktası: Dosya eşlemesi, aynı bilgisayardaki iki veya daha fazla işlemin veri paylaşması için verimli bir yoldur, ancak işlemler arasında eşitleme sağlamanız gerekir. Daha fazla bilgi için bkz. dosya eşleme ve eşitleme .

IPC için Mailslot kullanma

Posta grafikleri tek yönlü iletişim sağlar. Mailslot oluşturan tüm işlemler mailslot sunucusudur. mailslot istemcileri olarak adlandırılan diğer işlemler, mailslot sunucusuna ileti yazarak mailslot sunucusuna ileti gönderir. Gelen iletiler her zaman posta grafiğine eklenir. Mailslot sunucusu iletileri okuyana kadar iletileri kaydeder. Bir işlem hem mailslot sunucusu hem de mailslot istemcisi olabileceği için birden çok posta grafiği kullanarak iki yönlü iletişim mümkündür.

Mailslot istemcisi, yerel bilgisayarındaki bir posta yuvasına, başka bir bilgisayardaki bir posta grafiğine veya belirtilen ağ etki alanındaki tüm bilgisayarlarda aynı ada sahip tüm posta pilotlarına ileti gönderebilir. Bir etki alanındaki tüm mailslot'lara yayınlanan iletiler 400 bayttan uzun olamaz, ancak tek bir mailslot'a gönderilen iletiler yalnızca posta grafiğini oluştururken mailslot sunucusu tarafından belirtilen en büyük ileti boyutuyla sınırlıdır.

Anahtar noktası: Mailslots, uygulamaların kısa mesaj gönderip alması için kolay bir yol sunar. Ayrıca, bir ağ etki alanındaki tüm bilgisayarlar arasında ileti yayınlama olanağı da sağlar. Daha fazla bilgi için bkz. Mailslots.

IPC için Kanallar Kullanma

İki yönlü iletişim için iki tür kanal vardır: anonim kanallar ve adlandırılmış kanallar. anonim kanalları ilgili işlemlerin birbirine bilgi aktarmasına olanak tanır. Genellikle anonim kanal, bir alt işlemin standart girişini veya çıkışını yeniden yönlendirmek için kullanılır, böylece üst işlemiyle veri alışverişi yapabilir. Her iki yönde de veri alışverişi yapmak için (çift yönlü işlem), iki anonim kanallar oluşturmanız gerekir. Üst işlem, yazma tutamacını kullanarak bir kanala veri yazarken, alt işlem bu kanaldaki verileri okuma tutamacını kullanarak okur. Benzer şekilde, alt işlem diğer kanala veri yazar ve üst işlem ondan okur. Anonim kanallar bir ağ üzerinden kullanılamaz veya ilişkisiz işlemler arasında kullanılamaz.

Adlandırılmış kanallar, verileri ilgili olmayan işlemler arasında ve farklı bilgisayarlardaki işlemler arasında aktarmak için kullanılır. Genellikle adlandırılmış kanal sunucu işlemi, iyi bilinen bir ada veya istemcilerine iletilecek bir ada sahip adlandırılmış bir kanal oluşturur. Kanalın adını bilen bir adlandırılmış kanal istemci işlemi, adlandırılmış kanal sunucu işlemi tarafından belirtilen erişim kısıtlamalarına tabi olarak diğer ucunu açabilir. Hem sunucu hem de istemci kanala bağlandıktan sonra, kanalda okuma ve yazma işlemleri gerçekleştirerek veri alışverişi yapabilir.

Anahtar noktası: anonim kanallar, standart girişi veya çıkışı aynı bilgisayardaki alt işlemlere yönlendirmek için verimli bir yol sağlar. Adlandırılmış kanallar, ister aynı bilgisayarda ister bir ağ üzerinden olsun, iki işlem arasında veri aktarımı için basit bir programlama arabirimi sağlar. Daha fazla bilgi için bkz. Kanallar.

IPC için RPC kullanma

RPC, uygulamaların işlevleri uzaktan çağırmasına olanak tanır. Bu nedenle RPC, IPC'yi işlev çağırmak kadar kolay hale getirir. RPC, tek bir bilgisayardaki veya ağdaki farklı bilgisayarlardaki işlemler arasında çalışır.

Windows tarafından sağlanan RPC, Open Software Foundation (OSF) Dağıtılmış Bilgi İşlem Ortamı (DCE) ile uyumludur. Bu, RPC kullanan uygulamaların DCE'yi destekleyen diğer işletim sistemleriyle çalışan uygulamalarla iletişim kurabileceği anlamına gelir. RPC, farklı donanım mimarilerini hesaba eklemek ve farklı ortamlar arasında bayt sıralamak için veri dönüştürmeyi otomatik olarak destekler.

RPC istemcileri ve sunucuları sıkı bir şekilde bağlantılıdır ancak yine de yüksek performansı korur. Sistem, işletim sisteminin farklı bölümleri arasında istemci/sunucu ilişkisini kolaylaştırmak için RPC'yi kapsamlı bir şekilde kullanır.

Anahtar noktası: RPC, otomatik veri dönüştürmeyi ve diğer işletim sistemleriyle iletişimleri destekleyen işlev düzeyinde bir arabirimdir. RPC kullanarak yüksek performanslı, sıkı bir şekilde bağlanmış dağıtılmış uygulamalar oluşturabilirsiniz. Daha fazla bilgi için bkz. Microsoft RPC Bileşenleri.

IPC için Windows Yuvalarını Kullanma

Windows Yuvaları protokolden bağımsız bir arabirimdir. Temel alınan protokollerin iletişim özelliklerinden yararlanır. Windows Yuvaları 2'de, bir yuva tutamacı isteğe bağlı olarak standart dosya G/Ç işlevleriyle dosya tanıtıcısı olarak kullanılabilir.

Windows Yuvaları, ilk olarak Berkeley Yazılım Dağıtımı (BSD) tarafından popülerleştirilen yuvaları temel alır. Windows Yuvaları kullanan bir uygulama, diğer sistem türlerindeki diğer yuva uygulamalarıyla iletişim kurabilir. Ancak, tüm taşıma hizmeti sağlayıcıları tüm kullanılabilir seçenekleri desteklemez.

Anahtar noktası: Windows Yuvaları, geçerli ve gelişmekte olan ağ özelliklerini destekleyebilecek protokolden bağımsız bir arabirimdir. Daha fazla bilgi için bkz. windows yuvaları 2 .

Windows'ta unix yuva (AF_UNIX) işlevi

Windows Insider Derlemesi 17063'ten başlayarak, Win32 işlemleri arasında iletişim kurmak için Windows'ta unix yuva (AF_UNIX) adres ailesini kullanabilirsiniz. Unix yuvaları, aynı makinedeki işlemler arasında işlemler arası iletişime (IPC) olanak sağlar. Daha fazla bilgi için windows AF_UNIX blog gönderisine bakın.

Uzak Mailslot protokolünün kullanımdan kaldırılması

Windows 11 Insider Preview Derlemesi 25314 ve Windows Server Preview Derlemesi 25314 itibarıyla, Uzak Posta Grafiği protokolünün varsayılan olarak devre dışı bırakılmasına başladık. Bu, Windows'tan kullanımdan kaldırmanın ve sonunda kaldırılmasının bir öncüsüdür. Daha fazla bilgi için Windows Insiderparçası olarak Uzak Posta Pilotlarının sonunun başlangıcı blog gönderisine bakın.