InTeligent Interoperable Telecommunications ITIL Compliant Services Management System
InTeligent Interoperable Telecommunications ITIL Compliant Services Management System
Dissertation
InTeligent
Interoperable Telecommunications ITIL-compliant Services
Management System
September 3, 2013
Advisors at DEI:
Alexandre Pinto
Jorge Cardoso
Advisor at SAPO:
António Cruz
Abstract
iii
Acknowledgements
It is very rewarding to look back to the time where this thesis was a mere
hypothesis and see where did it took me and what I have learned and accom-
plished, not only as a student but also has a person.
First, I would like to thank my academic advisor Alexandre Pinto for all
the guidance and knowledge provided, all the motivational words provided in
hard times and for the patience and availability shown throughout the year. I
would also like to thank my co-advisor Jorge Cardoso, who pointed me through
the right research directions when needed.
Furthermore, I would like to thank my advisor at SAPO, António Cruz,
for the opportunity of working at an organizational industry level, for all the
knowledge provided, the healthy discussions and all the guidance related to
service design. I would also like to thank Sonia, Rui and Fernando, for all
their inputs regarding ITIL Service Interfaces Design.
I would like to thank to the Genssiz Research Group and the CISUC In-
formation System Group, for all the insights and feedback provided, as well as
all logistics.
In addition, I would like to thank to my family, my parents José and Maria,
my twin brother José, my sister Ana and my grandmother Barbara, for provid-
ing me everything I needed during the course of this thesis and for supporting
me in the big decisions taken.
Last, but not least, I would like to thank my friends and colleagues, for
the companionship, for making me comfortable in times of stress and for all
personal advices provided during this phase of my life.
v
Contents
Abstract ii
Acknowledgements iv
List of Figures xi
1 Introduction 1
1.1 Problem Contextualization - Placement . . . . . . . . . . . . . . 1
1.1.1 Organizational Context . . . . . . . . . . . . . . . . . . . 2
1.1.2 Economic and Social Context . . . . . . . . . . . . . . . 3
1.1.3 Technological Context . . . . . . . . . . . . . . . . . . . 3
1.1.3.1 Languages . . . . . . . . . . . . . . . . . . . . . 3
1.1.3.2 Frameworks . . . . . . . . . . . . . . . . . . . . 5
1.2 Problem Identification . . . . . . . . . . . . . . . . . . . . . . . 5
1.2.1 Business and Management Aspects . . . . . . . . . . . . 6
1.2.2 Technical Aspects . . . . . . . . . . . . . . . . . . . . . . 6
1.2.3 Social and Economical Aspects . . . . . . . . . . . . . . 7
1.3 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.4 Overall Goals and Requirements . . . . . . . . . . . . . . . . . . 9
1.5 Planning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.5.1 Development Methodology . . . . . . . . . . . . . . . . . 9
1.5.2 Risk Management . . . . . . . . . . . . . . . . . . . . . . 11
3 Requirements Analysis 31
3.1 Requirements Elicitation . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2.1 Functional Requirements . . . . . . . . . . . . . . . . . . 32
3.2.2 Non-Functional Requirements . . . . . . . . . . . . . . . 38
4 Architecture 43
4.1 First Level Architecture . . . . . . . . . . . . . . . . . . . . . . 43
4.2 Second Level Architecture . . . . . . . . . . . . . . . . . . . . . 44
4.3 Third Level Architecture . . . . . . . . . . . . . . . . . . . . . . 46
4.3.1 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.2 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.3 Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3.4 APIs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
vii
CONTENTS
6 Development 55
6.1 Ontology Development . . . . . . . . . . . . . . . . . . . . . . . 55
6.1.1 Ontological Specification Level . . . . . . . . . . . . . . . 56
6.1.2 Reused Ontologies . . . . . . . . . . . . . . . . . . . . . 57
6.1.3 Relevant Choices . . . . . . . . . . . . . . . . . . . . . . 59
6.2 SPMS Development . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2.1 Framework Selection . . . . . . . . . . . . . . . . . . . . 61
6.2.2 Technological Architecture Overview . . . . . . . . . . . 61
6.2.2.1 Django Models (MVC Models) . . . . . . . . . 62
6.2.2.2 Django Views (MVC Controllers) . . . . . . . . 62
6.2.2.3 Django Templates (MVC Views) . . . . . . . . 63
6.2.3 Semantic Web Tools . . . . . . . . . . . . . . . . . . . . 67
6.2.3.1 RDFLib . . . . . . . . . . . . . . . . . . . . . . 67
6.2.3.2 RDFLib-PostgreSQL . . . . . . . . . . . . . . . 68
6.2.3.3 Developed APIs . . . . . . . . . . . . . . . . . . 69
6.2.3.4 Important Features . . . . . . . . . . . . . . . . 69
7 Tests 73
7.1 Test Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.1.1 SAPO requirements Validation . . . . . . . . . . . . . . 73
7.1.2 Functional Requirements Testing . . . . . . . . . . . . . 73
7.1.3 Non-Functional Requirements Testing . . . . . . . . . . . 79
7.2 Test Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
8 Conclusions 83
8.1 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
8.2 Critical Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Bibliography 85
viii
CONTENTS
F Schedule 141
F.0.3 First Semester Schedule . . . . . . . . . . . . . . . . . . 141
ix
CONTENTS
x
List of Figures
xi
LIST OF FIGURES
xii
LIST OF FIGURES
xiii
List of Acronyms
IT Information Technology
MVC Model-view-controller
xv
List of listings
xvii
Introduction
1
This chapter is organized in five sections. The first section describes the
problem context and placement. The second section describes the issues of
implementing a viable Information Technology Service Management (ITSM)
solution. The third section presents the motivation, highlighting the added
value and the innovative characteristics of this work. The fourth section de-
fines the overall goals and requirements. Finally, the last section describes a
preliminary thesis planning.
1
CHAPTER 1. INTRODUCTION
1
Department of informatics engineering - http://www.uc.pt/en/fctuc/dei/quemsomos.
2
University of coimbra history - http://www.uc.pt/en/sobrenos/historia.
3
Department of informatics engineering - masters in informatics engineer- ing -
http://www.uc.pt/en/fctuc/dei/ieng/msc.
4
Cisuc centre for informatics and systems of the university of coimbra -
https://www.cisuc.uc.pt/home.
5
Cisuc centre for informatics and systems - information systems group -
https://www.cisuc.uc.pt/groups/show/is.
6
Genssiz: Center for service systems research - http://www.genssiz.org.
7
SAPO - http://www.sapo.pt
8
Portugal Telecom - http://www.telecom.pt/internetresource/ptsite/uk/canais/sobreapt
9
SDB - http://sdb.sapo.pt/en/index.html
10
SES - http://www.tmforum.org/softwareenabledservices/4664/home.html
2
1.1. PROBLEM CONTEXTUALIZATION - PLACEMENT
1.1.3.1 Languages
In this work we resort to several languages as follows:
3
CHAPTER 1. INTRODUCTION
4
1.2. PROBLEM IDENTIFICATION
by all business users, from the business analysts that create the initial drafts
of the processes, to the technical developers responsible for implementing the
technology that will perform those processes, and finally, to the business people
who will manage and monitor those processes.”[41].
1.1.3.2 Frameworks
• Problem 2 - The service world has a clear lack of a cloud ITSM service
portfolio management system that allows companies to adopt services,
technical interfaces and business processes already specified by ITSM
provider companies.
5
CHAPTER 1. INTRODUCTION
6
1.3. MOTIVATION
1.3 Motivation
It is motivating to know that our work can have a major contribute in
the technological world. A variety of entities will gain with the successful
realization of this thesis, mostly because we present a fresh way to ease ITSM
implementation allowing an easier way in which to get value.
With this work the University of Coimbra, DEI CISUC, CISUC-ISG and
Genssiz contribute for the process of standardization, flexibility and automa-
tion of service management, more precisely, IT services, gaining reputation
and credit with the successful development of this project.
PT (SAPO) will benefit from getting a set of defined ITIL interfaces, as
well as the know-how of all the development of such interfaces. All SAPO SDB
7
CHAPTER 1. INTRODUCTION
clients that will make use of the interfaces or applications based on it, which
makes the development of this thesis it extremely motivational.
IT service providers can execute a bypass in order to properly implement
ITIL, or some kind of ITSM approach, only by adopting a set of interfaces
defined in this project, which leads to time, effort, resources and financial
savings.
Since “Customers are outsourcing the delivery and support of their IT
Services to Telcos, so Telcos are offering IT Service Management as a sellable
service”[24], Telcos play a big role in IT service management. They can make
use of IT service components (interfaces) in order to manage sellable services,
so they can act as IT service providers as well as ITSM service providers.
TMForum17 will receive a set of ITIL interface specifications. This way, any
Communications Service Provider can adopt such interfaces and if they prove
to be successful, we can hope for some sort of ITIL interfaces specifications
standardization, which would be a great, probably the biggest, achievement
for all involved parts in this work.
All ITSM service providers, or organizations implementing ITSM, as well
as its clients will benefit from this work, since this project has, as objective, the
decrease of investment that organizations have to undergo for ITSM adoption.
We hope to contribute, as well, to a normalization of the ITIL levels, since
a study from November 2011[16], by the AMP Group, points that: “ITIL
adoption levels are clearly different around the world”. If our developed in-
terfaces became widely accepted, they would likely serve as a base for such
normalization, as companies adopting them, fully or partially, could compare
adoption levels between them with less effort, since the fundamental practices
were similar.
For the IT General Community, this project represents a step towards the
evolution of ITSM adoption, and will act as a principle, guideline, or even
as a standard for ITSM companies, which leads to a more agile and quicker
implementation of ITSM best practices.
Our proposed approach brings an all new perspective to the eyes of IT
services providers, since in order to be in conformity with ITIL, they only have
to adopt, some or all of the interfaces hereby developed. Taking advantage
of our new proposed approach is translatable into an ITSM adoption cost
reduction, not only at a financial level but as well at resources, effort and
time.
17
TMForum - http://www.tmforum.org
8
1.4. OVERALL GOALS AND REQUIREMENTS
1.5 Planning
Like all other software development projects, this thesis performs a thor-
ough planning analysis by adopting elements of a proven methodology, per-
forming rigorous risk management and scheduling project tasks.
9
CHAPTER 1. INTRODUCTION
veloping business application software using agile techniques and concepts yet
still remaining true to the RUP”. RUP stands for Rational Unified Process,
which is an unified software development methodology, that takes advantage
of the experience of the process of standardization and concepts of Unified
Modeling Language (UML)[50].
From AUP we reuse the following disciplines:
• Test - All built artifacts from the implementation discipline are targeted
by an “objective evaluation to ensure quality. This includes finding de-
fects, validating that the system works as designed, and verifying that
the requirements are met.”;
10
1.5. PLANNING
4. Risk monitoring - “Regularly assess the risk and your plans for risk
mitigation and revise these when you learn more about the risk”;
It should be pointed that after risk definition, the risks were sent to super-
visors for reviews, which originated some corrections that were made during
the thesis course.
Figure 1.1 Shows Sommerville’s risk process flow.
Figure 1.2 Shows the risks, affection, type, description, probability, effect,
strategies and possible indicators considered during the course of the project.
11
CHAPTER 1. INTRODUCTION
12
13
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
2. Step 2 Document the flow (this would also include installing metrics
etc.).
Malcolm’s process design procedure [Figure 2.1] includes four major defini-
tions that we will reuse in this thesis for the creation of interfaces and respective
BPMN process schemas:
14
2.1. RELATED WORK
comparing the targeted metrics with the real actual occurrence metrics
(e.g. we consider a target of 99% for all incidents to be escalated to
the correct support group first time, but in reality only 95% of incidents
are properly escalated in the first time, this can mean a lot of things, for
instance it can mean that the escalation procedure needs to be changed).
2.1.3 Component
Component-based Software engineering (CBSE) emerged, and it is de-
scribed by Sommerville [47], as “the process of defining, implementing, and
integrating or composing loosely coupled, independent components into sys-
tems.”.
Our work takes into consideration an essential point of CBSE, approached
by Sommerville, more specifically, that “there should be a clear separation
between the component interface and its implementation. This means that one
implementation of a component can be replaced by another, without changing
other parts of the system”. This is why we only define interfaces, because some
might want to develop, or change, specific component implementations, (e.g.
the incident matching implementation can be different between two distinct
service providers, or the same service provider might want to update the way
that it performs the incident matching).
15
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
• Council and Heineman [8], define component as: “a software element that
conforms to a component model and can be independently deployed and
composed without modification according to a composition standard.”;
16
2.1. RELATED WORK
17
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
management, may also serve other areas of IT.” (e.g. Financial Manage-
ment, IT Service Continuity Management, Strategy Generation, etc.);
2.1.4 Interface
As Sommerville states [47], “the services offered by a component are made
available through an interface and all interactions are through that interface”
and “an important part of any design process is the specification of the inter-
faces between the components in the design” therefore there is a need for us
to clarify what we do understand by ”interface”.
Council and Heineman [8] define interface as “An abstraction of the be-
havior of a component that consists of a subset of the interactions of that
component together with a set of constraints describing when they may oc-
cur. The interface describes the behavior of a component that is obtained
by considering only the interactions of that interface and by hiding all other
interactions.”.
Silva and Vieira [51] define interface as “a contract, in a form of a col-
lection of operations definitions, which provides a mechanism for a clear sep-
aration between an external and internal view of a determined element and
allows establishing ”client-provider” relationship mediated by the notion of
”contract”.”.
Papazoglou and Yang [42] state that “interface is the description of the
signatures of a set of operations that are available to the service client for
invocation.”.
18
2.1. RELATED WORK
19
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
2.1.5.1 Coupling
2.1.5.2 Cohesion
20
2.1. RELATED WORK
21
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
22
2.1. RELATED WORK
23
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
The Service Portfolio is divided into three phases: Service Catalogue, Ser-
vice Pipeline and Retired Services (Figure 2.5).
• Defined - the set of requirements for the new service are being assessed,
defined and documented and SLR is being produced;
24
2.1. RELATED WORK
• Analysed - the set of requirements for the new service are being analysed
and prioritized;
• Approved - the set of requirements for the new service have been final-
ized and authorized.
• Designed - the new service and its constituent components are being
designed - and produced, if required;
• Built - the service and its constituent components are being built;
• Test - the service and its constituent components are being tested;
• Released - the service and its constituent components are being released;
25
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
When these Services become phased out, they are stored in a knowledge base
for future use.
A service with the retired status associated, means that the service and
its constituent components have been retired.
Figure 2.6 gives a better picture of ITIL Service Portfolio and its contents.
2.2 State-of-the-Art
26
2.2. STATE-OF-THE-ART
R IT Service Catalog7 .
5. bmc
:
27
CHAPTER 2. RELATED WORK AND STATE-OF-THE-ART
provides the following contents of service (that can in some way be linked to
ITIL ones):
It should be stressed that likely more contents are present in this solu-
tion, however, the only clear ones that could be mapped to ITIL are the ones
described above.
however it lacks defining services from other scopes of the portfolio, namely:
28
2.2. STATE-OF-THE-ART
Regarding the Solutions described in 2.2.1, some lack to consider all status
of portfolio services, only describing active services, some other only describe
applications that can be seen as a service, putting aside all other service status.
There is only one that is ITIL conformant, PLANEVIEW
R SPM, however it
29
Requirements Analysis
3
This Chapter is subdivided into two sections. The first one relates to
requirement elicitation, namely, finding out requirements by interacting with
stakeholders. The second section describes the requirements.
In this chapter we present the result of requirements analysis, which was
sent to all stakeholders so that revisions could be considered and performed.
We followed a FURPS+ requirements methodology and used a MoSCoW
analysis for specifying the requirements priority. For more information regard-
ing such, see Appendix B.
31
CHAPTER 3. REQUIREMENTS ANALYSIS
3.2 Requirements
As follows we present a list of the considered requirements, divided into
two categories:
F1. Register Company - The system must register a company into the in-
formation system, in order to provide authentication service for com-
panies, these need to be registered into the system.
32
3.2. REQUIREMENTS
F3. Add ITSM Service Instance - The system must grant companies the
option of adopting available,“in file”, ITSM service solutions. One
of the goals of our work is to make possible for consumers to adopt ITSM
solutions, previously specified by ITSM providers. In order to add an
ITSM Service instance metadata, the service provider, has to explicitly
grant authorization to the requesting consumer.
F4. Allow ITSM Service Instantiation - ITSM Providers must explicitly al-
low consumers to adopt their set of proven ITSM service spec-
ifications. Only when providers agreed to provide a service metadata
specification to a company (through payment, trading or any other mar-
keting exchange method), companies can instantiate ITSM services.
F5. Add ITSM Service - It must be allowed to ITSM Providers to add ITSM
services (e.g. ITIL Incident Management). Companies that provide
ITSM solutions should be able to publish (or add) ITSM services in the
system.
F6. Import Workflow - The system should allow companies, when adding
an ITSM Service, to import a workflow model (BPMN2.0/XML).
This way the service has a structured flux in its metadata description.
F7. Import Interfaces - The system should allow companies, when adding an
ITSM Service, to import an interface specification (WSDL). This
way the service has a metadata description of the technical operations,
inputs and outputs.
F8. Edit ITSM Service - System should allow companies to edit ITSM
Services. When a service is updated to a newer version, a new service
record should be performed, instead of altering the “old” version, this
way, all versions remain available in the system. So only uninstantiated
ITSM services can be edited.
F9. Edit ITSM Service Instance Properties - The system must allow comsumer
companies to edit ITSM service instances metadata to some, or
all, of its properties. For example, a running ITSM service (instance)
with the “approved” status today can be “retired” in a matter of months,
therefore instances owners should be able to edit it.
F10. Search Service - The system must allow companies to search for ser-
vices in the system. Companies must be able to search for the ITSM
solutions available.
33
CHAPTER 3. REQUIREMENTS ANALYSIS
F12. View Own Portfolio - Each company must be able to view its own
service portfolio. Companies must be able to see all services present
in their portfolio so that they can manage their services properly and
have a better overall picture of their solutions.
F14. Filter Catalogue Service Instances - The system, trough a filtering agent,
must be able to filter the edited instances of the ITSM services of
a provider. In order to present the catalogue of ITSM services instances,
the system has to check which ITSM services are in an operational phase
and then present those to the providing company.
F15. Filter Services by Searching Criteria - The system must group and
return all services that fit into the search specified by one specific
company. System must present the services with a certain characteristic
desired by the user.
F16. Filter Service Instance by category - The system must filter the ser-
vices by category (e.g. return only action components). When
browsing services, the system must be able to show only those from the
selected category.
F17. Export Service Instance - Users must have the possibility of exporting
the service to a service description language (e.g. Linked-USDL).
If the user wants to transpose the service present in our system to other
system it has to be able to export it to a interoperable representation.
F18. Search ITSM Service Instances - The system must allow companies to
search for service instances in the system. Companies must be
able to search for the adopted ITSM services.
34
3.2. REQUIREMENTS
F19. Log Company Out - The system must allow companies, to become
unidentified in the system. Companies must be able to log out for
security measures, so that unauthorized entities are unable to make some
change to the system in their name.
F21. Relate Interface operations With Process Activities - The system should
be able to interconnect interface operations of a service with
its own process operations. This functionality allows companies to
specify which operations are executed when a certain activity in a process
takes place.
F23. Assign Prices to Process Elements - The system should allow consumer
companies to associated costs to the elements of a service pro-
cess. This way consumers would be able to specify prices to all process
elements, which could lead to the extraction of valuable financial infor-
mations, from either a global perspective, as well as a individual one.
35
CHAPTER 3. REQUIREMENTS ANALYSIS
The flow of such processes must be driven from ITIL publications and
must be described in interface specifications.
36
3.2. REQUIREMENTS
to call, their order and the way that messages are exchanged between
them (workflow) we shall specify the workflow in some notation (BPMN,
as previously justified).
SAPO4. Insert interface specification into the SDB Backoffice - The inter-
faces specifications must be inserted in the SDB Backoffice after they are
validated by SAPO Partners.
A.
c Cruz (SAPO, PT)
37
CHAPTER 3. REQUIREMENTS ANALYSIS
Usability
U1. Indicate System Status - System should evince its own status. When
some performed action changes system status (e.g. Edit, Add or Delete
operations), the system should provide a clear statement informing the
“new” state.
U4. Allow Undo in web forms - System must allow users to undo operations
performed in the system. In the web forms (e.g. edit service instance)
the system should allow undo.
U5. Same terms for identical operations - The system terms must be consis-
tent. The system should refer to equivalent actions (or operations) with
same terms ,or icons, e.g. “cancel” in Edit Service web form must mean
semantically the same as “cancel” in Add Service web form.
U6. Present and Highlight errors - Errors originated by poor filling (e.g.
write letter in an number field) must be highlighted by the system.
When some user fails in properly filling a specific field, after the form
is submitted, the system must provide highlighted feedback to the user
explaining what went wrong.
U7. Limit Options - The system should present set of predefined values
when some properties are restricted to those values. When there is a
38
3.2. REQUIREMENTS
system attribute that can only take limited values, the system should
only display those.
U8. Describe Input Fields - System should present a small description for
every input field. The system should present a description of each and
every input field, so that users understand exactly what is requested.
U9. Provide Accelerators - System must provide efficient ways so that new
users can effectively find any object. New users have to have ways
to find, for instance, an ITSM Service, in this case search forms provide
a quick way of finding what they are looking for.
U10. Describe errors and fixes in plain language - When an error occurs, the
system should present the error in a way that the user under-
stands it. There are only a some of persons that would understand
the meaning of an error code or the technical jargon used by some er-
ror descriptions, therefore errors should be presented in layman’s terms,
ideally the error fix should also be described.
U11. Provide Help Section - The system could provide a help section (e.g.
Frequently Asked Questions section). Even with error messages and well
defined options, some might not know “what to do”, therefore a web
page where such specific situations could be clarified (e.g. through a
question).
Reliability
R1. Twenty-four Hours Available - The system won’t be on-line for twenty
four hours within this thesis scope. However it should be if the system
were to be developed aiming for a real world application market.
Performance
39
CHAPTER 3. REQUIREMENTS ANALYSIS
Supportability
S1. Testable System - The system must be testable. Since we propose some
system requirements, those must be verified by test to check if they
were, or not, achieved, for this purpose a test plan will be presented in
the second semester.
S3. Optimize Persistence Storage - We must opt for a data base manage-
ment system that optimizes persistence, through the use of Post-
greSQL (RDFLib-PostgreSQL API) over IO Memory (Python RDFLib
built-in), in order to make the application scalable.
Design
D1. Triplestore required - We must use a triplestore to store data. In
order to store the semantic values, classes, instances and properties of
services and services instances we must use a Triplestore.
Implementation
Im1. Recur to A Web Application Framework - The project should be de-
veloped using a Web Application Framework (WAF) - Django1 .
As explained before WAF’s incorporates one or more frameworks that
support, in this case, a more agile and quick development.
1
Django - https://www.djangoproject.com
40
3.2. REQUIREMENTS
Im2. Use interfaces - The system must use APIs. Since there are already
developed interfaces, easing the development (e.g. RDFLib), they must
be used.
41
Architecture
4
This chapter is subdivided in three sections. The first one presents a simple
view of the architecture. The second presents a component diagram and a
corresponding explanation. The final section presents a detailed analysis each
of the components. As Silva and Videira state[51], “The architectural diagrams
describe aspects from implementation phase and installation of a system in
general, a software system in particular.”, therefore we use such diagrams in
order to clarify the architecture of the system.
Primarily the system is accessed through a web browser, then the users’
requests are processed and transformed into operations to be taken by the
system, recurring to data (in the DBMS or in the Triplestore) and at last, the
system returns a response with the information requested by the user.
43
CHAPTER 4. ARCHITECTURE
44
4.2. SECOND LEVEL ARCHITECTURE
45
CHAPTER 4. ARCHITECTURE
4.3.1 Templates
The templates are based in some of the use case diagram since each repre-
sents a sequence of actions of one or more actors taken by one or more users
in order to obtain a specific result[51].
In light of the above, Figure 4.4 presents in more detail the templates of the
system. It should be stressed that every template displays the base.html, which
is an html file containing a common layout through all system web pages.
4.3.2 Views
Each template has an associated view. Every searching, filtering or brows-
ing operation recurs to other defined views, hereby defined as “Filtering Agent
Views”.
Figure 4.5 presents in more detail the Views (components) of the system.
4.3.3 Models
In order to store user information we use two Django models: User and
Group. This way we can define a user (company) and its group (Provider or
46
4.3. THIRD LEVEL ARCHITECTURE
Consumer). The only model that we needed to define was the Instantiation-
Request, to represent the requests from consumers to customers in order to
instantiate an ITSM Service. All other information regarding services and its
attributes is stored in a triple store, accessible through an API.
47
CHAPTER 4. ARCHITECTURE
4.3.4 APIs
In order to filter, browse and/or search services through semantic web tech-
nologies we need to recur to three APIs: RDFLib and RDFLib-PostgreSQL.
RDFLib abstracts the triple store operations, which at a conceptual level
can be considered Model (in the MVC pattern), since it’s used to store and
retrieve information, in the form of triples. However, in order to avoid mis-
understandings we placed it in the API Layer, since it’s accessible through an
interface.
Figure 4.7 presents in more detail the APIs (components) of the system.
48
ITIL Interfaces Design
5
One of the main goals of this thesis is the development of a set ITIL in-
terfaces, which will enable the eventual standardization and automatization
of some ITIL conformant IT services. Specifying the interfaces consists in
defining ITIL information objects, representing them through an abstract IT
component template containing business process (BPMN) and Technical In-
terface (WSDL) information. Alongside our SAPO partners we were able to
develop two interfaces for the Incident Management (IM) and Problem Man-
agement (PM) processes. The first is described by one business process and
seven cross-functional flowchart diagrams, the second is described by one busi-
ness process diagram and eight cross-functional flowchart diagrams, present in
Appendix D.
49
CHAPTER 5. ITIL INTERFACES DESIGN
If the process or function described in ITIL does not have a defined formal
process, the work described in section 2.1.5.2 should be considered instead of
step one and two.
For a better understanding of the process described, we present it in a
graphical model in Figure 5.1.
50
5.1. INTERFACE DESIGN PROCESS
Figure 5.3 shows part of the IM process (the full process diagram is illus-
trated in Appendix D).
51
CHAPTER 5. ITIL INTERFACES DESIGN
52
5.1. INTERFACE DESIGN PROCESS
Figure 5.4: Part of the cross functional diagram describing the ITIL IM Process
2
Module responsible for the interpretation of arguments and results of Remote Procedure
Call Protocol calls[2]
53
Development
6
This Chapter is subdivided into two sections. The First describes the
development of the ontology used in SPMS to represent information concerning
ITSM Services.The Second describes, in detail, the development of the SPMS
Web Application.
55
CHAPTER 6. DEVELOPMENT
Since we were already working with ITIL practices, we selected the services
attributes present in the ITIL
R Service Design publication [39] to informa-
• Contract - ITIL clearly indicates that the service specification should in-
clude information regarding contracts, which is not specified in itsmo on-
tology (see section 6.1.2), despite possessing a specification of an itsmo:Agreement;
56
6.1. ONTOLOGY DEVELOPMENT
Figure 6.2 shows the practical example of the OWL-DL disjointWith con-
struct, given before.
57
CHAPTER 6. DEVELOPMENT
IT Service Catalog according with ITIL best practices, ISO 20000 stan-
dards and LinkedData W3C principles.”2 . This is exactly what we need
to describe ITIL service attributes in our application;
58
6.1. ONTOLOGY DEVELOPMENT
59
CHAPTER 6. DEVELOPMENT
instances). For example we could define a new ITSM service, say ”ITILChange-
Management” as a subclass of ITSMService, or we could have a class of
”ITILService”, a subclass of ITSMService, which could have another subclass
named ”ITILChangeManagement”, which in turn would have its individuals.
However this would implicate a schema change every time a new ITSM Service
or ITSM Service Type were to be added to the system.
Temporal Efficiency By not defining a new class for each instance of ITSM-
Service, when we want to filter services we only have to infer on data type
properties, instead of inferring on object type properties, since we only have
to access, for instance, to the guidelines that the service follows (e.g. ITIL,
ISO/IEC 20000, etc.), which leads us to temporal cost efficiency.
60
6.2. SPMS DEVELOPMENT
2. RDF support;
61
CHAPTER 6. DEVELOPMENT
class InstantiationRequest(models.Model):
provider_company = models.CharField(max_length=30)
consumer_company = models.CharField(max_length=30)
service_name = models.CharField(max_length=30)
accepted = models.BooleanField(default=False)
62
6.2. SPMS DEVELOPMENT
Listing 2 View for listing all buyers of ITSM Services from a providing com-
pany.
@login_required
def view_catalogue(request):
user = request.user
group = Group.objects.get(name=’ProviderCompany’)
users = User.objects.filter(groups = group)
if user in users:
requests = InstantiationRequest.objects.filter(
provider_company = request.user.username,
)
consumers = []
for r in requests:
if r.consumer_company not in consumers:
consumers.append(r.consumer_company)
variables = RequestContext(request, {
’consumers’ : consumers
})
return render_to_response(
’viewCatalogue.html’,
variables
)
raise Http404
The templates are html files (user interface) that allow the user to interact
with the system through a web browser.
63
CHAPTER 6. DEVELOPMENT
The template lists all the services returned from its respective view in a
select within a html form.
Figure 6.6 shows the template interpreted in a web browser.
64
6.2. SPMS DEVELOPMENT
bootstrap13 2.3.2. This way organizing html elements and develop an applica-
tion with a good browsing experience was fast and clean.
Bootstrap is an open source front-end toolkit, providing HTML, CSS, and
JavaScript-based design templates, a variety of UI components and interactions
for building websites14 . Bootstrap has vast set of features, including:
JQuery Even though Django does not provide a JavaScript library to sim-
plify working with AJAX, choosing one and integrating it with Django is a
straightforward matter”[23].
JQuery is a lightweight, JavaScript library, takes a lot of common tasks
that require many lines of JavaScript code to accomplish, and wraps them
into methods that you can call with a single line of code. It also simplifies
a lot of the complicated things from JavaScript, like AJAX calls and DOM
manipulation15 . More specifically, “The jQuery library has a full suite of AJAX
capabilities. The functions and methods therein allow us to load data from
the server without a browser page refresh”16 .
We selected JQuery JavaScript library, since “JQuery provides three ad-
vantages over existing code browsing techniques. First, because JQuery can
inherently support multiple types of browsing, complicated searching tasks can
be performed all within the same tool, decreasing the disorientation associated
with switching tools to complete a single task. Second, because there is a rich
logic programming language that forms the basis of all queries, a wide vari-
ety of searches can be performed using only JQuery. Lastly, it is extensible.
Users can edit a configuration file to add their own queries to the JQuery
menus.”[36].
For instance, we used JQuery to help display the html form for editing an
ITSM Running service without a page refresh, displaying the current values of
the service attributes in the html form fields.
The following code shows how this was done.
13
http://getbootstrap.com/2.3.2/
14
http://www.cubrid.org/blog/dev-platform/overview-of-bootstrap-from-twitter/
15
http://www.w3schools.com/jquery/jquery\_intro.asp
16
http://api.jquery.com/category/ajax/
65
CHAPTER 6. DEVELOPMENT
Listing 4 Script to get the form for editing a service through an AJAX request.
jQuery(document).ready(function() {
jQuery("select").change(function () {
var str = ’’;
var selected = jQuery("select option:selected:first");
str += selected.text();
var substr = str.split(’: ’);
var company = substr[0];
var abstract_service = substr[1];
abstract_service = abstract_service.replace(new RegExp(" ", "g"), "_");
var html_code = ’’;
jQuery.get("/getFillForm/"+company+"/"+abstract_service+"/",
function(html_form) {
html_code = html_form;
jQuery(".fill-form").html(html_code);
});
});
})
When a service is selected in the template (see Figure 6.6) the application
displays a form with the service attributes filled.
Figure 6.7 Shows the template after a service has been selected .
66
6.2. SPMS DEVELOPMENT
However,W3C17 , points four libraries that are independent from other RDF
Libraries:
From the previous list, RDFLib is the “Largest, most diverse RDF handling
library”[53]. It is also the most documented and the most popular which means
that has been greatly tested. Consequently is the one chosen by us.
6.2.3.1 RDFLib
RDFLib allows us to add, update and delete triples18 to a triple store and
read data through SPARQL queries19 .
The following example shows how a triple is added to the store, in this case
through the set command, that replaces (or creates) the value of a publisher,
if the service could have two publishers we could add another with the add
command.
17
http://www.w3.org/wiki/SemanticWebTools#Python_Developers
18
https://rdflib.readthedocs.org/en/latest/using\_graphs.html
19
https://rdflib.readthedocs.org/en/latest/intro\_to\_sparql.html
67
CHAPTER 6. DEVELOPMENT
Listing 5 Add or replace the publisher of a certain service in the Triple Store.
provider = user.username
service = itsm_service_name
uri_str = (provider+"__"+service).replace(" ", "_")
#ITSMService URI
itsm_service = URIRef(ontologies[’inteligentpop’][uri_str])
#The service has a publisher - the company who publishes it.
graph.set(
(itsm_service,
URIRef(ontologies[’inteligent’][’hasPublisher’]),
Literal(user.username))
)
6.2.3.2 RDFLib-PostgreSQL
20
http://www.postgresql.org
68
6.2. SPMS DEVELOPMENT
plugin.register(
’PostgreSQL’, store.Store,
’rdflib_postgresql.PostgreSQL’, ’PostgreSQL’)
configString = "user=django dbname=Inteligent password=django host=localhost"
default_graph_uri = "http://genssiz.org/inteligent/"
pgstore = plugin.get(’PostgreSQL’, store.Store)(identifier="rdflibtest")
graph = Graph(store=pgstore,
identifier=URIRef(default_graph_uri))
rt = graph.open(configString, create=False)
if rt == store.NO_STORE:
graph.open(configString, create=True)
else:
assert rt == store.VALID_STORE, "The underlying store is corrupt"
Import BPMN The SPMS can import process models, defined in other
applications, and through pybpmn extract relevant information of an ITSM
21
http://docs.python.org/2/library/xml.etree.elementtree.html
69
CHAPTER 6. DEVELOPMENT
Service. Figure 6.8 Shows the BPMN information, regarding elements, after it
has been imported.
70
6.2. SPMS DEVELOPMENT
71
7
Tests
73
CHAPTER 7. TESTS
Figure 7.1 presents in more detail the developed test case for this re-
quirement.
74
7.1. TEST PLAN
• Check if system correctly saves the reference for the workflow file.
• Check if the system correctly saves the reference for the interfaces
file.
75
CHAPTER 7. TESTS
TF9. Tests for functional requirement “Edit ITSM Service Instance Proper-
ties”:
• Check if the system warns the user when performing a blank search.
• Check if the system warns the user when the search returns an
empty search.
• Test most combinations of values.
• Check if results are correct for tested combinations of values.
Figure 7.2 presents in more detail the developed test case for this re-
quirement.
Figure 7.3 presents in more detail the developed test case for this re-
quirement.
76
7.1. TEST PLAN
• Check if the system warns the user when performing a blank search.
• Check if the system warns the user when the search returns an
empty search.
• Test most combinations of values.
• Check if results are correct for tested combinations of values.
77
CHAPTER 7. TESTS
78
7.1. TEST PLAN
TU5. Tests for usability requirement “Same terms for identical operations”:
• Check fields and verify if those that are restricted to some values
only display those same values.
• Check if the most important operations are easily and quickly reached.
TU10. Tests for usability requirement “Describe errors and fixes in plain lan-
guage”:
79
CHAPTER 7. TESTS
TP2 Tests for performance requirement “10 seconds Maximum Response Time”:
80
7.2. TEST EVALUATION
81
Conclusions
8
The main goals of this thesis, described in detail in section 1.4, were to de-
velop a set of ITIL conformant interfaces and a Service Portfolio Management
web application. This chapter is divided in two sections, the first one describes
what can be done, in the future, to improve what was built, the second one
presents a critical analysis to the undertaken work.
83
CHAPTER 8. CONCLUSIONS
84
Bibliography
[9] A. Cruz, P. Ramalheira, and E. Troup. Service delivery broker. page 40.
v1.1 edition, January 2012.
85
BIBLIOGRAPHY
[14] C. Economics. Itil benefits and barriers to success itil benefits and barriers
to success itil benefits and barriers to success. Technical report, Computer
Economics, Inc., February 2009.
[20] J. Heflin. W3c:web ontology language use cases and requirements., Febru-
ary 2004.
86
BIBLIOGRAPHY
[31] J. Koehler. The Process-Rule Continuum - Can BPMN SBVR Cope with
the Challenge?, 2011.
[32] J. Kuhn. Decrypting the moscow analysis. The workable, practical guide
to Do IT Yourself, 5.44, November 2009.
[33] H. Lausen and J. Farrell. Semantic annotations for wsdl and xml schema.
W3C recommendation, W3C, 2007.
[35] D. Martin, M. Burstein, J. Hobbs, et al. Owl-s: Semantic markup for web
services owl-s: Semantic markup for web services owl-s: Semantic markup
for web services. W3C Member Submission, November 2004.
[39] G. B. C. Office and S. Office. ITIL Service Design. The Stationery Offic
Series. Bernan Assoc, 2011.
[40] S. Office. Itil Service Strategy. The Stationery Offic Series. Bernan Assoc,
2011.
[41] OMG. Business Process Model and Notation (BPMN) - Version 2.0,
January 2011.
87
BIBLIOGRAPHY
[42] M. Papazoglou and J. Yang. Design methodology for web services and
business processes. 2444:175–233, 2002.
[55] T. Zimmermann. Business decision - why i use django and not ruby on
rails - http://www.screamingatmyscreen.com/2012/2/business-decision-
why-i-use-django-and-not-ruby-on-rails/, February 2012.
88
Technological Analysis and
A
Considerations
2. “Dynamic Web Pages” - “Classes are provided to help you define web
page templates and to populate these dynamically with specific data
from the system database”;
89
APPENDIX A. TECHNOLOGICAL ANALYSIS AND
CONSIDERATIONS
in open source solutions.
In light of the above, we considered the two more complete open source
web frameworks[55]:
1. Django;
5. Provides a way to “manage all the content”, saving time and in most
cases “there’s no need for anything else”.
6. “It is used by many people (...) regular people (...) there is nothing fancy
about it” and “people can learn Django in a short amount of time”;
1. In RoR “You write one line of code and you do so much things you don’t
even know about.”;
2. When “something does not work you sometimes have a really hard time
to even find the place where it fails”;
3. In RoR “was the first project that did migrations right. They are way
ahead of their competitors”.
In light of the above comparison, we can consider that RoR is better than
Django in Deployment and in Data Base Migration.
However, in our particular case, we do not expect to deploy the applications
a lot of times, just for proof-of-concept or presentation reasons, we don’t see
90
A.3. WHY PYTHON?
3. Clean URL design - “URL system in Django is very flexible and pow-
erful. It lets you define patterns for the URLs in your application and
define Python functions to handle each pattern. This enables developers
to create URLs that are both user and search engine friendly.”;
91
APPENDIX A. TECHNOLOGICAL ANALYSIS AND
CONSIDERATIONS
management of your application’s data a breeze. It is also highly flexible
and customizable.”;
92
Requirements Methodology and
B
Guidelines
1. FURPS[15];
2. FURPS+[15];
3. ISO/IEC 9126[26];
4. Volere1 ;
93
APPENDIX B. REQUIREMENTS METHODOLOGY AND
GUIDELINES
94
B.2. ADOPTED GUIDELINES
3. Use text highlighting (bold, italic, or color) to pick out key parts of the
requirement;
95
Functional Requirements Mockups and
C
Sequence Diagrams
97
C.1 Requirement F1. Register Company
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
98
C.2.
REQUIREMENT F2. LOG COMPANY IN
99
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
100
101
C.4 Requirement F5. Add ITSM Service
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
102
103
C.5 Requirement F9. Edit ITSM Service Instance Properties
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
104
105
C.6 Requirement F10. Search Service
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
106
107
C.7 Requirement F11. Browse Service
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
108
109
C.8 Requirement F12. View Own Portfolio
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
110
111
C.9 Requirement F13. View Consumer Company Catalogue
SEQUENCE DIAGRAMS
APPENDIX C. FUNCTIONAL REQUIREMENTS MOCKUPS AND
112
113
SAPO Interfaces Diagrams
D
In this appendix we present graphical representation of the Incident Man-
agement (IM) interface and Problem Management (PM) interface diagrams.
Since some diagrams are too large we had to subdivide it in order to be pre-
sented here.
115
D.1 Incident Management
Figure D.3: ITIL Incident Management Cross-Functional Flowchart Diagram for Incident Identification
D.1. INCIDENT MANAGEMENT
Figure D.4: ITIL Incident Management Cross-Functional Flowchart Diagram for Is this really an Incident?
119
APPENDIX D. SAPO INTERFACES DIAGRAMS
120
Figure D.5: ITIL Incident Management Cross-Functional Flowchart Diagram for Incident Categorization and Prioritization
D.1. INCIDENT MANAGEMENT
Figure D.6: ITIL Incident Management Cross-Functional Flowchart Diagram for Incident Matching, Initial Diagnosis and
121
Escalation
APPENDIX D. SAPO INTERFACES DIAGRAMS
122
Figure D.7: ITIL Incident Management Cross-Functional Flowchart Diagram for Incident Resolution, Recovery and Closure
D.1. INCIDENT MANAGEMENT
Figure D.8: ITIL Incident Management Cross-Functional Flowchart Diagram for Search Incident
123
APPENDIX D. SAPO INTERFACES DIAGRAMS
124
Figure D.9: ITIL Incident Management Cross-Functional Flowchart Diagram for Change Incident Status or Owner
D.2 Problem Management
D.2.1 Business Process
Figure D.13: ITIL Problem Management Cross-Functional Flowchart Diagram for Problem Identification
D.2. PROBLEM MANAGEMENT
129
Figure D.14: Part one of ITIL Problem Management Cross-Functional Flowchart Diagram for Problem Categorization and
Prioritization
APPENDIX D. SAPO INTERFACES DIAGRAMS
130
Figure D.15: Part two of ITIL Problem Management Cross-Functional Flowchart Diagram for Problem Categorization and
Prioritization
D.2. PROBLEM MANAGEMENT
Figure D.16: ITIL Problem Management Cross-Functional Flowchart Diagram for Problem Investigation and Diagnosis
131
APPENDIX D. SAPO INTERFACES DIAGRAMS
132
Figure D.17: ITIL Problem Management Cross-Functional Flowchart Diagram for Workarounds and Known Errors
D.2. PROBLEM MANAGEMENT
Figure D.18: ITIL Problem Management Cross-Functional Flowchart Diagram for Problem Identification
133
APPENDIX D. SAPO INTERFACES DIAGRAMS
134
Figure D.19: ITIL Problem Management Cross-Functional Flowchart Diagram for Search Problem
D.2. PROBLEM MANAGEMENT
135
Figure D.20: ITIL Problem Management Cross-Functional Flowchart Diagram for Change Problem Status or Owner
APPENDIX D. SAPO INTERFACES DIAGRAMS
136
Figure D.21: ITIL Problem Management Cross-Functional Flowchart Diagram for Known Errors Management
BPMN Ontology
E
In this appendix we present graphical representation of the BPMN Ontol-
ogy developed by us in order to semantically represent business processes and
its elements.
137
APPENDIX E. BPMN ONTOLOGY
138
141
APPENDIX F. SCHEDULE
142
10. Thesis final report writing and revision - Write the final report,
this is a task to be performed throughout the semester;
143
APPENDIX F. SCHEDULE
144
The tasks regarding interface development took longer than was expected.