linux and skype architectural styles

6

Click here to load reader

Upload: mohammad-shawahneh

Post on 23-Jan-2018

265 views

Category:

Software


1 download

TRANSCRIPT

Page 1: Linux and skype Architectural Styles

Faculty of Engineeeing and Technology

Master in Software Engineering Program

Software Design and Architecutre

Assignment #2 Architectural Styles

Prepared by

Mohammad Shawahneh 1155294

Instructor

Dr. Yousef Hassouneh

Page 2: Linux and skype Architectural Styles

Examine the architecture of Linux, as characterized by Bowman (Bowman, Holt, and Brewster 1999).

Which styles are involved, and how are they combined?

According to Bowman’s Conceptual architecture of linux kernel paper, linux itself is a layered

architectural styled system, figure 1 below is copied from his paper

Figure 1 Linux layers

Kernel itself according to same literature and to the case study paper is a Data Abstraction style

according to Shaw’s paper, and depending on Mehta paper of composing architectural styles

from architectural primitives, and following to the description of kernel subsystems described

in both Bowman’s papers we found his conclusion of Data Abstraction and object oriented style

feasible.

Mehta discussed 5 points that help define the style: structure, interaction, behavior, topology

and data, applying this to the described components of linux kernel empowers the findings of

Bowman.

Figure 2 shows the kernel subsystems copied from same paper.

Page 3: Linux and skype Architectural Styles

Figure 2 Kernel subsystems overview

In Data Abstraction styles objects data and their primitives are together working to provide an

abstract data type or kind of manager component responsible for handling and covering one

area functionalities and holding its required characteristics, as Bowman described each

subsystem is requested to provide his encapsulated functionality and this leads to Data

abstraction style, that component is responsible for the integrity of resources under its

responsibility, and calls to that manager or component is done by procedure call or method

invocation which is the case in the kernel and always as described by Bowman’s papers.

Page 4: Linux and skype Architectural Styles

Skype architecture and architecture styles:

Skype is the most popular VoIP application, which is widely used for sending instance text

messages, and placing audio and video calls and conferences as well as sending media, and

sharing screens. The widely known installation of it is a desktop/ mobile application that is

installed on the user’s machine: desktop, laptop, tablet, or mobile. It also provides an HTTPS

web access which provides same functionalities above but with limited settings possibilities.

Skype can work across NATs and firewalls and provide better quality and performance calls

than other VoIP services.

Skype architecture is mainly a Peer-to-Peer architectural style to execute all its communication

and collaboration functionalities that it enables Skype clients to execute; it also uses the client-

server architectural style for authenticating users by communicating to the Skype server. Some

peers are given more responsibilities and those peers are called in literature Super Nodes SN,

those nodes play a crucial vast role in the architecture and in executing the functionalities

Skype provide, a peer can be prompted to a SN according to criteria of the machine and

network performance and reachability as a public network. Figure 3 shows the main topology of

Skype architecture.

A SN has role in all process related to functions provided by Skype network, like login, calling,

searching for user, media transfer..etc. SN is considered from architectural perspective as a

distributed directory that empowers the scalability and robustness of the Skype network. And

as Skype prompt any usual peer to be a SN then it can create them dynamically as needed

according to its need.

The user must first register to Skype

Skype tries to connect the client to Skype network, by means of connecting it to SN, one of the SN

defined in his stored host Skype information stored on his machine data, in windows this data is stored

as registry values, if the Skype client SC failed to connect to a SN, Skype tries to connect him to another

SN, client have numerous number of SN in his cached data, if the nodes connection information was

cleared or changed to be invalid, then Skype will do predefined number of retires then the SC will rep ort

a failure to connect to Skype network.

When the SC successfully connected to Skype network, SC must authenticate himself to Skype, SC

connects to Skype server to authenticate the user name and password, the user name must be unique in

all Skype space, if the user authentication process failed the login process reports a failure.

Literature said that it is possible that the Skype server notifies the SC with the address of the SN to

connect upon login, and then the SC will inquire that SN for the online buddies among his list.

Page 5: Linux and skype Architectural Styles

Figure 3 Skype architecture

The user can call with his/her friends

If the friend is on a public network each one with public IP address, then SC establish a direct TCP

connection with that client, and the call is going directly from the caller SC to the callee buddy without

Page 6: Linux and skype Architectural Styles

any intermediate nodes, at this stage caller may send some messages to other online node found at the

login process.

In case of having NATs and Firewalls then the call is done with help of online Skype nodes, mainly the

connected SN, then SN forward the call to next SN until it reaches the callee, given that the call is

encrypted end-to-end, this will help the security of the call regardless its routing points and SNs that it

passed through.

References

[1] Mehta, Nikunj R., and Nenad Medvidovic. "Composing architectural styles from architectural primitives." ACM

SIGSOFT Software Engineering Notes. Vol. 28. No. 5. ACM, 2003.

[2] Bowman, Ivan. "Conceptual architecture of the linux kernel, 1998."

[3] Bowman, Ivan T., Richard C. Holt, and Neil V. Brewster. "Linux as a case study: Its extracted software

architecture." Proceedings of the 21st international conference on Software engineering . ACM, 1999.

[4] Baset, Salman A., and Henning Schulzrinne. "An analysis of the skype peer-to-peer internet telephony

protocol." arXiv preprint cs/0412017 (2004).

[5] Taylor, Richard N., Nenad Medvidovic, and Eric M. Dashofy. Software architecture: foundations, theory, and

practice. Wiley Publishing, 2009.