This paper tackles the problem of extracting design and implementation informations from communicating systems made up of components concurrently interacting with each other, e.g., Web service compositions or IoT (Internet of Things) systems. We present a passive model learning approach, which recovers formal models from event logs, specifically one Input Output Labelled Transition System (IOLTS) for every component of the system under learning. From an event log, our approach is able to automatically recover conversations (a.k.a. sessions), without having any knowledge about the used event correlation mechanisms. It uses correlation pattern definitions and a heuristic based on the quality of the generated conversations to get the most relevant conversation sets. Then, our approach extracts the trace sets of every component and generates IOLTSs. The latter can be used as documentation, for test case generation, or for formal verification.