INFM 700: Session 13 System Building Issues Jimmy Lin The iSchool University of Maryland Monday, April 28, 2008 This work is licensed under a Creative.

Slides:



Advertisements
Similar presentations
The Web Wizards Guide to Freeware/Shareware Chapter Six Open Source Software.
Advertisements

Performance Testing - Kanwalpreet Singh.
The Lucernex Cloud: A software-as-a-service solution delivered via the Cloud What is the Cloud? Cloud Computing is the future of all software applications,
MIS 2000 Class 20 System Development Process Updated 2014.
“Systems” ILS, DAMS, and other Acronyms Week 12 LBSC 690 Information Technology.
Software Engineering Session 14 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Requirement Analysis Week 10 INFM 603. Agenda Systems analysis –Required for complex multi-person tasks User-centered design –Multiple stakeholders complicate.
INFM 603: Information Technology and Organizational Context Jimmy Lin The iSchool University of Maryland Thursday, November 21, 2013 Session 12: Developing.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
1 Vladimir Knežević Microsoft Software d.o.o.. 80% Održavanje 80% Održavanje 20% New Cost Reduction Keep Business Up & Running End User Productivity End.
Unit 1 Living in the Digital WorldChapter 4 – Smart Working This presentation will cover the following topics: Software choices Name:
By: Kathleen Walters CLOUD COMPUTING Definition Cloud computing allows multiple computers to connect to one main network. Instead of installing different.
Open Source Software …its not all for the techies. - Dan Coming.
LBSC 690: Session 12 Building and Deploying Systems Jimmy Lin College of Information Studies University of Maryland Monday, November 26, 2007.
The System Life Cycle Week 14 LBSC 690 Information Technology.
The System Life Cycle Week 12 LBSC 690 Information Technology.
LBSC 690: Week 13 Building and Deploying Systems Jimmy Lin College of Information Studies University of Maryland Monday, April 30, 2007.
Cloud Computing Concept&nature Cloud computing refers to the applications delivered as services over the Internet and the hardware, and systems software.
Library Automation and Digital Libraries Class #5 LBSC 690 Information Technology.
Live for today as if it is your last day but plan for tomorrow as if it will last forever!
LBSC 690 Session #12 Building and Deploying Technology Jimmy Lin The iSchool University of Maryland Wednesday, November 19, 2008 This work is licensed.
Cloud Computing and Information Policy: Computing in a Policy Cloud? Jimmy Lin The iSchool University of Maryland Thursday, April 2, 2009 This work is.
Computer Software.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Open Cloud Sunil Kumar Balaganchi Thammaiah Internet and Web Systems 2, Spring 2012 Department of Computer Science University of Massachusetts Lowell.
CHAPTER 6 OPEN SOURCE SOFTWARE AND FREE SOFTWARE
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 14 Systems Analysis and Design: The Big Picture.
CIS 2200 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College.
Open Source for Government Alexander C. Pitzner Sr. Network Engineer Harrisburg University of Science and Technology
Clouds on IT horizon Faculty of Maritime Studies University of Rijeka Sanja Mohorovičić INFuture 2009, Zagreb, 5 November 2009.
Introduction. Readings r Van Steen and Tanenbaum: 5.1 r Coulouris: 10.3.
Effectively Explaining the Cloud to Your Colleagues.
1 Introduction to Cloud Computing Jian Tang 01/19/2012.
PowerPoint Presentation to Accompany Chapter 5 System Software Visualizing TechnologyCopyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall.
Is Open Source Software a viable option for private and public organizations? Anthony W. Hamann Tuesday, March 21, 2006.
Futurestate IT Confidential APPLICATION COMPATIBILITY AND CURRENCY MANAGEMENT™ John Doe Partner Company.
Distributed Teams Week 13 INFM 603. Agenda Distributed teams Project presentation prep Final exam prep.
Chapter 5 – Part II IT Infrastructure and Emerging Technologies.
Moving into Design SYSTEMS ANALYSIS AND DESIGN, 6 TH EDITION DENNIS, WIXOM, AND ROTH © 2015 JOHN WILEY & SONS. ALL RIGHTS RESERVED. 1 Roberta M. Roth.
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.
Class 5 Computer Software. Outline System Software Application Software (“Applications”) Markup languages for Internet (HTML, XML) User Interface Client-Server.
Virtualization. Virtualization  In computing, virtualization is a broad term that refers to the abstraction of computer resources  It is "a technique.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
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?
Cloud Computing Characteristics A service provided by large internet-based specialised data centres that offers storage, processing and computer resources.
Software and Hardware Interaction
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Requirements Analysis Session 12 INFM 603. Different Perspectives on Design Thanks to Satish Mishra.
How Can a Small College Adopt a Large Open Source Course Management System? NERCOMP March 17, 2003 Pattie Orr, Wellesley College Olivia Williamson, Stanford.
Chapter 3 Software. Learning Objectives Upon successful completion of this chapter, you will be able to: Define the term software Describe the two primary.
The Right OS for Your Job Major: Computer Science Instructor: Dr Anvari Presenter: Ke Huang Student ID:
Requirements Analysis Session 12 INFM 603. The System Life Cycle Systems analysis –How do we know what kind of system to build? User-centered design –How.
Cloud Computing Project By:Jessica, Fadiah, and Bill.
Systems Analysis and Design in a Changing World, Fourth Edition
Company small business cloud solution Client UNIVERSITY OF BEDFORDSHIRE.
Proprietary vs. Free/Open Source Software
CS525: Big Data Analytics MapReduce Computing Paradigm & Apache Hadoop Open Source Fall 2013 Elke A. Rundensteiner 1.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
SWE 513: Software Engineering
Chapter 10 Information Systems Development. Learning Objectives Upon successful completion of this chapter, you will be able to: Explain the overall process.
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
National Diploma Unit 4 Introduction to Software Development Program specification & development.
1 TCS Confidential. 2 Objective : In this session we will be able to learn:  What is Cloud Computing?  Characteristics  Cloud Flavors  Cloud Deployment.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Unit 3 Virtualization.
Chapter 6: Securing the Cloud
CS 5150 Software Engineering
Enterprise Application Architecture
Requirements Analysis
Presentation transcript:

INFM 700: Session 13 System Building Issues Jimmy Lin The iSchool University of Maryland Monday, April 28, 2008 This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 United States See for detailshttp://creativecommons.org/licenses/by-nc-sa/3.0/us/

iSchool Today’s Topics Development Models Managing Systems Open source software Cloud Computing Development Models Managing Systems Open Source Software Cloud Computing

iSchool The System Life Cycle Understanding user needs Formative evaluation: figuring out what to build Going out to build it (and other options) Making sure it addresses user needs Summative evaluation: does it work as intended? Keeping it running Development Models Managing Systems Open Source Software Cloud Computing

iSchool Decisions, Decisions “Buy” or “Build” “Off-the-shelf” or “Custom” “In-house” or “Out-source” “Integrated Solution” or “Best of Breed” “Proprietary” or “Open Source” Development Models Managing Systems Open Source Software Cloud Computing

iSchool Different Architectures Desktop applications What we normally think of as software Batch processing (e.g., recall notices) Save it up and do it all at once Timesharing (e.g., OPAC) Everyone uses the same machine Client-Server (e.g., databases) Some functions done centrally, others locally Peer-to-Peer (e.g., Kazaa) All data and computation is distributed Web service (e.g., Gmail) Development Models Managing Systems Open Source Software Cloud Computing

iSchool Requirements Availability Mean Time Between Failures (MTBF) Mean Time To Repair (MTTR) Measured for each component and for entire system Capacity Number of users (typical and maximum) Response time (typical and maximum) Flexibility Upgrade path Interoperability with other applications Development Models Managing Systems Open Source Software Cloud Computing

iSchool The Waterfall Model Key idea: upfront investment in design An hour of design can save a week of debugging! Five stages: Requirements: figure out what needs to be built Design: figure out how the software will work Implementation: actually build the software Verification: makes sure that it works Maintenance: makes sure that it keeps working Development Models Managing Systems Open Source Software Cloud Computing

iSchool The Waterfall Model Requirements Design Implementation Verification Maintenance Development Models Managing Systems Open Source Software Cloud Computing

iSchool The Spiral Model Key idea: iteratively build prototypes Each prototype is closer to the final product Steps: Define requirements Develop first prototype quickly Revaluate requirements based on prototype Build second prototype based on lessons learned Iterate (until you run are happy or run out of money) Development Models Managing Systems Open Source Software Cloud Computing

iSchool The Spiral Model Development Models Managing Systems Open Source Software Cloud Computing

iSchool Unpleasant Realities The waterfall model doesn’t work well Requirements usually incomplete or incorrect The spiral model is expensive Redesign leads to recoding and retesting Development Models Managing Systems Open Source Software Cloud Computing

iSchool A Hybrid Model Goal: explore requirements Recognizing that they will change later Start with part of the functionality That will (hopefully) yield insight on the requirements Build a prototype Focus on functionality Save for later: efficiency, making it “pretty” Use the prototype to refine the requirements Repeat the process, expanding functionality Development Models Managing Systems Open Source Software Cloud Computing

iSchool A Hybrid Model Update Requirements Choose Functionality Build Prototype Initial Requirements Write Specification Create Software Write Test Plan Development Models Managing Systems Open Source Software Cloud Computing

iSchool Testing Component testing End-to-end testing Formal verification User testing Development Models Managing Systems Open Source Software Cloud Computing

iSchool Management Issues Maintenance and administration Beware of recurring costs Retrospective conversion Moving from “legacy systems” Even converting electronic information is expensive! Management information Log data, audit trails, etc. Sometimes costs more to collect than it is worth! Sometimes easy to collect, difficult to analyze Training Staff, end users Privacy, Security Development Models Managing Systems Open Source Software Cloud Computing

iSchool Things will go wrong… No software is defect-free. Why? Sheer size Example: Windows XP (2002) was ~40M lines of code Almost impossible to predict all possible use contexts Example: driver incompatibilities Concurrency Example: lots of applications running at the same time The importance of disaster recovery Backups (periodicity, storage location) Tradeoffs between “safety” and “being close by” Development Models Managing Systems Open Source Software Cloud Computing

iSchool TCO TCO = “Total cost of ownership” Buying/developing software isn’t the only cost! Other (hidden) costs: Planning, installation, integration Disruption and migration Ongoing support and maintenance Training (of staff and end users) Development Models Managing Systems Open Source Software Cloud Computing

iSchool What is open source? Proprietary vs. open source software Open source used to be a crackpot idea: Bill Gates on Linux (3/24/1999): “I don’t really think in the commercial market, we’ll see it in any significant way.” MS 10-Q quarterly filing (1/31/2004): “The popularization of the open source movement continues to pose a significant challenge to the company’s business model” Open source… For tree hugging hippies? Make love, not war? Development Models Managing Systems Open Source Software Cloud Computing

iSchool Basic Definitions What is a program? What is source code? What is object/executable code (binaries)? An organized list of instructions that, when executed, causes the computer to behave in a predetermined manner. Like a recipe. Program instructions in their original, human-readable form. Program instructions in a form that can be directly executed by a computer. A compiler takes source code and generates executable code. Development Models Managing Systems Open Source Software Cloud Computing

iSchool Proprietary Software Distribution in machine-readable binaries only Payment for a license Grants certain usage rights Restrictions on copying, further distribution, modification Analogy: buying a car… With the hood welded shut That only you can drive That you can’t change the rims on Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source Principles Free distribution and redistribution “Free as in speech, not as in beer” Source code availability Provisions for derived works “The license may not restrict any party from selling or giving away the software as a component of an aggregate software distribution containing programs from several different sources. The license may not require royalty or other fee for such sale.” “The program must include source code, and must allow distribution in source code as well as compiled form”. “The license must allow modifications and derived works, and must allow them to be distributed under the same terms as the license of the original software.” Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source vs. Proprietary Who gets the idea to develop the software? Who actually develops the software? How much does it cost? Who can make changes? Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source is already here… Apache Web server has ~50% market share of the public Internet Linux is a very popular OS for servers Lots more… but sales figure unreliable Development Models Managing Systems Open Source Software Cloud Computing

iSchool Examples ProprietaryOpen Source Operating systemWindows XPLinux Office suiteMicrosoft OfficeOpenOffice Image editorPhotoshopGIMP Web browserInternet ExplorerMozilla Web serverIISApache DatabaseOracleMySQL Development Models Managing Systems Open Source Software Cloud Computing

iSchool Server vs. Desktop Open source has made significant inroads in the server market The next big challenge: the desktop market Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source: Pros Peer-reviewed code Dynamic community Iterative releases, rapid bug fixes Released by engineers, not marketing people High quality No vendor lock-in Simplified licensed management Development Models Managing Systems Open Source Software Cloud Computing

iSchool Pros in Detail Peer-reviewed code Everyone gets to inspect the code More eyes, fewer bugs Dynamic community Community consists of coders, testers, debuggers, users, etc. Any person can have multiple roles Both volunteers and paid by companies Volunteers are highly-motivated to work on something that interests them Development Models Managing Systems Open Source Software Cloud Computing

iSchool Pros in Detail Iterative releases, rapid bug fixes Anyone can fix bugs Bugs rapidly fixed when found Distribution of “patches” Released by engineers, not marketing people Stable versions ready only when they really are ready Not dictated by marketing deadlines High quality Development Models Managing Systems Open Source Software Cloud Computing

iSchool Pros in Detail No vendor lock-in Lock in: dependence on a specific program from a specific vendor Putting content in MS Word ties you to Microsoft forever Open formats: can use a variety of systems Simplified licensed management Can install any number of copies No risk of illegal copies or license audits No anti-piracy measures (e.g. CD keys, product activation) No need to pay for perpetual upgrades Doesn't eliminate software management, of course Development Models Managing Systems Open Source Software Cloud Computing

iSchool Cons of Open Source Dead-end software Fragmentation Developed by engineers, often for engineers Community development model Inability to point fingers Development Models Managing Systems Open Source Software Cloud Computing

iSchool Cons in Detail Dead-end software Development depends on community dynamics: What happens when the community loses interest? How is this different from the vendor dropping support for a product? At least the source code is available Fragmentation Code might “fork” into multiple versions: incompatibilities develop In practice, rarely happens Development Models Managing Systems Open Source Software Cloud Computing

iSchool Cons in Detail Developed by engineers, often for engineers My favorite “pet feature” Engineers are not your typical users! Community development model Cannot simply dictate the development process Must build consensus and support within the community Inability to point fingers Who do you call up and yell at when things go wrong? Buy a support contract from a vendor! Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source Business Models Support Sellers (“Give Away the Recipe, Open A Restaurant”) Loss Leader Widget Frosting Accessorizing Give away the software, but sell distribution, branding, and after-sale service. Give away the software as a loss-leader and market positioner for closed software. If you’re in the hardware business, giving away software doesn’t hurt you and has it’s advantages. What are they? Sell accessories: books, compatible hardware, complete systems with open-source software pre-installed. (open-source T-shirts, coffee mugs, Linux penguin dolls, etc.) Development Models Managing Systems Open Source Software Cloud Computing

iSchool Mature? Yes Some open source software have been around for 15+ years Lots of servers already running open source software Development Models Managing Systems Open Source Software Cloud Computing

iSchool Sustainable? Yes Businesses and governments are choosing open source Many companies are creating are supporting open source (Google, Yahoo, IBM, Sun, HP,...) Many schools are considering or adopting open source software Development Models Managing Systems Open Source Software Cloud Computing

iSchool Open Source in Government Freedom of Information Act – free, open access to public records What are the implications of using a proprietary format? Recognition by the government On July 1, 2004, U.S. Office of Management and Budget officially recognized Open Source software as a viable option for civilian agencies of the federal government Open source gaining traction internationally Development Models Managing Systems Open Source Software Cloud Computing

iSchool It comes down to cost… Development Models Managing Systems Open Source Software Cloud Computing

iSchool The TCO Debate Development Models Managing Systems Open Source Software Cloud Computing

iSchool Is open source right for you? Do you have access to the necessary expertise? Do you have buy-in from the stakeholders? Are you willing to retool your processes? Are you willing to retrain staff and users? Are you prepared for a period of disruption? Do you have a well-thought out plan for rolling out open source software? Development Models Managing Systems Open Source Software Cloud Computing

iSchool How much data? Google processes 20 PB a day (2008) CERN’s LHC will generate 15 PB a year (2008) NOAA has ~1 PB climate data (2007) Wayback machine has ~2 PB (2006) “all words ever spoken by human beings” ~ 5 EB 640K ought to be enough for anybody. Development Models Managing Systems Open Source Software Cloud Computing

iSchool Currently, the only feasible solution: Divide-and-conquer Throwing more hardware at the problem Maybe in the future… Quantum computing Biocomputing Nanocomputing How do you crunch all that? Development Models Managing Systems Open Source Software Cloud Computing

iSchool Data Centers: Centralization “The network is the computer”… so last century! “The data center is the computer!” (CACM, 1/2008) Figure from Harper’s (Feb, 2002) Development Models Managing Systems Open Source Software Cloud Computing

iSchool Challenges Scheduling, data distribution Synchronization, inter-process communication Robustness, fault tolerance Development Models Managing Systems Open Source Software Cloud Computing

iSchool Google’s Solution Programming framework called MapReduce Iterate over a large number of records Map: extract something of interest from each Shuffle and sort intermediate results Reduce: aggregate intermediate results Generate final output Google processes 20 PB a day with this technology Development Models Managing Systems Open Source Software Cloud Computing

iSchool It’s just divide and conquer! Data Store Initial kv pairs map Initial kv pairs map Initial kv pairs map Initial kv pairs k 1, values… k 2, values… k 3, values… k 1, values… k 2, values… k 3, values… k 1, values… k 2, values… k 3, values… k 1, values… k 2, values… k 3, values… Barrier: aggregate values by keys reduce k 1, values… final k 1 values reduce k 2, values… final k 2 values reduce k 3, values… final k 3 values Really large distributed sort problem! Development Models Managing Systems Open Source Software Cloud Computing

iSchool Why should you care? Rise of Internet-scale computing Limitations of individual machines The cloud can be accessible from anywhere The importance of education Think parallel, not serial How does one gain access to the clouds? Development Models Managing Systems Open Source Software Cloud Computing

iSchool Utility Computing Computing as a utility Rent cycles instead of buying machines Maintenance is someone else’s problem Example: Amazon’s EC2 and S3 “I think there is a world market for about five computers” – Thomas Watson (1943) Development Models Managing Systems Open Source Software Cloud Computing

iSchool Utility Computing Issues Privacy Government surveillance Reliability Security Liability Intellectual property Lack of national boundaries … Development Models Managing Systems Open Source Software Cloud Computing

iSchool Today’s Topics Development Models Managing Systems Open source software Cloud Computing Development Models Managing Systems Open Source Software Cloud Computing