Сериализация в Scala / Akka - PullRequest
5 голосов
/ 05 ноября 2011

Я пишу распределенное приложение в Scala, в котором используются актеры Akka.У меня есть некоторые структуры данных, которые мои удаленные субъекты успешно сериализуют, отправляют по проводам и десериализуют без какой-либо дополнительной помощи от меня.

Для ведения журнала я хотел бы сериализовать класс case, содержащий эти объекты.Я прочитал документы по сериализации на сайте проекта akka , но мне интересно, есть ли более простой способ сделать это, поскольку Akka, очевидно, уже знает, как сериализовать эти объекты.


Edit 5 Nov 2011 в ответ на комментарий Виктора

Приложение является распределенным механизмом процесса принятия решений Markov.

Я пытаюсь сериализовать одну из этих вещей:

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

.короче, определение State здесь: https://github.com/ConnorDoyle/EnMAS/blob/master/src/main/scala/org/enmas/pomdp/State.scala

Я успешно отправляю классы case, содержащие объект типа State, среди удаленных субъектов без проблем.Мне просто интересно, есть ли способ получить подпрограммы сериализации, которые Akka использует для моих собственных целей.

Неявная сериализация Akka при передаче сообщений проста, но из документов видно, что Akka запрашивает у AkkaСериализованная версия явно сложна.Возможно, я неправильно понял документацию или упустил что-то важное.

1 Ответ

4 голосов
/ 06 ноября 2011
...