Since we are in a Servlets forum, I assume you want your clients to be using browsers. Questions about building chat systems with HTTP and browsers have come up frequently in this forum so do a search.
IF you are not talking browsers as clients, then a
message service would be a reasonable core.
In general, before you write ANY code, make lots of diagrams showing how chat messages and chatting clients are handled - this should clarify what you need to program.
Bill