SlideShare une entreprise Scribd logo
1  sur  27
An Introduction to 
Open Source Software and 
Web Application Development 
Trevor Thornton 
North Carolina State University Libraries
Open source software is… 
… made available with a license that 
permits users to freely run, study, modify 
and re-distribute 
… distributed with its source code in a 
human readable format (enabling study, 
modification) 
… typically developed in an public, 
collaborative manner
Pre-history of open source 
1950s-1960s : Software customarily 
distributed with source, few restrictions 
1970s : Software companies begin to 
implement measures to prevent users from 
accessing source code 
1980 : U.S. copyright protection extended to 
computer programs
GNU Project 
Founded in 1983 by Richard Stallman 
(formerly of MIT) to develop software free 
from restrictions 
• GNU Operating System 
• GNU General Public License (GPL)
Free Software Foundation 
Founded by Stallman in 1985, published the 
first formal definition of “free software”, 
based on 4 freedoms: 
… to run the program for any purpose 
… to study how the program works, and modify it as 
needed (access to the source code is a precondition) 
… to redistribute copies 
… to distribute copies of your modified versions
Linux 
First version developed by Linus Torvalds in 
1991, released under the GPL in 1992 – 
thousands of developers contribute to its 
further development 
In 1997, Eric Raymond published 
“The Cathedral and the Bazaar” extolling the 
benefits of distributed development 
"Given enough eyeballs, 
all bugs are shallow"
Open source 
development principles 
• Users as co-developers 
• Release early, release often 
• Multiple versions (stable + development) 
• Modularity 
• Dynamic decision-making structure
Open source licenses 
Copyright protections/restrictions apply 
automatically 
Licenses allow a copyright holder to grant 
permissions to users 
Open Source Initiative provides criteria for 
assessing open source licenses 
“The Open Source Definition” 
opensource.org/osd
Common open source licenses 
• GNU GPL 
• MIT 
• Apache License 
• BSD (Berkeley Software Distribution) 
• Mozilla Public License 
• & many, many more – see: 
opensource.org/licenses
Web Applications 
• Application software that runs in a web 
browser and is delivered over a network 
(not installed on client computer) 
• Advantages: 
– Easy to roll out to multiple users 
– Minimal system requirements for client 
– Cross-platform/cross-device compatibility 
– Increasingly rich user experience as web 
technologies improve
3-tiered structure 
Presentation 
Web browser (client) – HTML, CSS, JavaScript 
Application logic 
PHP/Python/Ruby/Perl/etc… 
Storage 
Database, file systems, indexes
Typical architecture 
“client side” “server side” 
web browser 
(HTTP client) 
HTTP server 
application logic 
database 
HTTP request 
HTTP response 
file 
storage search 
index
The LAMP stack 
An archetypal model for server side 
architecture with open-source components 
Linux 
Apache 
MySQL 
PHP
Linux 
• Open-source operating system based on 
the Linux kernel 
• Many distributions available that bundle 
other software 
• Most prevalent OS for web servers 
• Windows Server often used instead 
(WAMP)
Apache HTTP server 
• Accepts incoming requests and returns a 
response, typically either by: 
– Returning a static document 
– Passing the request to a script that generates 
a response ‘on-the-fly’ 
• Developed and maintained collectively by 
the Apache Software Foundation
MySQL 
• Relational Database Management System 
(RDBMS) 
• Relational databases store data in tables 
• Other open-source alternatives: 
– PostgreSQL : Object-relational database 
– NoSQL databases : CouchDB, MongoDB, 
Redis, triple-stores
PHP 
• General purpose programming language 
typically used for server-side scripting 
• Runtime system : software that interprets 
and executes code written in a particular 
language 
• Other popular languages for web apps: 
Python, Ruby, Perl
Apache Solr 
• Open-source enterprise search engine 
maintained by Apache Software 
Foundation 
• Provides full-text search, faceting, hit 
highlighting, grouping, etc. 
• Most widely-used enterprise search 
system on the web
HTML 
• Structural foundation for web content 
• Document Object Model (DOM) : 
representation of page structure within the 
browser 
• HTML5 provides new APIs to support 
native media playback, local data storage, 
2-D drawing, improved interactivity,…
CSS (Cascading Style Sheets) 
• Used to define visual presentation of web 
content 
• Identifies elements in the DOM and 
assigns them display attributes 
• CSS3 supports animation and 
transformation of objects
JavaScript 
• Fundamental component of most web 
applications, enabling advanced 
client-side functionality via: 
– Response to user input 
– Manipulation of the DOM 
– Asynchronous communication with server 
• Node.js : server-side runtime system for 
JavaScript
Web application frameworks 
• Provide basic functionality shared by most 
web applications 
• Allow developers to concentrate on 
solutions to new problems 
• Promote code re-use
Common web application 
framework features 
• Routing/URL mapping 
• Page templates 
• Database interaction 
• Security 
• Conventions for organizing code
Popular frameworks 
• Ruby on Rails (Ruby) 
• Django (Python) 
• PHP frameworks : Laravel, Zend, 
Symfony, Code Igniter, … 
• JavaScript frameworks : Angular, Ember, 
Backbone, …
Levels of involvement in open 
source projects 
• Implementing an existing application 
without modification 
• Modifying an existing application to suit 
local needs 
• Contributing to an existing project 
• Developing something completely new 
and releasing it with an open license
Open source communities 
• Users/implementers : share knowledge 
through lists, groups, etc. 
• Developers : contribute code, identify 
issues and suggest fixes 
• Supporters : provide financial support 
to ensure long-term sustainability of open 
source projects
email: trthorn2@ncsu.edu 
Twitter: @trevorthornton 
Github: trevorthornton 
slides (eventually): 
slideshare.net/trevorthornton/presentations 
NCSU Digital Library Initiatives: 
lib.ncsu.edu/dli/projects 
github.com/NCSU-Libraries

Contenu connexe

Tendances

Open source Software: pros and cons
Open source Software: pros and consOpen source Software: pros and cons
Open source Software: pros and consygpriya
 
Dotnet Basics Presentation
Dotnet Basics PresentationDotnet Basics Presentation
Dotnet Basics PresentationSudhakar Sharma
 
Introduction to Gnu/Linux
Introduction to Gnu/LinuxIntroduction to Gnu/Linux
Introduction to Gnu/LinuxRanjith Siji
 
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSIIntroduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSIVarun Mahajan
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?DuraSpace
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)Akash Kumar Dhameja
 
An Introduction to Free and Open Source Software Licensing and Business Models
An Introduction to Free and Open Source Software Licensing and Business ModelsAn Introduction to Free and Open Source Software Licensing and Business Models
An Introduction to Free and Open Source Software Licensing and Business ModelsGreat Wide Open
 
Linux security introduction
Linux security introduction Linux security introduction
Linux security introduction Mohamed Gad
 
Open source technology
Open source technologyOpen source technology
Open source technologyaparnaz1
 

Tendances (20)

Open Source & PHP
Open Source & PHPOpen Source & PHP
Open Source & PHP
 
Open source software
Open source software Open source software
Open source software
 
Open Source Software
Open Source SoftwareOpen Source Software
Open Source Software
 
Open source Software: pros and cons
Open source Software: pros and consOpen source Software: pros and cons
Open source Software: pros and cons
 
Dotnet Basics Presentation
Dotnet Basics PresentationDotnet Basics Presentation
Dotnet Basics Presentation
 
Linux basics
Linux basicsLinux basics
Linux basics
 
Introduction to Gnu/Linux
Introduction to Gnu/LinuxIntroduction to Gnu/Linux
Introduction to Gnu/Linux
 
Linux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell ScriptingLinux systems - Linux Commands and Shell Scripting
Linux systems - Linux Commands and Shell Scripting
 
bsd
bsdbsd
bsd
 
Intro to linux
Intro to linuxIntro to linux
Intro to linux
 
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSIIntroduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
Introduction to GNU/Linux, Free Software, Open Source Software, FSF, FSM, OSI
 
Open source software and os
Open source software and osOpen source software and os
Open source software and os
 
Open Source: What is It?
Open Source: What is It?Open Source: What is It?
Open Source: What is It?
 
SRS(software requirement specification)
SRS(software requirement specification)SRS(software requirement specification)
SRS(software requirement specification)
 
An Introduction to Free and Open Source Software Licensing and Business Models
An Introduction to Free and Open Source Software Licensing and Business ModelsAn Introduction to Free and Open Source Software Licensing and Business Models
An Introduction to Free and Open Source Software Licensing and Business Models
 
Requirements prioritization
Requirements prioritizationRequirements prioritization
Requirements prioritization
 
Database in Android
Database in AndroidDatabase in Android
Database in Android
 
Best PHP Frameworks
Best PHP FrameworksBest PHP Frameworks
Best PHP Frameworks
 
Linux security introduction
Linux security introduction Linux security introduction
Linux security introduction
 
Open source technology
Open source technologyOpen source technology
Open source technology
 

Similaire à An Introduction to Open Source Software and Web Application Development

Internet and Open Source Concepts in brief pdf
Internet and Open Source Concepts in brief pdfInternet and Open Source Concepts in brief pdf
Internet and Open Source Concepts in brief pdfneokushal17
 
Report presentation
Report presentationReport presentation
Report presentationZul Mazlan
 
Free and Open Source Software
Free and Open Source SoftwareFree and Open Source Software
Free and Open Source SoftwareRam Nath
 
Web development revolution
Web development revolutionWeb development revolution
Web development revolutionAhmed El-Zekred
 
Overview on Open Source Technology.pptx
Overview on Open Source Technology.pptxOverview on Open Source Technology.pptx
Overview on Open Source Technology.pptxDrRShaliniVISTAS
 
Open source softwares
Open source softwaresOpen source softwares
Open source softwaresSahil Jindal
 
Open source softwares
Open source softwaresOpen source softwares
Open source softwaresSahil Jindal
 
open source technology
open source technologyopen source technology
open source technologyparmsidhu
 
Open Source and Accesssiblity - t12t meetup 181122
Open Source and Accesssiblity - t12t meetup 181122Open Source and Accesssiblity - t12t meetup 181122
Open Source and Accesssiblity - t12t meetup 181122Erik Zetterström
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1nhepner
 
Open source . . . Open Road
Open source . . . Open RoadOpen source . . . Open Road
Open source . . . Open RoadMazen Elsayed
 
Open source operating systems
Open source operating systemsOpen source operating systems
Open source operating systemsTushar B Kute
 
Open source caqdas what is in the box and what is missing
Open source caqdas what is in the box and what is missingOpen source caqdas what is in the box and what is missing
Open source caqdas what is in the box and what is missingMerlien Institute
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANJeff Fox
 

Similaire à An Introduction to Open Source Software and Web Application Development (20)

Internet and Open Source Concepts in brief pdf
Internet and Open Source Concepts in brief pdfInternet and Open Source Concepts in brief pdf
Internet and Open Source Concepts in brief pdf
 
Report presentation
Report presentationReport presentation
Report presentation
 
Free and Open Source Software
Free and Open Source SoftwareFree and Open Source Software
Free and Open Source Software
 
Web development revolution
Web development revolutionWeb development revolution
Web development revolution
 
Open source
Open sourceOpen source
Open source
 
LINUX BASICS
LINUX BASICSLINUX BASICS
LINUX BASICS
 
Overview on Open Source Technology.pptx
Overview on Open Source Technology.pptxOverview on Open Source Technology.pptx
Overview on Open Source Technology.pptx
 
Open source softwares
Open source softwaresOpen source softwares
Open source softwares
 
Open source softwares
Open source softwaresOpen source softwares
Open source softwares
 
open source technology
open source technologyopen source technology
open source technology
 
Prasoon
PrasoonPrasoon
Prasoon
 
Open Source and Accesssiblity - t12t meetup 181122
Open Source and Accesssiblity - t12t meetup 181122Open Source and Accesssiblity - t12t meetup 181122
Open Source and Accesssiblity - t12t meetup 181122
 
Web technologies lesson 1
Web technologies   lesson 1Web technologies   lesson 1
Web technologies lesson 1
 
Open source . . . Open Road
Open source . . . Open RoadOpen source . . . Open Road
Open source . . . Open Road
 
Open source operating systems
Open source operating systemsOpen source operating systems
Open source operating systems
 
OS ppt.pdf
OS ppt.pdfOS ppt.pdf
OS ppt.pdf
 
Open source caqdas what is in the box and what is missing
Open source caqdas what is in the box and what is missingOpen source caqdas what is in the box and what is missing
Open source caqdas what is in the box and what is missing
 
After the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEANAfter the LAMP, it's time to get MEAN
After the LAMP, it's time to get MEAN
 
Open Source in the Enterprise
Open Source in the EnterpriseOpen Source in the Enterprise
Open Source in the Enterprise
 
Php tutorial
Php tutorialPhp tutorial
Php tutorial
 

Dernier

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 

Dernier (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 

An Introduction to Open Source Software and Web Application Development

  • 1. An Introduction to Open Source Software and Web Application Development Trevor Thornton North Carolina State University Libraries
  • 2. Open source software is… … made available with a license that permits users to freely run, study, modify and re-distribute … distributed with its source code in a human readable format (enabling study, modification) … typically developed in an public, collaborative manner
  • 3. Pre-history of open source 1950s-1960s : Software customarily distributed with source, few restrictions 1970s : Software companies begin to implement measures to prevent users from accessing source code 1980 : U.S. copyright protection extended to computer programs
  • 4. GNU Project Founded in 1983 by Richard Stallman (formerly of MIT) to develop software free from restrictions • GNU Operating System • GNU General Public License (GPL)
  • 5. Free Software Foundation Founded by Stallman in 1985, published the first formal definition of “free software”, based on 4 freedoms: … to run the program for any purpose … to study how the program works, and modify it as needed (access to the source code is a precondition) … to redistribute copies … to distribute copies of your modified versions
  • 6. Linux First version developed by Linus Torvalds in 1991, released under the GPL in 1992 – thousands of developers contribute to its further development In 1997, Eric Raymond published “The Cathedral and the Bazaar” extolling the benefits of distributed development "Given enough eyeballs, all bugs are shallow"
  • 7. Open source development principles • Users as co-developers • Release early, release often • Multiple versions (stable + development) • Modularity • Dynamic decision-making structure
  • 8. Open source licenses Copyright protections/restrictions apply automatically Licenses allow a copyright holder to grant permissions to users Open Source Initiative provides criteria for assessing open source licenses “The Open Source Definition” opensource.org/osd
  • 9. Common open source licenses • GNU GPL • MIT • Apache License • BSD (Berkeley Software Distribution) • Mozilla Public License • & many, many more – see: opensource.org/licenses
  • 10. Web Applications • Application software that runs in a web browser and is delivered over a network (not installed on client computer) • Advantages: – Easy to roll out to multiple users – Minimal system requirements for client – Cross-platform/cross-device compatibility – Increasingly rich user experience as web technologies improve
  • 11. 3-tiered structure Presentation Web browser (client) – HTML, CSS, JavaScript Application logic PHP/Python/Ruby/Perl/etc… Storage Database, file systems, indexes
  • 12. Typical architecture “client side” “server side” web browser (HTTP client) HTTP server application logic database HTTP request HTTP response file storage search index
  • 13. The LAMP stack An archetypal model for server side architecture with open-source components Linux Apache MySQL PHP
  • 14. Linux • Open-source operating system based on the Linux kernel • Many distributions available that bundle other software • Most prevalent OS for web servers • Windows Server often used instead (WAMP)
  • 15. Apache HTTP server • Accepts incoming requests and returns a response, typically either by: – Returning a static document – Passing the request to a script that generates a response ‘on-the-fly’ • Developed and maintained collectively by the Apache Software Foundation
  • 16. MySQL • Relational Database Management System (RDBMS) • Relational databases store data in tables • Other open-source alternatives: – PostgreSQL : Object-relational database – NoSQL databases : CouchDB, MongoDB, Redis, triple-stores
  • 17. PHP • General purpose programming language typically used for server-side scripting • Runtime system : software that interprets and executes code written in a particular language • Other popular languages for web apps: Python, Ruby, Perl
  • 18. Apache Solr • Open-source enterprise search engine maintained by Apache Software Foundation • Provides full-text search, faceting, hit highlighting, grouping, etc. • Most widely-used enterprise search system on the web
  • 19. HTML • Structural foundation for web content • Document Object Model (DOM) : representation of page structure within the browser • HTML5 provides new APIs to support native media playback, local data storage, 2-D drawing, improved interactivity,…
  • 20. CSS (Cascading Style Sheets) • Used to define visual presentation of web content • Identifies elements in the DOM and assigns them display attributes • CSS3 supports animation and transformation of objects
  • 21. JavaScript • Fundamental component of most web applications, enabling advanced client-side functionality via: – Response to user input – Manipulation of the DOM – Asynchronous communication with server • Node.js : server-side runtime system for JavaScript
  • 22. Web application frameworks • Provide basic functionality shared by most web applications • Allow developers to concentrate on solutions to new problems • Promote code re-use
  • 23. Common web application framework features • Routing/URL mapping • Page templates • Database interaction • Security • Conventions for organizing code
  • 24. Popular frameworks • Ruby on Rails (Ruby) • Django (Python) • PHP frameworks : Laravel, Zend, Symfony, Code Igniter, … • JavaScript frameworks : Angular, Ember, Backbone, …
  • 25. Levels of involvement in open source projects • Implementing an existing application without modification • Modifying an existing application to suit local needs • Contributing to an existing project • Developing something completely new and releasing it with an open license
  • 26. Open source communities • Users/implementers : share knowledge through lists, groups, etc. • Developers : contribute code, identify issues and suggest fixes • Supporters : provide financial support to ensure long-term sustainability of open source projects
  • 27. email: trthorn2@ncsu.edu Twitter: @trevorthornton Github: trevorthornton slides (eventually): slideshare.net/trevorthornton/presentations NCSU Digital Library Initiatives: lib.ncsu.edu/dli/projects github.com/NCSU-Libraries