#866 closed task (done)
SimOpt Communication refactoring
Reported by: | abeham | Owned by: | abeham |
---|---|---|---|
Priority: | high | Milestone: | HeuristicLab 3.3.0 |
Component: | Problems.ExternalEvaluation | Version: | 3.3 |
Keywords: | Cc: |
Description (last modified by abeham)
A number of recent developments has made refactoring the communication branch worthwile:
- There exist good libraries for converting data to and from e.g. JSON both on C# and Java which facilitates interlanguage communication. Even the new serialization in HeuristicLab 3.3 would allow for a JSON backend.
- The whole statemachine idea was nice, but hardly ever practical or useful. Google's own take on such an interface (protocol buffers) doesn't need a state machine. A simple set of messages should do it in our cases too.
- I have more upcoming use for this, so I'd like more comfortable configuration and handling
After discussion with swagner on this issue it was decided to use and try protocol buffers. A new problem should be created called ExternalEvaluationProblem that would allow to configure the communication means and provide an operator for collecting values which can be configured by the user. This operator would create protocol buffer messages that are sent over a driver to the external process.
Change History (22)
comment:1 Changed 15 years ago by abeham
- Status changed from new to assigned
comment:2 Changed 15 years ago by abeham
- Description modified (diff)
comment:3 Changed 15 years ago by abeham
- Added protobuf-csharp-port to ExtLibs
comment:4 Changed 15 years ago by abeham
- Updated external evaluation problem
- Added some Drivers
- Updated message
comment:5 Changed 15 years ago by abeham
- see previous commit
comment:6 Changed 14 years ago by abeham
- worked on external evaluation problem
comment:7 Changed 14 years ago by abeham
- updated external evaluation problem
- included in build config
comment:8 Changed 14 years ago by abeham
- Removed warning in ExternalEvaluationProblem
- Added views project for ExternalEvaluation
- Fixed class name of ExternalEvaluationProcessDriver
comment:9 Changed 14 years ago by abeham
- Worked on view for ExternalEvaluationProcessDriver
comment:10 Changed 14 years ago by abeham
- Component changed from Communication.Data to Problems.ExternalEvaluation
- Priority changed from major to critical
- Version changed from 3.2 to 3.3
comment:11 Changed 14 years ago by abeham
- Updated external evaluation problem
comment:12 Changed 14 years ago by abeham
- Updated ExternalEvaluationProblem
- Removed the custom crossover, manipulator, and solution creator (they're replaced with the UserDefined ones)
- Renamed all drivers to channels
- Added a client that takes the role of the previous driver
- Moved the BestScopeSolutionAnalyzer into Analysis (it's a generic operator after all)
comment:13 Changed 14 years ago by abeham
- Added license headers to designer files
- Refactored message building, to be user customizable and better extendable
- A SolutionMessageBuilder holds several Converters
- A Converter specifies several types to convert and a conversion method
- ExternalEvaluator has the message builder as parameter and exposes it to the UI through the parameters collection
- The proto file has been updated to include a length field in the array variables
- Converters exist for all types in HeuristicLab.Data
comment:14 Changed 14 years ago by abeham
- Added tcp channel for communicating messages
- Removed unnecessary enabled propagation in SolutionMessageBuilderView
comment:15 Changed 14 years ago by abeham
comment:16 Changed 14 years ago by abeham
- Improved exception handling and added the client by default
comment:17 Changed 14 years ago by abeham
- Changed error display from message box to plugin infrastructure
comment:18 Changed 14 years ago by abeham
- Added class diagram
comment:19 Changed 14 years ago by abeham
- VS not saving project file automatically....
comment:20 Changed 14 years ago by abeham
- Resolution set to fixed
- Status changed from assigned to closed
The ExternalEvaluation problem has been implemented and documentation written (DevelopersOptimizingExternalApplications). Further changes and requests should go into separate tickets.
comment:21 Changed 14 years ago by swagner
- Milestone changed from Iteration 4 to Current
Milestone Iteration 4 deleted
comment:11 Changed 14 years ago by swagner
- Milestone changed from Current to HeuristicLab 3.3.0
Milestone Current deleted
r3852