{'fraction_non_alphanumeric': 0.02358490566037736, 'fraction_numerical': 0.0, 'mean_word_length': 5.844086021505376, '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}}
Reengineering to the Web: a reference architecture

Reengineering existing (large-scale) applications to the Web is a complex and highly challenging task. This is due to a variety of demanding requirements for interactive Web applications. High performance is usually required, old interfaces still have to be supported, high availability requirements are usual, information has to be provided to multiple channels and in different formats, pages should contain individual layouts across different channels, styles should be imposed over presentation, etc. To achieve these goals a variety of different technologies and concepts have to be well understood, including HTTP protocol handling, persistent stores/databases, various XML standards, authentication, session management, dynamic content creation, presentational abstractions, and flexible legacy system wrapping. In a concrete project, all these components have to be integrated properly and appropriate technologies have to be chosen. On basis of practical and theoretical experience in the problem domain, in this paper, we try to identify the recurring components in reengineering projects to the Web, lay out critical issues and choices, and conceptually integrate the components into a reference architecture.