Recent and Past Projects |
clOpenCL - cluster OpenCL (Research Project) Domus - Co-Operation of Distributed Hash Tables in Heterogeneous Clusters (PhD Thesis) CDN - a Wireless Communitarian Data Network (Engineering Project) PAM iButton - a Linux PAM module for Dallas Semiconductors iButtons (Small Project) S3L - a Statelless Secure Socket Layer (MsC Thesis) IQS - an Intelligent Query System (End Course Project) WinMSP - a Stack Machine simulator for Windows 3.x (End Course Project) |
PhD Thesis Abstract: Distributed Data Structures (DDSs) as an approach to Distributed Storage are adequate to applications that require high storage capacity, scalability and availability. At the same time, DDSs present simple and familiar interfaces that allow shorter development cycles. In a cluster environment, shared by multiple users and applications with dynamic requisites, and built on different hardware generations (with different computing, communication and storage power), the need to simultaneously and efficiently operate several DDSs by user applications presents the scientific and technological challenge embraced by this thesis. This thesis presents the proposals and the results achieved during the study of the models and development of the platform that supports the Domus architecture for the {\it co-operation} of multiple Distributed Hash Tables (DHTs) in shared and heterogeneous clusters. The platform supports several classes of attributes and operations on DHTs allowing, among other possibilities, the administrative definition of per DHT node boundaries and storage technologies, or the deactivation/reactivation of DHTs. In addition, Domus DHTs are managed by dynamic load balancing mechanisms which ensure certain service levels (like storage space or access performance) and optimize the utilization of cluster resources. The architecture builds on specific models for the {\it partitioning} and {\it lookup} of a DHT address space. The {\it partitioning} models ensure optimal distribution of the number of DHT buckets per node, for a dynamic number of DHT nodes, and support the different scenarios that arise from the combination of Static/Dynamic Hashing, with Homogeneous/Heterogeneous Distributions. The quality of the distribution is tuneable under Dynamic Hashing, and repartitioning involves $O(1)$ nodes of the DHT under Homogeneous Distributions. With regard to the {\it lookup} problem, a set of {\it accelerated routing algorithms} were designed for distributed lookup, both for DeBruijn and Chord topologies, in order to deal with the discontinuous DHT partitions generated by our partitioning models. The algorithms explore the availability of multiple routing tables per DHT node with the aim of reducing the lookup cost with full graphs, in which the vertexes are all the DHT buckets, towards the reference lookup cost with sparse graphs, in which the vertexes are all the DHT nodes. The best lookup algorithms ensure a lookup cost of 70\% to 90\% of the reference cost. Related links:
|
The city of Bragança was pioneer in the context of the portuguese Digital Cities Program. The Bragança - Digital City (BDC) initiative started formally in the 22nd of February of 1999, with twelve projects from public and private local institutions covering several areas of the so-called Information Society, with an ultimate goal: "to reduce interiority costs". The Communitarian Data Network (CDN) project is one of the leading projects of the BDC initiative, having provided, since April 2000, a common data communications backbone and shared Internet access, between partners. In other words, the CDN is an IEEE 802.11b Wireless Metropolitan Area Network, linking every partner of the BDC initiative in a kind of Intranet with a single common gateway to the Internet. Although based on new technology, with very recent legal context, wireless private networks are expanding in Portugal. However, the CDN was, as far as we know, the very first case in the portuguese Digital Cities scenario, having set up a wireless metropolitan network. The first phase of the project interconnected eight partners of the BDC initiative, but the network welcomes other organizations interested in developing the local Information Society. Related links:
|
PAM iButton implements a Linux PAM module providing Authentication (auth) and Password (password) services for the DS1993 Dallas Semiconductors iButton. Currently, the software only supports the "login" and "passwd" commands via properly configuring /etc/pam.d/login and /etc/pam.d/passwd. It may work with other PAM-aware applications but it hasn't been tested to do so. The package also offers an autologin feature: a patched version of mingetty allows for the use of an iButton to automatically login at selected terminal lines. You may download the latest version (2.1 alfa for RedHat 6.x) from here [ ]. For a more detailed description of this software please check the README file [ ].
|
MsC Thesis Abstract:
Related links:
|
In 1989, the SOUR (SOftware Use And Reuse) project put together some members of the Olivetti consortium (Systena SPA, Syntax Sistemi Software e OIS Ricerca) and INESC (the main portuguese investigation institute in Computer Engineering). SOUR main goals were: IQS (Intelligent Query System) is a SOUR application level tool allowing for search of software objects from the SOUR repository so that they may be reused. IQS is an intelligent query system because it provides additional features beyond the ones we commonly find in a query system: IQS code is unavailable due to copyright retrictions but you may download some documentation:
|
MSP (Most Simple Possible) is an assembly-like language used to program a Virtual Stack Machine. This machine is purely Virtual because it is entirely simulated by the WinMSP tool. Also, it is a Stack machine because none registers are available (besides the Program Counter and the Stack Pointer, of course), and so the stack must be used instead. The MSP language has a very small set of instructions, with syntax and semantics very easy to learn and understand, making it a good first approach to the Computer Science student. Further learning of the classic programming languages (Pascal, C, C++, Java, ...) will be easier because important concepts such as variables, pointers, code, input and output, have been previously introduced, via MSP, all of them with proper visual representations inside the WinMSP environment. The WinMSP tool provides an IDE for the coding, debugging and execution of MSP programs. Coding may be done in an assisted mode, a wizard-like feature that assures the syntactic correctness of the program. A non-assisted mode is also provided, similar to a text editor. Debugging is possible via breakpoints or by executing the program in step-by-step mode. Execution speed may also be defined. The main memory, stack and register (PC, SP, input, output) contents may be visually followed as the program flows. WinMSP was programmed in Borland C++ 3.1 for Windows 3.x, by me and my coleague Jorge Santos. It was used, for some time, at University of Minho, and later at ESTiG-IPB. You can download the latest version (1.2a) from here [ ]. Addendum: as of June 2007, there is a new cross-platform version, entirelly in Python, currently in beta testing; a public version will be availabe soon. |