Я пишу распределенное приложение на Scala, которое использует акторы Akka. У меня есть некоторые структуры данных, которые мои удаленные субъекты успешно сериализуют, отправляют по сети и десериализовывают без какой-либо дополнительной помощи с моей стороны.
Для ведения журнала я хотел бы сериализовать класс case, содержащий эти объекты. Я читал документацию по сериализации на сайте проекта akka , но мне интересно, есть ли более простой способ сделать это, поскольку Akka, по-видимому, уже знает, как сериализовать эти объекты.
Редактировать 5 ноя 2011 в ответ на комментарий Виктора
Приложение представляет собой распределенный механизм Марковского процесса принятия решений.
Я пытаюсь сериализовать одну из следующих вещей:
case class POMDPIteration(
observations: Set[(AgentRef, State)],
rewards: Set[(AgentRef, Float)],
actions: Set[(AgentRef, Action)],
state: State
)
вот определение AgentRef:
case class AgentRef(
clientManagerID: Int,
agentNumber: Int,
agentType: AgentType
)
Action
и AgentType
- это просто псевдонимы типа Symbol
Чтобы сделать это короче, определение состояния приведено здесь: https://github.com/ConnorDoyle/EnMAS/blob/master/src/main/scala/org/enmas/pomdp/State. scala
Я успешно отправляю классы case, содержащие объект типа State, среди удаленных субъектов без проблем.Мне просто интересно, есть ли способ получить доступ к процедурам сериализации, которые Akka использует в моих собственных целях.
Неявная сериализация Akka при передаче сообщений проста, но из документации видно, что запросить Akka сериализованную версию явно сложно. Возможно, я неправильно понял документацию или упустил что-то важное.