operations etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
operations etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

30 Eylül 2023 Cumartesi

Sunucular Arasındaki İşlemler

 

   Bu tarif sunucu sınırlarını aşan işlemler üzerine yazılmış bir makaledir. Örneklerde bir kullanıcı profilini bir uygulamadan diğerine geçmeyi bekleyen tekliflerin özetlerini bir müşteri ilişkileri yönetimi uygulamasına içe aktarmayı veya halihazırda taslak sunucusunda bulunan üretim sunucusunda bir belge yayınlamayı içeriyor.  Bu tür kullanım durumları birden çok sunucuda durum manipülasyonuna  ihtiyaç duyar.

Sunucular arası işlemleri tasarlamak ve uygulamak için sunucuların birbirleriye işbirliği yapılmasına izin verin. Bu sunucuların veri formatları arka uç arayüzleri ve eşzamanlılık kontrolü üzerinde anlaşmaların yanı sıra bir veri deposunda veri yüklemeyi diğer sunucunun formatına uyacak şeklide normalleştirmeyi ve ardından depolamayı içerebilir. Sunuculardan birinin işlemi tetiklemek için istemcilere bir bağlantı sağlamasına izin verin. 

Sunucu sınırlarını aşan işlemlerle karşılaşıldığında endişelerin ayrılması kilit bir endişe olmalıdır. iki Web hizmetini düşünürsek biri kullanıcıların bağlantılarını yönetiyor. http://contacts.example1.org üzerinde çalışır ve e-posta, metin mesajları, sesli posta v.b gibi diğer yönetim mesajlaşmaları ise http://messaging.example2.org üzerinde çalışır.  Kullanım durumu, bir kullanıcının kişilerini mesajlaşma web hizmetine aktarılmasına izin vermektedir. Bunu desteklemek için kişiler web hizmetinin, kişileri mesajlaşma web hizmet aktarmak için bir bağlantı içerdiğini varsayın. Kişi listesini mesajlaşma web hizmetine aktarmak için bir bağlantıyla birlikte bir kullanıcının kişi listesinin temsili buradadır.

# Request
GET /user/smith/contacts HTTP/1.1 Host: contacts.example1.org
# Response
HTTP/1.1 200 OK
Content-Type: application/xml;charset=UTF-8
<contacts xmlns:atom="http://www.w3.org/2005/Atom">
<atom:link rel="self" href="http://contacts.example2.org/user/smith/contacts"/> <atom:link rel="http://contacts.example1.org/rels/export-to-messaging"
href="http://messaging.example2.org/user/smith/import; t=bcb9169866c69410be37f68210a6986c"
title="Export contacts into to messaging."/> <contact>
... </contact> ...
</contact>


Verileri bir sunucudan diğerine aktarmak için URI ile bağlantı kurun. http://contacts.example2.org/rels/export-to-messaging ilişki türüyle bağlantının anlamını anlayan bir istemci, dışa aktarma işlemini başlatabilir. Bu bağlantı ilişki türünün belgelerinin, istemcinin, kişileri mesaj hizmetine aktarmak için bağlantının URI'sine bir POST isteği göndermesi gerektiğini söylediğini varsayalım. Bağlantının URI yetkisiz kullanım önlemek için bir güvenlik belirteci içerir.

# Request
POST /user/smith/import;t=bcb9169866c69410be37f68210a6986c HTTP/1.1 Host: messaging.example2.org

# Response
HTTP/1.1 303 See Other
Location: http://messaging.example2.org/user/smith Content-Type: application/xml;charset=UTF-8

#Request : Verileri dışarıya aktarma isteği 

Dışa aktarma sonuçlarını sağlaya URI istemci bu isteği gönderdiğinde mesajlaşma hizmeti kişilerin bir kopyasını almak için kişiler web hizmetine bir arka uç isteğinde bulunur. Bu işlem sırasında sunucular arasında güvenliğin nasıl yönetildiğine bağlı olarak mesajlaşma web hizmeti URI bulunan belirteci kişiler web hizmetine sunabilir. Bu süreçte kişi listesi verilerinin mesaj sunucusunda kullanılabilir olmasını sağlamaktan sunucular sorumludur.  İstemci yalnızca işlemi tetiklemekten sorumludur. Bu istemcinin eşzamanlılık kontrolü, atomsallık, veri formatlarındaki farklılık v.b dahil olmak üzere sunucunun uygulama ayrıntılarından ayrılmasını sağlar. Bu sunucular arasındaki koordinasyonun sonucudur. 

NOT:

Teknik ve organizasyonel sorunlar nedeniyle böyle bir koordinasyon mümkün olmadığında müşterinin tüm kişileri http://contacts.example2.org/user/contacts adresinden indirilip mesajlaşma servisine gönderilmesinden başka bir seçenek yoktur.





3 Nisan 2021 Cumartesi

RestFull Web Service Sunucular Arasında İşlemler Nasıl Desteklenir



Sunucu sınırlarını aşan işlemlerin nasıl destekleneceği hakkında kısa bilgi paylaşımıdır. Örneklerde; bir kullanıcı profilini bir uygulamadan diğerine taşımayı özetleri içe aktarmayı içerir. Bir müşteri ilişkileri yönetimi uygulamasında beklenen tekliflerin, taslak sunucudan üretim sunucusundaki belgeler gönderimi. Bu kullanım durumunda birden çok sunucu durumunun değişmesine ihtiyaç doğuyor. İki veya daha fazla sunucu üzerinde içerik işlemlerinin nasıl değişeceğine küçük örnek ile bakacağız.

Sunucular arası operasyonun tasarlamak ve uygulamak için sunucuların birbirleriyle işbirliği yapmasına öncelikle izin verilmeli. (cross-server operations) Bunlar veri formatlar, arka uç ara yüzleri mutabakat sağlayan sunucuları içerebilir. Veri deposundan veri yükleme, onu karşılamak için normalleştirme işlemleri, diğer sunucu biçimleri ve ardından saklanması adımları.

Sunucu sınırlarını aşan işlemlerle karşılaşıldığında endişelerin ayrılması gerekir. 

Kişi listesini dışa aktarmak için bir bağlantıyla birlikte bir kullanıcının kişi listesini temsili mesajlaşma web hizmeti:

# Request

GET /user/smith/contacts HTTP/1.1

Host: contacts.example1.org


# Response

HTTP/1.1 200 OK

Content-Type: application/xml;charset=UTF-8


<contacts xmlns:atom="http://www.w3.org/2005/Atom">

   <atom:link rel="self" href="http://contacts.example2.org/user/smith/contacts"/>

   <atom:link rel="http://contacts.example1.org/rels/export-to-messaging"

      href="http://messaging.example2.org/user/smith/import;

               t=bcb9169866c69410be37f68210a6986c"

      title="Export contacts into to messaging."/>

   <contact>

      ...

   </contact>

   ...

</contact>

     title="Export contacts into to messaging."/> > Bir sunucudan diğerine veri aktarmak için bir URl ile bağlantı kurun.

http://contacts.example2.org/rels/export-to-messaging > anlamı: con ilişki türü ile anlayan bir istemci http://tacts.example2.org/rels/export-to-messaging > dışa aktarma işlemini başlatabilir. Bu bağlantı ilişkisi türünü dökümantasyonunu müşterinin yapması gerektiğini söylediğini varsayalım. 

Kişileri mesaj hizmetine aktarmak için bağlantının URl bir POST isteği gönderin.  Bağlantının  URl yetkisiz kullanımı önlemek için bir güvenlik anahtarı içerir.


# Request

POST /user/smith/import;t=bcb9169866c69410be37f68210a6986c HTTP/1.1

Host: messaging.example2.org

# Response

HTTP/1.1 303 See Other

Location: http://messaging.example2.org/user/smith

Content-Type: application/xml;charset=UTF-8


POST /user/smith/import;t=bcb9169866c69410be37f68210a6986c HTTP/1.1 > Veriyi dışarıya aktarma talebi

Location: http://messaging.example2.org/user/smith > Dışarıya aktarma sonuçlarını sağlayan URl.

 İstemci bu isteği gönderdiğinde mesajlaşma hizmeti bir arka uç isteğinde bulunur. Bu istek Rehber hizmetinin bir kopyasını alabilmek için Rehber web hizmetine bağlanır. Bu işlemler sırasında sunucular arasında güvenliğin nasıl yönetildiğine dair mesajlaşma web servisi mevcut olabilir. Kişiler web hizmetinin URl dahil edilen bir belirteç yardımıyla.

Bu süreçte sunucular kişi listesi verilerinin yapıldığından emin olmaktan sorumludur. Müşteri yalnızca operasyonu tetiklemekten sorumludur. Bu istemciyi sunucunun uygulama ayrıntılarından ayrı tutar. Eşzamanlı kontrol, Eşzamanlı , veri formatlarındaki farklılıklar v.b Sunucu arasındaki koordinasyonun sonuçlarındandır.

Teknik veya organizasyon nedeniyle böyle bir koordinasyon mümkün olmadığında veya bölgesel sorunlardan dolayı,  istemcinin tüm kişileri indirmekten başka seçeneği yoktur.