SOA involves breaking large applications into smaller, independent services that communicate with each other, while monolith architecture keeps all application code and components together within a single codebase; services in SOA should have well-defined interfaces and be loosely coupled, stateless, and reusable; components of SOA include services, service consumers, registries, transports, and protocols like SOAP and REST that allow services to communicate.