web based interface sdh system

Upload: abhishek-singhal

Post on 14-Apr-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/29/2019 Web Based Interface Sdh System

    1/62

    Development of a web-based interface for SDH

    Kalle Reimann

    School of Innovation, Design and Engineering

    Malardalen University

    Supervisor, ITTE Ericsson: Johan Henriksson

    Technical advisor, ITTE Ericsson: Anders Nyberg

    Supervisor, Malardalen University: Hans Bjurgren

    Examiner, Malardalen University: Mats Bjorkman

    January 30, 2012

  • 7/29/2019 Web Based Interface Sdh System

    2/62

    Abstract

    Ericsson in Linkoping has a test environment for testing telecommunica-tions equipment. New equipment was recently purchased to the fiber-opticnetwork in the test environment, but the management system for the newequipment lacked a web based interface for user without special access tothe system. The purpose of this thesis is to implement such an interface.

    A web site based on Python and Django was built where users can searchfor circuits, with or without search filters, and get information about thematching circuits. The website has been live for two months and no majorissues have appeared.

  • 7/29/2019 Web Based Interface Sdh System

    3/62

    Acknowledgements

    I would like to thank all of my colleagues at Ericsson, especially my super-visor Johan Henriksson, my technical advisor Anders Nyberg and the restof the TENE team, my manager Svante Stadler, John Brannstrom for help-ing me with my programming questions, as well as Michael Holmgren andMichael Adams for helping me with the apartment. You were all friendlyand helpful and made this thesis possible.

    I also want to thank my advisor at Malardalen University, Hans Bjurgren.

    Finally, I want to thank Elin for her support.

  • 7/29/2019 Web Based Interface Sdh System

    4/62

    List of Abbreviations

    BSC Base Station Controller

    BTS Base Station TransceiverCSV Comma Separated Values

    GSM Global System for Mobile Communications

    LTE Long Term Evolution

    MGW Media Gateway

    MS Mobile Station

    MSC Mobile Switching Center

    PCM Pulse Code Modulation

    PDH Plesiochronous Digital Hierarchy

    SDH Synchronous Digital Hierarchy

    SONET Synchronous Optical Networking

    TDM Time Division Multiplexing

    UML Unified Modeling Language

    XML Extensible Markup Language

    1

  • 7/29/2019 Web Based Interface Sdh System

    5/62

    Contents

    1 Introduction 4

    1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2 Problem formulation . . . . . . . . . . . . . . . . . . . . . . . 51.3 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.4 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.5 Target audience . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    2 Theory 62.1 Telecommunications . . . . . . . . . . . . . . . . . . . . . . . 6

    2.1.1 Plesiochronous Digital Hierarchy . . . . . . . . . . . . 62.1.2 Synchronous Digital Hierarchy . . . . . . . . . . . . . 82.1.3 Ericsson test environment . . . . . . . . . . . . . . . . 11

    2.2 Django . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.3 Fabric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.4 XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

    3 Method 203.1 Parser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    3.1.1 Background . . . . . . . . . . . . . . . . . . . . . . . . 213.1.2 Implementation . . . . . . . . . . . . . . . . . . . . . . 22

    3.2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.3 Website . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

    3.3.1 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.3.2 Sections . . . . . . . . . . . . . . . . . . . . . . . . . . 253.3.3 Suggestions and requests . . . . . . . . . . . . . . . . . 28

    4 Results 314.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2 Design goals . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.3 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

    5 Discussion 33

    6 Conclusion 35

    2

  • 7/29/2019 Web Based Interface Sdh System

    6/62

    CONTENTS CONTENTS

    A SDH basics 38

    B Pointers in SDH 48

    3

  • 7/29/2019 Web Based Interface Sdh System

    7/62

    Chapter 1

    Introduction

    This thesis was conducted at Ericsson in Linkoping as part of a Bachelor ofScience, Degree Programme in Network Engineering.

    1.1 Background

    Ericsson is the largest provider of telecommunications equipment in theworld, with more than 100,000 employees in over 180 countries [1]. The sitein Linkoping has roughly 1,500 employees, with the work mainly focusedon development of GSM (2G) and LTE (4G) mobile networks, as well as

    simulations and tests of equipment. This thesis was arranged and supervisedby the TENE (Test Network) team, which is a subsection of ITTE (IT/TestEnvironment) that supports and configures the test environment12.

    The test environment was recently moved to a different building, dueto lack of space as well as concerns that the building would not be able tohandle the weight of the lab equipment. During the move, an opportunitywas taken to upgrade the fiber optics equipment, as it was nearing 10 years inservice. Another reason was to minimize the downtime of the test network.

    The new equipment is configured via a management system where onlya few users can be given access, and unlike the previous system it lacked analternative interface where users without this access can view network and

    configuration information.

    1Johan Henriksson & Anders Nyberg, personal communication, 2011-11-25

    2Svante Stadler, personal communication, 2011-11-28

    4

  • 7/29/2019 Web Based Interface Sdh System

    8/62

    1.2. PROBLEM FORMULATION CHAPTER 1. INTRODUCTION

    1.2 Problem formulation

    The management system for a newly purchased fiber-optic network at Er-icssons site in Linkoping has no alternative interface where users withoutspecial access can view network information.

    1.3 Purpose

    The purpose of this thesis is to develop a web based interface to the man-agement system that presents data about the network and does not requirespecial access to view it.

    1.4 Requirements

    The minimum requirements for the final application were as follows:

    1. The ability to search for circuits

    2. Get management and operational information about these circuits

    3. Well-documented source code to simplify future development of theapplication

    1.5 Target audience

    The target audience is anyone with a basic knowledge of computer science,specifically computer networks, programming and databases.

    5

  • 7/29/2019 Web Based Interface Sdh System

    9/62

    Chapter 2

    Theory

    This chapter gives a brief theoretical background on multiplexing proto-cols in fiber-optic communications, and the various components used in thisproject.

    2.1 Telecommunications

    This section begins with a description of the multiplexing technology PDHand its drawbacks, which led to the development of the SDH standard. Thesection ends with a description of the test environment at Ericsson.

    2.1.1 Plesiochronous Digital Hierarchy

    The core telephone network was at one point all analog with voice signalstransmitted as electrical voltage, but as technology advanced it was decidedthat it would be beneficiary to go digital, as it allowed the use of computersto manage the systems and because digital signals can be amplified andgenerated as new, unlike analog signals where any distortion present willalso be amplified. In Sweden, for example, the switch to digital startedwith the development of the Automatic Cross-Connection Equipment (AXE)telephone exchange at Ericsson in the 1970s1.

    Going digital requires that the voice signals are converted from analog

    signals to digital signals, and to accomplish this, Pulse Code Modulation(PCM) is used. It was decided that 3100 Hz (from 300 Hz to 3400 Hz)would be enough to carry a voice conversation, and with guard bands (whichare used to keep the channels separate), each voice channel is set to 4000

    1Anders Nyberg, personal communication, 2011-11-28

    6

  • 7/29/2019 Web Based Interface Sdh System

    10/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    Hz. However, the Nyquist theorem states that to accurately reproduce an

    analog signal, the signal must be sampled at twice the highest frequencyof the original signal. This means that the sample rate must be 8000 Hz(8000 samples/second or once every 125 s). Each sample is then quantized(assigned) to an 8-bit value, which results in a digital voice channel with abit rate of 64 kbit/s (8000 Hz * 8 bits). [2]

    To carry multiple voice calls over the same medium, the signals aremultiplexed using Time Division Multiplexing, where data from multiplesources is sent in sequence at a given interval. The multiplexing standardused in most countries is called the E-carrier system, while North Americaand Japan use the T-carrier system. The E-carrier system is a hierarchyof signal rates, and the basic signal rate (called level zero) is the E0, at 64

    kbit/s, equal to one voice channel.The E-carrier system, together with the T-carrier system, form the Ple-

    siochronous Digital Hierarchy (PDH), a multiplexing technology for trans-mitting data over fiber optic cables. Plesiochronous means nearly syn-chronous [3] and refers to the fact that in PDH, the equipment uses itsown internal clock for synchronization, and there is no network-wide syn-chronization.

    Table 2.1: E-carrier hierarchy [2]

    Signal Bandwidth Number of 64 kbit/s channels Channels

    E1 2.048 Mbit/s 32 32 * E0E2 8.448 Mbit/s 128 4 * E1E3 34.368 Mbit/s 512 4 * E2E4 139.264 Mbit/s 2048 4 * E3

    As seen in Table 2.1, an E1 signal consists of 32 64 kbit/s voice channelswhich are multiplexed during transmission. This is done by transmitting 8bits from each voice channel every 125 s in a round robin fashion (Channel1, Channel 2, . . . , Channel 32, Channel 1, etc.). Thus, 8000 kHz * 8 bits *

    32 channels = 2,048 (Mbit/s).Each level in the E-carrier system contains some excess bandwidth (forexample, E2 is 8,448 Mbit/s, but 4 * 2,048 (E1) is actually 8,192 Mbit/s).The excess bandwidth is used to recover in case an error in the synchro-nization occurs through a process called bit stuffing to bring the signals toa common bit-rate [2].

    A higher-level is created from several lower-level signals by bit inter-leaving the lower-level signals. This means that the lower-level signals arecombined on a bit-by-bit basis (compare this to how an E1 is created by byteinterleaving several voice channels). Bit-interleaving multiplexing is a com-

    7

  • 7/29/2019 Web Based Interface Sdh System

    11/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    plex process which essentially makes individual lower-level signals hidden

    inside a higher-level signal, and make them complicated to extract.The complexity of the multiplexing process is just one of the many draw-

    backs of PDH. The major issues are listed below [4].

    1. To multiplex a 2 Mbit/s E1 signal to a 140 Mbit/s E4 signal, itsnecessary to traverse the entire hierarchy, meaning that the signalmust first be multiplexed into a 8 Mbit/s E2 signal then into a 34Mbit/s E3 signal, and then finally into an E4 signal. Accessing asingle E1 signal within an E4 signal similarly requires the signal topass through all the intermediate multiplexing stages.

    2. Different hierarchies used in different parts of the world, requiringspecial equipment for interoperability.

    3. Each vendor had their own proprietary TDM system.

    4. E4 was the highest standardized signal rate (E5 existed, but imple-mentation differed between vendors).

    5. Poor support for operation, administration and maintenance (OAM).

    2.1.2 Synchronous Digital Hierarchy

    The inherent issues with PDH led to a standardization process which re-sulted in the Synchronous Digital Hierarchy (SDH), a multiplexing standardused all over the world except in the North America and Japan, where thecorresponding protocol Synchronous Optical Networking (SONET) is used,but the differences between them are relatively minor. [2]

    SDH uses an extremely accurate centralized clock for timing purposes.Although there will be timing differences in the network, SDH has efficientmechanisms to deal with this, which will be discussed later on in this section.

    SDH defines a multiplexing hierarchy, seen in Figure 2.1, that beginswith a E-carrier link (although SDH supports the encapsulation of otherprotocols such as ATM and IP) and ends up with a so called STM-N frame.The steps in the multiplexing hierarchy will be explained below.

    Container (C)

    The container is made up of a signal, such as an E1, which are called trib-utaries (meaning a stream feeding a larger stream [6]). The process ofwrapping a signal in a container is called mapping. There are five differentcontainers specified in the SDH standard, named C4, C3, C2, C11 and C12,and they correspond to the signal rates in PDH (Appendix A).

    8

  • 7/29/2019 Web Based Interface Sdh System

    12/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    Figure 2.1: SDH multiplexing structure as defined by the European Telecom-munications Standards Institute (ESTI) [5]

    Virtual Container (VC)

    The capacity provided by each container is greater than that of their ple-siochronous counterpart (for example the E4 rate of 139.264 Mbit/s vs. theC4 rate of 149.76 Mbit/s), so each container is padded with stuffing bits toproduce a common bit-rate suitable for synchronous multiplexing.

    Path overhead (overhead being another word for header) is then addedto the container, which contains management functions such as path status,alarms and error checking between the two end points. A container withstuffing bits and path overhead is called a virtual container (Appendix A).

    Tributary Unit (TU) & Administrative Unit (AU)

    Although an SDH network is supposed to synchronous, in practice theresstill a risk that timing differences appear. To deal with this, virtual con-tainers are allowed to float freely inside STM-N frames, and even beginin one STM-N frame, and end in the next. Payload pointers are used to

    locate the start of a VC inside a frame in a process called aligning, and inthe case of virtual containers 11, 12 and 3 (see Figure 2.1), this creates atributary unit. A payload pointer added to VC-4 is called an administrativeunit (Appendix A).

    The use of pointers significantly simplifies the process of identifying in-dividual lower-level signals inside a multiplexed signal compared to the bitinterleaved process in PDH (Appendix B).

    9

  • 7/29/2019 Web Based Interface Sdh System

    13/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    Tributary Unit Group (TUG) & Administrative Unit Group (AUG)

    Several TUs or AUs can be multiplexed to create tributary unit groups andadministrative unit groups. These groups are then further multiplexed tocreate higher-order VCs, for example three TUG-3s are multiplexed to createa VC-4 (Appendix A).

    Synchronous Transfer Module (STM-N)

    An AUG complemented with section overhead creates an STM-N frame.The section overhead consists of two sections, the regenerator section over-head (RSOH), which contains information used by every network elementthe signal passes through (such as repeaters and multiplexers), and the mul-

    tiplexing section overhead (MSOH), which contain information required byonly the multiplexers. (Appendix A)

    The N in STM-N represents how many AUGs have been multiplexed tocreate the frame. The basic unit in a SDH network is the STM-1, containingone AUG.

    Table 2.2: Data rates supported by SDH [4]

    STM-N rates

    STM-1 155.52 Mbit/s

    STM-4 622.08 Mbit/sSTM-16 2588.32 Mbit/sSTM-64 9953.28 Mbit/sSTM-256 39813.12 Mbit/s

    The bit-rate of an STM-1 frame is 155.52 Mbit/s and one frame is trans-mitted every 125 s, or 8,000 frames/second (just like in PDH). This meansthat each STM-1 frame is 2430 bytes, and its often visualized in a rectan-gular shape consisting of 9 rows and 270 columns of bytes (9 * 270 = 2430),as seen in Figure 2.2 (Appendix A).

    10

  • 7/29/2019 Web Based Interface Sdh System

    14/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    Figure 2.2: STM-1 frame (Appendix A)

    2.1.3 Ericsson test environment

    As mentioned in the Background, the Ericsson test environment in Linkopingis used for simulations and testing telecommunications equipment, with afocus on GSM (2G). This section contains short descriptions of the compo-nents in the network, with the topology seen in Figure 2.3.

    Base Transceiver Station (BTS)

    The mobile phone system is divided into geographic regions called cells(hence the name cell phone) and in the center of each cell is a Base TransceiverStation (also called Cell Site, or simply Base Station), where the antennasand transceivers are located and to which the mobile phones within range

    of the BTS transmit [7]. 150 BTSs are connected to the network.

    Base Station Controller (BSC)

    The BTSs are connected and controlled by a Base Station Controller whichmanages the radio resources of the cell. These management functions in-clude, for example, measuring the number of calls and the level of trafficand congestion for the cell, allocating radio channels for the calls and Mo-bile Station (MS) handover [7]. The development of BSCs is one of the main

    11

  • 7/29/2019 Web Based Interface Sdh System

    15/62

    2.1. TELECOMMUNICATIONS CHAPTER 2. THEORY

    focuses of the site in Linkoping, and there are roughly 140 of them in the

    test network.

    Figure 2.3: The (condensed) network topology of the test lab at Ericsson2

    Mobile Switching Center (MSC)

    There are four Mobile Switching Centers in the test network, and they man-age the calls in the mobile network. This includes setting up and routingthe call, supervision, and call teardown. They also control other servicessuch as SMS and FAX, and keeps track of the charge of the calls for billingpurposes. The MSCs communicate with BSCs to organize call setup andarrange MS handover from one BSC to another [7].

    Media Gateway (MGW)

    The Media Gateway provides conversions of digital streams, for examplefrom a circuit-switched E0 to a packet-switched VoIP call. It also has

    2Magnus Skold, personal communication, 2011-11-03

    12

  • 7/29/2019 Web Based Interface Sdh System

    16/62

    2.2. DJANGO CHAPTER 2. THEORY

    functions for reducing echo in calls and adds support for Dual Tone Multi-

    Frequency signaling (DTMF), also known as touch tone [8]. There are 11MGWs in the network.

    Traffic simulators (TSS & SIM2500)

    These devices simulate voice calls and other types of transmissions, whichis needed when testing the equipment.3 There are about 90 simulatorsconnected to the network in total.

    OMS1664 - Digital Cross-connect (DCS/DXS)

    The OMS1664 is a model of Digital of Cross-Connect by Marconi (nowowned by Ericsson). A DCS is designed to transfer lower-level signals fromone higher-level signal to another, also known as circuit switching. Considerthe topology in Figure 2.3, where the two DCSs are connected to BSCs overa STM-1 link. The connection between one BSC and one DSC contains anumber of lower-level circuits, such as E1s, which all might have differentdestinations in the network. The circuits are transported in a STM-1 fromthe BSC to the DSC, where they are first demultiplexed and then multi-plexed again, and sent out different ports to their respective destination. [2]There are two DCSs in the network, both seen in Figure 2.3.

    OMS870 - Add/Drop Multiplexer (ADM)An Add/Drop Multiplexer is able to insert and drop tributaries to and fromSTM-N signals without affecting the rest of the traffic in the stream. Thisis, as mentioned previously, one of the major advantages of SDH over PDH,as the multiplexing/demultiplexing is done in a single step. [2] There areroughly 30 ADMs in the network, which are connected to BTSs and simu-lators over E1 links.

    2.2 Django

    Django is a web framework for creating dynamic websites using the pro-gramming language Python. Its arguably the most popular web frameworkfor Python [9], and a collection of websites powered by Django can be foundat http://www.djangosites.org.

    3Magnus Skold, personal communication, 2011-11-03

    13

  • 7/29/2019 Web Based Interface Sdh System

    17/62

    2.2. DJANGO CHAPTER 2. THEORY

    Django is based on a Model-View-Template pattern, which separates the

    database management (in the model), the decision of which data on a webpage should be displayed (in the view) and how the data should be displayon the web page (in the template). This separation makes it easy to extendand reuse code for future projects. An explanation of the model, view andtemplate follows.

    Model

    The model describes the data in a database, and in each model, attributes(also known as fields) are defined which map to columns in a database, whilethe model itself maps to a database table.

    Listing 2.1: Django model

    1 from django.db import models

    2 from datetime import datetime

    3

    4 class Employee(models.Model):

    5 first_name = models.CharField(max_length=50)

    6 last_name = models.CharField(max_length=50)

    7 age = models.IntegerField()

    8 address = models.CharField(max_length=50)

    9 hire_date = models.DateField()

    10

    11 def days_hired(self):

    12 date_diff = datetime.today() - self.hire_date13 return date_diff.days

    We define an Employee model in Listing 2.1 with a number of attributes.Each attribute represents a column in our database (for example MySQL orPostgreSQL) and is given a field type, which in this case are CharField,IntegerField and DateField, and are used to set the column datatype in the database. Theres also a custom method defined in the modelclass named days hired, which simply returns the number of days thatan employee has been employed. [10]

    View

    The View describes which data is presented on a given page. For exam-ple, on an employees profile page, you might want to display the fields inthe Employee Model (name, age, address, hire date), as well as everyproject the employee has been involved in, stored in a Projects Model.

    When the user requests a certain profile page, the ID of the employeeis captured from the URL (more on this later), which is used to get theEmployee object (an instance of the Employee Model) associated with thatID. Using the employee ID, we can also get a list of Project objects thatreference the employee.

    14

  • 7/29/2019 Web Based Interface Sdh System

    18/62

    2.2. DJANGO CHAPTER 2. THEORY

    Listing 2.2: Django view

    1 from django.http import Http404

    2 from django.shortcuts import render_to_response

    3 from company.models import Employee, Project

    4

    5 def profile(request, employee_id):

    6 try:

    7 employee = Employee.objects.get(pk=employee_id)

    8 except Employee.DoesNotExist:

    9 raise Http404

    10 employee_projects = Project.objects.filter(employee =

    employee_id)

    11 return render_to_response(profile.html, {employee:

    employee, projects: employee_projects})

    In Listing 2.2, a profile view is declared. It takes two parameters, requestwhich is a Django request object, but can be thought of as a HTTP request(such as GET or POST). The second parameter is the employee ID, which isused to identify a specific employee.

    The function starts with trying to get the Employee object associatedwith the ID, and if no such employee exist, it displays a HTTP 404 not foundpage. If its successful, however, it will continue and get all the Projectobjects associated with the employee ID. Its not necessary to display anerror page if no Project objects are found, because its possible that anemployee has not been involved with any projects, which we will handle later

    on in the template. The view finally renders a template with the objectsprovided (the employee and his projects), and returns a HTTP responsewith the rendered template. [11]

    Views are also closely related to another important concept in Django,namely the URL dispatcher. The idea is that when a user requests aweb page at a certain URL, Django searches through a URL configurationfile (URLconf), which maps regular expressions to Views. After runningthrough the regular expressions in order, as soon as there is a match, itexecutes the corresponding View.

    Listing 2.3: Django URLconf

    1 from django.conf.urls.defaults import *2

    3 urlpatterns = patterns(,

    4 (r$, company.views.index),

    5 (rprofile/(\d+)/$, company.views.profile),

    6 )

    URL patterns are relative to the base URL, which we in this case can assumeto be http://www.example.com/. The example in Listing 2.3 containstwo mappings. The first one has the regular expression $, and in regularexpressions means start of the line and $ means end of the line. In

    15

  • 7/29/2019 Web Based Interface Sdh System

    19/62

    2.2. DJANGO CHAPTER 2. THEORY

    other words, if there is no extra text after the base URL, execute the index

    View.The regular expression profile/(\d+)/$ in the second mapping will

    look for the string profile, followed by a forward slash, one or more digitsand then one final forward slash. \d+ means one or more digits, and itsenclosed by parentheses which means that the value should be captured andsent to the View as a parameter. This is precisely what employee id inthe profile View is. A URL that would be matched by this regular ex-pression is for example http://www.example.com/profile/86/, and

    86 would be sent to the profile View as employee id. [12]

    Template

    Finally, the Template describes how the data should be presented, whichis accomplished using a special template language. The Template itself isnothing more than a text document, and while its primarily used to createHTML documents, its possible to create any type of document using it, forexample XML or LATEX.

    The template language supports simple control structures such as for-loops or if-statements, called block tags, and also variables to display dy-namic values. When the Template is rendered in the View, it basicallyreplaces the variables in the Templates with the corresponding values fromthe view.

    Listing 2.4: Django template

    1 Name: {{ employee.first_name }} {{ employee.last_name }}

    2 Age: {{ employee.age }}

    3 Address: {{ employee.address }}

    4 Employed at company for {{ employee.days_hired }} days.

    5 Number of projects: {{ projects|length }}

    6 {% for project in projects %}

    7 {{ project.title }}

    8 {% if project.completed %}

    9 Status: Completed on {{ project.completion_date }}

    10 {% else %}

    11 Status: Not completed

    12 {% endif %}13 {% endfor %}

    The Template in Listing 2.4 mixes both Django template tags and HTMLmarkup tags to create an HTML document when rendered. The View willpass in the employee objects and list of project objects. By enclosing astring in double curly brackets we declare that its a variable and should bereplaced by a value. For example {{ employee.age }} will display thevalue of the age attribute of the employee instance that is currently beingprocessed.

    16

  • 7/29/2019 Web Based Interface Sdh System

    20/62

    2.3. FABRIC CHAPTER 2. THEORY

    The for-loop and if-statements at the end of the template are enclosed

    by curly brackets and percent signs, which denotes a block tag. The for-loop will iterate over all the projects that were extracted from the profileView. As previously mentioned, its possible that an employee has not beeninvolved in any projects, and in that case the for-loop is skipped. The if-statement simply checks if project.completed is set to True, and inthat case displays the completion date. [13]

    Result

    This simple web application might produce a page like this:

    Name: Kalle Reimann

    Age: 25

    Address: Vitmaragatan 3

    Employed at company for 1024 days.

    Number of projects: 2

    Development of a web based interface for SDH

    Status: Not completed

    Computer networks, project course

    Status: Completed on 2010-06-02

    2.3 Fabric

    Fabric is a Python library used to aid the deployment of projects by simpli-fying the use of local and remote shell commands. In this project it is usedto update the database used by the web reporter, which is done through anumber of shell commands and scripts. By writing a script that makes useof the simple calls that Fabric provides, this process is made easy.

    The commands used for this are local, which executes a command on thelocal host, and run, which executes a command on a remote host. Other

    useful commands include get (copy a file on a remote host to the local host),put (copy a file on the local host to a remote host) and sudo (run a commandon a remote host as superuser). [14]

    Listing 2.5: Simple script using Fabric

    1 from fabric.api import run, env

    2

    3 env.hosts = [[email protected], [email protected]]

    4 env.warn_only = True

    5

    17

  • 7/29/2019 Web Based Interface Sdh System

    21/62

    2.4. XML CHAPTER 2. THEORY

    6 def get_sys_info():

    7 result = run(uname -a)8 if result.failed:

    9 print Execution failed

    10 else:

    11 print result

    The example in Listing 2.5 will execute the shell command uname -a onthe hosts [email protected] and [email protected]. By set-ting warn only to True, we specify that that we want to use custom errorhandling, instead of aborting the script as soon as an error occurs. runwill return the result of the remote commands standard output, and as-sign it to the variable result. result also gets a special boolean flag,

    result.failed, which is set to True if the command failed. In this case,the script checks if the command failed, and then prints a custom errormessage. If the command succeeded though, we print the output from thecommand.

    Note that every time this script is run, the passwords to host1 andhost2 must be entered manually, so its recommended to setup SSH publickey authentication if the process is supposed to be automated.

    2.4 XML

    Extensible Markup Language (XML) is just like the name says a markup

    language and is in many ways similar to HTML. While HTML describeshow to display content, XML describes the content itself by storing data ina structured manner.

    Listing 2.6: Example of an XML document

    1

    2

    3

    4

    5 192.168.12.1

    6

    7

    8

    9

    10

    11

    12 192.168.13.1

    13

    14

    15

    16

    An XML document is made up of a number ofelements, which is the contentbetween an opening tag and a closing tag, including the tags themselves.

    18

  • 7/29/2019 Web Based Interface Sdh System

    22/62

    2.4. XML CHAPTER 2. THEORY

    An element can contain other elements, text, a combination of both, or

    be empty. An element that is contained within another element is a childelement to a parent element. The example in Listing 2.6 describes a simplenetwork where the elements are colored in blue and include network, host,subnetwork and ip address. There is always a single root element inan XML document which contain all other elements, and in this case its

    network.Just like HTML, XML elements can contain attributes. The attribute

    names in the example are marked in orange and the attribute values aremarked in purple. The IP address values in the example are simply referredto as text content. There are no major differences between attributes andtext content, its up to the creator of the document to decide whether a

    value should be an attribute or text content. [15]

    19

  • 7/29/2019 Web Based Interface Sdh System

    23/62

    Chapter 3

    Method

    The thesis was divided into three phases.

    1. Pre-study

    The first week of the project was spent reading up on the basics ofSDH. This was done through lectures by Ericsson employees as wellas educational material from Ericsson and Telia. An email was alsosent to the various sections at Ericsson, asking if there are any specificfeatures they would be interested in for the new web reporter.

    2. Evaluation of XML database and implementation of parser

    During this phase, the XML database was examined and a method toaccess it was implemented.

    3. Implementation of web frontend

    The final phase was to build the website and get it to interact withthe database.

    The programming language chosen for this project is Python. The rea-sons being that it produces simple and readable source code, and has alarge standard library and many third-party libraries. Its also a program-ming language that already being used internally at Ericsson. The sourcecode in this project closely follows the PEP 8 style guide.1

    To create the website, the Python web framework Django is used. Thereare a lot of web frameworks for Python to choose from, but as mentionedin Section 2.2, Django is probably the most popular and has a large and

    1http://www.python.org/dev/peps/pep-0008/

    20

  • 7/29/2019 Web Based Interface Sdh System

    24/62

    3.1. PARSER CHAPTER 3. METHOD

    comprehensive documentation, which was the major reason it was chosen,

    as many questions and problems would undoubtably arise during the project,and easy access to information would be essential.

    ServiceON Network Manager is the management system used in thenewly installed fiber optics equipment, which allows for configuration andmonitoring of the network. It contains an interface called PSB-NI for out-putting information from the system as XML documents (which will be re-ferred to as the XML database) through the applications NETINFO, whichoutputs information about the network in its current state, and CLIFE,which outputs a history of the circuits in the network. NETINFO is whatwill be used for this project.

    The design goals of the application were:

    1. Code readability. Make it as easy as possible to maintain and modifythe code in the future.

    2. Performance. No one likes a slow website.

    3. Stability. Any application used in a work environment should be stableand reliable.

    3.1 Parser

    This section explains how the interface to the XML database works.

    3.1.1 Background

    The first order of business during the development of the parser was toexamine the XML database. PSB-NI has a fairly detailed user manual de-scribing the XML documents (each XML document can be seen as a table ina relational database), with UML class diagrams that show the relationshipsbetween them as shown in Figure 3.1.

    Some key facts about the XML database:

    1. It is static and is only updated when the NETINFO application is run.

    2. It consists of several XML documents, which reference each otherthrough ID numbers or other identifiers.

    3. The number of records in each file range from a couple of hundred toseveral thousands.

    4. It will continue to grow slowly but steadily. At the start of the projectthe total file size was roughly 30 megabytes and at the end of theproject it had reached a size of 35 megabytes.

    21

  • 7/29/2019 Web Based Interface Sdh System

    25/62

    3.1. PARSER CHAPTER 3. METHOD

    SubNetwork subNetworkId : DTInteger

    longNam e : DTString

    shortName : DTString

    suffix : DTString

    nes tingLevel : DTInteger

    xCoord : DTInteger

    yCoord : DTInteger0..10..1

    1

    +toSN

    1 1

    +fromSN

    1

    1

    +subNetwork

    1

    Figure 3.1: UML class diagram of the XML database

    With an understanding of how the database is organized, the developmentof the parser began, and the idea is to import the XML-based database toan SQL-based database, in this case MySQL. Having the data in an SQLdatabase would simplify the coding effort, both for this project and in thefuture, as Django has a nice object-relational mapping (ORM) for workingwith SQL-databases, and SQL is a well-known and popular query language.

    3.1.2 Implementation

    The parser is a Python script where a dictionary, elements, first is de-clared. A dictionary in Python is a mapping between a key and a corre-sponding value. The keys of the elements dictionary is the name of theXML documents (and also the name of the tables in the database). Thevalue to each key is a dictionary as well, which maps the database fieldname to the XPath query to extract the value. XPath is a query languagefor XML files for extracting values.

    Listing 3.1: Mapping between field names and XPath query1 elements = {

    2 Path:

    3 {

    4 CircuitLO: @Id,

    5 pathId: Path/Path.pathID/*/text(),

    6 pathname: Path/Path.username/*/text(),

    7 payload: name(Path/Path.payLoad/*/*),

    8 customerData: Path/Path.customerData/*/text()

    9 }

    10 }

    22

  • 7/29/2019 Web Based Interface Sdh System

    26/62

    3.2. SERVER CHAPTER 3. METHOD

    The following is a description of the control flow of the parser: It begins

    by iterating over every XML document, and for each record in the currentXML document (for example each Path in Path.xml), use the XPath queriesspecified for that document to extract the associated values. Each extractedvalue is put in a dictionary with its associated attribute name.

    Listing 3.2: The list of dictionaries after parsing one XML document

    1 parsed_xml = [

    2 {

    3 pathId: 1,

    4 pathName: Example circuit 1,

    5 payload: None

    6 },

    7 {

    8 pathId: 2,

    9 pathName: Example circuit 2,

    10 payload: None

    11 }

    12 ]

    Listing 3.2 shows a simple example of the result from parsing one XMLdocument. All the values are stored in dictionaries which in turn are storedin a list, which provides easy access to the contents of the document.

    The next step is to write the values to a CSV (comma separated values)file, which as the name implies, is simply a text file with a number of values

    that are separated by a common delimiter (it does not have to be a comma,in fact its a tab character in this script). After all the XML documents havebeen converted to CSV files, the script truncates the relevant tables in theMySQL database to prepare it for the new data. It then calls the externalapplication mysqlimport2 which imports the CSV files into the database,and at this point, the database is up to date.

    3.2 Server

    The application is hosted on a virtual server running the SUSE Linux distri-bution. The database is updated through the use of script using the Python

    module Fabric, which is executed every 15 minutes using cron.

    1: The script for outputting the XML documents is executed, along witha configuration file where its specified which parts of the management sys-tem should be included. This produces the following five XML documents:

    2http://dev.mysql.com/doc/refman/5.0/en/mysqlimport.html

    23

  • 7/29/2019 Web Based Interface Sdh System

    27/62

    3.3. WEBSITE CHAPTER 3. METHOD

    AccessPoint.xml, CrossConnection.xml, NetworkElement.xml,

    Path.xml and Subnetwork.xml.2: Every XML document contains a Summary element, which contains

    a time stamp of when the file was generated. This causes an issue whenchecking if there are any changes to the files, as every time the documentsare generated, the time stamps are updated, and thus the files have changed.This will cause the database to be updated every time the script is run,even though there are no actual changes to the network. To solve this, ased command is run on every XML document generated, which looks for aregular expression that matches the Summary element, and removes it fromthe document. Now, if no changes have been made to the network betweentwo consecutive executions of the script, the generated XML documents will

    be identical, and the local database will not be updated.3: rsync is a program that syncs the contents of a directory on one host

    with the contents of a directory on another host. If any changes have beenmade to the files on the source directory, only the changes to the files (inother words, not the entire file) will be sent to the destination host. The fileson both hosts will then be identical. The server running ServiceON NetworkManager is in this case the source while the web server is the destination.

    4: The script checks if rsync updated any files on the web server, andif no changes were made, the script exits. Otherwise, it continues on to thenext step.

    5: The script described in the previous section is run and the database

    is updated.

    If an error occurs at any step, the script will output a warning messageand abort. The warning message is displayed on the front page of the webreporter to alert the users that the database might not be up to date. Theerror message will remain for as long as the script fails to execute, and isremoved the next time the script is executed successfully.

    3.3 Website

    3.3.1 Design

    Ericsson has a number of brand identity documents available on the internalcorporate network. The documents contain guidelines for the proper use ofdesign elements such as fonts, colors and graphics, and also include assetssuch as icons and various templates. Although it was not a requirementfrom Ericsson, these documents were followed as closely as possible.

    The basic design of the website is based on the design of http://www.ericsson.com, while the layout of the front page is inspired by the front

    24

  • 7/29/2019 Web Based Interface Sdh System

    28/62

    3.3. WEBSITE CHAPTER 3. METHOD

    page of Google3. The idea is to have a clean and simple interface where the

    users are not overwhelmed by options. The old web reporter had, accordingto those who used it, an excessive amount of search options and informationpresented. Those questioned only needed an option to search for circuitnames, and this is the only search option that the web reporter provides. Itshowever possible to filter the circuits based on a number of search options.These search options are by default hidden, and only shown when AdvancedSearch is selected.

    The font of the SDH web reporter logo on the front page is EricssonCapital, which is the recommended font for headers in the guidelines. Thelogo toggles between five different gradients which are the secondary Erics-son brand colors, as seen in Listing 3.2. The primary brand colors are white

    and dark blue, as seen in the Ericsson logotype.

    Figure 3.2: The secondary Ericsson brand colors

    JavaScript

    The JavaScript libraries jQuery4 and jQuery UI are used to improve the userexperience and provide visual flair. jQuery is used to hide and show elementson the web page, which can be seen on the front page when enabling anddisabling the advanced search options. jQuery UI is an extension to jQueryand provides the autocompletion feature as well as the calendar under theadvanced search options used to limit the creation date of the circuits.

    3.3.2 Sections

    This is a rundown of the various sections of the website.

    Front page

    The front page provides several search options:

    3http://www.google.com

    4http://jquery.com/

    25

  • 7/29/2019 Web Based Interface Sdh System

    29/62

    3.3. WEBSITE CHAPTER 3. METHOD

    1. Search for a circuit name, or part of a circuit name

    2. Search for circuits connected to a specific network element

    3. Search for circuits created before, after, or between two dates

    None of these options are mandatory, and in other words its possible to leaveall of the options empty which will return all the circuits in the network.

    Searching was initially slow, and could take up to 30 seconds to returnthe results, but after adding MySQL indexes5 it usually takes less than asecond.

    Details

    The search results page displays a list of circuits matching the search criteriawith links to a page with details about the circuit. This page offers twoviews; basic and detailed. The basic view displays information that shouldbe sufficient for most users, such as network elements connected to the circuitalong with slot and port ID. The detailed view on the other hand displaysessentially every piece of information about the circuit from the database.

    Figure 3.3: Front page of the former web reporter

    5http://dev.mysql.com/doc/refman/5.1/en/create-index.html

    26

  • 7/29/2019 Web Based Interface Sdh System

    30/62

    3.3. WEBSITE CHAPTER 3. METHOD

    Figure 3.4: The front page of the new web reporter

    Figure 3.5: Displaying a single circuit

    27

  • 7/29/2019 Web Based Interface Sdh System

    31/62

    3.3. WEBSITE CHAPTER 3. METHOD

    Figure 3.6: The basic view for a circuit

    Abbreviations, About & Help

    There is a myriad of abbreviations in the telecommunications world, and itsdifficult to remember all of them. For this reason there is a page showingthe most common abbreviations that might show up in the web reporter,along with their meaning. There is also an About page and a Help page,

    whose contents should be obvious.

    3.3.3 Suggestions and requests

    The following is a description of some of the more notable suggestions andrequests that were received.

    Auto completion

    Auto completion of circuit names in the search box has been implementedto aid users when searching. When a user is searching for a circuit, forexample BSC21/122RBLT-BSC21/123RBLT, after the user has typed the

    first four letters, BSC2, a box with matching circuits pops up. If arethere more than ten matching circuits, the suggestion box groups togethercircuits, so that if the input BSC2 returns many results, the suggestionbox might display BSC2, BSC22, BSC27, BSC202. If there are less thanten matching circuits, the full circuit names of the matching circuits aredisplayed.

    28

  • 7/29/2019 Web Based Interface Sdh System

    32/62

    3.3. WEBSITE CHAPTER 3. METHOD

    Figure 3.7: Auto completion showing an abbreviated list of matches

    Figure 3.8: Auto completion showing the full names of the matching circuits

    Wild card search

    The previous web report did an exact search for the search query, meaningthat if a user searched for BSC, it would only display circuits named

    exactly that. The new web reporter, however, by default matches all thecircuit names with the search query as a substring. In other words, searchingfor BSC will return every circuit whose circuit name contains the substringBSC.

    To get this functionality in the previous web reporter, one would haveto use wild cards, *. The new web reporter still supports wild cardsthough, and while the search query *BSC* is identical to BSC (as bothsearch for circuits containing BSC), the use of wild cards can be help-ful when searching for circuits containing two separate substrings, such asBSC*MGW.

    Excel

    There are a number of test tools connected to the network, for example sim-ulators to simulate phone calls. The users who work with these tools havea document which list which tool is connected to what network element,and on which port and slot. Previously, this document had to be manu-ally updated, which was a hassle, and some users wanted this to be doneautomatically in the new web reporter.

    29

  • 7/29/2019 Web Based Interface Sdh System

    33/62

    3.3. WEBSITE CHAPTER 3. METHOD

    Table 3.1: Parsing the circuit BSC72/120RBLT-6/PORT(1)/LENA09

    Port Slot Connector Dip Tool

    2 4 BSC72 120RBLT LENA09

    At the time of the project, all the test tools were connected to a sin-gle ADM, and by checking the name of every circuit passing through thatmultiplexer, its possible to get a list of all the tools in the network. A toolcan only be identified by looking at the name of the circuit, and by usingregular expression to parse the name of the circuit, the relevant values can

    be extracted.Using the Python module xlwt, an Excel document is created which the

    user can download. This make the generation of the document automatic,always containing the latest information from the database.

    It should be noted that because its parsing text strings, this functionis extremely sensitive to any misspellings or changes to the formatting ofcircuit names. This shouldnt be a major issue in practice though, as fixingthe name of a circuit is a simple procedure.

    30

  • 7/29/2019 Web Based Interface Sdh System

    34/62

    Chapter 4

    Results

    4.1 Requirements

    1. The ability to search for circuits

    The application is able to search for circuits.

    2. Get management and operational information about thesecircuits

    The application presents both basic and detailed information aboutthe circuits.

    3. Well-documented source code to simplify future developmentof the application

    The source code is well-documented.

    4.2 Design goals

    1. Code readability

    The code has been thoroughly commented, verbosity has been favouredover cleverness (as clever tricks in the code tend to degrade readabil-ity), and a user manual has been written that documents the applica-

    tion, which includes the Fabric script, parser and Django files.In certain sections, the code is designed to accommodate likely futurechanges, such as the test tools being connected to a single multiplexer,as mentioned in Section 3.3.3. The only modification needed if anothermultiplexer is added is to add the ID of the multiplexer to a list in thecode.

    2. Performance

    With the current implementation, it takes 20-30 seconds to updatethe database. This includes everything from running the script for

    31

  • 7/29/2019 Web Based Interface Sdh System

    35/62

    4.3. FUTURE WORK CHAPTER 4. RESULTS

    generating the XML documents on the remote server to importing the

    CSV files into MySQL. This is somewhat unfortunate, but it shouldntaffect the end users, as the website is still functional during the process.

    The website itself is fast and responsive, and searches take one to twoseconds to complete. The website should stay responsive, even as morecircuits are added, thanks to the MySQL database.

    3. Stability

    At the time of writing this, the website has been live for almost twomonths, and while bugs have popped up (that have been fixed), thereare no signs of instability.

    4.3 Future work

    In the detailed view for each circuit, the names of the values (such asNEIdOnNM or LayerSN) are taken directly from the database, andhas caused some confusion to the users. Some names have been exchangedfor more human friendly names, but in many cases the names have beendifficult to decipher. This should be looked into in the future as the de-tailed view is of limited use if the users dont understand what the valuesrepresent.

    A common request that was scrapped due to being somewhat out of

    scope for the project and a lack of time, was a page displaying alarms in thenetwork. These are logged in a database separate from circuit informationusing a different structure (not XML), and would require a new parser.

    32

  • 7/29/2019 Web Based Interface Sdh System

    36/62

    Chapter 5

    Discussion

    It could be argued that parsing the XML documents and then importingthem into MySQL is not the most elegant solution as it adds extra perfor-mance overhead in both time and space. The preferable way of accessing thedatabase might have been to simply query the XML documents on demand,when the users request the information. XQuery1 is a query and program-ming language for XML which at first looks like a good solution for this,but it came with a number of drawbacks.

    First and foremost it meant having to learn a new programming languageon an already tight schedule. It also increases the difficulty for anyone whoin the future wants to modify the code, and last but not least, it might

    even degrade the performance. Certain search queries requires that all fiveXML documents (or tables in MySQL) are scanned, and while this is donein almost an instant with an SQL-database, it will almost certainly take asignificantly longer time with an XML-based database. For these reasons,XQuery was put on the shelf, and other alternatives were explored.

    Another method that initially looked promising was the LOAD XMLINFILE2 statement in MySQL, which imports an XML file into MySQL.Two issues immediately arose, however, making it not seem like a viablesolution.

    First of all, the LOAD XML INFILE statement only supports simpleand well-formed XML documents, of which the XML documents generated

    by the management system is neither. There are for example cases where theXML generated is not even valid according to the W3C recommendation [16],as shown in Listing 5.1 where the value true is stored inside a markup tag,

    1http://www.w3.org/TR/xquery/

    2http://dev.mysql.com/doc/refman/5.5/en/load-xml.html

    33

  • 7/29/2019 Web Based Interface Sdh System

    37/62

    CHAPTER 5. DISCUSSION

    and MySQL would unforunately be unable to extract this value.

    Listing 5.1: Non-valid XML present in the XML documents

    1

    2

    3

    4

    5

    The second reason was that the version of MySQL (5.1) running onthe central database server simply doesnt have support for LOAD XMLINFILE. Therefore other options were explored.

    34

  • 7/29/2019 Web Based Interface Sdh System

    38/62

    Chapter 6

    Conclusion

    The purpose of this thesis has been to implement a web-based interface to amanagement system. The final application meets the requirements and hasbeen online for two months without any major issues. The choice of Pythonand Django as the basis for the website proved to be successful combination,as it provided a quick and simple way of developing the website and testingnew features, yet was powerful enough to do what was required.

    Most features requested by the users have been implemented, for examplecertain search filters and the ability to download an Excel document with atable of how networks tools are connected to the network.

    The website is fast and responsive, and while it might take up to 30

    seconds to update the database, this doesnt affect the end users as thewebsite is functional during this time.

    35

  • 7/29/2019 Web Based Interface Sdh System

    39/62

    Bibliography

    [1] Ericsson.com, Company factshttp://www.ericsson.com/thecompany/company_facts

    Last accessed: November 25, 2011

    [2] Alwayn, Vivek. Optical Network Design and ImplementationISBN: 978-1587051050Indianapolis: Cisco Press, 2004

    [3] Dictionary.com, Plesiochronous Define Plesiochronous at Dictio-nary.comhttp://dictionary.reference.com/browse/

    plesiochronous

    Last accessed: November 13, 2011

    [4] Tektronix, SDH Telecommunications Standard Primerhttp://www.tek.com/Measurement/App_Notes/sdhprimer/

    2RX_11694_2.pdf

    Last accessed: November 13, 2011

    [5] European Telecommunications Standards Institute (ETSI), Syn-chronous Digital Hierarchy (SDH) multiplexing structyrehttp://www.etsi.org/deliver/etsi_i_ets/300100_

    300199/300147/01_60/ets_300147e01p.pdf

    Last accessed: December 5, 2011

    [6] Merriam Webster, Tributary - Definition and More from the Free

    Merriam-Webster Dictionaryhttp://www.merriam-webster.com/dictionary/

    tributary?show=1&t=1298147913

    Last accessed: November 10, 2011

    [7] Ericsson Radio Systems AB, GSM Site Survey

    [8] Freeman, Roger L. Fundamentals of Telecommunications ISBN: 0-471-71045-8 Hoboken: John Wiley & Sons, 2005

    36

  • 7/29/2019 Web Based Interface Sdh System

    40/62

    BIBLIOGRAPHY BIBLIOGRAPHY

    [9] HotFrameworks.com, Python web frameworks rankings

    http://hotframeworks.com/languages/pythonLast accessed: November 21, 2011

    [10] Django Documentation, Modelshttps://docs.djangoproject.com/en/1.3/topics/db/

    models/

    Last accessed: November 21, 2011

    [11] Django Documentation, Viewshttps://docs.djangoproject.com/en/1.3/topics/http/

    views/

    Last accessed: November 21, 2011

    [12] Django Documentation, URL dispatcherhttps://docs.djangoproject.com/en/1.3/topics/http/

    urls/

    Last accessed: November 22, 2011

    [13] Django Documentation, Template languagehttps://docs.djangoproject.com/en/1.3/ref/

    templates/api/

    Last accessed: November 22, 2011

    [14] fabfile.org, Fabric 1.3.3 documentation

    http://docs.fabfile.org/en/1.3.3/index.html

    Last accessed: December 7, 2011

    [15] W3Schools, XML tutorialhttp://www.w3schools.com/xml/

    Last accessed: December 7, 2011

    [16] W3C recommendation, Extensible Markup Language (XML) 1.0 (FifthEdition)http://www.w3.org/TR/REC-xml/

    Last accessed: December 3, 2011

    37

  • 7/29/2019 Web Based Interface Sdh System

    41/62

    Appendix A

    SDH basics

    38

  • 7/29/2019 Web Based Interface Sdh System

    42/62

  • 7/29/2019 Web Based Interface Sdh System

    43/62

  • 7/29/2019 Web Based Interface Sdh System

    44/62

  • 7/29/2019 Web Based Interface Sdh System

    45/62

  • 7/29/2019 Web Based Interface Sdh System

    46/62

  • 7/29/2019 Web Based Interface Sdh System

    47/62

  • 7/29/2019 Web Based Interface Sdh System

    48/62

  • 7/29/2019 Web Based Interface Sdh System

    49/62

  • 7/29/2019 Web Based Interface Sdh System

    50/62

  • 7/29/2019 Web Based Interface Sdh System

    51/62

    Appendix B

    Pointers in SDH

    48

  • 7/29/2019 Web Based Interface Sdh System

    52/62

  • 7/29/2019 Web Based Interface Sdh System

    53/62

  • 7/29/2019 Web Based Interface Sdh System

    54/62

  • 7/29/2019 Web Based Interface Sdh System

    55/62

  • 7/29/2019 Web Based Interface Sdh System

    56/62

  • 7/29/2019 Web Based Interface Sdh System

    57/62

  • 7/29/2019 Web Based Interface Sdh System

    58/62

  • 7/29/2019 Web Based Interface Sdh System

    59/62

  • 7/29/2019 Web Based Interface Sdh System

    60/62

  • 7/29/2019 Web Based Interface Sdh System

    61/62

  • 7/29/2019 Web Based Interface Sdh System

    62/62