Akıllı anlaşma tümleştirme desenleri

Akıllı anlaşmalar genellikle dış sistemler ve cihazlarla tümleştiri gereken bir iş akışını temsil ediyor.

Bu iş akışlarının gereksinimleri, bir dış sistemden, hizmetten veya cihazdan gelen verileri içeren dağıtılmış bir defterde işlem başlatma ihtiyacıdır. Ayrıca dış sistemlerin dağıtılmış bir defterde akıllı anlaşmalardan kaynaklanan olaylara tepki vermelerini de gerektirmektedir.

REST API ve mesajlaşma tümleştirmesi, dış sistemlerden bir Azure Blockchain Workbench uygulamasına dahil edilen akıllı anlaşmalara işlem gönderir. Ayrıca, bir uygulama içinde yapılan değişikliklere göre dış sistemlere olay bildirimleri gönderir.

Veri tümleştirme senaryoları için Azure Blockchain Workbench blok zincirinden gelen işlemsel verilerin bir birleşimini ve uygulamalar ve akıllı anlaşmalar hakkında meta verileri birleştiren bir dizi veritabanı görünümleri içerir.

Buna ek olarak, tedarik zinciri veya medyayla ilgili senaryolar gibi bazı senaryolar da belgelerin tümleştirmesi gerektirmektedir. Bu Azure Blockchain Workbench doğrudan iş için API çağrıları sağlamasa da, belgeler bir blok zinciri uygulamasına dahil olabilir. Bu bölüm aynı zamanda bu deseni de içerir.

Bu bölüm, bu tümleştirme türlerinin her biri için 12.00.000'den 20.000'e kadar olan çözümlerinizin uygulanması için tanımlanan desenleri içerir.

REST API tabanlı tümleştirme

Oluşturulan web Azure Blockchain Workbench içindeki özellikler, web uygulaması aracılığıyla REST API. Özellikler arasında Azure Blockchain Workbench yükleme, yapılandırma ve yönetim, dağıtılmış bir kayıt defterine işlem gönderme ve uygulama meta verileri ile kayıt defteri verilerini sorgulama yer almaktadır.

Bu REST API öncelikli olarak web, mobil ve bot uygulamaları gibi etkileşimli istemciler için kullanılır.

Bu bölüm, dağıtılmış bir defter ve Azure blok zinciri çalışma ekranı 'ndan zincir veritabanı 'ndan işlemler hakkındaki verileri sorgulayan desenlere odaklanan REST API yönlerini gösteren desenlere bakar.

Dış sistemden dağıtılmış bir genel muhasebeye işlem gönderme

Azure blok zinciri çalışma ekranı REST API dağıtılmış bir muhasebedeki işlemleri yürütmek için kimliği doğrulanmış istekleri gönderir.

Dağıtılmış bir genel muhasebeye işlem gönderme

İşlemleri yürütmek, daha önce gösterilen işlemi kullanarak oluşur, burada:

  • Dış uygulama, Azure blok zinciri çalışma ekranı dağıtımının bir parçası olarak sağlanan Azure Active Directory kimliğini doğrular.
  • Yetkili kullanıcılar, API 'ye isteklerle gönderilebilecek bir taşıyıcı belirteci alır.
  • Dış uygulamalar, REST API taşıyıcı belirtecini kullanarak çağrılar yapar.
  • REST API, isteği bir ileti olarak paketler ve Service Bus gönderir. Buradan alınır, imzalanır ve uygun dağıtılmış bir genel muhasebeye gönderilir.
  • REST API, Azure blok zinciri için SQL DB 'nin isteği kaydetmesine ve geçerli sağlama durumunu kurmaya yönelik bir istek yapar.
  • SQL DB, sağlama durumunu döndürür ve API çağrısı KIMLIĞI onu çağıran dış uygulamaya döndürür.

Blok zinciri çalışma ekranı meta verileri ve dağıtılmış genel muhasebe işlemleri sorgulanıyor

Azure blok zinciri çalışma ekranı REST API, dağıtılmış bir muhasebedeki akıllı sözleşme yürütme ile ilgili ayrıntıları sorgulamak için kimliği doğrulanmış istekleri gönderir.

Meta veriler sorgulanıyor

Sorgulama, daha önce gösterilen işlemi kullanarak gerçekleşir, burada:

  1. Dış uygulama, Azure blok zinciri çalışma ekranı dağıtımının bir parçası olarak sağlanan Azure Active Directory kimliğini doğrular.
  2. Yetkili kullanıcılar, API 'ye isteklerle gönderilebilecek bir taşıyıcı belirteci alır.
  3. Dış uygulamalar, REST API taşıyıcı belirtecini kullanarak çağrılar yapar.
  4. REST API SQL DB 'den istek için verileri sorgular ve istemciye döndürür.

Mesajlaşma tümleştirmesi

Mesajlaşma tümleştirmesi, etkileşimli bir oturum açma mümkün veya istenmediğinde sistemlerle, hizmetlerle ve cihazlarla etkileşimi kolaylaştırır. Mesajlaşma tümleştirmesi iki tür iletiye odaklanır: işlem yapan iletiler dağıtılmış bir muhasebede yürütülür ve işlemler gerçekleştiği sırada bu muhasebe tarafından kullanıma sunulan olaylardır.

Mesajlaşma tümleştirmesi, Kullanıcı oluşturma, sözleşme oluşturma ve sözleşmelerin üzerinde işlem yürütme ile ilgili işlemlerin yürütülmesine ve izlenmesine odaklanır ve öncelikle gözetimsiz arka uç sistemleri tarafından kullanılır.

Bu bölüm, dağıtılmış bir defter ve temel alınan dağıtılmış defter tarafından kullanıma sunulan olay iletilerini temsil eden desenlere işlem gönderen ileti tabanlı API 'nin yönlerine odaklanan desenlere bakar.

Bir akıllı sözleşmeden bir olay tüketicisine tek yönlü olay teslimi

Bu senaryoda, bir akıllı sözleşmede, örneğin bir durum değişikliği veya belirli bir işlem türünün yürütülmesi gibi bir olay oluşur. Bu olay, bir Event Grid aşağı akış tüketicilerine ve bu tüketicilerle ilgili işlemleri gerçekleştirebilir.

Bu senaryoya örnek olarak, bir işlem gerçekleştiğinde bir tüketici uyarı verebilir ve bilgileri bir SQL VERITABANıNA veya Common Data Service kaydetme gibi işlemler gerçekleştirebilir. Bu senaryo, SQL DB 'nin kapalı zincirini doldurmak için aşağıdaki şekilde kullanılan modeldir.

Başka bir deyişle, bir anlaşma bir Outofuyum içine geçtiğinde, bir akıllı anlaşma belirli bir duruma geçiş yaptığında olur. Bu durum değişikliği gerçekleştiğinde, bir uyarının bir yöneticinin cep telefonuna gönderilmesini tetikleyemeyebilir.

Tek yönlü olay teslimi

Bu senaryo, daha önce gösterilen işlemi kullanarak oluşur; burada:

  • Akıllı sözleşme yeni bir duruma geçiş yapar ve bir olayı genel muhasebeye gönderir.
  • Genel muhasebe, olayı alır ve Azure blok zinciri çalışma ekranına gönderir.
  • Azure blok zinciri çalışma ekranı, genel muhasebedeki olaylara abone olur ve olayı alır.
  • Azure Blockchain Workbench, olayı abonelikte abonelere Event Grid.
  • Dış sistemlere abone Event Grid, iletiyi tüketir ve uygun eylemleri gerçekleştirir.

Dış sistemden akıllı anlaşmaya ileti teslimi için tek yol olay teslimi

Ayrıca ters yönde akan bir senaryo da vardır. Bu durumda, bir olay bir algılayıcı veya dış sistem tarafından oluşturulur ve bu olaydan gelen veriler akıllı bir sözleşmeye gönder gerekir.

Yaygın bir örnek, ticari ürün, hisse senedi veya bono fiyatları gibi finansal pazarlardan akıllı bir sözleşmeye veri teslimidir.

Bir uygulamanın Azure Blockchain Workbench biçimde doğrudan teslimi

Bazı uygulamalar, verilerle tümleştir Azure Blockchain Workbench ve iletileri beklenen biçimlerde doğrudan üretir ve gönderir.

Doğrudan teslim

Bu teslim, daha önce gösterilen işlem kullanılarak gerçekleşir; burada:

  • Bir dış sistemde bir olay oluşur ve bu sistem için bir ileti oluşturulmasını Azure Blockchain Workbench.
  • Dış sistemde bu iletiyi bilinen bir biçimde oluşturmak için yazılmış kod vardır ve bu kodu doğrudan Service Bus.
  • Azure Blockchain Workbench veritabanından olaylara abone Service Bus ve iletiyi alır.
  • Azure Blockchain Workbench, dış sistemden belirli bir sözleşmeye veri göndererek defterine bir çağrı gönderir.
  • İleti alındı sonra sözleşme yeni bir eyalete geçiş yapacaktır.

İletinin bilinmeyen bir biçimde teslimi Azure Blockchain Workbench

Bazı sistemler, ileti teslimi tarafından kullanılan standart biçimlerde ileti teslim etmek Azure Blockchain Workbench. Bu gibi durumlarda, bu sistemlerden gelen mevcut mekanizmalar ve ileti biçimleri genellikle kullanılabilir. Özellikle, bu sistemlerin yerel ileti türleri beklenen standart mesajlaşma biçimlerinden Logic Apps, Azure İşlevleri veya başka bir özel kod kullanılarak dönüştürmek için kullanılabilir.

Bilinmeyen ileti biçimi

Bu, daha önce gösterilen işlemi kullanarak oluşur; burada:

  • Bir dış sistemde bir ileti oluşturulmasını tetikleyen bir olay oluşur.
  • Bir mantıksal uygulama veya özel kod, bu iletiyi almak ve standart bir Azure blok zinciri çalışma ekranı biçimli iletiye dönüştürmek için kullanılır.
  • Mantıksal uygulama, dönüştürülmüş iletiyi doğrudan Service Bus gönderir.
  • Azure blok zinciri çalışma ekranı, Service Bus olaylara abone olur ve iletiyi alır.
  • Azure blok zinciri çalışma ekranı, verileri dış sistemden sözleşmede belirli bir işleve gönderen bir genel muhasebeye çağrı başlatır.
  • İşlev yürütülür ve genellikle durumu değiştirir. Durum değişikliği, akıllı sözleşmede yansıtıldığı iş iş akışını ileri doğru şekilde yürütülene kadar, diğer işlevlerin de uygun şekilde yürütülmesini sağlar.

Denetimi bir dış işleme geçme ve tamamlanmayı bekleme

Bir akıllı sözleşmenin iç yürütmeyi durdurması ve harici bir işleme kapalı olması gereken senaryolar vardır. Daha sonra bu dış işlem tamamlanır, akıllı sözleşmeye bir ileti gönderir ve ardından yürütme akıllı sözleşme içinde devam edecektir.

Dış işleme geçiş

Bu model genellikle aşağıdaki yaklaşım kullanılarak uygulanır:

  • Akıllı sözleşme belirli bir duruma geçiş yapar. Bu durumda, bir dış sistem istenen bir eylem yapana kadar hiçbir veya sınırlı sayıda işlev Yürütülebilirler.
  • Durum değişikliği, bir aşağı akış tüketiciye olay olarak ortaya çıkmış.
  • Aşağı akış tüketicisi olayı alır ve dış kod yürütmeyi tetikler.

Diyagramda, bir olayın dağıtılmış muhasebeye geçmesine neden olan bir durum değişikliği sözleşmede gösterilmektedir. Blok zinciri çalışma ekranı daha sonra olayı seçer ve yayımlar.

Akıllı sözleşmeden denetim döndürme

Dış sistemi özelleştirme özelliğine bağlı olarak, iletileri beklediğiniz standart biçimlerden biri içinde teslim Azure Blockchain Workbench olabilir. Dış sistemlerin bu iletilerden birini oluşturabilme özelliğine bağlı olarak, aşağıdaki iki dönüş yolundan hangisinin alınmaktadır?

Bir uygulamanın Azure Blockchain Workbench biçimde doğrudan teslimi

Diyagramda Dış Sistemden gelen bir A P I iletisi, Blockchain Workbench tarafından Service Bus. Blockchain Workbench aracı adına Dağıtılmış Defter'e işlem olarak bir ileti gönderir. Durum değişikliğine neden olduğu Sözleşme'ye geçirildi.

Bu modelde, sözleşmeyle iletişim ve sonraki durum değişikliği önceki işlemden sonra gerçekleşir; burada -

  • Tamamlamaya veya dış kod yürütmede belirli bir kilometre taşına ulaşdıktan sonra, Service Bus bağlı olan Azure Blockchain Workbench.

  • API'nin beklentilerine uygun bir ileti yazmak için doğrudan uyarılanamay sistemler için, bu dönüşüme sahiptir.

  • İletinin içeriği pakettedir ve akıllı anlaşmada belirli bir işleve gönderilir. Bu teslim, dış sistemle ilişkilendirilmiş kullanıcı adına yapılır.

  • İşlev yürütülür ve genellikle durumu değiştiren bir işlevdir. Durum değişikliği, iş iş akışının akıllı anlaşmada yansıtılma durumunu ileri taşır ve diğer işlevlerin artık uygun şekilde yürütülmektedir.

İletinin bilinmeyen bir biçimde teslimi Azure Blockchain Workbench

Bilinmeyen ileti biçimi

Standart biçimdeki bir iletinin doğrudan gönderilemiyor olduğu bu modelde, sözleşmeyle iletişim ve sonrasındaki durum değişikliği, aşağıdaki işlemlerin ardından gerçekleşir:

  1. Tamamlamaya veya dış kod yürütmede belirli bir kilometre taşına ulaşdıktan sonra, Service Bus bağlı olan Azure Blockchain Workbench.
  2. Bir mantıksal uygulama veya özel kod, bu iletiyi almak ve standart bir Azure blok zinciri çalışma ekranı biçimli iletiye dönüştürmek için kullanılır.
  3. Mantıksal uygulama, dönüştürülmüş iletiyi doğrudan Service Bus gönderir.
  4. Azure blok zinciri çalışma ekranı, Service Bus olaylara abone olur ve iletiyi alır.
  5. Azure blok zinciri çalışma ekranı, dış sistemden belirli bir sözleşmeye veri gönderen bir genel muhasebeye çağrı başlatır.
  6. İleti içeriği paketlenir ve akıllı sözleşmede belirli bir işleve gönderilir. Bu teslim, dış sistemle ilişkili kullanıcı adına yapılır.
  7. İşlev yürütülür ve genellikle durumu değiştirir. Durum değişikliği, akıllı sözleşmede yansıtıldığı iş iş akışını ileri doğru şekilde yürütülene kadar, diğer işlevlerin de uygun şekilde yürütülmesini sağlar.

IoT tümleştirmesi

Ortak bir tümleştirme senaryosu, bir akıllı sözleşmede sensörlerden alınan Telemetri verilerinin içermesidir. Sensörler tarafından teslim edilen verilere bağlı olarak, akıllı sözleşmeler bilinçli eylemler alabilir ve sözleşmenin durumunu değiştirebilir.

Örneğin, bir kamyonun sıcaklığını 110 derecenin altına çıkarıyorsa, ilaç 'nın verimliliğini etkileyebilir ve tedarik zincirinde algılanmadığında ve kaldırılmadığında ortak bir güvenlik sorununa neden olabilir. Bir sürücü, arabasını saat başına 100 mil olarak hızlandırdıysanız, sonuçta elde edilen algılayıcı bilgileri sigorta sağlayıcısı tarafından sigorta iptali tetiklenebilir. Araba bir kiralama arabasında ise, GPS verileri, sürücünün kiralama anlaşmasıyla ele alınan bir Coğrafya dışında ne zaman başladığını belirtebilir ve ceza ücreti ödemenize neden olabilir.

Sınama, bu sensörlerden sabit bir şekilde veri teslim edilebilir ve bu verilerin tümünü akıllı bir sözleşmeye göndermek uygun değildir. Tipik bir yaklaşım, tüm iletileri ikincil depoya teslim ederken blok zincirine gönderilen ileti sayısını sınırlandırmalıdır. Örneğin, yalnızca sabit bir aralıkta (örneğin, saatte bir kez) alınan iletileri ve bir akıllı anlaşma için kabul edildik bir aralığın dışında yer alan bir içerdiği değeri teslim edin. Toleransların dışında yer alan değerleri denetleme, anlaşma iş mantığıyla ilgili verilerin alınarak yürütülebilir. Aralıkta değerin denetlenerek algılayıcının hala rapor veriyor olduğu onaylar. Daha geniş raporlama, analiz ve makine öğrenmesi sağlamak için tüm veriler ikincil bir raporlama deposuna gönderilir. Örneğin, akıllı anlaşma için GPS için algılayıcı okumaları her dakika gerekli olmayamasa da, raporlarda veya eşleme yollarında kullanılacak ilgi çekici veriler sağlanıyor olabilir.

Azure platformunda, cihazlarla tümleştirme genellikle IoT Hub. IoT Hub, iletilerin içeriğe göre yönlendiren bir yöntem olduğunu ve daha önce açıklanan işlevsellik türünü sağladığını gösterir.

IoT iletileri

İşlemde bir desen yer almaktadır:

  • Cihaz, ağ geçidine doğrudan veya bir alan ağ geçidi üzerinden IoT Hub.
  • IoT Hub iletileri alır ve iletileri iletinin içeriğini kontrol etmek için kurulan yollara göre değerlendirir, örneğin. Algılayıcı 50 derecenin üzerinde bir sıcaklık rapor ediyor mu?
  • Bu IoT Hub, yol için tanımlanmış bir Service Bus ölçütlerine uyan iletiler gönderir.
  • Mantıksal Uygulama veya başka bir kod, yol Service Bus IoT Hub kodunu dinler.
  • Mantıksal Uygulama veya diğer kod, iletiyi alır ve bilinen bir biçime dönüştürer.
  • Dönüştürülen ileti artık standart biçimde, Service Bus için Azure Blockchain Workbench.
  • Azure Blockchain Workbench veritabanından olaylara abone Service Bus ve iletiyi alır.
  • Azure Blockchain Workbench, dış sistemden belirli bir sözleşmeye veri göndererek defterine bir çağrı gönderir.
  • İleti alındı sonra sözleşme verileri değerlendirir ve bu değerlendirmenin sonucuna göre durumu değiştirebilir. Örneğin, yüksek sıcaklık için durumu Uyumluluk Dışında olarak değiştirebilir.

Veri tümleştirmesi

REST ve ileti tabanlı API 'nin yanı sıra Azure blok zinciri çalışma ekranı Ayrıca, uygulama ve Sözleşme meta verilerinin yanı sıra dağıtılmış defterlerden işlem verileri ile doldurulmuş bir SQL DB 'ye erişim sağlar.

Veri tümleştirmesi

Veri tümleştirmesi iyi bilinmektedir:

  • Azure blok zinciri, uygulamalar, iş akışları, sözleşmeler ve işlemler hakkındaki meta verileri normal çalışma davranışının bir parçası olarak depolar.
  • Dış sistemler veya Araçlar veritabanı sunucu adı, veritabanı adı, kimlik doğrulama türü, oturum açma kimlik bilgileri ve hangi veritabanı görünümlerinin kullanıldığı hakkında bilgi toplamayı kolaylaştırmak için bir veya daha fazla iletişim kutusu sağlar.
  • Sorgular, dış sistemler, hizmetler, raporlama, geliştirici araçları ve kurumsal üretkenlik araçları tarafından aşağı akış tüketimini kolaylaştırmak için veritabanı görünümlerine karşı yazılır.

Depolama tümleştirmesi

Birçok senaryo, attestable dosyalarını birleştirme gereksinimini gerektirebilir. Birden çok nedenden dolayı, dosyaları bir blok zincirine yerleştirmek uygun değildir. Bunun yerine, yaygın bir yaklaşım bir dosyaya karşı şifreleme karması (örneğin, SHA-256) gerçekleştirmek ve bu karmayı dağıtılmış bir defter üzerinde paylaşmalıdır. Daha sonra herhangi bir zamanda karmayı yeniden gerçekleştirmek aynı sonucu döndürmelidir. Dosya değiştirilirse, görüntüde yalnızca bir piksel değiştirilse bile, karma farklı bir değer döndürür.

Depolama tümleştirmesi

Bu model şu şekilde uygulanabilir:

  • Bir dış sistem, Azure depolama gibi bir depolama mekanizmasında bir dosyayı sürdürür.
  • Bir karma dosya veya dosya ile, sahip için bir tanımlayıcı, dosyanın bulunduğu URL, vs. gibi ilişkili meta veriler ile oluşturulur.
  • Karma ve tüm meta veriler akıllı bir sözleşmede bir işleve gönderilir; Örneğin, dosya eklendi
  • Gelecekte dosya ve meta veriler karma hale getirilir ve bu, genel muhasebede depolanan değerlerle karşılaştırılır.

REST ve ileti API 'Lerini kullanarak tümleştirme desenleri uygulama önkoşulları

Bir dış sistemin veya cihazın REST veya ileti API'sini kullanarak akıllı anlaşmayla etkileşim kurmasını kolaylaştırmak için aşağıdakilerin gerçekleşmesi gerekir:

  1. Konsorsiyum Azure Active Directory, dış sistemi veya cihazı temsil eden bir hesap oluşturulur.
  2. Uygulamanıza yönelik bir veya daha fazla akıllı Azure Blockchain Workbench, dış sisteminize veya cihazınıza gelen olayları kabul etmek için tanımlanmış işlevlere sahiptir.
  3. Akıllı anlaşmanıza yönelik uygulama yapılandırma dosyası, sistemin veya cihazın atandığı rolü içerir.
  4. Akıllı anlaşmanız için uygulama yapılandırma dosyası, bu işlevin tanımlı rol tarafından çağrıldılarını belirtir.
  5. Uygulama yapılandırma dosyası ve akıllı anlaşmaları Azure Blockchain Workbench.

Uygulama karşıya yüklendiktan sonra, Azure Active Directory sistem için ortak hesap sözleşmeye ve ilişkili role atanır.

Tümleştirme Kodu Yazmadan Önce Dış Sistem Tümleştirme Akışlarını Test Etme

Dış sistemlerle tümleştirme, birçok senaryonun temel gereksinimlerdendir. Dış sistemlerle tümleştiriken kod geliştirmeden önce veya paralel olarak akıllı anlaşma tasarımını doğrulayabilirsiniz.

Azure Active Directory (Azure AD) kullanımı, geliştirici üretkenliğini ve değer elde etmek için gereken zamanı büyük ölçüde hızlandırır. Özel olarak, bir dış sistemle kod tümleştirmesi önemsiz bir süre olabilir. Azure AD'nin ve Azure Blockchain Workbench tarafından otomatik UX oluşturma özelliğini kullanarak geliştiricilerin dış sistem olarak Blockchain Workbench oturum açmasına ve UX aracılığıyla dış sistemden gelen değerleri tamamlamasına olanak sabilirsiniz. Dış sistemler için tümleştirme kodu yazmadan önce kavram kanıtı ortamında hızla fikirler geliştirebilir ve doğrularsınız.