J'écris une application distribuée dans Scala qui utilise des acteurs Akka. J'ai des structures de données que mes acteurs à distance sérialisent volontiers, envoient par dessus le fil et se désérialisent sans aucune aide supplémentaire de ma part. Pour la journalisation, je voudrais sérialiser une classe de cas contenant ces objets. J'ai lu les documents de sérialisation sur le akka project site mais je me demande s'il y a un moyen plus facile de faire cela puisque Akka sait apparemment comment sérialiser ces objets déjà.Sérialisation dans Scala/Akka
Modifier le 5 novembre 2011en réponse au commentaire de Viktor
L'application est un moteur de décision de Markov distribué processus.
J'essaie de sérialiser une de ces choses:
case class POMDPIteration(
observations: Set[(AgentRef, State)],
rewards: Set[(AgentRef, Float)],
actions: Set[(AgentRef, Action)],
state: State
)
ici est la définition de AgentRef:
case class AgentRef(
clientManagerID: Int,
agentNumber: Int,
agentType: AgentType
)
Action
et AgentType
sont de type tout alias de Symbol
Pour garder plus courte, la définition de l'État est ici: https://github.com/ConnorDoyle/EnMAS/blob/master/src/main/scala/org/enmas/pomdp/State.scala
Je réussis à envoyer des classes de cas contenant l'objet de type State parmi les acteurs distants sans problème. Je me demande simplement s'il existe un moyen d'établir les routines de sérialisation qu'Akka utilise à mes propres fins.
La sérialisation implicite d'Akka lors du passage de message est facile, mais il apparaît des docs que demander explicitement à Akka pour une version sérialisée est difficile. Peut-être ai-je mal compris la documentation ou manqué quelque chose d'important.
Avez-vous un code d'exemple pour illustrer le problème? –
@ViktorKlang - J'ai ajouté du code et développé un peu la question. Merci d'avoir regardé! –