По хттп сессии идёт идентификация клиента.
В Web-части (servlet, jax-rs, etc) есть всякие ресурсы, которые можно внедрить через аннотации (в случае jax-rs, например) или вытащить напрямую из request (в случае сервлетов). Один из них - это HttpSession. Там хранится id сессии, по которой можно идентефицировать клиента. У EJB слоя есть свой SessionContext, который не связан с HttpSession напрямую (но использует её, чтобы определить вызывающего клиента). Этот SessionContext уже распространяется на всё приложение, и (вроде как) именно нём хранятся состояния stateful-бинов.