Vzory integrace inteligentních kontraktů
Inteligentní kontrakty často reprezentují obchodní pracovní postup, který je potřeba integrovat s externími systémy a zařízeními.
Požadavky těchto pracovních postupů zahrnují nutnost iniciovat transakce v distribuované hlavní knize, které obsahují data z externího systému, služby nebo zařízení. Také potřebují, aby externí systémy reagovaly na události pocházející z inteligentních smluv v distribuované účetní knize.
Integrace REST API a zasílání zpráv odesílá transakce z externích systémů do inteligentních kontraktů, které jsou součástí aplikace Azure blockchain Workbench. Odesílá také oznámení o událostech externím systémům na základě změn, které probíhají v rámci aplikace.
V případě scénářů integrace dat zahrnuje Azure blockchain Workbench sadu databázových zobrazení, která sloučí kombinaci transakčních dat z blockchain a meta data o aplikacích a inteligentních kontraktech.
Kromě toho můžou některé scénáře, jako jsou třeba ty, které souvisejí s dodavatelským řetězcem nebo médiem, vyžadovat i integraci dokumentů. I když Azure blockchain Workbench neposkytuje volání rozhraní API pro zpracování dokumentů přímo, můžou se dokumenty začlenit do aplikace blockchain. Tato část také obsahuje tento model.
Tato část obsahuje vzory identifikované pro implementaci každého z těchto typů integrací v rámci kompletních řešení.
Integrace na základě REST API
Možnosti v rámci webové aplikace vygenerované službou Azure blockchain Workbench jsou zpřístupněny prostřednictvím REST API. Mezi možnosti patří nahrávání, konfigurace a Správa aplikací, odesílání transakcí do distribuované knihy a dotazování na metadata aplikace a data hlavní knihy.
REST API se primárně používá pro interaktivní klienty, jako jsou webové, mobilní a robotské aplikace.
Tato část se zaměřuje na vzory zaměřené na aspekty REST API, které odesílaly transakce do distribuovaného hlavní knihy, a vzory, které se dotazují na data o transakcích Azure Blockchain Workbench z databáze mimo řetězec.
Odesílání transakcí do distribuovaného hlavní knihy z externího systému
Služba Azure Blockchain Workbench REST API ověřené požadavky na provádění transakcí v distribuovaném hlavní knihy.

K provádění transakcí dochází pomocí dříve znázorněných procesů, kde:
- Externí aplikace se ověřuje v Azure Active Directory zřízené v rámci nasazení Azure Blockchain Workbench nasazení.
- Autorizovaní uživatelé obdrží bearer token, který je možné odeslat s požadavky na rozhraní API.
- Externí aplikace hovory do REST API pomocí bearer tokenu.
- Aplikace REST API požadavek zabalíčky jako zprávu a odešle ji do Service Bus. Odtud se načítá, podepíše a odesílá do příslušného distribuovaného hlavní knihy.
- Správce REST API do služby Azure Blockchain Workbench SQL DB požadavek zaznamená a vytvoří aktuální stav zřizování.
- Databáze SQL vrátí stav zřizování a volání rozhraní API vrátí ID externí aplikaci, která ho volala.
Dotazování Blockchain Workbench metadat a distribuovaných transakcí hlavní knihy
Služba Azure Blockchain Workbench REST API ověřené požadavky na podrobnosti dotazu související s prováděním inteligentních kontraktů v distribuovaném hlavní knihy.

K dotazování dochází pomocí dříve znázorněných procesů, kde:
- Externí aplikace se ověřuje v Azure Active Directory zřízené v rámci nasazení Azure Blockchain Workbench nasazení.
- Autorizovaní uživatelé obdrží bearer token, který je možné odeslat s požadavky na rozhraní API.
- Externí aplikace hovory do REST API pomocí bearer tokenu.
- Aplikace REST API dotazuje data na požadavek z DATABÁZE SQL a vrátí je klientovi.
Integrace zasílání zpráv
Integrace zasílání zpráv usnadňuje interakci se systémy, službami a zařízeními, kde interaktivní přihlášení není možné nebo žádoucí. Integrace zasílání zpráv se zaměřuje na dva typy zpráv: zprávy požadující transakce spouštěné v distribuované účetní knize a události vystavené touto hlavní knihou v době, kdy byly provedeny transakce.
Integrace zasílání zpráv se zaměřuje na provádění a monitorování transakcí souvisejících s vytvořením uživatele, vytvořením smlouvy a prováděním transakcí ve smlouvách a primárně se používá v bezsystémovém back- Endu.
Tato část se zabývá vzory, které se zaměřují na aspekty rozhraní API založeného na zprávách, které odesílají transakce do distribuované hlavní knihy a vzory, které reprezentují zprávy událostí vystavené základní distribuovanou knihou.
Jednosměrné doručování událostí z inteligentní smlouvy na příjemce události
V tomto scénáři dojde k události v rámci inteligentní smlouvy, například změny stavu nebo provedení konkrétního typu transakce. Tato událost je vysílána prostřednictvím Event Grid příjemcům pro příjem dat a uživatelé pak přijmou příslušné akce.
Příkladem tohoto scénáře je, že když dojde k transakci, příjemce se upozorní a může provést akci, jako je například záznam informací v databázi SQL nebo Common Data Service. Tento scénář je stejný jako ten, který slouží k naplnění svého řetězce SQL DB v aplikaci Workbench.
Další by byl v případě, že se inteligentní kontrakt změní na určitý stav, například když kontrakt přejde do OutOfCompliance. Když dojde ke změně stavu, může se spustit výstraha, která se pošle na mobilní telefon správce.

K tomuto scénáři dochází pomocí dříve popsaného procesu, kde:
- Inteligentní kontrakt přejde do nového stavu a odešle událost do hlavní knihy.
- Tato kniha obdrží a doručuje událost do Azure blockchain Workbench.
- Azure blockchain Workbench se přihlásí k odběru událostí z hlavní knihy a přijme událost.
- Azure Blockchain Workbench publikuje událost odběratelům na Event Grid.
- Externí systémy se přihlašují k odběru Event Grid, využívají zprávu a prochovávají příslušné akce.
Jednosměnné doručování událostí zprávy z externího systému do inteligentního kontraktu
Existuje také scénář, který prochází opačným směrem. V takovém případě senzor nebo externí systém vygeneruje událost a data z této události by se měla odeslat inteligentnímu kontraktu.
Běžným příkladem je doručení dat z finančních trhů, například cen komodit, akcií nebo akcií, do inteligentního kontraktu.
Přímé doručení Azure Blockchain Workbench v očekávaném formátu
Některé aplikace jsou vytvořené tak, aby se integrují s Azure Blockchain Workbench a přímo generují a odesílaují zprávy v očekávaných formátech.

K tomuto doručení dochází pomocí dříve znázorněných procesů, kde:
- V externím systému dojde k události, která aktivuje vytvoření zprávy pro Azure Blockchain Workbench.
- Externí systém má kód napsaný pro vytvoření této zprávy ve známém formátu a odesílá ji přímo do Service Bus.
- Azure Blockchain Workbench přihlášení k odběru událostí z Service Bus a načte zprávu.
- Azure Blockchain Workbench iniciuje volání do hlavní knihy a odesílá data z externího systému do konkrétního kontraktu.
- Po přijetí zprávy se kontrakt přechází do nového stavu.
Doručení zprávy ve formátu neznámém pro Azure Blockchain Workbench
Některé systémy není možné upravit tak, aby doručovány zprávy ve standardních formátech používaných Azure Blockchain Workbench. V těchto případech je možné často použít existující mechanismy a formáty zpráv z těchto systémů. Konkrétně lze nativní typy zpráv těchto systémů transformovat pomocí Logic Apps, Azure Functions nebo jiného vlastního kódu pro mapování na jeden ze standardních očekávaných formátů zasílání zpráv.

K tomu dochází v dříve použitém procesu, kde:
- K události dojde v externím systému, který spustí vytvoření zprávy.
- Aplikace logiky nebo vlastní kód slouží k přijetí této zprávy a jejich transformaci na standardní formátovanou zprávu ve formátu Azure blockchain Workbench.
- Aplikace logiky pošle transformované zprávy přímo do Service Bus.
- Azure blockchain Workbench se přihlašuje k odběru událostí z Service Bus a zprávu načte.
- Azure blockchain Workbench inicializuje volání do hlavní knihy a odesílá data z externího systému do konkrétní funkce v kontraktu.
- Funkce se spustí a obvykle upraví stav. Změna stavu přesune směrem nahoru pracovní postup, který se projeví v rámci inteligentního kontraktu, takže se teď v případě potřeby spustí další funkce.
Přechod řízení na externí proces a čekání na dokončení
Existují situace, kdy je nutné, aby inteligentní kontrakt zastavil interní spuštění a předání externímu procesu. Tento externí proces se pak dokončí, pošle zprávu na inteligentní kontrakt a provádění by pak pokračovalo v rámci inteligentní smlouvy.
Přechod k externímu procesu
Tento model je obvykle implementován pomocí následujícího přístupu:
- Inteligentní kontrakt přejde do určitého stavu. V tomto stavu je možné provést buď žádné, nebo omezené množství funkcí, dokud externí systém neprovede požadovanou akci.
- Změna stavu je proplochá jako událost příjemci pro příjem dat.
- Klient pro příjem dat obdrží událost a aktivuje provádění externího kódu.

Vrácení ovládacího prvku z inteligentního kontraktu
V závislosti na schopnosti přizpůsobit externí systém může nebo nemusí být schopen doručovat zprávy v jednom ze standardních formátů, které Azure Blockchain Workbench očekává. Na základě schopnosti externích systémů vygenerovat jednu z těchto zpráv určuje, která z následujících dvou návratových cest se zachytá.
Přímé doručení Azure Blockchain Workbench v očekávaném formátu

V tomto modelu probíhá komunikace s kontraktem a následná změna stavu po předchozím procesu, kde -
Po dosažení dokončení nebo konkrétního milníku v externím provádění kódu se do souboru Service Bus událost připojená Azure Blockchain Workbench.
U systémů, které nelze přímo přizpůsobit tak, aby napsaly zprávu, která odpovídá očekáváním rozhraní API, se transformuje.
Obsah zprávy se zabalí a odesílá do konkrétní funkce inteligentního kontraktu. Toto doručení se provádí jménem uživatele přidruženého k externímu systému.
Funkce se spustí a obvykle upraví stav. Změna stavu se posune vpřed a obchodní pracovní postup se promítne do inteligentního kontraktu, což umožňuje, aby se další funkce spouštěly podle potřeby.
Doručení zprávy ve formátu neznámém pro Azure Blockchain Workbench

V tomto modelu, kdy zprávu ve standardním formátu nelze odeslat přímo, probíhá komunikace s kontraktem a následná změna stavu po předchozím procesu, kde:
- Po dosažení dokončení nebo konkrétního milníku v externím provádění kódu se do souboru Service Bus událost připojená Azure Blockchain Workbench.
- Aplikace logiky nebo vlastní kód slouží k přijetí této zprávy a jejich transformaci na standardní formátovanou zprávu ve formátu Azure blockchain Workbench.
- Aplikace logiky pošle transformované zprávy přímo do Service Bus.
- Azure blockchain Workbench se přihlašuje k odběru událostí z Service Bus a zprávu načte.
- Azure blockchain Workbench inicializuje volání do hlavní knihy a odesílá data z externího systému do konkrétní smlouvy.
- Obsah zprávy se zabalí a odešle do konkrétní funkce v rámci inteligentního kontraktu. Toto doručení se provádí jménem uživatele, který je přidružený k externímu systému.
- Funkce se spustí a obvykle upraví stav. Změna stavu přesune směrem nahoru pracovní postup, který se projeví v rámci inteligentního kontraktu, takže se teď v případě potřeby spustí další funkce.
Integrace IoT
Běžný scénář integrace je zahrnutí dat telemetrie získaných ze senzorů v rámci inteligentních kontraktů. V závislosti na datech dodaných senzory mohou chytré smlouvy přijmout informovaná opatření a měnit stav smlouvy.
Pokud například nákladní automobil, který dodává lékařství, dosáhl teploty společnosti do 110 stupňů, může to mít dopad na účinnost lékařství a může způsobit potíže s veřejným zabezpečením, pokud se nezjistí a odebere z dodavatelského řetězce. Pokud ovladač zrychluje své auto na 100 mil za hodinu, mohou výsledné informace snímače aktivovat zrušení pojištění jejich poskytovatelem pojištění. Pokud byl automobil půjčovnou auta, data GPS by mohla indikovat, že řidič přešel mimo zeměpisnou smlouvu, na kterou se vztahuje Smlouva o pronájmu, a účtuje pokutu.
Důvodem je, že tyto senzory můžou data doručovat na konstantu a není vhodné posílat všechna tato data do inteligentní smlouvy. Typickým přístupem je omezení počtu zpráv odeslaných do blockchain při doručování všech zpráv do sekundárního úložiště. Můžete například doručovat zprávy přijaté pouze v pevně stanoveném intervalu, například jednou za hodinu a když obsažená hodnota spadá mimo dohodnutý rozsah inteligentního kontraktu. Kontrola hodnot, které nespadají do tolerancí, zajišťuje, že se přijata a provedena data související s obchodní logikou kontraktů. Kontrola hodnoty v intervalu potvrzuje, že se senzor stále hlásí. Všechna data se odesílat do sekundárního úložiště sestav, aby bylo možné širší vytváření sestav, analýzy a strojové učení. Například při získávání odečtů senzorů pro GPS nemusí být pro inteligentní kontrakt potřeba každou minutu, ale zadat zajímavá data, která se mají použít v sestavách nebo trasách mapování.
Na platformě Azure se integrace se zařízeními obvykle provádí pomocí IoT Hub. IoT Hub směrování zpráv na základě obsahu a umožňuje typ funkcí popsaných výše.

Tento proces znázorňuje vzor:
- Zařízení komunikuje přímo nebo přes bránu pole, aby IoT Hub.
- IoT Hub zprávy přijímá a vyhodnocuje je proti trasám, které kontroluly například obsah zprávy. Hlásí senzor teplotu vyšší než 50 stupňů?
- Služba IoT Hub zprávy, které splňují kritéria, do definovaného Service Bus pro trasu.
- Aplikace logiky nebo jiný kód naslouchá aplikaci logiky Service Bus která IoT Hub pro trasu vytvořená.
- Aplikace logiky nebo jiný kód načítá a transformuje zprávu do známého formátu.
- Transformovaná zpráva, která je teď ve standardním formátu, se odesílá do Service Bus pro Azure Blockchain Workbench.
- Azure Blockchain Workbench přihlášení k odběru událostí z Service Bus a načte zprávu.
- Azure Blockchain Workbench iniciuje volání do hlavní knihy a odesílá data z externího systému do konkrétního kontraktu.
- Po přijetí zprávy kontrakt vyhodnotí data a může změnit stav na základě výsledku tohoto vyhodnocení, například při vysoké teplotě, změnit stav na Mimo dodržování předpisů.
Integrace dat
Kromě REST a rozhraní API založeného na zprávách poskytuje Azure blockchain Workbench také přístup k SQL DB naplněný metadaty aplikace a kontraktu a také transakční data z distribuovaných knih.

Integrace dat je dobře známá:
- Azure blockchain Workbench ukládá v rámci normálního provozního chování metadata o aplikacích, pracovních postupech, kontraktech a transakcích.
- Externí systémy nebo nástroje poskytují jednu nebo více dialogových oken, které usnadňují shromažďování informací o databázi, jako je název databázového serveru, název databáze, typ ověřování, přihlašovací údaje a informace o tom, která zobrazení databáze se mají využít.
- Dotazy se zapisují mezi zobrazeními databáze a usnadňují tak příjem dat z externích systémů, služeb, sestav, vývojářských nástrojů a podnikových nástrojů pro produktivitu.
Integrace úložiště
Řada scénářů může vyžadovat, abyste museli začlenit ověřené soubory. Z několika důvodů je nevhodné vkládat soubory do blockchain. Běžným přístupem je místo toho provést kryptografickou hodnotu hash (například SHA-256) proti souboru a sdílet tuto hodnotu hash v distribuované účetní knize. Opětovné provádění algoritmu hash v jakékoli budoucí době by mělo vracet stejný výsledek. Pokud je soubor upravený, i když se v obrázku změní jenom jeden pixel, hodnota hash vrátí jinou hodnotu.

Vzor lze implementovat tam, kde:
- Externí systém uchovává soubor v úložném mechanismu, například Azure Storage.
- Hodnota hash se vygeneruje se souborem nebo souborem a přidruženými metadaty, jako je například identifikátor vlastníka, adresa URL, kde je soubor umístěný atd.
- Hodnota hash a jakákoli metadata se odešlou do funkce v rámci inteligentních kontraktů, jako je Přidání .
- V budoucnu může být soubor a meta data znovu hash a porovnána s hodnotami uloženými v hlavní knize.
Předpoklady pro implementaci integračních vzorů pomocí rozhraní REST a zpráv API
Pokud chcete externímu systému nebo zařízení usnadnit interakci s inteligentním kontraktem pomocí rozhraní REST nebo rozhraní API pro zprávy, musí dojít k následujícímu:
- V Azure Active Directory pro konsorcium se vytvoří účet, který představuje externí systém nebo zařízení.
- Jeden nebo více vhodných inteligentních kontraktů pro Azure Blockchain Workbench aplikace mají definované funkce pro příjem událostí z externího systému nebo zařízení.
- Konfigurační soubor aplikace pro inteligentní kontrakt obsahuje roli, která je přiřazena systému nebo zařízení.
- Konfigurační soubor aplikace pro váš inteligentní kontrakt určuje, ve kterých stavech je tato funkce volána definovanou rolí.
- Konfigurační soubor aplikace a jeho inteligentní kontrakty se nahrají do Azure Blockchain Workbench.
Po nahrání aplikace se Azure Active Directory účtu externího systému přiřadí kontraktu a přidružené roli.
Testování toků integrace externího systému před napsání integračního kódu
Integrace s externími systémy je klíčovým požadavkem mnoha scénářů. Je žádoucí mít možnost ověřit návrh inteligentních kontraktů před vývojem kódu nebo souběžně s ním, aby se integruje s externími systémy.
Použití služby Azure Active Directory (Azure AD) může výrazně zvýšit produktivitu vývojářů a čas k hodnotě. Konkrétně může integrace kódu s externím systémem trvat netýkací se času. Pomocí Azure AD a automatického generování uživatelského rozhraní službou Azure Blockchain Workbench můžete vývojářům povolit přihlášení k Blockchain Workbench jako k externímu systému a naplnění hodnot z externího systému prostřednictvím uživatelského rozhraní. Před vytvořením integračního kódu pro externí systémy můžete rychle vyvíjet a ověřovat nápady v prostředí pro ověření konceptu.