{'fraction_non_alphanumeric': 0.01794616151545364, 'fraction_numerical': 0.0, 'mean_word_length': 5.3544303797468356, '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}}
LuckyJ: an Asynchronous Evolution Platform for Component-Based Applications

In this article we present the implementation of a model for software evolution. This model enables components to communicate through asynchronous services. The key feature is that services are described rather than designated. This means that components registers services by giving service description to a central component called service manager. Components willing to invoke services submit to the service manager the description of the desired service. The call is effectively made asynchronously by the service manager after a matching process. Such an invocation process may be characterized by the fact that it is anonymous, associative and asynchronous. The implementation of the model, called the LuckyJ platform, that we present in this article conforms to these principles. Experiences, which we made, show that such a model allows to hot-swap, duplicate and remove temporarily parts of an application at runtime.