Resource-Oriented Architecture (ROA) is an architectural style based on REST constraints that solves problems of past distributed computing approaches like RPC, CORBA, and SOA. It defines resources that can be manipulated through HTTP methods like GET, PUT, POST, and DELETE. The Waves framework makes it easy to build ROA applications in Ruby by providing a DSL for defining resources and handling HTTP requests through a uniform interface.