Co je aktivní objekt?

V počítačovém programování a inženýrství je aktivní objekt typem vzoru návrhu, který lze použít k zajištění toho, aby byla určitá služba vždy k dispozici ve vícevláknovém nebo souběžném systému. Aktivní objekt je objekt, který implementuje mechanismus, takže může přijímat a zpracovávat vstup z externích objektů, aniž by musel externí objekty čekat na dokončení provádění. Tento mechanismus také umožňuje mnoha objektům, které mohou všechny běžet současně, používat aktivní objekty bez možnosti dlouhých blokačních časů, ve kterých se musí souběžné procesy zastavit a čekat na přístup. To se nejčastěji dosahuje zabalením aktivních objektů do veřejně přístupného rozhraní, které se nazývá proxy, a poté implementováním typu systému front uvnitř objektů, takže zprávy se ukládají pro pozdější zpracování. Tím se vytvoří návrhový vzor, ​​ve kterém objekty odesílají zprávy aktivním objektům, a poté pokračuje ve zpracování, dokud aktivní objekt zprávu nezpracuje, a později informuje volající objekty o výsledcích, aby mohly odpovídajícím způsobem aktualizovat své stavy.

Mimo návrhový vzor aktivního objektu lze normální objekt nazvat pasivním objektem. V jednoduchém příkladu programu by pasivní objekt mohl fungovat jako relé chatového serveru, ve kterém vzdálené objekty kontaktují pasivní objekt a předají zprávu všem ostatním na serveru. Kdykoli objekt pasivního serveru přijme chatovou zprávu ze vzdáleného objektu, musí okamžitě zpracovat požadavek a poté okamžitě odeslat výstup, zatímco vzdálený objekt zastaví své vlastní provádění, dokud není proces dokončen, což je efekt známý jako blokování. Vytváření různých podprocesů v programu může vyřešit problém blokování provádění, ale pak zahajuje problémy se synchronizací.

Ve vzoru návrhu aktivního objektu by stejný serverový objekt ve výše uvedeném příkladu byl spuštěn ve svém vlastním vláknu odděleně od ostatních objektů. Také by to bylo zabaleno v nějakém typu rozhraní známém jako proxy, které také běží v samostatném vláknu, někdy hlavním vláknu provádění programu. Pokud vzdálený objekt chce, aby serverový server odeslal chatovou zprávu, kontaktuje objekt proxy, předá mu všechny požadované informace a poté se vrátí do svého normálního stavu provádění, místo čekání.

Rozhraní proxy pak převádí informace ze vzdáleného objektu na zprávu, kterou předává do fronty pro zpracování aktivního objektu. V tomto okamžiku mohou rozhraní proxy i vzdálený objekt pokračovat ve provádění a nejsou blokovány. Mezitím aktivní objekt pracuje, aby udržel frontu prázdnou a zpracovával každou příchozí zprávu. Pokud volající objekt vyžaduje, aby aktivní objekt vrátil některé informace, lze strukturu zpětného volání použít k informování vzdáleného objektu o všech změnách stavu.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?