Použití ORDA ke zvýšení výkonu v režimu klient/server

Automaticky přeloženo z Deepl

Použití ORDA pro přístup k rozsáhlým tabulkám (zejména těm s relacemi) v režimu klient/server bylo výrazně vylepšeno. S verzí 4D v17 R5 uvidíte 2-3x vyšší výkon v síti LAN a až 30x vyšší výkon v síti WAN. A co je nejlepší – není třeba nic měnit ve vašem kódu, vše je automatické. Zajímavé, že? No, pojďme se ponořit do podrobností.

Obvykle se při načítání záznamu v klientské aplikaci přenášejí všechna pole záznamu ze serveru. Dokonce i ta, která nepotřebujete. Výkon tedy závisí na návrhu vaší aplikace, struktuře databáze a možnostech sítě … zejména při použití velkých tabulek s více nebo velkými poli. Například na pomalé síti WAN při použití jen několika polí v seznamových polích založených na výběru (z tabulek s desítkami polí, které mají mnoho vztahů/polí a velký text/obrázky) bude vaše aplikace brzy mimo provoz.

Požadavky ORDA dříve používaly stejný princip načítání polí … až dosud! Ve verzi v17 R5 server analyzuje potřebné atributy v každé datové třídě a identifikuje související atributy, takže se mezi serverem a klientem přenášejí pouze požadovaná data.

PŘÍKLADOVÁ STUDIE

Pro ilustraci těchto vylepšení použijme jednoduchou databázi:

Tabulka Book má 1 000 záznamů. Její souhrnné pole obsahuje od 100 do 2 000 znaků a pole miniatur obsahuje přibližně 10KB obrázků. V související tabulce Autor obsahuje pole životopisu v každém záznamu 10 000 znaků.

Pomocí této databáze jsme vytvořili dva seznamy založené na výběru: jeden pomocí výběru entit ORDA a druhý pomocí klasického výběru. V každém poli seznamu jsme se rozhodli zobrazit název knihy s jejím autorem, abychom aktivovali vztahy. Přidali jsme také akci pro automatické posouvání pole seznamu, aby výsledky nemohla narušit žádná lidská činnost:

Měření v tabulce níže ukazují rámce TCP, které byly přeneseny mezi serverem a klientem (včetně všech potvrzovacích odpovědí) příkladu ve videu. Síťové připojení klienta je Wi-Fi typu „802.11ac“ (250 Mb/s stahování, 100 Mb/s odesílání , se zpožděním 1 ms):

Mode Frames Overall size (bytes) Doba trvání: (ms)
Klasické 4,070 473,924 5,747
ORDA 46 6,744 692

Jak vidíte, při použití ORDA se přenese jen několik snímků! A doba trvání? Čím pomalejší je síť, tím větší je rozdíl mezi ORDA a klasickým přístupem.

Nový koncept: Kontext OPTIMALIZACE

Ten umožňuje zaznamenat, co se systém naučil, a později to znovu použít. K tomu stačí vytvořit objekt volby obsahující atribut„kontext“ a před zadáním objektu jako parametru zadat požadovanou hodnotu:

Pokud (Form.currentContext=Null)
Form .currentContext:=New object("context"; "contextListboxBookAndAuthor")
End if
Form .books:=ds.Book.all(Form.currentContext)

Tento volitelný objekt lze nyní použít s Create entity selection příkazem a následujícími členskými metodami: dataClass. query (), entitySelection. query (), dataClass. fromCollection () a dataClass. all().

N.B: V tabulce měření jsme neaktivovali funkci kontextu, abychom byli co nejpřesnější.

Závěrem:

ORDA zjednodušuje váš vývoj:

  • Urychluje přenos informací – beze změn kódu.
  • Nemusíte přesouvat velká pole z tabulky a ukládat je do související tabulky 1-1, abyste zabránili dopadům na režim klient/server.
  • Když chcete přistupovat k serveru mimo síť LAN, můžete nyní připojit klienta přímo … bez použití technologií vzdálené plochy.
Avatar
• Product Owner • Damien Fuzeau se připojil k týmu 4D Product v únoru 2019. Jako Product Owner má na starosti psaní uživatelských příběhů a jejich následný převod do funkčních specifikací. Jeho úkolem je také zajistit, aby dodávané implementace funkcí vyhovovaly potřebám zákazníků. Damien vystudoval softwarové inženýrství na University of Nantes. Ve své bývalé společnosti strávil více než 23 let, nejprve jako vývojář (objevil 4D v roce 1997) a později jako technický manažer a softwarový architekt. Tato společnost je partnerem 4D OEM a nasadila obchodní software založený na 4D pro tisíce uživatelů na stovkách serverů. Damien je tedy zvyklý na 4D vývoj a nasazení ve vícejazyčném kontextu.