CIS 2200 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College • Identify and describe the different types of software • Describe distributed computing • Describe open source software • Explain cloud computing, its different types, and its advantages and risks 2 This work is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA • A computer program or a collection of programs • Precise set of instructions that tells hardware what to do 4 (IDC, 2014) • Firmware • Software stored on nonvolatile memory chips (as opposed to being stored on devices such as hard drives or removable discs) • Embedded systems • Special-purpose software designed and included inside physical products (often on firmware) • Helping devices become “smarter” 7 • Desktop Software - Applications installed on a personal computer, typically supporting tasks performed by a single user • Enterprise software - Applications that address the needs of multiple users throughout an organization or work group • Types of Enterprise Software ERP A software package that integrates the many functions of a business CRM Systems used to support customer-related sales and marketing activities SCM Systems that can help a firm manage aspects of its value chain, from the flow of raw materials into the firm, through delivery of finished products and services at the point-of-consumption BI Systems that use data created by other systems to provide reporting and analysis for organizational decision making 8 9 • Graphical user interface • Mechanisms through which users interact with the system (menus, scroll bars) • Databases – to manage data • Database management system (DBMS) • Software used for creating, maintaining, and manipulating data 10 11 12 • Web services • Small pieces of code that are accessed via the application server which permit interoperable machine-to-machine interaction over a network • Application programming interfaces (APIs) • Programming hooks (or guidelines) published by firms that tell other programs how to get a service to perform a task, such as send or receive data • Service-oriented architecture (SOA) • A robust set of Web services built around an organizations processes and procedures 13 • EDI (Electronic Data Interchange) • A set of standards for exchanging information between computer applications • A way to send the electronic equivalent of structured documents between different organizations • Extensible markup language (XML) • A tagging language that can be used to structure data 14 • Programming Languages • Provides the standards, syntax, statements, and instructions for writing computer software • IDE (Integrated Development Environment) • C++, C#, Visual Basic, and Java • Development entails more than writing programs/code 15 Different cost categories that comprise total cost of ownership: • Software development and documentation • Purchase price • Ongoing license and support fees • Configuration • Testing • Deployment • • • • • • Maintenance Support Training Compliance auditing Security, backup Provisions for disaster recovery 16 • Low or zero marginal cost • Open source software • Software that is free and where anyone can look at and potentially modify the code • Questions facing big software firms • How can we compete with free? • How can we make money and fuel innovation on free? • Cloud computing 17 • Openness in stark contrast to the practice of conventional software firms • Intellectual property as closely guarded secrets • Examples • Linux, Apache, MySQL, Perl/Python/PHP (LAMP) • Firefox • OpenOffice 18 • Moving software out of its own IS shop so that it is run on someone else’s hardware • Replacing computing resources with services provided over the Internet • Software as a service (SaaS) • A form of cloud computing where a firm subscribes to a third-party software and receives a service that is delivered online • Utility computing – platform as a service, infrastructure as a service • Private and public clouds • Virtualization • Build vs. buy vs. rent • Advantages • Lower costs associated with the software licenses, server hardware, system maintenance, and IT staff • Faster deployment times • Variable operating expense • Scalable systems • Higher quality and service levels • Remote access and availability • Usage-based pricing model 20 • Dependence on a single vendor • Concern about the long-term viability of partner firms • Users may be forced to migrate to new versions • Reliance on a network connection • Data assets stored off-site - security and legal concerns • Limited options • Less rich user interface • Pockets of unauthorized IT use throughout the organization 21 • What is the difference between operating system and application software? • Identify different types of application software • What is distributed computing? • What is cloud computing? Different types of cloud computing? • What is open source software? 22