Student tutors for the course Data Modelling wanted (winter term 2021/22)

IT-Project Data Souvereignty in winter termin 2021/22

Business Intelligence: Washing Gold in Times of Information Overload

See all news.



You can find us here.

Ruby on Rails with Roles - Ein verteiltes Rollenmodell für RESTful Webservices

Author: K. Ettmayer
Master Thesis: MT1001 (January, 2010)
Supervised by: o. Univ.-Prof. Dr. Michael Schrefl
Instructed by: Mag. Bernd Neumayr
Accomplished at: University Linz, Department for Business Informatics - Data & Knowledge Engineering
Resources: Copy

Abstract (English):

Roles are an important construct in conceptual modelling and object-oriented systsms. Concerning the World Wide Web role concepts did not attract much attention so far. However, especially in the World Wide Web there is a plethora of information, which could be better structured and be modelled more naturally if a role construct was available.

In decentralized information systems, like the World Wide Web, role models have to fulfil additional requirements: Roles can be generated by generalization as well as by specialization, roles have to exist independently and can be integrated to a role hierarchy at any time, the navigation within a role hierarchy has to be supported to minimize access restrictions. A further requirement includes an uniform communication within an information system. Therefore URIs are best qualified for identification and XML for representation of roles.

The main contribution of this thesis is an extension package for the web application framework Ruby on Rails that allows to work with role classes and instances within a web application. Ruby on Rails uses the model-view-controller architectural pattern (MVC) and provides for semi-automatic generation of model, view, controller and database table of a class by using a so-called scaffold generator. The role-extension package described in this thesis comes with a scaffold generator for role classes that intuitively integrates with the existing application framework. This extension package is developed in three steps. In the first step a prominent role concept will be implemented in the programming language Ruby. In the second step this implementation will be enhanced by requirements for its decentralized use, as described in the previous paragraph. In step three Ruby on Rails will be extended accordingly.

Abstract (German):

In objektorientierten Systemen bilden Rollenmodelle wichtige Konstrukte zur Modellierung bzw. Programmierung. In Bezug auf das World Wide Web wurden Rollenkonzepten jedoch noch wenig Aufmerksamkeit gewidmet. Doch genau dort finden sich Unmengen an Informationen, welche anhand von Rollenmodellen besser strukturiert werden können.

Rollenmodelle müssen für den Einsatz in dezentralen Informationssystemen, wie dem World Wide Web, zusätzlichen Anforderungen genügen. Rollen sollen nicht nur durch Spezialisierung, sondern auch durch Generalisierung erzeugt werden können. Weiters sollen Rollen unabhängig existieren können und eine spätere Eingliederung in eine Rollenhierarchie ermöglichen. Auch die Navigation innerhalb einer Rollenhierarchie muss bestmöglich unterstützt werden, wodurch Einschränkungen durch Zugriffsbeschränkungen minimiert werden sollen. Eine weitere Anforderung besteht in einer einheitlichen Kommunikation innerhalb eines Informationssystems, wobei URIs zur Identifikation und XML zur Repräsentation von Rollen bestens geeignet sind.

Die Hauptaufgabe dieser Diplomarbeit besteht in der Erstellung eines Erweiterungs-Packages für das Web Application Frameworks Ruby on Rails, welches die Verwendung von Rollenklassen und -instanzen innerhalb einer Web-Applikation erlaubt. Ruby on Rails verwendet den Model-View-Controller Architekturstil (MVC) und bietet einen so genannten scaffold-Generator an, mit dessen Hilfe das Model, die View, der Controller und die Datenbanktabelle einer Klasse halbautomatisch generiert werden. Das im Rahmen dieser Diplomarbeit entwickelte Package beinhaltet einen solchen scaffold-Generator für Rollenklassen für Ruby on Rails. Die Erstellung dieses erweiterten Packages erfolgt schrittweise. Zu Beginn wird ein aus der Literatur ausgewähltes Rollenkonzept in der Programmiersprache Ruby implementiert, in Schritt zwei wird das Konzept und die Implementierung um die Anforderungen für den dezentralen Einsatz erweitert. Dieses erweiterte Rollenkonzept samt Implementierung wird schließlich in Schritt 3 an die Spezifika von Ruby on Rails angepasst und in dieses Framework integriert.