DataNode is a Cayenne "driver" for a single physical data source, such as a relational database. In fact currently DataNode only handles JDBC sources (so maybe it should be renamed to JdbcDataNode?).
DataNode doesn't do much work on its own, instead delegating most tasks to "org.objectstyle.cayenne.action.SQLAction" instances returned by DbAdapter.