
Symphony: A Java-based Composition and Manipulation Framework for Distributed Legacy Resources by Ashish Bimalkumar Shah Thesis submitted to the faculty of the Virginia Polytechnic Institute and State University in partial fulfillment of the requirements for the degree of MASTER OF SCIENCE in Computer Science and Applications c Ashish Bimalkumar Shah and VPI & SU 1998 APPROVED: Dennis Kafura, Chairman Calvin Ribbens Clifford Shaffer 30th March, 1998 Blacksburg, Virginia Symphony: A Java-based Composition and Manipulation Framework for Distributed Legacy Resources by Ashish Bimalkumar Shah Committee Chairman: Dennis Kafura Computer Science and Applications (ABSTRACT) A problem solving environment (PSE) provides all computational facilities necessary for solving a target class of problems efficiently. PSEs are used primarily for domain-specific problem-solving in science and engineering and aim to ease the burden of advanced scientific computing. Scientific problem solving, however, often involves the use of legacy resources which are difficult to modify or port, and may be distributed on different machines. Existing PSEs provide little support for solving such problems in a generic framework. This thesis investigates the design of a platform-independent system that enables problem solving using legacy resources without having to modify legacy code. It presents Sym- phony, an open and extensible Java-based framework for composition and manipulation of distributed legacy resources. Symphony allows users to compose visually a collection of programs and data by specifying data-flow relationships among them and provides a client/server framework for transparently executing the composed application. Additionally, the framework is web-aware and helps integrate web-based resources with legacy resources. It also enables programmers to provide a graphical interface to legacy applications and to write visualization components. Symphony uses Sun Microsystems’ JavaBeans component architecture for providing compo- nents that represent legacy resources. These components can be customized and composed in any standard JavaBeans builder tool. Executable components communicate with a server, implemented using Java Remote Method Invocation mechanism, for executing remote legacy applications. Symphony enables extensibility by providing abstract components which can be extended by implementing simple interfaces. Beans implemented from the abstract beans can act as data producers, consumers or filters. ACKNOWLEDGEMENTS This thesis would not have been possible without the support and encouragement I received from several people during my stay at Virginia Tech. First of all, I am thankful to my adviser, Dr. Dennis Kafura, for accepting me as a student and for his constant encouragement, persistence, and excellent advice on every aspect of my work. Also, every time he saw me wavering from my decision to pursue this work, he gave me strength to believe that what I was doing was really important. I am glad I heeded his advice. I would like to thank Dr. Calvin Ribbens and Dr. Clifford Shaffer for agreeing to serve on my committee and for giving me useful feedback on the particulars of my work. Many thanks go to Dr. Nicholas Stone, Director of the Agricultural and Natural Resources Information Systems group who supported my education and stay here through a research assistantship, for most of my terms at Virginia Tech. I would not have been able to undertake this work without these funds. I would also like to thank Dr. Marc Abrams for giving me the opportunity to work with him on the publication of the online book “WWW: Beyond the Basics”. The knowledge I gained from my work on the book laid the theoretical foundation for my thesis work. Thanks to Dr. Verna Schuetz, my initial adviser in the department, for always being so nice and friendly. I would like to acknowledge the emotional support I received from several of my friends at Virginia Tech, notably Govi, Prabhu, Raza, Hema, Mridu, Vijay, Karthik, Sunil, Mei See, Jady, Amit, Jose and Nandu. Many thanks to Siva Challa who has been a constant source of encouragement and brotherly advice. My first roommates in Blacksburg, Yash and Milap, deserve special mention for being so nice to me and for patiently answering the barrage of questions I used to fire at them. And last but most important of all, I would like to express my deepest love and respect for my parents, brother and other family members for their constant encouragement, support and guidance. My parents have always taught me to shoot for the impossible. I hope I can fulfill their wishes some day and bring as much joy to them as they do to me just being my parents. iii TABLE OF CONTENTS 1 Introduction 1 1.1ProblemStatement ............................... 2 1.2Goals ....................................... 4 1.3Approach..................................... 5 1.4Symphony..................................... 6 1.5Organization................................... 8 2 Background 11 2.1Java........................................ 11 2.1.1 TheJavaBeansComponentArchitecture................ 13 2.1.2 JavaRemoteMethodInvocationMechanism.............. 14 2.2VisualCompositionalSystems.......................... 14 2.2.1 VisualProgramminginKhoros..................... 15 2.2.2 Collaborative Component Composition with Sieve . 16 2.3 Simplifying Remote Access to Legacy Resources . 17 2.3.1 Javamatic: Web Interface to Command-line Applications . 18 2.3.2 Web //ELLPACK: Remote Access to a Problem Solving Environment 19 2.3.3 NetSolve.................................. 20 2.4Java-basedDistributedComputingFrameworks................ 20 2.4.1 WebFlow................................. 21 2.4.2 TheInfospheresInfrastructure...................... 22 iv 2.5Comparison.................................... 23 3 Using Symphony 25 3.1Terminology ................................... 25 3.2GettingStarted.................................. 26 3.3SymphonyBeans................................. 31 3.3.1 CoreBeans................................ 33 3.3.2 AbstractBeans.............................. 38 3.3.3 Utility Beans . 40 3.4ComposingaMeta-program........................... 41 3.5Meta-ProgramOperations............................ 45 3.6ImplementingAbstractBeans.......................... 48 3.6.1 ProducerBeans.............................. 48 3.6.2 ConsumerBeans............................. 48 3.6.3 FilterBeans................................ 49 3.7Meta-ProgramExample............................. 50 4 Design and Implementation 56 4.1DesignGoals................................... 56 4.2ImplementingaBean .............................. 58 4.2.1 Events .................................. 60 4.2.2 Properties................................. 62 4.2.3 Introspection............................... 62 4.2.4 Customization .............................. 64 4.2.5 Persistence................................ 64 4.2.6 Packaging................................. 66 4.3CommunicationFramework........................... 66 4.3.1 TheBaseInterfaceinterface....................... 69 4.3.2 The InputInterface interface . 71 v 4.3.3 TheOutputInterfaceinterface...................... 72 4.3.4 ThePortEventclass........................... 72 4.3.5 ConnectionMechanism ......................... 75 4.4CommunicationProtocol ............................ 78 4.4.1 VerifyOperation............................. 79 4.4.2 StopOperation.............................. 80 4.4.3 ExecuteOperation............................ 81 4.5TheSymphonyServer.............................. 84 4.5.1 ExecutingNativeApplicationsfromJava................ 85 4.5.2 ImplementingtheSymphonyServer................... 85 4.5.3 AccessingRemoteDataStreams..................... 91 4.5.4 Localvs.RemoteTransparency..................... 92 4.6ImplementationofCoreSymphonyBeans.................... 93 4.6.1 TheBasicBeanAbstractClass...................... 93 4.6.2 ExtendingBasicBean........................... 99 4.6.3 ProgramBean............................... 102 4.6.4 FileBean................................. 104 4.6.5 SocketBean................................ 106 4.6.6 StreamBeans............................... 107 4.7AbstractBeans.................................. 108 4.7.1 ProducerBean.............................. 108 4.7.2 ConsumerBean.............................. 110 4.7.3 FilterBean................................ 112 4.8ExtendingandAdaptingtheFramework.................... 114 4.8.1 AddingaNewBeantotheEnviroment................. 114 4.8.2 CollaborativeCompositioninSieve................... 115 5 Conclusions and Future Work 116 5.1Conclusions.................................... 116 vi 5.1.1 Limitations................................ 117 5.2FutureWork.................................... 118 vii LIST OF FIGURES 1.1 The Composing Environment for Meta-programs . 9 1.2SymphonyArchitecture............................. 10 3.1BeanBoxWindows................................ 27 3.2ProgramBeanCustomizer............................ 29 3.3SampleMeta-Program1 ............................. 34 3.4SampleMeta-Program2 ............................. 35 3.5FileBeanCustomizer .............................. 37 3.6SocketBeanCustomizer............................. 38 3.7ParametersBeanInterface............................ 40 3.8AlgorithmforExecuteOperation........................ 47 3.9 Implementing a Producer Bean - NewProducer.java . 49 3.10ImplementingaConsumerBean-NewConsumer.java............. 49 3.11ImplementingaFilterBean-NewFilter.java.................. 50 3.12 Meta-program for the Wood-based Composites
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages136 Page
-
File Size-