Skip to main content

Co je aktivní objekt?

V počítačovém programování a inženýrství je aktivním objektem typ konstrukčního vzoru, který lze použít k zajištění toho, aby některá služba byla 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 donutil externí objekty čekat na dokončení.Tento mechanismus také umožňuje mnoho objektů, které by mohly být všechny běžely souběžně používat aktivní objekty bez možnosti pro dlouhé blokování časů, kdy musí souběžné procesy zastavit a čekat na přístup.Toho je nejčastěji dosaženo zabalením aktivních objektů do veřejně přístupného rozhraní, nazývaného proxy, a poté implementací typu systému fronty uvnitř objektů, takže zprávy jsou uloženy pro pozdější zpracování.To vytváří vzor konstrukce, ve kterém objekty odesílají zprávy do aktivních objektů a poté pokračují ve svém zpracování, dokud aktivní objekt nezpracovává zprávu a později informuje o volajících objektech výsledků, aby mohli odpovídajícím způsobem aktualizovat své stavy., normální objekt může být nazýván pasivním objektem.V jednoduchém příkladu programu může být pasivní objekt fungovat jako relé chatovacího serveru, ve kterém vzdálené objekty kontaktují pasivní objekt, aby přenesli zprávu všem ostatním na serveru.Kdykoli objekt pasivního serveru obdrží zprávu chatu ze vzdáleného objektu, musí s požadavkem okamžitě zpracovat a poté okamžitě odeslat výstup, a to vše, zatímco vzdálený objekt zastaví své vlastní provádění, dokud nebude proces provedeno, což je efekt známý jako blokování.Vytváření různých vláken v rámci programu může vyřešit problém blokování provádění, ale poté iniciuje problémy se synchronizací.Také by byl zabalen do nějakého typu rozhraní známého jako proxy, které také běží v samostatném vlákně, někdy v hlavním vláknu provádění programu.Když vzdálený objekt chce, aby objekt serveru odeslal chatovací zprávu, kontaktuje objekt proxy, předává k ně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í.

Proxy rozhraní pak převádíInformace ze vzdáleného objektu do zprávy, kterou předává do fronty, aby se aktivní objekt zpracoval.V tomto okamžiku jsou rozhraní proxy i vzdálený objekt zdarma pokračovat v provádění a nejsou blokovány.Mezitím aktivní objekt pracuje na udržení fronty prázdné a zpracovává každou příchozí zprávu.Pokud volací objekt vyžaduje, aby některé informace byly vráceny aktivním objektem, lze použít strukturu zpětného volání k informování vzdáleného objektu o jakýchkoli změnách ve stavu.