1 |
ALRPC: a mechanism to semi-automatically refactor legacy applications for deployment in distributed environmentsBergen, Andreas Christoph 12 April 2013 (has links)
Scientific projects, businesses, and individual devices such as smart phones, tablets and embedded devices are collecting and retaining unparalleled and growing amounts of data. Initially, spatial locality of the data (collocation of data and application) cannot be assumed and local resource constraints impact monolithic legacy applications. Resource restrictions and less feasible approaches such as moving large data sets
within these paradigms are not feasible for certain legacy applications. As such we have taken a renewed look at Remote Procedure Call mechanisms and designed, built and evaluated a RPC mechanism called Automated Legacy system Remote Procedure Call generator (ALRPC). ALRPC allows us to convert monolithic applications into distributed systems by selectively and semi-automatically moving individual functions to different process spaces. This improves spatial locality and resource constraints of critical functions in legacy applications. Empirical results from our initial experiments show that our mechanism’s level of automation outperforms existing industry strength tools and its performance is competitive within the scope of this work. / Graduate / 0984
|
2 |
Supporting multiplatform applications with YA-RPC / Supporting multiplatform applications with YA-RPCKovařík, František January 2011 (has links)
Title: Supporting multiplatform applications with YA-RPC Author: František Kovařík Department: Department of Software Engineering Supervisor: RNDr. Petr Hnětynka, Ph.D. Supervisor's e-mail address: hnetynka@d3s.mff.cuni.cz Abstract: Over the last three decades, Remote Procedure Call (RPC) has become a popular inter-computer and inter-process communication paradigm widely used by a variety of interconnected computer systems. Even though a number of RPC protocols and implementations evolved over those years, no single system offers a significant set of features, while providing an easy-to-use application programming interface. In this thesis, we present Yet Another Remote Procedure Call - YaRpc, a specification of a flexible and programmer friendly middleware that offers advanced features such as pluggable transports and protocols, callbacks, and configurable method dispatch. Additionally, we define YaRpc Native Protocol (YNP), a new light-weight high-performance RPC protocol with a rich set of features. We provide a native implementation of both YaRpc middleware and YNP protocol for Java and .NET Framework, and compare its usability with Java RMI, .NET Remoting and SOAP web services. Keywords: YaRpc, remote procedure call, distributed system
|
3 |
Supporting multiplatform applications with YA-RPC / Supporting multiplatform applications with YA-RPCKovařík, František January 2011 (has links)
Title: Supporting multiplatform applications with YA-RPC Author: František Kovařík Department: Department of Software Engineering Supervisor: RNDr. Petr Hnětynka, Ph.D. Supervisor's e-mail address: hnetynka@d3s.mff.cuni.cz Abstract: Over the last three decades, Remote Procedure Call (RPC) has become a popular inter-computer and inter-process communication paradigm widely used by a variety of interconnected computer systems. Even though a number of RPC protocols and implementations evolved over those years, no single system offers a significant set of features, while providing an easy-to-use application programming interface. In this thesis, we present Yet Another Remote Procedure Call - YaRpc, a specification of a flexible and programmer friendly middleware that offers advanced features such as pluggable transports and protocols, callbacks, and configurable method dispatch. Additionally, we define YaRpc Native Protocol (YNP), a new light-weight high-performance RPC protocol with a rich set of features. We provide a native implementation of both YaRpc middleware and YNP protocol for Java and .NET Framework, and compare its usability with Java RMI, .NET Remoting and SOAP web services. Keywords: YaRpc, remote procedure call, distributed system
|
4 |
An Implementation of Cross Architecture Procedure CallLaeeq, Khan M 06 1900 (has links)
Indian Institute of Science / workstations are ideally suited for computing jobs which require an interactive environment because they are basically single user machines and hence provide consistent response time.
Another factor is the availability of many peripheral devices such as mice and light pens etc., which render workstations more user friendly for interactive jobs. However workstations are not suitable for highly compute intensive jobs as they are basically uniprocessor machines operating at moderate frequencies. For such type of work, large mainframes or supercomputers are more suitable, but interactive use of these machines is not economically feasible. Further more devices like mice etc., are not usually available for these types of
machines. A typical application program is partly interactive and partly compute intensive and hence requires the features of workstations and supercomputers both. We have implemented a Cross Architecture Procedure call (CAPC) model. The purpose of this architecture is to make
supercomputers available to workstation users as compute savers. In this method a workstation user marks some of the procedures in his/her application program which he/she wants to
be executed on a remote mainframe or supercomputer connected to the workstation by a network. These procedures are compiled by a compiler to produce machine code for the computer on which they are supposed to be executed. A special purpose loader loads these procedures on the appropriate machines and then these procedures
are executed on the remote machines at appropriate times without any further modification in the source code. Usually a user will want to execute compute intensive
procedures on supercomputers and interactive parts on a workstation thus utilizing both the machines most efficiently. In our method both local and remote procedures use standard
subroutine call instructions unlike RPC. In this architecture, both local and remote subroutines share a common virtual address space (physically distributed over many machines) and thus global and pointer variables can be used and parameters can be passed by reference with complete transparency. Arbitrary nesting of remote and local procedures is also possible. In our prototype implementation we have used an IBM - PC
(8088 processor operating at 4.7 MHz) as a workstation and a MAGNUM - 1 (68030 processor operating at 25 MHz) as a compute server. As an IBM - PC does not have any virtual memory
hardware (essential for our architecture) we have simulated a virtual memory management system for that machine through software, Our "network" is an RS 232C connection between the two machines using COTPL (Connection Oriented Transport.
Provider for Local Communications) operating at 9600 baud. To test the system we have also implemented the required compiler for a simple language (a subset of Pascal - PL/OI which
produces code for 8088 and 68030 machines, and also a special loader. The system has been completely implemented and tested with several programs. We have also made a thorough performance
study of this system. The System is found to accelerate the applications as much as 2.8 times in the best cases.
|
5 |
Designing an Access Control System for Internet of Things / Utformning av ett accesskontrollsystem för sakernas internetGrape, Felix January 2017 (has links)
For many Internet of Things (IoT) devices security have not been a priority during the development, but what happens if the makers of IoT devices use a secure framework for developing their devices? In this thesis a number of such frameworks have been evaluated for their suitability to build an access control system around. Both Vanadium and Protocol of Things (PoT) were found to be suitable candidates. Both frameworks employ a distributed access control model where the owner of a device can grant other users access to the device by generating a signed authorization. PoT was ultimately chosen as the framework around which to design the prototype access control system because it was deemed to be slightly more suitable than Vanadium. The prototype takes the rule based and discretionary access control model from the underlying framework and makes it possible for administrators to transparently authorize users to devices through role abstractions. Thus it is possible to transparently manage a class of users at the same time instead of having to manage each individual user. Furthermore the prototype is able to do this in a generic way. The prototype does not contain any code of functionality for any specific device it manages, it is capable of managing access to any PoT device. The design and implementation is deemed both scalable and efficient. Running on a single thread it is possible to generate over one thousand signed authorizations per second. In a system where users are granted access to 200 unique device permissions the total file size of the signed authorizations and accompanying meta data does not exceed 150 kB. It takes approximately 70 ms to establish a secure connection between the client and server software. For large data transfers the throughput is approximately 2.6-2.8 MB per second, including encryption and decryption of request and response from the client to the server. / För många enheter tillhörande sakernas internet har säkerhet inte varit en prioritet under utvecklingen, men vad händer om tillverkare istället använder ett säkert ramverk för att utveckla sina produkter? I den här rapporten presenteras en utvärdering av några sådana ramverks lämplighet för att användas för att bygga ett accesskontrollsystem kring. Både Vanadium och Protocol of Things (PoT) finns vara lämpliga kandidater. Båda ramverken använder en decentraliserad säkerhetsmodell där ägaren av en enhet kan ge andra användare tillgång till enheten genom att generera en signerad auktorisation. PoT är det ramverk som användes för att utforma accesskontrollsystemprototypen kring för att det ansågs vara något mer lämpligt jämfört med Vanadium. Prototypen använder en rollabstraktion för att underlätta arbetet för administratörer att ge användare rätt behörigheter. På så vis blir det möjligt att konfigurera en klass av användare samtidigt istället för att behöva konfigurera varje användare individuellt. Prototypen kan göra allt detta på ett generiskt sätt. Det innebär att prototypen inte innehåller någon kod eller funktionalitet som är specifik för någon enhet så länge det är en PoT-enhet. Den föreslagna designen och implementationen är skalbar och effektiv. Över ett tusen signerade auktorisationer kan genereras per sekund på en exekveringstråd. I ett system där användare ges behörighet till 200 unika behörigheter på olika enheter uppgår den totala filstorleken för de signerade auktorisationerna och tillhörande metadata till mindre än 150 kB. Det tar uppskattningsvis 70 ms att skapa en säker anslutning mellan klient- och server-mjukvara. För stora dataöverföringar är överföringshastigheten uppskattningsvis 2.6-2.8 MB per sekund, vilket inkluderar kryptering och avkryptering av fråga och svar från klienten till servern.
|
6 |
Environnement d'exécution parallèle : conception et architectureCosta, Celso Maciel da January 1993 (has links)
L'objectif de cette thèse est l'étude d'un environnement d'exécution pour machines parallèles sans mémoire commune. Elle comprend la définition d'un modèle de programme parallèle, basé sur l'échange de message offrant une forme restreinte de mémoire partagée. La communication est indirecte, via des portes; les processus utilisent les barrières pour la synchronisation. Les entités du système. processus, portes et barrières, sont créées dynamiquement, et placées sur un processeur quelconque du réseau de processeurs de façon explicite. Nous proposons une implantation de ce modèle comme la mise en oeuvre systématique d'une architecture client/serveur. Cette implantation a été efféctuée sur une machine Supemode. La base est un Micro Noyau Parallèle, où le composant principal est un mécanisme d'appel de procédure à distance minimal. / This thesis describes an execution environment for parallel machines without shared memory. A parallel programming model based on message passing, with a special shared memory. In this model, process communication occurs indirectly, via ports, and the processes use barriers for synchronization. All the entities of the system, such as processes, ports and barriers, are created dynamically and loaded on any processor of the network of processors. The implementation architecture of our model is a systematic realization of the client/server model. An implementation is proposed in a Supernode parallel machine as a parallel micro kernel. The principal parallel micro kernel component is a minimal remote procedure call mechanism.
|
7 |
Environnement d'exécution parallèle : conception et architectureCosta, Celso Maciel da January 1993 (has links)
L'objectif de cette thèse est l'étude d'un environnement d'exécution pour machines parallèles sans mémoire commune. Elle comprend la définition d'un modèle de programme parallèle, basé sur l'échange de message offrant une forme restreinte de mémoire partagée. La communication est indirecte, via des portes; les processus utilisent les barrières pour la synchronisation. Les entités du système. processus, portes et barrières, sont créées dynamiquement, et placées sur un processeur quelconque du réseau de processeurs de façon explicite. Nous proposons une implantation de ce modèle comme la mise en oeuvre systématique d'une architecture client/serveur. Cette implantation a été efféctuée sur une machine Supemode. La base est un Micro Noyau Parallèle, où le composant principal est un mécanisme d'appel de procédure à distance minimal. / This thesis describes an execution environment for parallel machines without shared memory. A parallel programming model based on message passing, with a special shared memory. In this model, process communication occurs indirectly, via ports, and the processes use barriers for synchronization. All the entities of the system, such as processes, ports and barriers, are created dynamically and loaded on any processor of the network of processors. The implementation architecture of our model is a systematic realization of the client/server model. An implementation is proposed in a Supernode parallel machine as a parallel micro kernel. The principal parallel micro kernel component is a minimal remote procedure call mechanism.
|
8 |
Environnement d'exécution parallèle : conception et architectureCosta, Celso Maciel da January 1993 (has links)
L'objectif de cette thèse est l'étude d'un environnement d'exécution pour machines parallèles sans mémoire commune. Elle comprend la définition d'un modèle de programme parallèle, basé sur l'échange de message offrant une forme restreinte de mémoire partagée. La communication est indirecte, via des portes; les processus utilisent les barrières pour la synchronisation. Les entités du système. processus, portes et barrières, sont créées dynamiquement, et placées sur un processeur quelconque du réseau de processeurs de façon explicite. Nous proposons une implantation de ce modèle comme la mise en oeuvre systématique d'une architecture client/serveur. Cette implantation a été efféctuée sur une machine Supemode. La base est un Micro Noyau Parallèle, où le composant principal est un mécanisme d'appel de procédure à distance minimal. / This thesis describes an execution environment for parallel machines without shared memory. A parallel programming model based on message passing, with a special shared memory. In this model, process communication occurs indirectly, via ports, and the processes use barriers for synchronization. All the entities of the system, such as processes, ports and barriers, are created dynamically and loaded on any processor of the network of processors. The implementation architecture of our model is a systematic realization of the client/server model. An implementation is proposed in a Supernode parallel machine as a parallel micro kernel. The principal parallel micro kernel component is a minimal remote procedure call mechanism.
|
9 |
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.
|
10 |
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.069 seconds