The GNU Affero General Public License ( GNU AGPL ) is a free , copyleft license published by the Free Software Foundation in November 2007, and based on the GNU GPL version 3 and the Affero General Public License (non-GNU).
54-753: It is intended for software designed to be run over a network , adding a provision requiring that the corresponding source code of modified versions of the software be prominently offered to all users who interact with the software over a network. The Open Source Initiative approved the GNU AGPLv3 as an open source license in March 2008 after the company Funambol submitted it for consideration through its CEO Fabrizio Capobianco . In 2000, while developing an e-learning and e-service business model, Henry Poole met with Richard Stallman in Amsterdam and discussed
108-756: A protocol stack , often constructed per the OSI model, communications functions are divided up into protocol layers, where each layer leverages the services of the layer below it until the lowest layer controls the hardware that sends information across the media. The use of protocol layering is ubiquitous across the field of computer networking. An important example of a protocol stack is HTTP (the World Wide Web protocol) running over TCP over IP (the Internet protocols) over IEEE 802.11 (the Wi-Fi protocol). This stack
162-492: A branch of computer science , computer engineering , and telecommunications , since it relies on the theoretical and practical application of the related disciplines. Computer networking was influenced by a wide array of technological developments and historical milestones. Computer networks enhance how users communicate with each other by using various electronic methods like email, instant messaging, online chat, voice and video calls, and video conferencing. Networks also enable
216-401: A computer network can include personal computers , servers , networking hardware , or other specialized or general-purpose hosts . They are identified by network addresses and may have hostnames . Hostnames serve as memorable labels for the nodes and are rarely changed after initial assignment. Network addresses serve for locating and identifying the nodes by communication protocols such as
270-503: A diverse set of networking capabilities. The protocols have a flat addressing scheme. They operate mostly at layers 1 and 2 of the OSI model. For example, MAC bridging ( IEEE 802.1D ) deals with the routing of Ethernet packets using a Spanning Tree Protocol . IEEE 802.1Q describes VLANs , and IEEE 802.1X defines a port-based network access control protocol, which forms the basis for the authentication mechanisms used in VLANs (but it
324-440: A large, congested network into an aggregation of smaller, more efficient networks. A router is an internetworking device that forwards packets between networks by processing the addressing or routing information included in the packet. The routing information is often processed in conjunction with the routing table . A router uses its routing table to determine where to forward packets and does not require broadcasting packets which
378-440: A multi-port bridge. Switches normally have numerous ports, facilitating a star topology for devices, and for cascading additional switches. Bridges and switches operate at the data link layer (layer 2) of the OSI model and bridge traffic between two or more network segments to form a single local network. Both are devices that forward frames of data between ports based on the destination MAC address in each frame. They learn
432-432: A network, but the topology of interconnections of a network can significantly affect its throughput and reliability. With many technologies, such as bus or star networks, a single failure can cause the network to fail entirely. In general, the more interconnections there are, the more robust the network is; but the more expensive it is to install. Therefore, most network diagrams are arranged by their network topology which
486-457: A repeater hub assists with collision detection and fault isolation for the network. Hubs and repeaters in LANs have been largely obsoleted by modern network switches. Network bridges and network switches are distinct from a hub in that they only forward frames to the ports involved in the communication whereas a hub forwards to all ports. Bridges only have two ports but a switch can be thought of as
540-403: A standard voice telephone line. Modems are still commonly used for telephone lines, using a digital subscriber line technology and cable television systems using DOCSIS technology. A firewall is a network device or software for controlling network security and access rules. Firewalls are inserted in connections between secure internal networks and potentially insecure external networks such as
594-877: A transmission medium. Power line communication uses a building's power cabling to transmit data. The following classes of wired technologies are used in computer networking. Network connections can be established wirelessly using radio or other electromagnetic means of communication. The last two cases have a large round-trip delay time , which gives slow two-way communication but does not prevent sending large amounts of information (they can have high throughput). Apart from any physical transmission media, networks are built from additional basic system building blocks, such as network interface controllers , repeaters , hubs , bridges , switches , routers , modems, and firewalls . Any particular piece of equipment will frequently contain multiple building blocks and so may perform multiple functions. A network interface controller (NIC)
SECTION 10
#1732779466603648-640: A user could run an instance of the service using the Service Source Code you make available") available under the same license. As approval for this license by the Open Source Initiative was not forthcoming, the application for certification was withdrawn. It was banned by both Debian and the Fedora Project , who state that the license's intent is to discriminate against cloud computing providers offering services based on
702-495: A variety of different sources, primarily to support circuit-switched digital telephony . However, due to its protocol neutrality and transport-oriented features, SONET/SDH also was the obvious choice for transporting Asynchronous Transfer Mode (ATM) frames. Asynchronous Transfer Mode (ATM) is a switching technique for telecommunication networks. It uses asynchronous time-division multiplexing and encodes data into small, fixed-sized cells . This differs from other protocols such as
756-657: A virtual system of links that run on top of the Internet . Overlay networks have been used since the early days of networking, back when computers were connected via telephone lines using modems, even before data networks were developed. The most striking example of an overlay network is the Internet itself. The Internet itself was initially built as an overlay on the telephone network . Even today, each Internet node can communicate with virtually any other through an underlying mesh of sub-networks of wildly different topologies and technologies. Address resolution and routing are
810-522: Is computer hardware that connects the computer to the network media and has the ability to process low-level network information. For example, the NIC may have a connector for plugging in a cable, or an aerial for wireless transmission and reception, and the associated circuitry. In Ethernet networks, each NIC has a unique Media Access Control (MAC) address —usually stored in the controller's permanent memory. To avoid address conflicts between network devices,
864-470: Is a formatted unit of data carried by a packet-switched network . Packets consist of two types of data: control information and user data (payload). The control information provides data the network needs to deliver the user data, for example, source and destination network addresses , error detection codes, and sequencing information. Typically, control information is found in packet headers and trailers , with payload data in between. With packets,
918-427: Is a set of computers sharing resources located on or provided by network nodes . Computers use common communication protocols over digital interconnections to communicate with each other. These interconnections are made up of telecommunication network technologies based on physically wired, optical , and wireless radio-frequency methods that may be arranged in a variety of network topologies . The nodes of
972-422: Is a virtual network that is built on top of another network. Nodes in the overlay network are connected by virtual or logical links. Each link corresponds to a path, perhaps through many physical links, in the underlying network. The topology of the overlay network may (and often does) differ from that of the underlying one. For example, many peer-to-peer networks are overlay networks. They are organized as nodes of
1026-566: Is also found in WLANs ) – it is what the home user sees when the user has to enter a "wireless access key". Ethernet is a family of technologies used in wired LANs. It is described by a set of standards together called IEEE 802.3 published by the Institute of Electrical and Electronics Engineers. Wireless LAN based on the IEEE 802.11 standards, also widely known as WLAN or WiFi, is probably
1080-478: Is an electronic device that receives a network signal , cleans it of unnecessary noise and regenerates it. The signal is retransmitted at a higher power level, or to the other side of obstruction so that the signal can cover longer distances without degradation. In most twisted-pair Ethernet configurations, repeaters are required for cable that runs longer than 100 meters. With fiber optics, repeaters can be tens or even hundreds of kilometers apart. Repeaters work on
1134-412: Is inefficient for very big networks. Modems (modulator-demodulator) are used to connect network nodes via wire not originally designed for digital network traffic, or for wireless. To do this one or more carrier signals are modulated by the digital signal to produce an analog signal that can be tailored to give the required properties for transmission. Early modems modulated audio signals sent over
SECTION 20
#17327794666031188-578: Is the map of logical interconnections of network hosts. Common topologies are: The physical layout of the nodes in a network may not necessarily reflect the network topology. As an example, with FDDI , the network topology is a ring, but the physical topology is often a star, because all neighboring connections can be routed via a central physical location. Physical layout is not completely irrelevant, however, as common ducting and equipment locations can represent single points of failure due to issues like fires, power failures and flooding. An overlay network
1242-931: Is the process of selecting network paths to carry network traffic. Routing is performed for many kinds of networks, including circuit switching networks and packet switched networks. Flask (web framework) Flask is a micro web framework written in Python . It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions. However, Flask supports extensions that can add application features as if they were implemented in Flask itself. Extensions exist for object-relational mappers , form validation, upload handling, various open authentication technologies and several common framework related tools. Applications that use
1296-459: Is used between the wireless router and the home user's personal computer when the user is surfing the web. There are many communication protocols, a few of which are described below. The Internet protocol suite , also called TCP/IP, is the foundation of all modern networking. It offers connection-less and connection-oriented services over an inherently unreliable network traversed by datagram transmission using Internet protocol (IP). At its core,
1350-557: The Free Software Foundation to get advice on a new license that would resolve this matter in GPLv2. Around late February 2002, Kuhn suggested, based on the idea of a quine (a program that prints its own source code), that GPLv2 be supplemented with a section 2(d) that would require derivative works to maintain a "download source" feature that would provide complete and corresponding source code. Kuhn argued that there
1404-478: The Free Software Foundation 's judgment, the added requirement in section 2(d) of Affero GPL v1 made it incompatible with the otherwise nearly identical GPLv2. That is to say, one cannot distribute a single work formed by combining components covered by each license. By contrast, the GPLv3 and GNU AGPLv3 licenses include clauses (in section 13 of each license) that together achieve a form of mutual compatibility for
1458-462: The Institute of Electrical and Electronics Engineers (IEEE) maintains and administers MAC address uniqueness. The size of an Ethernet MAC address is six octets . The three most significant octets are reserved to identify NIC manufacturers. These manufacturers, using only their assigned prefixes, uniquely assign the three least-significant octets of every Ethernet interface they produce. A repeater
1512-736: The Internet Protocol . Computer networks may be classified by many criteria, including the transmission medium used to carry signals, bandwidth , communications protocols to organize network traffic , the network size, the topology, traffic control mechanisms, and organizational intent. Computer networks support many applications and services , such as access to the World Wide Web , digital video and audio , shared use of application and storage servers , printers and fax machines , and use of email and instant messaging applications. Computer networking may be considered
1566-416: The bandwidth of the transmission medium can be better shared among users than if the network were circuit switched . When one user is not sending packets, the link can be filled with packets from other users, and so the cost can be shared, with relatively little interference, provided the link is not overused. Often the route a packet needs to take through a network is not immediately available. In that case,
1620-538: The AGPL in late-2018 in favor of the " Server Side Public License " (SSPL), a modified version which requires those who offer the licensed software as a service accessible to third-parties, to make the entire source code of all software used to facilitate the service (including without limitation all "management software, user interfaces, application program interfaces, automation software, monitoring software, backup software, storage software and hosting software, all such that
1674-644: The Affero name indicated its close historic relationship with AGPLv1. The GNU AGPL was given version number 3 for parity with the GPL, and the current GNU Affero General Public License is often abbreviated AGPLv3 . The finalized version of GNU AGPLv3 was published by the FSF on November 19, 2007. Both versions of the AGPL, like the corresponding versions of the GNU GPL on which they are based, are strong copyleft licenses. In
GNU Affero General Public License - Misplaced Pages Continue
1728-511: The Affero project and made the new license available for use by other software-as-a-service developers. The FSF contemplated including the special provision of AGPLv1 into GPLv3 but ultimately decided to publish a separate license, nearly identical to GPLv3 but containing a provision similar in purpose and effect to section 2(d) of AGPLv1. The new license was named the GNU Affero General Public License. Retaining
1782-556: The Flask framework include Pinterest and LinkedIn . Flask was created by Armin Ronacher of Pocoo, an international group of Python enthusiasts formed in 2004. According to Ronacher, the idea was originally an April Fool's joke that was popular enough to make into a serious application. The name is a play on the earlier Bottle framework. When Ronacher and Georg Brandl created a bulletin board system written in Python in 2004,
1836-488: The GNU AGPL, on November 21, 2007, and is the only known program to be used mainly for the production of its own license. Flask developer Armin Ronacher noted in 2013 that the GNU AGPL is a "terrible success, especially among the startup community" as a "vehicle for dual commercial licensing ", and gave HumHub , MongoDB , Odoo , RethinkDB , Shinken , Slic3r , SugarCRM , and WURFL as examples. MongoDB dropped
1890-547: The GNU AGPLv3, Affero, Inc. published the Affero General Public License version 2 in November 2007, which is merely a transitional license that allows recipients of software licensed under "AGPLv1 or any later version as published by Affero, Inc." to distribute the software, or derivative works, under the GNU AGPLv3 or any later version. Stet was the first software system known to be released under
1944-440: The Internet protocol suite or Ethernet that use variable-sized packets or frames . ATM has similarities with both circuit and packet switched networking. This makes it a good choice for a network that must handle both traditional high-throughput data traffic, and real-time, low-latency content such as voice and video. ATM uses a connection-oriented model in which a virtual circuit must be established between two endpoints before
1998-574: The Internet. Firewalls are typically configured to reject access requests from unrecognized sources while allowing actions from recognized ones. The vital role firewalls play in network security grows in parallel with the constant increase in cyber attacks . A communication protocol is a set of rules for exchanging information over a network. Communication protocols have various characteristics. They may be connection-oriented or connectionless , they may use circuit mode or packet switching, and they may use hierarchical addressing or flat addressing. In
2052-532: The Pocoo projects Werkzeug and Jinja were developed. In April 2016, the Pocoo team was disbanded and development of Flask and related libraries passed to the newly formed Pallets project. Since 2018, Flask-related data and objects can be rendered with Bootstrap . Flask has become popular among Python enthusiasts. As of October 2020 , it has the second-most number of stars on GitHub among Python web-development frameworks, only slightly behind Django , and
2106-627: The actual data exchange begins. ATM still plays a role in the last mile , which is the connection between an Internet service provider and the home user. There are a number of different digital cellular standards, including: Global System for Mobile Communications (GSM), General Packet Radio Service (GPRS), cdmaOne , CDMA2000 , Evolution-Data Optimized (EV-DO), Enhanced Data Rates for GSM Evolution (EDGE), Universal Mobile Telecommunications System (UMTS), Digital Enhanced Cordless Telecommunications (DECT), Digital AMPS (IS-136/TDMA), and Integrated Digital Enhanced Network (iDEN). Routing
2160-468: The association of physical ports to MAC addresses by examining the source addresses of received frames and only forward the frame when necessary. If an unknown destination MAC is targeted, the device broadcasts the request to all ports except the source, and discovers the location from the reply. Bridges and switches divide the network's collision domain but maintain a single broadcast domain. Network segmentation through bridging and switching helps break down
2214-544: The basis for a custom software framework and supports Python 2.7 and 3.5 and later. Jinja, also by Ronacher, is a template engine for the Python programming language. Similar to the Django web framework, it handles templates in a sandbox . MarkupSafe is a string handling library for the Python programming language. The eponymous MarkupSafe type extends the Python string type and marks its contents as "safe"; combining MarkupSafe with regular strings automatically escapes
GNU Affero General Public License - Misplaced Pages Continue
2268-509: The issue of the GPLv2 license not requiring Web application providers to share source code with the users interacting with their software over a network. Over the following months, Stallman and Poole discussed approaches to solve the problem. In 2001, Poole founded Affero Inc. (a web services business), and he needed a license that would require distribution by other organizations who used Affero code to create derivative web services. At that time, Poole contacted Bradley M. Kuhn and Eben Moglen of
2322-668: The literature as the physical medium ) used to link devices to form a computer network include electrical cable , optical fiber , and free space. In the OSI model , the software to handle the media is defined at layers 1 and 2 — the physical layer and the data link layer. A widely adopted family that uses copper and fiber media in local area network (LAN) technology are collectively known as Ethernet. The media and protocol standards that enable communication between networked devices over Ethernet are defined by IEEE 802.3 . Wireless LAN standards use radio waves , others use infrared signals as
2376-665: The means that allow mapping of a fully connected IP overlay network to its underlying network. Another example of an overlay network is a distributed hash table , which maps keys to nodes in the network. In this case, the underlying network is an IP network, and the overlay network is a table (actually a map ) indexed by keys. Overlay networks have also been proposed as a way to improve Internet routing, such as through quality of service guarantees achieve higher-quality streaming media . Previous proposals such as IntServ , DiffServ , and IP multicast have not seen wide acceptance largely because they require modification of all routers in
2430-415: The most well-known member of the IEEE 802 protocol family for home users today. IEEE 802.11 shares many properties with wired Ethernet. Synchronous optical networking (SONET) and Synchronous Digital Hierarchy (SDH) are standardized multiplexing protocols that transfer multiple digital bit streams over optical fiber using lasers. They were originally designed to transport circuit mode communications from
2484-729: The network. On the other hand, an overlay network can be incrementally deployed on end-hosts running the overlay protocol software, without cooperation from Internet service providers . The overlay network has no control over how packets are routed in the underlying network between two overlay nodes, but it can control, for example, the sequence of overlay nodes that a message traverses before it reaches its destination . For example, Akamai Technologies manages an overlay network that provides reliable, efficient content delivery (a kind of multicast ). Academic research includes end system multicast, resilient routing and quality of service studies, among others. The transmission media (often referred to in
2538-444: The packet is queued and waits until a link is free. The physical link technologies of packet networks typically limit the size of packets to a certain maximum transmission unit (MTU). A longer message may be fragmented before it is transferred and once the packets arrive, they are reassembled to construct the original message. The physical or geographic locations of network nodes and links generally have relatively little effect on
2592-520: The physical layer of the OSI model but still require a small amount of time to regenerate the signal. This can cause a propagation delay that affects network performance and may affect proper function. As a result, many network architectures limit the number of repeaters used in a network, e.g., the Ethernet 5-4-3 rule . An Ethernet repeater with multiple ports is known as an Ethernet hub . In addition to reconditioning and distributing network signals,
2646-456: The protocol suite defines the addressing, identification, and routing specifications for Internet Protocol Version 4 (IPv4) and for IPv6 , the next generation of the protocol with a much enlarged addressing capability. The Internet protocol suite is the defining set of protocols for the Internet. IEEE 802 is a family of IEEE standards dealing with local area networks and metropolitan area networks. The complete IEEE 802 protocol suite provides
2700-482: The sharing of computing resources. For example, a user can print a document on a shared printer or use shared storage devices. Additionally, networks allow for the sharing of files and information, giving authorized users access to data stored on other computers. Distributed computing leverages resources from multiple computers across a network to perform tasks collaboratively. Most modern computer networks use protocols based on packet-mode transmission. A network packet
2754-470: The software without purchasing its commercial license. Software continues to be released under AGPLv3, various examples include many servers and clients for the fediverse such as Mastodon , Pixelfed and PeerTube , office suite software OnlyOffice , the RStudio IDE for the R programming language , system monitoring platform Grafana and more. Computer network A computer network
SECTION 50
#17327794666032808-422: The two licenses. These clauses explicitly allow the " conveying " of a work formed by linking code licensed under the one license against code licensed under the other license, despite the licenses otherwise not allowing relicensing under the terms of each other. In this way, the copyleft of each license is relaxed to allow distributing such combinations. To establish an upgrade path from Affero's original AGPLv1 to
2862-447: Was precedent for such a requirement in GPLv2 section 2(c), which required preserving certain features by downstream distributors and modifiers. Moglen and Kuhn wrote the text of the proposed new section 2(d), and provided it to Poole, who then requested and received permission from the FSF to publish a derivative of GPLv2 for this purpose. In March 2002, Affero, Inc. published the original Affero General Public License (AGPLv1) for use with
2916-655: Was voted the most popular web framework in the Python Developers Survey for years between and including 2018 and 2022. The microframework Flask is part of the Pallets Projects (formerly Pocoo ), and based on several others of them, all under a BSD license . Werkzeug ( German for "tool") is a utility library for the Python programming language for Web Server Gateway Interface (WSGI) applications. Werkzeug can instantiate objects for request, response, and utility functions. It can be used as
#602397