What are components ?
An UML component component is basically a black box with a well defined behavior and interface. The idea is that it is self-contained and replaceable.
With such a broad definition, a component can cover anything possible from whole applications, to plugins, down to elementary classes. This is simply to broad for a general classification standard.
What do mainstream component models ?
Mainstream component models use very flexible or broad categories and require IDLs. For example:
- Microsoft's COM use very flexible classification ids
- CORBA's CMM has only 4 component categories (service, session, process, entity).
I doubt that these categories suit your needs.
Where to start for your own categorization ?
You'll need to define the axes to use to break down your categories, and this will depend on your specific objective:
- If your objective is to categorize complex exchangeable data objects, you could look at the MIME type for which there is a global IANA reference.
- If your objective is more to group components by purpose, to find more easy suitable reusable components in a catalog, you could use the layering model of your software architecture. For example with a clean architecture, you would start your classification with the main layer elements (e.g. entities, use-case/transactions, controllers, gateways, presenters,...) and subdivide them further (e.g. data-gateways, service-gateways, ...).
Your few examples suggest strongly the use of the second approach.
Edit: components for applications and resources
In your edit, you narrows down the classification to applications and ressources. Your examples for the latter seem to target more services (e.g. DBMS, API) than resource themselves (e.g. the data or the files).
There is still no general well accepted category standard available. Here some starting points:
- GAMP 5 software classification: this standard is for pharmaceutical industry, where automation is controlled with the strength required to ensure security of your medication's production process.
- Software asset management products come with custom categories. One nice example here, but there are certainly others available. Beware however that such proprietary lists might be protected by copyright, even if publicly available.
- Similarly, marketing companies work with well defined software categories (for example: IDC software taxonomy). But again, this is proprietary material in which these companies have invested research, so not reusable at will.
- Finally there's the European CPV classification for public procurement. This is a huge list with codes. The codes starting with 48 as two first digits propose a detailed of software categories (the code is a hierarchical decimal numbering system, explained on their website).