a system for creating specialized dds architectures
DESCRIPTION
A System for Creating Specialized DDS Architectures. Research and Work By: Tom Puzak Nathan Viniconis Solomon Berhe Jeffrey Peck. Project web site: http://www.revrick.net/CSE333/ProjectTimeline.htm. Objectives. - PowerPoint PPT PresentationTRANSCRIPT
CSE333
CSE333 DDS.1
A System for Creating Specialized DDS Architectures
Research and Work By:
Tom PuzakNathan ViniconisSolomon Berhe
Jeffrey Peck
Project web site: http://www.revrick.net/CSE333/ProjectTimeline.htm
CSE333
CSE333 DDS.2
ObjectivesObjectives
Break down multiple (Data Distribution System) Break down multiple (Data Distribution System) DDS architectures into their main components.DDS architectures into their main components.
Create a unified view of the differing architectures Create a unified view of the differing architectures in UML.in UML.
Tag elements in each component with the Tag elements in each component with the attributes of each DDS analyzed.attributes of each DDS analyzed.
Propose a method to generate DDS architectures Propose a method to generate DDS architectures by utilizing the component breakdown and by utilizing the component breakdown and attribute selection.attribute selection.
CSE333
CSE333 DDS.3
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.4
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs
DDSs are used to transfer data across a network, DDSs are used to transfer data across a network, however the methods involved vary.however the methods involved vary.
To generate a more complete picture of the generic To generate a more complete picture of the generic DDS architecture, analysis of existing DDSs needs DDS architecture, analysis of existing DDSs needs to take place over a broad scope.to take place over a broad scope.
We chose four DDSs:We chose four DDSs: Unix FTP – FTP Protocol Limewire – Gnutella Protocol BitTorrent – BitTorrent Protocol DC++ – Direct Connect Protocol (not standard)
They are all File Sharing Applications but their They are all File Sharing Applications but their underlying functionality is different.underlying functionality is different.
CSE333
CSE333 DDS.5
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs
The DDSs were chosen to show a wide range of The DDSs were chosen to show a wide range of functionality:functionality:
FTP was chosen because of its simplicityFTP was chosen because of its simplicity Sever and client have separate, well-defined
roles Maintains separate connections for data and
messages (i.e. commands) Lots of documentation available
Limewire represents an interesting and very popular Limewire represents an interesting and very popular peer-to-peer systempeer-to-peer system No central server; every client is also a server Every client maintains network Searches traverse the network to a defined depth
CSE333
CSE333 DDS.6
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs BitTorrent was chosen because it is exotic.BitTorrent was chosen because it is exotic.
It does not behave like any other peer-to-peer file sharing system.
Very large files are broken into small pieces which are “held together” by .torrent files, which contain information about the files.
A new solution to the problem of transferring large files over the Internet
Direct Connect was chosen because it represents a simple Direct Connect was chosen because it represents a simple peer-to-peer system that utilizes it's own non-standard peer-to-peer system that utilizes it's own non-standard protocol.protocol. Clients connect to a hub, where they search for other
client's files and then directly connect. Maintains security, restricting certain functions on the
hub from non-“Op” users.
CSE333
CSE333 DDS.7
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.8
Step 2: Determine main common components
FTP
Limewire
DirectConnect
BitTorrent
1. Network Connection2. Search3. Different Security Mechanism4. GUI
CSE333
CSE333 DDS.9
Step 2:Step 2: Determine main common Determine main common componentscomponents Initial focus of research is the Network Initial focus of research is the Network
CommunicationCommunication Communication between peers Commucication between host and server Responsible for sending/receiving msg/files Responsible for searching mechanism
CSE333
CSE333 DDS.10
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.11
Step 3:Step 3: Break up the components within Break up the components within each DDS into disjoint entities.each DDS into disjoint entities.
SourcesSources Use Papers Open APIs
Problems Problems Within one DDSs components overlap
significantly Searching relies on the network
communication Security is wrapped into everything
SolutionsSolutions Strip away functionality which is overlapping This creates a generic and an application
specific layer
CSE333
CSE333 DDS.12
Step 3:Step 3: Break up the components within Break up the components within each DDS into disjoint entities.each DDS into disjoint entities.
NetworkCommunication
Search Search
NetworkCommunication
CSE333
CSE333 DDS.13
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.14
Step 4:Step 4: Combine the breakdowns of the Combine the breakdowns of the different DDSs together within each componentdifferent DDSs together within each component
A global component is created that is a superset of A global component is created that is a superset of all generic architectures from every DDS.all generic architectures from every DDS.
After all generic layer for all DDSs have been After all generic layer for all DDSs have been found the architectures are added together to create found the architectures are added together to create a larger one.a larger one.
Find generic layer for each DDS. Find generic layer for each DDS. Add the resulting architectures together to create a Add the resulting architectures together to create a
larger one.larger one.
CSE333
CSE333 DDS.15
Step 4:Step 4: Combine the breakdowns of the Combine the breakdowns of the different DDSs together within each componentdifferent DDSs together within each component
CSE333
CSE333 DDS.16
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.17
Step 5:Step 5: Determine a set of attributes, and Determine a set of attributes, and tag inheritance lines with themtag inheritance lines with them
Each component has been broken up into a generic Each component has been broken up into a generic and application layer.and application layer.
•The generic layers’ The generic layers’ components are components are inherited by each DDS.inherited by each DDS.
•Attribute sets for each Attribute sets for each inheritance through the inheritance through the generic layer will be generic layer will be found.found.
CSE333
CSE333 DDS.18
Step 5:Step 5: Determine a set of attributes, and Determine a set of attributes, and tag inheritance lines with themtag inheritance lines with them
The attribute sets pertaining to each inheritance line have The attribute sets pertaining to each inheritance line have to be carefully chosen.to be carefully chosen. These will be the base of a new DDS architecture.
Some examples of the possible attributes that may be used Some examples of the possible attributes that may be used can be seen through the search example.can be seen through the search example. Generic Layer FTP Layer
Search over Telnet FTP language Use file/directory structure search
Generic Layer BitTorrent Search over HTTP Query DB of file locations Return connection information for file host
Generic Layer Limewire Deep search through network traversal Utilize caching Limit depth searched
CSE333
CSE333 DDS.19
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5Step 5:: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.20
Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of given attributes in which to customizegiven attributes in which to customize
Sets of attributes have now been given to the Sets of attributes have now been given to the inheritances through the generic layer within each inheritances through the generic layer within each component.component.
The user will be able to view the different sets of The user will be able to view the different sets of attributes available for each component.attributes available for each component.
Next, the user selects the best-fit attribute set for Next, the user selects the best-fit attribute set for each component.each component.
The application layer component of each chosen The application layer component of each chosen attribute set is returned and is displayed to the attribute set is returned and is displayed to the user.user.
As a result:As a result: As more DDSs are analyzed and added to this As more DDSs are analyzed and added to this
system, the number of possible outcomes rapidly system, the number of possible outcomes rapidly grows.grows.
CSE333
CSE333 DDS.21
ProcessProcess
Step 1:Step 1: Pick a subset of existing DDSs Pick a subset of existing DDSs Step 2:Step 2: Determine main common components Determine main common components Step 3:Step 3: Break up the components within each DDS Break up the components within each DDS
into disjoint entities.into disjoint entities. Step 4:Step 4: Combine the breakdowns of the different Combine the breakdowns of the different
DDSs together within each componentDDSs together within each component Step 5:Step 5: Determine a set of attributes, and tag Determine a set of attributes, and tag
inheritance lines with theminheritance lines with them Step 6:Step 6: Create an architecture based on a set of Create an architecture based on a set of
given attributes in which to customizegiven attributes in which to customize Step 7:Step 7: Analysis, Conclusions, Problem summary, Analysis, Conclusions, Problem summary,
and moreand more
CSE333
CSE333 DDS.22
Step 7:Step 7: Analysis, Conclusions, Problem Analysis, Conclusions, Problem summary, and moresummary, and more
For this final step, we plan on analyzing our work:For this final step, we plan on analyzing our work: Any difficulties encountered will be discussed.Any difficulties encountered will be discussed.
Could we have taken measures to avoid problems?
We will make conclusions:We will make conclusions: Did we successfully create an architecture by
which a new DDS could be spawned? Is our architecture thorough? Is our theoretical model able to work in reality? Could the use of our architecture benefit a DDS
creator by saving time, money, or both?
CSE333
CSE333 DDS.23
Step 7:Step 7: Analysis, Conclusions, Problem Analysis, Conclusions, Problem summary, and moresummary, and more
We will analyze our UML structure:We will analyze our UML structure: Did we use the proper diagrams to express the
ideas behind our research? Was UML able to accurately simulate our
theoretical model? Would our final UML model able to clearly
demonstrate our generic DDS architecture to somebody who is outside the project?
A novel idea is tagging the inheritance found in UML with attributes that describe the specific gains of the class.
CSE333
CSE333 DDS.24
Individual FocusIndividual Focus Each group member took a different DDS to break Each group member took a different DDS to break
down and analyze.down and analyze. Solomon Berhe: Limewire Jeff Peck: DC++ Tom Puzak: FTP Nate Viniconis: BitTorrent
The responsibilities include:The responsibilities include: Creating an overview UML class diagram
describing the workings of the application Breaking the UML diagram into the main
components Proposing a generic layer for each main
component contained within.
CSE333
CSE333 DDS.25
Original Project FocusOriginal Project Focus Analyze existing DDSs and break them down into Analyze existing DDSs and break them down into
their “functional components”their “functional components” Combine the UML diagrams of the each component Combine the UML diagrams of the each component
together into a global componenttogether into a global component Tag different areas of each global components with Tag different areas of each global components with
attributesattributes Develop a set of hueristics for generating a Develop a set of hueristics for generating a
customized DDS using:customized DDS using: user selected attributes global version of each component
CSE333
CSE333 DDS.26
Current ProgressCurrent Progress Identified some major DDS componentsIdentified some major DDS components Defined generic root of the “Network Defined generic root of the “Network
Communication” treeCommunication” tree Began creation of UML class diagrams. FTP Ex:Began creation of UML class diagrams. FTP Ex:
CSE333
CSE333 DDS.27
Planned Future ActivitiesPlanned Future Activities
Finalize list of common componentsFinalize list of common components Diagram components with UMLDiagram components with UML Discretize overlapping components in UML Discretize overlapping components in UML
diagramsdiagrams Break down components into their most generic Break down components into their most generic
piecespieces Develop unified view of broken down Develop unified view of broken down
componentscomponents Inheritence hierarchy
CSE333
CSE333 DDS.28
Future Activities (Continued)Future Activities (Continued) Describe inheritence in terms of attributesDescribe inheritence in terms of attributes Propose method for creating customized DDS Propose method for creating customized DDS
architectures based on attributesarchitectures based on attributes Analyze the performance the architecture engineAnalyze the performance the architecture engine
CSE333
CSE333 DDS.29
References (1)References (1)
CSE333
CSE333 DDS.30
References (2)References (2)