Co to jest aktywny obiekt?

W programowaniu i inżynierii komputerowej obiekt aktywny jest rodzajem wzorca projektowego, którego można użyć, aby zapewnić dostępność niektórych usług w systemie wielowątkowym lub współbieżnym. Obiekt aktywny to obiekt, który implementuje mechanizm, dzięki czemu może odbierać i przetwarzać dane wejściowe z obiektów zewnętrznych bez zmuszania obiektów zewnętrznych do oczekiwania na zakończenie wykonywania. Ten mechanizm pozwala również wielu obiektom, które mogą być uruchomione jednocześnie, na używanie obiektów aktywnych bez możliwości długich czasów blokowania, w których równoległe procesy muszą się zatrzymać i czekać na dostęp. Najczęściej osiąga się to przez zawinięcie aktywnych obiektów w publicznie dostępny interfejs, zwany proxy, a następnie zaimplementowanie w tych obiektach systemu kolejek, aby wiadomości były przechowywane do późniejszego przetworzenia. Tworzy to wzorzec projektowy, w którym obiekty wysyłają wiadomości do obiektów aktywnych, a następnie kontynuują ich przetwarzanie, aż obiekt aktywny przetworzy wiadomość, a następnie poinformuje obiekty wywołujące o wynikach, aby mogły odpowiednio zaktualizować swoje stany.

Poza wzorzecem projektowania obiektów aktywnych normalny obiekt można nazwać 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 w celu przesłania wiadomości do wszystkich innych osób na serwerze. Ilekroć obiekt serwera pasywnego odbiera wiadomość czatu od obiektu zdalnego, musi natychmiast obsłużyć żądanie, a następnie natychmiast wysłać dane wyjściowe, podczas gdy obiekt zdalny zatrzymuje swoje wykonanie do momentu zakończenia procesu, efekt znany jako blokowanie. Tworzenie różnych wątków w programie może rozwiązać problem blokowania wykonania, ale następnie inicjuje problemy z synchronizacją.

W przypadku wzorca projektowania obiektów aktywnych ten sam obiekt serwera w powyższym przykładzie działałby we własnym wątku oddzielnie od innych obiektów. Byłby również zawinięty w pewnego rodzaju interfejs znany jako proxy, który również działa w osobnym wątku, czasem głównym wątku wykonawczym programu. Gdy obiekt zdalny chce, aby obiekt serwera wysłał wiadomość czatu, kontaktuje się z obiektem proxy, przekazuje mu wszystkie wymagane informacje, a następnie powraca do normalnego stanu wykonania zamiast czekać.

Interfejs proxy przekształca następnie informacje ze zdalnego obiektu w komunikat, który przekazuje do kolejki do przetworzenia przez aktywny obiekt. W tym momencie interfejs proxy i obiekt zdalny mogą kontynuować wykonywanie i nie są blokowane. Tymczasem aktywny obiekt działa, aby utrzymać kolejkę pustą, przetwarzając każdą przychodzącą wiadomość. Jeśli obiekt wywołujący wymaga zwrócenia informacji przez obiekt aktywny, wówczas można użyć struktury wywołania zwrotnego, aby poinformować obiekt zdalny o wszelkich zmianach stanu.

INNE JĘZYKI

Czy ten artykuł był pomocny? Dzięki za opinie Dzięki za opinie

Jak możemy pomóc? Jak możemy pomóc?