30-Sep-14Advanced Programming Spring 2002 Software Models Henning Schulzrinne.

Slides:



Advertisements
Similar presentations
Overview of Free/Open Source Software for Librarians Eric Goldhagen
Advertisements

© 2008 Oracle Corporation – Proprietary and Confidential.
Operating-System Structures
The Web Wizards Guide to Freeware/Shareware Chapter Six Open Source Software.
Free Beer and Free Speech Thomas Krichel
Open Source Software Development & Commercialisation Developing Lifelong Learner Record Systems and ePortfolios in FE and HE: Planning for, and Coping.
1 Software Engineering II The Business Aspects of Software Engineering.
Configuration management
Information Systems Today: Managing in the Digital World
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Introduction to Computer Administration Introduction.
A Lawyer Looks at the Open Source Revolution Robert W. Gomulkiewicz Director, Intellectual Property Law & Policy Program Associate Professor of Law University.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS DOCUMENT.
Reduce Cost & Complexity Partner logo here Presenters Name (16pt) Presenters Title (14pt) Company/ (14pt) Manage and Deploy Applications using Virtualization.
Platinum Sponsors Gold Sponsors Navigating the Open Source Legal Waters Presenter: Jeff Strauss August 14, 2013.
What is GNU/Linux (Not Linux!)? David Sudjiman davidsudjiman (at) yahoo (dot) com The latest version of this document can.
The Cathedral and the Bazaar: A Look at Open-Source ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
GNU / Linux A free operating system. Summary History What can you find on a Linux OS Linux Economy.
Open Source and the Bazaar Method. History of Software Development 1944, Harvard and IBM build first computer bundling Hardware and Software together.
Linux vs. Windows. Linux  Linux was originally built by Linus Torvalds at the University of Helsinki in  Linux is a Unix-like, Kernal-based, fully.
© 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Open Source Software A Commercial.
Open Source. Operating System  Application Program Interface (API) Scheduling: Defines which application to run, when to run it, and how much time. Memory.
Open Source Applications Mikko Mustalampi DAP02S.
Open Source Software …its not all for the techies. - Dan Coming.
Open Source/Free Software Source code is available Extensible Can be changed, modified Freely distributed Copies Modified versions Alternatives to commercial/proprietary.
Open Source Business Models By Mike Telmar, Jacob Jennings, and Jerome Thomas.
Jul The New Geant4 License J. Perl The New Geant4 License Makes clear the user’s wide- ranging freedom to use, extend or redistribute Geant4, even.
Introduction to Linux Chapter 1. Operating Systems Operating System (OS) - most basic and important software on a computer Performs core tasks Organize.
CS 501: Software Engineering Fall 2000 Lecture 7 Management II Business and Legal Aspects of Software Engineering.
Open-Source Software ISYS 475.
+ Andrés Guadamuz SCRIPT Centre for Research in IP and Technology Law, Edinburgh, UK Proprietary, Free and Open Source Software (FOSS), and Mixed Platforms.
COMP 6005 An Introduction To Computing Session Two: Computer Software Acquiring Software.
AN INTRODUCTION TO LINUX OPERATING SYSTEM Zihui Han.
Software of Information Systems Hun Myoung Park, Ph.D., Public Management and Policy Analysis Program Graduate School of International Relations International.
OPEN-SOURCE SOFTWARE BY: SAMANTHA HERALD  Otherwise known as OSS, is computer software that is available with source code: normally reserved for copyright.
CHAPTER 6 OPEN SOURCE SOFTWARE AND FREE SOFTWARE
Open Source Software Development (Adapted from Dr. Kostadin Damevski) Sung Hee Park Department of Mathematics and Computer Science Virginia State University.
Linux Basics CS 302. Outline  What is Unix?  What is Linux?  Virtual Machine.
 Open-source software ( OSS ) is computer software that is available in source code form: the source code and certain other rights normally reserved.
Computers and Society Examine the extent to which Richard Stallman’s GNU manifesto has succeeded in challenging the dominance of conventionally distributed.
Open Source Software An Introduction. The Creation of Software l As you know, programmers create the software that we use l What you may not understand.
How I learned to stop worrying and love Open Source Software... Colin M. Sharples Advisory IT Specialist IBM Business Consulting Services SQNZ 21 October.
Open source Software Tomáš Vaníček Faculty of Civil Engeneering (Fakulta Stavební) Czech Technical University (ČVUT) Thákurova 7, Praha Dejvice, B407
 2002 Prentice Hall Chapter 4 Software Basics: The Ghost in the Machine.
Blue Diamond Scott Auge Amduus Information Works, Inc.
Open Source Software Bangladesh University of Business and Technology Nizar Saadi Dahir M.Sc. Computer Engineering Computer Center- Kufa University
OPEN SOURCE AND FREE SOFTWARE. What is open source software? What is free software? What is the difference between the two? How the two differs from shareware?
UEC 01 : Computer Skills & Programming Concepts I 1PUA – Computer Engineering Department – UEC01 – Dr. Mona Abou - Of Lecture 6: Applications Software.
1 Copyright ©2003 LxIS. All Rights Reserved. Open Source Overview Roger A. Maduro Linux Infrastructure, LLC April 25, 2003.
CPS 82, Fall Open Source, Copyright, Copyleft.
Andrew McNab - License issues - 10 Apr 2002 License issues for EU DataGrid (on behalf of Anders Wannanen) Andrew McNab, University of Manchester
NBA 600: Session 17 Free and Open Source Software 25 March 2003 Daniel Huttenlocher.
CS 501: Software Engineering Fall 1999 Lecture 19 Management II Business and legal aspects of software engineering.
Chapter 14 The Open Source Community. Agenda Types of Free Software Open Source Project Open Hardware Project Impacts.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 7 Business Aspects of Software Engineering.
OPEN-SOURCE SOFTWARE BY: SAMANTHA HERALD  Otherwise known as OSS, is computer software that is available with source code: normally reserved for copyright.
National Alliance for Medical Image Computing Licensing in NAMIC 3 requirements from NCBC RFA (paraphrased)
Open Source Software Alternatives: Wave of the Future? CS 99 2/8/2005 CS 99 2/8/2005.
Nursing Informatics. What is open source software? What is free software? What is the difference between the two? How the two differs from shareware?
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 1.
Software Installation and Copyrights Basic Computer Concepts Installation Basics  Installation Process  Copy files from distribution disks.
1 Lesson 6 Software and Hardware Interaction Computer Literacy BASICS: A Comprehensive Guide to IC 3, 3 rd Edition Morrison / Wells.
INTRO. To I.T Razan N. AlShihabi
Software Copyright and License
OPEN SOURCE.
open source and free software Najeeb Ullah Student ID
Open Source software Licensing
OPEN SOURCE.
Chapter 2: The Linux System Part 1
Software Copyright and License
Presentation transcript:

30-Sep-14Advanced Programming Spring 2002 Software Models Henning Schulzrinne

30-Sep-14Advanced Programming Spring Introduction  Non-technical interlude...  Many more type of software than before:  commercial projects  contract  shareware  open source  Influences:  commercial needs  IP protection & licensing  documentation  support

30-Sep-14Advanced Programming Spring Commercial  Classical model, but many variations  Internal vs. for sale  e.g., Columbia SSOL vs. PeopleSoft  One time vs. retail  only run one (or few copies)  custom programming  missile control  retail aka “shrink wrap”, but also download or “ship and enable”  games: cartridges  embedded – OS, peripheral, cell phones, industrial control,...

30-Sep-14Advanced Programming Spring Commercial software  Many different licenses:  single computer (Microsoft XP)  multiple computers by same owner (e.g., laptop and home) – common for consumer software  IP address (servers)  floating license – “no more than 3 simultaneous users” (CAD and SE tools)  single network (e.g., within Columbia) – site license

30-Sep-14Advanced Programming Spring Contract  Consulting – individually or through consulting houses, e.g., ArthurAndersen, EDS or Wipro (India)  “Work for hire” – output belongs to customer (GRA vs. undergraduate!)  Usually, specific to customer  Often, outside of core competency of client (e.g., gov’t, hospital,...)  Billed by project or by hour

30-Sep-14Advanced Programming Spring Shareware  not = open source  can freely download binaries  usually low-cost, limited functionality items (e.g., create buttons for web pages)  “crippleware”: limited functionality (can’t save work) or time limit on usage  mostly Mac and Windows

30-Sep-14Advanced Programming Spring Open source  Free redistribution  Source code  distribute either unobfuscated source code or binaries  Derived works  same license as original code  Integrity of author’s source code  allow distribution of modified code

30-Sep-14Advanced Programming Spring Open Source  No discrimination against persons or groups  No discrimination against fields of endeavor  commercial use, non-military use  Not specific to product  not just if part of some distribution  Must not restrict other software  can’t require other software to be open-source

30-Sep-14Advanced Programming Spring Open Source  Examples of open-source licenses:  GNU General Public License  modifications are also GPL  GNU Library (Lesser) Public License  allow linking into non-GPL code  BSD license  least restrictive – allow commercial use  Artistic license  force new naming for modifications

30-Sep-14Advanced Programming Spring Almost open-source  Lots of programs that are free and/or provide source code, but:  don’t allow modification (TeX)  non-commercial or educational use only  limited to particular hardware  may be patent-encumbered (e.g., audio codecs)  only for customer (e.g., in case supplier goes bankrupt)

30-Sep-14Advanced Programming Spring Example: BSD license Copyright (c), All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:  Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.  Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.  Neither the name of the nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,...

30-Sep-14Advanced Programming Spring Open source arguments  “The Cathedral and the Bazaar” (Eric Raymond)  Social arguments  knowledge dissemination  avoid wasted effort (“doing it anyway”)  cf. pro bono by lawyers  skill strengthening and visibility (academics)  Technical arguments  quality  security  standards-compliance  testing on many systems

30-Sep-14Advanced Programming Spring Cathedral and the Bazaar 1.Every good work of software starts by scratching a developer's personal itch. 2.Good programmers know what to write. Great ones know what to rewrite (and reuse). 3.``Plan to throw one away; you will, anyhow.'' (Fred Brooks, ``The Mythical Man-Month'', Chapter 11) 4.If you have the right attitude, interesting problems will find you.

30-Sep-14Advanced Programming Spring Cathedral and the Bazaar 5.When you lose interest in a program, your last duty to it is to hand it off to a competent successor. 6.Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging. 7.Release early. Release often. And listen to your customers. 8.Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone. 9.Smart data structures and dumb code works a lot better than the other way around. 10.If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource.

30-Sep-14Advanced Programming Spring Cathedral and the Bazaar 11.The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better. 12.Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong. 13.``Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.'' 14.Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected. 15.When writing gateway software of any kind, take pains to disturb the data stream as little as possible. 16.When your language is nowhere near Turing-complete, syntactic sugar can be your friend. 17.A security system is only as secure as its secret. Beware of pseudo-secrets.

30-Sep-14Advanced Programming Spring Open source successes  TeX (not quite open-source)  gcc compiler and tools  Linux and *BSD (FreeBSD, OpenBSD, NetBSD) operating systems  Apache web server  sendmail mail transport agent (MTA)  gimp bitmap graphics tool  Tcl, Perl, Python language implementations

30-Sep-14Advanced Programming Spring Open source - problems  Ideal: small group of authors write code, thousands contribute bug fixes (not just bug reports!) and enhancements  Need large community of technical users  less likely to work well for recipe management or kid’s games  more forgiving of lack of documentation or clean install  can integrate different tools  if not, author becomes tech support

30-Sep-14Advanced Programming Spring Open source - problems  Thus, works less well for specialized programs with small user base (hundreds) – get mostly complaints  Mostly individuals moon-lighting or paid by unrelated company (e.g., Linus Torvalds)  Business model uncertain:  packaging (Red Hat)  tech support contract (MySQL)  free with hardware (IBM)  grants and donations

30-Sep-14Advanced Programming Spring Which model is “right”?  Commercial needs:  size of customer base  who pays?  Intellectual property issues  are there patents?  does employer rely on IPR (trade or sell)?  Documentation  how much documentation is needed to make the program useful?  How much support is needed?  open-source support: mean vs. variance

30-Sep-14Advanced Programming Spring “Levels” of programming  Programmable applications  add macro to Excel  Code generators  generate UI code from “wizard”  Application embedding  new UI for IE or Mozilla  Web scripting  no UI in normal sense  “Classical” application  Java, C  use mostly OS and UI APIs

30-Sep-14Advanced Programming Spring “Levels” of programming  Device drivers and OS kernel  embedded systems  specialty OS (e.g., VxWorks) or no OS\  often, lower-end processors  no virtual memory  no cache  limited memory space  special operations (e.g., DSP MAC)  Specialty programming:  language compilers