=Paper= {{Paper |id=Vol-2546/paper11 |storemode=property |title=Development a computer network user support tool |pdfUrl=https://ceur-ws.org/Vol-2546/paper11.pdf |volume=Vol-2546 |authors=Nadiia Balyk,Vasyl Oleksiuk,Anatolii Halas }} ==Development a computer network user support tool== https://ceur-ws.org/Vol-2546/paper11.pdf
                                                                                          159


    Development a computer network user support tool

             Nadiia Balyk[0000-0002-3121-7005], Vasyl Oleksiuk[0000-0003-2206-8447]
                         and Anatolii Halas[0000-0003-0524-4357]

              Ternopil Volodymyr Hnatiuk National Pedagogical University,
                  2, Maxyma Kryvonosa Str., Ternopil, 46027, Ukraine
            {nadbal, oleksyuk, galas_av}@fizmat.tnpu.edu.ua



       Abstract. The article explores the issues of designing and developing a support
       system for corporate network users. The authors analyzed existing user support
       systems, including the concepts of ServiceDesk and HelpDesk. The study
       describes the process of designing and developing the software “Network user
       support tool” (NetSupport). This tool stores data in the Google Calendar Cloud
       Service. The results of the study are: analysis of the functioning of the Google
       Calendar service, review of the API for working with Google cloud services,
       development and testing of software to support the work of users. Functionality
       of Network user support tool allows you to create events on your system
       administrator or support teams` calendar with a detailed description of the user
       problem. The article describes the process of developing a network support tool
       using C# 6.0 programming language and .NET 4.6 technologies. The developed
       software has been tested in Ternopil Volodymyr Hnatiuk National Pedagogical
       University.


       Keywords: network support, cloud technologies, software development,
       Google Calendar, HelpDesk, ServiceDesk.


1      Introduction

The development of computer networks has been going on for many years. Today,
many computers are integrated into corporate networks. User support on large networks
is performed by several system administrators. They form a support teams. Hardware
and software issues and staff errors cause a large flow of support requests.
   Therefore, there is a need to develop software for scheduling technical support
processes. The relevance of developing the program “NetSupport” is to provide
operational communications users and system administrators.
   The purpose of this article is to develop a software product to support the work of
users of the corporate network.
   The main tasks of the research are:
─ review scientific, technical literature on approaches to support for corporate network
  users problem;
─ analyze available software to support user activity;
___________________
Copyright © 2019 for this paper by its authors. Use permitted under Creative Commons License
Attribution 4.0 International (CC BY 4.0).
160


─ explore advanced cloud technology, including the Google Calendar API
  (Application Programming Interface);
─ design and develop a support system for corporate network users;
─ perform testing of the developed tool.
To solve these problems, we used a set of theoretical and empirical methods such as
analysis of scientific, technical literature, generalization, modeling of processes of
obtaining, storage and processing of data in the investigated systems, observations,
analysis of experience of using different systems in the IT infrastructure of the
corporate network, modeling method and programming.


2      Analysis of the basic concepts of the study

A corporate network is a computer network that is geographically distributed, ie it
brings together different offices, divisions, and the like. The principles underpinning
the corporate network are somewhat different from those used to create a separate LAN
(Local Area Network) [3]. For the proper operation of the network, a technical support
department is required to ensure the correct operation and proper support of the
corporate network.
   Technical support is a service structure for troubleshooting hardware and software
problems, fixing mistakes users. Today to support the work of users use approach from
Information Technology Infrastructure Library (ITIL). ITIL is a library for identifying
problematic areas of the IT infrastructure, assessing the effectiveness of the IT unit [2],
[9].
   One of the main processes described by ITIL is incident management. The main
purpose of incident management is to eliminate as quickly as possible problems in IT
infrastructure – accidents, hardware problems, etc. To implement the process in the
organization and create a special department that contacts with employees and
coordinates the elimination of problems with the IT unit. This department may be called
the Service Desk or the Help Desk [1].
   The goal of Service Desk is to register user requests, provide them with the
assistance they need, and engage IT staff to resolve problems as quickly as possible.
Additionally, this service analyzes the statistics of incidents and the time to resolve
them. This is necessary to evaluate and improve the quality of IT services. The Service
Desk has the advantage of identifying problems and reducing the cost of sub-services.
Such systems can usually collect statistics about PC performance. Help desk is a
narrower concept, it is a tool for technical user support. The Helpdesk concept requires
a technical support department [8].
   Let’s look at some software tools that implement the Service and Helpdesk concept.
Article [4] discusses software development to minimize time costs and increase
productivity in the area of communication services.
   One of the customer support systems is commercial software Zingtree [10]. The
system provides customer support. It provides the ability to automate the processing of
user requests. With scripts, system administrator can reduce the client’s waiting time
for a problem solving. Zingtree further enhances security – large enterprises deploy
                                                                                      161


Zingtree for added control and security. Zingtree helps solve complex decision-making
processes that usually require many steps. Users work with the expert system and
populate the decision tree. They answer the questions and the system displays the
necessary information in a few steps. To create a decision tree, the user does not need
to know programming. It is enough to draw a flow chart or answer questions. As a
result, the Zingtree designer system generates the response code itself.
    Another HelpDesk system is Dezide. It proposes to create intelligent, interactive
maps to solve problems. Skilled workers can create problem maps themselves. In
Builder, you can add causes, troubleshoots, and post solutions [6]. The main idea of the
program is that if other users encounter such a problem, then they will be able to find a
solution in the database.
    The system also allows reduce average computer repair time, standardize
troubleshooting and maintenance processes, and provide feedback to support engineers.
It is possible to connect the system to CRM (Customer Relationship Management),
ERP (Enterprise Resource Planning) and CMS (Content Management System).


3      Results

3.1    Designing a computer network user support tool
The concept of the network support utility is based on the provisions such as
1. We will use the Google Calendar cloud service to notify Customer Support about
   the user's issues.
2. Determine which IT specialist will perform the task based on the user's choice of
   problem category.
3. The application settings must be secure. Only the system administrator can change
   the settings.

Students and teachers work in the academic classroom of the university. The university
network consists of several hundred stationary computers, which are geographically
located in several buildings. Therefore, it is not possible to have a competent system
administrator in every classroom. That is why on our personal computers the network
user support tool developed by us works.
   After the user has filled out and submitted the form, the data is transferred to Google
Calendar. Each user hit creates a new calendar event. G Suite has a shared calendar for
support team. Accordingly, all devices that have their respective accounts added will
be notified of the new event.
   Google Calendar is an effective service for organizing activity. For example, the
service can be used to schedule classes [5]. Using Google Calendar as a specific
database, we can collect and analyze statistics Based on the data obtained, the engineer
will be able to anticipate certain problems. The system administrator can pre-order the
right parts. Statistics can also identify the types of problems and classrooms they may
have.
   The applying of network user support tool model will provide the functions such as
162


─ receiving data about a PC problem (IP address, request creation date, error
  description, feedback email, request priority, classroom selection, and the ability to
  attach a file to explain the error);
─ processing of the entered information and submitting it in a structured format in
  Google Calendar (the event name contains the classroom in which the request was
  made, the field “event location” – the IP address of the problem PC, the color of the
  event determines priority, “attachment” contains the user's file, the date is
  determined automatically, the event description contains the rest of the user's
  information);
─ entering the processed information into the notification system;
─ processing and executing the request by the system administrator.
The calendar is a collection of events. They include additional metadata such as
description, time zone, placement, and more. Each calendar has its own ID. It
corresponds to the email address of one or more calendar owners.
    An event is an object associated with a specific date or time interval. Events are
indicated by an identifier that is unique to the calendar. They contain basic information
such as date, start time and end time, description, location, status, reminders, attached
files. Events can be single or recurring. They can occur between two specific times or
span a series of consecutive days.
    An event always has one organizer who created the calendar. It contains the main
copy of the event. Event can also have multiple participants. The participant is usually
sent an invitation from the primary calendar. Each user works with own calendar. It can
also view or create events on other calendars it has access to. Users can create events
and invite other users (see Fig. 2).




                 Fig. 1. The concept of user access to calendars and events
                                                                                      163


Figure 1 shows
─ User#1’s calendar contains the primary calendar, the group calendar and the
  additional calendar;
─ User#2’s calendar contains the main calendar; it also has access to the group calendar
  and the primary calendar of User#1;
─ User#1 created Event1, so he can take any action with it, User#2 Event1 is view-
  only.
Figure 2 contains the concept of user interaction network user support tool through
Google Calendar.




                             Fig. 2. User’s interactions model

As you can see, a user with a calendar can view the entire list of events (calendar list).
It is based on calendar entries. The calendar owner can add a participant to each event
and specify an access rule by specifying the visibility of the calendar (public, private,
or default).
    Therefore, the network user support tool model provides for synergies between
system administrators and users to solve problems that occur in the latter with
subsequent distribution and control of problem solving. The following is intended to
develop a server for collecting and processing information.


3.2    Implementation of the network user support tool
To create the network user support tool, we have chosen Microsoft .NET. It is a
software technology for creating both desktop applications and web applications. It is
largely a development of Java technology ideas and principles. One of the ideas behind
164


.NET is the compatibility of services written in different languages. .NET is a cross-
platform technology, with Microsoft Windows, FreeBSD and Linux platforms being
implemented at this time.
   .NET is divided into two main parts – the execution environment (virtual machine)
and the development toolkit. There are several .NET application development
environments such as Visual Studio .NET, SharpDevelop, Borland Developer Studio,
Eclipse. In the simplest case, user can develop applications in a text editor and use the
console compiler.
   To use Google Calendar, we need to use the API of this service. This interface is
accessible through Google Code, a software developer service. It is for Google-related
products. However, the site also provides third-party development services. One of the
main services is the version control system. All projects published on Google Code are
open source.
   Application Programming Interface (API) is a set of subroutine definitions,
communication protocols, and tools for building software. This is usually a method of
abstraction between low-level and high-level software. Google offers a wide range of
application interfaces. They allow developers to integrate their own applications with
Google services, such as AdSense, Google Drive, Calendar, and more.
   SOAP (Simple Object Access Protocol) APIs allow developers to integrate native
applications with Google services. APIs allow developers to build applications that
work with Google’s cloud services. These include the Google Apps API, Blogger,
Google Base, Google Book Search, Google Calendar, Google Code Search, Google
Spreadsheets, Google Notebook, and Picasa. The Calendar API allows you to display,
create, and modify calendar events. You can modify and control the event fields.
   To use the Calendar API in Visual Studio, we have created a new project on Google
APIs. We used the Calendar API for this project. Credentials were created to access the
project. We have chosen to access OAuth 2.0 accounts.
   The OAuth protocol allows the application to obtain user rights to use some APIs.
The rights are denoted by a token whose properties are in no way defined. It may be the
same for different users; it may be different for one user at different times. The main
thing is that in exchange for the token, the program will be able to perform some actions
on some service. Unlike the known OpenID protocol (which provides authentication),
OAuth performs authorization [7].
   For applications that use the OAuth 2.0 protocol to call Google APIs, we used an
OAuth 2.0 client ID to generate an access token. The token contains a unique identifier
(Fig. 3). The received client ID and secret can always be accessed from Credentials in
APIs & Services.
   The JSON (JavaScript Object Notation) file with credentials client_secret.json was
then downloaded from Google APIs.
   After creating a new project in NuGet Package Manager, we ran the Install-
PackageGoogle.Apis.Calendar.v3 command. It installed a library to work with the
Calendar API (Fig. 4). A client_secret.json file was also added and set to always copy
this file to the project.
   For example, a class for retrieving calendar entries contains
                                                                                        165


─ the using directive to allow the use of types in a namespace
  (Google.Apis.Auth.OAuth2;        Google.Apis.Calendar.v3;   Google.Apis.Calen-
  dar.v3.Data; Google.Apis.Services; Google.Apis.Util.Store);
─ methods             GoogleWebAuthorizationBroker.AuthorizeAsync           and
  GoogleClientSecrets.Load for user authorize by OAuth2 protocol;
─ instance of the class Google Calendar API service;
─ parameters of request to service (request.TimeMin, request.SingleEvents,
  request.MaxResults, request.OrderBy, request.ShowDeleted).




                  Fig. 3. Create a project in Google Developers Console




                        Fig. 4. Installing Calendar APIs Packages

As you know, calendar owners can share the calendar with others. Calendar sharing
options are provided in the calendar's ACL (access control list, see Table 1). Each
resource in the ACL collection has specific access rights to calendar objects. We used
the following Google Calendar ACL APIs (see Table 1).

                   Table 1. The Google Calendar APIs ACL collections
  Property name          Type                              Description
Etag               Etag              ETag of the resource.
Id                 String            ACL Rule ID
Kind               String            Type of the resource ("calendar#aclRule").
                                     The role assigned to the scope. Possible values are:
Role               String
                                     none, freeBusyReader, reader, writer, owner
Scope              Object            The scope of the rule.
                                     The type of the scope. Possible values are: default
scope.type         String
                                     (public scope), user, group, domain.
                                     The email address of a user or group, or the name of a
scope.value        String
                                     domain, depending on the scope type.
166


   By default, each user has owner access to their master calendar, and this access
cannot be changed. Because our university has a Google Suite academic subscription,
some Google Calendar settings have been made at the domain level. For example, the
support team was forbidden to share calendars outside of the organization. After we
shared our calendars, we worked with individual events using the “scope.type”
property.
   When launching the network support tool, the user will see a fill in form that will
form a new event in Google Calendar. The general view of the program is shown in
Fig. 5.




                        Fig. 5. Interface of the network support tool

The request is formed in the following order. If the problem occurs on a computer where
the user is working, then the radio button “My PC” remains in the form. In doing so,
the program automatically fills in the IP address field of the computer, where the PC
name is additionally written and the field data is not available for change. Instead, if
the user selects RadioButton No, the IP address field will be accessible. You can select
a classroom from the drop-down list. In the future, the audience number will be the title
of the calendar event.
   An e-mail box for the system administrator responsible for each classroom is
assigned. The network support tool adds an employee as a participant to an event on
Google Calendar and notifies them of a problem. The calendar event is marked in color
based on data from the Priority list. There are three types of priority: high, medium and
low. These priorities are matched by three colors – red, blue, or gray. Thanks to it, the
administrator can see which task is of the highest priority. In the text box below, the
user enters text describing the problem. You can also insert an image or screenshot
here.
   Clicking the Submit button prompts you to create an event on Google Calendar.
When the request is generated and sent to the server, the program displays a message
                                                                                        167


about the successfully created request with the text of the message. If there is no Internet
connection, the user will see an error message about the application. Network support
tool will output an error if not all data is entered.
   The following code listing shows a method for adding an event to a calendar based
on user input.
public void Method(string msg, string ip, string summary, string
email) {
    String basicEmail = "netsupport@fizmat.tnpuedu.ua";
    String colorEvent = "";
    String priority = comBPriority.Text;
    switch (priority) {
         case "Hight":          colorEvent = "11"; break; //red
         case "Medium":         colorEvent = "9"; break; //blue
         case "Low":            colorEvent = "8"; break; //grey
         default:               colorEvent = "11"; break;
      }
      UserCredential credential =
GoogleWebAuthorizationBroker.AuthorizeAsync( new ClientSecrets {
           ClientId = "*****.apps.googleusercontent.com",
           ClientSecret = "********",
        },
        new[] { CalendarService.Scope.Calendar },
              "user", CancellationToken.None).Result;
  var service = new CalendarService(new
BaseClientService.Initializer() {
    HttpClientInitializer = credential,
    ApplicationName = "NetSupport tool",
  });
Event myEvent = new Event {
    Summary = summary + "classroom",
    Location = ip,
    Start = new EventDateTime() {
         DateTime = DateTime.Now, TimeZone = "Europe/Kiev"
      },
    End = new EventDateTime() {
         DateTime = DateTimeEnd.AddDays(1),
         TimeZone = "Europe/Kiev"
      },
      Description = "Your email: " + email + "\n" + msg,
      ColorId = colorEvent,
      Recurrence = new String[] {
         "RRULE:FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH"
      },
      Attendees = new List() {
168


             new EventAttendee() {
        Email = ws.m_aAudience[comBAudience.SelectedIndex].email},
            new EventAttendee() { Email = basicEmail }
          }
   };
   Event recurringEvent = service.Events.Insert(myEvent,
"primary").Execute();
 }

If the administrator goes to his calendar, he/she will see the created event (Fig. 6).




                               Fig. 6. Google Calendar event

The system administrator must enter a login and password in order to enter the
application settings. The settings available in the network support tool settings are:
─ add a new classroom;
─ change administrator’s e-mail;
─ remove the classroom.
We have created a separate “Workspace” class to process this information to store
classroom and email data. This class can write and read data about the contents of an
XML (Extensible Markup Language) file. The Workspace class is Singleton. Singleton
is a design template, belongs to the class of creation templates. It ensures that a class
has only one instance, and provides a global access point for that instance. Thanks to
this, we can rest assured that our classroom data and email addresses are securely stored
and will not be deleted the next time you launch the application.
                                                                                          169


4       Conclusions

This article analyzes the basic concepts related to supporting the work of users of
computer networks. We have designed the key features that the program should
perform, selected the language and technology of the software implementation,
described how to create a Google Developer Console project, and steps to gain the
rights to use API features. The result of this project is to obtain a JSON file that allows
the application to access Google Calendar. It also describes the basic concepts of
Google Calendar, its capabilities, and how it works with creating events, sharing them
with other users.
   When developing the network support tool, we learned to use Google APIs,
including the Google Calendar API, to formulate and query calendar events using C#
programming language and .NET technology. The main advantage of this software is
that it promptly notifies the system administrator of the problem of the user, and allows
to distribute and control the process of its execution. The downside is the inability to
send a request without an internet connection.
   We see prospects for further research, such as
─ implementation of the server for information gathering and its analysis;
─ creating a module for the system administrator, where he/she can mark the
  completed tasks, generate requests for events that are entered in the calendar by
  priority, audiences or performance notes;
─ cross-platform development, in particular for OC Linux.


References
 1.   ChiPer: HelpDesk i ServiceDesk. Chto eto i zachem eto nuzhno vashei kompanii (HelpDesk
      and ServiceDesk. What is it and why does your company need it).
      https://habr.com/en/company/deskun/blog/331354 (2017). Accessed 17 Aug 2019
 2.   Fisher, C.A.: Manage digital assets with ITIL: Improve product configurations and service
      management. Journal of Digital Asset Management 2(1), 40–49 (2006).
      doi:10.1057/palgrave.dam.3640071
 3.   Kunstová, R.: Process Support of Business and IT Management in Czech Companies. In:
      Møller C., Chaudhry S. (eds.) Re-conceptualizing Enterprise Information Systems. Lecture
      Notes in Business Information Processing, vol. 105, pp. 168–181. Springer, Berlin,
      Heidelberg (2012)
 4.   Kurhanov, D.A., Azaryan, A.A.: Software development to minimize time costs and increase
      productivity in the area of communication services. In: Kiv, A.E., Semerikov, S.O.,
      Soloviev, V.N., Striuk, A.M. (eds.) Proceedings of the 1st Student Workshop on Computer
      Science & Software Engineering (CS&SE@SW 2018), Kryvyi Rih, Ukraine, November
      30, 2018. CEUR Workshop Proceedings 2292, 116–127. http://ceur-ws.org/Vol-
      2292/paper13.pdf (2018). Accessed 17 Aug 2019
 5.   Oleksiienko, I.V., Franchuk, V.M.: Web-oriented electronic schedule. In: Kiv, A.E.,
      Semerikov, S.O., Soloviev, V.N., Striuk, A.M. (eds.) Proceedings of the 1st Student
      Workshop on Computer Science & Software Engineering (CS&SE@SW 2018), Kryvyi
170


      Rih, Ukraine, November 30, 2018. CEUR Workshop Proceedings 2292, 128–131.
      http://ceur-ws.org/Vol-2292/paper14.pdf (2018). Accessed 17 Aug 2019
 6.   Self Service - Deside. https://www.dezide.com/products/self-service (2019). Accessed 17
      Aug 2019
 7.   Using OAuth 2.0 to Access Google APIs. Google Identify Paltform.
      https://developers.google.com/identity/protocols/OAuth2 (2019). Accessed 17 Aug 2019
 8.   Warren, M.: IT Help Desks Not Just For Large Enterprises. InformationWeek.
      https://www.informationweek.com/business-e-business/it-help-desks-not-just-for-large-
      enterprises/d/d-id/1098348 (2011). Accessed 17 Aug 2019
 9.   Zhao, H., Wang, Y., Zhang, X., Yang, L.: Campus Network Operation and Maintenance
      Management and Service Based on ITIL Service Desk. In: Zu, Q., Hu, B. (eds) Joint
      International Conference on Pervasive Computing and the Networked World ICPCA/SWS
      2012: Pervasive Computing and the Networked World. Lecture Notes in Computer Science,
      vol. 7719, pp. 876–882. Springer, Berlin, Heidelberg (2013). doi:10.1007/978-3-642-
      37015-1_77
10.   Zingtree: Get a Zingtree Demo. https://zingtree.com/demo.php (2019). Accessed 17 Aug
      2019