{'fraction_non_alphanumeric': 0.011549566891241578, 'fraction_numerical': 0.0, 'mean_word_length': 5.842105263157895, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
A reconfigurable component model using reflection

Providing a method of transparent communication and interoperation between distributed software is a requirement for many organisations and several standard and non-standard infrastructures exist for this purpose. Component models do more than just provide a plumbing mechanism for distributed applications, they provide a more controlled interoperation between components. There are very few component models however that have support for advanced dynamic reconfigurability.
 This paper describes a component model which provides controlled and constrained transparent communication and inter-operation between components in the form of a hierarchical component model. At the same time, the model contains support for advanced run-time reconfigurability of components. The process and benefits of designing a system using the presented model are discussed. A way in which reflective techniques and component frameworks can work together to produce dynamic adaptable systems is explained.