Refine
Year of publication
- 2010 (6) (remove)
Document Type
- Diploma Thesis (6) (remove)
Keywords
- Routing (2)
- API (1)
- Algorithm Engineering (1)
- Controlling (1)
- Dijkstras Algorithmus (1)
- GPS (1)
- JML (1)
- Java Modeling Language (1)
- Java. Programmiersprache (1)
- Konvergenz (1)
Institute
- Institut für Informatik (6) (remove)
So far VNUML (Virtual Network User Mode Linux) has been used by the group for Computer Networks at the University of Koblenz in such a way as to test its own protocol enhancement for RIP (Routing Information Protocol) on strengths and weaknesses. The modified version of RIP is called RMTI (RIP with minimal topology information). In particular, special test scenarios have been used to investigate wether a Count-to-Infinity (CTI) problem can be completely avoided and how quickly the network converges after the failure or breakdown of a router. Tius thesis investigates whether the MTI enhancement also provides for better performance in larger networks. Furthermore, it will be investigated if it is worth using the script tool EDIV ((spanish: Escenarios DIstribuidos con VNUML, english: Distributed Scenarios using VNUML) due to its enhanced scalability and whether the distribution of an XML scenario on several computers has a significant impact on the convergence time. Apart from simulations, test scenarios will be developed and tested in order to generate results about the efficiency and scalability of the Distance Vector Routing Protocol.
This thesis presents an analysis of API usage in a large corpus of Java software retrieved from the open source repositories hosted at SourceForge. Most larger software projects use software libraries, which offer a public "application programming interface" or API as an interface for the programmer. In order to facilitate the transition between different APIs, there are emerging research projects in the field of automated API migration. However, there is a lack of basic statistical background information about in-the-wild usage of APIs as such measurements have, until now, only been done on rather small corpora. We thus present an analysis method suitable for measurements with large corpora. First, we create a corpus of open source projects hosted on SourceForge, as well as a corpus of software libraries. Then, all projects in the corpus are compiled with an instrumented compiler. We use a compiler plugin for javac that gives detailed information about every method created by the compiler. This information is stored in a database and analyzed.
RMTI (RIP with Metric based Topology Investigation) wurde in der AG Rechnernetze an der Universität Koblenz-Landau entwickelt. RMTI stellt eine Erweiterung zum RIP (Routing Information Protocol) dar, die das Konvergenzverhalten bei Netzwerkveränderungen, insb. bei Routingschleifen, verbessern soll. Dies geschieht durch Erkennen von Routingschleifen und Reduzieren des Count-to-infinity Problems. Um dieses gewünschte Verhalten nachweisen zu können, bedarf eine reichhaltige Evaluierung des RMTI- Algorithmus. Hierzu wurde in der gleichen Arbeitsgruppe die Client-/Server-Applikation XTPeer entwickelt. In Kombination mit anderen Software wie VNUML und Quagga Routing Suite lässt sich per XT-Peer der Algorithmus evaluieren. Die Applikation XTPeer generiert durch die Simulationen Daten. Diese können in Form von XML konforme SDF-Dateien exportiert werden. Diese können ohne weitere Auswertungen wieder in die XTPeer Applikation importiert werden. Die Evaluierung der Simulationen findet automatisiert nur an der aktuellen Simulation statt. Evaluierung über mehrere Simulationen muss der Benutzer manuell berechnen. Um diese Evaluierungsarbeiten für den Benutzer zu vereinfachen, verfolgt die vorliegende Diplomarbeit daher das Ziel, die XTPeer Applikation mit einem Auswertungsmodul zu erweitern. Die Auswertungen soll sich über alle gespeicherten Simulationsdaten und nicht wie bisher nur über die aktuell laufende Simulation erstrecken. Dies ermöglicht bessere statistisch verwertbare Aussagen. Zusätzlich können diese Auswertungsergebnisse grafisch unterstrichen werden.
A network like the internet is a set of subnets that are connected to each other by a router. A router is a computer, containing multiple network devices to be connected to multiple subnets. So, it is able to forward packages from one subnet to another. A network can be represented as a graph with its routers as vertices and subnets as edges. This graph is called the topology of the network. A packet send to a host outside the own subnet usually will be send first to the so-called default router. This router (like any router) contains a table (the so-called forwarding table) with every subnet. Additionally for each net, the table contains the router through which the subnet can be reached best. So, the packet will be forwarded from router to router until it reaches the destination subnet. On this way every router looks up in its forwarding table for the best next router. A routing protocol takes care of the automatic exchange of informations between the routers to build the forwarding tables and keep them up to date. If the forwarding tables of all routers are up to date the network is called convergent. The time needed to build or update the routing tables is called the convergence time The RIP routing protocol is a well known and well explored distance vector protocol. But there are only few examinations about the convergence properties (e.g. the time needed to converge or the traffic volume produced by the routing messages). This work tries to examine a relationship between the topology properties of a network and the convergence properties of the rip routing protocol. Therefore, over 5000 single measurements were performed and statistically analyzed. Mathematical formulas have been derived from the results that are able to approximate the convergence properties of a network from its topology properties.
In einer Welt, die immer mehr durch den Einsatz von Technik geprägt wird, gewinnen Systeme, welche eigenständig Aufgaben in einem vorgegebenen Kontext übernehmen können, mehr und mehr an Bedeutung. Solche Systeme werden als autonome Systeme bezeichnet, die ein eigenständiges Verhalten und Interaktionen mit ihrer Umwelt und anderen Systemen beinhalten. Zu diesen Systemen zählen auch autonome mobile Roboter. Sie sind sozusagen intelligente Fahrzeuge, die ihnen übertragene Aufgaben ohne menschliche Unterstützung durchführen können. Um ihre Umwelt wahrzunehmen, mit ihr interagieren und in ihr navigieren zu können benötigen diese Systeme verschiedene Arten von Sensoren. Somit ist die Robotikforschung stark interdisziplinär. Diese Arbeit befasst sich ausschliesslich mit dem Bereich der Navigation, insbesondere mit der Positionsbestimmung, welche für eine gute Navigation die Grundlage bildet. Ein heutzutage häufig benutztes, weltweit verfügbares System zur Positionsbestimmung ist GPS. Ziel dieser Arbeit ist der Anschluss eines GPS-Moduls an einen Mikrocontroller und der Versuch die Positionsgenauigkeit lokal zu präzisieren, um so einem autonomen System die Möglichkeit zur eröffnen, Aufgaben, die eine höhere Genauigkeit erfordern, zu bewerkstelligen.
Die Entwicklung von Algorithmen im Sinne des Algorithm Engineering geschieht zyklisch. Der entworfene Algorithmus wird theoretisch analysiert und anschließend implementiert. Nach der praktischen Evaluierung wird der Entwurf anhand der gewonnenen Kenntnisse weiter entwickelt. Formale Verifffizierung der Implementation neben der praktischen Evaluierung kann den Entwicklungsprozess verbessern. Mit der Java Modeling Language (JML) und dem KeY tool stehen eine einfache Spezififfkationssprache und ein benutzerfreundliches, automatisiertes Verififfkationstool zur Verfügung. Diese Arbeit untersucht, inwieweit das KeY tool für die Verifffizierung von komplexeren Algorithmen geeignet ist und welche Rückmeldungen für Algorithmiker aus der Verififfkation gewonnen werden können.Die Untersuchung geschieht anhand von Dijkstras Algorithmus zur Berechnung von kürzesten Wegen in einem Graphen. Es sollen eine konkrete Implementation des Standard-Algorithmus und anschließend Implementationen weiterer Varianten verifffiziert werden. Dies ahmt den Entwicklungsprozess des Algorithmus nach, um in jeder Iteration nach möglichen Rückmeldungen zu suchen. Bei der Verifffizierung der konkreten Implementation merken wir, dass es nötig ist, zuerst eine abstraktere Implementation mit einfacheren Datenstrukturen zu verififfzieren. Mit den dort gewonnenen Kenntnissen können wir dann die Verifikation der konkreten Implementation fortführen. Auch die Varianten des Algorithmus können dank der vorangehenden Verififfkationen verifiziert werden. Die Komplexität von Dijkstras Algorithmus bereitet dem KeY tool einige Schwierigkeiten bezüglich der Performanz, weswegen wir während der Verifizierung die Automatisierung etwas reduzieren müssen. Auf der anderenrn Seite zeigt sich, dass sich aus der Verifffikation einige Rückmeldungen ableiten lassen.