{'fraction_non_alphanumeric': 0.02212705210563883, 'fraction_numerical': 0.0, 'mean_word_length': 5.57981220657277, '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}}
Sieve: A Java-Based Framework for Collaborative Component Composition

(ABSTRACT) This thesis investigates the design objectives for a collaborative workspace based on Sun Microsys-tems' Java programming language and JavaBeans component architecture. The feasibility of a collaborative component workspace based on these objectives is demonstrated by Sieve, a Java-based framework for collaborative applications. Sieve allows multiple users to collaboratively add, edit, and connect components on a shared two-dimensional workspace. Sieve introduces a technique that leverages standard JavaBeans mechanisms to support use of " collaboration-unaware " software components. With this technique, components need only conform to basic JavaBeans conventions in order to be shared across collaborating sessions – they need not be programmed specifically for collaboration. Sieve also allows component developers to provide custom mechanisms for sharing components. Sieve is extensible in other ways, allowing developers to introduce new mechanisms for creating, displaying, editing, and connecting components. Three collaborative applications built on this framework are presented: a visualization environment, a circuit simulation, and a set of tools for composing arbitrary software components. The visual-ization environment allows construction of dataflow networks from an extensible set of modules. Modules may read data from a variety of sources, filter and transform the data in various ways, and generate visualizations. The circuit simulation allows users to collaboratively construct and analyze simple direct-current circuits. Finally, the " BeanBox Emulation " application reproduces the basic component-linking functionality of Sun's BeanBox builder tool. With this application, users may collaboratively edit and link objects that conform to standard JavaBeans conventions. Acknowledgments I would like to thank my adviser, Professor Cliff Shaffer, for his support and direction throughout this project. I would also like to thank the other members of my committee, Professors Marc Abrams and Dennis Kafura, for their guidance and suggestions both on this project and on earlier projects which served as a foundation for Sieve. A number of people contributed to the application-specific components that allow Sieve to do interesting things. Bo Begole and Win Heagy contributed both to the set of visualization components and also to the first Sieve prototype. Jeff Nielsen also implemented several of the dataflow components. Chad Hawthorn wrote the " solver " object used by the circuit simulation, and Adrienne Everett wrote many of the circuit components. Finally, I would like to express my deepest gratitude to my parents for their unceasing moral support through the course of my studies.