Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore BCA113 Internet Computing and Ethics

BCA113 Internet Computing and Ethics

Published by Teamlease Edtech Ltd (Amita Chitroda), 2020-12-04 14:31:00

Description: BCA113 Internet Computing and Ethics

Search

Read the Text Version

E-commerce Fundamentals - 2 145 6.7 Learning Activity 1. Explain C2C business model. ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- 6.8 Unit End Questions (MCQ and Descriptive) A. Descriptive Types Questions 1. What is E-Marketplace? 2. What is E-portal? 3. Explain E-auction. 4. What are various types of Business models for e-commerce. B. Multiple Choice/Objective Type Questions 1. Which one of the following is not one of the major types of e-commerce? (a) C2B (b) B2C (c) B2B (d) C2C 2. Compared to B2C e-commerce, B2B e-commerce is __________. (a) Of equal size (b) Slightly smaller (c) Slightly larger (d) Much larger 3. An _________ is a single gateway through which to gain access to all the information, data, systems, and processes used by stakeholders of an organization. (a) E-auction (b) E-portal (c) E-commerce (d) E-education CU IDOL SELF LEARNING MATERIAL (SLM)

146 Internet Computing and Ethics 4. __________ websites are used by governments to trade and exchange information with various business organizations. (a) C2B (b) B2C (c) B2G (d) C2C 5. A website following the _______ business model sells its products directly to a customer. (a) C2B (b) B2C (c) B2G (d) C2C Answers 1. (a), 2. (d), 3. (b), 4. (c), 5. (b) 6.9 References 1. https://www.thebalancesmb.com/let-s-ask-the-basic-question-what-is-ecommerce- 1141599 2. https://designhammer.com/services/seo-guide/search-engines 3. “E-commerce” by Gaurav Gupta and Sarika Gupta. CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 147 UNIT 7 ELECTRONIC PAYMENT SYSTEMS Structure: 7.0 Learning Objectives 7.1 Introduction 7.2 Types of Electronic Payment Systems 7.3 Digital Token-based Electronic Payment Systems 7.4 Smart Cards and Electronic Payment Systems 7.5 Credit Card-based Electronic Payment Systems 7.6 Risk and Electronic Payment Systems 7.7 E-cash, Electronic Cheque and Elements of Electronic payments 7.8 Summary 7.9 Key Words/Abbreviations 7.10 Learning Activity 7.11 Unit End Questions (MCQ and Descriptive) 7.12 References 7.0 Learning Objectives After studying this unit, you will be able to:  Define electronic payment  Describe various payment methods used in e-commerce  List the risks involved in e-payments CU IDOL SELF LEARNING MATERIAL (SLM)

148 Internet Computing and Ethics 7.1 Introduction Electronic Payment is a financial exchange that takes place online between buyers and sellers electronically without the use of actual cash or money. Upon completion of the presentation, you will be able to understand the concept of Electronic Payment System and its security services. E-commerce sites use electronic payment, where electronic payment refers to paperless monetary transactions. Electronic payment has revolutionized the business processing by reducing the paperwork, transaction costs, and labour cost. Being user friendly and less time- consuming than manual processing, it helps business organization to expand its market reach/expansion. An e-payment system is a way of making transactions or paying for goods and services through an electronic medium, without the use of checks or cash. It’s also called an electronic payment system or online payment system. Read on to learn more. The electronic payment system has grown increasingly over the last decades due to the growing spread of internet-based banking and shopping. As the world advances more with technology development, we can see the rise of electronic payment systems and payment processing devices. As these increase, improve, and provide ever more secure online. When you purchase goods and services online, you pay for them using an electronic medium. This mode of payment, without using cash or cheque, is called an e-commerce payment system and is also known as online or electronic payment systems. The growing use of internet-based banking and shopping has seen the growth of various e- commerce payment systems and technology has been developed to increase, improve and provide secure e-payment transactions. Paperless e-commerce payments have revolutionized the payment processing by reducing paper work, transaction costs, and personnel cost. The systems are user-friendly and consume less time than manual processing and help businesses extend their market reach. CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 149 7.2 Types of Electronic Payment Systems The different types of e-commerce payments in use today are: 1. Credit Card: The most popular form of payment for e-commerce transactions is through credit cards. It is simple to use; the customer has to just enter their credit card number and date of expiry in the appropriate area on the seller’s web page. To improve the security system, increased security measures, such as the use of a card verification number (CVN), have been introduced to on-line credit card payments. The CVN system helps detect fraud by comparing the CVN number with the cardholder’s information. 2. Debit Card: Debit cards are the second largest e-commerce payment medium in India. Customers who want to spend online within their financial limits prefer to pay with their Debit cards. With the debit card, the customer can only pay for purchased goods with the money that is already there in his/her bank account as opposed to the credit card where the amounts that the buyer spends are billed to him/her and payments are made at the end of the billing period. 3. Smart Card: It is a plastic card embedded with a microprocessor that has the customer’s personal information stored in it and can be loaded with funds to make online transactions and instant payment of bills. The money that is loaded in the smart card reduces as per the usage by the customer and has to be reloaded from his/her bank account. 4. E-Wallet: E-Wallet is a prepaid account that allows the customer to store multiple credit cards, debit card and bank account numbers in a secure environment. This eliminates the need to key in account information every time while making payments. Once the customer has registered and created E-Wallet profile, he/she can make payments faster. 5. Netbanking: This is another popular way of making e-commerce payments. It is a simple way of paying for online purchases directly from the customer’s bank. It uses a similar method to the debit card of paying money that is already there in the customer’s bank. Net banking does not require the user to have a card for payment purposes but the CU IDOL SELF LEARNING MATERIAL (SLM)

150 Internet Computing and Ethics user needs to register with his/her bank for the net banking facility. While completing the purchase the customer just needs to put in their net banking id and pin. 6. Mobile Payment: One of the latest ways of making online payments are through mobile phones. Instead of using a credit card or cash, all the customer has to do is send a payment request to his/her service provider via text message; the customer’s mobile account or credit card is charged for the purchase. To set up the mobile payment system, the customer just has to download a software from his/her service provider’s website and then link the credit card or mobile billing information to the software. 7. Amazon Pay: Another convenient, secure and quick way to pay for online purchases is through Amazon Pay. Use your information which is already stored in your Amazon account credentials to log in and pay at leading merchant websites and apps. Your payment information is safely stored with Amazon and accessible on thousands of websites and apps where you love to shop. 7.3 Digital Token-based Electronic Payment Systems Payments with digital devices are an important part of the digital transformation of our clients. As one of the fastest growing payment methods globally, they also pose substantial challenges for security and deployment models. Tokenization is a concept that has great potential to increase the protection of digital payment credentials while preserving the interoperability of the ecosystem. equens Worldline provides a unified approach for token-based payments in stores, in apps and on the web, for domestic and international card schemes. We facilitate the integration of major Tokens Service Providers with our issuing systems and offer a token requestor function for digital wallet providers. Our services are compliant with industry regulations and standards. Domestic payment schemes can opt in for token vault and data digitization modules. CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 151 Categories of Electronic Tokens 1. Cash or Real Time: In this mode of electronic tokens transactions takes place via the exchange of electronic currency (e-cash). 2. Debit or Prepaid: In this electronic payment system the prepaid facilities are provided. It means that for transactions of information user pay in advance. This technology are used in smart card, electronic purses etc. 3. Credit or Postpaid: These types of electronic token based on the identity of customers which issue a card, their authentication and verification by a third party. In this system the server authenticate the customers and then verify their identity through the bank. After all these processing the transaction take place. Example is E-Cheques. 7.4 Smart Cards and Electronic Payment Systems A smart card, chip card, or integrated circuit card (ICC) is any pocket-sized card with embedded integrated circuits. Smart cards are made of plastic, generally polyvinyl chloride, but sometimes polyethylene terephthalate based polyesters, acrylonitrile butadiene styrene or polycarbonate. Smart cards can provide identification, authentication, data storage and application processing. Smart cards may provide strong security authentication for single sign-on (SSO) within large organizations Types of Smart Cards 1. Contact smart Cards: Contact smart cards have a contact area of approximately 1 square centimeter (0.16 sq in), comprising several gold-plated contact pads. These pads provide electrical connectivity when inserted into a reader, which is used as a communications medium between the smart card and a host (e.g., a computer, a point of sale terminal) or a mobile telephone. Cards do not contain batteries; power is supplied by the card reader. CU IDOL SELF LEARNING MATERIAL (SLM)

152 Internet Computing and Ethics 2. Contactless smart cards: A second card type is the contactless smart card, in which the card communicates with and is powered by the reader through RF induction technology. These cards require only proximity to an antenna to communicate. Like smart cards with contacts, contactless cards do not have an internal power source. Instead, they use an inductor ‘to capture some of the incident radio-frequency interrogation signal, rectify it, and use it to power the card’s electronics. 7.5 Credit Card-based Electronic Payment Systems Electronic commerce, commonly known as e-commerce or e-Commerce, or e-business consists of the buying and selling of products or services over electronic systems such as the Internet and other computer networks. There is a growing array of card-based electronic payment systems available for retail use. Historically, these payments have been linked to a payee’s or payer’s existing account relationship with a financial institution. Card-based electronic payments can be defined in three ways, depending on the timing of the payment:  “Pay Later” payments occur after receiving the goods or services and typically refer to credit payments. A credit card enables a consumer to access a credit line account at a financial institution.  “Pay Now” payments occur when the goods or services are received and generally are associated with debit payments. Debit card payments are related to an existing transaction account at a financial institution.  “Pay Before” refers to payments for goods or services with prepaid or stored-value cards, which are loaded with buying power before the purchase of goods or services occurs. The account associated with the pre-paid debit card may be the liability of a financial institution. Both credit and signature-based debit card transactions are typically processed in batch mode at the POS, and settlement is delayed until the batches are processed at the end of the day. PIN- based debit card transactions, although processed in real time at the POS, typically settle at the CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 153 end of the day using the ACH. Merchants often prefer that customers use PIN-based debit cards due to the lower costs associated with these transactions over the costs for signature-based credit and debit cards. With PIN-based transactions, the consumer must apply the pre-established PIN to validate the transaction. 7.6 Risk and Electronic Payment Systems Electronic payments allow you to transfer cash from your own bank account to the bank account of the recipient almost instantaneously. This payment system relies heavily on the internet and is quite popular due to the convenience it affords the user. It would be hard to overstate the advantages of electronic payment systems, but what about the risks? Certainly they exist, both for financial institutions and consumers. Virtually all electronic payment systems require some ability to keep automatic records. Once information has been electronically caught, it is easy and not expensive to keep. The intangible nature of electronic transactions and resolution of the disputes relying alone on records, a general law of payment dynamics and banking technology might be: No data should be discarded. Features of these automatic records are: 1. Permanent storage 2. Accessibility and traceability 3. A payment system database and 4. Data transfer to payment maker, bank or monetary authorities. The need of keeping of records for the purposes of risk management conflicts with the transaction anonymity of cash. An unknown payment system without automatic record keeping facility will be difficult for bankers and government to accept. However, customers might feel that all this record keeping is an invasion of privacy. Managing Information Privacy The electronic payment system must provide and maintain privacy. Every time one purchases goods using a credit card, subscribes to a magazine or accesses a server that CU IDOL SELF LEARNING MATERIAL (SLM)

154 Internet Computing and Ethics information goes into a database somewhere. This violates one the unspoken laws of doing business; that the privacy of customers should be protected as possible. All details of a consumer’s payments can be easily be aggregated: Where, when and sometimes what the customer buys is stored. This data collection tells much about the person and as such can conflict with the individual’s privacy. Privacy must be maintained against eavesdroppers on the network and against unauthorized insiders. The users must be given assurance that they cannot be easily duped or falsely implicated in a fraudulent transaction. This protection has to be applied on the whole transaction protocol. Managing Credit Risk Credit risk is an important concern in systems of net settlement because a bank’s inability to settle its net position could give rise to a chain reaction of failures of the banks. The digital central bank must prepare policies to handle this possibility. Various alternatives exist, each with advantages and disadvantages. A digital central bank guarantee on settlement issues eradicates the insolvency test from the system because banks will more easily assume credit risks from other banks. Risks The risks with accounting systems are real, from booking fake transactions to having someone steal a backup tape with all financial information on it. Examples of risks:  Theft of social security numbers from employees and contractors  Payments to fake vendors  Data deletion/loss  Damage to backup tapes  Theft of servers or computers CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 155 Security Measures Security measures are also known as controls, and they can be preventive, to prevent risks, or detective, to identify problems after the fact. Once risks are identified, the controls can be set up to protect the system. Some security measures are:  Frequent password changes  Encryption of data  Monthly supervisor review of vendor reports  Safe and protected server and computer environment  Safe and protected off-site archiving of backup tapes 7.7 E-cash, Electronic Cheque and Elements of Electronic payments E-cash eCash is based on cryptographic systems called Digital Signatures. This method involves a pair of numeric keys (very large integers or numbers) that work in tandem: one for locking (or encoding) and the other for unlocking (decoding). Messages encoded with one numeric key can only be decoded with the other numeric key and none other. The encoding key is kept private and the decoding key is made public. By supplying all customers (buyers and sellers) with its public key, a bank enables customers to decode any message (or currency) encoded with the bank’s private key. If decoding by a customer yields a recognizable message, the customer can be fairly confident that only the bank could have encoded it. These digital signatures are as secure as the mathematics involved and have proved over the past two decades to be more resistant to forgery than handwritten signatures. Before eCash can be used to buy products or services, it must be procured from a Currency server. Purchasing E-cash from Currency Server eCash can be purchased from an On-Line currency server in 2 steps namely, Establishing an account and maintaining enough money in the account to back the purchase. CU IDOL SELF LEARNING MATERIAL (SLM)

156 Internet Computing and Ethics How Actually eCash will work 1. The user of eCash has to have an Account with a bank ready to offer eCash. 2. The user will apply for eCash in the denomination and amount he desires. In exchange of money debited from the customer’s account, the bank uses its private key to digitally sign the note for the amount requested and transmits the note back to the customer. The network currency server in effect is issuing a “bank note” with a serial number and a dollar amount. 3. Since the bank is digitally signing it, the bank is committing itself. 4. The user has the eCash available. He can sign the eCash and give it to anybody. 5. When the eCash software generates a note, it masks the original number or “blinds” the note. The blinding carried out makes it impossible for anyone to link Payment to Payer. 6. A central bank also maintains a database of Spent notes. Electronic Cheques Electronic cheques are another form of Electronic tokens. They are designed to accommodate the many individuals and entities that might prefer to pay on credit or through some mechanism other than cash. Once registered, a buyer can then contact sellers of goods and services. To complete a transaction, the buyer sends a check to the seller for a certain amount of money. These checks may be sent using Email or other Transport methods. When deposited, the cheque authorises the transfer of account balances from the account against which the cheque was drawn to the account to which the cheque was deposited. This method has been deliberately designed to work in the manner conventional cheques work. Advantages of Electronic cheques 1. Similar to traditional cheques. This eliminates the need for customer education. 2. Since Electronic cheques use conventional encryption than public and private keys as in eCash, Electronic cheques are much faster. CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 157 3. The risk is taken care of by the accounting server, which will guarantee that the cheque would be honoured. Elements of Electronic Payments 1. Commercial cards: Starting with the component that gives businesses the most return on the time and effort it takes to migrate to e-payments, the core products that make up a commercial card program are each useful for different reasons:  A purchasing card (p-card) goes beyond a traditional business credit card with advanced features like virtual card numbers (VCNs). These are single-use, unique credit card numbers generated in real time for a specific purchase amount, date and supplier. VCNs enable a company to use a p-card with greater confidence for larger purchase amounts. In 2007, the average p-card purchase was under $1,000; in 2013, many companies used p-cards for purchases up to $2,500. In addition, p-cards are being used for a wider variety of purchases, with some companies using p-cards to pay for goods and services in 59% of purchase categories. A big part of the reason for growth is improved efficiencies: p-card use eliminates the requisition, purchase order and invoice parts of the purchasing process.  Travel and entertainment (T&E) cards are effective for companies that don’t want their employees to purchase items on their own credit cards or for employees who don’t want to worry about receiving timely reimbursement. According to RPMG, 68% of corporations expect travel card spending to increase through 2015. Spending controls, continuous monitoring and detailed reporting are key program features that improve employee compliance and curtail misuse.  Electronic accounts payable (EAP) accounts are non-plastic purchasing accounts used to pay for invoiced goods and services. EAP accounts can be integrated with a direct file transmission platform which centralizes all payments processing (virtual card numbers, ACH and wires). EAP accounts can also enable different departments to issue distinct credit card numbers (through the use of ghost card accounts) that roll up to one corporate account. This allows finance to easily assign costs to departments and allows suppliers to charge the account directly (e.g., when CU IDOL SELF LEARNING MATERIAL (SLM)

158 Internet Computing and Ethics a plastic p-card can’t be used), while providing the company with payment float, insight and controls. EAP accounts also allow you to set dynamically adjustable spending limits that are assigned to match the transaction amount. According to RPMG, the number of companies using EAP accounts is expected to rise from 18% in 2013 to 43% in 2016. RPMG also revealed that the average EAP transaction was $4,727 in 2013, over 10 times larger than a typical purchasing card account transaction. Research shows that EAP use complements p-card spend, with 73% of EAP-using organizations indicating that EAP spending will not cannibalize purchasing card spending. 2. ACH payments: The automated clearinghouse (ACH) network was originally established in the 1970s to provide an alternative to using paper checks. The ACH uses a batch process, in which the individual transactions are created/initiated and then batched as one or many for release to the bank. These transactions typically take a few days to process. Today ACH payments are used for large volumes of credit and debit batched transactions, including regular direct deposit payroll and vendor payments. In fact, in 2013, $38.7 trillion was transferred over the ACH Network, an increase of nearly 5% over the previous year. According to the Electronic Payments Association (NACHA), the types of ACH transactions seeing increased use include online payments, business-to- business (B2B) payments (CTX and CCD transactions), consumer-initiated payments (CIE transactions) and recurring payments (PPD transactions) such as direct deposit via ACH. 3. Bill payments: A bill payments solution makes sense for regular or one-time small to mid-sized payments managed and distributed online, including recurring expenses, such as rent and equipment leases. Conveniently, web-based bill pay enables companies to view, manage and pay bills online and set up future and recurring payments from anywhere, any time. Companies also can define multiple users and establish various approval limits. 4. Wire transfers: Wire transfers are used to make domestic and international high value and rapid direct bank-to-bank payments, including ad hoc and one-time payments. CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 159 Businesses typically use wire transfers to pay or receive funds same day—benefitting from nearly immediate and guaranteed availability of funds via secure, non-reversible transactions. This can be important for businesses that need to make an immediate purchase or cover an urgent business need. 5. The backend stuff: Supporting all of these solutions are several essential backend systems, including an automated payment platform that integrates bill payment and accounting systems, a purchase control portal that securely generates virtual accounts for purchase requests, and a direct file transmission platform that centralizes all payments processing and that integrates with your ERP systems. 7.8 Summary The emergence of e-commerce has created new financial needs that in many cases cannot be effectively fulfilled by the traditional payment systems. The advent of the Electronic commerce has prompted the invention of several payment tools to facilitate the completion of business transactions over the Internet. There are different methods to pay electronically. Recognizing this, virtually all interested parties are exploring various types of electronic payment system and issues surrounding electronic payment system and digital currency. Broadly electronic payment systems can be classified into four categories: Online Credit Card Payment System, Online Electronic Cash System, Electronic Cheque System and Smart Cards based Electronic Payment System. Each payment system has its advantages and disadvantages for the customers and merchants. These payment systems have numbers of requirements: e.g. security, acceptability, convenience, cost, anonymity, control, and traceability. Therefore, instead of focusing on the technological specifications of various electronic payment systems, the researcher has distinguished electronic payment systems based on what is being transmitted over the network; and analyzed the difference of each electronic payment system by evaluating their requirements, characteristics and assessed the applicability of each system. To sustain in the competition more banks are following e-commerce and especially using e-payment mechanism. Though Indian economy is basically cash driven, still India is not far behind in adopting E-payment services in retail and banking sector. CU IDOL SELF LEARNING MATERIAL (SLM)

160 Internet Computing and Ethics 7.9 Key Words/Abbreviations  Architecture: The complex or carefully designed structure of something.  Electronic Payment System: A means of making payments over an electronic network such as the Internet.  E-Cash: Electronic financial transactions conducted in cyberspace via computer networks.  E-Cheque: A form of payment made via the internet that is designed to perform the same function as a conventional paper cheque. Because the cheque is in an electronic format, it can be processed in fewer steps and has more security features than a standard paper cheque.  Debit Card: A payment card that deducts money directly from a consumer’s checking account to pay for a purchase.  E-commerce: E-commerce, short for electronic commerce, is trading in products or services using computer networks, such as the Internet.  Credit Card: A small plastic card issued by a bank, building society, etc., allowing the holder to purchase goods or services on credit.  Smart Card: A smart card is a physical card that has an embedded integrated chip that acts as a security token. 7.10 Learning Activity 1. Explain how net banking is used in e-commerce. ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- 2. Explain e-cash. ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- CU IDOL SELF LEARNING MATERIAL (SLM)

Electronic Payment Systems 161 7.11 Unit End Questions (MCQ and Descriptive) A. Descriptive Types Questions 1. What is Electronic Payment System? 2. What are types of Electronic Payment Systems. 3. Explain Digital Token-Based Electronic Payment Systems. 4. Explain Smart Cards and Electronic Payment Systems. 5. Explain Credit Card-Based Electronic Payment Systems. 6. What are Risk involved Electronic Payment Systems. 7. Define term Ecash and Electronic Cheque. 8. What are Elements of Electronic payments. 9. Elucidate the difference between smart cards, credit cards and debit cards and also elaborate where they are used in real life. B. Multiple Choice/Objective Type Questions 1. A _________ goes beyond a traditional business credit card with advanced features like virtual card numbers (VCNs). (a) P-card (b) E-card (c) Smart card (d) Debit card 2. _________is based on cryptographic systems called Digital Signatures (a) E-commerce (b) E-card (c) E-wallet (d) eCash 3. _________ payments occur after receiving the goods or services and typically refer to credit payments. (a) Pay Before (b) Pay Later (c) Pay Now (d) E-pay CU IDOL SELF LEARNING MATERIAL (SLM)

162 Internet Computing and Ethics 4. ________ payments occur when the goods or services are received and generally are associated with debit payments. (a) Pay Before (b) Pay Later (c) Pay Now (d) E-pay 5. _________ refers to payments for goods or services with prepaid or stored-value cards, which are loaded with buying power before the purchase of goods or services occurs. (a) Pay Before (b) Pay Later (c) Pay Now (d) E-pay Answers 1. (a), 2. (d), 3. (b), 4. (c), 5. (a) 7.12 References 1. https://securionpay.com/blog/e-payment-system/ 2. https://www.igi-global.com/chapter/overview-of-electronic-payment-system/135858 3. “Electronic Payment system for e-commerce” by Donal O’Mahony. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 163 UNIT 8 INTRODUCTION TO OPEN SOURCE SOFTWARE - 1 Structure: 8.0 Learning Objectives 8.1 Introduction 8.2 Introduction to GNU 8.3 The GNU Projects 8.4 The Operating System GNU/Linux 8.4.1 History of Linux and Unix Operating Systems 8.4.2 Features of Linux 8.4.3 Linux/Unix Architecture 8.4.4 Linux Distributions 8.5 Apache Web Server 8.6 Summary 8.7 Key Words/Abbreviations 8.8 Learning Activity 8.9 Unit End Questions (MCQ and Descriptive) 8.10 References CU IDOL SELF LEARNING MATERIAL (SLM)

164 Internet Computing and Ethics 8.0 Learning Objectives After studying this unit, you will be able to:  Define open source software  Describe open source technology and its examples 8.1 Introduction Open source software is software with source code that anyone can inspect, modify, and enhance. “Source code” is the part of software that most computer users don’t ever see; it’s the code computer programmers can manipulate to change how a piece of software — a “program” or “application”—works. Programmers who have access to a computer program’s source code can improve that program by adding features to it or fixing parts that don’t always work correctly. Linux is an operating system: a series of programs that let you interact with your computer and run other programs. An operating system consists of various fundamental programs which are needed by your computer so that it can communicate and receive instructions from users; read and write data to hard disks, tapes, and printers; control the use of memory; and run other software. The most important part of an operating system is the kernel. In a GNU/Linux system, Linux is the kernel component. The rest of the system consists of other programs, many of which were written by or for the GNU Project. Because the Linux kernel alone does not form a working operating system, we prefer to use the term “GNU/Linux” to refer to systems that many people casually refer to as “Linux”. Apache is an open-source and free web server software that powers around 46% of websites around the world. The official name is Apache HTTP Server, and it’s maintained and developed by the Apache Software Foundation. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 165 8.2 Introduction to GNU GNU is an operating system which is 100% free software. It was launched in 1983 by Richard Stallman (rms) and has been developed by many people working together for the sake of freedom of all software users to control their computing. Technically, GNU is generally like Unix. But unlike Unix, GNU gives its users freedom. The GNU system contains all of the official GNU software packages (which are listed below), and also includes non-GNU free software, notably TeX and the X Window System. Also, the GNU system is not a single static set of programs; users and distributors may select different packages according to their needs and desires. The result is still a variant of the GNU system. 8.3 The GNU Projects GNU distributions for PCs and workstations The distributions that follow are installable to a computer’s hard drive and/or can be run live. Distribution Brief Description Dragora GNU/Linux-Libre, an independent GNU/Linux distribution based on concepts of simplicity. Dyne:bolic, a GNU/Linux distribution with special emphasis on audio and video editing. This is a “static” distro, normally run from a live CD. Since it will not receive security updates, it should be used offline. gNewSense, a GNU/Linux distribution based on Debian, with sponsorship from the FSF. CU IDOL SELF LEARNING MATERIAL (SLM)

166 Internet Computing and Ethics Guix System, an advanced GNU/Linux distro built on top of GNU Guix (pronounced “geeks”), a purely functional package manager for the GNU system. Hyperbola GNU/Linux-libre, a long-term support simplicity-focused distribution based on Arch GNU/Linux. Parabola GNU/Linux-libre, a distribution based on Arch that prioritizes simple package and system management. PureOS, a GNU distribution based on Debian with a focus on privacy, security, and convenience. Trisquel, a GNU/Linux distribution based on Ubuntu that’s oriented toward small enterprises, domestic users and educational centers. Ututo S, a GNU/Linux 100% free distribution. It was the first fully free GNU/Linux system recognized by the GNU Project. Small GNU Distributions Below is a list of small system distributions. These distributions are meant for devices with limited resources, like a wireless router for example. A free small system distribution is not self- hosting, but it must be developable and buildable on top of one of the free complete systems listed above, perhaps with the aid of free tools distributed alongside the small system distribution itself. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 167 Distribution Brief Description libreCMC is an embedded GNU/Linux distro for devices with very limited resources. While primarily targeting routers, it offers support for a wide range of devices and use cases. In 2015, LibreWRT merged with libreCMC. ProteanOS is a new, small, and fast distribution for embedded devices. Its platform configuration feature allows binary packages to be configured at build-time and run-time for different hardware and use cases. How to get free GNU Distributions In addition to their own sites, many of these distributions are available from mirror.fsf.org. Feel free to download or mirror the distributions from there, preferably using rsync. Free distribution maintainers can request a mirror for their project by mailing the FSF sysadmins. Individual GNU packages (most of which are included in the free distributions here) are described separately. We list companies that sell hardware preinstalled with a free GNU/Linux distribution separately. 8.4 The Operating System GNU/Linux 8.4.1 History of Linux and Unix Operating Systems: In 1969, Ken Thompson and Dennis Ritchie wrote a small, general purpose operating system called UNIX. This operating system was written in assembly language. In 1973, Thompson and Ritchie rewrote the Unix operating system in c breaking away from the tradition of writing operating system in assembly language. Around 1974, Unix was licensed to universities for educational purpose and a few years later was made commercially available. Many vendors such as SUN, IBM, Hewlett Packard and other purchased the source code of Unix and developed their own versions of Unix. Most of these versions were CU IDOL SELF LEARNING MATERIAL (SLM)

168 Internet Computing and Ethics proprietary and maintained by their developers who had to wait for a long time for bug fines to get released. In 1980, Microsoft developed a PC version of Unix called Xenix. In 1984, Ritchard Stallman’s free software foundation (FSF) began the GNU (GNU stands for GNUs not Unix) project to create a free version of Unix O.S. The FSF successfully built a large number of tools that could be freely used, read, modified and redistributed. Around 1990, they had developed a number of tools but were having trouble creating a kernel. In 1991, Linus Torvalds developed a kernel and called it Linux. It has developed Linux version 0.11. Around 1992, Linux kernel was combined with the not quite complete GNU system resulting in a complete free operating system. This operating system is called GNU/LINUX as it is a combination of the GNU system and Linux as the Linux operating system. Hence, Linux was widely distributed over the internet and Linux has all the internet utilities such as FTP (File Transfer Protocol) web browsers and remote connections with PPP (Point To Point Protocol). It also has a full set of program development utilities such as C++ compilers and debuggers. Hence, Linux has developed in the free and open environment of the internet. Linux is an open Source software. The kernel coding is available on the net. We can download the source code and do the changes in the coding and can create new version of Linux. Linux also has Linux file system standard (FSSTAND), which specifies the location of files and directories in Linux file structure. Linux supports ext3 partitions and swap partition for RAM, Linux supports all windows partitions Like VFAT, FAT32, NTFS, MSDOS Partition etc. 8.4.2 Features of Linux 1. GUI (Graphical User Interface) 2. Multitasking: No. of programs running at the same time. 3. Multiuser: Several users on the same machine at the same time 4. Multiplatform: Number of processors at a time runs on many different CPUs, not just Intel. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 169 5. Multiprocessor: Kernel supports multiple independent threads of a single process or multiple processes. 6. Multithreading: Has native kernel support for multiple independent threads of control within a single process memory space. 7. Linux runs in a protected mode on a 386 machine. It has memory protection between processes so that one program can’t bring whole system down. 8. It supports virtual memory using paging i.e. separate partition or file in file system created. 9. Dynamically linked shared libraries and static libraries. 10. It is an open source s/w hence all the source codes are available including the kernel and all drivers. Also all development tools and all user programs are freely distributed on the net. 11. Multiple virtual consoles i.e. it has several independent login sessions to console. You can switch by pressing hot key combination. These are dynamically allocated. You can use up to 64. 12. Linux has different file systems depending upon file systems like FAT32, VFAT, NTFS or NFS, ext3, ext4, swap(RAM) 13. It supports Network connectivity 14. It supports Network Servers like TCP/IP Networking including FTP, Telnet, NFS, etc. 15. It has Hardware Support 16. Firewall Protection inbuilt is available so that no outsider introducer can attack on our System. 17. It has its own K-office 18. Linux supports netware client and server with static Routing and Dynamic Routing with the help of DHCP. CU IDOL SELF LEARNING MATERIAL (SLM)

170 Internet Computing and Ethics 19. Linux supports ‘Samba Server’ for connectivity of windows and Linux file sharing. 20. It supports different Time Servers with sendmail facility. 21. It supports ftp and http services with apache web server 8.4.3 Linux/Unix Architecture Unix Architecture is also called kernel and shell relationship. The kernel is the core program of linux that runs programs, manages and controls all software and hardware devices such as disc and printers. Hence, core of LINUX system is the kernel. It controls the resource of computer allocating them to different users and tasks. It interacts directly with the hardware thereby making programs easy to write and portable across different hardware platforms. The main function of kernel is that it has a node one level below the shell. Application Programs bash more ksh pg csh which Mail sh env cpp Hardware cut comp Kernel ed Shell vi DBMS as FTP Fig. 8.1: Kernel and shell relationship CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 171 Shell is a command interpreter which interprets the command and then passes to the kernel for execution. Shell acts as an interface between user and kernel. It is a program started after you log on to the LINUX. It provides a command line interface or shell between user and LINUX kernel. Hence, it is called as fundamental interface to O.S. “Kernel”. Typed ‘cmds are interpreted by the shell and sent to the kernel which, in turn, opens, closes, reads or writes files. The shell runs like any other program under the LINUX system. A shell is simply a macro processor that executes commands that you enter at the command prompt. A Linux shell is understood to be both a command interpreter and a programming language. You can enter the commands at the command prompt (#) and the shell will run them. If you have several commands that you need to run, you can put them in a special text file called a script file and the shell will run it also. User programs that need to access the hardware use the services of the kernel hence kernel acts as an interface between user and hardware. These programs access the kernel through a set of functions called System calls. Kernel manages the system memory, schedules processes, and decides their priorities. 8.4.4 Linux Distributions Linux is actually just a kernel. You can obtain the sources for the kernel to compile and install it on a machine and then obtain and install many other freely distributed software programs to make a complete Linux installation. These installations are usually referred to as Linux systems, because they consist of much more than just the kernel — most of the utilities come from the GNU Project of the Free Software Foundation. Many people have put together ready-to-install distributions (often called flavours), usually downloadable or on CD-ROMs or DVDs, that contain not just the kernel but also many other programming tools and utilities. These often include an implementation of the X Window System, a graphical environment common on many UNIX systems. CU IDOL SELF LEARNING MATERIAL (SLM)

172 Internet Computing and Ethics GNU Linux Distributors are Red Hat Linux: A commercial business distribution http://www.redhat.com used mainly for Internet servers SUSE Linux: Open SUSE is a community- http://www.suse.com created Linux distribution sponsored by Novell. Mandrake Linux: http://www.mandrakesoft.com A community Linux distribution initially forked from Mandriva Debian GNU/Linux: Linux in response to the http://www.debian.org/ discontinuation of free versions of Mandriva Linux. Slackware Linux: http://www.slackware.com/ Debian is an older Linux distribution which comes with the GNOME desktop environment by default. It is also FREEBSD with 37500 packages. One of the original distribution sets popular with Linux geeks  The Apache Web server is the most popular Web server in the world  “The standard” for UNIX web servers.  According to survey 30 per cent of all Web servers run a combination of Linux and Apache.  Originally based on NCSA (National Center for Supercomputing Applications) httpd code. 8.5 Apache Web Server Introduction to Apache and Features of Apache  NCSA’s server was the most popular of the early HTTP servers and its source code was in the public domain.  Can be installed under most Unix variants and Windows. Binary versions available for many operating systems. It use file-based configuration, although GUI tools are also available. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 173  Unix versions very stable. Windows version less mature (beta-level code).  Very Fast and uses resources efficiently.  Freely distributed source code. Can be modified for commercial or non-commercial use.  It is a low-cost and stable Web server used with windows os and Linux  On December 1, 1995, the Apache Group released Apache 1.0, the version that cemented Apache’s status as the Internet’s #1 HTTP server.  Apache to be faster than many other Web servers, including commercial servers.  Apache is also both easy to configure and easy to reconfigure. Its configuration information resides in plain text files and uses simple English-language directives.  Apache is easily extensible using Dynamic Shared Objects (DSOs) commonly known as modules. Modules extend Apache’s capabilities and new features without requiring recompilation because they can be loaded and unloaded at runtime, just as shared libraries are dynamically loaded and unloaded.  Apache uses a binary database format for authenticating users’ requests for password protected Web pages  Apache supports virtual hosts, also known as multi-homed servers, which enables a single machine to provide Web services for multiple domains or IP address or (hostname).  Apache enables administrators to define multiple directory index files, the default page to display when a Web client requests a directory URL. So, for example, the server can return index.html, index.htm, index.php, or execute a script named index.cgi when a client requests a directory URL.  Apache’s rich support for server logging, You can define custom log file formats and control the level of detail contained in each log entry.  Apache automatically adjusts to the capabilities of connected Web clients, a process called content negotiation. CU IDOL SELF LEARNING MATERIAL (SLM)

174 Internet Computing and Ethics Apache transmits a document according to a client’s request. Fig. 8.2: Apache Web Server Explanation  The Web client (a browser in this case) first performs a DNS lookup on the server name specified in the URL, obtains the IP address of the server, and then connects to port 80 at that IP address (or another port if the server is not using the default HTTP port). When the connection is established, the client sends an HTTP GET.  Request for the document in the URL, which could be, among other possibilities, a specific HTML document, an image, a script, or a directory listing.  After the server receives the request, it translates the document URL into a filename on the local system. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 175  Next, Apache evaluates whether or not the requested document is subject to some sort of access control and requests a user name and password from the client or rejects the request outright, depending on the type of access control in place. If the requested URL specifies a directory, Apache looks for the directory index page, index.html by default, and returns that document to the client. If the directory index page does not exist, Apache might send a directory listing in HTML format back to the client or send an error message, depending on how the server is configured.  The document can also be a specially written script, a CGI (Common Gateway Interface) script. In this case, Apache executes the script, if permitted to do so, and sends the results back to the Web Client Web Server  Connect port 80  GET document  SEND document  Close connection  Client. Finally, after Apache has transmitted the requested document and the client receives it, the client closes the connection and Apache writes an entry in one or more log files describing the request in varying levels of detail. How the WWW Works Fig. 8.3: WWW Works CU IDOL SELF LEARNING MATERIAL (SLM)

176 Internet Computing and Ethics 8.6 Summary Open-source software (OSS) is a type of computer software in which source code is released under a license in which the copyright holder grants users the rights to study, change, and distribute the software to anyone and for any purpose. Open-source software may be developed in a collaborative public manner. 8.7 Key Words/Abbreviations  Kernel: The kernel is the central module of an operating system (OS).  Shell: A Shell provides you with an interface to the Unix system. It gathers input from you and executes programs based on that input. When a program finishes executing, it displays that program’s output.  GNU: GNU’s Not UNIX 8.8 Learning Activity 1. Explain Distribution of GNU ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- 2. Explain Architecture ----------------------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------------------- 8.9 Unit End Questions (MCQ and Descriptive) A. Descriptive Types Questions 1. Explain what is GNU. 2. State different GNU distributions. 3. Explain Linux GNU operating system. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 1 177 4. State different features of Linux operating system. 5. State different distributions of Linux operating system. 6. Explain Apache GNU web server. 7. Explain how apache web server works with neat diagram. 8. Expand the terms: OSI, FLOSS, FSF, GNU, GPL, W3C and OSS? 9. Linux is perhaps the most widely known example of open source software. What are some others that people may not be aware of? 10. What for are these software used? 1. Linux 2. Morzilla Firefox 3. PHP 4. Python 5. Apache 6. MySql B. Multiple Choice/Objective Type Questions 1. In 1969, Ken Thompson and Dennis Ritchie wrote a small, general purpose operating system called ________. (a) Linux (b) Windows (c) UNIX (d) MAC 2. Unix Architecture is also called _________. (a) Kernel (b) Shell (c) Linux (d) GNU 3. Apache web server can be installed under most Unix variants and ________. (a) UNIX (b) Windows (c) Windows (d) Linux CU IDOL SELF LEARNING MATERIAL (SLM)

178 Internet Computing and Ethics 4. Microsoft developed a PC version of _________ called Xenix. (a) Unix (b) Linux (c) MAC (d) Windows 5. Linux supports ‘Samba Server’ for connectivity of _______ and Linux file sharing. (a) Linux (b) UNIX (c) MAC (d) Windows Answers 1. (c), 2. (a), 3. (b), 4. (a), 5. (d) 8.10 References 1. https://opensource.com/resources/what-open-source 2. https://www.debian.org/releases/wheezy/amd64/ch01s02.html.en 3. “Free and Open Source Software: Policy, Law, and Practice” by Noam Shemtov and Ian Walden 4. “Free/Open Source Software Development” by Stefan Koch. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 179 UNIT 9 INTRODUCTION TO OPEN SOURCE SOFTWARE - 2 Structure: 9.0 Learning Objectives 9.1 Introduction to Open Source Software 2 9.2 Strengths of Open Source Software – Open Source Software Assessment 9.3 Open Source Challenges 9.4 Open Source Community and Contribution 9.5 Summary 9.6 Key Words/Abbreviations 9.7 Learning Activity 9.8 Unit End Questions (MCQ and Descriptive) 9.9 References 9.0 Learning Objectives After studying this unit, you will be able to:  Describe the benefits and growth of open source technology  Discuss various challenges open source is facing  Explain various communities of open source and their contribution to the society CU IDOL SELF LEARNING MATERIAL (SLM)

180 Internet Computing and Ethics 9.1 Introduction to Open Source Software 2 1. Introduction Free and open source software (FOSS) has flourished in the past decade. GitHub, the leading repository for FOSS projects, now hosts more than 50 million projects (not all FOSS). These projects vary in software quality, project maturity, documentation, and support, and hence in their suitability for widespread use. Projects in their early stages aren’t mature enough for use outside the development team and the small band of brave souls who are willing to try almost any piece of software and accept the results. Over time, some of these projects will thrive, becoming stable and useful software, while other projects will be abandoned, with little or nothing to show for the effort. High quality open source software (FOSS) allows developers to incorporate reliable code in their applications and to focus their efforts on other product functions. FOSS software can also allow users to avoid the costs of proprietary software for use both within their organizations and in their products. While business decision makers, such as corporate IT managers, have a good understanding of the business models of traditional proprietary software vendors and how to work with them, open source software presents them with a new set of challenges. While some open source software is provided through vendors who offer regular releases, technical support, and professional services, other software may not have an established source of commercial support, even though the software itself is of good quality from a technical perspective. Evaluating open source software is quite different from evaluating traditional packaged applications and tools. Open source software can be freely used according to the terms of its license (see the Open Source Definition and open source licenses at http://www.opensource.org Traditional enterprise software vendors often provide pre-purchase support for a trial of the software. While some FOSS projects have commercial sources of training and support, most users of FOSS must seek support from online forums and documentation or, in some cases, from commercially published books. It’s still uncommon for industry analysts to include open source software in their product evaluation frameworks. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 181 2. The Business Readiness Rating For open source software to be widely accepted and used, it’s essential to simplify the evaluation and adoption process and to increase the comfort level of decision makers in choosing and using open source software. The Business Readiness Rating followed this well-established tradition, giving reviewers a framework to evaluate various characteristics of an open source project as they apply to that reviewer’s specific requirements. 2.1 Evaluation Categories From discussions with evaluators, we identified categories that are important for the open source evaluation process. We used those categories, along with those found in standard evaluation process documents.  Functionality: How well will the software meet the average user’s requirements?  Operational Software Characteristics: How secure is the software? How well does the software perform? How well does the software scale to a large environment? How good is the UI? How easy to use is the software for end-users? How easy is the software to install, configure, deploy, and maintain?  Support and Service: How well is the software component supported? Is there commercial and/or community support? Are there people and organizations that can provide training and consulting services?  Documentation: Is there adequate tutorial and reference documentation for the software?  Software Technology Attributes: How well is the software architected? How modular, portable, flexible, extensible, open, and easy to integrate is it? Are the design, the code, and the tests of high quality? How complete and error-free are they?  Community and Adoption: How well is the component adopted by community, market, and industry? How active and lively is the community for the software?  Development Process: What is the level of the professionalism of the development process and of the project organization as a whole? CU IDOL SELF LEARNING MATERIAL (SLM)

182 Internet Computing and Ethics The first four categories are quite similar to those used to evaluate proprietary, i.e., closed source, software. For the latter three topics, it is usually easier to obtain the data for an open source project. In an open source project, the size of the user community is important for assessing the availability of informal support available, and the speed with which a posted question might be answered or a problem in the code might be fixed. Open source projects contain extensive data on the size of the development team and the list of outstanding issues, as well as the number and frequency of releases, data that is difficult, if not impossible, to obtain from closed source products. In this way, the project data can be used in the evaluation process, thus adding a quantitative aspect to what has traditionally been an informal process. The term “Operational Software Characteristics” refers to those aspects of a software system that can be evaluated without access to the source code. It includes such quality-related areas as reliability, performance, scalability, usability, installability, security, and standards compliance. Evaluating “Software Technology Attributes” involves access to the source code to review software architecture, code quality, and internal documentation. In summary, the BRR was conceived as an open and standard model to assess software to increase the ease and correctness of evaluation, and accelerate the adoption of open source software. Such a model should include the crucial requirements of a good software rating model — that it be complete, simple, adaptable, and consistent. 2.2 Experience and Shortcomings of the BRR The BRR was used informally for many software evaluations since its initial release in 2005. As a manual process, it failed to gain much traction in the community. We attribute that situation primarily to the absence of automated tools to assist in the calculation, but also because of personal situations affecting team members. In addition, we found that business users of FOSS were rarely willing to take the time and effort to contribute their assessments back to the community, sometimes because they viewed their studies as having proprietary value to their companies. But the problems went well beyond those, and it took us some time to recognize them fully. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 183 First, in most cases, it was easy to estimate which FOSS projects would receive a high BRR score, based on high awareness of the project, along with existing documentation and commercial support. FOSS projects such as MySQL and OpenOffice were mature, well-supported projects, well-suited for organizational adoption. Finally, and most significantly, we found that people rely heavily on the opinions of others, including both peers and “experts”. The numeric score from the BRR would help them to form a short list of candidates for their use, but they then wanted to see reviews or experience reports for those candidates. All of these issues convinced us to take the project in a different direction while remaining focused on the goal of helping people find high-quality FOSS software that they could successfully adopt and use. 3. From BRR to OSSpal 3.1 Overview of Changes to the Model We changed the project name to OSSpal because we thought that the concept of finding FOSS was broader than just “business” and we wanted a clean break with the BRR approach. But the new name had another nice property, namely the double meaning of “pal”. In American and UK English, “pal” is an informal term for a friend, hence OSSpal. But the name was also chosen as a tribute to the late Murugan Pal, a key cofounder of the BRR project. There are several major differences between OSSpal and the BRR, along with numerous less significant changes. First, we removed the calculated score, based on our previously-noted observation that the single digit result was not valuable to users, particularly because it hid the details of the seven evaluation criteria, which in turn hid the lower level details of such key areas as operational characteristics and functionality. Second, given the difficulty that people have in finding candidate FOSS software, we decided to create short lists for them. In other words, we curated FOSS projects, using some quantitative measures, including the number of commits, the number of forks, and the number of subscribers. Note that these metrics are not specifically correlated to FOSS quality, but rather to the level of project activity. We leave the assessment of quality to the individual reviewers of a project. CU IDOL SELF LEARNING MATERIAL (SLM)

184 Internet Computing and Ethics The OSSpal approach differs from other evaluation approaches, in that it uses metrics to find qualifying FOSS projects in the various categories, but leaves the assessment of quality and functionality of individual projects to external reviewers, who may also add informal comments to their scores. 3.2 Implementation and the Quick Assessment Tool Implementation of a site for searching and adding projects, as well as adding user reviews, was a principal goal for the OSSpal project, especially since the absence of automated tools was a major shortcoming of the earlier BRR effort. We chose to build OSSpal on Drupal because using a CMS allowed us to greatly reduce the amount of coding needed and thus devote more effort to creating the content. In retrospect, we are very pleased with this decision. The Drupal core Taxonomy module was particularly helpful, as we were easily able to map software categories from the IDC taxonomy into a Drupal taxonomy, and thus associate FOSS projects with a category in the taxonomy. The quality attributes of FOSS projects can be classified into two general categories, hard metrics and soft metrics. Hard metrics are objective quantifiable measurements, covering most attributes in areas of software technology and development process. They can be collected efficiently through sending API calls to GitHub and Open Hub based on automated scripts. Soft metrics are subjective qualitative measurements, covering most attributes in areas of operational software characteristics as well as service and support. To make the collection process of the hard metrics more efficient, we developed a web service to gather quantifiable FOSS project information from Open Hub and GitHub to determine if a FOSS project is high quality. Instead of searching for project attributes manually, the relevant attributes are returned to the user after querying the project’s name in our web service. The implementation of the quick assessment tool uses the Flask web microframework, which takes the project name and uses the Open Hub and GitHub APIs to retrieve data which is returned in JSON format and then rendered as a web page. Figure 1 shows the data about project activity returned from a query on Electron. For now, we have used the quick assessment tool to screen 59 additional projects out of 101 candidate projects for inclusion on the site. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 185 9.2 Strengths of Open Source Software – Open Source Software Assessment Strengths of Open Source for the Enterprise Enterprises looking to make smart use of open source software have plenty of great reasons to do so. Selecting technologies means committing to solutions that will support an active, growing business over the long term, so it requires careful consideration and foresight. When an enterprise bets on the wrong horse, the result is often significantly higher development costs and reduced flexibility, both of which can stick around for the long haul. In the past decade, adoption of open source software at the enterprise level has flourished, as more businesses discover the considerable advantages open source solutions hold over their proprietary counterparts, and as the enterprise mentality around open source continues to shift. Enterprises looking to make smart use of open source software will find plenty of great reasons to do so. Here are just some of them. 1. Community: Open source solutions geared toward the enterprise often have thriving communities around them, bound by a common drive to support and improve a solution that both the enterprise and the community benefit from (and believe in). The global communities united around improving these solutions introduce new concepts and capabilities faster, better, and more effectively than internal teams working on proprietary solutions. 2. The power of the crowd: Many hands can deliver powerful outcomes. The collective power of a community of talented individuals working in concert delivers not only more ideas, but quicker development and troubleshooting when issues arise. 3. Transparency: Open source code means just that—you get full visibility into the code base, as well as all discussions about how the community develops features and addresses bugs. In contrast, proprietary code produced in secrecy may come with CU IDOL SELF LEARNING MATERIAL (SLM)

186 Internet Computing and Ethics unforeseen limitations and other unwelcome surprises. With open source, you’re protected against lock-in risks and can see exactly what you’re getting. 4. Reliability: Because there are more eyes on it, the reliability of open source code tends to be superior as well. With a worldwide community supporting a code base—rather than one team within one company—code is developed on online forums and guided by experts. The output tends to be extremely robust, tried, and tested code. In fact, open source code now powers about 90% of the internet and is being rapidly adopted across major enterprises for this reason. 5. Better security: As with reliability, open source software’s code is often more secure because it is much more thoroughly reviewed and vetted by the community (and any issues that do arise tend to be patched more diligently). Long a point of hesitation for enterprise adoption of open source, concerns about security just aren’t an issue today. 6. Merit-based: With open source code, the sole motivation behind decision making around the direction of a solution is to make the best, most useful product possible. Corporations making proprietary code usually put the bottom line foremost, which is not always ideal. When choosing a technology integral to your business, it’s best to ensure its agenda supports your own interests. 7. Faster time to market: Because open source solutions are openly available and can be explored for free, it’s often much faster to investigate options and get solutions off the ground. 8. Cost effective: Although open source solutions should be thought of as more than just free software, the fact that they require no licensing fees remains a decisive advantage when looking at the total cost of deploying a solution. 9. Freedom from lock-in: Proprietary software for core infrastructure increases the risk of becoming locked in by the vendor or technology. If this happens, enterprises can be at the mercy of vendors’ price increases and experience a lack of flexibility they can’t easily and readily escape. Enterprises should be careful to use true open source solutions, rather than those from providers that repackage open source software to include proprietary hooks. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 187 10. Becoming the norm:. The many large enterprises implementing open source solutions— and often making policies out of doing so—are bringing the strength of their resources to the communities that support open source solutions. 11. Lesser hardware costs: Since Linux and open source solutions are easily portable and compressed, it takes lesser hardware power to carry out the same tasks when compared to the hardware power it takes on servers, such as, Solaris, Windows or workstations. With this less hardware power advantage, you can even use cheaper or older hardware and still get the desired results. 12. High-quality software: Open source software is mostly high-quality software. When you use the open source software, the source code is available. Most open source software are well-designed. Open source software can also be efficiently used in coding. These reasons make open source software an ideal choice for organizations. 13. No vendor lock-in: IT managers in organizations face constant frustration when dealing with vendor lock-ins’. Lack of portability, expensive license fees and inability to customize software are some of the other disadvantages. Using open source software gives you more freedom and you can effectively address all these disadvantages. 14. Integrated management: By using open source software, you can benefit from integrated management. Open source software uses technologies, such as, common information model (CIM) and web based enterprise management (WBEM). These high- end technologies enable you to integrate and combine server, application, service and workstation management. This integration would result in efficient administration. 15. Simple license management: When you use open source software, you would no longer need to worry about licenses. Open source software enables you to install it several times and also use it from any location. You will be free from monitoring, tracking or counting license compliance. 16. Lower software costs: Using open source software can help you minimize your expenses. You can save on licensing fees and maintenance fees. The only expenses that you would encounter would be expenditure for documentation, media and support. CU IDOL SELF LEARNING MATERIAL (SLM)

188 Internet Computing and Ethics 17. Abundant support: You will get ample support when you use open source software. Open source support is mostly freely available and can be easily accessed through online communities. There are also many software companies that provide free online help and also varied levels of paid support. Most organization who create open source software solutions also provide maintenance and support. 18. Scaling and consolidating: Linux and open source software can be easily scaled. With varied options for clustering, load balancing and open source applications, such as email and database, you can enable your organization to either scale up and achieve higher growth or consolidate and achieve more with less. 9.3 Open Source Challenges 12 Challenges for Open Source Projects Open source is the combined contributions of millions of independent volunteers. This single concept brings with it a few inherent realities. In this article let’s look at a few potentially concerning points about the nature of open source contributions. One of the major, oft-touted benefits of open source software is the diverse, large, and ever ready army of developers contributing to the project. This can be an incredibly powerful argument when demonstrating the value of open source to a corporation. However, the larger the community and the bigger the pool of contributors the more opportunity there exists for problems or potential security risks. Let’s look at a few potential areas for problems and how good open source communities are protecting themselves from problems. More contributors Means More Risk This is a very real concern. When a community grows there are more developers contributing code to the project. As more developers contribute code and their solutions to problems there is a very real need to establish some guidelines for all contributors to follow. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 189 Establishing a standard for code submissions, requiring acceptance of a common license, and implementing peer review are three ways in which good open source projects help to mitigate the risk of problematic code. Establishing Coding Standards Code standards are a set of guidelines or rules which the open source project expects all code submissions to adhere to. Most open source projects of any size establish these standards, Joomla, OpenStack, Ubuntu are three such examples. Accepting a Common License Open source projects should always have a software license of some kind. This defines the distribution policies and the methods in which others can use the software. An important step to consider when allowing developers to contribute code is the license which should be applied to the proposed code. Implementing Peer Review When an open source project becomes large it becomes increasingly difficult for a limited number of core contributors to review each and every code request submitted. Very quickly this becomes a bottleneck for the entire project and slows the progress and growth of the software. Implementing peer review is the most common practice for fixing this bottleneck. This process requires other developers to understand the mission of the project and the quality to be achieved from all submissions. More contributors Means Less Security Shared Vision If a community is grown organically and carefully around the shared vision and goals of the organization then the community becomes much stronger than even a closed source corporation. They become more than individuals contributing code to a project. CU IDOL SELF LEARNING MATERIAL (SLM)

190 Internet Computing and Ethics Personal Ethics When a community is built on common goals and a vision which is shared by the contributors then personal beliefs are enforced and individual personal ethics are held strongly voluntarily. Open source provides a certain freedom. The idea that each volunteer is responsible for their own actions brings with it a sense of personal empowerment but also a sense of self-governing. Trust is not something to be bought. Trust is something shared. Trust empowers people. Open source communities are built on trust. More Contributors Means Less Progress Some would attempt to raise the argument that when the number of contributors grows too great then the progress of the project is slowed and ultimately the project suffers. The notion is a common one and relates well to an old phrase, “too many cooks spoil the soup.” While there is truth in the saying this is not an absolute truth and taking the proper steps will make this potential negative an incredible positive for open source communities. Listen and Focus Similar to what was discussed earlier, the establishing of a single shared vision and focus for the project will help developers and other contributors to keep momentum moving forwards towards accomplishing those goals. This means less time wasted in meetings and endless debates and discussions on the trivial matters and empowers contributors to spend their time focused on accomplishing the vision of the project. Yes, listening is important and ensuring the shared vision is an appropriate representation of the shared goals of the community requires discussion and debate; but this should be done occasionally rather then consistently. Once it’s been determined and agreed, it’s time to move on. The result is the larger the community the better for the project because more progress will be made. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 191 Complexity  Hard to adopt for the mass market, as the ecosystems are geared towards innovation more than usability. It’s unclear when a feature is fully ready for production versus in early proof of concept stage. Large open source communities find it hard to share a common vision, and this causes a real slowdown of progress.  The speed of change is challenging. The incredible diversity of projects. Good commercial offering throughout entire stack. Longer term challenge back to monetization. Meaningful commercial opportunities around open source. Relying on charity will limit options.  Especially in their early years, most open source projects were expert tools from developers for developers. They were not necessarily built so that they can be dropped into a production environment out-of-the-box. Especially for large infrastructure software projects, having an easy and lightweight way to handle continuous operations and support frictionless application development for many teams is a big challenge, in particular for companies that do not have big IT infrastructure teams.  There is a learning curve in an enterprise environment, so you can’t just adopt open source and expect everything to be smooth from day one.  Implementing open source GIS approaches has traditionally demanded DIY capabilities that have placed it beyond the reach of many organizations. In addition, the transition to an open system historically required an abrupt, rip-and-replace effort that is both daunting and risky.  Adoption of open source has grown rapidly due to two key factors: free license cost and great innovation and creativity from the open source community. The era of proprietary-only IT stacks has ended. However, the innovation happening in open source caused a lot of technologies to overlap and inhibit enterprises from achieving business outcomes.  One of the outcomes resulting from the shift away from data-at-rest is the demise of Lambda architecture. With enterprise-ready data-in-motion, an increasing number of CU IDOL SELF LEARNING MATERIAL (SLM)

192 Internet Computing and Ethics businesses no longer run two pipelines for the same product. With IoT and edge processing becoming more scalable and operable, message buses are being used to communicate between various compute and storage grids. Analytics at the edge using high performing data-in-motion stacks are gaining traction. In the future, data lakes will mainly be used for archival and historical analytics.  Use of open source technologies without a hardened stack requires expertise that is very rare. Stitching together open source products barely works in engineering heavy areas like Silicon Valley, Bengaluru and Beijing. For open source to be mass market and commoditized for use across the world, we need a new set of products and stack that focus on business outcomes and enables enterprises to use their current expertise. Developing products based on open source technologies needs to be much simpler. License Issues  A lot of organizations do not understand Open Source and the licensing obligation that goes along with it. You must give credit to the OSS you are using. With freedom comes obligation. If you take the code and make changes you are obligated to share those changes with the community. Need to be aware of the potential technical debt which can accrue very quickly. You need to take the time to update tools and code. Spend the time and effort necessary to build changes into the project. There’s more work than just an initial patch.  While clear open source licenses such as Apache and MIT are crucial because they provide a certain degree of legal certainty to companies that consume open source, there are still legal matters around open source that are not entirely resolved. Patent trolls can be a bigger threat to companies that produce open source because they are more exposed than those that do not provide transparency about their code.  License terms. Apache 2.0 license. Afaro GPL license. We’ve had no major concerns. Have heard concerns from MongoDB forced to switch from open source to enterprise due to Afaro license. Litigious aspects of certain companies like Oracle. API copyright and fair use. May have a chilling on open source projects. CU IDOL SELF LEARNING MATERIAL (SLM)

Introduction to Open Source Software - 2 193 9.4 Open Source Community and Contribution 10 Ways to Contribute to The Open Source Community Open source software has helped accelerated the development of information technology, generating opportunities never seen before. Just think about startups and small businesses using free CMS such as Drupal or WordPress, or desktop environments provided by Linux distros that we can use for free. Open source software we can download from places such as Sourceforge, GitHub, or the WordPress Plugin Repository are usually written and maintained by volunteer developers in their free time. If we’ve ever used an open source software, we are not just simply an end user, but also a member of the Open Source Community. As the success of the movement highly depends on its users, it’s important to think of open source as our own project, and ponder about what we can do to help improve open source products (software, plugins, themes, code snippets, blogging platforms, operating systems, etc.) that we use. With Christmas is coming, in this post we take a look at how we can give back to the Open Source Community, as much or as little as we have the time and the capacity for. 1. Give positive reviews to our favourite software As open source developers usually are not financially compensated, they need to be motivated otherwise. Many of them have sadly experienced that users tend to give negative reviews much more easily than positive ones. This tendency is usually seen as a result of basic human psychology, as an angry user confused by a non-functional software will comment more quickly on quality than someone whose needs have been satisfied, but it’s worth to think about it from another aspect too. Getting little positive reviews can be extremely demotivating to open source developers, so if we find a good theme, plugin, or software, it’s always a good idea to go back to its site of origin, and leave a positive feedback to the devs. CU IDOL SELF LEARNING MATERIAL (SLM)

194 Internet Computing and Ethics Even if they don’t have the time to reply, they will surely appreciate it. Christmas can be a good time to surprise the authors of our favourite plugins and themes with a stunning review as a gift. 2. Ask questions before giving negative reviews Despite all good will, it frequently happens that something doesn’t work as we’ve imagined. It’s not necessarily the issue of the software, but it can also originate from the problems of our local environment, the incompatibility of other software that we use, and many other things. Leaving a negative review needs to be seen as a last resort if we want a thriving Open Source Community. We always need to remember that we get the software we need for free, so we are not that much in the role of a customer but rather of a peer. Online platforms where we can download open source software usually provide some ways to contact the developers, so before leaving that witty 1 star review, it’s always a good idea to describe the issue in detail (more below), and ask questions in the support forum. In most cases developers will quickly reply. 3. Help developers easily reproduce bugs Whether we have access to a support forum, or a bug tracking system, or we just contact the developers directly by email or via a social media site, it’s always crucial to describe our problem in detail. Good bug reporting is a form of art of its own, and can tremendously help developers, if done correctly, so it’s worth the give a thought to how to compose it properly. Developers need to know step by step what we did before encountering the bug, how the malfunction exactly happened, what other software/plugins run at the same time, and in some cases the platform, operational system, and device we used. Bug reports and reviews that only tell that “this plugin sucks” or “worthless crap” are not particularly useful. CU IDOL SELF LEARNING MATERIAL (SLM)


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook