Making & Saving Money with Open Source Kevin Hock, CS/SAN 2002 Jeremy Harning, CSA 2004.

Slides:



Advertisements
Similar presentations
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Advertisements

UFCE8V-20-3 Information Systems Development 3 (SHAPE HK)
1 Database Driven Web Application Clients Application Servers including web servers Database Server Traditional client-server (2-tier architecture): client:
ONYX RIP Version Technical Training General. Overview General Messaging and What’s New in X10 High Level Print and Cut & Profiling Overviews In Depth.
.NET Database Technologies: Open-Source Frameworks.
Adding scalability to legacy PHP web applications Overview Mario A. Valdez-Ramirez.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
1 June 1, 2015 Secure access to project budget information for OAR Principal Investigators Eugene F Burger Sylvia Scott Tracey Nakamura John L Forbes PMEL.
Enterprise Smart Clients Architecture, Patterns, Design, Best Practices Keith Elder Manager, Sr. Software Engineer Quicken Loans Blog:
The OWASP Foundation AppSec DC Learning by Breaking A New Project for Insecure Web Apps Chuck Willis Technical Director MANDIANT
CSLA Presenter Sergey Barskiy, senior consultant at Magenic Technologies your questions Send an in order.
A Framework for Understanding The Open Revolution How the Open Source movement is changing the world.
Object Relational Mapping. What does ORM do? Maps Object Model to Relational Model. Resolve impedance mismatch. Resolve mapping of scalar and non-scalar.
1 Introduction The Database Environment. 2 Web Links Google General Database Search Database News Access Forums Google Database Books O’Reilly Books Oracle.
Pragmatic Application Building: Step by Step Jay Sissom Principal Systems Analyst Indiana University
U of R eXtensible Catalog Team MetaCat. Problem Domain.
Lecture 4: Introduction to PHP 3 PHP & MySQL
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
Structure of a web application1 Dr Jim Briggs. MVC Structure of a web application2.
Chapter 1: The Database Environment
Session-01. Hibernate Framework ? Why we use Hibernate ?
Static VS Dynamic websites. 1-What are the advantages and disadvantages? 2- Which one should you choose and why?
Address - #22, 1 st Floor, Station View Road, Kodambakkam, Chennai JTech Soft Solutions Website:
Introducing LAMP: Linux, Apache, MySQL and PHP Track 2 Workshop PacNOG 7 July 1, 2010 Pago Pago, American Samoa.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
Web Application Architecture: multi-tier (2-tier, 3-tier) & mvc
Introduction to Databases Transparencies 1. ©Pearson Education 2009 Objectives Common uses of database systems. Meaning of the term database. Meaning.
Phil Brewster  One of the first steps – identify the proper data types  Decide how data (in columns) should be stored and used.
Task Manager Software Engineering: CS 673 Spring 2009 John Spencer, Parag Shah, Rich Moffitt, Hassan Sobhie May 4, 2009.
Class 6 Data and Business MIS 2000 Updated: September 2012.
Open Source: It's Already Here Dave Cross Magnum Solutions Ltd
Entity Framework Code First End to End
1 Web Server Administration Chapter 1 The Basics of Server and Web Server Administration.
Presentation for SAQA, November 15, 2007 © 2007 Made to Order Software Corporation--All rights reserved Presentation Overview Company Background What You.
NCTC IT Professionals' Forum October Webmail.us' Open Source Software Strategy Bill Boebel Chief Technology Officer.
L. Grewe LAMP, WAMP and... Motivaiton Basic Web Systems with Delivery of Static and Dynamic Web Pages html, css, media javascript (“dynamic” on client.
NHibernate in Action Web Seminar at UMLChina By Pierre Henri Kuaté 2008/08/27
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
CHAPTER 8: MANAGING DATA RESOURCES. File Organization Terms Field: group of characters that represent something Record: group of related fields File:
Online Translation Service Capstone Design Eunyoung Ku Jason Roberts Jennifer Pitts Gregory Woodburn Kim Tran.
CakePHP is an open source web development framework. It follows Model-View- Controller and is developed using PHP. IT is the basic for user to create.
MySQL™: The Open Source Database for Mission-Critical, Heavy Load Applications Kaj Arnö, VP Training, MySQL AB Stuttgart, Germany Belgrad, Serbia.
PHP Features. Features Clean syntax. Object-oriented fundamentals. An extensible architecture that encourages innovation. Support for both current and.
Database What is a database? A database is a collection of information that is typically organized so that it can easily be storing, managing and retrieving.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
Efficient RDF Storage and Retrieval in Jena2 Written by: Kevin Wilkinson, Craig Sayers, Harumi Kuno, Dave Reynolds Presented by: Umer Fareed 파리드.
6/1/2001 Supplementing Aleph Reports Using The Crystal Reports Web Component Server Presented by Bob Gerrity Head.
SWGData and Software Access - 1 UCB, Nov 15/16, 2006 THEMIS SCIENCE WORKING TEAM MEETING Data and Software Access Ken Bromund GST Inc., at NASA/GSFC.
By Douglas Copas and Mark Perry.  Currently available small business based commercial inventory management systems are either prohibitively expensive.
CP476 Internet Computing Perl CGI and MySql 1 Relational Databases –A database is a collection of data organized to allow relatively easy access for retrievals,
Web Server Security: Protecting Your Pages NOAA OAR WebShop 2001 August 2 nd, 2001 Jeremy Warren.
ORM Basics Repository Pattern, Models, Entity Manager Ivan Yonkov Technical Trainer Software University
XAMPP.
CS520 Web Programming Object-Relational Mapping with Hibernate and JPA (I) Chengyu Sun California State University, Los Angeles.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
START Application Spencer Johnson Jonathan Barella Cohner Marker.
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Presented by Alexey Vedishchev Developing Web-applications with Grails framework American University of Nigeria, 2016 Intro To MVC Architecture.
Chengyu Sun California State University, Los Angeles
Structure of a web application
N-Tier Architecture.
A very brief introduction
Multitier Architecture, MySQL & PHP
PHP / MySQL Introduction
Enterprise Application Architecture
LAMP, WAMP and.. L. Grewe.
Database Software.
The Database Environment
UFCEUS-20-2 Web Programming
Presentation transcript:

Making & Saving Money with Open Source Kevin Hock, CS/SAN 2002 Jeremy Harning, CSA 2004

What is Open Source? Code is free Code is free Public collaboration Public collaboration Licenses – not always free to use Licenses – not always free to use

Examples of Open Source Linux Linux Apache Apache MySQL MySQL PostegreSQL PostegreSQL PHP PHP Firefox Firefox OpenOffice OpenOffice DOSBox DOSBox Azureus Azureus wxWidgets wxWidgets

Making & Saving Money Use open source Use open source Sell services based on open source Sell services based on open source Provide self-support Provide self-support Provide support to others Provide support to others Provide training Provide training Write books or articles Write books or articles

My experience with O.S. Web hosting: OxONet Web hosting: OxONet Application development: BitWise IM Application development: BitWise IM Written a book & article: wxWidgets Written a book & article: wxWidgets

OxONet - Overview Web hosting & design since 1999 Web hosting & design since 1999 LAMP and more LAMP and more No cost for software (except…) No cost for software (except…) Low startup cost Low startup cost

OxONet – Making money Configure “off the shelf” free software Configure “off the shelf” free software Provide bandwidth & space (not free!) Provide bandwidth & space (not free!) Sell to many Sell to many Our costs: Our costs: –Knowledge –Time –Hardware –Bandwidth

OxONet – O.S. Used Linux Linux Apache Apache MySQL MySQL PostgreSQL PostgreSQL php php Perl Perl Ruby Ruby Redhat Linux ES 4.0 Redhat Linux ES 4.0 Sendmail Sendmail Webalizer Webalizer Clamav Clamav SpamAssassin SpamAssassin Mailman Mailman SquirrelMail SquirrelMail

OxONet – Caveats Providing support Providing support Availability & reliability Availability & reliability Maintaining hardware & software Maintaining hardware & software Support for us Support for us Horror story Horror story

BitWise IM - Overview Instant messaging service Instant messaging service Professional version for business Professional version for business Developed using mostly open source Developed using mostly open source

BitWise – Making Money Provide secure IM to business Provide secure IM to business Provide premium IM to individuals Provide premium IM to individuals Software and service create value Software and service create value

BitWise – O.S. Used wxWidgets wxWidgets Crypto++ Crypto++ Speex Speex PortAudio PortAudio zlib zlib tiff, jpg, png tiff, jpg, png GTK GTK gcc / gdb gcc / gdb KDevelop KDevelop cvs cvs ssh ssh phpBB phpBB phpMyAdmin phpMyAdmin MediaWiki MediaWiki

BitWise - Problems Sub-optimal development conditions Sub-optimal development conditions Lack of documentation & support Lack of documentation & support Open source can be abandoned Open source can be abandoned Waste time in source code Waste time in source code

BitWise - Caveats Support, availability Support, availability Time cost Time cost Advertising Advertising Scrutiny Scrutiny

wxWidgets - Overview Cross-platform GUI library Cross-platform GUI library Open source, generous license Open source, generous license Used to develop BitWise Used to develop BitWise

wxWidgets Involvement User User Bug reports Bug reports Patches Patches Bug & patch manager Bug & patch manager CVS access CVS access Book Book Guru Guru

wxWidgets – Making $ Write programs Write programs Write books & articles Write books & articles Future – paid support? Future – paid support? Future – advocate? Future – advocate?

wxWidgets – Caveats No official support No official support Meandering goals & directions Meandering goals & directions Lack of financing Lack of financing Sometimes incomplete Sometimes incomplete

NHibernate - A Case Study - Overview Background Background Implementation Implementation Advantages/Disadvantages Advantages/Disadvantages Questions Questions

Background – Tiered architecture UI Layer Business Layer Data Layer Entities Web Service Interface

Background – Common App Problem: Dynamic SQL Older design patterns (solutions) Older design patterns (solutions) –1. Dynamically build SQL strings Problems Problems –SQL Injection –UI Managing business rules –Not parameterized SQL so does not get cached in DB –2. Stored Procedures Problems Problems –Need different SP for virtually every use case –Most developers can model data but aren’t DBA’s –Biz rules still being managed mostly in a different tier –NOT AGILE!!!

Implementation – Common App Problem: Dynamic SQL The ORM solution (NHibernate) The ORM solution (NHibernate) –Map business entities directly to database tables using XML (Code Generation) –Write a transaction manager class to manage NHibernate transactions that accepts an “Entity Base” class –FOCUS ON UI DEVELOPMENT Current project over 1000 use-cases Current project over 1000 use-cases –FOCUS ON BUSSINESS RULES Current project over 8,100 biz rules Current project over 8,100 biz rules –FOCUS ON SPEED TO VALUE Iterative development – easy to leave selected functionality out in order to get something valuable for the client quickly Iterative development – easy to leave selected functionality out in order to get something valuable for the client quickly

Implementation – Getting data out of the DB Inherit all entities from a base class Inherit all entities from a base class Code in terms of objects not tables Code in terms of objects not tables Criteria classes provided for you Criteria classes provided for you –Operators for >,, <, !=, ==, etc. –Specialized database operators –Mapped relationships implicitly filter based on criteria Transaction manager returns entities and lists of entities as opposed to data tables and data rows which are cumbersome Transaction manager returns entities and lists of entities as opposed to data tables and data rows which are cumbersome HQL – rarely necessary HQL – rarely necessary

Implementation – Putting data in the DB Simply call Save(EntityBase) on the transaction manager object Simply call Save(EntityBase) on the transaction manager object –Is designed to be smart enough to know whether add or update NHibernate uses XML files previously generated to determine key properties on object NHibernate uses XML files previously generated to determine key properties on object One-To-Many, Many-To-One relationships are supported One-To-Many, Many-To-One relationships are supported Many-To-Many (join tables) are implemented as a separate entity objects Many-To-Many (join tables) are implemented as a separate entity objects

Advantages and Disadvantages Advantages Advantages –FREE!! –Super Agile –Transactional biz rules are managed in the proper layer Disadvantages Disadvantages –Lack of support/documentation

Issues in Open Source Is making a profit on open source “wrong?” Is making a profit on open source “wrong?” Will open source kill commercial software development? Will open source kill commercial software development? Does open source produce better software? Does open source produce better software? Fast, Right, Cheap. Pick 2. Does this apply? Fast, Right, Cheap. Pick 2. Does this apply? Does lack of supervision / management hurt? Does lack of supervision / management hurt? Can open source provide support needed by big business? Can open source provide support needed by big business? Will open source kill innovation by eliminating R&D funding? Will open source kill innovation by eliminating R&D funding?