Я все еще изучаю подходящие шаблоны Java EE и был бы признателен за совет о лучших инструментах для решения этой проблемы.
У меня есть система, которой нужно управлять несколькими экземплярами интеллектуальных агентов. Клиенты могут создать новый экземпляр или получить доступ к нужному экземпляру по имени. Несколько клиентов могут получить доступ к одному и тому же агенту одновременно.
Наш план состоит в том, чтобы предоставлять операции агентам через интерфейс REST, поэтому вызов может выглядеть примерно так:
GET /sessions/
POST /sessions/{name}
PUT /sessions/{name}/doanaction
Эти сеансы не будут сохраняться после перезапуска, поэтому я не ищу управление ресурсами.
Моя мысль заключалась в том, что мы могли бы использовать сеансовый компонент @Singleton
для управления сопоставлением имен с агентами, а затем внедрить его в сеансовые компоненты @Stateless
, которые предоставили бы служебные методы веб-службам REST.
Я хочу убедиться, что я не злоупотребляю здесь @Singleton. Поскольку несколько клиентов могут получить доступ к одному и тому же агенту, похоже, нет никакого способа использовать управление сеансами Java EE для облегчения управления объектами между сеансами. Существуют ли другие инъекционные объекты, которые я должен использовать помимо компонента @Singleton Session? Это вообще правильный подход к этой проблеме? Советы приветствуются!