Hálózati alkalmazások létrehozására szolgáló keretrendszer kiadása ErgoFramework 2.2

Megtörtént az ErgoFramework 2.2 következő kiadása, amely a teljes Erlang hálózati stacket és annak OTP-könyvtárát Go nyelven implementálta. A keretrendszer rugalmas eszközöket biztosít a fejlesztő számára az Erlang világából, hogy elosztott megoldásokat hozzon létre a Go nyelven, kész általános célú tervezési mintákkal gen.Application, gen.Supervisor és gen.Server, valamint speciális - gen. Stage (elosztott pub/sub), gen. Saga (elosztott tranzakciók, a SAGA tervezési minta megvalósítása) és gen.Raft (a Raft protokoll megvalósítása).

Ezenkívül a keretrendszer proxyfunkciókat biztosít végpontok közötti titkosítással, amely az Erlang/OTP és az Elixir esetében nem érhető el. Mivel a Go nyelvnek nincs közvetlen analógja az Erlang folyamattal, a keretrendszer gorutinokat használ a gen.Server alapjaként egy „recover” burkolóval a kivételes helyzetek kezelésére. A projekt kódját az MIT licence alatt terjesztik.

Az ErgoFramework hálózati verem teljes mértékben megvalósítja az Erlang protokoll DIST specifikációját. Ez azt jelenti, hogy az ErgoFramework alapján írt alkalmazások natív módon működnek minden Erlang vagy Elixir programozási nyelven írt alkalmazással (egy példa az Erlang csomóponttal való interakcióra). Azt is érdemes megjegyezni, hogy a gen.Stage tervezési minta az Elixir GenStage specifikáció szerint van megvalósítva, és azzal teljes mértékben kompatibilis (megvalósítási példa).

Az új kiadásban:

  • Új sablonok hozzáadva
    • A gen.Web egy webes API átjáró (más néven Backend For Frontend) tervezési minta. Példa.
    • A gen.TCP egy olyan sablon, amely lehetővé teszi a TCP kapcsolat elfogadóinak készletének megvalósítását minimális kódírási erőfeszítéssel. Példa.
    • gen.UDP - hasonló a gen.TCP sablonhoz, csak az UDP protokollhoz. Példa.
  • Egy új Events funkciót javasoltak egy egyszerű eseménybusz megvalósításával egy csomóponton belül, amely lehetővé teszi, hogy mechanizmusokat hozzon létre az események cseréjéhez (közzététel/sub) a helyi folyamatok között. Példa.
  • Hozzáadott támogatás a típusregisztrációhoz, amely lehetővé teszi az üzenetek automatikus szerializálását/deserializálását natív Golang adattípusba. Ez azt jelenti, hogy többé nem kell minden fogadott üzenethez használnia az etf.TermIntoStruct programot. A regisztrált típusok automatikusan átalakulnak a megadott típusba, ami jelentősen felgyorsítja az elosztott csomópontok közötti üzenetváltás teljesítményét.

Forrás: opennet.ru

Hozzászólás