SlideShare a Scribd company logo
1 of 26
INDUSTRIAL INTERNSHIP
EXPLORATION OF LIFE
CYCLE MANAGEMENT TOOLS
IN A TELECOM SOFTWARE
ENVIRONMENT
PROJECT REPORT
NAME OF THE COMPANY : Ericsson India Global
Services Pvt Ltd.
TENURE OF THE INTERNSHIP : 4th JUNE 2014 to
3rd JULY 2014
OFFICE LOCATION : Kolkata, West Bengal
SUBMITTED BY:
RITOBAN GUPTA
12BEC0469
B.TECH SENSE
1. ExecutiveSummary
In today’s agile software development environment, every professional IT organization, irrespective of
whether in software services or into software product business, uses various lifecycle management tools
to manage and track their projects efficiently and effectively. Telecom software development is no
different from this trend. Use of lifecycle management tools throughout the project lifecycle not only
increase collaboration between the project team members but also provides better insights into
projects in terms of work delivered by various team members to improve traceability, predictability and
repeatabilityof the analysis,developmentandtestingprocess.
As part of my summer internship, I got the exposure of some of the industry standard lifecycle
management and testing/ monitoring tools that professional telecom software projects use to manage
their development and testing process through my four weeks of association with one of the projects
that I was exposed to. As part of the internship project, I have put my best effort to explore the project
environment that I was exposed to and have built my theoretical understanding along with hands-on
exposure to some of the tools that were used by the seniors who were guiding me in my exploration
process.
This report captures the environment along with some of the tools that I got exposed to in course of my
internshipprogram.
1 Summary ofthe Project
As part of my internship program I was inducted into the team which was working on extending the
capabilityof OpenDaylightSDN ControllerusedinSoftwareDefinedNetworking.
1.1 About Software Defined Networking
Software Defined Networking is an approach to computer networking which evolved around 2008. SDN
allows network administrators to manage network services through abstraction of lower level
functionality. This is done by decoupling the system that makes decisions about where traffic is sent
(control plane) from the underlying systems that forward traffic to selected destinations (data plane).It
simplifies networking. SDN requires some method for the control plane to communicate with the data
plane and the same is achieved through OpenFlow protocol. SDN along with Network Virtual Functions
(NFV) is an emerging architecture that promises to be dynamic, manageable, cost effective and
adaptive,makingitideal forthe highbandwidthapplicationsof today.
Figure : Simplified View of SDN
The SDN Architecture is:
• Directly programmable-Network control is directly programmable because it is developed from
forwardingfunctions.
• Agile: Abstracting control from forwarding lets administrators dynamically adjust network wide
trafficflowtomeetchangingneeds
• Centrally managed: Network intelligence is centralized in SDN controllers that maintain a global
viewof the networkthatappearsto applicationsandpolicyenginesasasingle switch
• Programmatically configured: SDN lets network managers configure, manage, secure and
optimize networkresourcesveryquicklyviaautomatedSDN programs
• Open standards-based and vendor neutral: When implemented through open standards, SDN
simplifiesnetworkdesignbecause instructionsare providedbySDN controllers
1.2 About OpenDaylight Project
OpenDaylight is a community-led, open, industry-supported framework, for accelerating adoption,
fostering new innovation, reducing risk and creating a more transparent approach to Software-Defined
Networking. As a collaborative project under The Linux Foundation, OpenDaylight is structured using
open source development best practices, and is comprised of the leading organizations in the
technologyindustry.
Followingfigure illustratesthe layeredview of OpenDaylightSDN Controllerin details.
Figure 1: OpenDaylight SDN Controller Architecture
OpenDaylight is an open source project with a modular, pluggable, and flexible controller platform at its
core.As such,it can be deployedonanyhardware andoperatingsystemplatformthatsupportsJava.
The controller exposes open northbound APIs which are used by applications. The business logic and
algorithms reside in the applications. These applications use the controller to gather network
intelligence, run algorithms to perform analytics, and then use the controller to orchestrate the new
rules,if any,throughoutthe network.
The controller platform itself contains a collection of dynamically pluggable modules to perform needed
network tasks. There are a series of base network services for such tasks as understanding what devices
are contained within the network and the capabilities of each, statistics gathering, etc. In addition,
platform oriented services and other extensions can also be inserted into the controller platform for
enhancedSDN functionality.
The southbound interface is capable of supporting multiple protocols (as separate plugins), e.g.
OpenFlow 1.0, OpenFlow 1.3, BGP-LS, etc. These modules are dynamically linked into a Service
Abstraction Layer (SAL). The SAL exposes device services to which the modules north of it are written.
The SAL determines how to fulfill the requested service irrespective of the underlying protocol used
betweenthe controllerandthe networkdevices.
2 ExplorationofOpenDaylight Development Environment
As part of my internship assignment, I was asked to download the OpenDaylight Hydrogen Release Base
Edition and setup the development environment to explore various lifecycle management tools that are
used by the open developer community working and contributing to the OpenDaylight development and
extensionthroughoutthe world.
I downloadedthe OpenDaylightHydrogenRelease VirtualBox Image fromthe followinglocation:
http://www.opendaylight.org/software/downloads/hydrogen-base-10
The Virtualbox image hasthe followingcomponentspreinstalled:
1. Java 1.7 OpenJDK
2. OpenDaylightreleasedistributions
3. mininet2.1.0
4. OpenvSwitch2.0.0
5. CPqDofsoftswitch13
6. Robotframework2.8.3
7. integrationtestscripts
8. VTN coordinator
VMconfiguration: odl_desktop:Ubuntu13.04 desktop(GUI),20GB HDD, ova file size=3GB
The virtual image also has the following lifecycle management and monitoring testing tools preinstalled
for developmentandcollaboration.
Tool Description
Maven BuildTool
Git Source Code ManagementSystem
Wireshark NetworkTrafficMonitoring/TracingTool
3 Training Assignments
I was giventhe followingtwoassignmentsto complete aspartof my summertrainingprogram.
3.1 Assignment 1
Sl. No. AssignmentDescription Objective
1 a) Study the Open Systems Interconnection
model (OSI) that characterizes and
standardizes the internal functions of a
communication system by partitioning it into
abstractionlayers.
b) Study the TCP/IP communication protocol
that is used over the Internet and study it’s
mappingwiththe OSImodel
c) Develop familiarity on how to use Wireshark
packet analyzer to monitor packets in any
networkinterface.
d) Configure and use Wireshark to trace the
HTTP messages exchange between the Web
Server and Web Browser when somebody
access familiar website like “google” from
his/hercomputer.
e) Study the Wireshark packet trace and
compare it with the TCP/IP theoretical model
to conclude that peer to peer communication
usingHTTP followsthe TCP/IPmodel
a) Develop understanding of data
communication and the TCP/IP
protocol suite along with the various
layered protocols involved in the
TCP/IPcommunication
b) Develop hands-on exposure to use a
communication protocol analyzer and
verify theoretical understanding of
TCP/IP protocol suite by tracing
packetsof a simple HTTPsession.
3.2 Assignment 2
Sl. No. Assignment Description Objective
2 a) Develop basic understanding of software
lifecycle management and various functions
involvedinsoftwarelifecycle management.
b) Understand the functionality of Source Code
Control System and Build Management
System
c) Develop awareness on industry standard
source code control system, GIT and Build
ManagementSystem,Maven
d) Use GIT to replicate the code-base of
Opendaylight SDN Controller into the
development environment from the public
source code repository
e) Perform a successful compilation of default
frameworkcode usingMavenas BuildTool
a) Understand basic functionality of
software lifecycle management
functions
b) Understand the role of source code
management system and Build
Management system in large and
complex software development
projects
c) Gain hands-on exposure with GIT and
Maven tools and their practical
applications in the telcom software
industry.
4 Executionof Assignment 1
4.1 Study of Open Systems Interconnection (OSI) Model
4.1.1 AboutOSI Model
OSI(OpenSystemsInterconnection) isastandarddescriptionor"referencemodel"forhow messages
shouldbe transmittedbetweenanytwopointsina telecommunicationnetwork.Itspurpose istoguide
productimplementerssothattheirproductswill consistentlyworkwithotherproducts.The reference
model definessevenlayersof functionsthattake place ateach endof a communication. The following
figure representsthe sevenlayersdescribedinthe OSIreference model:
Figure 2: OSI reference model
OSI Layer Description
Layer 7: The
applicationlayer
Thisis the layerat whichcommunicationpartnersare identified,qualityof
service isidentified,userauthenticationandprivacyare considered,andany
constraintsondata syntax are identified.(Thislayerisnotthe application
itself,althoughsomeapplicationsmayperformapplicationlayerfunctions.)
Layer 6: The
presentationlayer
Thisis a layer,usuallypartof an operatingsystem, thatconvertsincomingand
outgoingdatafrom one presentationformattoanother(forexample,froma
textstreamintoa popupwindow withthe newlyarrivedtext).Sometimes
calledthe syntax layer.
Layer 5: The session
layer
Thislayersetsup,coordinates,andterminatesconversations, exchanges,and
dialogsbetweenthe applicationsateachend.Itdealswithsessionand
connectioncoordination
Layer 4: The transport
layer
Thislayermanagesthe end-to-endcontrol (forexample,determiningwhether
all packetshave arrived) anderror-checking.Itensurescompletedata
transfer,
Layer 3: The network
layer
Thislayerhandlesthe routingof the data (sendingitinthe rightdirectionto
the right destinationonoutgoingtransmissionsandreceivingincoming
transmissionsatthe packet level).The networklayerdoesroutingand
forwarding
Layer 2: The data-link
layer
Thislayerprovidessynchronizationforthe physical level anddoesbit-stuffing
for stringsof 1's inexcessof 5. It furnishestransmissionprotocol knowledge
and management.
Layer 1: The physical
layer
Thislayerconveysthe bitstreamthroughthe networkat the electrical and
mechanical level.Itprovidesthe hardware meansof sendingandreceiving
data on a carrier
4.1.2 Peer to PeerCommunicationinOSIModel
OSI divides telecommunication into seven layers. The layers are in two groups. The upper four layers are
used whenever a message passes from or to a user. The lower three layers (up to the network layer) are
used when any message passes through the host computer. Messages intended for this computer pass
to the upper layers. Messages destined for some other host are not passed up to the upper layers but
are forwardedtoanotherhost.
AT the sender end,every layer in the OSI model appends the SDU (Service Data Unit) passed onfrom the
upper layer, addsits own protocol header to form the Packet Data Unit (PDU) and passes the PDU to the
layer immediately lower to it. The PDU becomes SDU to the lower layer that gets further processed in
the same fashion. At the receiver end packets are decoded in the reverse fashion. The following figure
illustratesthispeer-to-peercommunicationmechanismfollowedinthe packetcommunicationworld.
Figure 3: Peer-to-Peer Communication in OSI Model
AlthoughOSIisnotalwaysstrictlyadheredtointermsof keepingrelatedfunctionstogetherinawell-
definedlayer,manyif notmostproductsinvolvedintelecommunicationmake anattempttodescribe
theminrelationtothe OSI model.
4.2 Study the TCP/IP communication protocol
4.2.1 AboutTCP/IPModel
The TCP/IP protocol suite allows computers of all sizes, from many different computer vendors, running
totally different operating systems, to communicate with each other.Networking protocols are normally
developed in layers, with each layer responsible for a different facet of the communications. A protocol
suite, such as TCP/IP, is the combination of different protocols at various layers. TCP/IP is normally
considered to be a 4-layer communication protocol. The following table shows the various layers in the
TCP/IPcommunicationprotocol suite.
OSI Layer Example of Protocols in TCP/IP Suite
ApplicationLayer Telnet,FTP,e-mail,etc.
Transport layer TCP, UDP
Network Layer IP,ICMP, IGMP
Link Layer device driverandinterface card
 The link layer, sometimes called the data-link layer or network interface layer, normally includes
the device driver in the operating system and the corresponding network interface card in the
computer. Together they handle all the hardware details of physically interfacing with the cable
(or whatevertype of mediaisbeingused).
 The network layer (sometimes called the internet layer) handles the movement of packets
around the network. Routing of packets, for example, takes place here. IP (Internet Protocol),
ICMP (Interne Control Message Protocol), and IGMP (Internet Group Management Protocol)
provide the networklayerinthe TCP/IPprotocol suite.
 The transport layer provides a flow of data between two hosts, for the application layer above.
In the TCP/IP protocol suite there are two vastly different transport protocols: TCP
(TransmissionControl Protocol) andUDP(UserDatagram Protocol).
o TCP provides a reliable flow of data between two hosts. It is concerned with things such
as dividing the data passed to it from the application into appropriately sized chunks for
the network layer below, acknowledging received packets, setting timeouts to make
certain the other end acknowledges packets that are sent, and so on. Because this
reliable flow of data is provided by the transport layer, theapplication layer can ignore
all these details.
o UDP, on the other hand, provides a much simpler service to the application layer. It just
sends packets of data called datagrams from one host to the other, but there is no
guarantee that the datagrams reach the other end. Any desired reliability must be
added by the application layer. There is a use for each type of transport protocol, which
we'll see whenwe lookatthe differentapplicationsthatuse TCPandUDP.
 The application layer handles the details of the particular application. There are many common
TCP/IPapplicationsthatalmosteveryimplementationprovides:
o Telnetforremote login,
o FTP,the File TransferProtocol,
o SMTP, the Simple Mail Transferprotocol,forelectronicmail,
o SNMP,the Simple NetworkManagementProtocol
o Andmany more.
4.2.2 TCP/IPCommunicationProtocol againsttheOSI ReferenceModel
The following figure describes the mapping of the various protocols found in TCP/IP Protocol suite
againstthe OSI reference model.
Figure 4: TCP/IP protocols layers vs. OSI Layers
It is evident from the diagram that TCP/IP, although haven’t implemented the all seven layers of the OSI
reference model distinctively, but functionality wise the 4 layer TCP/IP model can be mapped to the 7
layer OSI reference model easily. Primarily the Layer 1 and Layer 2 (Physical and Data Link Layer) of OSI
model gets mapped to the Network Access Layer or Link Layer in the TCP/IP model whereas Layer 5,6
and 7 of OSI Layeris mappedtothe ApplicationLayerof TCP/IPmodel.
4.2.3 Aboutthe WiresharkProtocol Analyzer
Wireshark is a free and open source pocket analyzer. It is used for network troubleshooting, analysis of
software and communications protocol development and education. It runs on Linux, Solaris, Windows and
other Unix based operating systems. Wireshark is a software that "understands" the structure of different
networking protocols. It can parse and display the fields, along with their meanings as specified by different
networking protocols. Wireshark uses pcap to capture packets, so it can only capture packets on the types of
networks that pcap supports.
 Data can be captured "from the wire" from a live network connection or read from a file of already-
captured packets
 Live data can be read from a number of types of network
 Captured network data can be browsed via a GUI or a terminal
 Captured files can be programmatically edited or converted via command-line switches to the
"editcap" program.
 Data display can be refined using a display filters Plug ins can be created for dissecting new protocols
 RAW USB traffic can be captured
Following figure shows the look & feel of the Wireshark ProtocolAnalyzer:
Figure 5: Wireshisk Protocol Analyzer User Interface
4.2.4 Tracing HTTPmessagesexchangebetweentheWebServerandWeb Browser using
Wireshark
4.2.4.1 Environmentsetup
Wiresharkisa free andopensource packet analyzer. Itisopenedinthe machine.The machine isapart
of the office LAN.Ourobjective istofindoutandanalyze the packettransferwhenacommonwebsite
such as Google isaccessedfrommyLAN machine.OnopeningWiresharkwe needtoselectthe option
“eth0”. Thisreferstothe Ethernetnetworkconnection.Tofindoutthe IPaddressof the machine,open
a Terminal box andtype in the command:
Ifconfig–a
Figure 6: Finding out the IP address
A betterandsimplifiedschematicviewof the workingenvironmentwhileusingWiresharkisshown
belowinthe figure:
Ericsson Office LAN
My machine
169.144.53.4
0
Proxy
Server
Cloud Computingwww.google.com
4.2.4.2 ConfigurationinWireshark
As perour projectrequirementthe aimof the experimentistosee and analyze the packetsthatflow
whenwe accessa commonwebsite suchasGoogle.Ithas to be furtherfilteredinaway suchthat the
final listof packetsshouldshowonlythe timeswheneitherthe source ordestinationIPaddressismine.
The stepsto configure the Wiresharksoas to meetourrequirementare:
 In the top side of the screenan optioncalled“Expression…”isseen.Whenwe clickonthat a
whole listof differentconfigurationoptionscome.
 We searchfor the optionHTTP and clickonit, a sub menuappearswithalistof HTTP
expressionsforfurtherconfiguration
 Selectthe option”http.request.uri-RequestURI(HTTPRequest)”inthe fieldname column
 In the relationcolumnselectmatchesandtype inthe URL (i.e www.google.com) andselectOK
 Nowuponseeingthe option“Filter”onthe top of the screenwe see that ithas beenfilteredto
showonlythe packetscontainingGoogle
 Nowwe complete the Filteroptionbyaddingip.addr=“169.144.53.40”
 We thenclickon applyitisseenthat the requiredresultisshown
Thus onthe filterscreenoptionithastobe: http.request.uri contains “google” &&
ip.addr==”169.144.53.40”
4.2.4.3 WiresharkMonitoringResult
Figure 7: HTTP Filter
Figure 8: Applying the Filter
4.2.4.4 Analysis ofresultagainstthe TCP/IPmodel
Whenany individual packetof dataisclickedforfurtherinformationabout the free flowingpacketsitis
seenthatit isverysimilartothe TCP/IPmodel seenbefore. Itcanbe comparedand the similaritiescan
be noteddown.The HTTP feededinthe filtermakesuse of the File TransferProtocol (FTP) whichinturn
makesuse of the InternetProtocol (IP) whichisusedbythe linklayer.Ithasbeenexplainedbrieflywith
the helpof the followingfigures.
If we notice the two
figuresinsidethe
picture carefullywe
see that the
HyppertextTransfer
Protocol resembles
the Applicationlayer
inthe TCP/IPprotocol
suite.Itgivesusthe
hostand proxy
connectiondetails.
Figure 9: Applying both the Filters
On seeingitcarefully
we can conclude that
the Transmission
control protocol is
nothingbutthe
Transport layer.It
givesthe source and
destinationportas
well asthe
hexadecimalvalue of
flagsand checksum.
The InternetControl
Protocol issimilarto
the Internetlayeras
seeninthe TCP/IP
protocol suite.Itgives
us the headeras well
as the total length.It
alsogivesusthe
source and
destinationIPaddress.
The destinationIP
addressisthat of a
local proxyserverand
not Google.
Last but not the
leastthe Ethernet
layeracts as the
NetworkInterface
or the Link layerin
the TCP/IPprotocol
suite.
6. Execution of Assignment2
About Application Lifecycle management
Abbreviated also as ALM, Application Lifecycle Management refers to the capability to integrate,
coordinate and manage the different phases of the software delivery process. Application Lifecycle
Managementencompasses the followingmajorfunctionality:
 ProjectPlanning&Tracking
 Software architecture anddesignmanagement
 Source Code Control to enable collaborativedevelopment
 BuildandRelease Management
 Change management
 TestManagement
 Projectmanagement
Throughout the various phases of Software developmentlifecycle, various tools are used to perform the
above mentioned activities in a systematic and collaborative manner for better management of
software deliveryprocess.
Figure 10: Application Lifecycle Management Functions
Out of these 8 applicationlifecyclemanagementfunctionswe putourfocusonlyontwo of them.
 Source Code Control- We use Git. This is a source code control management function. In
software development Git is a distributed revision control and source code management (SCM)
system with an emphasis on speed. Git was initially designed and developed for Linux
development in 2005. Every Git working directory is a fully fledged repository with complete
history and full version tracking capabilities, not dependant on a central server. Git was
originally designed as a low level version control system engine on top of which others could
write front ends. Some characteristics of Git are strong support for non-linear development,
distributed development, compatibility with existing systems, efficient handling of large
projects, cryptographic authentication of history, toolkit based design, pluggable merge
strategies, garbage accumulates unless collected, periodic explicit object packing, resolve,
recursive and octopus. Git has two data structures a mutable index that caches information
about the working directory and the next revision to be committed and an immutable append
only database Git is primarily developed on Linux, although it also supports most major
operatingsystemsincludingMicrosoftWindows.
 Build and Release Management : Apache Maven is a type of build and release management.
Maven is a build automation tool used primarily for Java Projects. Maven addresses two aspects
of building software. First it describes how software is built, and second, it describes its
dependencies. An XML File describes the software project being built, its dependencies on other
Project
Planning
Source
Code
Control
Integrated
IDE
Artifact &
Dependen
cy
Manageme
nt
Continuou
s
Integration
Code
Quality
Review
Build &
Release
Manageme
nt
Issue
Tracking
Application
Lifecycle
Management
Functiona
external modules and components, the build order, directories and required plug-ins. Maven
dynamically downloads Java libraries and Maven plug-ins from one or more repositories such as
the Maven 2 and stores them in a local cache. Maven can be also used to build and manage
projects written in C#, Ruby, Scala and other languages. Maven is built using a plugin-based
architecture that allows it to make use of any application controllable through standard input.
Theoretically, this would allow anyone to write plugins to interface with build toolsfor any other
language.Inrealitysupportanduse forlanguagesotherthanJava hasbeenminimal.
A Project Object Model (POM) provides the entire configuration for a single project. General
configuration covers the project name, its owner and its dependencies on other projects. One
can also configure individual phases of the build process, which are implemented as plugins.
Larger projects should be divided into several modules, or sub projects each with its own POM.
One can write a root POM through which one can compile all the modules with a single
command.POM’salso can inheritconfigurationfromotherPOM’s.
4.3 Creating a Repository on Git
You can create a Git repositoryintwoways.One of the twoways isCloninganexistingrepository. If you
wantto get a copy of an existingGitrepository — forexample,aprojectyou’dlike tocontribute to —
the commandyou needis gitclone .If you’re familiarwithotherVCSsystemssuchas Subversion,you’ll
notice thatthe commandis clone and not checkout.Thisis an importantdistinction — Gitreceivesa
copy of nearlyall data that the serverhas.Everyversionof everyfile forthe historyof the projectis
pulleddownwhenyourun gitclone .Infact,if yourserverdiskgetscorrupted,youcan use any of the
clonesonany clienttosetthe serverbackto the state it was inwhenitwas cloned.OpenVirtual Box
and inside aTerminal type the followingcommand:
git clone https://git.opendaylight.org/gerrit/p/controller.git
The outputis as shownbelow.
Figure 11: Creating a Git Repository
4.4 Hands-on Approach on Maven
Maven is a Java tool. So we must have Java installed on our work machines. First we download Maven.
Afterthat,type the followinginaterminal orin a commandprompt:
mvn --version
It should print out your installed version of Maven, for example:
Apache Maven3.0.5
Maven home: D:apache-maven-3.0.5bin..
Java version: 1.6.0_25, vendor: Sun Microsystems Inc.
Java home: C:Program FilesJavajdk1.6.0_25jre
Default locale: nl_NL, platform encoding: Cp1252
OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
You will need somewhere for your project to reside, create a directory somewhere and start a shell in
that directory.Onyourcommandline,execute the followingMavengoal:
mvnarchetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-
archetype-quickstart-DinteractiveMode=false
You will notice that the generate goal created a directory with the same name given as the artifactId.
Change intothat directory.
cd my-app
The pom.xml file is the core of a project's configuration in Maven. It is a single configuration file that
contains the majority of information required to build a project in just the way you want. The POM is
huge and can be daunting in its complexity, but it is not necessary to understand all of the intricacies
justyetto use it effectively.Thisproject'sPOMis:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.mycompany.app</groupId>
<artifactId>my-app</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
To buildthe projectwe needthe followingsyntax
mvn package
The command line will printoutvariousactions,andendwiththe following:
...
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2 seconds
[INFO] Finished at: Thu Jul 07 21:34:52 CEST 2011
[INFO] Final Memory: 3M/6M
[INFO] ------------------------------------------------------------------------
You may testthe newlycompiledandpackagedJARwiththe following command:
java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
Which will print the quintessential:
Hello World!
We executed the Maven goal archetype:generate, and passed in various parameters to that goal. The
prefix archetype is the plugin that contains the goal. If you are familiar with ant, you may conceive of
this as similar to a task. This goal created a simple project based upon an archetype. Suffice it to say for
now that a plugin is a collection of goals with a general common purpose. For example the jboss-maven-
plugin,whose purposeis"deal withvariousjbossitems".
4.4.1.1 Steps to Clean and InstallMaven
In the virtual machine the followingcommandsare typedinaterminal:
cd controller/opendaylight/distribution/opendaylight
mvn clean install
Figure 12: Clean and Install Maven
4.4.1.2 Other Concepts
 Source Code Control System (SCCS) isanearly revisioncontrol system, gearedtoward
program source code and othertextfiles.
 A BuildingManagementSystem (BMS) ora (more recentterminology) BuildingAutomation
System(BAS) isa computer-basedcontrol systeminstalledinbuildingsthatcontrolsand
monitorsthe building’smechanical andelectrical equipmentsuchas ventilation,lighting,power
systems,fire systems,andsecuritysystems.A BMSconsistsof software andhardware;the
software program,usuallyconfiguredinahierarchical manner,canbe proprietary,usingsuch
protocolsas C-bus, Profibus,andsoon.
 Applicationlifecyclemanagement (ALM) isthe productlifecycle
management(governance, development,andmaintenance)of applicationsoftware.It
encompasses requirementsmanagement, software architecture, computer
programming, software testing,software maintenance, change management,project
management,andrelease management

More Related Content

What's hot

LUXproject Functionality Overview R12.1
LUXproject Functionality Overview R12.1LUXproject Functionality Overview R12.1
LUXproject Functionality Overview R12.1Alexander Zagvozdin
 
LUXproject functionality overview R11.8
LUXproject functionality overview R11.8LUXproject functionality overview R11.8
LUXproject functionality overview R11.8Alexander Zagvozdin
 
Iac evolutions
Iac evolutionsIac evolutions
Iac evolutionsPrancer Io
 
A system for performance evaluation of embedded software
A system for performance evaluation of embedded softwareA system for performance evaluation of embedded software
A system for performance evaluation of embedded softwareMr. Chanuwan
 
Evaluating Open Source Security Software
Evaluating Open Source Security SoftwareEvaluating Open Source Security Software
Evaluating Open Source Security SoftwareJohn ILIADIS
 
SathishKumar Natarajan
SathishKumar NatarajanSathishKumar Natarajan
SathishKumar NatarajanSathish Kumar
 
OpenFlowHub Webinar - Indigo v2.0 and LOXI
OpenFlowHub Webinar - Indigo v2.0 and LOXIOpenFlowHub Webinar - Indigo v2.0 and LOXI
OpenFlowHub Webinar - Indigo v2.0 and LOXIopenflowhub
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)IRJET Journal
 
Crap shit head
Crap shit headCrap shit head
Crap shit headShash
 
Performance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwarePerformance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwareMr. Chanuwan
 

What's hot (14)

LUXproject Functionality Overview R12.1
LUXproject Functionality Overview R12.1LUXproject Functionality Overview R12.1
LUXproject Functionality Overview R12.1
 
LUXproject functionality overview R11.8
LUXproject functionality overview R11.8LUXproject functionality overview R11.8
LUXproject functionality overview R11.8
 
Iac evolutions
Iac evolutionsIac evolutions
Iac evolutions
 
A system for performance evaluation of embedded software
A system for performance evaluation of embedded softwareA system for performance evaluation of embedded software
A system for performance evaluation of embedded software
 
Top DevOps tools
Top DevOps toolsTop DevOps tools
Top DevOps tools
 
Evaluating Open Source Security Software
Evaluating Open Source Security SoftwareEvaluating Open Source Security Software
Evaluating Open Source Security Software
 
SathishKumar Natarajan
SathishKumar NatarajanSathishKumar Natarajan
SathishKumar Natarajan
 
Thesis_Final
Thesis_FinalThesis_Final
Thesis_Final
 
OpenFlowHub Webinar - Indigo v2.0 and LOXI
OpenFlowHub Webinar - Indigo v2.0 and LOXIOpenFlowHub Webinar - Indigo v2.0 and LOXI
OpenFlowHub Webinar - Indigo v2.0 and LOXI
 
Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)Dockerization (Replacement of VMs)
Dockerization (Replacement of VMs)
 
Documentation
DocumentationDocumentation
Documentation
 
Crap shit head
Crap shit headCrap shit head
Crap shit head
 
Raghavendra Prasad Reddy_resume
Raghavendra Prasad Reddy_resumeRaghavendra Prasad Reddy_resume
Raghavendra Prasad Reddy_resume
 
Performance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwarePerformance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded software
 

Similar to Internship Report

MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDMACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDIRJET Journal
 
WWT Software-Defined Networking Guide
WWT Software-Defined Networking GuideWWT Software-Defined Networking Guide
WWT Software-Defined Networking GuideJoel W. King
 
Collaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudCollaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudTesora
 
IRJET- Build SDN with Openflow Controller
IRJET-  	  Build SDN with Openflow ControllerIRJET-  	  Build SDN with Openflow Controller
IRJET- Build SDN with Openflow ControllerIRJET Journal
 
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersSummit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersOPNFV
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined NetworksShreeya Shah
 
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...IJITCA Journal
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_expsurekhakadi
 
SDN and NFV Friends or Enemies ?
SDN and NFV Friends or Enemies ?SDN and NFV Friends or Enemies ?
SDN and NFV Friends or Enemies ?Kedar Raval
 
Know about SDN and NFV
Know about SDN and NFVKnow about SDN and NFV
Know about SDN and NFVKedar Raval
 
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdfTheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdfFernando Velez Varela
 
SDN and NFV: Friends or Enemies
SDN and NFV: Friends or EnemiesSDN and NFV: Friends or Enemies
SDN and NFV: Friends or EnemiesJustyna Bak
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation SystemApoorva Chandra
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayDivya Watson
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 

Similar to Internship Report (20)

MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CDMACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
MACHINE LEARNING AUTOMATIONS PIPELINE WITH CI/CD
 
WWT Software-Defined Networking Guide
WWT Software-Defined Networking GuideWWT Software-Defined Networking Guide
WWT Software-Defined Networking Guide
 
Collaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled CloudCollaborating with OpenDaylight for a Network-Enabled Cloud
Collaborating with OpenDaylight for a Network-Enabled Cloud
 
IRJET- Build SDN with Openflow Controller
IRJET-  	  Build SDN with Openflow ControllerIRJET-  	  Build SDN with Openflow Controller
IRJET- Build SDN with Openflow Controller
 
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN ControllersSummit 16: NetIDE: Integrating and Orchestrating SDN Controllers
Summit 16: NetIDE: Integrating and Orchestrating SDN Controllers
 
Nareshkumar_CV
Nareshkumar_CVNareshkumar_CV
Nareshkumar_CV
 
Software Defined Networks
Software Defined NetworksSoftware Defined Networks
Software Defined Networks
 
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
PROTOTYPE APPLICATION IN ANDROID PLATFORM FOR SYSTEM ADMINISTRATION OF HPC CL...
 
Surekha_haoop_exp
Surekha_haoop_expSurekha_haoop_exp
Surekha_haoop_exp
 
SDN and NFV Friends or Enemies ?
SDN and NFV Friends or Enemies ?SDN and NFV Friends or Enemies ?
SDN and NFV Friends or Enemies ?
 
Know about SDN and NFV
Know about SDN and NFVKnow about SDN and NFV
Know about SDN and NFV
 
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdfTheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
TheimplementationofSoftwareDefinedNetworkinginenterprisenetworks.pdf
 
Balaji Resume
Balaji ResumeBalaji Resume
Balaji Resume
 
SDN and NFV: Friends or Enemies
SDN and NFV: Friends or EnemiesSDN and NFV: Friends or Enemies
SDN and NFV: Friends or Enemies
 
Web-Based Lighting Automation System
Web-Based Lighting Automation SystemWeb-Based Lighting Automation System
Web-Based Lighting Automation System
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
Report-SDN
Report-SDNReport-SDN
Report-SDN
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with Agile
 
Guruprasad
GuruprasadGuruprasad
Guruprasad
 
DesignofSDNmanageableswitch.pdf
DesignofSDNmanageableswitch.pdfDesignofSDNmanageableswitch.pdf
DesignofSDNmanageableswitch.pdf
 

Internship Report

  • 1. INDUSTRIAL INTERNSHIP EXPLORATION OF LIFE CYCLE MANAGEMENT TOOLS IN A TELECOM SOFTWARE ENVIRONMENT
  • 2. PROJECT REPORT NAME OF THE COMPANY : Ericsson India Global Services Pvt Ltd. TENURE OF THE INTERNSHIP : 4th JUNE 2014 to 3rd JULY 2014 OFFICE LOCATION : Kolkata, West Bengal SUBMITTED BY: RITOBAN GUPTA 12BEC0469 B.TECH SENSE
  • 3. 1. ExecutiveSummary In today’s agile software development environment, every professional IT organization, irrespective of whether in software services or into software product business, uses various lifecycle management tools to manage and track their projects efficiently and effectively. Telecom software development is no different from this trend. Use of lifecycle management tools throughout the project lifecycle not only increase collaboration between the project team members but also provides better insights into projects in terms of work delivered by various team members to improve traceability, predictability and repeatabilityof the analysis,developmentandtestingprocess. As part of my summer internship, I got the exposure of some of the industry standard lifecycle management and testing/ monitoring tools that professional telecom software projects use to manage their development and testing process through my four weeks of association with one of the projects that I was exposed to. As part of the internship project, I have put my best effort to explore the project environment that I was exposed to and have built my theoretical understanding along with hands-on exposure to some of the tools that were used by the seniors who were guiding me in my exploration process. This report captures the environment along with some of the tools that I got exposed to in course of my internshipprogram.
  • 4. 1 Summary ofthe Project As part of my internship program I was inducted into the team which was working on extending the capabilityof OpenDaylightSDN ControllerusedinSoftwareDefinedNetworking. 1.1 About Software Defined Networking Software Defined Networking is an approach to computer networking which evolved around 2008. SDN allows network administrators to manage network services through abstraction of lower level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (control plane) from the underlying systems that forward traffic to selected destinations (data plane).It simplifies networking. SDN requires some method for the control plane to communicate with the data plane and the same is achieved through OpenFlow protocol. SDN along with Network Virtual Functions (NFV) is an emerging architecture that promises to be dynamic, manageable, cost effective and adaptive,makingitideal forthe highbandwidthapplicationsof today. Figure : Simplified View of SDN The SDN Architecture is: • Directly programmable-Network control is directly programmable because it is developed from forwardingfunctions. • Agile: Abstracting control from forwarding lets administrators dynamically adjust network wide trafficflowtomeetchangingneeds • Centrally managed: Network intelligence is centralized in SDN controllers that maintain a global viewof the networkthatappearsto applicationsandpolicyenginesasasingle switch
  • 5. • Programmatically configured: SDN lets network managers configure, manage, secure and optimize networkresourcesveryquicklyviaautomatedSDN programs • Open standards-based and vendor neutral: When implemented through open standards, SDN simplifiesnetworkdesignbecause instructionsare providedbySDN controllers 1.2 About OpenDaylight Project OpenDaylight is a community-led, open, industry-supported framework, for accelerating adoption, fostering new innovation, reducing risk and creating a more transparent approach to Software-Defined Networking. As a collaborative project under The Linux Foundation, OpenDaylight is structured using open source development best practices, and is comprised of the leading organizations in the technologyindustry. Followingfigure illustratesthe layeredview of OpenDaylightSDN Controllerin details. Figure 1: OpenDaylight SDN Controller Architecture OpenDaylight is an open source project with a modular, pluggable, and flexible controller platform at its core.As such,it can be deployedonanyhardware andoperatingsystemplatformthatsupportsJava. The controller exposes open northbound APIs which are used by applications. The business logic and algorithms reside in the applications. These applications use the controller to gather network intelligence, run algorithms to perform analytics, and then use the controller to orchestrate the new rules,if any,throughoutthe network.
  • 6. The controller platform itself contains a collection of dynamically pluggable modules to perform needed network tasks. There are a series of base network services for such tasks as understanding what devices are contained within the network and the capabilities of each, statistics gathering, etc. In addition, platform oriented services and other extensions can also be inserted into the controller platform for enhancedSDN functionality. The southbound interface is capable of supporting multiple protocols (as separate plugins), e.g. OpenFlow 1.0, OpenFlow 1.3, BGP-LS, etc. These modules are dynamically linked into a Service Abstraction Layer (SAL). The SAL exposes device services to which the modules north of it are written. The SAL determines how to fulfill the requested service irrespective of the underlying protocol used betweenthe controllerandthe networkdevices.
  • 7. 2 ExplorationofOpenDaylight Development Environment As part of my internship assignment, I was asked to download the OpenDaylight Hydrogen Release Base Edition and setup the development environment to explore various lifecycle management tools that are used by the open developer community working and contributing to the OpenDaylight development and extensionthroughoutthe world. I downloadedthe OpenDaylightHydrogenRelease VirtualBox Image fromthe followinglocation: http://www.opendaylight.org/software/downloads/hydrogen-base-10 The Virtualbox image hasthe followingcomponentspreinstalled: 1. Java 1.7 OpenJDK 2. OpenDaylightreleasedistributions 3. mininet2.1.0 4. OpenvSwitch2.0.0 5. CPqDofsoftswitch13 6. Robotframework2.8.3 7. integrationtestscripts 8. VTN coordinator VMconfiguration: odl_desktop:Ubuntu13.04 desktop(GUI),20GB HDD, ova file size=3GB The virtual image also has the following lifecycle management and monitoring testing tools preinstalled for developmentandcollaboration. Tool Description Maven BuildTool Git Source Code ManagementSystem Wireshark NetworkTrafficMonitoring/TracingTool
  • 8. 3 Training Assignments I was giventhe followingtwoassignmentsto complete aspartof my summertrainingprogram. 3.1 Assignment 1 Sl. No. AssignmentDescription Objective 1 a) Study the Open Systems Interconnection model (OSI) that characterizes and standardizes the internal functions of a communication system by partitioning it into abstractionlayers. b) Study the TCP/IP communication protocol that is used over the Internet and study it’s mappingwiththe OSImodel c) Develop familiarity on how to use Wireshark packet analyzer to monitor packets in any networkinterface. d) Configure and use Wireshark to trace the HTTP messages exchange between the Web Server and Web Browser when somebody access familiar website like “google” from his/hercomputer. e) Study the Wireshark packet trace and compare it with the TCP/IP theoretical model to conclude that peer to peer communication usingHTTP followsthe TCP/IPmodel a) Develop understanding of data communication and the TCP/IP protocol suite along with the various layered protocols involved in the TCP/IPcommunication b) Develop hands-on exposure to use a communication protocol analyzer and verify theoretical understanding of TCP/IP protocol suite by tracing packetsof a simple HTTPsession. 3.2 Assignment 2 Sl. No. Assignment Description Objective 2 a) Develop basic understanding of software lifecycle management and various functions involvedinsoftwarelifecycle management. b) Understand the functionality of Source Code Control System and Build Management System c) Develop awareness on industry standard source code control system, GIT and Build ManagementSystem,Maven d) Use GIT to replicate the code-base of Opendaylight SDN Controller into the development environment from the public source code repository e) Perform a successful compilation of default frameworkcode usingMavenas BuildTool a) Understand basic functionality of software lifecycle management functions b) Understand the role of source code management system and Build Management system in large and complex software development projects c) Gain hands-on exposure with GIT and Maven tools and their practical applications in the telcom software industry.
  • 9. 4 Executionof Assignment 1 4.1 Study of Open Systems Interconnection (OSI) Model 4.1.1 AboutOSI Model OSI(OpenSystemsInterconnection) isastandarddescriptionor"referencemodel"forhow messages shouldbe transmittedbetweenanytwopointsina telecommunicationnetwork.Itspurpose istoguide productimplementerssothattheirproductswill consistentlyworkwithotherproducts.The reference model definessevenlayersof functionsthattake place ateach endof a communication. The following figure representsthe sevenlayersdescribedinthe OSIreference model: Figure 2: OSI reference model OSI Layer Description Layer 7: The applicationlayer Thisis the layerat whichcommunicationpartnersare identified,qualityof service isidentified,userauthenticationandprivacyare considered,andany constraintsondata syntax are identified.(Thislayerisnotthe application itself,althoughsomeapplicationsmayperformapplicationlayerfunctions.) Layer 6: The presentationlayer Thisis a layer,usuallypartof an operatingsystem, thatconvertsincomingand outgoingdatafrom one presentationformattoanother(forexample,froma textstreamintoa popupwindow withthe newlyarrivedtext).Sometimes calledthe syntax layer. Layer 5: The session layer Thislayersetsup,coordinates,andterminatesconversations, exchanges,and dialogsbetweenthe applicationsateachend.Itdealswithsessionand connectioncoordination
  • 10. Layer 4: The transport layer Thislayermanagesthe end-to-endcontrol (forexample,determiningwhether all packetshave arrived) anderror-checking.Itensurescompletedata transfer, Layer 3: The network layer Thislayerhandlesthe routingof the data (sendingitinthe rightdirectionto the right destinationonoutgoingtransmissionsandreceivingincoming transmissionsatthe packet level).The networklayerdoesroutingand forwarding Layer 2: The data-link layer Thislayerprovidessynchronizationforthe physical level anddoesbit-stuffing for stringsof 1's inexcessof 5. It furnishestransmissionprotocol knowledge and management. Layer 1: The physical layer Thislayerconveysthe bitstreamthroughthe networkat the electrical and mechanical level.Itprovidesthe hardware meansof sendingandreceiving data on a carrier 4.1.2 Peer to PeerCommunicationinOSIModel OSI divides telecommunication into seven layers. The layers are in two groups. The upper four layers are used whenever a message passes from or to a user. The lower three layers (up to the network layer) are used when any message passes through the host computer. Messages intended for this computer pass to the upper layers. Messages destined for some other host are not passed up to the upper layers but are forwardedtoanotherhost. AT the sender end,every layer in the OSI model appends the SDU (Service Data Unit) passed onfrom the upper layer, addsits own protocol header to form the Packet Data Unit (PDU) and passes the PDU to the layer immediately lower to it. The PDU becomes SDU to the lower layer that gets further processed in the same fashion. At the receiver end packets are decoded in the reverse fashion. The following figure illustratesthispeer-to-peercommunicationmechanismfollowedinthe packetcommunicationworld.
  • 11. Figure 3: Peer-to-Peer Communication in OSI Model AlthoughOSIisnotalwaysstrictlyadheredtointermsof keepingrelatedfunctionstogetherinawell- definedlayer,manyif notmostproductsinvolvedintelecommunicationmake anattempttodescribe theminrelationtothe OSI model. 4.2 Study the TCP/IP communication protocol 4.2.1 AboutTCP/IPModel The TCP/IP protocol suite allows computers of all sizes, from many different computer vendors, running totally different operating systems, to communicate with each other.Networking protocols are normally developed in layers, with each layer responsible for a different facet of the communications. A protocol suite, such as TCP/IP, is the combination of different protocols at various layers. TCP/IP is normally considered to be a 4-layer communication protocol. The following table shows the various layers in the TCP/IPcommunicationprotocol suite. OSI Layer Example of Protocols in TCP/IP Suite ApplicationLayer Telnet,FTP,e-mail,etc. Transport layer TCP, UDP Network Layer IP,ICMP, IGMP Link Layer device driverandinterface card  The link layer, sometimes called the data-link layer or network interface layer, normally includes the device driver in the operating system and the corresponding network interface card in the
  • 12. computer. Together they handle all the hardware details of physically interfacing with the cable (or whatevertype of mediaisbeingused).  The network layer (sometimes called the internet layer) handles the movement of packets around the network. Routing of packets, for example, takes place here. IP (Internet Protocol), ICMP (Interne Control Message Protocol), and IGMP (Internet Group Management Protocol) provide the networklayerinthe TCP/IPprotocol suite.  The transport layer provides a flow of data between two hosts, for the application layer above. In the TCP/IP protocol suite there are two vastly different transport protocols: TCP (TransmissionControl Protocol) andUDP(UserDatagram Protocol). o TCP provides a reliable flow of data between two hosts. It is concerned with things such as dividing the data passed to it from the application into appropriately sized chunks for the network layer below, acknowledging received packets, setting timeouts to make certain the other end acknowledges packets that are sent, and so on. Because this reliable flow of data is provided by the transport layer, theapplication layer can ignore all these details. o UDP, on the other hand, provides a much simpler service to the application layer. It just sends packets of data called datagrams from one host to the other, but there is no guarantee that the datagrams reach the other end. Any desired reliability must be added by the application layer. There is a use for each type of transport protocol, which we'll see whenwe lookatthe differentapplicationsthatuse TCPandUDP.  The application layer handles the details of the particular application. There are many common TCP/IPapplicationsthatalmosteveryimplementationprovides: o Telnetforremote login, o FTP,the File TransferProtocol, o SMTP, the Simple Mail Transferprotocol,forelectronicmail, o SNMP,the Simple NetworkManagementProtocol o Andmany more. 4.2.2 TCP/IPCommunicationProtocol againsttheOSI ReferenceModel The following figure describes the mapping of the various protocols found in TCP/IP Protocol suite againstthe OSI reference model.
  • 13. Figure 4: TCP/IP protocols layers vs. OSI Layers It is evident from the diagram that TCP/IP, although haven’t implemented the all seven layers of the OSI reference model distinctively, but functionality wise the 4 layer TCP/IP model can be mapped to the 7 layer OSI reference model easily. Primarily the Layer 1 and Layer 2 (Physical and Data Link Layer) of OSI model gets mapped to the Network Access Layer or Link Layer in the TCP/IP model whereas Layer 5,6 and 7 of OSI Layeris mappedtothe ApplicationLayerof TCP/IPmodel. 4.2.3 Aboutthe WiresharkProtocol Analyzer Wireshark is a free and open source pocket analyzer. It is used for network troubleshooting, analysis of software and communications protocol development and education. It runs on Linux, Solaris, Windows and other Unix based operating systems. Wireshark is a software that "understands" the structure of different networking protocols. It can parse and display the fields, along with their meanings as specified by different networking protocols. Wireshark uses pcap to capture packets, so it can only capture packets on the types of networks that pcap supports.  Data can be captured "from the wire" from a live network connection or read from a file of already- captured packets  Live data can be read from a number of types of network  Captured network data can be browsed via a GUI or a terminal
  • 14.  Captured files can be programmatically edited or converted via command-line switches to the "editcap" program.  Data display can be refined using a display filters Plug ins can be created for dissecting new protocols  RAW USB traffic can be captured Following figure shows the look & feel of the Wireshark ProtocolAnalyzer: Figure 5: Wireshisk Protocol Analyzer User Interface 4.2.4 Tracing HTTPmessagesexchangebetweentheWebServerandWeb Browser using Wireshark 4.2.4.1 Environmentsetup Wiresharkisa free andopensource packet analyzer. Itisopenedinthe machine.The machine isapart of the office LAN.Ourobjective istofindoutandanalyze the packettransferwhenacommonwebsite such as Google isaccessedfrommyLAN machine.OnopeningWiresharkwe needtoselectthe option “eth0”. Thisreferstothe Ethernetnetworkconnection.Tofindoutthe IPaddressof the machine,open a Terminal box andtype in the command:
  • 15. Ifconfig–a Figure 6: Finding out the IP address A betterandsimplifiedschematicviewof the workingenvironmentwhileusingWiresharkisshown belowinthe figure: Ericsson Office LAN My machine 169.144.53.4 0 Proxy Server Cloud Computingwww.google.com
  • 16. 4.2.4.2 ConfigurationinWireshark As perour projectrequirementthe aimof the experimentistosee and analyze the packetsthatflow whenwe accessa commonwebsite suchasGoogle.Ithas to be furtherfilteredinaway suchthat the final listof packetsshouldshowonlythe timeswheneitherthe source ordestinationIPaddressismine. The stepsto configure the Wiresharksoas to meetourrequirementare:  In the top side of the screenan optioncalled“Expression…”isseen.Whenwe clickonthat a whole listof differentconfigurationoptionscome.  We searchfor the optionHTTP and clickonit, a sub menuappearswithalistof HTTP expressionsforfurtherconfiguration  Selectthe option”http.request.uri-RequestURI(HTTPRequest)”inthe fieldname column  In the relationcolumnselectmatchesandtype inthe URL (i.e www.google.com) andselectOK  Nowuponseeingthe option“Filter”onthe top of the screenwe see that ithas beenfilteredto showonlythe packetscontainingGoogle  Nowwe complete the Filteroptionbyaddingip.addr=“169.144.53.40”  We thenclickon applyitisseenthat the requiredresultisshown Thus onthe filterscreenoptionithastobe: http.request.uri contains “google” && ip.addr==”169.144.53.40”
  • 17. 4.2.4.3 WiresharkMonitoringResult Figure 7: HTTP Filter Figure 8: Applying the Filter
  • 18. 4.2.4.4 Analysis ofresultagainstthe TCP/IPmodel Whenany individual packetof dataisclickedforfurtherinformationabout the free flowingpacketsitis seenthatit isverysimilartothe TCP/IPmodel seenbefore. Itcanbe comparedand the similaritiescan be noteddown.The HTTP feededinthe filtermakesuse of the File TransferProtocol (FTP) whichinturn makesuse of the InternetProtocol (IP) whichisusedbythe linklayer.Ithasbeenexplainedbrieflywith the helpof the followingfigures. If we notice the two figuresinsidethe picture carefullywe see that the HyppertextTransfer Protocol resembles the Applicationlayer inthe TCP/IPprotocol suite.Itgivesusthe hostand proxy connectiondetails. Figure 9: Applying both the Filters
  • 19. On seeingitcarefully we can conclude that the Transmission control protocol is nothingbutthe Transport layer.It givesthe source and destinationportas well asthe hexadecimalvalue of flagsand checksum. The InternetControl Protocol issimilarto the Internetlayeras seeninthe TCP/IP protocol suite.Itgives us the headeras well as the total length.It alsogivesusthe source and destinationIPaddress. The destinationIP addressisthat of a local proxyserverand not Google. Last but not the leastthe Ethernet layeracts as the NetworkInterface or the Link layerin the TCP/IPprotocol suite.
  • 20. 6. Execution of Assignment2 About Application Lifecycle management Abbreviated also as ALM, Application Lifecycle Management refers to the capability to integrate, coordinate and manage the different phases of the software delivery process. Application Lifecycle Managementencompasses the followingmajorfunctionality:  ProjectPlanning&Tracking  Software architecture anddesignmanagement  Source Code Control to enable collaborativedevelopment  BuildandRelease Management  Change management  TestManagement  Projectmanagement Throughout the various phases of Software developmentlifecycle, various tools are used to perform the above mentioned activities in a systematic and collaborative manner for better management of software deliveryprocess.
  • 21. Figure 10: Application Lifecycle Management Functions Out of these 8 applicationlifecyclemanagementfunctionswe putourfocusonlyontwo of them.  Source Code Control- We use Git. This is a source code control management function. In software development Git is a distributed revision control and source code management (SCM) system with an emphasis on speed. Git was initially designed and developed for Linux development in 2005. Every Git working directory is a fully fledged repository with complete history and full version tracking capabilities, not dependant on a central server. Git was originally designed as a low level version control system engine on top of which others could write front ends. Some characteristics of Git are strong support for non-linear development, distributed development, compatibility with existing systems, efficient handling of large projects, cryptographic authentication of history, toolkit based design, pluggable merge strategies, garbage accumulates unless collected, periodic explicit object packing, resolve, recursive and octopus. Git has two data structures a mutable index that caches information about the working directory and the next revision to be committed and an immutable append only database Git is primarily developed on Linux, although it also supports most major operatingsystemsincludingMicrosoftWindows.  Build and Release Management : Apache Maven is a type of build and release management. Maven is a build automation tool used primarily for Java Projects. Maven addresses two aspects of building software. First it describes how software is built, and second, it describes its dependencies. An XML File describes the software project being built, its dependencies on other Project Planning Source Code Control Integrated IDE Artifact & Dependen cy Manageme nt Continuou s Integration Code Quality Review Build & Release Manageme nt Issue Tracking Application Lifecycle Management Functiona
  • 22. external modules and components, the build order, directories and required plug-ins. Maven dynamically downloads Java libraries and Maven plug-ins from one or more repositories such as the Maven 2 and stores them in a local cache. Maven can be also used to build and manage projects written in C#, Ruby, Scala and other languages. Maven is built using a plugin-based architecture that allows it to make use of any application controllable through standard input. Theoretically, this would allow anyone to write plugins to interface with build toolsfor any other language.Inrealitysupportanduse forlanguagesotherthanJava hasbeenminimal. A Project Object Model (POM) provides the entire configuration for a single project. General configuration covers the project name, its owner and its dependencies on other projects. One can also configure individual phases of the build process, which are implemented as plugins. Larger projects should be divided into several modules, or sub projects each with its own POM. One can write a root POM through which one can compile all the modules with a single command.POM’salso can inheritconfigurationfromotherPOM’s. 4.3 Creating a Repository on Git You can create a Git repositoryintwoways.One of the twoways isCloninganexistingrepository. If you wantto get a copy of an existingGitrepository — forexample,aprojectyou’dlike tocontribute to — the commandyou needis gitclone .If you’re familiarwithotherVCSsystemssuchas Subversion,you’ll notice thatthe commandis clone and not checkout.Thisis an importantdistinction — Gitreceivesa copy of nearlyall data that the serverhas.Everyversionof everyfile forthe historyof the projectis pulleddownwhenyourun gitclone .Infact,if yourserverdiskgetscorrupted,youcan use any of the clonesonany clienttosetthe serverbackto the state it was inwhenitwas cloned.OpenVirtual Box and inside aTerminal type the followingcommand: git clone https://git.opendaylight.org/gerrit/p/controller.git The outputis as shownbelow.
  • 23. Figure 11: Creating a Git Repository 4.4 Hands-on Approach on Maven Maven is a Java tool. So we must have Java installed on our work machines. First we download Maven. Afterthat,type the followinginaterminal orin a commandprompt: mvn --version It should print out your installed version of Maven, for example: Apache Maven3.0.5 Maven home: D:apache-maven-3.0.5bin.. Java version: 1.6.0_25, vendor: Sun Microsystems Inc. Java home: C:Program FilesJavajdk1.6.0_25jre Default locale: nl_NL, platform encoding: Cp1252 OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows" You will need somewhere for your project to reside, create a directory somewhere and start a shell in that directory.Onyourcommandline,execute the followingMavengoal: mvnarchetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven- archetype-quickstart-DinteractiveMode=false
  • 24. You will notice that the generate goal created a directory with the same name given as the artifactId. Change intothat directory. cd my-app The pom.xml file is the core of a project's configuration in Maven. It is a single configuration file that contains the majority of information required to build a project in just the way you want. The POM is huge and can be daunting in its complexity, but it is not necessary to understand all of the intricacies justyetto use it effectively.Thisproject'sPOMis: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.mycompany.app</groupId> <artifactId>my-app</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>Maven Quick Start Archetype</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.8.2</version> <scope>test</scope> </dependency> </dependencies> </project> To buildthe projectwe needthe followingsyntax mvn package The command line will printoutvariousactions,andendwiththe following: ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------------ [INFO] Total time: 2 seconds [INFO] Finished at: Thu Jul 07 21:34:52 CEST 2011 [INFO] Final Memory: 3M/6M [INFO] ------------------------------------------------------------------------
  • 25. You may testthe newlycompiledandpackagedJARwiththe following command: java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App Which will print the quintessential: Hello World! We executed the Maven goal archetype:generate, and passed in various parameters to that goal. The prefix archetype is the plugin that contains the goal. If you are familiar with ant, you may conceive of this as similar to a task. This goal created a simple project based upon an archetype. Suffice it to say for now that a plugin is a collection of goals with a general common purpose. For example the jboss-maven- plugin,whose purposeis"deal withvariousjbossitems". 4.4.1.1 Steps to Clean and InstallMaven In the virtual machine the followingcommandsare typedinaterminal: cd controller/opendaylight/distribution/opendaylight mvn clean install
  • 26. Figure 12: Clean and Install Maven 4.4.1.2 Other Concepts  Source Code Control System (SCCS) isanearly revisioncontrol system, gearedtoward program source code and othertextfiles.  A BuildingManagementSystem (BMS) ora (more recentterminology) BuildingAutomation System(BAS) isa computer-basedcontrol systeminstalledinbuildingsthatcontrolsand monitorsthe building’smechanical andelectrical equipmentsuchas ventilation,lighting,power systems,fire systems,andsecuritysystems.A BMSconsistsof software andhardware;the software program,usuallyconfiguredinahierarchical manner,canbe proprietary,usingsuch protocolsas C-bus, Profibus,andsoon.  Applicationlifecyclemanagement (ALM) isthe productlifecycle management(governance, development,andmaintenance)of applicationsoftware.It encompasses requirementsmanagement, software architecture, computer programming, software testing,software maintenance, change management,project management,andrelease management