LBSC 690: Week 13 Building and Deploying Systems Jimmy Lin College of Information Studies University of Maryland Monday, April 30, 2007.

Slides:



Advertisements
Similar presentations
Computer Software 3 Section A Software Basics CHAPTER PARSONS/OJA
Advertisements

Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
“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.
Copyright © 2014 Pearson Education, Inc. 1 Managers from across organizations are involved in developing and acquiring information systems Chapter 5 -
VoipNow Core Solution capabilities and business value.
Slides prepared by Cyndi Chie and Sarah Frye1 A Gift of Fire Third edition Sara Baase Chapter 4: Intellectual Property.
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.
Web-Database Integration Week 8 LBSC 690 Information Technology.
The System Life Cycle Week 14 LBSC 690 Information Technology.
The System Life Cycle Week 14 LBSC 690 Information Technology.
LBSC 690: Session 12 Building and Deploying Systems Jimmy Lin College of Information Studies University of Maryland Monday, November 26, 2007.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Fundamentals of Information Systems, Second Edition
Architecture, Deployment Diagrams, Web Modeling Elizabeth Bigelow CS-15499C October 6, 2000.
The System Life Cycle Week 14 LBSC 690 Information Technology.
1 IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer Fall 2005.
The System Life Cycle Week 12 LBSC 690 Information Technology.
Library Automation and Digital Libraries Class #5 LBSC 690 Information Technology.
LBSC 690 Session #12 Building and Deploying Technology Jimmy Lin The iSchool University of Maryland Wednesday, November 19, 2008 This work is licensed.
Chapter 3 Software Two major types of software
Computer Software.
System Analysis and Library Automation Session 12 LBSC 690 Information Technology.
Sl.NoUnitContents 1.Unit - 1 What is Open Source?, Why Open Source? 2Unit – 2 What is Open Standard? - Why Open Standards? 3Unit – 3 Peek into history.
CHAPTER 6 OPEN SOURCE SOFTWARE AND FREE SOFTWARE
Client/Server Architectures
Class 6 Data and Business MIS 2000 Updated: September 2012.
Class 3 Data and Business MIS 2000 Updated: January 2014.
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
1 Introduction to Cloud Computing Jian Tang 01/19/2012.
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
Introduction to Interactive Media 02. The Interactive Media Development Process.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Databases From A to Boyce Codd. What is a database? It depends on your point of view. For Manovich, a database is a means of structuring information in.
A+ Guide to Managing and Maintaining Your PC Fifth Edition Chapter 15 Installing and Using Windows XP Professional.
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.
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.
By Anthony W. Hill & Course Technology1 Common End User Problems.
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 Software consists of the instructions issued to the computer to perform specific tasks. –The software on a computer system refers to the programs.
Software and Hardware Interaction
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.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
1 CS 502: Computing Methods for Digital Libraries Lecture 19 Interoperability Z39.50.
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.
 What are CASE Tools ?  Rational ROSE  Microsoft Project  Rational ROSE VS MS Project  Virtual Communication  The appropriate choice for ALL Projects.
MIS 105 LECTURE 1 INTRODUCTION TO COMPUTER HARDWARE CHAPTER REFERENCE- CHP. 1.
System Analysis and Library Automation
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
Introduction TO Network Administration
1 Object-Oriented Analysis and Design with the Unified Process Figure 13-1 Implementation discipline activities.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
Group E - Enrico Costanza Sam Holder, Jonathan Stephens-Jones, Joseph Buckingham, Crispin Clark, Benjamin Dixon Creative Commons, Open Source, Open Movements.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Engineering Session 12 INFM 603. Software Software represents an aspect of reality –Input and output represent the state of the world –Software.
Software Development.
Constructing Deploying and Maintaining Enterprise Systems
A Gift of Fire Third edition Sara Baase
Enterprise Application Architecture
Requirements Analysis
Presentation transcript:

LBSC 690: Week 13 Building and Deploying Systems Jimmy Lin College of Information Studies University of Maryland Monday, April 30, 2007

Agenda Building and deploying systems The open source model Issues in intellectual property management

The System Life Cycle Systems analysis How do we know what kind of system to build? How do we discern and satisfy user needs? Development models How do we build it? Management How do we use it? system analysis development models management

Systems Analysis Understand the problem What’s the user task? What’s the environment? Evaluate available technology Only then can you design a solution system analysis development models management

User-Centered Design As opposed to what? Understanding user needs Who are the present and future users? How can you understand their needs? Understanding the use context How does the particular need relate to broader user activities? How does software fit into the picture? system analysis development models management

Information Flows Where does information originate? Might come from multiple sources Feedback loops may have no identifiable source Which parts should be automated? Some things are easier to do without computers Which automated parts should be integrated? What other systems are involved? And what information do they contain? What are the impacts? e.g., serials use impacts cancellation policy e.g., circulation policy impacts fines system analysis development models management

Formal Analysis Process Modeling Structured analysis and design Entity-relationship diagrams Data-flow diagrams Object Modeling Object-oriented analysis and design Unified Modeling Language (UML) system analysis development models management

Some Library Activities Acquisition Cataloging Reference Online Public Access Catalog (OPAC) Circulation, interlibrary loan, reserves Recall, fines, … Budget, facilities schedules, payroll,... system analysis development models management

Discussion Point Integrated Library System What functions should be integrated? What are the key data flows? Which of those should be automated? system analysis development models management

The Waterfall Model Key insight: upfront investment in design An hour of design can save a week of debugging! Five stages: Requirements: figure out what the software is supposed to do Design: figure out how the software will accomplish the tasks Implementation: actually build the software Verification: makes sure that it works Maintenance: makes sure that it keeps working system analysis development models management

The Waterfall Model Requirements Design Implementation Verification Maintenance system analysis development models management

The Spiral Model Build what you think you need Perhaps using the waterfall model Get a few users to help you debug it First an “alpha” release, then a “beta” release Release it as a product (version 1.0) Make small changes as needed (1.1, 1.2, ….) Save big changes for a major new release Often based on a total redesign (2.0, 3.0, …) system analysis development models management

The Spiral Model system analysis development models management

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 system analysis development models management

A Hybrid Model Goal: explore requirements Without building the complete product Start with part of the functionality That will (hopefully) yield significant insight Build a prototype Focus on core functionality, not in efficiency Use the prototype to refine the requirements Repeat the process, expanding functionality system analysis development models management

A Hybrid Model Update Requirements Choose Functionality Build Prototype Initial Requirements Write Specification Create Software Write Test Plan system analysis development models management

Requirements Availability Mean Time Between Failures (MTBF) Mean Time To Repair (MTTR) Capacity Number of users (typical and maximum) Response time Flexibility Upgrade path Interoperability with other applications system analysis development models management

Different Components Off-the-shelf applications vs. custom-developed “Best-of-breed” vs. integrated system system analysis development models management

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., Web) Some functions done centrally, others locally Peer-to-Peer (e.g., Kazaa) All data and computation is distributed system analysis development models management

Management Issues Retrospective conversion Moving from “legacy systems” Even converting electronic information is expensive! Management information Peak capacity evaluation, audit trails, etc. Sometimes costs more to collect than it is worth! Sometimes easy to collect, difficult to analyze Training Staff, end users Privacy system analysis development models management

Things will go wrong… No software is defect-free. Why? Sheer size: e.g., Windows XP (in 2002) was ~40M lines of code Almost impossible to predict all possible use contexts Concurrency The importance of disaster recovery Backups (periodicity, storage location) system analysis development models management

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) system analysis development models management

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? The open source model

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. The open source model

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 The open source model

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.” The open source model

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? The open source model

Open Source is already here… Apache web server has ~70% market share of the public Internet (Nov., 2005) Sendmail mail server has ~50% market share Linux is a very popular OS for servers Sales figures unreliable Lots more… The open source model

Examples ProprietaryOpen Source Operating systemWindows XPLinux Office suiteMicrosoft OfficeOpenOffice Image editorPhotoshopGIMP Web browserInternet ExplorerMozilla Web serverIISApache DatabaseOracleMySQL The open source model

Server vs. Desktop Open source has made significant inroads in the server market The next big challenge: the desktop market The open source model

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 The open source model

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 The open source model

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 The open source model

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 The open source model

Cons of Open Source Dead-end software Fragmentation Developed by engineers, often for engineers Community development model Inability to point fingers The open source model

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 The open source model

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! The open source model

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.) The open source model

Mature enough? Yes Some open source software have been around for 15+ years Lots of servers already running open source software The open source model

Sustainable? Yes Businesses and governments are choosing open source Software companies are creating are supporting open source (e.g. IBM, Sun, HP) Many schools are considering or adopting open source software The open source model

Open Source in Government Freedom of Information Act – free, open access to public records What are the implications of using a proprietary format? Proposal in Massachusetts – all government documents must be created and saved in open source programs. U.S. Office of Management and Budget – On July 1, 2004, officially recognized Open Source software as a viable option for civilian agencies of the federal government Open source gaining traction internationally The open source model

It comes down to cost… The open source model

The TCO Debate The open source model

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? The open source model

DRM and DMCA DRM = Digital Rights Management Access control Copy control DMCA = Digital Millennium Copyright Act A prohibition on circumventing access controls An access control circumvention device ban (sometimes called the "trafficking" ban) A copyright protection circumvention device ban A prohibition on the removal of copyright management information Issues in IP management

“Chilling Effect” Rights negotiation replaced with terms dictated unilaterally Exceptions are very narrow Libraries, archives, and educational institutions can circumvent access controls to make a determination of whether or not to acquire the work Impinging on fair use rights? First sale doctrine? Issues in IP management

Case Study: DeCSS Content-Scrambling System (CSS) = encryption used for DVD DeCSS = program capable of decrypting CSS Released in 1999 by Norwegian teenager Jon Johansen What are legitimate uses of DeCSS? Illegal to distribute under DMCA Creative ways of distribution: T-shirts Dramatic readings Haiku poems “Illegal prime number” Issues in IP management

Case Study: Music Sharing In the beginning… Along came the Internet Rise and fall of Napster P2P out of the ashes The media companies strike back Sony rootkit: the latest saga Issues in IP management

In the works… Broadcast flags “Trusted computing” Issues in IP management

Why is this important? ALA has traditionally been a defender of civil liberties Social responsibility of information professionals Issues in IP management

Agenda Building and deploying systems The open source model Issues in intellectual property management Questions?

The Grand Plan Computers, Networks, the Web Interacting with computers XML: substrate for managing and communicating content DatabasesMultimediaProgrammingSearch Building and deploying systems Intellectual property, security, privacy, and social issues final review

Computer and Networks Computers and networks as devices for transferring, storing, and manipulating data Concepts of speed, time, and size Computer hardware Managing time: storage hierarchy and caching Computer networks Packet-switched networks: routers, routing tables, etc. final review

The Web HTML, HTTP, URLs How does a Web page get from the server to your Web browser? final review

Interacting with Computers User Interfaces: arguably the most important component of software! Interface design principles Consistency, alignment, flow, etc. User’s mental model of software final review

XML Substrate for storing, managing, and communicating content What XML is and what XML isn’t Cutting through the hype Future promise and potential of XML Semantic Web Interoperability final review

Relational Databases Tables and relations Primary keys, foreign keys Normalization Database operations Join (select x, y) Project (select…) Restrict (where...) ACID Properties Web sites that are really databases Deep vs. surface Web final review

Multimedia Tricking the human senses Pixels to images Images to movies Sampling for audio Compressions, compression, compression Streaming delivery final review

Programming Like cooking! Built from individual instructions grouped into three types of control structures: Sequential Conditional Iteration Functions “bundle together” common operations Javascript final review

Search and IR Why is IR hard? The interaction cycle Boolean queries and index structure Evaluating systems: precision vs. recall final review

System Life Cycle Building and deploying systems System analysis Software development models Managing complex systems Open Source The “chilling effects” of DRM, DMCA, etc. final review

The Grand Plan Computers, Networks, the Web Interacting with computers XML: substrate for managing and communicating content DatabasesMultimediaProgrammingSearch Building and deploying systems Intellectual property, security, privacy, and social issues final review