Talk Outline CSE 333 Goal Nate Project Overview

  • Slides: 110
Download presentation
Talk Outline CSE 333 Goal (Nate) Project Overview (Nate) Process to standardize and quantify

Talk Outline CSE 333 Goal (Nate) Project Overview (Nate) Process to standardize and quantify applications (Nate) Steps 1 – 5 Process to create new architecture (Tom) Step 6 Our Focus – Data Distribution Systems (Tom) Domain Info (Tom) Generic Layer (Tom) DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database (Sol) Implementation (Jef Sol) Conclusion / Future work (Nate Tom) References (Nate Tom) CSE 333 DDS. 1

A System for Creating Specialized DDS Architectures Research and Work By: CSE 333 Tom

A System for Creating Specialized DDS Architectures Research and Work By: CSE 333 Tom Puzak Nathan Viniconis Solomon Berhe Jeffrey Peck Project web site: http: //www. revrick. net/CSE 333/Project. Timeline. htm CSE 333 DDS. 2

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 3

Goal CSE 333 Outline a process of generating an architecture of an application derived

Goal CSE 333 Outline a process of generating an architecture of an application derived from a breakdown of similar applications. Show it can work. Create a generic procedure that can be extended to a variety of domains within Software Engineering. Test our procedure with an implementation focusing on the DDS domain. CSE 333 DDS. 4

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 5

Responsibilities CSE 333 Universal – Procedures to… strip applications down to their generic models.

Responsibilities CSE 333 Universal – Procedures to… strip applications down to their generic models. analyze and extend the generic models to a particular application. tag and store the attributes in an organized way create a new application using a sum of parts method Nate – Webpage Maintenance http: //www. revrick. net/CSE 333/Project. Timeline. htm Bit. Torrent Analysis Tom – FTP Analysis Solomon – Limewire Analysis Implementation http: //www. berhe. info/cse 333/index. php Jeff – DC++ Analysis CSE 333 DDS. 6

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Lime. Wire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 7

Project Overview Goal: Outline a process of generating an architecture of an application derived

Project Overview Goal: Outline a process of generating an architecture of an application derived from a breakdown of similar applications. Significant Changes Created generic abstraction from our DDS focus. Generic Outline Phase 1 : Break down existing applications within the domain. Phase 2: Creation of a new architecture. Extending to the DDS domain Implementation http: //www. berhe. info/cse 333/index. php Conclusion / Future work CSE 333 DDS. 8

Project Overview-Phase 1 Knowledge Database Application Domain CSE 333 Initial Application Subset Generic Models

Project Overview-Phase 1 Knowledge Database Application Domain CSE 333 Initial Application Subset Generic Models Minimal Subset x% Analysis, Tagging, and Organizing Standardized Components CSE 333 DDS. 9

Project Overview - Phase 2 Users Generated Architecture CSE 333 Completed Architecture Main Components

Project Overview - Phase 2 Users Generated Architecture CSE 333 Completed Architecture Main Components Knowledge Database Attribute Sets CSE 333 DDS. 10

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 11

Phase 1 : Overview CSE 333 Phase 1: Break down existing applications within the

Phase 1 : Overview CSE 333 Phase 1: Break down existing applications within the domain. Find suitable subset of the domain Define the domain using Generic Models (GM) Break down each application and: – – Find shared major components Create conceptual structural diagrams Create unified view Create generic layer Organize and tag the added functionality Store the result in a Knowledge Database Allow additional applications to be added to the Knowledge Database. Extensions: Behavioral models, GM maintenance. CSE 333 DDS. 12

Phase 1: Finding a suitable subset CSE 333 Choose applications within the domain that:

Phase 1: Finding a suitable subset CSE 333 Choose applications within the domain that: Maximize percentage of functionality coverage Choose applications with Best: Open source Worse: Proprietary software but heavily researched Worst: Small, proprietary, non-analyzed The end result can only be created from the subset of applications chosen… so choose wisely! Create UML 2. 0 Class and Use Case diagrams for each application. CSE 333 DDS. 13

Phase 1: Define the domain using Generic Models Step 1: Find shared major components

Phase 1: Define the domain using Generic Models Step 1: Find shared major components Comp 1 CSE 333 App 1 App. N 1 Comp 2 Comp 3 … Comp. N 2 Step 2: Break the components into disjoint entities CSE 333 DDS. 14

Phase 1: Define the domain using Generic Models CSE 333 Step 3: Create unified

Phase 1: Define the domain using Generic Models CSE 333 Step 3: Create unified view of each component Combine UML Class Diagrams together into a superset. Merge classes that overlap between 2+ apps Create relationships between apps Step 4: Identify or ‘abstracting out’ generic classes Identifying generic classes A class exists that is exactly the same in every app ‘Abstracting out’ generic classes Classes exist that contain similar functionality in every application Create a new class that all applications can inherit CSE 333 DDS. 15

Phase 1: Organize and tag the added functionality CSE 333 Each application inherits from

Phase 1: Organize and tag the added functionality CSE 333 Each application inherits from the GM Class Diagrams. The Generic Classes are tailored to a more specific instance when inherited from. Defining the Attributes. Augmenting it to store additional information Addition of methods to increase scope of functionality Store the Attributes in a database. Application Class Generic Class CSE 333 DDS. 16

Phase 1: Extensions Other aspects can be modeled into a generic layer. Behavioral Models

Phase 1: Extensions Other aspects can be modeled into a generic layer. Behavioral Models CSE 333 Storyboard / Activity / Work-Flow Security Models Reuse Models Multi-layered inheritance tagging 2 1 Augment attributes with extracted code segments CSE 333 DDS. 17

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Process Conclusion / Future work References CSE 333 DDS. 18

Phase 2: Process to create new architecture CSE 333 1) User selects a generic

Phase 2: Process to create new architecture CSE 333 1) User selects a generic component to model Generic components defined in Phase 1 2) User selects desired attributes that correspond to the chosen generic component 3) Steps 1 and 2 are repeated for each component in the general architecture A model of a new architecture is produced Architectural components are chosen based on desired attributes New architecture is based on preexisting architectures CSE 333 DDS. 19

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Lime. Wire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 20

Focus : Domain Information CSE 333 DDSs come in many forms Client-Server Peer to

Focus : Domain Information CSE 333 DDSs come in many forms Client-Server Peer to Peer Centralized Decentralized They provide the same basic service Therefore they have similar components The functionality of these components may differ, but their basic goals are the same CSE 333 DDS. 21

Focus : Generic Layer Basic Components CSE 333 Regardless of implementation, all DDSs must

Focus : Generic Layer Basic Components CSE 333 Regardless of implementation, all DDSs must provide these services Network Communication Search or content location capabilities Authentication User Interaction Security Data Handling CSE 333 DDS. 22

Main Component Focus CSE 333 We chose to focus our study on two main

Main Component Focus CSE 333 We chose to focus our study on two main components Network Communication Search They are related Probably need to search across a network Must create a highly abstract view of the functionality in order to create a successful model Our in dept analysis corresponds to these domains CSE 333 DDS. 23

Generic Network Communication Classes CSE 333 Classes common to all DDS network communication components

Generic Network Communication Classes CSE 333 Classes common to all DDS network communication components Network Entity Connection Generic Listener Data Handler Control Message CSE 333 DDS. 24

Generic Network Communication CSE 333 DDS. 25

Generic Network Communication CSE 333 DDS. 25

Generic Search Classes CSE 333 Search The highest level description of a search Result

Generic Search Classes CSE 333 Search The highest level description of a search Result A high level result class CSE 333 DDS. 26

Generic Search CSE 333 DDS. 27

Generic Search CSE 333 DDS. 27

DDS Breakdowns – FTP CSE 333 FTP Basics Screen-shots Functionality Modes FTP Structure The

DDS Breakdowns – FTP CSE 333 FTP Basics Screen-shots Functionality Modes FTP Structure The Diagram Network Communication Component UML and attributes Search Component UML and attributes CSE 333 DDS. 28

Console FTP CSE 333 DDS. 29

Console FTP CSE 333 DDS. 29

GUI FTP CSE 333 DDS. 30

GUI FTP CSE 333 DDS. 30

FTP Basics CSE 333 Classical client server model Client initiates connection with the server

FTP Basics CSE 333 Classical client server model Client initiates connection with the server Server responds to client's requests Two separate connections for every FTP session Control messages Data transfer connection (not always present) Control messages are handled by the Telnet protocol (RFC 854) CSE 333 DDS. 31

FTP Modes CSE 333 Active – this entity initiates the data connection Passive –

FTP Modes CSE 333 Active – this entity initiates the data connection Passive – the entity that waits for a data connection By default the FTP client is passive and the server is active The client can switch to active and instruct the server to be passive Common practice because of firewalls Also modes for file transfer details Block size, etc. . CSE 333 DDS. 32

FTP Structure CSE 333 The “Protocol Interpreter” (PI) is responsible for the control messages,

FTP Structure CSE 333 The “Protocol Interpreter” (PI) is responsible for the control messages, and dictates the behavior of the DTP The “Data Transfer Process” (DTP) handles transferring data, and interfaces with the file system Telnet client and server CSE 333 DDS. 33

FTP – The Diagram CSE 333 Taken from RFC 959 CSE 333 DDS. 34

FTP – The Diagram CSE 333 Taken from RFC 959 CSE 333 DDS. 34

FTP Network Communication Use Case CSE 333 DDS. 35

FTP Network Communication Use Case CSE 333 DDS. 35

FTP Network Communication Class Diagram CSE 333 DDS. 36

FTP Network Communication Class Diagram CSE 333 DDS. 36

FTP Network Communication Attributes CSE 333 FTP Entity – Only two connections allowed FTP

FTP Network Communication Attributes CSE 333 FTP Entity – Only two connections allowed FTP Control Connection – Utilizes FTP specific messages FTP Control Listener – Waits on FTP control port for FTP control connections FTP Data Listener – Waits of FTP data port for FTP data connections FTP Data Handler – Considers the FTP mode when sending/receiving files CSE 333 DDS. 37

FTP Network Communication Attributes CSE 333 DDS. 38

FTP Network Communication Attributes CSE 333 DDS. 38

FTP Search Use Case CSE 333 DDS. 39

FTP Search Use Case CSE 333 DDS. 39

FTP Search Class Diagram CSE 333 DDS. 40

FTP Search Class Diagram CSE 333 DDS. 40

FTP Search Attributes CSE 333 FTP Search – Considers FTP Specific search constraints Based

FTP Search Attributes CSE 333 FTP Search – Considers FTP Specific search constraints Based on Telnet commands FTP Result – FTP formatted result strings CSE 333 DDS. 41

DDS Breakdowns – Lime. Wire CSE 333 Limewire Basics Virtual Network Use Cases Network

DDS Breakdowns – Lime. Wire CSE 333 Limewire Basics Virtual Network Use Cases Network Communication Use Case Class Diagram Query Screenshot Class Diagram CSE 333 DDS. 42

Limewire / Basics CSE 333 Distributed File Sharing Application Runs on all common Operating

Limewire / Basics CSE 333 Distributed File Sharing Application Runs on all common Operating Systems Freeware and Open API Based on Gnutella Network (GNode) CSE 333 DDS. 43

Limewires Virtual Network CSE 333 Virtual Gnutella Network Virtual Mapping New Servant How does

Limewires Virtual Network CSE 333 Virtual Gnutella Network Virtual Mapping New Servant How does he become a GNode ? _ Internet CSE 333 DDS. 44

Limewire/Network CSE 333 Ping() Pong() Ping() CSE 333 DDS. 45

Limewire/Network CSE 333 Ping() Pong() Ping() CSE 333 DDS. 45

Limewire/ Use. Case CSE 333 DDS. 46

Limewire/ Use. Case CSE 333 DDS. 46

Limewire/ Use. Case CSE 333 DDS. 47

Limewire/ Use. Case CSE 333 DDS. 47

Limewire Search CSE 333 DDS. 48

Limewire Search CSE 333 DDS. 48

Limewire / Search CSE 333 Query. Request Query. Reply Search. String IPAddress Min. Speed

Limewire / Search CSE 333 Query. Request Query. Reply Search. String IPAddress Min. Speed Port TTL=1 Query. Request Query. Reply Search. String IPAddress Min. Speed Port TTL=0 Query. Request Query. Reply Search. String IPAddress Min. Speed Port TTL=2 Push. Request Send over Internet CSE 333 DDS. 49

Limewire/ Screenshot CSE 333 DDS. 50

Limewire/ Screenshot CSE 333 DDS. 50

Limewire/ UML Diagramm CSE 333 Application Generic Classes CSE 333 DDS. 51

Limewire/ UML Diagramm CSE 333 Application Generic Classes CSE 333 DDS. 51

Limewire / Attributes CSE 333 Generic Search Limewire Specific Search. String Min. Speed Generic

Limewire / Attributes CSE 333 Generic Search Limewire Specific Search. String Min. Speed Generic Control. Message Limewire Specific Message Ping Pong Query. Request Query. Reply Push. Query. Request CSE 333 DDS. 52

DDS Breakdowns – Bit. Torrent CSE 333 Overview Bit. Torrent Basics How it works

DDS Breakdowns – Bit. Torrent CSE 333 Overview Bit. Torrent Basics How it works Run-through of the application Analysis Derivation of major entities Search Use Case Class Diagram Attributes Network Communication Use Case Class Diagram Attributes Adding it to the Knowledge Domain CSE 333 DDS. 53

Bit. Torrent Overview CSE 333 HOW? … does it work? … can it be

Bit. Torrent Overview CSE 333 HOW? … does it work? … can it be modeled? CSE 333 DDS. 54

Bit. Torrent Overview CSE 333 The Bit. Torrent Protocol -Background Bram Cohen began designing

Bit. Torrent Overview CSE 333 The Bit. Torrent Protocol -Background Bram Cohen began designing the protocol in 2001. First implementations available mid 2002. The Bit. Torrent Protocol Standardizes file transactions among many simultaneous peers. Utilizes a tit-for-tat exchange technique. Bit. Torrent Basics How it works. Outline of the Bit. Torrent Search and Download process. Bit. Torrent Analysis Use Cases, Class Diagrams, and Attribute Selection. Storing the standardized data in the Knowledge Database CSE 333 DDS. 55

Bit. Torrent Basics User opens program to allow Bit. Torrent connections. CSE 333 Time

Bit. Torrent Basics User opens program to allow Bit. Torrent connections. CSE 333 Time Is The User opens their favourite web browser and heads to a Torrent Database. CSE 333 DDS. 56

Bit. Torrent Basics A) User navigates selects the a torrent. Database –or-Search User Application

Bit. Torrent Basics A) User navigates selects the a torrent. Database –or-Search User Application (DSA). B) User enters a search Time CSE 333 Please do not sue me. CSE 333 DDS. 57

Bit. Torrent Basics Generic is Keyword(s keyword selected ) entered, search. resulting Torrents User

Bit. Torrent Basics Generic is Keyword(s keyword selected ) entered, search. resulting Torrents User Torrent returned. Time CSE 333 DDS. 58

Bit. Torrent Basics User Torrent meta-data is displayed. CSE 333 Time The Tracker CSE

Bit. Torrent Basics User Torrent meta-data is displayed. CSE 333 Time The Tracker CSE 333 DDS. 59

Bit. Torrent Basics User • Active Torrent CSE 333 Time • Info • Queued

Bit. Torrent Basics User • Active Torrent CSE 333 Time • Info • Queued Torrent • Cancel CSE 333 DDS. 60

Bit. Torrent Basics User Torrent information displayed Peer 1 Client Peer 2 Peer 3

Bit. Torrent Basics User Torrent information displayed Peer 1 Client Peer 2 Peer 3 Time … . . . … … …… …… … … CSE 333 Tra … … cke r … … … . . . . Tracker DB CSE 333 DDS. 61

Bit. Torrent Analysis CSE 333 Show derivation of major entities Search Use Case Generic

Bit. Torrent Analysis CSE 333 Show derivation of major entities Search Use Case Generic Overview Class Diagram Attributes Network Communication Use Case Generic Overview Class Diagram Attributes Adding the analysis Knowledge Database CSE 333 DDS. 62

Bit. Torrent Analysis Deriving the Entities CSE 333 Connects too and Finds a Torrent

Bit. Torrent Analysis Deriving the Entities CSE 333 Connects too and Finds a Torrent through Downloads meta-info file, aka. torrent S Ad tar d ts To Se nd rre Pe nt er Co In n fo Re nect sa a rm pea s o H t un ver ati http on til can , R cel e led giste , R r equ user est Pee … rs CSE 333 DDS. 63

Bit. Torrent Analysis Search - Use Case CSE 333 DDS. 64

Bit. Torrent Analysis Search - Use Case CSE 333 DDS. 64

Bit. Torrent Analysis Search - Generic Overview CSE 333 DDS. 65

Bit. Torrent Analysis Search - Generic Overview CSE 333 DDS. 65

Bit. Torrent Analysis Search - Class Diagram CSE 333 The class diagram has been

Bit. Torrent Analysis Search - Class Diagram CSE 333 The class diagram has been derived the Generic classes that Layer directly inherit from the generic layer. CSE 333 DDS. 66

Bit. Torrent Analysis – Attribute Selection CSE 333 Tagging of the inheritance from generic

Bit. Torrent Analysis – Attribute Selection CSE 333 Tagging of the inheritance from generic to application layer Search Generic Search Bit. Torrent. Search Database Keyword Search Generic Result Match Contains Connection Information Contains File Hash CSE 333 DDS. 67

http: //www. revrick. net/CSE 333/NC-Use. JPG Bit. Torrent Analysis Network Communication – Use Case

http: //www. revrick. net/CSE 333/NC-Use. JPG Bit. Torrent Analysis Network Communication – Use Case Over TCP Over HTTP or HTTPS CSE 333 DDS. 68

Bit. Torrent Analysis Network Communication - Generic Overview CSE 333 DDS. 69

Bit. Torrent Analysis Network Communication - Generic Overview CSE 333 DDS. 69

Bit. Torrent Analysis Network Communication - Class Diagram CSE 333 The class diagram has

Bit. Torrent Analysis Network Communication - Class Diagram CSE 333 The class diagram has been derived the Generic classes that Layer directly inherit from the generic layer. CSE 333 DDS. 70

Bit. Torrent Analysis – Attribute Selection CSE 333 Tagging of the inheritance from generic

Bit. Torrent Analysis – Attribute Selection CSE 333 Tagging of the inheritance from generic to application layer Network Communication Network. Entity Peer Contains List of Connections to other Peers Network. Entity Tracker HTTP Connection Manages a Network of Communicating Peers Connection Bit. Torrent Data Connection Binary Connection Bit. Torrent Control Connection String Connection Generic. Listener Peer Control Listener Listen for / Create Peer String Connections Generic. Listener Peer Data Listener Listen for / Create Peer Data Connections Data. Handler Bit. TData. Handler Define Packet Size Verify with SHA 1 Hash Control. Message Bit. Torrent. Message Parse Delimited String Connection Maintenance Oriented CSE 333 DDS. 71

Bit. Torrent Analysis Adding the analysis Knowledge Database Each extension from the generic classes

Bit. Torrent Analysis Adding the analysis Knowledge Database Each extension from the generic classes to another class is recorded in the database. CSE 333 DDS. 72

DDS Breakdowns – DC++ CSE 333 What does it do? The Client Features Search

DDS Breakdowns – DC++ CSE 333 What does it do? The Client Features Search Use Case Class Diagram Attributes NC Use Case Class Diagram Attributes CSE 333 DDS. 73

Direct Connect – What does it do? There are Users (Clients) and there are

Direct Connect – What does it do? There are Users (Clients) and there are Hubs. CSE 333 DDS. 74

Direct Connect – What does it do? CSE 333 The Client: Each Client has

Direct Connect – What does it do? CSE 333 The Client: Each Client has a “filelist”, which is essentially an XML file that tells what files that user has to share, and where they can be found. A Client can connect to a Hub, logging in with a unique user ID, to access a list of other connected Users, view any other User's filelist, obtain information about other users, and search the Hub. When the Client finds a particular file, he can establish a direct connection with that user and start the file transfer. If the Client logs in as “Op” it will have special privileges to control the Hub. CSE 333 DDS. 75

Direct Connect Client Search Results Screen Shot CSE 333 DDS. 76

Direct Connect Client Search Results Screen Shot CSE 333 DDS. 76

Direct Connect – What does it do? CSE 333 The Hub: The Hub maintains

Direct Connect – What does it do? CSE 333 The Hub: The Hub maintains a list of all connected Users (the Clients who are logged into the Hub). The Hub has the ability to grant access to Users based on Username and Password, as well as the size of their filelist. A Hub will have the responsibility of obtaining search results from the list of connected Users, for any search request from a particular Client. Further, a Hub should be able to provide the necessary information for any Client to be able to connect to any connected User to initiate a file transfer. CSE 333 DDS. 77

Direct Connect Protocol - Features CSE 333 Centralized - The Direct Connect Protocol is

Direct Connect Protocol - Features CSE 333 Centralized - The Direct Connect Protocol is a Peerto-Peer protocol that is unlike Gnuetella or Bit. Torrent in that it uses a central server – the Hub. Security – Direct Connect Hubs are able to monitor which Users can connect based on the size of their filelist. Further, special access can be granted to “Op” Users. Privateness – Anyone with enough bandwidth and hardware can set up a DC Hub, which as long as it is not publicized can potentially remain unknown. Due to being Centralized Basic File Transfer – Does not deal with segments of files. CSE 333 DDS. 78

DC++ CSE 333 DC++ is one of the many clients available that uses the

DC++ CSE 333 DC++ is one of the many clients available that uses the DC Network. It is Open Source as most of the other Direct Connect Clients. There is no official Direct Connect Protocol Standard, however DC++ has become the form of the protocol that has been accepted. CSE 333 DDS. 79

DC++ - Protocol CSE 333 DDS. 80

DC++ - Protocol CSE 333 DDS. 80

DC++ - Search Use Case CSE 333 DDS. 81

DC++ - Search Use Case CSE 333 DDS. 81

DC++ - Search Class Diagram CSE 333 DDS. 82

DC++ - Search Class Diagram CSE 333 DDS. 82

DC++ - Search Attribute Selection Search DC_Client CSE 333 Send Search String to a

DC++ - Search Attribute Selection Search DC_Client CSE 333 Send Search String to a Specific DC Hub, with DC-specific parameters Result DC_Search. Results List Files With File Paths on Connected Users, on specific Hubs CSE 333 DDS. 83

DC++ - Network Communication Use Case CSE 333 DDS. 84

DC++ - Network Communication Use Case CSE 333 DDS. 84

DC++ - Network Communication Class Diagram CSE 333 DDS. 85

DC++ - Network Communication Class Diagram CSE 333 DDS. 85

DC++ - Network Communication Attribute Selection Network. Entity DC_User CSE 333 Holds DC-specific user

DC++ - Network Communication Attribute Selection Network. Entity DC_User CSE 333 Holds DC-specific user information Maintains a requestable filelist Network. Entity DC_Hub Holds DC-specific hub information Maintains a list of connected Users Has security control CSE 333 DDS. 86

DC++ - Network Communication Attribute Selection Connection DC_Connection DC-specific connection protocol Handles DC Client-Hub

DC++ - Network Communication Attribute Selection Connection DC_Connection DC-specific connection protocol Handles DC Client-Hub and Client-Client Handshake CSE 333 DDS. 87

DC++ - Network Communication Attribute Selection Data. Handler DC_Data Handler Send / Receive User

DC++ - Network Communication Attribute Selection Data. Handler DC_Data Handler Send / Receive User File CSE 333 DDS. 88

DC++ - Network Communication Attribute Selection CSE 333 Control. Message DC_Message Interpret DC-specific Client-Hub

DC++ - Network Communication Attribute Selection CSE 333 Control. Message DC_Message Interpret DC-specific Client-Hub NMDC or ADC commands Interpret DC-specific Client-Client command Generic. Listener DC_Connection. Listnener Listen for incoming DC Connections for Client or Hub CSE 333 DDS. 89

DC++ - Network Communication Attribute Selection Network. Entity DC_User CSE 333 Network. Entity DC_Hub

DC++ - Network Communication Attribute Selection Network. Entity DC_User CSE 333 Network. Entity DC_Hub Send / Receive User File Control. Message DC_Message DC-specific connection protocol Handles DC Client-Hub and Client-Client Handshake Data. Handler DC_Data Handler Holds DC-specific hub information Maintains a list of connected Users Has security control Connection DC_Connection Holds DC-specific user information Maintains a requestable filelist Interpret DC-specific Client-Hub NMDC or ADC commands Interpret DC-specific Client-Client command Generic. Listener DC_Connection. Listnener Listen for incoming DC Connections for Client or Hub CSE 333 DDS. 90

Database / Structure Storing the attributes… CSE 333 Attribute • ATTRIBUT_ID • ATTRIBUT_NAME •

Database / Structure Storing the attributes… CSE 333 Attribute • ATTRIBUT_ID • ATTRIBUT_NAME • CLASS_NAME DDS • DDS_ID • DDS_NAME GClass • GCLASS_ID • GCLASS_NAME USER_DDS • USER_ID DDS_GCLASS_ATTR • GCLASS_ID • DDS_ID • GCLASS_ID • ATTRIBUT_ID • DDS_ID • ATTRIBUT_ID CSE 333 DDS. 91

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 92

Implementation Specification CSE 333 Input: Generic Classes DDS Attributes Output: An XML File which

Implementation Specification CSE 333 Input: Generic Classes DDS Attributes Output: An XML File which contains a general specification of the customized DDS. Statistics regarding to preferred DDS CSE 333 DDS. 93

Implementation / Use Case CSE 333 DDS. 94

Implementation / Use Case CSE 333 DDS. 94

Implementation / Activity Diagram CSE 333 DDS. 95

Implementation / Activity Diagram CSE 333 DDS. 95

Implementation / Activity Diagram CSE 333 DDS. 96

Implementation / Activity Diagram CSE 333 DDS. 96

Implementation / Activity Diagram CSE 333 DDS. 97

Implementation / Activity Diagram CSE 333 DDS. 97

Implementation / Technology CSE 333 Languages: PHP HTML CSS Database: My. SQL CSE 333

Implementation / Technology CSE 333 Languages: PHP HTML CSS Database: My. SQL CSE 333 DDS. 98

Implementation / Architecture CSE 333 Model Controller View CSE 333 DDS. 99

Implementation / Architecture CSE 333 Model Controller View CSE 333 DDS. 99

Implementation Process CSE 333 DDS. 100

Implementation Process CSE 333 DDS. 100

Implementation / Screen Shot Frontend CSE 333 DDS. 101

Implementation / Screen Shot Frontend CSE 333 DDS. 101

Implementation / Screen Shot Frontend CSE 333 DDS. 102

Implementation / Screen Shot Frontend CSE 333 DDS. 102

Implementation / XML Output CSE 333 DDS. 103

Implementation / XML Output CSE 333 DDS. 103

Implementation / Screen Shot Backend CSE 333 DDS. 104

Implementation / Screen Shot Backend CSE 333 DDS. 104

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 105

Conclusion CSE 333 What was accomplished - Created a method for defining an architecture

Conclusion CSE 333 What was accomplished - Created a method for defining an architecture in terms of UML 2. 0 Use Case and Class diagrams Modeling granularity must stay consistent Outlined and tested a procedure to create a generic abstraction from the diagrams The generic layer has to portray correct and consistent information throughout the domain The generic layer defines the domain in terms of conceptual class interactions. Researched the detailed workings of applications within the DDS domain. Created a program outlining the methodologies of this work. CSE 333 DDS. 106

Future Work CSE 333 Extraction of Generic Architecture from application source. Behavioral Extension Code

Future Work CSE 333 Extraction of Generic Architecture from application source. Behavioral Extension Code generation For Implementation: XML Output for UML Generator More User Friendly Interface PHP Session ID Security Mechanism Control over the DDSs to select More DDS, Functionalities and Attributes CSE 333 DDS. 107

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project

A System for Creating Specialized DDS Architectures - Outline CSE 333 Goal Responsibilities Project Overview Phase 1: Break down existing applications within the domain. Steps 1 – 5 Phase 2: Process to create new architecture Step 6 Our Focus – Data Distribution Systems Domain Info Generic Layer DDS Breakdowns FTP / Limewire / Bit. Torrent / DC++ Attribute -> Database Implementation Conclusion / Future work References CSE 333 DDS. 108

References CSE 333 Creating a Generic Model: “Combining Clustering with Pattern Matching for Architecture

References CSE 333 Creating a Generic Model: “Combining Clustering with Pattern Matching for Architecture Recovery of OO Systems” Bauer et al. , FZI Forschungszentrum Informatik. Karlsruhe, Germany. “Recovering UML Diagrams from Java Code using Patterns” Niere et al. , University of Paderborn Warburgerstra. Be 100, Germany. “Generic Representation of Military Organization and Military Behaviour: UML and Bayesian Networks” Suzic. Swedish Defence Research Agency (FOI) Stockholm, Sweden “Generic Modeling using UML extensions for variability” Clau. B, Matthias et al. , Software Engineering Group, Dresden 2001. Bit. Torrent: Eger, K. , Killat U. , "Scalability of the Bit. Torrent P 2 P Application, " 5. Wurzburger Workshop, Hamburg University of Technology 18. -19. 2005 J. A. Pouwelse, P. Garbacki, D. H. J. Epema, H. J. Sips. "The Bit. Torrent P 2 P File -Sharing System: Measurements and Analysis, " Delft University of http: //www. bittorrent. com/protocol. html - The Bit. Torrent Protocol “Final Fantasy I”, NES – User Image CSE 333 DDS. 109

References CSE 333 DC++: http: //www. dcpp. net/ http: //sourceforge. net/projects/dcplus/ http: //www. b.

References CSE 333 DC++: http: //www. dcpp. net/ http: //sourceforge. net/projects/dcplus/ http: //www. b. ali. btinternet. co. uk/DCPlus/ http: //en. wikipedia. org/wiki/Direct_Connect_network/ Limewire: www. limewire. org http: //www 9. limewire. com/developer/gnutella_protocol_0. 4. pdf http: //rfc-gnutella. sourceforge. net/ FTP: J. Postel, J. Reynolds. "RFC 854: Telnet Protocol Specification", Network Working Group, ISI May 1983. J. Postel, J Reynolds. "RFC 959: File Transfer Protocol (FTP)", Network Working Group, ISI October 1985. "Active FTP vs. Passive FTP, a Definitive Explanation" http: //slacksite. com/other/ftp. html. CSE 333 DDS. 110