Message-Based MVC Architecture for Distributed and Desktop Applications

Total Page:16

File Type:pdf, Size:1020Kb

Message-Based MVC Architecture for Distributed and Desktop Applications Message-based MVC Architecture for Distributed and Desktop Applications By Xiaohong Qiu B.S. Beihang University, 1991 M.S. Syracuse University, 2000 DISSERTATION Submitted in partial fulfillment of the requirements for the degree of Doctoral of Philosophy in Computer Science in the Graduate School of Syracuse University May 2005 Approved __________________________________ Professors Kishan Mehrotra and Geoffrey C. Fox Date ______________________________________ Abstract The goal of this dissertation is to develop a paradigm for the next generation of software applications with a clear architecture that unifies desktop and Internet applications. It is aimed at addressing the issues of leveraging existing software assets and incorporating advanced capabilities including collaboration and universal access. As the overall Web systems design on top of the Internet is extremely complex, we divide the task into two separate layers: message-based distributed application architecture and underlying messaging infrastructure linking services together as part of a distributed operating system. This dissertation presents a new approach to building applications as Web Services in a message-based Model-View-Controller (M-MVC) architecture. The premise of this research is that distributed and Web applications which provide services and interface to end users ought to be centered on message exchange. This encourages good design and is an embodiment of the fundamental communication pattern of human interactions. The research investigates a universal modular design with publish/subscribe messaging linkage service model that converges desktop applications, distributed applications, and Internet collaboration. This approach allows: maximum reusability of existing components; flexible messaging scheme with high scalability; and automatic and effective collaboration with interactivity of rich media Web content for diverse clients over heterogeneous network environments. In addition, the approach suggests a uniform interface for the next generation Web client with ubiquitous accessibility. We apply this architecture to the quite complex example of a Scalable Vector Graphics (SVG) browser and give detailed performance measurements to demonstrate the viability of the approach. © Copyright 2005 Xiaohong Qiu All rights Reserved Acknowledgement My research work of the dissertation started in 2000 and ended in 2005 and built on earlier work while I was studying for my Masters degree. This is an extraordinary experience in my life. I feel great thankfulness to the people who have given me this opportunity to exploit my potential to meet challenges and fulfill my research objectives. Especially, I would like to sincerely thank Dr. Geoffrey C. Fox for his insight and vision that enables me to involve into leading-edge research work. Professor Wei Li at Beihang University first showed me the excitement of quality research. I would like to thank Dr. Kishan Mehrotra, who has been supportive to my work and encourages me for making good progress. I appreciate all the people first at NPAC at Syracuse University and then in the Community Grids Lab at Indiana University who created a great atmosphere for research. Finally, I feel great gratitude to my parents and son. Without their devotion and substantial support, I couldn’t have gone so far. Table of Contents 1 Introduction................................................................................................................... 1 1.1 Motivation............................................................................................................... 5 1.2 Statement of problems and insights ........................................................................ 8 1.3 Why message-based MVC?.................................................................................. 11 1.4 Design features of M-MVC and collaborative paradigms.................................... 21 1.5 Contributions......................................................................................................... 27 1.5.1 Research achievements .............................................................................. 27 1.5.2 Significance of research............................................................................. 28 1.6 Summary of the dissertation ................................................................................. 33 1.6.1 Scope of research ....................................................................................... 33 1.6.2 Research questions..................................................................................... 34 1.6.3 Methodology.............................................................................................. 36 1.6.4 Organization of the dissertation................................................................. 39 2 Survey of Technologies............................................................................................... 42 2.1 Event-based programming.................................................................................... 42 2.1.1 Concept of event-based programming....................................................... 42 2.1.2 Event models and publish/subscribe mechanism....................................... 44 2.1.3 Summary.................................................................................................... 50 2.2 MVC ..................................................................................................................... 51 i 2.2.1 MVC Concept ............................................................................................ 51 2.2.2 Communication mechanism ─ method-based versus message-based approach.................................................................................................... 54 2.2.3 Decomposition strategies........................................................................... 57 2.2.4 Interactive patterns..................................................................................... 56 2.2.5 Summary.................................................................................................... 58 2.3 Messaging ............................................................................................................. 58 2.3.1 Why messaging? ........................................................................................ 58 2.3.2 Messaging middleware .............................................................................. 63 2.3.3 Summary.................................................................................................... 64 2.4 NaradaBrokering................................................................................................... 65 2.5 DOM ..................................................................................................................... 67 2.5.1 DOM, HTML, and XML ........................................................................... 67 2.5.2 DOM structure ........................................................................................... 69 2.5.3 DOM event model...................................................................................... 71 2.5.4 Summary.................................................................................................... 75 3 M-MVC Architecture ................................................................................................. 76 3.1 Characteristics of distributed applications............................................................ 77 3.1.1 Human computer interaction...................................................................... 77 3.1.2 Distributed application and user interaction .............................................. 78 3.1.3 Summary characteristic of events and distributed applications................. 80 3.1.4 Summary.................................................................................................... 83 ii 3.2 Web Service pipeline model ................................................................................. 84 3.3 Message-based MVC (M-MVC) .......................................................................... 86 3.3.1 Comparison of MVC model and Web Service pipeline model ................. 86 3.3.2 Generalization of MVC and Web Service pipeline model ........................ 89 3.3.3 Summary.................................................................................................... 92 3.4 SMMV and MMMV Interactive patterns ............................................................. 92 3.5 Related Work on MVC ......................................................................................... 94 3.6 M-MVC and messaging infrastructure with publish/subscribe scheme ............. 101 3.7 M-MVC and Web Services................................................................................. 103 4 Monolithic SVG experiment .................................................................................... 106 4.1 Summary of SVG................................................................................................ 106 4.2 Summary of Batik SVG browser ........................................................................ 108 4.2.1 User interface of SVG browser................................................................ 108 4.2.2 Architecture and implementation of SVG browser ................................. 111 4.3 Intercepting events in Batik SVG browser ......................................................... 114 4.4 Properties and structure
Recommended publications
  • Functional Javascript
    www.it-ebooks.info www.it-ebooks.info Functional JavaScript Michael Fogus www.it-ebooks.info Functional JavaScript by Michael Fogus Copyright © 2013 Michael Fogus. All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/ institutional sales department: 800-998-9938 or [email protected]. Editor: Mary Treseler Indexer: Judith McConville Production Editor: Melanie Yarbrough Cover Designer: Karen Montgomery Copyeditor: Jasmine Kwityn Interior Designer: David Futato Proofreader: Jilly Gagnon Illustrator: Robert Romano May 2013: First Edition Revision History for the First Edition: 2013-05-24: First release See http://oreilly.com/catalog/errata.csp?isbn=9781449360726 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. Functional JavaScript, the image of an eider duck, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trade‐ mark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein.
    [Show full text]
  • Javaedge Setup and Installation
    APPENDIX A ■ ■ ■ JavaEdge Setup and Installation Throughout the book, we have used the example application, JavaEdge, to provide a practical demonstration of all the features discussed. In this appendix, we will walk you through setting up the tools and applications required to build and run JavaEdge, as well as take you through the steps needed to get the JavaEdge application running on your platform. Environment Setup Before you can get started with the JavaEdge application, you need to configure your platform to be able to build and run JavaEdge. Specifically, you need to configure Apache Ant in order to build the JavaEdge application and package it up for deployment. In addition, the JavaEdge application is designed to run on a J2EE application server and to use MySQL as the back-end database. You also need to have a current JDK installed; the JavaEdge application relies on JVM version 1.5 or higher, so make sure your JDK is compatible. We haven’t included instruc- tions for this here, since we are certain that you will already have a JDK installed if you are reading this book. However, if you do need to download one, you can find it at http://java. sun.com/j2se/1.5.0/download.jsp. Installing MySQL The JavaEdge application uses MySQL as the data store for all user, story, and comment data. If you don’t already have the MySQL database server, then you need to obtain the version applicable to your platform. You can obtain the latest production binary release of MySQL for your platform at http://www.mysql.com.
    [Show full text]
  • (CGPA) Examination May/June 2017 Programming in C (Revised) [Time: Three Hours] [Max.Marks:80]
    Total No. of Printed Pages:2 SUBJECT CODE NO:- P-11 FACULTY OF ENGINEERING AND TECHNOLOGY First Year MCA (CGPA) Examination May/June 2017 Programming in C (Revised) [Time: Three Hours] [Max.Marks:80] Please check whether you have got the right question paper. N.B i) Q.No.1 from section A and Q.No.8 from section B are compulsory. ii) Attempt any two questions from the remaining questions in each section SECTION A Q.1 Find the output of the following and also specify the reason. 08 a. #include<stdio.h> Void main() { Char C*2+= “A”; Printf(“\n %c”,C[0]); Printf(“\n %s”,C); } b. #include<stdio.h> void main() { Int x=4, y=0, z; While (x>=0) { If(x= =y) break; else Printf(“\n%d%d”,x,y); x- -; y++; } } Q.2 A What is constant & variables? Explain the rules for constructing integer & real point (float) constant 08 B Write a program to calculate overtime pay of 10 employees. Overtime is paid at the rate of rs.12.00 per hour 08 for overtime hour worked above 40 hours. Assume that employee do not work for fractional part of an hour. Q.3 A Explain all loop control statements in detail with proper example 08 B Write a program in C to accept a number & check whether it is Armstrong number or not. 08 Q.4 A What is an algorithm? Explain with example. 08 B Write a program to enter a number from user and calculate the sum of its digit. 08 SECTION B Q.5 A What is an array? Explain with its types.
    [Show full text]
  • WILEY Advantage Dear Valued Customer
    Y L F M A E T Team-Fly® The WILEY advantage Dear Valued Customer, We realize you’re a busy professional with deadlines to hit. Whether your goal is to learn a new technology or solve a critical problem, we want to be there to lend you a hand. Our primary objective is to provide you with the insight and knowledge you need to stay atop the highly competitive and ever- changing technology industry. Wiley Publishing, Inc. offers books on a wide variety of technical categories, including security, data warehousing, software development tools, and networking - everything you need to reach your peak. Regardless of your level of expertise, the Wiley family of books has you covered. • For Dummies – The fun and easy way to learn • The Weekend Crash Course –The fastest way to learn a new tool or technology • Visual – For those who prefer to learn a new topic visually • The Bible – The 100% comprehensive tutorial and reference • The Wiley Professional list – Practical and reliable resources for IT professionals In the book that you now hold in your hands, Darren Broemmer shares best practices and lessons learned for J2EE development. As you design and build a banking application with J2EE and design patterns, you'll also utilize metadata-driven configurable foundation components to help automate much of the development for Web-based business applications. And of course, the tools and technologies used to construct the sample application are not from any one vendor, but best of breed—Jakarta Struts, Servlets, JSP, XML, EJB, UML, WebLogic, WebSphere, and many more.
    [Show full text]
  • Combinatorial Species and Labelled Structures Brent Yorgey University of Pennsylvania, [email protected]
    University of Pennsylvania ScholarlyCommons Publicly Accessible Penn Dissertations 1-1-2014 Combinatorial Species and Labelled Structures Brent Yorgey University of Pennsylvania, [email protected] Follow this and additional works at: http://repository.upenn.edu/edissertations Part of the Computer Sciences Commons, and the Mathematics Commons Recommended Citation Yorgey, Brent, "Combinatorial Species and Labelled Structures" (2014). Publicly Accessible Penn Dissertations. 1512. http://repository.upenn.edu/edissertations/1512 This paper is posted at ScholarlyCommons. http://repository.upenn.edu/edissertations/1512 For more information, please contact [email protected]. Combinatorial Species and Labelled Structures Abstract The theory of combinatorial species was developed in the 1980s as part of the mathematical subfield of enumerative combinatorics, unifying and putting on a firmer theoretical basis a collection of techniques centered around generating functions. The theory of algebraic data types was developed, around the same time, in functional programming languages such as Hope and Miranda, and is still used today in languages such as Haskell, the ML family, and Scala. Despite their disparate origins, the two theories have striking similarities. In particular, both constitute algebraic frameworks in which to construct structures of interest. Though the similarity has not gone unnoticed, a link between combinatorial species and algebraic data types has never been systematically explored. This dissertation lays the theoretical groundwork for a precise—and, hopefully, useful—bridge bewteen the two theories. One of the key contributions is to port the theory of species from a classical, untyped set theory to a constructive type theory. This porting process is nontrivial, and involves fundamental issues related to equality and finiteness; the recently developed homotopy type theory is put to good use formalizing these issues in a satisfactory way.
    [Show full text]
  • Web Component Development Using Java Web Component Development Using Java Learner’S Guide
    Web Component Development Using Java Web Component Development Using Java Learner’s Guide © 2014 Aptech Limited All rights reserved. No part of this book may be reproduced or copied in any form or by any means – graphic, electronic or mechanical, including photocopying, recording, taping, or storing in information retrieval system or sent or transferred without the prior written permission of copyright owner Aptech Limited. All trademarks acknowledged. APTECH LIMITED Contact E-mail: [email protected] First Edition - 2014 Dear Learner, We congratulate you on your decision to pursue an Aptech course. Aptech Ltd. designs its courses using a sound instructional design model – from conceptualization to execution, incorporating the following key aspects: ¾ Scanning the user system and needs assessment Needs assessment is carried out to find the educational and training needs of the learner Technology trends are regularly scanned and tracked by core teams at Aptech Ltd. TAG* analyzes these on a monthly basis to understand the emerging technology training needs for the Industry. An annual Industry Recruitment Profile Survey# is conducted during August - October to understand the technologies that Industries would be adapting in the next 2 to 3 years. An analysis of these trends & recruitment needs is then carried out to understand the skill requirements for different roles & career opportunities. The skill requirements are then mapped with the learner profile (user system) to derive the Learning objectives for the different roles. ¾ Needs analysis and design of curriculum The Learning objectives are then analyzed and translated into learning tasks. Each learning task or activity is analyzed in terms of knowledge, skills and attitudes that are required to perform that task.
    [Show full text]
  • Uusi Hakemisto
    214 6. Tunneling 215 ROCK EXCAVATION HANDBOOK 6.1. GENERAL SELECTING TUNNELING METHODS In modern tunnel and underground cavern excavation, it is possible to select from many dif- ferent methods. The following factors should be taken into consideration when selecting the method: - Tunnel dimensions - Tunnel geometry - Length of tunnel, total volume to be excavated - Geological and rock mechanical conditions - Ground water level and expected water inflow - Vibration restrictions FIGURE 6.1.-2. Range of methods compared to uniaxal compressive strength. - Allowed ground settlements The methods can be divided into drill & blast, and mechanical excavation. Mechanical meth- ods can be split further to partial face (e.g. roadheaders, hammers, excavators) or full face (TBM, shield, pipe jacking, micro tunneling). FIGURE 6.1.-1. Tunneling methods in different rock/soil conditions. The drill & blast method is still the most typical method for medium to hard rock conditions. It can be applied to a wide range of rock conditions. Some of its features include versatile equipment, fast start-up and relatively low capital cost tied to the equipment. On the other hand, the cyclic nature of the drill & blast method requires good work site organization. FIGURE 6.1.-3. Drill and blast cycle. Blast vibrations and noise also restrict the use of drill & blast in urban areas. 216 6. Tunneling 217 ROCK EXCAVATION HANDBOOK Hard-rock TBMs can be used in relatively soft to hard rock conditions, and best when rock DRIFTING AND TUNNELING fracturing & weakness zones are predictable. The TBM is most economical method for longer tunnel lengths, in which its high investment cost and timely build-up can be utilized by the Many mines and excavation sites still plan their drilling patterns manually, but advanced high advance rate of excavation.
    [Show full text]
  • Web Application Architecture: Principles, Protocols and Practices
    Web Application Architecture Principles, protocols and practices Leon Shklar Richard Rosen Dow Jones and Company Web Application Architecture Web Application Architecture Principles, protocols and practices Leon Shklar Richard Rosen Dow Jones and Company Copyright 2003 by John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England Telephone (+44) 1243 779777 Email (for orders and customer service enquiries): [email protected] Visit our Home Page on www.wileyeurope.com or www.wiley.com All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except under the terms of the Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP, UK, without the permission in writing of the Publisher with the exception of any material supplied specifically for the purpose of being entered and executed on a computer system for exclusive use by the purchase of the publication. Requests to the Publisher should be addressed to the Permissions Department, John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England, or emailed to [email protected], or faxed to (+44) 1243 770620. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the Publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
    [Show full text]
  • Java EE Containers
    HEWLETT-PACKARD EDUCATION SERVICES J2EE With Struts Framework http://www.hpesindia.com TABLE OF CONTENTS Chap. No. Chapter Name Page No. 1. Introduction to J2EE 2 2. Using JDBC API 18 3. Introduction to HTML 65 4. Web Applications & Java Servlet Technology 81 5. Inside Servlets 91 6. Advanced Servlets Part-1 113 7. Advanced Servlets Part-2 140 8. Advanced Servlets Part-3 151 9. JSP Basics 188 10. Advanced JSP 206 11. Working with JSTL 260 12. MVC Based Web Development with Struts 288 [HP Education Services] 1 01 Introduction to J2EE evelopers today increasingly recognize the need for distributed, transactional, and D portable applications that leverage the speed, security, and reliability of server-side technology. In the world of information technology, enterprise applications must be designed, built, and produced for less money, with greater speed, and with fewer resources. With the Java Platform, Enterprise Edition (Java EE), development of Java enterprise applications has never been easier or faster. The aim of the Java EE 5 platform is to provide developers a powerful set of APIs while reducing development time, reducing application complexity, and improving application performance. The Java EE 5 platform introduces a simplified programming model. With Java EE 5 technology, XML deployment descriptors are now optional. Instead, a developer can simply enter the information as an annotation directly into a Java source file, and the Java EE server will configure the component at deployment and runtime. These annotations are generally used to embed in a program data that would otherwise be furnished in a deployment descriptor.
    [Show full text]
  • View on 5G Architecture
    5G PPP Architecture Working Group View on 5G Architecture Version 3.0, June 2019 Date: 2019-06-19 Version: 3.0 Dissemination level: Public Consultation Abstract The 5G Architecture Working Group as part of the 5G PPP Initiative is looking at capturing novel trends and key technological enablers for the realization of the 5G architecture. It also targets at presenting in a harmonized way the architectural concepts developed in various projects and initiatives (not limited to 5G PPP projects only) so as to provide a consolidated view on the technical directions for the architecture design in the 5G era. The first version of the white paper was released in July 2016, which captured novel trends and key technological enablers for the realization of the 5G architecture vision along with harmonized architectural concepts from 5G PPP Phase 1 projects and initiatives. Capitalizing on the architectural vision and framework set by the first version of the white paper, the Version 2.0 of the white paper was released in January 2018 and presented the latest findings and analyses of 5G PPP Phase I projects along with the concept evaluations. The work has continued with the 5G PPP Phase II and Phase III projects with special focus on understanding the requirements from vertical industries involved in the projects and then driving the required enhancements of the 5G Architecture able to meet their requirements. The results of the Working Group are now captured in this Version 3.0, which presents the consolidated European view on the architecture design. Dissemination level: Public Consultation Table of Contents 1 Introduction........................................................................................................................
    [Show full text]
  • Httpclient-Tutorial.Pdf
    HttpClient Tutorial Oleg Kalnichevski Jonathan Moore Jilles van Gurp Preface .................................................................................................................................... iv 1. HttpClient scope .......................................................................................................... iv 2. What HttpClient is NOT .............................................................................................. iv 1. Fundamentals ....................................................................................................................... 1 1.1. Request execution ...................................................................................................... 1 1.1.1. HTTP request .................................................................................................. 1 1.1.2. HTTP response ............................................................................................... 2 1.1.3. Working with message headers ........................................................................ 2 1.1.4. HTTP entity .................................................................................................... 3 1.1.5. Ensuring release of low level resources ............................................................ 5 1.1.6. Consuming entity content ................................................................................ 6 1.1.7. Producing entity content .................................................................................. 6 1.1.8. Response
    [Show full text]
  • Oreilly.Com/Catalog/Jakarta
    Programming Jakarta Struts By Chuck Cavaness Table of Contents Preface The road to successful web applications is paved with the sweat and heartache of the many who came before us. The idea of taking a rich client application and allowing it to execute over the Internet was a great leap of faith, and maybe just a little shortsighted. By "web applications," I don't mean small, trivial applications that accept a form or two of input and push it into a database; I mean large applications that cross several tiers, use many different technologies, and cover the spectrum of analysis and design-pattern uses. The design and construction of these types of applications push developers to the limit of what's logically and physically possible. Myriad solutions have been thrown at the problems these applications present. Some of the solutions stuck, and some did not—and when a solution didn't serve the needs of the users, it was obvious. But as with human evolution, the valuable characteristics eventually were passed on, and the characteristics that failed to serve their intended purposes fell by the wayside. The user interface (UI) in Smalltalk-80™ was designed around the Model-View-Controller (MVC) framework. Over time, this framework has been adopted as a classic design pattern and used in many different scenarios. Other UI frameworks, such as the one written for Java™ Swing, use similar concepts. The architects of the JavaServer Pages™ (JSP) specification formally introduced the abstract idea of two types of models for web-based solutions: Model 1 and Model 2.
    [Show full text]