Download presentation
Presentation is loading. Please wait.
1
Software Systems Lab Department of Electrical Engineering Technion - Israel Institute of Technology By: David Nasi & Amitay Svetlit Supervisor: Oved Itzhak
2
Motivation Conventional text file viewer applications poorly suitable for very large text files (user response time wise). Conventional text file applications do not provide tools for creating custom search and index.
3
Project Objectives A user friendly graphic interface specialized for viewing VLTFs. Application responsiveness is independent of input file size. Extensible indexing architecture for employing indexing by arbitrary criteria.
4
User Interface Design Main Features: Text View Pane Search Results Pane Search Bar Go-to-Line Bar Progress Bar Scroll Knob
5
User Interface Design – Scroll Knob Scrolling over a VLTF using a conventional scroll bar may be very tedious Scroll Knob functionality allows to scroll over the VLTF with adaptive speed The speed is adjusted by a polynomial factor dependant on the distance of the knob from the center
6
Software Design – Segmentation Basic Concept Goal: Create a highly responsive viewer when displaying VLTFs (in the order of GBs). Challenge: Simple file access patterns (i.e. reading the entire file upon opening) are unsuitable. Approach: Segmentation: Upon opening the VLTF is partitioned to fixed-size segments. The segmentation process maps line numbers to segments in which they are held. Each segment holds only complete lines.
7
Segmentation - Example Segment #1 Lines: 1…1000Size = ~ 32Kb Segment #2 Lines: 1001…2200 Size = ~ 32Kb Segment #3 Lines:2201…3115 Size = ~ 32Kb Segment #K Lines: ?...?Size = ~ 32Kb
8
Software Design – Estimation Basic Concept Goal: Create a highly responsive viewer when displaying VLTFs (in the order of GBs). Challenge: Since segmentation requires reading the entire file, a question arises about the user experience before the file is fully indexed. Approach: Using some metrics (average number of lines in a segment) and provide the user with the estimated line with an indication that this is only estimation.
9
Software Architecture – Three Tier GUI Business Logic Data Structure
10
Data Structure Layer Responsibilities: Segmentation Process Estimation metrics gathering Serving Business Logic data request
11
Data Structure Layer - Asynchronous Request Handling Queue of Read Requests from the Business Logic No duplicate segment requests are handled The requests are handled in a FIFO order Each request is processed on a separate thread A callback to the Business Logic transferring the data and meta data for analyzing it - sessionless principle
12
Business Logic Layer Responsibilities: Receives read request from the GUI Serves as cache for the GUI layer requests Sends data requests to the Data Structure Custom Search and Index capabilities
13
Custom Search & Index Capabilities We provide the developers with an abstract class of a searcher Through implementing this class it’s possible to: 1. Construct a custom index 2. Interconnect with the GUI performing arbitrary search requests
14
Choosing a Custom Searcher
15
Search Progress
16
GUI Read Requests Handling As a result of the paging work being done on separate threads library functions are used in order to update the GUI controls Race Condition between different requests is handled by assigning a time stamp ID to each request
17
Design Components
18
Class Overview
19
End Many thanks to our dedicated supervisor, Oved Itzhak for his great help and support Thanks to the software lab staff for the support (Ilana David and Victor Kulik)
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.