It's a configuration variable. It's an array that contains every object type and groups of them found in BEdita. It's created runtime, cached in tmp/cache/cake_be_config file and written to configuration.
It can be read with Configure::read('objectTypes') call. In the view it's also reachable through $conf->objectTypes
It is refered at all BEdita object types that can be put on the publication tree as leafs of it. Content can stay on more branches and can share their informative patrimony between different publications.
Examples of contents are documents, events, galleries, images, ...
Every object type has some own features and usually has a module where can be created, edited or deleted. The semantic meaning can be used in frontend applications to present easly data in different ways, for example every object type can have its own view.
From architectural point of view an object type consisting of a model extends BEAppObjectModel with at least an HasOne association with BEObject model. The base tables of object types are characterized by having the same value of id field.
It's the root of the publication tree and it's managed in Publication module.
A publication is a core object type in BEdita: it's a container of contents and sections and usually isthe object from whichdependsthe whole frontend application. Every frontend application indeed has to be related to a publication through the configuration variable $config['frontendAreaId']
Views are the presentation layer in MVC (Model View Controller) architectural pattern on which is built CakePHP framework and so BEdita. They convert the data fetched from Models, into the output format the client requested. Views are responsible for generating the specific output required for the request.