I'm investigating whether it is feasible to be able to learn a system interface by watching network traffic (assuming the usual problems are solved e.g. encryption etc)

I haven't been able to find any literature on this - but there might be a cross-discipline piece of work which could assist.

The main purpose here would be to allow complex enterprise systems to be refactored independently. A simple replay of data doesn't always work because we want to learn the request-response interface - though e.g. something like a market trade having multiple fills is an example of very complex orchestration that might make the whole thing unpractical.


1 Answer 1


A classical result from automaton theory shows that even the problem of finding minimum-size DFA consistent with given positive and negative samples is NP-hard. This was shown by Gold in 1978. Your problem is much harder, as in practice you would have to learn data relationships in addition to any finite-state control of the system interface.

  • $\begingroup$ thanks - I thought that would be the case. It might be possible to add hints or to fine tune a manually developed prototype mock. $\endgroup$
    – velniukas
    Aug 14, 2012 at 0:50
  • $\begingroup$ Additionally, if you watch network traffic but are not allowed to generate it you get only positive samples... :D $\endgroup$ Aug 14, 2012 at 7:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.