Co to jest aktywny obiekt?

W programowaniu komputerowym i inżynierii aktywny obiekt jest rodzajem wzorca projektowania, który można użyć do zapewnienia, że ​​niektóre usługi są zawsze dostępne w systemie wielowo-startkowym lub współbieżnym. Aktywny obiekt to obiekt, który implementuje mechanizm, aby mógł odbierać i przetwarzać wprowadzanie obiektów zewnętrznych bez zmuszania obiektów zewnętrznych do oczekiwania na zakończenie. Mechanizm ten pozwala również wielu obiektom, które wszystkie mogą działać jednocześnie w celu korzystania z aktywnych obiektów bez możliwości długich czasów blokowania, w których równoczesne procesy muszą zatrzymać się i czekać na dostęp. Najczęściej to osiąga się poprzez pakowanie aktywnych obiektów w publicznie dostępnym interfejsie, zwanym proxy, a następnie wdrożenie rodzaju systemu kolejki wewnątrz obiektów, aby komunikaty są przechowywane do późniejszego przetwarzania. Tworzy to wzór projektowy, w którym obiekty wysyłają wiadomości do aktywnych obiektów, a następnie kontynuują przetwarzanie, aż aktywny obiekt przetworzy komunikat, a później poinformujeobiekty wywołujące wyniki, aby mogły odpowiednio zaktualizować swoje stany.

Poza wzorem projektu aktywnego obiektu normalny obiekt może być nazywany obiektem pasywnym. W prostym przykładzie programu obiekt pasywny może działać jako przekaźnik serwera czatu, w którym obiekty zdalne kontaktują się z obiektem pasywnym, aby przesyłać wiadomość wszystkim innym na serwerze. Ilekroć obiekt serwera pasywnego odbiera komunikat czatu ze zdalnego obiektu, musi natychmiast obsługiwać żądanie, a następnie natychmiast wysłać wyjście, wszystko, podczas gdy obiekt zdalny zatrzymuje własne wykonywanie do momentu zakończenia procesu, efekt znany jako blokujący. Tworzenie różnych wątków w programie może rozwiązać problem blokowania wykonania, ale następnie inicjuje problemy z synchronizacją.

W wzorze projektu aktywnego obiektu ten sam obiekt serwera w powyższym przykładzie byłby uruchomiony we własnym wątku oddzielnym odinne obiekty. Byłby również owinięty w pewnym rodzaju interfejsie znanym jako serwer proxy, który również działa w osobnym wątku, czasem w wątku wykonania programu głównego. Gdy obiekt zdalny chce, aby obiekt serwera wysłał komunikat czatu, kontaktuje się z obiektem proxy, przekazuje do niego wszystkie wymagane informacje, a następnie wraca do normalnego stanu wykonania zamiast czekać.

Następnie interfejs proxy przekształca informacje ze zdalnego obiektu w komunikat, który przekazuje do kolejki dla aktywnego obiektu do przetwarzania. W tym momencie zarówno interfejs proxy, jak i obiekt zdalny mogą kontynuować wykonywanie i nie są zablokowane. Tymczasem aktywny obiekt działa na puste kolejkę, przetwarzając każdy komunikat przychodzący. Jeśli obiekt wywołania wymaga zwrotu informacji przez aktywny obiekt, wówczas można użyć struktury zwrotnej do poinformowania zdalnego obiektu wszelkich zmian w stanie.

INNE JĘZYKI