balancing is duplicate the HS, which is not as
flexible as the case of SOA.
4.4 Functional Complexity
In this subsection, we estimate the functional
complexity for each component at the design stage.
Basically, the functional complexity for a
component v depends on how many methods v has
to provide and use, in order to achieve all the
integrated services. This is a key factor for
implementing v. Specifically, for each node v in
FSIG, we count the number of the labels attached to
the incident edges of v.
Let FSIG=(N,L,E) be given. An edge
(WS
A
,m,WS
B
)∈E describes that WS
A
uses the method
m of WS
B
by definition. So, the function of m should
be implemented inside WS
B
. In this sense, we call m
internal function of WS
B
. On the other hand, from
the viewpoint of WS
A
, WS
A
has to call m which is
outside WS
A
. Hence, m is called external function of
WS
A
.
For each component v∈N in FSIG, we define the
functional complexity of v as the number of internal
and external functions of v. Strictly speaking, the
number of internal functions of v is defined as
inum(v) = |{m|∃v';(v',m,v)∈E}| . Also, the number of
external functions is defined as enum(v) =
|{m|∃v';(v,m,v')∈E}|. Then, the functional
complexity of v is defined by fcomp(v) = inum(v) +
enum(v).
For example, let us take Light_WS in Figure 3. Then,
inum(Light_WS) = |{1-1:Light.ON, 2-2:Light.ON,
3-7:Light.ON, 8-4:Light.OFF}| = 2
enum(Light_WS) = |{1-2:Illuminometer.ON, 1-3:
Illuminometer.getIllumination, 2-3: Illumino-
meter.ON, 2-4: Illuminometer.getIllumination, 3-8:
Illuminometer.ON, 3-9: Illuminometer.getIllumina-
tion, 8-5: Illuminometer.OFF, LightON, LightOFF,
LightBrightnessControl}| = 6
Table 2 shows the functional complexity for all the
components of our target HNS. It can be seen that
each WS in SOA requires a smaller number of
functions than HS in SCA. This implies that the
effort taken for the implementation of WS would be
smaller than that of SCA. Also for the SOA-based
HNS, it is also possible for the designer to make the
functional complexity well-balanced, by carefully
modifying the scenario design (i.e., changing the
topology of FSIG).
4.5 Coupling
The coupling measures the degree of dependence of
a component against other components. Although
the coupling between WS (in SOA) is basically
loose (see Section 2), it provides a reasonable
guideline for robust scenario designs. If a WS v is
used by (or uses) a lot of other components, failure
of v affects these components, which dramatically
decreases availability of the service scenarios.
Let FSIG=(N,L,E) be given. For each component
v∈N, we define coupling of v as the total number of
components that v uses or are used by v. Strictly
speaking, for v∈N, let use(v) = |{v'|∃m;(v,m,v')∈E}|
and used(v) = |{v'|∃m;(v',m,v)∈E}|. Then, coupling
of v is defined by coup(v) = use(v) + used(v).
For example, let us take TV_WS in Figure 3. Then,
use(TV_WS) =|{speaker_WS, TV}|=2
used(TV_WS) =|{a user, DVD_WS, telephone_WS}
|=3. Hence, coup(TV_WS) = 5.
The coupling for all the components of our target
HNS is shown in right-half of Table 2. It can be seen
in that the coupling of all WS (in SOA) is well-
balanced. We can also see that the components in
SCA are heavily dependent on the HS. This implies
that the crash of HS is fatal, which is as discussed in
Section 4.2.
5 DISCUSSION AND
CONCLUDING REMARKS
In this paper, we proposed an application of the
service-oriented architecture to HNS. We also
presented a graph-based method to evaluate the
architectural design of HNS. With a case study, we
evaluated the HNS design using the four kinds of
metrics and discussed the difference between SOA
and SCA, quantitatively.
Of course, there are other important factors that we
could not cover in this paper; such like performance,
security, and implementation issues, etc. Therefore,
we cannot say that the proposed SOA-based HNS is
absolutely superior to the conventional SCA-based
HNS. Instead, our contribution is to show the
applicability of SOA to the HNS through
quantitative evaluation.
Table 2: Complexity and Coupling
WS/HS inum(WS) enum(WS) use(WS) used(WS)
DVD_WS 2631
TV_WS 5723
Speaker_WS 4411
Light_WS 2623
Illumino_WS 3311
Door_WS 1431
Phone_WS 1221
AC_WS 2622
Thermo_WS3311
HS 82391
Complexity Coupling
ICETE 2004 - GLOBAL COMMUNICATION INFORMATION SYSTEMS AND SERVICES
68