linux and skype architectural styles
TRANSCRIPT
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
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.
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.
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.
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
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.