This diagram is one what might call a “mile-high” view of Subversion's design.
On one end, the Subversion server machine stores all of your versioned data in a central repository. This database is accessed through a standard set of APIs by any number of network server programs. At the moment, there are two such server programs available: one can use either the Apache HTTP server, or a standalone server called svnserve. (See Chapter 6, Server Configuration for details.)
On the client side, the user runs a Subversion client application. This is typically a commandline client, but possibly a GUI client as well. Subversion client applications share a common set of libraries that manage local views of projects (called “working copies”). The client libraries are also responsible for synchronizing working copies with the repository; they do this by contacting the appropriate server processes over the internet.