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 (20)

OPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATIONOPEN SOURCE SEMINAR PRESENTATION
OPEN SOURCE SEMINAR PRESENTATION
 
Open Source Concepts
Open Source ConceptsOpen Source Concepts
Open Source Concepts
 
Linux os and its features
Linux os and its featuresLinux os and its features
Linux os and its features
 
Open Source Software
Open Source SoftwareOpen Source Software
Open Source Software
 
Video Streaming - 4.ppt
Video Streaming - 4.pptVideo Streaming - 4.ppt
Video Streaming - 4.ppt
 
Open source software and os
Open source software and osOpen source software and os
Open source software and os
 
Top Open Source Licenses Explained
Top Open Source Licenses ExplainedTop Open Source Licenses Explained
Top Open Source Licenses Explained
 
Open Source Software
Open Source Software Open Source Software
Open Source Software
 
bsd
bsdbsd
bsd
 
Linux
Linux Linux
Linux
 
Open Source Software
Open Source SoftwareOpen Source Software
Open Source Software
 
An Introduction To Linux
An Introduction To LinuxAn Introduction To Linux
An Introduction To Linux
 
Free and Open Source Software
Free and Open Source SoftwareFree and Open Source Software
Free and Open Source Software
 
Open source software
Open source softwareOpen source software
Open source software
 
Centos operating system
Centos operating systemCentos operating system
Centos operating system
 
Open source software
Open source software Open source software
Open source software
 
Introduction to Ubuntu
Introduction to UbuntuIntroduction to Ubuntu
Introduction to Ubuntu
 
Case study linux
Case study linuxCase study linux
Case study linux
 
Linux.ppt
Linux.ppt Linux.ppt
Linux.ppt
 
Active directory
Active directory Active directory
Active directory
 

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

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
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
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 

Dernier (20)

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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 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
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
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
 
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
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
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 ...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 

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