Architecture and High-level Design

A SSERT 4S OA
Advanced Security Service cERTificate for SOA
CP - STREP - Grant No. 257351
Architecture and High-level Design
(revised 30 June 2012)
Deliverable D.6.1
Legal Notice
All information included in this document is subject to change without notice.
The Members of the
Assert4Soa Consortium make no warranty of any kind with regard to this document, including, but not
limited to, the implied warranties of merchantability and fitness for a particular purpose. The Members of
the Assert4Soa Consortium shall not be held liable for errors contained herein or direct, indirect, special,
incidental or consequential damages in connection with the furnishing, performance, or use of this material.
Project Title
Grant Number
Project Type
Title of Deliverable
Subtitle of Deliverable
Deliverable No.
Dissemination Level
Contractual
Delivery
Date
Actual Delivery Date
Contributing WPs
Editor(s)
Author(s)
Reviewer(s)
Assert4Soa - Advanced Security Service
cERTificate for SOA
257351
CP - STREP
Architecture and High-level Design
(revised 30 June 2012)
D.6.1
Consortium
30 september 2011
30 september 2011
WP 6
Antonino Sabetta (SAP)
Michele
Bezzi
(SAP),
Stefania
D’Agostini (ENG), Samuel Kaluvuri (SAP),
Antonio
Mana
(UMA),
Claudia
Pandolfo (ENG) Gimena Pujol (UMA),
Antonino Sabetta (SAP)
Antonio Mana (UMA), Howard Foster (CITY)
Executive Summary
This deliverable presents the high-level architecture of Assert4Soa. It documents
the results of our initial work towards instantiating Assert4Soa in a concrete
system. The goal is, at the same time, to demonstrate the feasibility of the project
vision through a prototype implementation, and to provide a playground to compare
and experiment with different alternative approaches to the research problems tackled
in the other technical work packages.
The document puts a special emphasis on the guiding architectural principles, in
particular with regard to those impacting architectural qualities such as flexibility
and extensibility. Following established architecture documentation best practices,
the architecture description is presented as a set of focused views, each addressing
a specific set of concerns. More precisely, the overall structure of the framework
as well as its main behavioural characterisation is described in a functional view,
where the main elements of the system are identified and represented in terms
of their responsibilities, provided and required functionalities, and key interaction
mechanisms. The data model underpinning such functional model is presented in a
separate information view, which clarifies the semantics of the concepts used in the
rest of the document, and specifies the relationships among those concepts.
Finally, having identified security as the prominent non-functional cross-cutting
concern for the Assert4Soa framework, a chapter is dedicated to discussing the
threats that the system could face, and a set of countermeasures to prevent them.
The document concludes with a brief discussion of possible deployment options
and technology solutions that could be adopted to realise the architecture; finally,
we outline the next steps that will be taken in Work Package 6, both in the short
term and in the longer term.
An appendix provides an overview of the key deliverables of the other Work
Packages, clarifying the link between the abstract elements defined in this architectural
specification and the documents that detail the internal structure and behaviour of
those elements.
Assert4Soa
Contents
1 Introduction
1.1 Overview . . . . . . . . . . . . . . . . .
Purpose and scope . . . . . . . . . . . .
Intended audience . . . . . . . . . . . .
Architecture Documentation Guidelines
1.2 Architectural primitives and principles
Plug-in based Architecture . . . . . . .
.
.
.
.
.
.
5
5
5
6
7
9
11
. . .
. . .
. . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. . .
14
14
21
24
24
26
26
27
29
30
30
31
32
33
34
34
35
36
36
37
38
39
40
41
49
3 Information View
3.1 Assert4Soa Data Entities . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Information Flow Model . . . . . . . . . . . . . . . . . . . . . . . . .
Assert Management activity diagram . . . . . . . . . . . . . . . . .
52
52
58
58
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2 Functional View
2.1 From use cases to architectural mechanisms
2.2 Architecture overview . . . . . . . . . . . . .
2.3 Component catalog . . . . . . . . . . . . . .
Entry Point . . . . . . . . . . . . .
Query Handler . . . . . . . . . . . .
Discovery Manager . . . . . . . . . .
Registry Abstraction Layer . . . . . . .
Master Matchmaker . . . . . . . . . .
Composition Manager . . . . . . . . .
Assert-O Matchmaker . . . . . . . . .
Assert-E Matchmaker . . . . . . . . .
Assert-M Matchmaker . . . . . . . . .
Assert Verifier . . . . . . . . . . . .
Assert-O Verifier . . . . . . . . . . .
Assert-M Verifier . . . . . . . . . . .
Assert-E Verifier . . . . . . . . . . .
Preference Store . . . . . . . . . . .
Trust Manager . . . . . . . . . . . .
Consumer Agent . . . . . . . . . . .
System Administration . . . . . . . . .
System Administration Console . . . . .
Assert Issuing Tool . . . . . . . . . .
Ontology Manager . . . . . . . . . .
2.4 Assert4Soa plug-ins . . . . . . . . . . . . .
D.6.1 - Architecture and High-level Design
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . .
. . .
. . .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . .
. . . . .
. . . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 / 87
Assert4Soa
Service Discovery activity diagram .
Formulate Query activity diagram .
Compose Services activity diagram
Mach Services activity diagram . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Security Perspective
4.1 Threat analysis . . . . . . . . . . . . . . . . . . . . . .
4.2 Risk Management . . . . . . . . . . . . . . . . . . . . .
Assert Issuer . . . . . . . . . . . . . . . . . . . . . . .
Service Consumer . . . . . . . . . . . . . . . . . . . . .
Assert4Soa Management System . . . . . . . . . . .
4.3 Security features of the framework . . . . . . . . . . . .
4.4 Realising a secure architecture: overview of approaches,
and standards . . . . . . . . . . . . . . . . . . . . . . .
Access control and Client authentication . . . . . . . .
Certification infrastructures and standards . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
technologies,
. . . . . . . .
. . . . . . . .
. . . . . . . .
58
60
60
60
65
65
68
68
69
70
71
75
75
76
5 Conclusion
5.1 Component and communication technologies . . . . . . . . . . . . . .
5.2 Deployment configurations . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Conclusion and next steps . . . . . . . . . . . . . . . . . . . . . . . .
77
77
79
80
A References to the other work packages and deliverables
82
Bibliography
84
D.6.1 - Architecture and High-level Design
4 / 87
Assert4Soa
Chapter 1
Introduction
The key goal of Work Package 6 (WP6) is to design and realise an architecture to
support the Assert lifecycle, covering the issuing, management and consumption of
Asserts. This goal is pursued in practice by providing a concrete instantiation of
the Assert4Soa framework that can be used 1) to demonstrate and showcase the
project vision through a working prototype implementation; and 2) to compare
and experiment with different alternative approaches to the various underlying
theoretical and technical problems tackled in the other work packages.
Therefore, this deliverable documents the results of the initial efforts of turning
the concepts and ideas, investigated as part of the Assert4Soa research agenda,
into a concrete workbench for prototyping and experimentation.
This chapter gives an overview of the approach to architectural design and
documentation we adopted in order to achieve the intended goals of the WP.
In Section 1.1, we start by detailing the purposes and the scope of the document,
by identifying its intended audience, and by providing some background on the
architecture documentation principles adopted in this deliverable.
Section 1.2 introduces the main architectural abstractions and primitives that we
used in the high-level design of the Assert4Soa framework, and covers the approach
we followed to allow the framework to be extended with additional pluggable components.
1.1
Overview
Purpose and scope
This document aims to provide a high-level description of the Assert4Soa architecture,
presenting its main functional elements by identifying their responsibilities, interfaces
and key interactions.
The emphasis of this document is on defining how the overall architecture can
realise the Assert4Soa vision and in particular, how its realisation can support
Asserts lifecycle, including their issuing, binding to service instances, update, revocation,
negotiation, and protection [9].
This document includes a specification of the high-level interaction mechanisms
(protocols, APIs) through which the different subsystems that make up the overall
Assert4Soa infrastructure communicate among each other and with the outside
world, namely with the three types of users of the system and the backend registries,
as illustrated in Figure 1.1. The focus here is on external characterisation of
D.6.1 - Architecture and High-level Design
5 / 87
Assert4Soa
Consumer
Discovery
Service Registry
Assert Issuer
Assert
Management
Assert4Soa Framework
System
Administration
Assert Registry
System Admin
Figure 1.1: Context Diagram
components and subsystems; a detailed description of component internals is provided
independently, in the deliverables produced by work packages 1 to 5.
As part of the architecture specification, we define a reference model for the data
types used in the framework; such model is meant to capture the semantics of the
Assert4Soa-specific data items flowing across the system.
Finally, this documents contains an accurate architecture-level analysis of security
threats, identifying corresponding security mechanisms that are needed to build a
system that is itself secure from the outset.
Intended audience
This document is mainly targeted at the following classes of stakeholders: a) developers
of the components of the Assert4Soa prototype, b) anyone else interested in
instantiating the Assert4Soa architectural framework into a concrete implementation
(alternative to the prototype developed in the scope of the project), c) security
evaluators who are interested in aligning their processes and tools with Assert4Soa,
especially to express the results of their assessments using the Assert language,
d) providers of matchmaking algorithms and components who wish to provide a
pluggable matchmaking component for the Assert4Soa framework, e) providers of
software development tools who wish to Assert-enable their IDEs, f) providers of
online service directories who wish to enhance them with Assert functionalities.
Not all the stakeholders are concerned by all views, and the interests of each
class of stakeholders lie in different aspects of the architecture. Based on practical
considerations, but also given the available timeframe and the organisation of the
project, we took the decision of prioritising some facets of the architecture documentation
(and therefore of some class of stakeholders), giving precedence to the views directly
affecting the realisation of the framework. We think it is highly desirable that the
Assert4Soa architecture document could address its broader audience. At the
same we believe that this can happen in a meaningful way only after a validation
D.6.1 - Architecture and High-level Design
6 / 87
Assert4Soa
of the architectural choices described here has been performed, based on an initial
implementation of a prototype.
Architecture Documentation Guidelines
The definition of an architecture for the Assert4Soa framework has followed established
practices, as documented, e.g.,in [27, 17, 19]. Architecture definition is known to be
an intrinsically fluid process: it starts early in the project lifecycle and must cope
with the fact that the scope and the detailed requirements of the system are not yet
clear or stable.
The uncertainty naturally associated with any such process is increased in a
collaborative research project such as Assert4Soa. While the general scope and
research orientation of the project are well defined, the theoretical and technical
directions that will be taken in the individual technical work packages are only
tentatively stated at this time. Indeed, it is part of the purposes of the project
itself to investigate and explore solutions that are not known, or are only partially
defined, a-priori.
Furthermore, actors from different organizations are involved in the design (and
later in the development), which makes full methodological and technological alignment
hard to guarantee. For these reasons, it is of paramount importance, in an architecture
documentation like this, to keep the focus on the high-level architectural principles
and overall structure, delaying to a later stage any attempt of providing finer-grained
specification and detailed technical choices. In particular, this document takes a
totally technology-independent approach, in order not to constrain the detailed
design before it is necessary.
The technological foundations of the prototype will be worked out as part of the
development to be done during Year 21 , and at that point the high-level decisions
documented here will be easier to validate, and possibly to refine and correct,
through the initial development activities of a prototype implementation of the
framework. In parallel, research in the other technical work packages will have
provided further indications on the optimal choices to take for the following developments.
All along the development phases, this document will be continuously used as
a reference, ensuring that the architecture style described later in this chapter is
strictly enforced in order to maintain good architectural qualities, and in particular
to enforce loose coupling to support extensibility and evolution. At the same time,
this is meant as a “living document”, that is subject to changes and updates to
reflect further insights gained all along the development phases. Such refinements
and amendments could be released as working documents accompanying the next
prototype deliverables.
We aimed at effectively communicating architectural abstractions by using standard
design notations and proper documentation structuring. Except for the “context
diagram” at page 6, for which an informal box-and-lines notation is used, throughout
the rest of the document, we adopt UML 2 [24] as the modelling formalism to
provide an intuitive, yet sufficiently precise, visual depiction of the structures and
mechanisms that are part of the architecture specification. In particular, UML
component diagrams are used to illustrate the general structure of the architecture,
providing both a “big picture” of the overall framework and a few zoom-in views that
allow to describe subsystems in separation, thus avoiding cluttering the larger view.
1 From
October 2011 to September 2012.
D.6.1 - Architecture and High-level Design
7 / 87
Assert4Soa
The behavioural aspect of the architecture is described by sequence diagrams, which
document the interaction mechanisms among components for a representative set of
use cases. A class diagram is used to illustrate the reference data model. Finally, a
set of activity diagrams complements the behavioural and the data model, linking
the two and emphasising the data flow.
Views, viewpoints, perspectives. Capturing all functionalities and the qualities of
a system in a single model that addresses the concerns of all stakeholders is known
to be extremely hard, if not impossible, for any non-trivial system.
An established solution to this problem, is to organise the architecture description
document as a set of coordinated architectural views, each representing one or more
structural or behavioural aspects of the architecture and addressing the concerns of
one or more stakeholders. Each view provides a description of the relevant aspects,
which are defined in a corresponding viewpoint.
In addition to the facets addressed by viewpoints, there are other concerns2 ,
of which performance and security are two typical examples, that cross-cut the
viewpoints and affect aspects that are already addressed by dedicated viewpoints.
For this reason, the notion of architectural perspective is used, as a way to project a
cross-cutting concern over a set of views. This approach to architecture documentation
based on the concepts of views, viewpoints, and perspectives is visually summarised
in the model in Figure 1.2, which depicts the relationships among the different
concepts used earlier in this section.
In the literature there exist several proposals of sets of viewpoints that an architecture
description should be composed of. This multi-view approach was first advocated
by David Parnas as early as in 1974 [25]. The literature of the last decades is rich
in proposals of methodologies to structure architectural documentation as a set of
architectural views. Among the most influential works, it is worth mentioning Perry
and Wolf’s seminal paper [26], Kruchten’s ”4+1 views”, which became part of the
Rational Unified Process (RUP) [22], and Soni et al. [30] who proposed a model
similar to Kruchten’s, organised in four views (also known as the ”Siemens Four
View model”).
The work by Rozanski et al. [27] advocates using a set of six viewpoints (functional,
information, concurrency, development, deployment, and operational) as an extension
of Kruchten’s model. Another book on the subject, by Clements et al. [17] proposes
another method, called “views and beyond”, which incorporates the use of architectural
views but emphasising the notion of documentation style. In this deliverable we
follow the guidelines from the latter two books [17, 27] as well as from IEEE Std1471-2000 [19], taking a pragmatic approach which strives for clarity and conciseness,
selecting only a small set of viewpoints and perspectives.
Document structure. Following the approach described earlier, the viewpoints adopted
in this document are the following two: a functional viewpoint and an information
viewpoint, presented in Chapters 2 and 3 respectively. The former describes the
overall structure and behaviour of the architecture, explaining which are the key
components of the system, and what key interaction they engage in. The latter
provides a precise description of the conceptual model and data flow that is subsumed
by the interactions among components.
2 Sometimes
referred to as non-functional, although the use of this term is somewhat controversial
D.6.1 - Architecture and High-level Design
8 / 87
Assert4Soa
Figure 1.2: Architectural views, viewpoints, and perspectives (from [27])
Orthogonally to these viewpoints, Chapter 4 examines the security perspective,
analysing the key threats that the framework should cope with, and describing the
security mechanisms that are built into the framework to this end.
Finally, Chapter 5 concludes the document by discussing the open points and the
directions that we intend to take in terms of technical solutions to be adopted for
the prototype development that will start at Year 2 of the project.
1.2
Architectural primitives and principles
Throughout this document we rely on a few established architectural primitives that
are commonly used to describe architectures in the so called “component&connector
(C&C) style” [17]. In a C&C architecture, components are the key architectural
element: they encapsulate computation and data storage and they are associated
with a specific function in the overall architecture. Components communicate with
the surrounding environment (external world or other architectural elements) through
their interfaces3 . Components can represent a structured subsystem and therefore
may contain a hierarchical sub-architecture. Connectors, on the other hand, represent
the channel over which inter-component communications take place. There exist
many types of connectors, each describing a particular interaction style (e.g., clientserver, publish-subscribe, filters, etc.). As part of this model, connectors can be used
as an abstraction capturing the routing policies that determine how components can
send messages to each other. In sophisticated types of connectors, such as today’s
Enterprise Service Buses [15], this capability can be used to realize advanced features,
3 More precisely, components interact through ports, offering or using the operations that are part of
interfaces associated to the ports. In this deliverable, we use a simplified model, omitting ports and
considering only interfaces.
D.6.1 - Architecture and High-level Design
9 / 87
Assert4Soa
such as dynamic reconfiguration, content-based message routing, monitoring, logging,
and access control.
The way in which components and connectors are assembled may be guided
by an architectural style, which is reflected in particular in the overall architecture
topology, and in the connector configuration. An architectural style imposes certain
restrictions on the allowed configurations of the system. By adopting a style, it
is possible to guarantee a-priori that certain desired architectural qualities are
preserved in the face of changes, as long as the style is preserved. This makes
is easier to avoid the phenomenon known as architectural drift, which leads to the
infringement of architectural principles and degradation of overall quality.
The style adopted in the Assert4Soa architecture is inspired to message-oriented
layered styles, along the lines of the one originally proposed in [34], called C2.
Essentially, in our architecture components are arranged in layers. The layering
is rigid, meaning that components of one layer are only allowed to communicate
to components of an adjacent layer4 . All interactions are mediated by connectors.
Each component is only attached to a single “up” connector (to which requests are
addressed), and a single “down” connector to which notifications are sent, which
simplifies enormously the logic of components and decouples them completely from
each other.
Request messages flow from the bottom to the top of the architecture (assuming
the layers are disposed horizontally), while notification messages flow in the opposite
direction, from the top to the bottom5 . All requests are asynchronous and they
are never explicitly addressed to a particular component, but it is the role of the
connectors, using their routing model, to determine what route a particular message
should take. As an example, a simplified layered architecture of Assert4Soa is
depicted in Figure 1.3. In that figure, UML components are used to denote both
components and connectors; the distinction between the two concepts is done using
two stereotypes6 . A description of the Assert4Soa functional architecture will
follow in Chapter 2.
Such a clear separation of computation from communication makes it possible to
achieve a high degree of flexibility exploiting a feature-rich communication infrastructure
to which several supporting functions are delegated. These include security and
management functions, such as fine-grained access control, logging and auditing,
monitoring, architecture adaptation (through run-time connector configuration) and
performance management.
Differently from the original proposal of [34], in our architecture, we also allow for
different types of requests, covering send-and-forget invocation (upstream) messages
as well as request-response interactions. The latter are still realized using an underlying
asynchronous messaging infrastructure, but closely mimicking the behaviour of synchronous
method invocations.
Adopting this style ensures high scalability and better support for evolution,
extremely low coupling among components, whose interactions rely on a common
data model (see Chapter 3) but not on direct, explicitly addressed communication.
4 By
“adjacent” we mean here “that can be reached using only connectors”. In Figure 1.3, the
Entry
Point and the Registry Abstraction Layer are adjacent.
5 This bottom-up orientation may be counter-intuitive, but it is kept here to be aligned with the works
on C2 where it is consistently used.
6 This is a well-known limitation of UML, which does not fully support rich connectors. The use of a
UML extension (profile) is a commonly adopted solution to this shortcoming.
D.6.1 - Architecture and High-level Design
10 / 87
Assert4Soa
Figure 1.3: Layered “component&connector” diagram of the Assert4Soa
architecture (some components omitted)
Plug-in based Architecture
The principles of loose coupling, extensibility, and flexibility are pursued in Assert4Soa
using the concept of plug-ins. Section 2.4 identifies the components that will be
integrated into the system as plug-in units, while this section describes the main
concepts underlying a plug-in based application and highlights the advantages of
this approach.
A plug-in based platform enables the extension of a core application with new
features implemented as components that are plugged into the core at start-up time
or even at run-time. Plug-in architectures are an attractive solution for developers
since they permit them to create applications that are modular, customizable and
easily extensible. In particular, a plug-in based platform provides the following main
benefits:
• Enables to add new features in the application quickly (also by third parties);
• Provides reusable building blocks;
• Permits to isolate and solve problem easily;
• Permits to create custom versions of an application without source code modifications.
D.6.1 - Architecture and High-level Design
11 / 87
Assert4Soa
Figure 1.4: The plug-in model
• Allows end-users to disable unwanted features reducing the application’s memory
consumption and improving performance.
As described in [38], an essential principle of a plug-in architecture is that the
system extensions are made in a controlled and determinate manner. In particular,
the plug-in model introduces the following notions:
• Extension Slot: specifies how an extension should occur;
• Extension: specifies how a plug-in makes its contribution to a slot.
The slots declare the types of information a plug-in expects and the extensions
fill this information slots accordingly. Therefore, the plug-in model require two basic
entities: the plug-in host application defining the slots and the plug-in contributor
(i.e. the plug-in itself).
Generally speaking, the host can be an application, an operating system or even
another plug-in structured in such a way that certain functionalities can be provided
using external modules. The host application operates independently of the plug-ins,
making it possible for end-users to add and update plug-ins dynamically without
the need of changing the host application. The collaboration between the host
and its contributor is defined in the form of required and provided interfaces. The
host defines the required interface and the extension contributor has to provide an
implementation for it.
Therefore, a plug-in is a deployable software unit, mainly self-contained and with
limited dependencies on other components, which has explicit specifications of its
slots and extensions as depicted in Figure 1.4.
Several existing systems adopt the plug-in concepts in order to provide modularity
and extensibility. The Eclipse Platform [16] is the most prominent representative of
the existing plug-in based platforms. It is built upon a small core and all further
functionalities are provided by a set of plug-ins. In particular, an Eclipse plug-in is
written in Java and is delivered as a JAR library. Manifest files, in XML format,
declare the inter-dependencies among the plug-ins (i.e. the connections between the
extension slots and the extensions).
The NetBeans [1] development environment, the main competitor of the Eclipse
Platform, also uses plug-ins. In NetBeans, each feature can be provided by a distinct
D.6.1 - Architecture and High-level Design
12 / 87
Assert4Soa
NetBeans module, which is comparable to a plug-in. A module is a group of Java
classes (i.e. JAR library) contained in a plug-in directory within the NetBeans
environment.
In Assert4Soa, our attention is focused on Eclipse and NetBeans platforms since
their current releases rely on the OSGi Service Platform [3]. The OSGi technology
is a Java-based framework that provides a service-oriented architecture allowing
applications to be constructed from small, reusable and collaborative components
that can be dynamically discovered and deployed. As mentioned in Chapter 5, the
OSGi technology is a possible solution to be adopted in order to apply the plug-in
concepts to the Assert4Soa framework.
D.6.1 - Architecture and High-level Design
13 / 87
Assert4Soa
Chapter 2
Functional View
This chapter presents the functional view of the Assert4Soa architecture. The
functional view has been elaborated starting from the reference use cases, which are
documented in detail in Deliverable 7.1 [8]. Use cases related to Service Discovery
are treated here as one single use case. The detailed breakdown of use cases done
in D.7.1 is mostly relevant for the detailed work done on the discovery engine in the
context of WP2; for the purposes of this document, we considered sufficient to treat
them in a unified manner.
For each of these use cases, we describe how they are realized in terms of
interactions among components (Section 2.1. The responsibilities and operations of
components are systematically documented in the component catalog (Section 2.3).
The semantics of the data types used for specifying operation parameters are defined
in the Information View, in the next chapter.
2.1
From use cases to architectural mechanisms
In this document, we concentrate on the following use cases, documenting how the
user-system interactions that they represent translate into operations internally to
the system:
• Authentication
• Assert Management
• System Administration
• Service Discovery
The main flows derived from these use cases are detailed in the following and are
documented using UML sequence diagrams. Complex interactions are broken down
in interaction fragments for the sake of readability.
In particular, a separate sequence diagram is provided to describe the following
interactions:
• Consumer Query Formulation
• Service Composition
• Matchmaking
D.6.1 - Architecture and High-level Design
14 / 87
Assert4Soa
• Service Discovery
The sequence diagrams of this section are designed with the following simplifying
assumptions: messages are specified at an abstract level (as in the component
catalog), and they are not to be interpreted as implementation-level specifications.
The goal of this depiction is to provide an implementation-neutral, concise, and
informative description of the flow of control and of information among the components.
Based on the same rationale, all messages are shown as synchronous as this simplifies
the description of the scenarios. Technical considerations related to the concurrency
model, component technology, and deployment platform may suggest that some
interactions are better realised in a non-blocking fashion. While this aspect is
certainly important, the information available at this stage of the project is still
too limited to make informed decisions. As of this writing, initial discussions on
this issue are ongoing, and some tentative directions are sketched in Chapter 5.
However, the above mentioned issues (concurrency model, component technology,
deployment configurations and platform) will be addressed in depth only at a later
stage, when we start validating the architecture proposed in this document. For the
same reason, all messages exchanged between any two components are also modelled
independently of the concrete messaging mechanism that will be adopted for actually
sending and dispatching invocations, responses, and notifications. This is possible
because the architecture adopts from the outset a strict separation of concerns,
whereby all inter-components communications (and therefore, the communication
style) are delegated to connectors, as explained in Section 1.2.
Authentication
A Service Based Application invokes the Consumer Agent by using the login method
in order to initiate the authentication process and passes its user credentials to the
method. The Consumer Agent invokes the Entry Point of the Assert4Soa framework
by using the authenticateUser method and passes the user credentials. The Entry
Point performs the authentication and returns a message that contains the result
of the authentication process which is then returned back to the Service Based
Application through the Consumer Agent. This interaction is shown in Figure 2.1.
In addition to the above mentioned scenario, authentication is used in the system
administration and assert management use cases. The sequence diagrams for these
two use interactions are shown in Figure 2.2 and Figure 2.3.
Assert Management An Assert Issuer can issue, revoke, update Asserts for
services. The sequence diagram for the interactions of the Assert Issuer with the
Assert Registry through the Assert4Soa Framework is shown in Figure 2.2.
The Assert Issuer uses the login method of the Assert Issuing Tool to authenticate
with the Assert4Soa framework. The Assert Issuing Tool uses the authenticateUser
method of the Entry Point to perform the authentication process. If the authentication
is successful, the Assert Issuer uses the Assert Issuing Tool and performs an action
such as issuing, revoking or updating an Assert. The Assert Issuing Tool sends a
AssertManagementOperation message to the Entry Point of the Assert4Soa Framework
by using the manageAssert method. The Entry Point identifies the Assert Issuer
and forwards this message to the Registry Abstraction Layer using the manageAssert
method. The Registry Abstraction Layer processes this information and updates the
Assert Registry accordingly and sends a message informing the successful completion
D.6.1 - Architecture and High-level Design
15 / 87
Assert4Soa
Figure 2.1: Authentication Sequence Diagram
Figure 2.2: Assert Management Sequence Diagram
D.6.1 - Architecture and High-level Design
16 / 87
Assert4Soa
Figure 2.3: System Administration Sequence Diagram
of the operation. If there is any error at any stage in this process, the responsible
component (Assert Management Tool, Entry Point, Registry Abstraction Layer) informs
the Assert Issuer of the error.
System Administration
The Assert4Soa Framework is maintained by the System Administrator. The
interaction of the System Administrator with the Assert4Soa Framework is shown
in the Figure 2.3.
The System Administrator uses the System Administration Console to authenticate
himself to the Assert4Soa Framework by using the login method of the Entry Point.
If the authentication is successful, the System Administrator performs the System
administration tasks using the manageSystem method of the Entry Point. The Entry
Point invokes the manageSystem method of the System Administration component to
perform those administration tasks and the result of the operation is reported back
to the System Administrator.
Service Discovery The service discovery interaction presented here encompasses
the different use cases related to service discovery in [8] (such as proactive, reactive
service discovery).
The Service Based Application (SBA), uses the Consumer Agent to formulate the
query for service discovery. The Consumer Agent then sends the Consu2merQuery
to the Entry Point of the Assert4Soa Framework by invoking the method sendQuery.
The Entry Point forwards the ConsumerQuery to the Query Handler using submitQuery
method. The Query Handler processes the ConsumerQuery and sends a ServiceDiscoveryQuery
to the Discovery Manager through the findService method. The Discovery Manager
fetches the services that match the functional requirements and the Asserts associated
D.6.1 - Architecture and High-level Design
17 / 87
Assert4Soa
to them by invoking the retrieveServices method of the Registry Abstraction Layer.
The Discovery Manager performs some additional functional matchmaking (behavioural,
structural and constraint matchmaking) on the services. If no single services match
the functional requirements of the consumer, the discovery manager initiates the
composition process, and receives a list of service compositions. The Discovery
Manager starts the security matchmaking process by invoking the matchServices
method of the Master Matchmaker and passing the list of candidate services along
with the requirements and the strategy that has to be followed in performing the
matchmaking. Finally, the discovery manager invokes the Assert Verifier component
to verify the validity of the Asserts using the method verifyAssert. The ranked list
of services that have valid Asserts and match the functional, security requirements
returned back to the Consumer Agent which displays this information to the consumer.
For the sake of readability, in the service discovery sequence diagram (Figure 2.4)
some interactions have been abstracted away as referenced interactions. These
referenced interactions are presented below.
Consumer Query Formulation As shown in the sequence diagram in Figure 2.5,
a Service Based Application (SBA) can use the Preference Store to set the security
preferences using the setPreferences method. The SBA also uses the Trust Manager
component to set the trust preferences using the setTrustRelations method. The
SBA uses the Consumer Agent to authenticate with the Assert4Soa Framework
through the login method. And the Consumer Agent authenticates the user by
invoking the authenticateUser method of the Entry Point. When the SBA needs a
service, it uses the lookup method of the Consumer Agent and passes the requirements
(functional, security and trust related). The Consumer Agent fetches the preferences
of the SBA from the Preference Store by using the method getPreferences and also
the trust preferences by using the getTrustRelations method of the Trust Manager
component. It then composes a query and sends the query to the Entry Point using
the sendQuery method.
Service Composition When the Discover Manager does not find any atomic service
that matches the functional requirements or when the services that match the
functional requirements are less than the specified number, it invokes the service
composition process by calling the Composition Manager using the findComposition
method and passing the requirements as input. The Composition Manager then
invokes the fetchPatterns method to find the composition patterns that match the
functional requirements. The Composition Manager fills the patterns with actual
services by using the Discovery Manager. Finally, the discovery manager creates a
virtual assert for the composition and returns it to the Discovery Manager, which
performs the matchmaking process on these Virtual Asserts. This process is shown
in the Figure 2.6.
Matchmaking The Discovery Manager when it has a list of CandidateService[] or
CompositeService that match the functional requirements of the consumer, it has
to rank these services based on their security properties and in order to do this
it starts the Matchmaking process. The matchmaking process is initiated by the
Discovery Manager which invokes the Master Matchmaker using the matchServices
method and passing the list of CandidateService and the requirements along with
the Strategy as input. The Master Matchmaker analyses the strategy by using a
method analyzeStrategy and passes the strategy as an input. This method returns a
list of slave matchmakers that will be invoked and the order in which they must be
D.6.1 - Architecture and High-level Design
18 / 87
Assert4Soa
Figure 2.4: Service Discovery Sequence Diagram
D.6.1 - Architecture and High-level Design
19 / 87
Assert4Soa
Figure 2.5: Query Composition Sequence Diagram
Figure 2.6: Service Composition Sequence Diagram
D.6.1 - Architecture and High-level Design
20 / 87
Assert4Soa
Figure 2.7: Matchmaking Sequence Diagram
invoked and the information related on how the results from each matchmaker has
to be combined to find the overall rank of a service. Then the Master Matchmaker
invokes the corresponding slave matchmakers by using the rankServices method
and passing the candidate services that must be ranked by the respective slave
matchmaker. Finally, the Master Matchmaker invokes the Assert Verifier component
to verify the Asserts of each service. This process is shown in the Figure 2.7.
2.2
Architecture overview
There is an inherent structure emerging from the interactions described in the
previous section. Describing this structure by modular decomposition is the first
step towards defining the precise responsibilities and functionalities of the individual
architecture elements (which is done in the next section). A the highest level of
abstraction, the Assert4Soa architecture can be thought of as a composition of a
small set of modules, each related to a specific core functional area. These modules
are depicted in Figure 2.2 and are briefly described below.
Assert management Components related to the issuing, update, revocation, and
registration of Asserts.
Query Handling Components dealing with the parsing of consumer queries and
with the handling of response channels through which query results are made
available to consumers.
D.6.1 - Architecture and High-level Design
21 / 87
Assert4Soa
Service Composition Components concerned with the synthesis of service composition
and with the storage and handling of service composition patterns.
Matchmaking Components related to the matchmaking process.
Access to backend registries Components that realise an abstraction layer on
top of existing back-end service registries.
Assert verification Components enabling the verification of the validity of an
Assert.
Ontology-based reasoning Components providing access to ontologies and reasoners.
Framework management Components offering management functionalities to system
administrators, including system monitoring and configuration, performance
monitoring.
Framework protection Components dedicated to the security of the framework,
including user management, access control, and secure logging.
Main architectural functional areas
It is important to remark that the functions related to the latter two functional
modules are also supported by features provided by the connectors.
Assert
management
Query
Handling
Service
composition
Matchmaking
Access to Backend
registries
Assert
verification
Ontology-based
reasoning
Framework
Management
Framework
Protection
Figure 2.8: High-level functional decomposition of the Assert4Soa framework
11
D.6.1 - Architecture and High-level Design
Assert4Soa - Bruxelles 17 May 2011 - M6 Review
22 / 87
Assert4Soa
Figure 2.9: Architecture overview
D.6.1 - Architecture and High-level Design
23 / 87
Assert4Soa
2.3
Component catalog
This section presents a systematic description of each of the components that make
up the Assert4Soa architecture, illustrated in Figure 2.9. For each component, in
addition to a short description of its purpose, we document the expected inputs and
the outputs provided by the component, as well as, where appropriate, assumptions,
and dependencies or interactions with other components.
Describing the internal structure and behaviour of the individual components
and subsystems is beyond the scope of an architectural description, and we do not
address it in this document. The reader is refererred to the deliverables of the other
technical work packages for those descriptions. To ehnance the readability of this
document, we include a brief appendix mapping the main architectural elements
defined here onto the corresponding deliverables1 .
For the sake of completeness, all components are described here; however, those
that are specifically related to the security of the framework are discussed in more
detail in the Security Perspective (Chapter 4).
Entry Point
Any interaction with the Assert4Soa framework will be through the Entry Point.
Properties
Dependencies
Query Handler, System Administration, Registry
Abstraction
Layer,
Consumer
Agent,System
Administration Console, Assert Issuing Tool
Operations
sendQuery
It receives the query from the consumer agent and dispatches it to the Query
Handler.
Input Parameters
Name
Type
Query
ConsumerQuery
Output Parameters
Name
Type
RankedCandidateService[]
ServiceList
1 At
Description
Containing functional, security
requirements that must hold
in the services and the query
subscription information
Description
Ranked list of services and their
Asserts based on their functional
and security properties
the time of this writing, some of these deliverables have not been released to the public yet.
D.6.1 - Architecture and High-level Design
24 / 87
Assert4Soa
authenticateUser
It receives the user credentials from the Consumer Agent, Assert Issuing Tool and
System Administration Console and performs the authentication.
Input Parameters
Name
Type
UC
UserCredentials
Output Parameters
Name
Type
OpResult
OperationResult
Description
Contains the user credentials,
that can be the username token,
password digest etc
Description
Contains the
operation
result
of
the
manageSystem
Allows an authenticated system administrator to perform the administration
tasks of the framework.
Input Parameters
Name
Type
MO
ManagementOperation
Output Parameters
Name
Type
OpResult
OperationResult
Description
Operation that has to be
performed by the administrator
of the framework
Description
Contains the
Operation
status
of
the
manageAssert
Allows an authenticated Assert Issuer to perform the administration tasks on the
certificates, such as revoking, updating or issuing new certificates.
Input Parameters
Name
Type
AM
AssertManagementOperation
Output Parameters
Name
Type
OpResult
OperationResult
D.6.1 - Architecture and High-level Design
Description
Contains
the
Assert,
AssertIdentifier,
Operation
performed on the Assert such as
issue, revoke or update
Description
Contains the
Operation
status
of
the
25 / 87
Assert4Soa
Query Handler
The Query Handler is responsible to receive the complex query through the Entry
Point. It parses and checks the validity of the received query and passes the query to
the service Discovery Manager to execute the query. It also manages the subscription
of queries. It maintains a buffer of the best N ranked services returned by the
Discovery Manager and returns the first service in the buffer to the client. If the
number of services in the buffer falls below a specific threshold, it re-executes the
query.
Properties
Dependencies
Discovery Manager, Entry Point
Operations
submitQuery
Receives a query and checks its validity. Manages the query subscriptions.
Input Parameters
Name
Type
Query
ConsumerQuery
Output Parameters
Name
Type
RankedServiceCandidateService[]
List
Description
Containing functional, security
requirements
as
well
as
subscription period, mode of
subscription/consumption (push,
pull)
Description
Ranked list of services and their
Asserts based on their functional
and security properties
Discovery Manager
The Discovery Manager orchestrates the functionality offered by the other components
involved in the service discovery process. It receives complex queries and passes to
the Master Matchmaker to execute the queries. It also contacts the Registry Abstraction
Layer to retrieve the available services to be considered for match making.If the
Registry Abstraction Layer does not return any candidate service for matchmaking, the
Discovery Manager builds some new queries through patterns of service composition
(if composition is allowed by the query) and sends the new query to the Composition
Manger to find composite service.
D.6.1 - Architecture and High-level Design
26 / 87
Assert4Soa
Properties
Dependencies
Registry Abstraction Layer, Master Matchmaker,
Composition Manager,Ontology Manager,Assert Verifier,
Query Handler
Operations
findService
Executes a complex query and returns a list of candidate services returned by
the matchmaking process.
Input Parameters
Name
Type
SDQuery
ServiceDiscoveryQuery
Output Parameters
Name
Type
RankedServiceList CandidateService[]
Description
Containing functional, security
requirements
Description
Ranked list of services and their
Asserts based on their functional
and security properties
Registry Abstraction Layer
This component provides an interface that abstracts the service registries (such
as UDDI, ebXML) and Assert registries from the other components in the framework
and provides a uniform interface for them to use to find services or asserts.
Properties
Dependencies
Discovery Manager, Master Matchmaker,
Management, External Registries
Pre-conditions
An Assert Registry and a Service Registry adaptor
must be available for the registry abstraction layer
D.6.1 - Architecture and High-level Design
Assert
27 / 87
Assert4Soa
Operations
retrieveServices
Retrieve services based on the functional requirements in the query
Input Parameters
Name
Type
FnReq
FunctionalRequirement[]
Output Parameters
Name
Type
ServiceList
CandidateService[]
Description
Functional Requirements of the
consumer
Description
List of Services along with their
Asserts that match the functional
requirements
findService
Retrieve services based on the functional requirements in the query
Input Parameters
Name
Type
SRQuery
ServiceRegistryQuery
Output Parameters
Name
Type
ServiceList
Service[]
Description
The service registry query
containing
the
functional
requirements to fetch services
from a particular registry
Description
List of services that match
fetchAssert
Retrieve Asserts based on the service identifier (WSDL,Service Endpoint etc).
For a service having more than one assert, this function retrieves all the Assert.
Input Parameters
Name
Type
WebServiceURI
Identifier
Output Parameters
Name
Type
AssertList
Assert[]
D.6.1 - Architecture and High-level Design
Description
Web service unique identifier
Description
List of all the Asserts of a service
28 / 87
Assert4Soa
manageAssert
Assert Issuers use the Assert4Soa Framework to manage - register, revoke,
update - the Asserts that they issue for services.
Input Parameters
Name
Type
AM
AssertManagement
Output Parameters
Name
Type
OpResult
OperationResult
Description
Contains the Assert Identifier,
Assert, Operation performed on
the assert (update, revoke, issue)
along with the Assert issuer
identifier
Description
Contains the
operation
result
of
the
Master Matchmaker
The Master Matchmaker is responsible to evaluate the different criteria of a query
(e.g. structural, behavioural, contextual, QoS and security related criteria) against
a list of services and to compute the distance between a query and candidate.
Properties
Dependencies
Discovery Manager, Slave Matchmakers
Operations
matchServices
Executes a complex query by delegating appropriate slave match makers such as
Behavioural Matchmaker, Structural Matchmaker, Constraint Matchmaker, AssertM Matchmaker, Assert-E Matchmaker, Assert-O Matchmaker etc and orders the list of
D.6.1 - Architecture and High-level Design
29 / 87
Assert4Soa
the candidate services returned by different match makers.
Input Parameters
Name
Type
ServiceList
CandidateService[]
Requirements
Requirement[]
Strategy
Strategy
Output Parameters
Name
Type
RankedServiceList CandidateService[]
Description
List of services along with their
asserts that have to be ranked
List of Requirements of the
consumer
Strategy that has to be followed
by the master matchmaker
Description
Ranked List of services that
match the functional and security
requirements
Composition Manager
The Composition Manager is responsible to receive a query along with composition
patterns and build up compositions of services by applying the composition patterns
that satisfy the discovery query.
Properties
Dependencies
Discovery Manager
Operations
findComposition
Receives a query and compositions patterns and builds up service compositions
according to the composition patterns that satisfies the query.
Input Parameters
Name
Type
Requirements
Requirement[]
Output Parameters
Name
Type
Compositions
CompositeService[]
Description
Containing requirements of the
consumer
Description
List of Composite Services
that match the functional
requirements
Assert-O Matchmaker
The Assert-O Matchmaker is a slave matchmaker component of the Matchmaker
Subsystem. The scope of this component is to filter and rank the list of candidate
D.6.1 - Architecture and High-level Design
30 / 87
Assert4Soa
services, retrieved during the discovery process, according to their degree of fit
with the security property requested by the consumer agent. In particular, this
component uses the Assert-O certificates to discard from the list of candidate services
those that do not match the security assurance requirement and to sorts the Candidate
Services that match the security requirements according to their degree of fit.
Properties
Dependencies
Master Matchmaker, Ontology Manager
Operations
rankServices
Using Assert-O certificates, ranks the candidate services according to the degree
of fit to the required security properties.
Input Parameters
Name
Type
serviceList
CandidateService[]
SecuritySecurityRequirement[]
Requirements
Output Parameters
Name
Type
serviceList
CandidateService[]
Description
Candidate Services
Security Requirements
Description
Ranked List of services
Assert-E Matchmaker
The Assert-E Matchmaker is a slave matchmaker component of the Matchmaker
Subsystem. The scope of this component is to filter and rank the list of candidate
services, retrieved during the discovery process, according to their degree of fit
with the security requirement requested by the consumer agent. In particular, this
component uses the Assert-E certificates and discards from the list of candidate
services those that do not match the security assurance requirement and to sorts the
Candidate Services that match the security requirements according to their degree
of fit.
Properties
Dependencies
Pre-Conditions
Post-Conditions
Master Matchmaker, Ontology Manager
All service URIs are accessible during the Assert-E
matchmaking process.
The query only contains restrictions on Assert-E
certificates
A subset of the URIs given as input is returned as
output
D.6.1 - Architecture and High-level Design
31 / 87
Assert4Soa
Operations
rankServices
It is the single API exposed to the Master MM. It implements the Assert-E
matchmaker, that is, it receives a set of URIs and a query and returns a subset of
URIs in a partial order.
Input Parameters
Name
Type
serviceList
CandidateService[]
SecuritySecurityRequirement[]
Requirements
Output Parameters
Name
Type
serviceList
CandidateService[]
Description
Candidate Services
Security Requirements
Description
Ranked List of services
Assert-M Matchmaker
The Assert-M Matchmaker is a slave matchmaker component of the Matchmaker
Subsystem. The scope of this component is to filter and rank the list of candidate
services, retrieved during the discovery process, according to their degree of fit
with the security requirement requested by the consumer agent. In particular, this
component uses the Assert-M certificates and discards from the list of candidate
services those that do not match the security assurance requirement and to sorts the
Candidate Services that match the security requirements according to their degree
of fit.
Properties
Dependencies
Pre-Conditions
Master Matchmaker, Ontology Manager
ComparisonRuleSet provided - either as a JAR with
Comparators or as a small Database (e.g sqlite)
D.6.1 - Architecture and High-level Design
32 / 87
Assert4Soa
Operations
rankServices
Perform Matchmaking of required vs provided properties and return list.
Input Parameters
Name
Type
serviceList
CandidateService[]
SecuritySecurityRequirement[]
Requirements
Output Parameters
Name
Type
serviceList
CandidateService[]
Description
Candidate Services
Security Requirements
Description
Ranked List of services
Assert Verifier
The Assert Verifier is responsible to check the validity of the Asserts. In particular,
it checks that the data, common to the different types of Assert (e.g. expiration
time, digital signature etc...), are valid. This main functionality provided by the
Assert Verifier can be extended in order to verify also the information specific of the
Assert-E, Assert-M and Assert-O certificates.
Properties
Dependencies
Discovery Manager, Ontology Manager, Slave Verifiers,
Trust Manager
verifyAssert
Verify the validity of Assert
Input Parameters
Name
Type
AssertCertificate Assert
Output Parameters
Name
Type
OpResult
OperationResult
D.6.1 - Architecture and High-level Design
Description
Assert that has to be validated
Description
Result
of
operation
the
verification
33 / 87
Assert4Soa
isTrustedAssert
Check the validity of the Assert based on predefined or client-specified Trust
Preferences (Trust Roots)
Input Parameters
Name
Type
AssertCertificate Assert
TrustRelations
TrustPreferences
Output Parameters
Name
Type
OpResult
OperationResult
Description
Assert that has to be validated
The predefined or client specified
trust preferences
Description
Result
of
operation
the
verification
Assert-O Verifier
The Assert-O Verifier component is responsible to check the consistency of the
model of the services and the security property asserted in the Assert-O certificate.
Properties
Dependencies
Ontology Manager, Assert Verifier
Operations
verifyAssert
Verifies that the model of the service and the security property asserted in the
Assert-O certificates are consistent.
Input Parameters
Name
Type
assert
Assert-O
Output Parameters
Name
Type
result
boolean
Description
The Assert-O certificate
Description
The result of the AssertO verification.
True if the
verification is successful, false
otherwise.
Assert-M Verifier
The Assert-M Verifier component is responsible to check the consistency of the
model of the services and the security property asserted in the Assert-M certificate.
D.6.1 - Architecture and High-level Design
34 / 87
Assert4Soa
Properties
Dependencies
Ontology Manager, Assert Verifier
Operations
verifyAssert
Verifies that the model of the service and the security property asserted in the
Assert-M certificates are consistent.
Input Parameters
Name
Type
assert
Assert-M
Output Parameters
Name
Type
result
boolean
Description
The Assert-M certificate
Description
The result of the AssertM verification.
True if the
verification is successful, false
otherwise.
Assert-E Verifier
The Assert-E Verifier component is responsible to check the consistency of the
model of the services and the security property asserted in the Assert-E certificate.
Properties
Dependencies
Ontology Manager, Assert Verifier
Operations
verifyAssert
Verifies that the model of the service and the security property asserted in the
Assert-E certificates are consistent.
Input Parameters
Name
Type
assert
Assert-E
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The Assert-E certificate
Description
The result of the AssertE verification.
True if the
verification is successful, false
otherwise.
35 / 87
Assert4Soa
Preference Store
This is the client-side component that is used by the client to store the preferences
and by the Consumer Agent to fetch them to formulate the query for lookup of
services.
Properties
Dependencies
Pre-Conditions
Consumer Agent, Service Based Application
A means to store the preferences either in the form of
a simple DB or flat file or relational DB is supposed
to be available
Operations
setPreferences
Store the preferences of the users - preferences can be either about security
properties or about the trust relationships with third parties
Input Parameters
Name
Type
pref
Preferences
Description
Consumer security
preferences
and
QoS
getPreferences
Store the preferences of the users - preferences can be either about security
properties or about the trust relationships with third parties
Output Parameters
Name
Type
Pref
Preferences
Description
Preferences of the consumer,
returns null if not set
Trust Manager
This component is used to store the trust relationships and preferences, as well
as to reason about them. This is can be used both on the consumer side (e.g., by
the Consumer Agent when formulating the query for lookup) as well as by server-side
components as explained in more detail in Chapter 4.
Properties
Dependencies
Pre-Conditions
Consumer Agent,
Assert Verifier, Service Based
Application
A means to store the preferences either in the form of
a simple DB or flat file or relational DB is supposed
to be available
D.6.1 - Architecture and High-level Design
36 / 87
Assert4Soa
Operations
setTrustRelations
Store the trust preferences of the users - trust preferences can be on the Certification
Authorities, the platform providers, the service providers and so on.
Input Parameters
Name
Type
trustpref
TrustPreferences
Description
Trust
Preferences
Consumer
of
the
getTrustRelations
retrieve the trust preferences of the consumer
Output Parameters
Name
Type
trustPref
TrustPreferences
Description
Trust
Preferences
of
the
consumer, returns null if not
set
Consumer Agent
This is the client-side component through which SBAs (or human consumers)
access the server-side framework to use its (assert-aware) discovery functions. The
Consumer Agent formulates queries, combining the request coming as its input with
the preferences persisted in a preference store.Such queries are then sent to the
server-side (entry point component).
Properties
Dependencies
Assumptions
Consumer Agent, Service Based Application
The server knows the URI to communicate with the
Agent
And the server is up and running
D.6.1 - Architecture and High-level Design
37 / 87
Assert4Soa
Operations
lookup
This is the method through which clients use the discovery feature of the framework
Input Parameters
Name
Type
requirements
Requirements
Output Parameters
Name
Type
RankedServiceCandidateService[]
List
Description
Client requirements consist of
both security and functional
aspects
Description
The list of services along with
their Asserts that is ranked
according to the degree of fit of
a service on both the functional
and security requirements of the
user
composeQuery
The consumer agent composes a query that includes the requirements, preferences
and trust preferences of the consumer.
Input Parameters
Name
Type
requirements
Requirements
pref
Preferences
trustpref
TrustPreferences
Output Parameters
Name
Type
Query
ConsumerQuery
Description
Client requirements consist of
both security and functional
aspects
Consumer security and QoS
preferences
Trust
Preferences
of
the
Consumer
Description
Containing functional, security
requirements that must hold
in the services and the query
subscription information
System Administration
All administration task of the Assert4Soa framework will be performed through
the System Administration component. These tasks include the configuration of
the system, the management of plugins, the configuration of connectors, and the
administration of users. Additionally, this component will provide monitoring functions
D.6.1 - Architecture and High-level Design
38 / 87
Assert4Soa
(e.g., performance monitoring) by collecting raw monitoring information coming
from the connectors.
Properties
Dependencies
Entry Point
Operations
manageSystem
This allows an authenticated system administrator to perform administration
tasks of the framework.
Input Parameters
Name
Type
mo
ManagementOperation
Output Parameters
Name
Type
opResult
OperationResult
Description
Contains the operation to be
performed and the information
to
perform
the
operation
successfully
Description
Result
of
the
system
administration operation
System Administration Console
The Assert4Soa Framework System Administrator maintains the framework
by using the System Administration Console.
Properties
Dependencies
Entry Point
D.6.1 - Architecture and High-level Design
39 / 87
Assert4Soa
Operations
login
This allows a system administrator to authenticate with Assert4Soa Framework.
Input Parameters
Name
Type
UC
UserCredentials
Output Parameters
Name
Type
OpResult
OperationResult
Description
Contains the user credentials,
that can be the username token,
password digest etc
Description
Contains the
operation
result
of
the
manageSystem
This allows an authenticated system administrator to perform administration
tasks of the framework.
Input Parameters
Name
Type
mo
ManagementOperation
Output Parameters
Name
Type
opResult
OperationResult
Description
Contains the operation to be
performed and the information
to
perform
the
operation
successfully
Description
Result
of
the
system
administration operation
Assert Issuing Tool
Assert Issuing Tool allows issuers to create and manage Asserts. It provides a
user friendly interface which allows Assert Issuers to create, update and revoke
Asserts.
Properties
Dependencies
Entry Point
D.6.1 - Architecture and High-level Design
40 / 87
Assert4Soa
Operations
manageAssert
This allows the Assert Issuer to manage the Asserts
Input Parameters
Name
Type
AMO
AssertManagementOperation
Output Parameters
Name
Type
OpResult
OperationResult
Description
Contains
the
Assert,
AssertIdentifier,
Operation
performed on the Assert such as
issue, revoke or update
Description
Contains the
operation
result
of
the
Ontology Manager
The Ontology Manager component is responsible for interacting with the Assert
Ontology [7] developed in the Assert4Soa framework. In particular, it provides a
set of functionalities for browsing and reasoning with the ontology in order to ensure
that the common inference problems described in [4] are considered.
The table 2.1 summarizes the inference problems achieved by the Ontology Manager
providing, for each of them, an example of the related functionality.
Inference Problem
Ontology Consistency
Ontology Entailment
Ontology Equivalence
Ontology Equisatisfiability
Class Expression Satisfiability
Class Expression Subsumption
Instance Checking
Functionality
isOntologyConsistent
isOntologyEntailed
isEquivalentClass
isClassSatisfiable
isClassExpSatisfiable
isSubClassOf
isIndividualInstanceOf
Table 2.1: The inference problems achieved by the Ontology Manager functionalities
Properties
Dependencies
Master Matchmaker, Assert Verifier, Assert Issuing Tool
D.6.1 - Architecture and High-level Design
41 / 87
Assert4Soa
Operations
isAxiomEntailed
Verifies if an axiom is entailed by the set of reasoner axioms.
Input Parameters
Name
Type
axiom
OWLAxiom
Output Parameters
Name
Type
result
boolean
Description
The axiom to check
Description
The result of the verification.
True if the verification is
successful, false otherwise
isClassDefined
Verifies if a class is defined in the ontology.
Input Parameters
Name
Type
class
OWLClass
Output Parameters
Name
Type
result
boolean
Description
The class to check
Description
The result of the verification.
True if the class is defined, false
otherwise.
isClassExpSatisfiable
Verifies if a class expression is satisfiable.
Input Parameters
Name
Type
classExp
OWLClassExpression
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The class expression to check
Description
The result of the verification.
True if the class expression is
satisfiable, false otherwise.
42 / 87
Assert4Soa
isClassSatisfiable
Verifies if a class is satisfiable.
Input Parameters
Name
Type
classDescr
OWLDescription
Output Parameters
Name
Type
result
boolean
Description
The description of the class to
check
Description
The result of the verification.
True if the class is satisfiable, false
otherwise.
isDataPropertyDefined
Verifies if a data property is defined in the ontology.
Input Parameters
Name
Type
dataProperty
OWLDataProperty
Output Parameters
Name
Type
result
boolean
Description
The data property to check
Description
The result of the verification.
True if the data property is
defined, false otherwise.
isEquivalentClass
Verifies if a class is equivalent to another class.
Input Parameters
Name
Type
classA
OWLDescription
classB
OWLDescription
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The description of the first class
The description of the second
class
Description
The result of the verification.
True if the first class is equivalent
to the second class, false
otherwise.
43 / 87
Assert4Soa
isEquivalentDataProperty
Verifies if a data property is equivalent to another data property.
Input Parameters
Name
Type
dataPropertyA
OWLDataProperty
dataPropertyB
OWLDataProperty
Output Parameters
Name
Type
result
boolean
Description
The first data property
The second data property
Description
The result of the verification.
True if the first data property
is equivalent to the second data
property, false otherwise.
isEquivalentObjectProperty
Verifies if an object property is equivalent to another object property.
Input Parameters
Name
Type
objectPropertyA OWLObjectProperty
objectPropertyB OWLObjectProperty
Output Parameters
Name
Type
result
boolean
Description
The first object property
The second object property
Description
The result of the verification.
True if the first object property
is equivalent to the second object
property, false otherwise.
isIndividualDefined
Verifies if an individual is defined in the ontology.
Input Parameters
Name
Type
individual
OWLIndividual
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The individual to check
Description
The result of the verification.
True if the individual is defined
in the ontology, false otherwise.
44 / 87
Assert4Soa
isIndividualInstanceOf
Verifies if an individual is an instance of a class type.
Input Parameters
Name
Type
individual
OWLIndividual
type
OWLDescription
direct
boolean
Output Parameters
Name
Type
result
boolean
Description
The individual to check
The description of the class type
This is an optional parameter. If
it is true the operation verifies if
the individual is a direct instance
of the given type
Description
The result of the verification.
True if the individual is an
instance (or a direct instance) of
the given type, false otherwise.
isLoadedOntologyConsistent
Verifies if the loaded ontology is consistent.
Output Parameters
Name
Type
result
boolean
Description
The result of the consistency
verification.
True if the
verification is successful, false
otherwise.
isObjectPropertyDefined
Verifies if an object property is defined in the ontology.
Input Parameters
Name
Type
objectProperty
OWLObjectProperty
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The object property to check
Description
The result of the verification.
True if the object property is
defined, false otherwise.
45 / 87
Assert4Soa
isOntologyConsistent
Verifies if an ontology is consistent.
Input Parameters
Name
Type
ontology
OWLOntology
Output Parameters
Name
Type
result
boolean
Description
The ontology to check
Description
The result of the consistency
verification.
True if the
verification is successful, false
otherwise.
isOntologyEntailed
Verifies if an ontology is entailed.
Input Parameters
Name
Type
ontology
OWLOntology
Output Parameters
Name
Type
result
boolean
Description
The ontology to check
Description
The result of the consistency
verification.
True if the
verification is successful, false
otherwise.
isSameAsIndividual
Verifies if two individuals are the same.
Input Parameters
Name
Type
individualA
OWLIndividual
individualB
OWLIndividual
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The first individual
The second individual
Description
The result of the verification.
True if the first individual is equal
to the second individual, false
otherwise.
46 / 87
Assert4Soa
isSubClassOf
Verifies if a class is subclass of another class.
Input Parameters
Name
Type
classA
OWLDescription
classB
OWLDescription
Output Parameters
Name
Type
result
boolean
Description
The description of the first class
The description of the second
class
Description
The result of the verification.
True if the first class is subclass of
the second class, false otherwise.
isSubDataPropertyOf
Verifies if a data property is sub property of another data property.
Input Parameters
Name
Type
dataPropertyA
OWLDataProperty
dataPropertyB
OWLDataProperty
Output Parameters
Name
Type
result
boolean
Description
The first data property
The second data property
Description
The result of the verification.
True if the first data property is
sub property of the second data
property, false otherwise.
isSubObjectPropertyOf
Verifies if an object property is sub property of another object property.
Input Parameters
Name
Type
objectPropertyA OWLObjectProperty
objectPropertyB OWLObjectProperty
Output Parameters
Name
Type
result
boolean
D.6.1 - Architecture and High-level Design
Description
The first object property
The second object property
Description
The result of the verification.
True if the first object property is
sub property of the second object
property, false otherwise.
47 / 87
Assert4Soa
isSubTypeOf
Verifies if a data type is sub type of another data type.
Input Parameters
Name
Type
dataTypeA
OWLDataType
dataTypeB
OWLDataType
Output Parameters
Name
Type
result
boolean
Description
The first data type
The second data type
Description
The result of the verification.
True if the first data type is sub
type of the second data type, false
otherwise.
loadOntology
Loads a specified ontology.
Input Parameters
Name
Type
ontologyURI
URI
Output Parameters
Name
Type
ontology
OWLOntology
Description
The logical URI of the ontology
to be loaded
Description
The loaded ontology
loadOntologyFromPhysicalURI
Loads an ontology from a physical URI.
Input Parameters
Name
Type
ontologyURI
URI
Output Parameters
Name
Type
ontology
OWLOntology
D.6.1 - Architecture and High-level Design
Description
The physical URI of the ontology
to be loaded
Description
The loaded ontology
48 / 87
Assert4Soa
reloadOntology
Reloads an ontology.
Input Parameters
Name
Type
ontologyURI
URI
Output Parameters
Name
Type
ontology
OWLOntology
Description
The URI of the ontology to be
reloaded
Description
The reloaded ontology
removeOntology
Attempts to remove an ontology.
Input Parameters
Name
Type
ontologyURI
URI
Output Parameters
Name
Type
result
boolean
2.4
Description
The URI of the ontology to be
removed
Description
Informs if the operation has been
completed successfully
A SSERT 4S OA plug-ins
As described in Section 1.2, the plug-in approach is applied to the Assert4Soa
architecture in order to realise an extensible and dynamically configurable framework.
At this design stage, the Assert4Soa components that will be integrated into
the system as plug-in units have been identified. In particular, the components that
will be realized following the plug-in approach are:
• Matchmaking Subsystem
• Assert Verifier
• Registry Abstraction Layer
As explained in the previous section, the Matchmaking Subsystem is responsible
of filtering and evaluating the set of candidate services retrieved by the Discovery
Manager and ranks them according to their degree of fit with the security properties
requested by the consumer. The Matchmaking Subsystem is composed by a Master
Matchmaker that controls a set of Slave Matchmakers. Each slave matchmaker
ranks candidate services according to a specific dimension/domain. At the moment
three slave matchmakers are defined (i.e. the Assert-E, the Assert-M and Assert-O
Matchmakers) that provide the evaluation of services using the three different kind
of Asserts but, in general, other domain-specific slave matchmakers can be added to
D.6.1 - Architecture and High-level Design
49 / 87
Assert4Soa
Figure 2.10: Slave matchmaker s as plug-ins of the Matchmaking Subsystem
the architecture. Therefore, they are designed as plug-in units (see Figure 2.10) that
can be configured and plugged into the system at run-time. Moreover, in this way,
slave matchmakers may be provided by thirty-party and plugged into framework
seamlessly.
As an example of this mechanism, the Assert Verifier is designed as a plug-in host
(see Figure 2.11). The generic functionality provided by the Assert Verifier (check of
signature, well-formedness, expiration-time) can be extended in order to verify also
information that is specific to Assert-E, Assert-M, and Assert-O certificates.
Therefore, the realization of the Assert Verifier as a plug-in host supports the
extension of the verification process without modifying its implementation. At the
moment, the Assert-O Verifier is the component designed to extend the Assert Verifier
with the consistency checking of the Assert-O certificate. In particular, the AssertO Verifier checks if the model of the service and the property asserted in an Assert-O
certificate are consistent. If this complementary verification is required, the plug-in
unit implementing the Assert-O Verifier is activated. By using the plug-in approach
for the realization of the Assert Verifier, it is possible to extend the consistency
checking also to the aspects that are specific of Assert-E and Assert-M certificates
(deploying dedicated verification plug-ins).
D.6.1 - Architecture and High-level Design
50 / 87
Assert4Soa
Figure 2.11: Plug-ins of the Assert Verifier
D.6.1 - Architecture and High-level Design
51 / 87
Assert4Soa
Chapter 3
Information View
The Information View defines the structure and the meaning of the information
data exchanged in the Assert4Soa framework in order to provide a shareable and
organised structure of the information data. In particular, this chapter defines the
conceptual data model according to the requirements and use cases provided in the
deliverable D.7.1 [8] and describes how these data are shared and exchanged between
the Assert4Soa components.
3.1
A SSERT 4S OA Data Entities
The Assert4Soa data model describes the static structure of the information
handled in the Assert4Soa framework in terms of entities and their relationships
providing a reference model for the data types specific of the Assert4Soa context.
An entity represents a relevant object for the domain of the system while the
relationships are used to define the logical association between entities. The Assert4Soa
data model is depicted in Figure 3.1 using a UML [24] class diagram. The UML
language permits to specify the domain objects manipulated by the system through
the class, association and generalization concepts. A UML class (represented with a
box) defines the abstraction of a set of objects with their data fields (i.e., attributes)
and behavioural operations. A UML association defines the relationships between
entities; the multiplicity intervals (e.g. 1..*), shown at both ends of the association
line, indicate the cardinality of these relationships. Finally, a UML generalization
defines a taxonomic relation between two entities. It is represented with a solid
line with a hollow arrowhead that points from the subclass entity to the super-class
entity.
The entities and relationship of the Assert4Soa data model are described
below. In particular, it includes all the data types used in Section 2.2 to describe
the expected inputs and outputs of the operations provided by the Assert4Soa
components. The only data that are not depicted in this reference model are the ones
related to the Ontology Manager component, since it provides operations involving
standard data belonging to the OWL 2 Web Ontology language whose detailed
description can be found in [5].
D.6.1 - Architecture and High-level Design
52 / 87
Assert4Soa
Figure 3.1: The Assert4Soa framework Data Model
D.6.1 - Architecture and High-level Design
53 / 87
Assert4Soa
AbstractSecurityProperty
This entity represents an high-level security characteristic (e.g.
integrity, authenticity). It is identified by a name.
confidentiality,
A SSERT
This entity represents the Advanced Security Service cERTificate managed in the
Assert4Soa framework. In particular, it is a specialization of a digital Certificate
used to claim that a set of security properties hold for a given service. It is
characterised by the typical information contained in digital certificates. It is identified
by an unique identifier and it contains the information of the creation time. This
entity class is an abstract class since it can not be directly instantiated but only its
Assert-E, an Assert-M or Assert-O subtype can exist.
Relationships The Assert is related to one or more security properties asserted
in the certificate and to the service for which the properties must hold. Moreover,
it is associated to the assert issuer that have generated it and, optionally, contains
a reference to the profile from which has been created.
ASSERTAuthority
This entity represents the authoritative body responsible for the accreditation of
the assert issuer. In particular, it is a specialization of a TrustOriginator. It is
characterised by an unique identifier.
Relationships The ASSERTAuthority is related to the Certificate entity since
it must have an identity certificate.
A SSERT-E
This entity represent a kind of Assert in which the assessment of the security
properties is based on the execution of tests.
ASSERTIssuer
This entity represents the originator (i.e., the creator and signer) of the Assert.
In particular, it is a specialization of a TrustRecipient. It is characterised by an
unique identifier.
Relationships The assert issuer is associated to an accreditation authority and
related to the Certificate entity since it must have an identity certificate.
A SSERT-M
This entity represents a kind of Assert in which the assessment of the security
properties is based on a formal model.
AssertManagementOperation
This entity represents the set of information needed to manage (issue, update,
revoke) the Asserts.
D.6.1 - Architecture and High-level Design
54 / 87
Assert4Soa
Relationships The AssertManagementOperation entity is composed by the identifier
of the Assert and the Assert itself, the identifier of the assert issuer and the type
of the operation (i.e., Action enumeration) that must be performed.
A SSERT-O
This entity represents a kind of Assert in which the assessment of the security
properties is based on the concepts defined within the Assert ontology.
ASSERTProfile
This entity represents a template, specific for a given certification scheme, from
which the Assert is created.
CandidateService
This entity represents services, retrieve from the service registry, matching the
structural, behavioural and qualitative discovery criteria of a service discovery query.
The structure of this entity is characterized by the reference to the service and the
list of the Asserts associated to it.
Relationships The candidate service is associated to the service matching the given
discovery criteria.
Certificate
This entity represents a digital signed artefact conveying that the statements about
a software product are valid. It is characterized by different attributes such as the
serial number, the signature, the algorithm used to create the signature, the public
key, the validity period of the certificate.
Relationships The certificate is associated to the ValidityPeriod entity.
CompositeService
This entity represents a particular kind of service obtained from the service composition
process performed by the Composition Manager component.
Relationships The composite service consists of the instantiation (with appropriate
services) of one or more composition patterns.
CompositionPatterns
This entity represents an abstract and parametric model of service compositions
used to generate concrete compositions of services.
ConsumerQuery
This entity represents the request submitted by a consumer agent to the Assert4Soa
framework in order to discover services that satisfy functional and security requirements.
It is characterised by subscription information and by the consuming result mode
(push, pull, etc.)
Relationships It is composed by a service discovery query.
D.6.1 - Architecture and High-level Design
55 / 87
Assert4Soa
FunctionalRequirement
This entity represents a statement regarding the functional aspects that the services
must possess.
Relationships The functional requirement is associated to the ServiceRegistryQuery
entity since from a functional requirement can be defined multiple query used to
retrieve services.
ManagementOperation
This entity represents the operation performed by the administrator of the Assert4Soa
framework.
OperationResult
This entity represents a container for the result of different operations. It is characterised
by a message (e.g. successful, failed).
Preferences
This entity represents the preferences on security properties expressed by the consumer
agent.
Relationships It is related to the SecurityProperty entity.
Requirements
This entity represents the functional and security requirements used by the client to
discover the services.
Relationships It consists of both FunctionalRequirement and SecurityRequirement
entities.
SecurityProperty
This entity represents the security characteristic of the evaluated service certified by
the Asserts (i.e., the security property instance). It is characterized by an identifier
(i.e., the URI of the property) and by a version number.
Relationships The security property is associated to an high-level security concept
(i.e., AbstractSecurityProperty).
SecurityRequirement
This entity represents a statement regarding the security property that the services
must possess.
Relationships It is related to the SecurityProperty entity that asserts it.
Service
This entity represents the software system under evaluation. It is characterized by
an endpoint (i.e., the URI of the service) specifying the location for accessing it.
D.6.1 - Architecture and High-level Design
56 / 87
Assert4Soa
ServiceDiscoveryQuery
This entity represents an expression specifying functional and security requirements
of the services used by the Discovery Manager to carry out the functional and
security matchmaking.
Relationships It is composed by functional and security requirements.
ServiceRegistryQuery
This entity represents an expression used to query the service registry. It is characterised
by the functional requirements used to fetch the services.
Relationships It is related to the functional requirements and to the services.
Strategy
This entity represents the strategy used to define the list and the order of the slave
matchmakers that will be invoked during the matchmaking process.
TrustOriginator
If we represent trust relations with an arrow, like A → B, meaning that A trusts
B (in some way or for some aspect), then A is the TrustOriginator. Therefore,
the TrustOriginator is a generalization of all entities trusting some other entity.
A special case of this entity is the ASSERTAuthority. ASSERTAuthorities trust
ASSERTIssuers for issuing AssertS to represent certifications based on the certification
schemes they define.
TrustPreferences
This entity represents trust preferences of the customer (e.g. a preference on a
platform, on a particular certification authority or technology).
TrustRecipient
If we represent trust relations with an arrow, like A → B, meaning that A trusts
B (in some way or for some aspect), then B is the TrustRecipient. Therefore, the
TrustRecipient is a generalization of all entities being trusted by some other entity.
A special case of this entity is the ASSERTIssuer. ASSERTIssuers are trusted by
ASSERTAuthorities for issuing AssertS to represent certifications based on the
certification schemes they define.
UserCredentials
This entity represents the credentials used by the user during the authorisation
process of the Assert4Soa framework. It is characterised by the user name and
password.
D.6.1 - Architecture and High-level Design
57 / 87
Assert4Soa
ValidityPeriod
This entity represents the time interval during which the Assert is valid. It is
characterized by the date from which the certificate is valid and by the expiration
date.
3.2
Information Flow Model
This section describes the dynamic behaviour of the system focussing on how the
information data, defined in the Section 3.1, are exchanged among Assert4Soa
components. To this end, UML activity diagrams of the main use cases are reported
in the following. In particular, according to the notation presented in [33], the data
items (graphically represented as a rectangle) are attached to the control flow edge
connecting two activities.
A SSERT Management activity diagram
Figure 3.2 depicts the activity diagram related to the Assert Management use case
that allows the Assert Issuer to issue, update and revoke Asserts.
As shown in the diagram, the Assert Issuing Tool starts the manageAssert activity
providing the AssertManagementOperation data containing the requested action.
If a new assert must be created it performs the issue Assert action that, in turn,
is split in two possible actions depending if the assert is created from scratch (issue
Assert from scratch) or from a profile (issue Assert from profile). In the
first case, the activity that generates it (generate Assert) receives only the data
related to the new assert (e.g. the certificate information, the validity period, the
timestamp etc. ). In the latter case, also the template (ASSERTProfile) is provided.
After the generation of the new assert the Assert identifier and the Assert fields
of the AssertManagementOperation data are filled. Instead, these fields are already
set in the case one of the following actions are performed:
• update Assert action: the AssertManagementOperation data contains the
identifier of the assert that must be updated and the new assert itself);
• revoke assert action: the AssertManagementOperation data contains the
identifier of the assert that must be revoked.
Then, the Assert Issuing Tool sends the manage assert request to the Entry Point
component that identifies the Assert Issuer and forwards the AssertManagementOperation
data (with all needed fields set) to the Registry Abstraction Layer. This component
analyses the received data and updates the registry performing a store, an update or
a revoke operation accordingly with the Action field. Finally the Registry Abstraction
Layer sends to the Assert Issuing Tool a successful notification (an OperationResult
with a successful message).
Service Discovery activity diagram
Figure 3.3 depicts the activity diagram related to the Service Discovery use case.
The Consumer Agent starts the activity formulateQuery (see Figure 3.2) in order
to provide and send to the Entry Point the ConsumerQuery data type containing the
functional and security information on the services that must be discovered, along
D.6.1 - Architecture and High-level Design
58 / 87
Assert4Soa
Figure 3.2: The Assert Management activity diagram
with the information on the discovery process (subscription and consuming mode
of results). The Entry Point forwards the query to the Query Handler that verifies
the validity of the query (i.e., checkQuery). If the received ConsumerQuery data
type is valid, the Query Handler processes it (i.e., processQuery) in order to provide
a ServiceDiscoveryQuery data type used by the Discovery Manager to find the
requested services.
The findService activity performed by the Discovery Manager is composed by
different actions. First of all it retrieves the services that match the requested
functional requirements taking in input the list of FunctionalRequirement data
types contained in the service discovery query. The output of the retrieveService
action is the list of CandidateService data that match the functional requirements
(including also behavioural, structural and constraint requirements). If no candidate
services are retrieved, the Discovery Manager starts the composeServices activity
D.6.1 - Architecture and High-level Design
59 / 87
Assert4Soa
(see Figure 3.5) in order to provide composition of services applying composition
patterns. Then, the list of CandidateService, along with the list of Requirements
contained in the service discovery query and the Strategy data type are passed
to the matchServices activity (see Figure 3.2). During this activity, the list of
CandidateService is evaluated and ranked according to the security requirements.
Finally, the asserts contained in the list of candidate services are verified, removing
from the list all services whose asserts are not valid.
Formulate Query activity diagram
Figure 3.2 describes the formulateQuery activity depicted in the Service Discovery
activity diagram.
The Consumer Agent receives the Requirements data type and retrieves the security
and trust preferences of the customer (i.e., Preferences and TrustPreferences
data types). Finally, the Consumer Agent performs the composeQuery action that
combines Requirements, Preferences and TrustPreferences data in order to
provide the ConsumerQuery.
Compose Services activity diagram
Figure 3.5 describes the composeServices activity depicted in the Service Discovery
activity diagram.
The Composition Manager, using the Requirements data, retrieves the list of the
CompositionPatters that, consequently, are filled with actual services (i.e. fillPatters).
Then, the Composition Manager creates the virtual asserts that must be associate to
the services and provides in output a list of CompositeService data types, returned
to the Discovery Manager in order to perform the matchmaking process.
Mach Services activity diagram
Figure 3.2 describes the matchServices activity diagram depicted in the Service
Discovery activity diagram.
The Master Matchmaker analyses the Strategy data type received in input in order
to decide which are the slave matchmakers that must be called and the order of
the calling. Then, it passes to the slave matchmaker the list of CandidateService
data types and the list of SecurityRequirement according to which each slave
matchmaker has to perform the ranking of services based on its specific assert
certificate (i.e., ASSERT-M, ASSERT-E and ASSERT-O certificate). The lists
of candidate services, partially ordered by each slave matchmaker (i.e., mCSList,
eCSList and oCSList), are then evaluated by the Master Matchmaker providing a
fully ordered list of the candidate services (i.e., csOrderedList).
D.6.1 - Architecture and High-level Design
60 / 87
Assert4Soa
Figure 3.3: The service discovery activity diagram
D.6.1 - Architecture and High-level Design
61 / 87
Assert4Soa
Figure 3.4: The Formulate Query activity diagram
D.6.1 - Architecture and High-level Design
62 / 87
Assert4Soa
Figure 3.5: The Compose Services activity diagram
D.6.1 - Architecture and High-level Design
63 / 87
Assert4Soa
Figure 3.6: The Match Services activity diagram
D.6.1 - Architecture and High-level Design
64 / 87
Assert4Soa
Chapter 4
Security Perspective
Assert4Soa provides a framework for handling Advanced Security Service cERTicates
(Assert). Logically, a very important point is the security of the framework
components. Therefore, providing an appropriate treatment of security and privacy
issues in order to avoid risks will becomes essential for ensuring the necessary
trust. To achieve this, we need to ensure that privacy is adequately protected,
and Assert4Soa processes are not vulnerable to security attacks.
The rest of the chapter is organized as follows: Section 4.1 presents an identification
and analysis of possible threats and attack of the framework, projecting the security
aspect onto the information model of Chapter 3 and in particular on the behavioural
specification expressed in the activity diagrams of that chapter. Based on the
threats and attacks identified, we performed a systematic risk assessment whose
outcome is documented in Section 4.2. Section 4.3 describes the corresponding
security mechanisms included in the framework to address the risks identified. Such
mechanisms are projected onto the security-relevant components that are part of the
architecture (and that are also described in the Component Catalog, in Chapter 2).
We conclude the chapter by presenting a brief overview of technologies and standards
related to the security of service-oriented systems, that may be adopted in the
realisation of the security mechanisms of the Assert4Soa framework.
4.1
Threat analysis
The purpose of this section is identify and analyse the possible framework threats
and how should be addressed. This is the first step in designing a security solution;
its importance lies since a good threat analysis facilitates the next step, the risks
management, and in the end the appropriate choice of security solutions.
After having performed an analysis of the potential threat and attacks that can
violate the framework Assert4Soa, the following threat and attacks have been
identified:
1. Selection of a service that is not the best with regards to the needs of
the client. This is the main threat that we have to face in Assert4Soa. This
threat may be implemented in several ways through different attacks, including
the following:
(a) Creation of fake certificates. A malicious service provider may try to create
D.6.1 - Architecture and High-level Design
65 / 87
Assert4Soa
a fake Assert to state false properties about a service. This attack has
two variants:
i. Creating a fake Assert certificate
ii. Creating a fake Assert Issuer
i.) can affect the issue Assert state, while ii.) can affect the identify
ASSERT Issuer state in the Assert Management activity diagram (Figure 3.2).
(b) Association of legitimate certificates to a different service. In this case,
the malicious provider does not attempt to create a false certificate, but
to associate a certificate issued to another service to its own service. This
attack can be carried out by associating powerful certificates to the service
of the attacker or by associating weak certificates to the services of the
competitors. This attack can affect the machServices state in the Service
Discovery activity diagram (Figure 3.3).
(c) Attacks to the Assert4Soa ontology. In this case, the malicious user
alters the ontology so that the reasoning mechanisms conclude that the
Assert of the malicious service is equivalent to more powerful ones.This
attack can affect the matchServices state in the Service Discovery activity
diagram (Figure 3.3).
(d) Attacks to the Assert4Soa reasoning mechanisms. As in the previous
case, the idea is not to associate a powerful Assert to the malicious
service, but to influence the reasoning mechanisms in a way that increases
the chances of that service being selected. This attack can affect the
matchServices state in the Service Discovery activity diagram (see Figure 3.3).
(e) Attacks to the Orchestration Pattern system. The basic goal in this attack
is to introduce malicious Orchestration Patterns or to modify existing ones
so that the malicious service is included in the orchestration. This attack
can affect the composeServices state in the Service Discovery activity
diagram (Figure 3.3).
(f) Attacks by malicious service platforms. In this case, a malicious service
platform behaves incorrectly in order to favour the selection of certain
services. This is a general attack that can affect all the Service Discovery
states.
(g) Attacks to the Assert4Soa Queries. The malicious user alters the queries
so that the reasoning mechanisms conclude that the Assert of the malicious
service is equivalent to more powerful ones. This attack can affect the
formulateQuery state in the Service Discovery activity diagram (Figure 3.3).
(h) Association of invalid certificates to a service. In this case a malicious
provider try to associated a service with an Assert that expired, unreliable
or false. This attack can affect the verifyAsserts state in the Service
Discovery activity diagram (Figure 3.3).
2. Denial of service. This is another important threat. The goal in this case is
to make the system or part of it unavailable, normally, with the ultimate goal
of forcing clients to use alternate means for selecting services.
3. Attacks on communications. A weak point is communication between
the different components and they become more vulnerable if this system is
D.6.1 - Architecture and High-level Design
66 / 87
Assert4Soa
distributed. A malicious attack can compromise the confidentiality of transmissions
and integrated of them.
4. Attack on the privacy of the queries. The queries can give information
about clients. This may be a weak point that allows copying this information
to a malicious user.
There are other threats that do not apply in all cases. Among these, we
highlight the following ones:
5. Privacy attacks. In cases in which the information contained in the Asserts
include privacy sensitive information; malicious users may try to gain access
to this information with different purposes.
6. Client impersonation. In cases in which the access to the services is restricted
to certain clients, or the service selection depends on the client credentials, or
in cases in which access to services requires payment, malicious clients may try
to impersonate legitimate ones.
D.6.1 - Architecture and High-level Design
67 / 87
Assert4Soa
4.2
Risk Management
In the process of designing the security of a system, the next step is risk management.
So in a second stage we perform a risk analysis according to the environments of the
Assert4Soa Framework and as and threat affecting them. We have identified three
environments: (i) Assert Issuer: It is responsible for management of Asserts; (ii)
Service Consumer: Is the client-side and requests to the server-side for services that
fulfil certain security properties and (iii)Assert4Soa Management System: The
manager of registering services, dynamic service discovery manages and uses the
ontology, among others. The following tables contain the threat/attack (described
in the previous section), a short risk description, and the impact in the system and
a proposal of mitigation measure.
A SSERT Issuer
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
(3)Attacks on communications
Violate the confidentiality and integrity of
communications between the Assert Issuing Tool
component and the external items
Mechanisms to guarantee a secure communications
channel (with the Assert4Soa Management
System, Assert Ontology, to Online Assert
repositories, Trust Manager
Medium
Impact
(5) Privacy attacks
Compromise the integrity of Online Assert
repositories
Mechanisms to guarantee the security of the Online
Assert repositories such as Digital Signature
High
Threat/Attack
Risk Description
Mitigation Measures
Impact
(1.a.ii) Creating a fake Assert Issuer
Sign an Assert using a false identity
Sign the Assert with a trusted digital certificate
High
Threat/Attack
Risk Description
Mitigation Measures
(1.a.i) Creating a fake certificate
Create Assert with fake data
Sign the Assert with a trusted certificate of the
Assert Issuer
Medium
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
(1.a) Creation of fake certificates
Associate a certificate issued to another service to
its own service
Solutions that provide robust binding between the
Assert and the Service
High
D.6.1 - Architecture and High-level Design
68 / 87
Assert4Soa
Service Consumer
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
(3)Attacks on communications
Violate the confidentiality and integrity of serverclient communications
Mechanisms to guarantee a secure communications
channel
Medium
(1.h) Association of invalid certificates to a service
Deceive on the trust of an Assert
Availability of automated tools to verify the
trustworthiness of an Assert Authorities (Trust
Manager)
High
(1.h) Association of invalid certificates to a service
Deceive on the time validity of an Assert
Availability of automated tools to verify the time
validity: The Assert validity period is in time.
(Assert Verifier)
High
(1.h) Association of invalid certificates to a service
Deceive on the validity (Invalid signature) of an
Assert
Availability of automated tools to verify the
Signature (Assert Verifier)
High
D.6.1 - Architecture and High-level Design
69 / 87
Assert4Soa
A SSERT 4S OA Management System
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
(6) Client impersonation
Compromise the user authentication by using false
Identity
Mechanisms to guarantee the client authentication
(in those scenarios as needed)
Medium
(1.c) Attacks to the Assert4Soa ontology
Compromise the authenticity and integrity of
Assert Ontology
Mechanisms to guarantee security for ontology such
as digital signature
High
(1.g) Attacks to the Assert4Soa Queries
Compromise the authenticity, and integrity of Query
language
Guarantee authenticity, and integrity of the query
using mechanisms such as sign the queries
Medium
(1.e , 6)Attacks to the Orchestration Pattern system
, Client impersonation
Compromise the privacy of Query language
Protect the privacy of the queries using methods
designed for this purpose, such as encryption
Medium
(1.f) Attacks by malicious service platforms
Compromise the correct execution of the framework
processes
Availability of automated tools to process the
System Monitoring information
Medium
(1.h) Association of invalid certificates to a service
Deceive on the trust of an Assert
Availability of automated tools to verify the
trustworthiness of an Assert Authorities (Trust
Manager)
Medium
D.6.1 - Architecture and High-level Design
70 / 87
Assert4Soa
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
Threat/Attack
Risk Description
Mitigation Measures
Impact
4.3
(1.h) Association of invalid certificates to a service
Deceive on the time validity of an Assert
Availability of automated tools to verify the time
validity: The Assert validity period is in time.
(Assert Verifier)
High
(1.h) Association of invalid certificates to a service
Deceive on the Assert validity (Invalid signature)
Availability of automated tools to verify the
Signature (Assert Verifier)
High
(2) Denial of service
System that forcing clients to use alternate means
for selecting services
Use of tools to mitigate such attacks as a proxy
High
Security features of the framework
Providing an appropriate treatment of security and privacy in order to avoid risks
is an important issue of almost any computational framework. In our case, as the
main goal of the Assert4Soa framework is to support the security-based selection
of services, ensuring the security of the framework becomes crucial for its practical
success.
In this section, we describe a first overview of the Assert4Soa framework
security mechanisms based on the threat analysis summarized in the previous section.
In order to ensure that privacy is adequately protected and Assert4Soa processes
are not vulnerable to security attacks Figure 4.3 shows (coloured in green, yellow and
red) the main components that need to incorporate specific security mechanisms.
Components that provide security functionalities to the framework are
marked in green.
The Assert Trust Manager is responsible for creating and managing the trust
relationships established between different Assert Authorities and Assert Issuers.
Optionally, it can also be extended to provide additional information (such as
reputation) of Assert Authorities and Issuers. The functionalities that the Assert
Trust Manager provides are the following:
• Create a trust relationship:
– One of the cornerstones of the project is to create a chain of trust that
allows guarantee that a service fulfils one or more security properties. The
Assert is only the first link in the chain, since it an Assert Issuer certifies
that a service fulfils a specific security property, but we have to extend this
chain of trust between the Assert Issuer and the ASSER Authority, and
that is the mission of this component. In this particular case, it creates a
D.6.1 - Architecture and High-level Design
71 / 87
Assert4Soa
link in the chain of trust between a specific Assert Authority and Assert
Issuer declaring that whenever there is this relationship going to trust her.
– Expected input: Trust originator (normally an Assert Authority); Trust
recipient (normally an Assert Issuer)
– Provided output: Trust proof (digital proof of the trust relationship between
the originator and the recipient).
– Dependencies/interactions with other functionalities (provided by other
components): The Assert Verifier is responsible for verifying Asserts and
needs to verify the corresponding trust relationships.
– Pre-conditions, post-conditions: Trust originator and recipient must have
identity certificates.
• Revoke a trust relationship:
– This component performs the inverse operation than the component before.
Decouple an Assert Authority and Assert Issuer, breaking the link
Figure 4.1:
mechanisms
Tentative Architecture - components including specific security
D.6.1 - Architecture and High-level Design
72 / 87
Assert4Soa
of trust. This may be due to a broken part of this relationship or the
relationship has been created by a certain time and this has expired .
– Expected input: Trust originator (normally an Assert Authority); Trust
recipient (normally an Assert Issuer); Trust proof.
– Provided output: Digital proof of the revocation of the Trust proof.
– Dependencies/interactions with other functionalities (provided by other
components): The Assert Verifier is responsible for verifying Asserts and
needs to verify the corresponding trust relationships.
– Pre-conditions, post-conditions: Trust originator and recipient must have
identity certificates. Trust proof must exist and be valid.
• Assess the reliability of the Assert Authority:
– This component creates a link in the chain of trust in a more general
sense, establishes that a Assert Authority is trustworthy for any Assert
ISSUER. This is very useful when incorporated into the framework authorities
widely recognized.
– Expected input: Assert Authority identification information
– Provided output: Information on the reliability of the Assert Authorities
– Dependencies/interactions with other functionalities (provided by other
components): The Assert Verifier is responsible for verifying Asserts and
needs to verify the corresponding trust relationships.
– Additional constraints: This feature is not necessarily used in all scenarios.
The Assert verifier provides functionalities to assess the validity of Asserts.
Essentially, this entails checking the temporal validity, the digital signature and
the trustworthiness of the Assert Issuer. For this purpose, it interacts with the
Trust Manager to obtain information about the trust and reliability of the Assert
Authorities.
The functionality provides are:
• Check the validity of the Assert based on predefined trust roots:
– The Assert contains various parameters that grants validity, some of
the standard parameters are: the signature of the Assert ISSUER, the
period of validity, trust of Assert Authority. Can also define other specific
parameters in the trust roots. This component is responsible for checking
all these faces and tell the system if one is valid Assert.
– Expected input: Assert
– Provided output: Information about the Assert validity (YES / NO, plus
the reason why in this latter case).
– Dependencies/interactions with other functionalities (provided by other
components): Trust Manager creates the trust relationships that are to be
checked by this component. Assert Issuing Tool creates the Asserts that
are to be verified.
• Check the validity of the Assert, given the Assert along with client-specified
trust roots:
D.6.1 - Architecture and High-level Design
73 / 87
Assert4Soa
– Component is equivalent to the above; check those parameters that guarantee
the validity of the certificate but the client side.
– Expected input: Assert, Client-specified trust roots.
– Provided output: Information about the Assert validity (YES / NO, plus
the reason why in this latter case).
– Dependencies/interactions with other functionalities (provided by other
components): Trust Manager creates the trust relationships that are to be
checked by this component. Assert Issuing Tool creates the Asserts that
are to be verified.
Another component of the framework that provides security functionalities is the
Server Entry Point, which provides Client Authentication functionality. The clients
of the framework are service consumers that request services that possess certain
security properties certified by Asserts. Depending on the scenario in which the
Assert4Soa framework is used, the authentication of clients can be an important
security requirement to be provided by this component.
Continuing with the analysis of the security-related components of the framework,
marked in yellow are the security-crucial components. While these components
do not offer security functionalities as such, guaranteeing their security is crucial for
the security of the whole framework.
The Assert4Soa Ontology (and thus the Ontology Manager tool and the Matchmaking
Subsystem) are indeed security-crucial components. The main security requirements
for these components are the trustworthiness of the Ontology contents and the
privacy of the information contained in the queries to the Ontology. The Ontology
Manager tool must therefore support the mechanisms that will ensure the secure
operation of the Assert4Soa Ontology. The complete details about the security
requirements for the Assert4Soa Ontology are contained in Deliverable D3.1 [7].
Another component in this category is the Assert Issuing tool. This component
allows issuers to create and manage Asserts. The most important requirement for
this tool is the ability to securely create (in particular, to sign) Asserts. The tool
must be capable of securely erasing the keys used for the signature each time these
are used in the computer memory, and ideally to use secure hardware devices (such
as smart cards) for creating the digital signatures.
Security-relevant components are marked in red in the figure. These are also
worth mentioning here because their operation is also subject to security considerations,
although a failure in their security is not likely to affect the whole framework
operation.
The first of these is the System Administration component, is responsible for
auditing the functioning of the framework and for reporting any anomalous or
incorrect operation of the framework. The security mechanisms must interact with
this tool to ensure the correct functioning of all processes. In particular, this
represents a limitation to the security mechanisms of the monitored components,
because they have to provide the information required by the monitoring components.
Finally, the components related to the discovery process (Query Handler,
Discovery Manager and Composition Manager) are at the heart of the whole Assert4Soa
framework. It is therefore essential to provide adequate security to these components.
As stated in D2.1, the main threat that the Assert4Soa framework faces is that
malicious users can force the selection of a service or a composition of these that is
D.6.1 - Architecture and High-level Design
74 / 87
Assert4Soa
not the best with regards to the needs of the client. This is indeed closely related
to the discovery process. When a client requests a service it sends a query to
the Assert4Soa framework, the framework has to provide a reply indicating the
services that are available and in particular, those that fulfil the security requirements
specified in the query. If the process is not correct or fair, the client might be
prevented to choose the service that best fitted its needs. Likewise, the process is
subject to other threats like those related to the privacy of the information contained
in queries, etc. The specific requirements for this components are described in
Deliverable D2.1 [6].
4.4
Realising a secure architecture: overview of approaches,
technologies, and standards
As introduced in Chapter 1, the approach followed in this architecture description
document is purposely technology-neutral and as a consequence we do not commit
here to any specific standard, language or technology. However, in order to provide
useful guidelines for the realisation of the Assert4Soa architecture, in this section
we briefly review the state of art of the existing approaches to securing service-based
systems, with special emphasis on the aspects that are more strictly related to the
security mechanisms that will be used in the Assert4Soa framework.
Access control and Client authentication
One of the most important topics is access control and authentication of clients. In
the background there are several proposals for (distributed) access control systems
targeting different application domains. One of the main design features of those
systems is splitting the server role into two: an application server and an authorization
server, to decouple access control logic from application logic and possibly distribute
the access control component. One of the earliest works was proposed by Woo and
Lam [40, 39]. Other access control proposals are Adage system [44] and Akenti [35].
The first offers centralized security administration and modular authorization and
the second is an authorization systems based on digital certificates. Akenti uses three
types of certificates: X.509 user identity certificates for authenticating users, usecondition certificates for specifying the conditions that must be met by a user to get
access to a resource, and attribute certificates, stored on trusted servers, attesting
that a user possesses specific attributes. A widely cited access control system is
PERMIS [13, 14]. PERMIS adopts X.509 certificate standard supporting identity
and attribute certificates. Architecturally, it consists of two main subsystems: the
privilege allocation and the privilege verification subsystem. Finally we highlight
trust negotiation base access control [36, 37]. This is a promising technique that
was proposed for authorization and access control in open environments where any
entity could be malicious. The sequence of credential exchange during a negotiation
process is controlled by negotiation strategies. One can define variety of negotiation
strategies and privacy settings [42, 29, 43, 32, 10] depending on credential sensitivity,
on familiarity with the remote opponent or domain, type of resources being accessed,
and so on. Recently, only few policy-driven trust negotiation approaches have been
successfully developed and deployed as authorization systems, such as TrustBuilder [23],
Protune [12], Trust-X [11], and iAccess [21]. The approach [23] employs trust
D.6.1 - Architecture and High-level Design
75 / 87
Assert4Soa
negotiation in Grid using existing negotiation mechanisms and protocols such as
those of TrustBuilder and Trust-X.
Certification infrastructures and standards
Another major topic for Assert4Soa framework is Certification Infrastructures. A
Public Key Infrastructure (PKI) [20] provides a framework for managing identity
information in a decentralized and open environment. At the core of PKI is the
notion of a pair of keys (a public and a private one). Each pair of keys belongs to a
unique individual and this individual keeps the private part of the key pair secret. A
key holder therefore has the unique capability of encrypting data using the private
part of a key pair. The public part of the key pair allows any third party to verify
that data have been encrypted with the corresponding private key. A public-key
certificate is a digitally signed document certifying that a particular individual owns
a certain public key. A public-key certificate has a special data structure and is
digitally signed by a third party called the Certificate Authority (CA). A public-key
certificate serves to bind a public key to an individual holding the corresponding
private key, and the correctness of the binding is guaranteed by the CA [18]. A
third party trusting the CA that issued the public key certificate can assume the
correctness of the identity information and can verify if an individual is the owner
of the corresponding private key.
Currently, only few PKI/PMI compliant implementations have reached a very
broad deployment states. The most widely used such standards today are X.509 [41],
SPKI [31] and SAML [28]. They all support expression of identity and of attribute/value
information. X.509 Public Key Certificate is the most widely used certification
standard on the Internet today, supported by all browsers. SPKI, on the other
hand, has gained mostly academic interest, and though implemented by several
commercial products, it is not as widely accepted as X.509.
SAML defines an XML framework for exchanging security information such
as authentication, attributes, or authorization between online partners. The core
SAML specification defines the structure and content of assertions that carry information
about the party to which the attribute refers (and called a principal in this context).
In addition to document representation, SAML specifies a protocol for requesting
and responding to requests about assertions. We take these technologies as a starting
point to create the structure of the Assert4Soa, although this is novel approach,
is compatible with current standards.
D.6.1 - Architecture and High-level Design
76 / 87
Assert4Soa
Chapter 5
Conclusion
In this document we presented a multi-view description of the high-level architecture
of the Assert4Soa framework. We concentrated on a small set of relevant aspects,
namely the functional view, the information view, and the security perspective.
We emphasised the high-level elements and mechanisms of the framework, while
purposely delaying detailed design and technical decisions until a later time. Those
decisions will be taken when an initial validation of the architecture will start as
part of the development phase; at that time, the architecture will also be evaluated
against concrete demonstration scenarios, whose identification is the objective of
Task 7.2, and which will provide more precise insights as to which technical choices
are optimal.
Even at this stage, however, there are some tentative technical directions that
are emerging as the natural choices for realizing the mechanisms described earlier
in the document. With regard to security, Section 4.4 in the previous chapter gave
a general overview of possible approaches, languages, and standards that could be
applied to securing the Assert4Soa framework.
In addition to that overview, in this chapter, we briefly discuss some additional
points related to technologies that match well the architectural style chosen for
Assert4Soa and which appear to be particularly well suited for being adopted in
the next developments of the architecture (Section 5.1).
Before concluding, Section 5.2 presents some of the possible alternative deployment
options for the architecture.
Finally, Section 5.3 outlines the next steps that will be taken in Work Package 6.
5.1
Component and communication technologies
The notions of component and connector are central in our architecture; in this
section we give examples of some technologies and solutions that can be adopted to
realise those architectural abstractions.
The OSGi Service Platform [3], whose specifications are maintained by the OSGi
Alliance [2], is a Java-based and service-oriented technology for deploying and managing
coarse-grained components. This technology provides the standardized primitives
allowing applications to be constructed from small, reusable and collaborative components
that can be dynamically installed, started, stopped, updated and uninstalled without
requiring a reboot.
D.6.1 - Architecture and High-level Design
77 / 87
Assert4Soa
All the components in the Assert4Soa framework could be packaged and deployed
as OSGi bundles. A bundle is a unit of modularization for the OSGi technology
(a tightly-coupled collection of classes, jars, and configuration files). The OSGI
bundles abstract away the internals of a function and communicate through well
defined services. This would go hand in hand with the event-based architecture
style that is adopted where functionality and communication is separated. Another
advantage is that OSGI bundles can be updated on the fly; this, not only would
support the dynamic nature of the framework, but would also enhance the security
of operation by allowing the framework to get the latest updates with security fixes
without having to restart, reinstall or reconfigure the whole system.
A natural choice for realising the concept of a connector (as described in Section 1.2),
is the adoption of an Enterprise Service Bus (ESB). An ESB provides a standardbased integration platform that combines messaging, web services, data transformation
and intelligent routing in a event-driven Service Oriented Architecture (SOA) [15].
The main capability of an ESB are:
• Integration capabilities: it acts as a lightweight integration broker connecting
heterogeneous systems using, among other issue, open standards;
• Data Transformation capabilities: it manages the interaction between services
across heterogeneous data structure and transport protocols; transformation
services ensure that messages and data received by any component is in the
format it expects;
• Endpoint discovery capabilities: it hosts services as a lightweight service container
supporting the discovery, localisation and binding of services, also considering
QoS properties enabling the client to select the best endpoint at run-time;
• Message Routing capabilities: it provides the virtual channels to route messages
to the recipients using content and complex routing mechanisms; the services
do not need to understand how messages are routed to other services, they
simply receive a message from the bus as an (asynchronous) event and process
this message; moreover the ESB permits to filter, aggregate and re-sequence
messages ensuring reliable messaging delivery;
• Security Capability: it provides security model (authentication, credential
management and access control) in order to guarantee security requirements
between the services and the ESB and even between the ESB nodes themselves.
• Management and Monitoring: it permits to monitor the capacity and performance
of the services by inspecting the activities that takes place via the bus.
An ESB can connect and coordinate services in a loosely-coupled and distributed
fashion. In particular, it facilitates the development of infrastructures that are
flexible, extensible and easily scalable; moreover, the separation of the business
logic from specific protocols and message formats ensures a faster and streamlined
development.
Given these characteristics, the ESB technology is well matched with the architectural
principle defined Section 1.2. In particular, this approach is consistent with the
objective to develop a flexible and extensible architecture in which the interaction
model between the components is realised through messaging-based connectors.
However there exist a gap between the implementation of a component as a provider
D.6.1 - Architecture and High-level Design
78 / 87
Assert4Soa
Figure 5.1: Component wrapper
of functionalities (those described in the component catalog), and the implementation
of a component that is also capable of communicating with the surrounding environment
through connectors (as opposed, e.g., through synchronous method invocation).
In order to fill this gap, and to provide a full separation between the communication
and computation aspects, we will provide Component Wrapper s, exposing a simple
but powerful communication API that the core component can use to talk to connectors
(see Figure 5.1). Component developers can use such wrappers to encapsulate
their “core” component into a bundle that is able to take full advantage of the
communication infrastructure of the Assert4Soa architecture.
When the component needs to communicate with some other component in
the framework, the component wrapper takes care of encapsulating the data as
a message, that it then sends to the appropriate connector. The wrapper also
listens to the messages coming from the connectors to which it is attached, and
receives incoming messages. Ultimately, the wrapper is responsible of marshalling
and unmarshalling messages from/to data types that are understood by the core
component implementation. This enhances the separation of concerns, distinguishing
between the design and operation of the messaging infrastructure from the payload
conceptual model (which will be based on the model of Chapter 3).
Finally, in addition to the communication API, the wrapper is effectively responsible
for packaging the core component implementation as an OSGI bundle. This gives
component developers the freedom to implement their components as they prefer
and yet seamlessly integrate them with the rest of the framework.
5.2
Deployment configurations
The overall organisation of the architecture, as exposed in Chapter 2, is somewhat
biased towards a specific assignment of components to the nodes of a typical clientserver deployment platform.
In this section we try to challenge and to extend this view, by providing an
initial discussion of possible deployment alternatives. A better evaluation of these
deployment choices will be possible when the architecture is confronted with the
more realistic application scenarios that will be elaborated in the course of the
project. In particular, not only the deployment configuration themselves will be
D.6.1 - Architecture and High-level Design
79 / 87
Assert4Soa
validated, but also their implications on the architectural qualities and non-functional
aspects will become clearer (especially, w.r.t. security and performance).
Client-server The basic deployment envisaged is that of a client-server (or “thin
client”) configuration. The consumer uses the client side component to store his
security and trust preferences and formulate a query to fetch services from the
Assert4Soa discovery engine. The client module in this scenario, does not have
any other additional functionality and hence is referred to as a “thin client”.
This deployment model assumes that the consumer trusts the Assert4Soa
service discovery system (on the server side) and the components involved in the
matchmaking process. To support this assumption the Assert4Soa framework aims
to address the security and privacy threats as explained in the previous chapter. The
integrity of the Assert4Soa framework is one of the core security requirements [8].
The confidentiality of the information provided by the consumer is also to be protected
and is again a core security requirement of the framework.
The Assert4Soa framework uses slave matchmakers to perform the matchmaking
of services and these slave matchmakers can be either internal to the framework or
provided by external providers as explained in section 2.4.
However, in a scenario where a consumer may not want to disclose her security
preferences to external matchmakers or cannot trust the external matchmakers to
perform the matchmaking, this deployment model may not be adequate.
Thick Client When the consumer does not want to disclose their security requirements
to external slave matchmakers or even to the Assert4Soa service discovery engine,
an alternate deployment model of a “thick client” can be adopted. In this model,
the client-side deployment includes components related to the matchmaking process.
The consumer could query the Assert4Soadiscovery engine for some generic constraints
on the services and perform additional matchmaking with additional (possibly,
confidential) security requirements, using the matchmaking system that is replicated
on the client side. Consumers may be allowed to plug dedicated, additional clientside proprietary matchmakers that perform the matchmaking in a customised way.
Client-side service discovery (single-domain deployment) The “Thick client” deployment
model is not suitable in the scenario where a consumer prefers to have the complete
service discovery system under control.
In order to cater to the requirements of such consumers, the “thick” client side
component can be further extended to deploy the full Assert4Soa framework on
one single node1 that is under the control of the consumer. This “degenerated”
deployment model may be required when particular restrictions apply to the trust
relationships between the consumer and the other actors of the system (e.g., the
provider of the Assert-enabled directory).
5.3
Conclusion and next steps
The goals of WP6 include the architecture definition and detailed design (Task 6.1),
the development of a prototype implementation of the Assert4Soa framework
1 Or
any number of nodes, provided the consumer has control over them.
D.6.1 - Architecture and High-level Design
80 / 87
FP7-ICT-2009-5
Grant agreement no: 257351
ASSERT4SOA
ICT-2009.1.4: Trustworthy ICT
Collaborative project (STREP)
In order to support developers of applications that use certified services to manage the ASSERT certificates.
The WP7 will also define an API and produce a library to parse and manage ASSERTs. Complementary, we
will provide example applications illustrating the
use of the library in different contexts.
Assert4Soa
Description of work and role of participant
We will embrace an Iterative and Incremental development as software development process. This
approach will enable to take advantage of what will be developed on other activities and to quickly provide
initial release of the software. At each iteration, design modifications and prioritisations will be made and
Figure 5.2: Scheduling of WP6 tasks and deliverables
new functional capabilities will be added. The duration of the life cycle analysis–design–implementation will
be initially based on 4 months starting at M12 with 2 major milestones at M24 and M36.
Detailed
Architectureof
(Leader:
SAP, M1-M24):
(Task
Task6.1:6.2
), andDesign
the and
integration
modules
developed in the context of the other
The
design
activity
will
mainly
provide
a
detailed
software
architecture to be used as a basis for the
technical work packages (Task 6.3).
development
in
Task
6.2.
This
architecture
will
explicit
the
technologies
will describe
existing
The scheduling of these tasks is visually illustrated used,
in Figure
5.3 the
(from
the
components that will be reused, and will provide an abstract representation of the critical software
“Description
of
Work”
[9]).
classes/functions. The initial focus will be the definition of APIs and protocol extensions. A particular
This will
deliverable
theof initial
resultsdesign
achieved
as part
of Task
(M1attention
be dedicatedpresented
to the security
the architectural
to address
our concerns
with6.1
respect
of
the potential
threats
theto
ASSERT4SOA
framework.
M24),
whose
goalto is
define the
architecture of the Assert4Soa framework and
to
produce
a design(Leader:
documentation
that is detailed enough as to guide the concrete
Task
6.2: Development
SAP, M13-M36):
realization
of awill
prototype
demonstrating
As results
the work
The work on task
start as soon
as a first release the
of theAssert4Soa
design documentconcept.
based on WP1
and
refined into
Task
6.1 task
will become
available.
It is through
foreseen that
the development
will start with
production
related
this
is only
halfway
(Task
6.1 will terminate
atthe
month
24),
of acontents
mockup, inoforder
verify the interfaces
and considered
the general architecture
of the
system. We
then
the
thistodocument
are to be
as an initial
attempt
to will
capture
produce a sequence of releases of the tool, which will progressively cover larger portions of the ASSERTs
the
high-level elements and mechanism of the Assert4Soa framework. While
lifecycle. The development effort will follow the principles of modern software engineering methodologies,
the
objective
ofthe
this
document
is from
to provide
useful
the development
taking into account
advantages
deriving
a development
cycleguidance
producing ato
continuous
sequence of
phase
is about
to use
start,
it is natural
to expect
that when
confronted
releases,that
supported
by the
of modern
configuration
management
and versioning
tools. with
The
development
activity
will
be
documented
and
the
partners
will
insure
that
coding
best
practices
will
be
used
the concrete issues that normally arise in software development, it will need to be
to minimizeand
the vulnerabilities
of the
ASSERT4SOA
framework.
updated
amended to
reflect
the more
accurate perception attained of both the
Task
6.3:
Integration
of
modules
(Leader:
Eng,
M19-M36):
problem domain and of the solution space.
TheThe
work WP6
on this roadmap
task will mainly
in providing
support
WP3,4 and 5Immediately
to implement the
abstract
for consist
the coming
year
is asto follows.
after
the
definition of mechanisms to match, compare and check ASSERTs and to achieve the integration of the
delivery
of
this
document,
Task
6.2
will
start.
As
part
of
this
task,
we
will
start
dedicated mechanisms in the generic framework.
validating the component organisation and interfaces described here; to this end,
a set of mock-ups will be developed. The technical realisation of these mock-ups
will be documented in a working document (WD.6.1) to be released at month 16.
Gradually these mock-ups will evolve into fully functional components, incorporating
functionality developed by the other technical work packages. Starting at month
18, the integration work will begin as Task 6.3. Deliverable D.6.4, containing the
guidelines
for plug-in development, will be released at month 21. Finally,
at month
17.05.2010
Page 50 of 124
24, Task 6.1 will conclude, the architecture design will be complete at that time, and
Deliverable D.6.2 will be released in the form of an initial prototype implementation
of the architecture. Development and integration will continue until the end of the
project.
D.6.1 - Architecture and High-level Design
81 / 87
Assert4Soa
Appendix A
References to the other work
packages and deliverables
In order to provide a clearer overview of the overall framework organization, this
appendix collects references to the key deliverables that have been (or will be)
produced in the other Work Packages. In particular, we link the most important
abstract architecture elements defined in this document with the deliverables that
specify the internal structure and operation of those elements, or that present the
conceptual or theoretical foundations on which those components are built1 . The
month of delivery of each deliverable is reported between parentheses.
Query Handler, Discovery Manager, Matchmaking subsystem These elements
are collectively referred to as the Discovery Engine, and are developed in
WP2. The internal organisation of the Discovery Engine and the A-Serdiquel
query language are described in D.2.1 (M12); an initial implementation of
the Discovery Engine, both as a stand-alone systems and as a (simplified)
integrated element of the overall architecture is part of D.2.3 and D.6.2 respectively
(M24). D.2.3 also includes refinements and improvements to the initial ASerdiquel specification. The Matchmaking subsystem includes the slave matchmakers,
each of which is developed in a different work package (see below).
Composition Manager The operation of this component and the underlying concepts
and algorithms are described in D.2.2 (M18) and were, to some extent, introduced
in D.5.1, Chapter 6 (M9).
Slave Matchmakers The approach and algorithms used internally to the Assert-E
matchmaker are described in D.4.1 (M12) and D.4.2 (M24). Concerning the
Assert-O matchmaker, the relevant deliverables are D.3.1 for the state of the art
on ontological reasoning and requirements (M12), D.3.2 (M18) which presents
the first version of the Assert ontology. From a more technical perspective,
the Assert-O matchmaker is part of D.6.2 (where an initial version of the
component is used for the first integration phase). The deliverables that
present the conceptual framework underlying the Assert-M matchmaker are
D.5.1 (M9), which introduced the SeMF formalism and Assert-M model, and
D.5.2 (M24). Simplified versions of the three types of matchmakers are part
1 It should be noted that at the time of this writing, not all the referenced deliverables are publicly
available.
D.6.1 - Architecture and High-level Design
82 / 87
Assert4Soa
of D.6.2 (M24), although they are mostly used as placeholders to validate the
communication mechanisms and data model.
Assert Verifier, Assert Issuing Tool Together with the Assert language, these
elements are realised in the context of WP1. The Assert Issuing Tool (later
renamed to Assert Management Tool to reflect the larger scope it targets) is
part of D.1.2, appendix B (M24). Also relevant to these components are all
the deliverables presenting the Assert Language (D.1.1, D.1.3, D.1.2).
Ontology Manager As for the Assert-O matchmaker, the relevant deliverables are
D.3.1 (M12) and D.3.2 (M18).
Other components, such as the Entry Point, the Registry Abstraction Layer and
the underlying registries, the technical communication infrastructure (CAPI), the
refinements of the Assert Data Model, as well as component technology adopted for
the realisation of the architecture are covered in D.6.4 (M21) and D.6.2 (M24).
D.6.1 - Architecture and High-level Design
83 / 87
Assert4Soa
Bibliography
[1] NetBeans project. http://www.netbeans.org/index.html.
[2] OSGi Alliance website. http://www.osgi.org/Main/HomePage.
[3] About the OSGi service platform. http://www.osgi.org/wiki/uploads/
Links/OSGiTechnicalWhitePaper.pdf, June 2007.
[4] Owl 2 web ontology language direct semantics. w3c recommendation. http:
//www.w3.org/TR/owl2-direct-semantics, October 2009.
[5] OWL 2 Web Ontology Language structural specification and functionalstyle syntax. w3c recommendation.
http://www.w3.org/TR/2009/
REC-owl2-syntax-20091027, October 2009.
[6] Assert4SoaConsortium. Deliverable 2.1 - Asserts Aware Service Query
Language and Discovery Engine.
[7] Assert4SoaConsortium. Deliverable 3.1 - Requirements for an ontology
supporting certificates interoperability.
[8] Assert4SoaConsortium. Deliverable 7.1 - Framework Requirements.
[9] Assert4SoaConsortium. Assert4Soa- Description of Work, 2010.
[10] Sabrina Baselice, Piero A. Bonatti, and Marco Faella. On interoperable trust
negotiation strategies. In Proceedings of IEEE International Workshop on
Policies for Distributed Systems and Networks (POLICY’07), pages 39–50.
IEEE Computer Society, June 2007.
[11] E. Bertino, E. Ferrari, and A. C. Squicciarini. Trust-X: A peer-to-peer
framework for trust establishment. IEEE Transactions on Knowledge and Data
Engineering, 16(7):827–842, 2004.
[12] Piero A. Bonatti and Daniel Olmedilla. Driving and monitoring provisional
trust negotiation with metapolicies. In Proceedings of the 6th IEEE Workshop
on Policies for Distributed Systems and Networks (POLICY-05), pages 14–23.
IEEE Computer Society, 2005.
[13] David W. Chadwick and Alexander Otenko. The PERMIS X.509 role-based
privilege management infrastructure. In Seventh ACM Symposium on Access
Control Models and Technologies, pages 135–140. ACM Press, 2002.
D.6.1 - Architecture and High-level Design
84 / 87
Assert4Soa
[14] David W Chadwick, Gansen Zhao, Sassa Otenko, Romain Laborde, Linying
Su, and Tuan Anh Nguyen. PERMIS: a modular authorization infrastructure.
Concurrency and Computation: Practice and Experience, 20(11):1341–1357,
August 2008.
[15] David A. Chappell. Enterprise Service Bus. O’Reilly Media, 2004.
[16] E. Clayberg and D. Rubel. Eclipse: Building Commercial-Quality Plug-ins.
Pearson Education, 2006.
[17] Paul Clements, David Garlan, Len Bass, Judith Stafford, Robert Nord, James
Ivers, and Reed Little. Documenting Software Architectures: Views and Beyond.
SEI Series in Software Engineering. Pearson Education, second edition, October
2010.
[18] N. Ferguson and B. Schneier. Practical Cryptography. Number ISBN 0-47122357-3. Wiley, 2003.
[19] IEEE Computer Society. Recommended practice for architectural description IEEE Std-1471-2000, October 2000.
[20] ITU-T. The directory: Authentication framework - 08/05, 2005. ITU-T
Recommendation X.509, available at http://www.itu.int/rec/T-REC-X.509200508-I.
[21] Hristo Koshutanski and Fabio Massacci.
Interactive access control for
autonomic systems: from theory to implementation. ACM Transactions on
Autonomous and Adaptive Systems (TAAS), 3(3), August 2008.
[22] P.B. Kruchten. The 4+1 view model of architecture. Software, IEEE, 12(6):42
–50, nov 1995.
[23] Adam J. Lee, M. Winslett, and Kenneth J. Perano. TrustBuilder2: A
reconfigurable framework for trust negotiation. In Proceedings of the 3rd IFIP
WG 11.11 International Conference on Trust Management. Springer, 2009.
[24] Object Management Group. UML superstructure specification v2.1.1. OMG
Document Number formal/07-02-05 [Online]. Available: http://www.omg.org/
cgi-bin/apps/doc?formal/07-02-05.pdf. [Accessed: Sep. 9, 2011], 2007.
[25] David Lorge Parnas. Software engineering or methods for the multi person construction of multi - version programs. In Clemens Hackl, editor,
Programming Methodology, volume 23 of Lecture Notes in Computer Science,
pages 225–235. Springer, 1974.
[26] Dewayne E. Perry and Alexander L. Wolf. Foundations for the study of software
architecture. SIGSOFT Softw. Eng. Notes, 17:40–52, October 1992.
[27] Nick Rozanski and Eóin Woods. Software Systems Architecture: Working With
Stakeholders Using Viewpoints and Perspectives. Addison-Wesley Professional,
2005.
[28] SAML.
Security
Assertion
http://saml.xml.org/saml-specifications.
D.6.1 - Architecture and High-level Design
Markup
Language
(SAML).
85 / 87
Assert4Soa
[29] K. Seamons, M. Winslett, and T. Yu. Limiting the disclosure of access control
policies during automated trust negotiation. In Proceedings of the Network and
Distributed System Security Symposium, April 2001.
[30] Dilip Soni, Robert L. Nord, and Christine Hofmeister. Software architecture
in industrial applications. In Proceedings of the 17th international conference
on Software engineering, ICSE ’95, pages 196–207, New York, NY, USA, 1995.
ACM.
[31] SPKI. SPKI certificate theory, 1999. IETF RFC 2693.
[32] A. Squicciarini, E. Bertino, Elena Ferrari, F. Paci, and B. Thuraisingham. PPtrust-X: A system for privacy preserving trust negotiations. ACM Transactions
on Information and System Security, 10(3):12, 2007.
[33] Harald Störrle. Semantics and verification of data flow in uml 2.0 activities.
Electronic Notes in Theoretical Computer Science, 127:35–52, 2005.
[34] R.N. Taylor, N. Medvidovic, K.M. Anderson, E.J. Whitehead Jr., J.E. Robbins,
K.A. Nies, P. Oreizy, and D.L. Dubrow. A component-and message-based
architectural style for gui software. Software Engineering, IEEE Transactions
on, 22(6):390–406, 1996.
[35] Mary Thompson, William Johnston, Srilekha Mudumbai, Gary Hoo, Keith
Jackson, and Abdelilah Essiari. Certificate-based access control for widely
distributed resources. In Proceedings of Eighth USENIX Security Symposium
(Security’99), pages 215–228, August 1999.
[36] W.H. Winsborough, K.E. Seamons, and V.E. Jones.
Automated trust
negotiation. In Proceedings of DARPA Information Survivability Conference
and Exposition (DISCEX), volume 1, pages 88–102. IEEE Press, 2000.
[37] Marianne Winslett. An introduction to trust negotiation. In First International
Conference on Trust Management (iTrust’03), volume 2692 of LNCS, pages
275–283. Springer, 2003.
[38] Prähofer H. Ms̈senbc̈k H. Wolfinger R., Dhungana D. A component plug-in
architecture for the .net platform. Lecture Notes in Computer Science, 4228,
2006. Proceedings of 7th Joint Modular Languages Conference, JMLC 2006
Oxford, UK, September 13-15.
[39] T. Y. C. Woo and S.S. Lam. Designing a distributed authorization service. In
Proceedings of Seventeenth Annual Joint Conference of the IEEE Computer and
Communications Societies. INFOCOM, volume 2, pages 419–429. IEEE Press,
1998.
[40] Thomas Y. C. Woo and Simon S. Lam. A framework for distributed
authorization. In Proceedings of the 1st ACM conference on Computer and
communications security, pages 112–118, 1993.
[41] X.509. The directory: Public-key and attribute certificate frameworks, 2005.
ITU-T Recommendation X.509:2005 | ISO/IEC 9594-8:2005.
D.6.1 - Architecture and High-level Design
86 / 87
Assert4Soa
[42] Ting Yu, Xiaosong Ma, and Marianne Winslett. Prunes: an efficient and
complete strategy for automated trust negotiation over the internet. In
Proceedings of the 7th ACM conference on Computer and communications
security (CCS ’00), pages 210–219. ACM, 2000.
[43] Ting Yu, Marianne Winslett, and Kent E. Seamons. Supporting structured
credentials and sensitive policies through interoperable strategies for automated
trust negotiation. ACM Transactions on Information and System Security
(TISSEC), 6(1):1–42, 2003.
[44] M.E. Zurko, R. Simon, and T. Sanfilippo.
A user-centered, modular
authorization service built on an RBAC foundation. In Proceedings of the IEEE
Symposium on Security and Privacy, pages 57–71. IEEE Press, 1999.
D.6.1 - Architecture and High-level Design
87 / 87