Determining the Remote Client Perceived Response Time from Live Packet Streams

Total Page:16

File Type:pdf, Size:1020Kb

Determining the Remote Client Perceived Response Time from Live Packet Streams ksniffer: Determining the Remote Client Perceived Response Time from Live Packet Streams David P. Olshefski1,2, Jason Nieh1 and Erich Nahum2 1Columbia University and 2IBM T.J Watson Research [email protected], [email protected], [email protected] Abstract Server farm management systems that allocate re- sources on-demand to meet specified response time goals As dependence on the World Wide Web continues to are receiving much attention. The ability of a Web host- grow, so does the need for businesses to have quantitative ing center to move CPU cycles, machines, bandwidth measures of the client perceived response times of their and storage from a hosted Web site that is meeting its Web services. We present ksniffer, a kernel-based traf- latency goal to one that is not, is a key requirement for fic monitor capable of determining pageview response an automated management system. Such allocation de- times as perceived by remote clients, in real-time at giga- cisions must be based on accurate measurements. Over- bit traffic rates. ksniffer is based on novel, online mech- allocating resources to one hosted Web site results in an anisms that take a “look once, then drop” approach to overcharge to that customer and a reduction in the avail- packet analysis to reconstruct TCP connections and learn able physical resources left to meet the needs of the oth- client pageview activity. These mechanisms are designed ers. Under-allocation results in poor response time and to operate accurately with live network traffic even in the unsatisfied Web site users. The ability to base these al- presence of packet loss and delay, and can be efficiently location decisions on a measure that is relevant to both implemented in kernel space. This enables ksniffer to the Web site owner and the end user of the Web site is a perform analysis that exceeds the functionality of cur- competitive advantage. rent traffic analyzers while doing so at high bandwidth Unfortunately, obtaining an accurate measure of the rates. ksniffer requires only to passively monitor network client perceived response time is non-trivial. Current ap- traffic and can be integrated with systems that perform proaches include active probing from geographically dis- server management to achieve specified response time tributed monitors, instrumenting HTML Web pages with goals. Our experimental results demonstrate that ksnif- JavaScript, offline analysis of packet traces, and instru- fer can run on an inexpensive, commodity, Linux-based menting Web servers to measure application-level per- PC and provide online pageview response time measure- formance or per connection performance. All of these ments, across a wide range of operating conditions, that approaches fall short, in one area or another, in terms of are within five percent of the response times measured at accuracy, cost, scalability, usefulness of information col- the client by detailed instrumentation. lected, and real-time availability of measurements. We have created ksniffer, an online server-side traffic 1 Introduction monitor that combines passive packet capture with fast For many businesses, the World Wide Web is a highly online mechanisms to accurately determine client per- competitive environment. Customers seeking quality on- ceived pageview response times on a per pageview basis. line services have choices, and often the characteristic ksniffer uses a model of TCP retransmission and expo- that distinguishes a successful site from the rest is per- nential backoff that accounts for latency due to connec- formance. Clients are keenly aware when response time tion setup overhead and network packet loss. It combines exceeds acceptable thresholds and are not hesitant to this model with higher level online mechanisms that use simply take their business elsewhere. It is therefore ex- access history and HTTP referer information when avail- tremely important for businesses to know the response able to learn relationships among Web objects to corre- time that their clients are experiencing. This places them late connections and Web objects to determine pageview in a difficult position: having to obtain accurate client response times. perceived response time metrics in a timely, cost effec- ksniffer mechanisms take a “look once, then drop” ap- tive manner so that problems can be immediately iden- proach to packet analysis, use simple hashing data struc- tified and fixed. For larger Web sites, the requirement tures to match Web objects to pageviews, and can be of having a scalable solution is key; in addition, the ca- efficiently implemented in kernel space. Furthermore, pability to transmit this information to an online cluster ksniffer only looks at TCP/IP and HTTP protocol header management system is also a necessity. information and does not need to parse any HTTP data USENIX Association OSDI ’04: 6th Symposium on Operating Systems Design and Implementation 333 payload. This enables ksniffer to perform higher level ksniffer Machine Web pageview analysis effectively online in the presence Local Analysis of high data rates; it can monitor traffic at gigabit line user mmap kernel speeds while running on an inexpensive, commodity PC. Socket These mechanisms enable ksniffer to provide accurate (a) results across a wide range of operating conditions, in- TCP filtering config files protocol (b) cluding high load, connection drops, and packet loss. In analysis IP these cases, obtaining accurate performance measures is most crucial because Web server and network resources device independent may be overloaded. ksniffer has several advantages over other approaches. device driver device driver Remote First, ksniffer does not require any modifications to Web packet stream Analysis pages, Web servers, or browsers, making deployment Figure 1: ksniffer architecture. easier and faster. This is particularly important for Web hosting companies responsible for maintaining the in- as well as a platform for research into traffic analysis. frastructure surrounding a Web site but are often not Figure 1 depicts the ksniffer architecture. permitted to modify the customer’s server machines or ksniffer is designed to be implemented as a set of dy- content. Second, ksniffer captures network character- namically loadable kernel modules that reside above the istics such as packet loss and delay, aiding in distin- network device independent layer in the operating sys- guishing network problems from server problems. Third, tem. Its device independence makes it easy to deploy ksniffer measures the behavior of every session for ev- on any inexpensive, commodity PC without special NIC ery real client who visits the Web site. Therefore, it hardware or device driver modifications. ksniffer appears does not fall prey to biases that arise when sampling to the kernel simply as another network protocol layer from a select, predefined set of client monitoring ma- within the stack and is treated no different than TCP/IP, chines that have better connectivity, and use different which is shown for comparison in Figure 1. ksniffer Web browser software, than the actual users of the Web monitors bidirectional traffic and looks at each packet site. Fourth, ksniffer can obtain metrics for any Web once, extracts any TCP/IP or HTTP header information content, not just HTML. Fifth, ksniffer performs online that is present, then discards the packet. The in-kernel analysis of high bandwidth, live packet traffic instead of implementation exploits several performance advantages offline analysis of traces stored on disk, bypassing the such as zero-copy buffer management, eliminated sys- need to manage large amounts of disk storage to store tem calls, and reduced context switches [16, 17]. ksniffer packet traces. More importantly, ksniffer can provide does not produce packet trace log files, but can read con- performance measurements to Web servers in real-time, figuration parameters and write debugging information enabling them to respond immediately to performance to disk from kernel space. problems through diagnosis and resource management. This design gives ksniffer a three to four fold improve- This paper presents the design and implementation of ment in performance over user space systems that copy ksniffer. Section 2 presents an overview of the ksniffer every packet to user space. Each packet could potentially architecture. Section 3 describes the ksniffer algorithms impact the response time measurement, yet ksniffer only for reconstructing TCP connections and pageview activ- examines a small percentage of the bytes within each ities. Section 4 discusses how ksniffer handles less ideal packet (TCP/IP fields and the HTTP headers, if present). operating conditions, such as packet loss and server over- By executing in kernel space, ksniffer avoids transferring load. Section 5 presents experimental results quantifying large amounts of irrelevant bytes to user space, saving the accuracy and scalability of ksniffer under various op- CPU cycles and memory bandwidth. erating conditions. We measure the accuracy of ksniffer ksniffer provides a low overhead shared memory in- against measurements obtained at the client and compare terface (similar to MAGNET [13]) to export results (not the scalability of ksniffer against user-space packet anal- packets) to user space. This allows more sophisticated ysis systems. Section 6 discusses related work. Finally, analysis that is less performance critical to be done in we present some concluding remarks and directions for user-level programs without additional system
Recommended publications
  • Causal Inference in the Presence of Interference in Sponsored Search Advertising
    Causal Inference in the Presence of Interference in Sponsored Search Advertising Razieh Nabi∗ Joel Pfeiffer Murat Ali Bayir Johns Hopkins University Microsoft Bing Ads Microsoft Bing Ads [email protected] [email protected] [email protected] Denis Charles Emre Kıcıman Microsoft Bing Ads Microsoft Research [email protected] [email protected] Abstract In classical causal inference, inferring cause-effect relations from data relies on the assumption that units are independent and identically distributed. This assumption is violated in settings where units are related through a network of dependencies. An example of such a setting is ad placement in sponsored search advertising, where the clickability of a particular ad is potentially influenced by where it is placed and where other ads are placed on the search result page. In such scenarios, confounding arises due to not only the individual ad-level covariates but also the placements and covariates of other ads in the system. In this paper, we leverage the language of causal inference in the presence of interference to model interactions among the ads. Quantification of such interactions allows us to better understand the click behavior of users, which in turn impacts the revenue of the host search engine and enhances user satisfaction. We illustrate the utility of our formalization through experiments carried out on the ad placement system of the Bing search engine. 1 Introduction In recent years, advertisers have increasingly shifted their ad expenditures online. One of the most effective platforms for online advertising is search engine result pages. Given a user query, the search engine allocates a few ad slots (e.g., above or below its organic search results) and runs an auction among advertisers who are bidding and competing for these slots.
    [Show full text]
  • Web Security
    CSE343/443 Lehigh University Fall 2015 Web Security Presenter: Yinzhi Cao Slides Inherited and Modified from Prof. John Mitchell Reported Web Vulnerabilities "In the Wild" 1200 1000 800 Input Validation 600 CSRF XSS SQLi 400 200 0 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 Web application vulnerabilities Goals of web security Safely browse the web n Users should be able to visit a variety of web sites, without incurring harm: w No stolen information (without user’s permission) w Site A cannot compromise session at Site B Secure web applications n Applications delivered over the web should have the same security properties we require for stand- alone applications Network security Network Attacker System Intercepts and controls network communication Alice Web security System Web Attacker Sets up malicious site visited by victim; no control of network Alice Web Threat Models Web attacker n Control attacker.com n Can obtain SSL/TLS certificate for attacker.com n User visits attacker.com w Or: runs attacker’s Facebook app Network attacker n Passive: Wireless eavesdropper n Active: Evil router, DNS poisoning Malware attacker n Attacker escapes browser isolation mechanisms and run separately under control of OS Malware attacker Browsers (like any software) contain exploitable bugs n Often enable remote code execution by web sites n Google study: [the ghost in the browser 2007] w Found Trojans on 300,000 web pages (URLs) w Found adware on 18,000 web pages (URLs) Even if browsers were bug-free, still lots of vulnerabilities
    [Show full text]
  • Web Application Security
    Web Application Security * Original slides were prepared by John Mitchell Goals of web security Safely browse the web n Users should be able to visit a variety of web sites, without incurring harm: w No stolen information w Site A cannot compromise session at Site B Support secure web applications n Applications delivered over the web should be able to achieve the same security properties as stand- alone applications Web security threat model System Web Attacker Sets up malicious site visited by victim; no control of network Alice Network security threat model Network Attacker System Intercepts and controls network communication Alice System Web Attacker Alice Network Attacker System Alice Web Threat Models Web attacker n Control attacker.com n Can obtain SSL/TLS certificate for attacker.com n User visits attacker.com w Or: runs attacker’s Facebook app, etc. Network attacker n Passive: Wireless eavesdropper n Active: Evil router, DNS poisoning Malware attacker n Attacker escapes browser isolation mechanisms and run separately under control of OS Malware attacker Browsers may contain exploitable bugs n Often enable remote code execution by web sites n Google study: [the ghost in the browser 2007] w Found Trojans on 300,000 web pages (URLs) w Found adware on 18,000 web pages (URLs) NOT OUR FOCUS Even if browsers were bug-free, still lots of vulnerabilities on the web n XSS, SQLi, CSRF, … WEB PROGRAMMING BASICS URLs Global identifiers of network-retrievable documents Example: http://columbia.edu:80/class?name=4995#homework Protocol Fragment
    [Show full text]
  • HTTP2 Explained
    HTTP2 Explained Daniel Stenberg Mozilla Corporation [email protected] ABSTRACT credits to everyone who helps out! I hope to make this document A detailed description explaining the background and problems better over time. with current HTTP that has lead to the development of the next This document is available at http://daniel.haxx.se/http2. generation HTTP protocol: HTTP 2. It also describes and elaborates around the new protocol design and functionality, 1.3 License including some implementation specifics and a few words about This document is licensed under the the future. Creative Commons Attribution 4.0 This article is an editorial note submitted to CCR. It has NOT license: been peer reviewed. The author takes full responsibility for this http://creativecommons.org/licenses/by/4.0/ article’s technical content. Comments can be posted through CCR Online. 2. HTTP Today Keywords HTTP 1.1 has turned into a protocol used for virtually everything HTTP 2.0, security, protocol on the Internet. Huge investments have been done on protocols and infrastructure that takes advantage of this. This is taken to the 1. Background extent that it is often easier today to make things run on top of HTTP rather than building something new on its own. This is a document describing http2 from a technical and protocol level. It started out as a presentation I did in Stockholm in April 2014. I've since gotten a lot of questions about the contents of 2.1 HTTP 1.1 is Huge that presentation from people who couldn't attend, so I decided to When HTTP was created and thrown out into the world it was convert it into a full-blown document with all details and proper probably perceived as a rather simple and straight-forward explanations.
    [Show full text]
  • Web Security 1
    Web Security 1 Prof. Raluca Ada Popa Oct 16, 2017 Some content adapted from materials by David Wagner or Dan Boneh Today • We need to cover same-origin policy, cookie policy, CSRF and XSS, But do not need to cover weB injection • ScriBe: Dayeol • Presenter: Rohan, Michael HTTP (Hypertext Transfer Protocol) A common data communication protocol on the weB CLIENT BROWSER WEB SERVER safebank.com/account.html HTTP REQUEST: Alice GET /account.html HTTP/1.1 Smith Host: www.safebank.com Accounts Bill Pay Mail Transfers HTTP RESPONSE: HTTP/1.0 200 OK <HTML> . </HTML> URLs GloBal identifiers of network-retrievaBle resources Example: http://safeBank.com:81/account?id=10#statement Protocol Hostname Query Fragment Port Path HTTP CLIENT BROWSER WEB SERVER safebank.com/account.html HTTP REQUEST: Alice GET /account.html HTTP/1.1 Smith Host: www.safebank.com Accounts Bill Pay Mail Transfers HTTP RESPONSE: HTTP/1.0 200 OK <HTML> . </HTML> HTTP Request GET: no Method Path HTTP version Headers side effect GET /index.html HTTP/1.1 Accept: image/gif, image/x-bitmap, POST: image/jpeg, */* Accept-Language: en possiBle Connection: Keep-Alive User-Agent: Chrome/21.0.1180.75 (Macintosh; side effect Intel Mac OS X 10_7_4) Host: www.safebank.com Referer: http://www.google.com?q=dingbats Blank line Data – none for GET HTTP CLIENT BROWSER WEB SERVER safebank.com/account.html HTTP REQUEST: Alice GET /account.html HTTP/1.1 Smith Host: www.safebank.com Accounts Bill Pay Mail Transfers HTTP RESPONSE: HTTP/1.0 200 OK <HTML> . </HTML> HTTP Response HTTP version Status code
    [Show full text]
  • Improving Packet Caching Scalability Through the Concept Of
    IMPROVING PACKET CACHING SCALABILITY THROUGH THE CONCEPT OF AN EXPLICIT END OF DATA MARKER A Thesis Submitted to the Graduate School of the University of Notre Dame in Partial Fulfillment of the Requirements for the Degree of Master of Science in Computer Science and Engineering by Xiaolong Li, B.S., M.S. ________________________________ Aaron Striegel, Director Graduate Program in Computer Science and Engineering Notre Dame, Indiana July 2006 c Copyright by Xiaolong Li 2006 All Rights Reserved Improving Packet Caching Scalability Through the Concept of an Explicit End of Data Marker Abstract by Xiaolong Li The web has witnessed an explosion of dynamic content generation to provide web users with an interactive and personalized experience. While traditional web caching techniques work well when redundancy occurs on an object-level basis (page, image, etc.), the use of dynamic content presents unique challenges. Although past work has addressed mechanisms for detecting redundancy despite dynamic content, the scalability of such techniques is limited. In this thesis, an effective and highly scalable approach, Explicit End of Data (EEOD) is presented, which allows the content designer to easily signal bound- aries between cacheable and non-cacheable content. EEOD provides application- to-stack mechanisms to guarantee separation of packets with the end goal of sim- plifying packet-level caching mechanisms. Most importantly, EEOD does not re- quire client-side modifications and can function in a variety of server-side/network deployment modes. Additionally, experimental studies are presented, showing EEOD offers 25% and 30% relative improvements in terms of bandwidth efficiency and retrieval time over current approaches in the literature.
    [Show full text]
  • Understanding Attention Metrics
    Understanding Attention Metrics sponsored by: 01 introduction For years and years we’ve been told that if the click isn’t on its deathbed, it should be shivved to death immediately. While early display ads in the mid-90s could boast CTRs above 40%, the likely number you’ll see attached to a campaign these days is below 0.1%. But for some reason, even in 2015, click-through rate remains as vital to digital ad measurement although its importance is widely ridiculed. Reliance on the click means delivering unfathomable amounts of ad impressions to users, which has hyper-inflated the value of the pageview. This has led to a broken advertising system that rewards quantity over quality. Instead of building audiences, digital publishers are chasing traffic, trying to lure users to sites via “clickbait” headlines where the user is assaulted with an array of intrusive ad units. The end effect is overwhelming, ineffective ads adjacent to increasingly shoddy content. However, the rise of digital video and viewability have injected linear TV measurement capabilities into the digital space. By including time in its calculation, viewability has opened a conversation into the value of user attention. It has introduced metrics with the potential to assist premium publishers in building attractive audiences; better quantify exposure for advertisers; and ultimately financially reward publishers with more engaged audiences. This is a new and fast developing area, but one where a little education can go a long way. In addition to describing current attention metrics, this playbook will dive into what you should look for in an advanced metrics partner and how to use these metrics in selling inventory and optimizing campaign performance.
    [Show full text]
  • Php Server Http Referer
    Php Server Http Referer Dorian view partly if deprivable Gunter riled or dilacerates. Sometimes retired Randi wheedle her Klansman rather, but bright Aubrey sell unfriendly or remigrated iwis. Petrological and coldish Caleb announcing: which Ethelred is paraffinic enough? The new approach though has some view this request headers of injection in php people out on. Returns a typical usage of a newsletter, often responsible for? Restricting access that is file path info is possible thing about your visitor know where a video calls out there was? There view be some incompatibility going today with every particular setup. HTTPREFERER and parsestr in a Snippet MODX. Learn how Cloudflare handles HTTP request headers to appropriate origin web server and what headers Cloudflare adds to proxied requests. This do a tube while __DIR__ give the realpath. Specify an ssh session or more in a website out how would give you intend on his choice; servers using csrf token are you. In most reverse proxy setup the web server forwards the HTTP request it received from the. With Contact Form 7 you know capture this referer page and was it to. Static-only applications serve files through each WebFaction server's front-end. Is then any difference between sale a lead tracking? IfissetSERVER'HTTPREFERER' return false refererhost. The term Referer is used due only a spelling error its the original HTTP. Echo filegetcontents'httpmyotherdomaincom' I created an non Codeigniter script at myotherdomaincomindexphp and added this code. There it actually nine HTTP methods defined by the HTTP specification, but many love them affect not widely used or supported.
    [Show full text]
  • Linux Performance Tools
    Linux Performance Tools Brendan Gregg Senior Performance Architect Performance Engineering Team [email protected] @brendangregg This Tutorial • A tour of many Linux performance tools – To show you what can be done – With guidance for how to do it • This includes objectives, discussion, live demos – See the video of this tutorial Observability Benchmarking Tuning Stac Tuning • Massive AWS EC2 Linux cloud – 10s of thousands of cloud instances • FreeBSD for content delivery – ~33% of US Internet traffic at night • Over 50M subscribers – Recently launched in ANZ • Use Linux server tools as needed – After cloud monitoring (Atlas, etc.) and instance monitoring (Vector) tools Agenda • Methodologies • Tools • Tool Types: – Observability – Benchmarking – Tuning – Static • Profiling • Tracing Methodologies Methodologies • Objectives: – Recognize the Streetlight Anti-Method – Perform the Workload Characterization Method – Perform the USE Method – Learn how to start with the questions, before using tools – Be aware of other methodologies My system is slow… DEMO & DISCUSSION Methodologies • There are dozens of performance tools for Linux – Packages: sysstat, procps, coreutils, … – Commercial products • Methodologies can provide guidance for choosing and using tools effectively • A starting point, a process, and an ending point An#-Methodologies • The lack of a deliberate methodology… Street Light An<-Method 1. Pick observability tools that are: – Familiar – Found on the Internet – Found at random 2. Run tools 3. Look for obvious issues Drunk Man An<-Method • Tune things at random until the problem goes away Blame Someone Else An<-Method 1. Find a system or environment component you are not responsible for 2. Hypothesize that the issue is with that component 3. Redirect the issue to the responsible team 4.
    [Show full text]
  • WTF IS NATIVE ADVERTISING? Introduction
    SPONSORED BY IS NATIVE ADVERTISING? Table of Contents Introduction WTF is Native 3 14 Programmatic? Nomenclature The Native Ad 4 16 Triumvirate 5 Decision tree 17 The Ad Man 18 The Publisher Issues Still Plaguing 19 The Platform 6 Native Advertising Glossary 7 Scale 20 8 Metrics 10 Labelling 11 The Church/State Divide 12 Credibility 3 / WTF IS NATIVE ADVERTISING? Introduction In 2013, native advertising galloped onto the scene like a masked hero, poised to hoist publishers atop a white horse, rescuing them from the twin menaces of programmatic advertising and sagging CPMs. But who’s really there when you peel back the mask? Native advertising is a murky business. Ad executives may not consider it advertising. Editorial departments certainly don’t consider it editorial. Even among its practitioners there is debate — is it a format or is it a function? Publishers who have invested in the studio model position native advertising as the perfect storm of context, creative capital and digital strategy. For platforms, it may be the same old banner advertising refitted for the social stream. Digiday created the WTF series to parse murky digital marketing concepts just like these. WTF is Native Advertising? Keep reading to find out..... DIGIDAY 4 / WTF IS NATIVE ADVERTISING? Nomenclature Native advertising An advertising message designed Branded content Content created to promote a Content-recommendation widgets Another form to mimic the form and function of its environment brand’s products or values. Branded content can take of native advertising often used by publishers, these a variety of formats, not all of them technically “native.” appear to consumers most often at the bottom of a web Content marketing Any marketing messages that do Branded content placed on third-party publishing page with lines like “From around the web,” or “You not fit within traditional formats like TV and radio spots, sites or platforms can be considered native advertising, may also like.” print ads or banner messaging.
    [Show full text]
  • Google Analytics Education and Skills for the Professional Advertiser
    AN INDUSTRY GUIDE TO Google Analytics Education and Skills For The Professional Advertiser MODULE 5 American Advertising Federation The Unifying Voice of Advertising Google Analytics is a freemium service that records what is happening at a website. CONTENTS Tracking the actions of a website is the essence of Google MODULE 5 Google Analytics Analytics. Google Analytics delivers information on who is visiting a Learning Objectives .....................................................................................1 website, what visitors are doing on that website, and what Key Definitions .......................................................................................... 2-3 actions are carried out at the specific URL. Audience Tracking ................................................................................... 4-5 Information is the essence of informed decision-making. The The A,B,C Cycle .......................................................................................6-16 website traffic activity data of Google Analytics delivers a full Acquisition understanding of customer/visitor journeys. Behavior Focus Google Analytics instruction on four(4) Conversions basic tenets: Strategy: Attribution Model ............................................................17-18 Audience- The people who visit a website Case History ........................................................................................... 19-20 Review ..............................................................................................................
    [Show full text]
  • Why Open Source Software?
    Why Open Source Software / Free Software (OSS/FS)? Look at the Numbers! David A. Wheeler http://www.dwheeler.com/contactme.html Revised as of November 7, 2004 This paper provides quantitative data that, in many cases, using open source software / free software is a reasonable or even superior approach to using their proprietary competition according to various measures. This paper’s goal is to show that you should consider using OSS/FS when acquiring software. This paper examines market share, reliability, performance, scalability, security, and total cost of ownership. It also has sections on non- quantitative issues, unnecessary fears, OSS/FS on the desktop, usage reports, governments and OSS/FS, other sites providing related information, and ends with some conclusions. An appendix gives more background information about OSS/FS. You can view this paper at http://www.dwheeler.com/oss_fs_why.html (HTML format). Palm PDA users may wish to use Plucker to view this. A short briefing based on this paper is also available in PDF and Open Office Impress formats (for the latter, use Open Office Impress). Old archived copies and a list of changes are also available. 1. Introduction Open Source Software / Free Software (OSS/FS) has risen to great prominence. Briefly, OSS/FS programs are programs whose licenses give users the freedom to run the program for any purpose, to study and modify the program, and to redistribute copies of either the original or modified program (without having to pay royalties to previous developers). This goal of this paper is to show that you should consider using OSS/FS when you’re looking for software, based on quantitative measures.
    [Show full text]