CHAPTER ONE
INTRODUCTION
1.1 Background of the Study
A web browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier (URI) and may be a web page, image, video, or other piece of content. Hyperlinks present in resources enable users easily to navigate their browsers to related resources. A web browser can also be defined as an application software or program designed to enable users to access, retrieve and view documents and other resources on the Internet [1].
Precursors to the web browser emerged in the form of hyperlinked applications during the mid and late 1980s, and following these, Tim Berners-Lee is credited with developing in 1990 both the first web server, and the first web browser, called WorldWideWeb (no spaces) and later renamed Nexus. Many others were soon developed, with Marc Andreessen's 1993 Mosaic (later Netscape), being particularly easy to use and install, and often credited with sparking the internet boom of the 1990s. Today, the major web browsers are Microsoft Edge, Firefox, Internet Explorer, Google Chrome, Opera, and Safari[2].
The first web browser, WorldWideWeb, was developed in 1990 by Tim Berners-Lee for the NeXT Computer (at the same time as the first web server for the same machine) and introduced to his colleagues at CERN in March 1991.[3]
Like much of the Internet, the World Wide Web operates on a client/server model. You run a web client on your computer—called a web browser—such as Microsoft’s Internet Explorer or Firefox. That client contacts a web server and requests information or resources. The web server locates and then sends the information to the web browser, which displays the result [4].
This project is all about developing an internet web browser with a programming language called Visual Basic.Net. With this language, we are going to build an advanced web browser similar to those in existence today.
1.2 Statement of the Problem
After a careful research, it has been noted that most web browser in existence use a lot of data for background processes. Data is been charged for processes the user is not accessing or is not aware which leads to a data waste. Hence this project will make use of miniaturized version of web which will minimize data consumption and will notify the user if there is need to allow some background process to make use of data.
1.3 Aim & Objectives of the Study
The aim of this project is to develop a web browser using Visual Studio.Net software and Visual Basic.Net Language to support the global community of browsing and surfing the internet.
The objectives are:
1. To build a web browser that will minimize data consumption
2. To build a web browser that gives the user complete access and control of the web
1.4 Methodology
A web browser will be built using Visual Basic.Net language. Visual Basic.Net is a object oriented programming language i.e they are event driven. The software to be used is Visual Studio.Net. Visual Studio.Net is the only available software for Visual Basic.Net.
1.5 Scope of the Study
A windows desktop web browser is a software application that gives individuals/ users the ability to access the internet and share information. A web browser has become so important that it changes the way people look at communication. It also changes the method of communicating with each other.
1.6 Limitation of the Study
The web browser can be operated only on a windows platform.
The web browser will not receive updates and plug-ins.
The web browser will not show the progress of a loading website.
1.7 Definition of Terms
Web Browser: A web browser is a software application for retrieving, presenting and traversing information resources on the World Wide Web
World Wide Web: The World Wide Web (abbreviated WWW or the Web) is an information space where documents and other web resources are identified by Uniform Resource Locators (URLs), interlinked by hypertext links, and can be accessed via the Internet.
Visual Studio: This is an application software that comes with Visual basic.net for the development of windows software.
Visual Basic.Net: This is the developing tool used as a form of language to code the program to be built.
CHAPTER TWO
LITERATURE REVIEW
2.1 Introduction
From the beginning to end, this project went through a series of small, but necessary changes. When we began the programming of the code and the design of the interface, we came to realize there were quite a few aspects of our design from our original proposal that were simply too ambitious. For example, we are to use VB.NET code to design the interface and a rotary context menu but discovered that there is more to the rotary context menu that what we know or can know. We also combined skills together to make a very interactive user interface as proposed.
2.2 History of a Web Browser
Precursors to the web browser emerged in the form of hyperlinked applications during the mid and late 1980s, and following these, Tim Berners-Lee is credited with developing in 1990 both the first web server, and the first web browser, called WorldWideWeb (no spaces) and later renamed Nexus. Many others were soon developed, with Marc Andreessen's 1993 Mosaic (later Netscape), being particularly easy to use and install, and often credited with sparking the internet boom of the 1990s. Today, the major web browsers are Microsoft Edge, Firefox, Internet Explorer, Google Chrome, Opera, and Safari[5].
The explosion in popularity of the Web was triggered in September 1993 by NCSA Mosaic, a graphical browser which eventually ran on several popular office and home computers. This was the first web browser aiming to bring multimedia content to non-technical users, and therefore included images and text on the same page, unlike previous browser designs; its founder, Marc Andreessen, also established the company that in 1994, released Netscape Navigator, which resulted in one of the early browser wars, when it ended up in a competition for dominance (which it lost) with Microsoft Windows' Internet Explorer[6][7].
2.2.1 Precursors
In 1984, expanding on ideas from futurist Ted Nelson, Neil Larson's commercial DOS Maxthink outline program added angle bracket hypertext jumps (adopted by later web browsers) to and from ASCII, batch, and other Maxthink files up to 32 levels deep. In 1986, he released his Disc Operating System (DOS) Houdini network browser program that supported 2500 topics cross-connected with 7500 links in each file along with hypertext links among unlimited numbers of external ASCII, batch, and other Houdini files, these capabilities were included in his then popular shareware DOS file browser programs HyperRez (memory resident) and PC Hypertext (which also added jumps to programs, editors, graphic files containing hot spots jumps, and cross-linked thesaurus/glossary files). These programs introduced many to the browser concept and 20 years later, Google still lists 3,000,000 references to PC Hypertext. In 1989, he created both HyperBBS and HyperLan which both allow multiple users to create/edit both topics and jumps for information and knowledge annealing which, in concept, the columnist John C. Dvorak says pre-dated Wiki by many years [8].
From 1987 on, he also created TransText (hypertext word processor) and many utilities for rapidly building large scale knowledge systems ... and in 1989, helped produce for one of the big eight accounting firms. A comprehensive knowledge system of integrating all accounting laws/regulations into a Compact Disc Read Only Memory (CDROM) containing 50,000 files with 200,000 hypertext jumps. Additionally, the Lynx (a very early web-based browser) development history notes their project origin was based on the browser concepts from Neil Larson and Maxthink. In 1989, he declined joining the Mosaic browser team with his preference for knowledge/wisdom creation over distributing information ... a problem he says is still not solved by today's internet [8].
Another early browser, Silversmith, was created by John Bottoms in 1987. The browser, based on SGML tags, used a tag set from the Electronic Document Project of the AAP with minor modifications and was sold to a number of early adopters. At the time SGML was used exclusively for the formatting of printed documents. The use of SGML for electronically displayed documents signaled a shift in electronic publishing and was met with considerable resistance. Silversmith included an integrated indexer, full text searches, hypertext links between images text and sound using SGML tags and a return stack for use with hypertext links. It included features that are still not available in today's browsers. These include capabilities such as the ability to restrict searches within document structures, searches on indexed documents using wild cards and the ability to search on tag attribute values and attribute names [9].
Starting in 1988, Peter Scott and Earle Fogel expanded the earlier HyperRez concept in creating Hytelnet which added jumps to telnet sites ... and which by 1990 offered users instant logon and access to the online catalogs of over 5000 libraries around the world. The strength of Hytelnet was speed and simplicity in link creation/execution at the expense of a centralized worldwide source for adding, indexing, and modifying telnet links. This problem was solved by the invention of the web server [10].
2.3 Features of a Web Browser
One of the feature of a web browser is the Search Engine. The Search engine is a software program designed to search the internet for information. The search results are generally presented in a list of results and are often called hits. The information may consist of web pages, images, information and other types of files [11].
EXAMPLES: (Numbers from early 2012)
Google (85%) - Product of Google and most widely used.
Baidu (7%) - People's Republic of China product.
Yahoo (4%) – Product of Yahoo.Uses Bing technology platform.
Bing (3%) – Product of Microsoft – gaining some in popularity.
2.4 Search Engine
USAGE - One can set the desired search engine within the web browser. It can be easily changed by the user and is often inadvertently changed when installing certain software programs. The software may include an option to use a certain search engine as the “Default” and if it is not specifically highlighted you may miss it thus changing your designated search engine [11].
A web search engine is designed to search for information on the World Wide Web and FTP servers. The search results are generally presented in a list of results often referred to as SERPS, or "search engine results pages". The information may consist of web pages, images, information and other types of files. Some search engines also mine data available in databases or open directories. Unlike web directories, which are maintained only by human editors, search engines also maintain real-time information by running an algorithm on a web crawler [11].
2.5 Working Principle of a Web Browser
Like much of the Internet, the World Wide Web operates on a client/server model. You run a web client on your computer—called a web browser—such as Microsoft’s Internet Explorer or Firefox. That client contacts a web server and requests information or resources. The web server locates and then sends the information to the web browser, which displays the results. When web browsers contact servers, they’re asking to be sent pages built with Hypertext Markup Language (HTML). Browsers interpret those pages and display them on your computer. They also can display applications, programs, animations, and similar material created with programming languages such as Java and ActiveX, scripting languages such as JavaScript, and techniques such as AJAX [12].
Sometimes, home pages contain links to files the web browser can’t play or display, such as sound or animation files. In that case, you need a plug-in or a helper application. You configure your web browser or operating system to use the helper application or plug-in whenever it encounters a sound, animation, or other type of file the browser can’t run or play. Over the years, web browsers have become increasingly sophisticated. Browsers are now full-blown software suites that can do everything from videoconferencing to letting you create and publish HTML pages. Browsers now also blur the line between your local computer and the Internet—in essence, they can make your computer and the Internet function as a single computer system. Increasingly, a browser is not just a single piece of software, but an entire suite. The newest version of Internet Explorer, for example, includes security features such as an anti-phishing filter. The Firefox browser has a companion piece of email software called Thunderbird that can be downloaded as well [12].
When browsing the Internet, one of the most frustrating experiences is the error messages browsers display when they’re having trouble contacting a website. Depending on which browser you use, and which version of the browser you’re using, those messages might differ. Sometimes browsers display error messages in plain English—but more often they don’t [12].
The coding in the HTML files tells your browser how to display the text, graphics, links, and multimedia files on the home page. The HTML file your browser loads to display the home page doesn’t actually have the graphics, sound, multimedia files, and other resources on it. Instead, it contains HTML references to those graphics and files. Your browser uses those references to find the files on the server and then display them on the home page [12].
The web browser also interprets HTML tags as links to other websites, or to other web resources, such as graphics, multimedia files, newsgroups, or files to download. Depending on the link, it performs different actions. For example, if the HTML code specifies the link as another home page, the browser retrieves the URL specified in the HTML file when the user clicks the underlined link on the page. If the HTML code specifies a file to be downloaded, the browser downloads the file to your computer [12].
The meanings of tags are easily decipherable. Every HTML tag, or instruction, is surrounded by a less-than and a greater-than sign <P>. Often tags appear in pairs, the beginning tag and the ending tag. They are identical except for a simple slash in the ending tag. So, a paragraph of text frequently is surrounded by tags such as this: <P> Paragraph of text.</P>. Also, tags are not case sensitive. <P> equals <p> [12].
2.6 Architecture of a Web Browser
Using the source code and available documentation for two different web browsers, reference architecture was derived for the web browser domain. Two mature browser implementations were selected and, for each browser, a conceptual architecture was proposed based on domain knowledge and available documentation.
The concrete architecture of each system was then extracted from its source code, using the QLDX, a reverse engineering toolkit, and used to refine the conceptual architecture.
Reference architecture was then proposed based on the common structure of these refined architectures, and it was validated against two other browser implementations. The reference architecture comprises of eight major subsystems plus the dependencies between them:
(1) The User Interface;
(2) The Browser Engine, an embeddable component that provides a high-level interface for querying and manipulating the Rendering Engine;
(3) The Rendering Engine, which performs parsing and layout for HTML documents, optionally styled with CSS;
(4) The Networking subsystem;
(5) The JavaScript Interpreter;
(6) The XML Parser;
(7) The Display Backend, which provides drawing and windowing primitives, user interface widgets, and fonts; and
(8) The Data Persistence subsystem, which stores various data associated with the browsing session on disk, including bookmarks, cookies, and cache.
Mozilla and Konqueror were used to derive the reference architecture because they are mature systems, and they have reasonably large developer communities and user bases, provide good support for web standards, and are entirely open source. The Mozilla Suite was open-sourced by Netscape in 1998, and since then most of the system has been completely redesigned or rewritten and a large number of new features have been added. Mozilla’s key design goals are strong support for web standards, support for multiple platforms, and fast page rendering. The mapping of Mozilla’s conceptual architecture onto the reference architecture is shown in Figure 3. The User Interface is split over two subsystems, allowing for parts of it to be reused in other applications in the Mozilla suite such as the mail/news client. All data persistence is provided by Mozilla’s profile mechanism, which stores both high-level data such as bookmarks and low-level data such as a page cache [13].
2.7 Visual Studio.Net
Many people always get confused with Visual Studio .NET (VS.NET) and .NET technology. VS.NET is just an editor, provided by Microsoft to help developers write .NET programs easily. VS.NET editor automatically generates lot of code, allows a developer to drag and drop controls to a form, provide short cuts to compile and build the application etc.
Visual Studio .NET has an add-in that completes code as you write it. Instead of multiline coding constructs such as if..then..else, You just write a 3-letter shortcut. Studio immediately expands the shortcut to the full code. The system gain performance by typing less. It works with any .NET language such as VB, C/C++, C#, HTML, XML, and XSLT [14].
2.8 Understanding Visual Studio .Net
Visual Studio is a very user friendly tool. But there is enough stuff to confuse any one new to Visual Studio family. The purpose of this chapter is to make you familiar with different options in Visual Studio.NET (VS.NET). We will not cover the entire visual studio guide. We are just explaining the most commonly used features of VS.NET.
When you work on project system, VS.NET has several child windows to assist you in the application development. These windows are attached on the left, bottom and right sides of the main window. You can click on these small windows to expand it and see the content of them. Most of these windows will be enabled only when you have created a project and working on a Windows Form [14].
2.9 Visual Basic.Net
Visual Basic.NET is one of the most widely used application development tool that has just gotten better. It’s difficult to call Visual Basic.NET the next version of Visual Basic, because both the development environment and the programming language have undergone a nearly complete redesign – one that will challenge millions of programmers to adopt a new programming pattern.
Visual Basic.NET represents a significant advance in a relatively old programming language. It is this programming language that has evolved over nearly 30 years to become one of the most utilized programming languages in the world. Visual Basic.NET has upgraded some of the features of Visual Basic while introducing some exciting new abilities into the language.
Visual Basic.NET has upgraded some of the old features of Visual Basic while introducing some exciting new abilities into the language, including:
Greater access to system resources
Object inheritance
Garbage collection
Better memory management
Greater interoperability
Common Language Runtime (CLR)
Visual Basic.NET has gotten rid of many older forms of language syntax. This means that programs written in earlier versions (version 6.0 and earlier) may not compile without first being rewritten.
There are some new terms that you should become familiar with. Managed code is program code written to run exclusively under Common Language Runtime (CLR). Unmanaged code that continuously to rely on the Win32 API and COM. For example, code written in previous versions of Visual Basic is considered unmanaged code. The new Visual Basic.NET compiler creates managed code [14].
Whether you’re new to programming or an experienced Visual Basic programmer, you found that this latest incarnation of Visual Basic is exciting and challenging. While this version maintains a certain amount of the language constructs contained in previous versions, the entire foundation of the language has changed. Visual Basic, once considered “object-based”, is now an “object-oriented” programming language[14].
2.10 Writing Visual Basic.Net Programs
Visual Studio includes a powerful, integrated development environment (IDE). The visual interface allows you to quickly build a user interface by simply selecting controls from a Toolbox window and placing them on a form. Access to the Form and control’s properties are only a mouse-click away. Double-clicking the Form or control will add code to handle the control’s default event. All that’s left for you to do is add the Visual Basic.NET code that provides functionality.
The code editor has many times- saving features, such as auto-formatting, auto-completion, and context sensitive help. Automatic formatting and completion means you rarely have to worry about a missing End If statement or a Loop statement in the wrong place. You rarely have to refer to the documentation to learn what parameters a method accepts, because they will appear in the editor as your type. When the method is overloaded, accepting different parameters, you can scroll to the argument set that you desire.
Also integrated with the editor is the debugger. As you compile the application, warnings and errors are displayed in a Window adjoining the editor. Clicking the warning or error will take you directly to the offending line of code, and normally, a meaningful message will help you fix the problem.
The development environment, Visual Studio, has evolved over the years. The most recent version for the .NET development environment supports an expandable development interface. Visual Studio.NET offers several ways it can be customized. The built-in methods include programmable shortcut keys, tool window configurations, and command bars.
As programmer-friendly as the Visual Studio development environment is, it’s not required to write and compile Visual Basic.NET applications. You are free to use any text editor to write the programs, and use the Visual Basic.NET command line utilities to compile the code. Many programmers have formed preferences for code editors, some containing time-saving macros or specific formatting preferences.
2.10.1 Projects
VS.NET allows you to create several types of projects. Most of the time you will be using one of two categories:
• Windows Application - to create any standard windows application.
• ASP.NET Web Application - to create a web site.
CHAPTER THREE
METHODOLOGY
3.1 Introduction
The practical objective of this work is to build and design a web browser that minimizes data consumption. Methods employed in gathering required data and information used for this project is: Use of documented resources and Observation Method.
Observation Method: Personal observation was also made in order to understand the whole process of developing the application.
3.2 Development Methods
We have series of development method such as;
Adaptive Project Framework
Agile Software Development
Crystal Methods
Dynamic Systems Development Model (DSDM)
Spiral
Systems Development Life Cycle SDLC
Waterfall Traditional
The development method used is the Waterfall Traditional. The waterfall traditional method is the legacy model for software development projects. This method has been in practice for decades before the new methodologies were introduced. In this model, development lifecycle has fixed phases and linear timelines.
The waterfall model is a sequential development approach, in which development is seen as flowing steadily downwards (like a waterfall), through several phases, typically:
Requirements analysis resulting in a software requirements specification
Software design
Implementation
Testing
Integration, if there are multiple subsystems
Deployment (or Installation)
Maintenance
Below is a figure representing the waterfall development method.
Fig 3.1: Traditional Waterfall Methodology
Requirements: This can be described as the system requirement for the program to run. The minimum requirement for this web browser include:
OS : Windows XP and Later (Windows 7 SP1, 8, 8.1, 10 recommended)
RAM: 512MB and Above
Design: The initial design of the web browser will look like the one in figure 3.2. We cannot say it will remain that way at the end of the project. But it will look more better and beautiful.
Fig 3.2: Initial Web Browser Interface
Development: We are to make use of Visual Studio 2008 Express Edition. Though we later moved to Visual Studio 2012 due to some code issues. The language to be used is the Visual basic.Net. Below is the list of objects used in the design of the interface;
3.3 FLOWCHARTS
3.3.1 MODE OF OPERATION
Open Web Browser
Input URL
Browser loads If it require user data
URL Might require log in details
If it does not require user data
Loads URL &
Navigation continues
If javascript No
Animation exists
Yes
Pops up dialog
Script error
Navigation continues
End
Fig 3.3 Mode of Operation
3.3.2 DEVELOPMENT PROCESS FLOWCHART
Open Visual Studio.Net
Create New Project
Name and Save
Drag Controls to GUI
Assign code to controls
Check Code
Debug & run
If Error Yes
Exist
No
Run
Close Visual Studio.Net
Fig 3.4 Development Process Flowchart of Vlite Web Browser
17