1 |
The CloudBrowser Web Application FrameworkMcDaniel, Brian Newsom 06 June 2012 (has links)
While more and more applications are moving from the desktop to the web, users still expect their applications to behave like they did on the desktop. Specifically, users expect that user interface state is preserved across visits, and that the state of the interface truly reflects the state of the underlying data. Unfortunately, achieving this ideal is difficult for web application developers due to the distributed nature of the web. Modern AJAX applications rely on asynchronous network programming to synchronize the client-side user interface with server-side data. Furthermore, since the HTTP protocol is stateless, preserving interface state across visits requires a significant amount of manual work on behalf of the developer. CloudBrowser is a web application framework that supports the development of rich Internet applications whose entire user interface and application logic resides on the server, while all client/server communication is provided by the framework. CloudBrowser is ideal for single- page web applications, which is the current trend in web development. CloudBrowser thus hides the distributed nature of these applications from the developer, creating an environment similar to that provided by a desktop user interface library. CloudBrowser preserves the user interface state in a server-side virtual browser that is maintained across visits. Further- more, multiple clients can connect to a single server-side interface instance, providing built-in co-browsing support. Unlike other server-centric frameworks, CloudBrowser's exclusive use of the HTML document model and associated JavaScript execution environment allows it to exploit existing client-side user interface libraries and toolkits while transparently providing access to other application tiers. We have implemented a prototype of CloudBrowser as well as several example applications to demonstrate the benefits of its server-centric design. / Master of Science
|
2 |
Rich Cloud-based Web Applications with Cloudbrowser 2.0Pan, Xiaozhong 21 June 2015 (has links)
When developing web applications using traditional methods, developers need to partition the application logic between client side and server side, then implement these two parts separately (often using two different programming languages) and write the communication code to synchronize the application's state between the two parts. CloudBrowser is a server- centric web framework that eliminates this need for partitioning applications entirely. In CloudBrowser, the application code is executed in server side virtual browsers which preserve the application's presentation state. The client web browsers act like rendering devices, fetching and rendering the presentation state from the virtual browsers. The client-server communication and user interface rendering is implemented by the framework under the hood. CloudBrowser applications are developed in a way similar to regular web pages, using no more than HTML, CSS and JavaScript. Since the user interface state is preserved, the framework also provides a continuous experience for users who can disconnect from the application at any time and reconnect to pick up at where they left off.
The original implementation of CloudBrowser was single-threaded and supported deployment on only one process. We implemented CloudBrowser 2.0, a multi-process implementation of CloudBrowser. CloudBrowser 2.0 can be deployed on a cluster of servers as well as a single multi-core server. It distributes the virtual browsers to multiple processes and dispatches client requests to the associated virtual browsers. CloudBrowser 2.0 also refines the CloudBrowser application deployment model to make the framework a PaaS platform. The developers can develop and deploy different types of applications and the platform will automatically scale them to multiple servers. / Master of Science
|
3 |
A web application user interface specification language based on statechartsVosloo, Iwan 07 February 2006 (has links)
The Internet today has a phenomenal reach---right into the homes of a vast audience worldwide. Some organisations (and individuals) see this medium as a good opportunity for extending the reach of their computer systems. One popular approach used for such endeavours is to run an application on a server, using web technology for displaying its user interface (UI) remotely. Developing such a web-based UI can be quite tedious---it is a concurrent, distributed program which has to run in a hostile environment. Furthermore, the platform on which it is implemented (the web) was not originally intended for such usage. A web framework is a collection of software components which provides its users with support for developing and executing web-based UIs. In part, web frameworks can be seen as being analogous to interpreters: given a specification of a UI using a specification technique dictated by the framework, server components of the framework can present the UI using web technology. Topics related to web frameworks are scarce in the academic literature, but abound in industry and open discussion forums. Similarly, the designers of web frameworks seldom found their work on existing theory in the literature. This study is an attempt to bridge this gap. It is focused on two aspects of web frameworks: the specification technique a framework mandates, and how such a specification can subsequently be used to present a UI via web technology. As part of this study, a survey was conducted of 80 open source web frameworks. Based on the survey, a partial overview of the domain of web frameworks is given, covering what is seen as being typically required of a web framework and covering specification techniques that are used by existing frameworks. Two taxonomies are proposed of the strategies web frameworks use for specifying two aspects of web UIs. Using the web as platform implies adherence to certain (intended) architectural constraints. Web framework designers often strain against these constraints. However, another point of view is to recognise that the success of the web platform is made possible precisely because of its intended architecture. (And the success of the web is surely the principal motivation for using it for remote UIs in the first place.) With the bias of this viewpoint, a specification technique is proposed for web-based UIs. This technique is based on the well-known formalism of statecharts, with semantics explicitly defined in terms of the intended architectural components and constraints of the web. The design of a web framework for presenting a UI so specified is also proposed (based on the theoretical background given, as well as two prototype implementations which have been developed). / Dissertation (MSc)--University of Pretoria, 2007. / Computer Science / unrestricted
|
4 |
Express.js and Ktor web serverperformance : A comparative studyGlantz, Isac, Hurtig, Hampus January 2022 (has links)
As more and more companies use the internet to grow their businesses and sales, it is crucial to have a fast and responsive site that keeps customers on the site. Hence, comparing two web frameworks with respect to response time is vital, as it is a significant part of delivering the page. The comparison will help developers to choose between Express.js and Ktor. Our research shows how the two frameworks, Ktor and Express.js, compare in response times for static and dynamic pages for a set of concurrent users. The comparison will explain how the frameworks’ response times change when having a different number of concurrent users and delivering static vs. dynamic content. An experiment with Locust was conducted to obtain the data needed to show the differences in response time for the two frameworks. Additionally, a literature study was conducted to find the best way to structure the servers, design the tests, and find information on how the frameworks should perform. We found that Express.js has an overall better response time than Ktor. At the same time, it was found that the Object Relational Mapper used with Ktor affected result more than the Object Relational Mapper used with Express.js. Hence, we conclude that Express.js is the better choice, but since both frameworks had low response times, we would say that even Ktor is a valid choice.
|
5 |
Creative Coding on the Web in p5.js : A Library Where JavaScript Meets ProcessingSandberg, Emil January 2019 (has links)
Creative coding is the practice of writing code primarily for an expressive purpose rather than a functional one. It is mostly used in creative arts contexts. One of the most popular tools in creative coding is Processing. Processing is a desktop application and in recent years a web-based alternative named p5.js has been developed. This thesis investigates the p5.js JavaScript library. It looks at what can be accomplished with it and in which cases it might be used. The main focus is on the pros and cons of using p5.js for web graphics. Another point of focus is on how the web can be used as a creative platform with tools like p5.js. The goals are to provide an overview of p5.js and an evaluation of the p5.js library as a tool for creating interactive graphics and animations on the web. The research focuses on comparing p5.js with plain JavaScript from usability and performance perspectives and making general comparisons with other web-based frameworks for creative coding. The methods are a survey and interviews with members of creative coding communities, as well as performing coding experiments in p5.js and plain JavaScript and comparing the results and the process. The results from the coding experiments show that compared to plain JavaScript p5.js is easier to get started with, it is more intuitive, and code created in p5.js is easier to read. On the other hand, p5.js performs worse, especially when continuously drawing large amounts of elements to the screen. This is further supported by the survey and the interviews, which show that p5.js is liked for its usability, but that its performance issues and lack of advanced features mean that it is usually not considered for professional projects. The primary use case for p5.js is creating quick, visual prototypes. At the same time, the interviews show that p5.js has been used in a variety of contexts, both creative and practical. p5.js is a good library for getting started with coding creatively in the browser and is an excellent choice for experimenting and creating prototypes quickly. Should project requirements be much more advanced than that, there might be other options that will work better.
|
6 |
Webový systém pro podporu kurzového sázeníKrula, Miroslav January 2017 (has links)
This thesis deals with the analysis of actual situation in the sphere of online betting and implements the web system for the support of activities which are connected to it. The first part of the thesis describes the procedures of obtaining all the needed information and requirements for the target group of users. Subsequently after using this acquired knowledge the new system is designed with the help of the object-orientated programming. At the end the result is the new designed system which is implemented by modern web tools in the leading position with the popular frameworks.
|
7 |
Towards a Classification of Design Patterns for Web Programming / Towards a Classification of Design Patterns for Web Programming Based on Analysis of Web Application FrameworksJuziuk, Joanna January 2011 (has links)
The evolution of WWW leads to continuous growth of demands that are placed on web applications that results in creating sophisticated web architectures. To minimize the complexity behind their design, software frameworks were introduced. There are hundreds of web frameworks, hence the choice of the right framework can be seen as searching for the holy grail. This thesis investigates the possibility of creating and validates usefulness of a classification scheme which organizes well-known object-oriented design patterns found in popular web frameworks: Apache Struts, Ruby on Rails, CakePHP and Zend Framework. The proposed classification scheme is based on two criteria: purpose and scope. The classification of such patterns that capture design rationale behind the decisions and best practices, is potentially important for building or restructuring a generic web framework, for capturing expertise knowledge and for orientation purposes in the problem domain - web engineering. The methodology used in this thesis is based on case studies and the identification of design patterns in web frameworks uses manual approaches. The results revealed popular design patterns in web frameworks and that the proposed classification scheme in a form of a 2D matrix must be refined, because relationships among design patterns in web frameworks are important and have a tendency to be formed as complex hierarchies. It is proposed to use a classification scheme in a form of a map or a tree when refining the scheme.
|
8 |
Web applications using the Google Web Toolkit / Webanwendungen unter Verwendung des Google Web Toolkitsvon Wenckstern, Michael 04 June 2013 (has links) (PDF)
This diploma thesis describes how to create or convert traditional Java programs to desktop-like rich internet applications with the Google Web Toolkit.
The Google Web Toolkit is an open source development environment, which translates Java code to browser and device independent HTML and JavaScript.
Most of the GWT framework parts, including the Java to JavaScript compiler as well as important security issues of websites will be introduced.
The famous Agricola board game will be implemented in the Model-View-Presenter pattern to show that complex user interfaces can be created with the Google Web Toolkit.
The Google Web Toolkit framework will be compared with the JavaServer Faces one to find out which toolkit is the right one for the next web project. / Diese Diplomarbeit beschreibt die Erzeugung desktopähnlicher Anwendungen mit dem Google Web Toolkit und die Umwandlung klassischer Java-Programme in diese.
Das Google Web Toolkit ist eine Open-Source-Entwicklungsumgebung, die Java-Code in browserunabhängiges als auch in geräteübergreifendes HTML und JavaScript übersetzt.
Vorgestellt wird der Großteil des GWT Frameworks inklusive des Java zu JavaScript-Compilers sowie wichtige Sicherheitsaspekte von Internetseiten.
Um zu zeigen, dass auch komplizierte graphische Oberflächen mit dem Google Web Toolkit erzeugt werden können, wird das bekannte Brettspiel Agricola mittels Model-View-Presenter Designmuster implementiert.
Zur Ermittlung der richtigen Technologie für das nächste Webprojekt findet ein Vergleich zwischen dem Google Web Toolkit und JavaServer Faces statt.
|
9 |
Web applications using the Google Web Toolkitvon Wenckstern, Michael 05 June 2013 (has links)
This diploma thesis describes how to create or convert traditional Java programs to desktop-like rich internet applications with the Google Web Toolkit.
The Google Web Toolkit is an open source development environment, which translates Java code to browser and device independent HTML and JavaScript.
Most of the GWT framework parts, including the Java to JavaScript compiler as well as important security issues of websites will be introduced.
The famous Agricola board game will be implemented in the Model-View-Presenter pattern to show that complex user interfaces can be created with the Google Web Toolkit.
The Google Web Toolkit framework will be compared with the JavaServer Faces one to find out which toolkit is the right one for the next web project.:I Abstract
II Contents
III Acronyms and Glossary
III.I Acronyms
III.II Glossary
IV Credits
1 Introduction
2 Basics
2.1 Development of the World Wide Web
2.2 Hypertext Markup Language
2.3 Cascading Style Sheets
2.4 JavaScript
2.5 Hypertext Markup Language Document Object Model
2.6 Asynchronous JavaScript and XML
3 GWT toolbox and compiler
3.1 GWT in action
3.2 A short overview of the toolkit
3.3 GWT compiler and JSNI
3.3.1 Overview of GWT compiler and JSNI
3.3.2 Deferred binding and bootstrapping process
3.3.3 GWT compiler steps and optimizations
3.4 Java Runtime Environment Emulation
3.5 Widgets and Panels
3.5.1 Overview of GWT Widgets
3.5.2 Event handlers in GWT Widgets
3.5.3 Manipulating browser’s DOM with GWT DOM class
3.5.4 GWT Designer and view optimization using UiBinder
3.6 Remote Procedure Calls
3.6.1 Comparison of Remote Procedure Calls with Remote Method Invocations
3.6.2 GWT’s RPC service and serializable whitelist
3.7 History Management
3.8 Client Bundle
3.8.1 Using ImageResources in the ClientBundle interface
3.8.2 Using CssResources in the ClientBundle interface
4 Model-View-Presenter Architecture
4.1 Comparison of MVP and MVC
4.2 GWT Model-View-Presenter pattern example: Agricola board game
4.3 Extending the Agricola web application with mobile views
4.4 Introducing activities in the Agricola Model-View-Presenter pattern enabling browser history
5 Comparison of the two web frameworks: GWT and JSF
5.1 Definitions of comparison fields
5.2 Comparison in category 1: Nearly completely static sites with a little bit of dynamic content, e.g. news update
5.3 Comparison in category 2: Doing a survey in both technologies
5.4 Comparison in category 3: Creating a forum to show data
5.5 Comparison in category 4: Writing a chat application
5.6 Comparison in category 5: Writing the speed game Snake
5.7 Summary
6 Security
6.1 Download Tomcat
6.2 Dynamic Web Application Project with GWT and Tomcat
6.3 Establish HTTPS connections in Tomcat
6.3.1 Create a pem certificate
6.3.2 Convert pem certificate into a key store object
6.3.3 Configure Tomcat’s XML files to enable HTPPS
6.4 Establish a database connection in Tomcat
6.4.1 Create TomcatGWT user and schema, and add the table countries
6.4.2 Configure Tomcat’s XML files to get access to the database connection
6.4.3 PreparedStatements avoid MySQL injections
6.5 Login mechanism in Tomcat
6.6 SafeHtml
7 Presenting a complex software application written in GWT
8 Conclusions
8.1 Summary
8.2 Future work
A Appendix
A 1 Configure the Google Web Toolkit framework in Eclipse
A 1.1 Install the Java Developer Kit
A 1.2 Download Eclipse
A 1.3 Install the GWT plugin in Eclipse
A 1.4 Create first GWT Java Project
A 2 Figures
A 3 Listings
A 3.1 Source code of the Agricola board game
A 3.2 Source code of GWT and JSF comparison
A 4 Tables
R Lists and References
R 1 Lists
R 1.1 List of Tables
R 1.2 List of Figures
R 1.3 List of Listings
R 2 References
R 2.1 Books
R 2.2 Online resources / Diese Diplomarbeit beschreibt die Erzeugung desktopähnlicher Anwendungen mit dem Google Web Toolkit und die Umwandlung klassischer Java-Programme in diese.
Das Google Web Toolkit ist eine Open-Source-Entwicklungsumgebung, die Java-Code in browserunabhängiges als auch in geräteübergreifendes HTML und JavaScript übersetzt.
Vorgestellt wird der Großteil des GWT Frameworks inklusive des Java zu JavaScript-Compilers sowie wichtige Sicherheitsaspekte von Internetseiten.
Um zu zeigen, dass auch komplizierte graphische Oberflächen mit dem Google Web Toolkit erzeugt werden können, wird das bekannte Brettspiel Agricola mittels Model-View-Presenter Designmuster implementiert.
Zur Ermittlung der richtigen Technologie für das nächste Webprojekt findet ein Vergleich zwischen dem Google Web Toolkit und JavaServer Faces statt.:I Abstract
II Contents
III Acronyms and Glossary
III.I Acronyms
III.II Glossary
IV Credits
1 Introduction
2 Basics
2.1 Development of the World Wide Web
2.2 Hypertext Markup Language
2.3 Cascading Style Sheets
2.4 JavaScript
2.5 Hypertext Markup Language Document Object Model
2.6 Asynchronous JavaScript and XML
3 GWT toolbox and compiler
3.1 GWT in action
3.2 A short overview of the toolkit
3.3 GWT compiler and JSNI
3.3.1 Overview of GWT compiler and JSNI
3.3.2 Deferred binding and bootstrapping process
3.3.3 GWT compiler steps and optimizations
3.4 Java Runtime Environment Emulation
3.5 Widgets and Panels
3.5.1 Overview of GWT Widgets
3.5.2 Event handlers in GWT Widgets
3.5.3 Manipulating browser’s DOM with GWT DOM class
3.5.4 GWT Designer and view optimization using UiBinder
3.6 Remote Procedure Calls
3.6.1 Comparison of Remote Procedure Calls with Remote Method Invocations
3.6.2 GWT’s RPC service and serializable whitelist
3.7 History Management
3.8 Client Bundle
3.8.1 Using ImageResources in the ClientBundle interface
3.8.2 Using CssResources in the ClientBundle interface
4 Model-View-Presenter Architecture
4.1 Comparison of MVP and MVC
4.2 GWT Model-View-Presenter pattern example: Agricola board game
4.3 Extending the Agricola web application with mobile views
4.4 Introducing activities in the Agricola Model-View-Presenter pattern enabling browser history
5 Comparison of the two web frameworks: GWT and JSF
5.1 Definitions of comparison fields
5.2 Comparison in category 1: Nearly completely static sites with a little bit of dynamic content, e.g. news update
5.3 Comparison in category 2: Doing a survey in both technologies
5.4 Comparison in category 3: Creating a forum to show data
5.5 Comparison in category 4: Writing a chat application
5.6 Comparison in category 5: Writing the speed game Snake
5.7 Summary
6 Security
6.1 Download Tomcat
6.2 Dynamic Web Application Project with GWT and Tomcat
6.3 Establish HTTPS connections in Tomcat
6.3.1 Create a pem certificate
6.3.2 Convert pem certificate into a key store object
6.3.3 Configure Tomcat’s XML files to enable HTPPS
6.4 Establish a database connection in Tomcat
6.4.1 Create TomcatGWT user and schema, and add the table countries
6.4.2 Configure Tomcat’s XML files to get access to the database connection
6.4.3 PreparedStatements avoid MySQL injections
6.5 Login mechanism in Tomcat
6.6 SafeHtml
7 Presenting a complex software application written in GWT
8 Conclusions
8.1 Summary
8.2 Future work
A Appendix
A 1 Configure the Google Web Toolkit framework in Eclipse
A 1.1 Install the Java Developer Kit
A 1.2 Download Eclipse
A 1.3 Install the GWT plugin in Eclipse
A 1.4 Create first GWT Java Project
A 2 Figures
A 3 Listings
A 3.1 Source code of the Agricola board game
A 3.2 Source code of GWT and JSF comparison
A 4 Tables
R Lists and References
R 1 Lists
R 1.1 List of Tables
R 1.2 List of Figures
R 1.3 List of Listings
R 2 References
R 2.1 Books
R 2.2 Online resources
|
Page generated in 0.083 seconds