Week 9

User Datagram Protocol

A simple OSI transport layer protocol for client/server network applications based on Internet Protocol (IP). UDP is the main alternative to TCP and one of the oldest network protocols in existence, introduced in 1980
UDP is often used in videoconferencing applications or computer games specially tuned for real-time performance. To achieve higher performance, the protocol allows individual packets to be dropped (with no retries) and UDP packets to be received in a different order than they were sent as dictated by the application.

RealTime Streaming Protocol

Real Time Streaming Protocol (RTSP) is an application-level protocol for the transfer of real-time media data. The protocol is used to establish and control media sessions between end points by serving as a network-remote-control for time-synchronized streams of continuous media such as audio and video.

Transmission Control Protocol
TCP is a transport layer protocol used by applications that require guaranteed delivery. It is a sliding window protocol that provides handling for both timeouts and retransmissions. It establishes a full duplex virtual connection between two endpoints. Each endpoint is defined by an IP address and a TCP port number. The operation of TCP is implemented as a finite state machine.
Unicast

Unicast is communication between a single sender and a single receiver over a network. The term exists in contradistinction to multicast, communication between a single sender and multiple receivers, and anycast, communication between any sender and the nearest of a group of receivers in a network. An earlier term, point-to-point communication, is similar in meaning to unicast. The new Internet Protocol version 6 (IPv6) supports unicast as well as anycast and multicast.

Multicast

Multicast is communication between a single sender and multiple receivers on a network. Typical uses include the updating of mobile personnel from a home office and the periodic issuance of online newsletters. Together with anycast and unicast, multicast is one of the packet types in the Internet Protocol Version 6 (IPv6).
Multicast is supported through wireless data networks as part of the Cellular Digital Packet Data (CDPD) technology.
IP Multicast

IP multicast is a method of forwarding IP datagrams to a group of interested receivers. See the article on multicast for a general discussion of this subject — this article is specifically about IP multicast.

P2P

Peer-to-peer, commonly abbreviated to P2P, distributed network architecture is composed of participants that make a portion of their resources (such as processing power, disk storage or network bandwidth) directly available to other network participants, without the need for central coordination instances (such as servers or stable hosts. Peers are both suppliers and consumers of resources, in contrast to the traditional client-server model where only servers supply, and clients consume.
Peer-to-peer file sharing networks have inspired new structures and philosophies in other areas of human interaction. In such social contexts, peer-to-peer as a meme refers to the egalitarian social networking that is currently emerging throughout society, enabled by Internet technologies in general.

Protocols, Networks and Transmissions

User Datagram Protocol   The oldest network protocol in existence. Used to send direct messages to hosts over an IP network. Quite an unreliable service as messages may not arrive in the order that they were sent.   Real Time Streaming Protocol   Used to control streaming media servers. Clients of the media server are able to use commands such as play and pause in order to control the playbck of the media files. Some examples of applications that use this protocol are Spotify, Quicktime and Windows Media Player.   Transmission Control Protocol   This is the second of two components of the Internet Protocol Suite. The second of which is Internet Protocol. IP handles low-level transmissions from computer to computer on the internet. Whereas Transmission Control Protocol deals with the higher level transmissions from a programme on one computer to a programme on the other.   Unicast   Unicast is a type of transmission where the client only wishes to send data to one, or a few people. The network connected uses up a lot of computer resources, therefore this method is only useful if sending data to a small amount of people. Unicast-based media servers open up a new stream for each user, therefore it is not suitable for things like online radio.   Multicast Multicast is a type of transmission where the clientwishes to send messages to a group of people. The word multicast is usually used when referring to IP Multicast which is used in streaming media and for use in internet television applications.   IP Multicast   IP Multicast is a technique for communication on a one-to-many basis over an IP infrastructure on a network. This technique is useful as the source only needs to send the packet once. This is because the nodes in the network take care of replicating the data if it needs to be replicated in order to reach multiple receivers.   Peer to Peer   Peer to Peer or P2P is composed of participants who make a portion of their resources available to the other participants in the network. These resources could be disk storage or network bandwidth. Peers in the network can both consume and supply resources rather than just being able to consume or just being able to supply, like in most other forms of transmission. P2P was popularised by the famous file sharing service called Napster.

update on assignment two!

as promised i asked Dubber for clarification on where your second assignment sits between 'demo' and 'prototype'...
according to the man himself:

They have to be able to communicate and demonstrate their idea through the medium of prototype.

We're looking for a realistic amount of work. It doesn't have to 
be the final product but it should be able to mimic functionality.

They don't need to have complete datasets, but moving parts should move.

so basically it should do what it's supposed to do, but only insofar as demonstrating it to someone (so for example if your database only has four entries instead of five million make sure you choose one of those when you demo it)

hope that helps people, on with the action planning!

Licence to kill

Software as a service (SAS)

This is the sort of license used by companies for software they need to install on several computers: eg. one copy of Windows installed across all companies computers

General Public License (GPL)
This license is much like the CC license 'share alike' meaning that the product can be derived from but must be released under the same license.

Berkeley Software Distribution (BSD)

Based on Unix operating systems and has a very open license. It is very easy to obtain.

Permissive Licensing
This license allows people to make derivative works and then release them under a different license from the original work. 

Free Documentation Licensing
A license for text based documents allowing editing and redistribution. Wikipedia used to be based on this principle.

Apache License

A very open license - derivative works only have to acknowledge the original work's apache license.

Copyleft  
Copyleft makes work free and requires all derivatives to be free under the same license

Public Domain
Work is out in the public domain and can be edited and redistributed in any way by any body.

(stole the layout of this post from Andrew Lawson under a presumed Free Documentation License ;) )

Music Online Report - Opensource Software licenses

Media_httpenwindows7sinsorgilogopng_dghmxhjmoapnigd

SAS (Software as a service)
This license is often used for works that require multiple copies of a software e.g. for business use. The license is sold to use the software and multiple copies of the software can then be used.

GPL (General Public License) or GNU:
A type of strong copyleft license that requires derivative works to be made available under the same license as the original.

BSD (Berkeley Software Distribution):
Very open license and is considered a permissible license.

Permissive Licensing:
A type of license that allows new versions of the work to have a stricter license than the original one.

Free Documentation Licensing:
This is mainly used for text based documents like manuals that would accompany software.

Apache License:

Not true copyleft, The only requirement of this license is that if you change the software that you’re only required to acknowledge that the program was based off of an apache license to begin with.

Copyleft:      
Copyleft is a general method for making a program (or other work) free, and requires all modified and extended versions of the program to be free as well

Public Domain:
Effectively owned by nobody. Users may modify and change the original as much as they like and have no requirements on the new work.

SaaS and many forms of licensing

Software as a service is a type of software distribution model. The service provider of an application gives licenses that allow users to access it on-demand wherever they are. Businesses obtain rights to the application making it cheaper than licensing each different machine separately, specifically if an employee is working remotely. Rather than have to license the employee’s home computer, SaaS allows the worker to access the software.

 

Copyleft is a form of licensing which seeks to remove restrictions on the use and modification of software. There are many different licenses that come under Copyleft.

 

Public domain is a way of classifying content that nobody owns or controls. When a product is copyrighted it can only be under the copyright for a certain amount of time. Once its copyright finished it is now part of the public domain. If a product hasn’t had any license put onto it, it is also part of the public domain.

 

General Public License is a form of copy left licensing. It says that anyone can use software freely and modify and share this software. This is, as long as they share all of the source code and any other information that they may have originally had shared with them. People must also be made aware that the copy they are receiving has been modified. It must also be released again under a GPL.

 

Free documentation licensing is another form of copyleft licensing. It is similar to the GPL license. It allows users to modify and share software, however this license was designed to cover textbooks, manuals or any other text work that may come alongside the software being shared.

 

Apache licensing is different to copyleft licensing is that it states that any terms of copyright must be preserved. However it does allow that people use the source code for creating proprietary software, free software and open source software. Apache license doesn’t require that modified software be released back under the terms of an apache license, just note that it had originally been under an apache license.

week seven's slides

...are now up on moodle! (direct link HERE)

currently debating whether or not to mess around with moodle and make it mine for the second half of the module or to just use here for resources etc as i have been so far... we shall see.

anyway, go grab the slides, try and make sense of the stuff i said on friday... (yes i know you aren't all doing websites, hopefully throught the next few weeks there will be something for everyone)
and don't forget, i want to see mockups of your interface soon! next lesson preferably! whatever you're doing, it will still need an interface... better to start thinking about them now!

spread the word, see you on friday!