Как делается взаимосвязь между фронтендом и бэкендом?
По протоколу HTTP, как транспортному + протоколу общения (API) клиент-сервер конкретно под ваши нужды. Последний вы делаете сами.
как правильно делать бэкенд, в виде отдельных скриптов или в виде сервиса?
)) про это книги в N томов пишут, вы правда считаете, что получите полный ответ в виде короткого комментария?
Серьезно, хотя бы язык укажите, на котором собираетесь бэк писать.