about summary refs log tree commit diff
path: root/usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt
diff options
context:
space:
mode:
Diffstat (limited to 'usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt')
-rw-r--r--usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt231
1 files changed, 231 insertions, 0 deletions
diff --git a/usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt b/usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt
new file mode 100644
index 0000000..d3ab75b
--- /dev/null
+++ b/usth/ICT2.7/P3L1 Software Architecture Subtitles/25 - Napster Example - lang_en_vs4.srt
@@ -0,0 +1,231 @@
+1

+00:00:00,160 --> 00:00:03,160

+So let's start by considering Napster. In it's first

+

+2

+00:00:03,160 --> 00:00:07,210

+incarnation, Napster was a peer-to-peer file sharing system. And

+

+3

+00:00:07,210 --> 00:00:10,200

+it was mostly used, actually, to illegally share mp3s.

+

+4

+00:00:10,200 --> 00:00:12,630

+Which is also why it got sued and later

+

+5

+00:00:12,630 --> 00:00:16,129

+on, it basically ceased operations. But nevertheless, I think

+

+6

+00:00:16,129 --> 00:00:19,710

+Napster is an interesting example of mixed architecture. And

+

+7

+00:00:19,710 --> 00:00:22,020

+I'm going to illustrate the way Napster works by showing

+

+8

+00:00:22,020 --> 00:00:25,820

+you, here, the basic configuration of Napster and the interactions

+

+9

+00:00:25,820 --> 00:00:28,950

+between its elements. So let's look at how such interaction

+

+10

+00:00:28,950 --> 00:00:32,250

+can take place for the three peers shown here. And

+

+11

+00:00:32,250 --> 00:00:34,430

+in this case Peer A and B are the only

+

+12

+00:00:34,430 --> 00:00:37,290

+ones really involved in the action. So let's look at

+

+13

+00:00:37,290 --> 00:00:40,700

+a typical sequence of events for the Napster system. We

+

+14

+00:00:40,700 --> 00:00:44,340

+have Peer A that will start by registering, here, with

+

+15

+00:00:44,340 --> 00:00:47,530

+the content directory. Peer B will also register with the

+

+16

+00:00:47,530 --> 00:00:50,970

+content directory. And when these two peers register, the content directory

+

+17

+00:00:50,970 --> 00:00:54,370

+will know what kind of content they can provide. Later on,

+

+18

+00:00:54,370 --> 00:00:57,660

+Peer A will request a song. And one first observation that

+

+19

+00:00:57,660 --> 00:01:00,550

+we can make, based on this interaction, is the fact that,

+

+20

+00:01:00,550 --> 00:01:03,900

+up to now, this is a purely client-server system. This is

+

+21

+00:01:03,900 --> 00:01:06,530

+the client. This is the client. And this is the server.

+

+22

+00:01:06,530 --> 00:01:10,320

+And the interaction is a typical client-server interaction. But now we're

+

+23

+00:01:10,320 --> 00:01:12,410

+at the point in which things start to change a little

+

+24

+00:01:12,410 --> 00:01:16,008

+bit. At this point, after Peer A has requested the song,

+

+25

+00:01:16,008 --> 00:01:18,820

+the peer and content directory will look up its

+

+26

+00:01:18,820 --> 00:01:22,730

+gigantic index and will see that Peer B actually has

+

+27

+00:01:22,730 --> 00:01:24,850

+the song that Peer A requested. So it will

+

+28

+00:01:24,850 --> 00:01:27,690

+send to Peer A a handle that Peer A can

+

+29

+00:01:27,690 --> 00:01:31,052

+use to connect directly to Peer B. So this

+

+30

+00:01:31,052 --> 00:01:34,540

+is where the system is no longer a client-server system.

+

+31

+00:01:34,540 --> 00:01:37,890

+Because at this point, the two peers are connected directly.

+

+32

+00:01:37,890 --> 00:01:41,000

+So at this point, we have a peer-to-peer interaction. And,

+

+33

+00:01:41,000 --> 00:01:43,770

+after getting the request from Peer A, then Peer B

+

+34

+00:01:43,770 --> 00:01:47,170

+will start sending the content to Peer A. And I said

+

+35

+00:01:47,170 --> 00:01:50,660

+earlier that one of the useful things about representing an

+

+36

+00:01:50,660 --> 00:01:52,440

+architecture and interaction within an

+

+37

+00:01:52,440 --> 00:01:54,580

+architecture graphically, is the fact that

+

+38

+00:01:54,580 --> 00:01:57,550

+it allows you to spot possible problems. And in this

+

+39

+00:01:57,550 --> 00:02:00,666

+case, by representing the Napster architecture in this way, and by

+

+40

+00:02:00,666 --> 00:02:03,300

+studying how things work, we can see that there's an

+

+41

+00:02:03,300 --> 00:02:06,010

+issue with the architecture of Napster that will not make this

+

+42

+00:02:06,010 --> 00:02:10,020

+architecture scale. As some of you might have already noticed, this peer

+

+43

+00:02:10,020 --> 00:02:13,720

+and content directory is a single point of failure, and is very

+

+44

+00:02:13,720 --> 00:02:17,230

+likely to cause problems when the number of peers grows too large.

+

+45

+00:02:17,230 --> 00:02:19,890

+Because at that point, there are going to be too many requests to

+

+46

+00:02:19,890 --> 00:02:22,840

+the peer and content directory, and the peer and content directory is

+

+47

+00:02:22,840 --> 00:02:25,460

+unlikely to be able to keep up with all the requests. So

+

+48

+00:02:25,460 --> 00:02:27,840

+some changes in the architecture will have to be made. In the

+

+49

+00:02:27,840 --> 00:02:31,310

+case of Napster, we didn't see this problem occurring because, as I said

+

+50

+00:02:31,310 --> 00:02:34,420

+earlier, Napster got sued and ceased operation before the problem

+

+51

+00:02:34,420 --> 00:02:37,650

+actually manifested. Now looking at the system for an architecture-style

+

+52

+00:02:37,650 --> 00:02:40,560

+perspective, we can see that Napster was a hybrid architecture

+

+53

+00:02:40,560 --> 00:02:43,920

+with both client-server and peer-to-peer elements. And something I would

+

+54

+00:02:43,920 --> 00:02:45,870

+like to stress here, is that this is not at

+

+55

+00:02:45,870 --> 00:02:49,400

+all uncommon. So in real world nontrivial architectures, it is

+

+56

+00:02:49,400 --> 00:02:52,470

+very common to see multiple styles used in the same

+

+57

+00:02:52,470 --> 00:02:56,209

+system. The next system that we will consider, Skype, is instead,

+

+58

+00:02:56,209 --> 00:02:59,885

+an example of a well-designed, almost purely peer-to-peer system.