Bozulma önleyici Katman deseni

Azure
Azure Logic Apps

Aynı semantiği paylaşmayen farklı alt sistemler arasında bir cephe veya bağdaştırıcı katmanı uygulayın. Bu katman, bir alt sistemin yaptığı istekleri diğer alt sisteme çevirir. Bir uygulamanın tasarımının dış alt sistemlerdeki bağımlılıklarla sınırlı olmadığından emin olmak için bu düzeni kullanın. Bu düzen ilk kez Eric Evans tarafından etki Alanı Odaklı Tasarım konusunda açıklanmıştı.

Bağlam ve sorun

Çoğu uygulama, bazı veri veya işlevler için diğer sistemlere bağımlıdır. Örneğin, eski bir uygulama modern bir sisteme geçirildikten sonra bile bazı eski kaynaklara gereksinim duyabilir. Yeni özelliklerin eski sisteme çağrı yapabilmesi gerekebilir. Bu, özellikle de büyük bir uygulamanın çeşitli özelliklerinin zaman içinde aşamalı olarak modern bir sisteme taşındığı geçiş süreçleri için geçerlidir.

Bu eski sistemler genellikle karışık veri şemaları ya da eski API’ler gibi kalite sorunları yaşar. Eski sistemlerde yaygın olarak kullanılan teknolojiler ve özellikler, daha modern sistemlerden çok farklı olabilir. Yeni uygulamanın eski sistemle birlikte çalışabilmesi için eski altyapıyı, protokolleri, veri modellerini, API’leri veya zorunlu olmadıkça modern bir uygulamaya eklenmeyecek diğer özellikleri desteklemesi gerekebilir.

Yeni ve eski sistem arasındaki erişimin sürdürülmesi, yeni sistemi eski sistemin API’lerinin veya diğer semantik bileşenlerinin en azından bazılarına uymaya zorlayabilir. Bu eski özelliklerde kalite sorunları varsa, bunların desteklenmesi normalde temiz bir tasarıma sahip olabilecek modern bir uygulamanın “bozulmasına” yol açar.

Benzer sorunlar yalnızca eski sistemlerle değil geliştirme ekibinizin denetlemediği tüm dış sistemlerde ortaya çıkabilir.

Çözüm

Aralarına bir bozulma önleyici katman yerleştirerek farklı alt sistemleri yalıtın. Bu katman, iki sistem arasındaki iletişimi çevirerek bir sistemin değişmeden kalmasını sağlarken, diğeri tasarımından ve teknolojik yaklaşımından ödün vermekten kaçınabilir.

Bozulma Önleyici Katman deseninin diyagramı

Yukarıdaki diyagramda iki alt sistemi olan bir uygulama gösterilmektedir. Alt Sistem A, bozulmayı önleme katmanı aracılığıyla B alt sistemine çağrır. A alt sistemi ile bozulma önleme katmanı arasındaki iletişim her zaman A alt sisteminin veri modelini ve mimarisini kullanır. B alt sistemine yapılan bozulma önleme katmanı çağrıları bu alt sistemin veri modeline veya yöntemlerine uygundur. Bozulma önleyici katman, iki sistem arasında çeviri yapılması için gerekli tüm mantığı içerir. Katman, uygulama içinde bir bileşen veya bağımsız bir hizmet olarak uygulanabilir.

Sorunlar ve dikkat edilmesi gerekenler

  • Bozulma önleyici katman, iki sistem arasındaki çağrıların gecikme süresinin artmasına yol açabilir.
  • Bozulma önleyici katman, yönetilmesi ve bakımı yapılması gereken ek bir sistemdir.
  • Bozulma önleyici katmanınızın nasıl ölçeklendirileceğini göz önünde bulundurun.
  • Birden fazla bozulma önleyici katman gerekip gerekmediğine karar verin. Çeşitli teknolojileri veya dilleri kullanarak işlevselliği birden çok hizmete bölmek isteyebilirsiniz veya bozulma önleyici katmanın bölümlenmesini gerektiren başka nedenler olabilir.
  • Bozulma önleyici katmanın diğer uygulama veya hizmetlerinizle ilişkili bir biçimde nasıl yönetileceğini göz önünde bulundurun. İzleme, yayınlama ve yapılandırma süreçlerinizle nasıl tümleştirilecek?
  • İşlem ve veri tutarlılığının korunduğundan ve izlenebildiğinden emin olun.
  • Bozulma önleme katmanının farklı alt sistemler arasındaki tüm iletişimi mi yoksa yalnızca bir özellik alt kümesini mi işlemesi gerektiğini düşünün.
  • Bozulma önleme katmanı bir uygulama geçiş stratejisinin parçasıysa, kalıcı mı yoksa tüm eski işlevler geçirildikten sonra mı kullanımdan kaldırılacağını düşünün.
  • Bu düzen yukarıdaki farklı alt sistemlerle gösterilmiştir, ancak eski kodu monolitik mimaride tümleştirirken olduğu gibi diğer hizmet mimarilerine de uygulanabilir.

Bu düzenin kullanılacağı durumlar

Bu düzeni aşağıdaki durumlarda kullanın:

  • Çok aşamalı bir geçişin planlandığı, ancak yeni ve eski sistemler arasındaki tümleştirmenin korunmasının gerektiği durumlar.
  • İki veya daha fazla alt sistemin farklı semantiği vardır, ancak yine de iletişim kurması gerekir.

Yeni ve eski sistem arasında önemli bir semantik farklılığı yoksa bu düzen uygun olmayabilir.

İş yükü tasarımı

Bir mimar, Azure İyi Tasarlanmış Çerçeve yapılarında ele alınan hedefleri ve ilkeleri ele almak için bozulmaya karşı koruma katmanı deseninin iş yükünün tasarımında nasıl kullanılabileceğini değerlendirmelidir. Örneğin:

Yapı Taşı Bu desen sütun hedeflerini nasıl destekler?
Operasyonel Mükemmellik, standartlaştırılmış süreçler ve ekip uyumu aracılığıyla iş yükü kalitesinin sunulmasına yardımcı olur. Bu desen, yeni bileşen tasarımının, bu eski sistemlerle tümleştirildiğinde farklı veri modellerine veya iş kurallarına sahip olabilecek eski uygulamalar tarafından etkilenmemesini sağlamaya yardımcı olur ve mevcut bileşenleri desteklemeye devam ederken yeni bileşenlerdeki teknik borcu azaltabilir.

- OE:04 Araçlar ve işlemler

Herhangi bir tasarım kararında olduğu gibi, bu desenle ortaya konulabilecek diğer sütunların hedeflerine karşı herhangi bir dengeyi göz önünde bulundurun.