Неужели нет технологии для правильного удаленного взаимодействия объектно-ориентированного API через inte rnet? - PullRequest
0 голосов
/ 20 января 2020

Существуют, по-видимому, сотни технологий веб-API, но я не могу найти ни одного устаревшего способа удаленного взаимодействия. net или COM API с прямым сопоставлением.

Я понимаю, почему это не так т обычный случай для веб-API. Веб-API стремятся к масштабированию и, следовательно, имеют тенденцию быть без установления соединения и без состояния Однако как насчет случая, когда вам не нужно обслуживать миллион клиентов, не нужно балансировать нагрузку, но вам нужно иметь возможность прозрачно создавать и контролировать удаленные объекты в памяти, как если бы они были локальными?

Я ищу технологию, которая может:

  • возвращать прокси-объекты клиенту, а НЕ сериализованные копии.
  • поддерживает соединение с указанным c сервером / процессом, где живут удаленные объекты.
  • управляет временем жизни объектов, чтобы при необходимости они оставались в живых своими прокси.
  • работа над целым rnet. Я предполагаю, что это означает использование HTTP / Websockets для передачи через брандмауэры?
  • генерирует языковые оболочки на стороне клиента, которые отражают иерархию объектов API сервера.

Итак, если у меня есть сервер COM или. NET API с методом Job CreateJob (). Я хотел бы иметь возможность написать клиент javascript (или такой), который выглядит следующим образом:

job = CreateJob ();

job.Start ();

status = job.GetStatus ();

job2 = job.Fork ();

status2 = job2.status ();

// предположительно явное освобождение объекта понадобится для клиентских языков // типа javascript, которые не имеют детерминированного c уничтожения или надежного завершения:

job.Release ();

job2.Release ();

Если бы DCOM не устарел, кошмар для настройки и работал над inte rnet, я бы использовал его. Поскольку это не вариант, я не уверен, что использовать. (на самом деле, DCOM в любом случае не подходит, потому что мобильные и Linux клиенты будут исключены, и это будет еще одной проблемой для доступа к нему из javascript в клиентском браузере, даже если он будет доступен.)

...