<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Web Services Software Architecture</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Syahrul Fahmy</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Informatics, The University of Manchester</institution>
          ,
          <addr-line>PO Box 88, Manchester M60 1QD</addr-line>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
      </contrib-group>
      <fpage>13</fpage>
      <lpage>18</lpage>
      <abstract>
        <p>Web services have received widespread attention and acceptance in the software engineering community. Automatic composition of services, to meet user's requirements, is a powerful mechanism to ensure satisfaction of varied needs and thus enable the vision of Web services. Although Web services are equipped with the fundamental concepts and supporting technologies, the architectural style of the composite service composed from Web services is fixed by the prescriptions of the Service Oriented Architecture, and does not provide the level of flexibility stipulated by alternative service-based approaches such as the Service-Based Software vision. To enable the composition of Web services using alternative architectural styles, the author proposes that software architecture be included as a parameter in the composition process. This is enabled by the use of the Alfa framework to model the desired architectural style, and the use of this information to support service discovery.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>Web services are configurable software services that use open standards and
protocols to connect and integrate distributed components for creating and managing
computer applications. Web services have been becoming a major software trend because
they provide means for integrating data sources and data transfer between
applications. Web services share business logic, data and processes through a programmatic
interface across a network. In order for web services to be operational,
interoperability of applications over intra/internet is necessary. This interoperability requires a
technology that is independent of hardware, operating system, and software specific
technologies. As such, specific standards are used to address these interoperability
issues that consist of XML to define structured data, SOAP as a messaging protocol,
WSDL to define interfaces, and UDDI as a registry to publish available services.</p>
      <p>There are two approaches an organization can adopt to take advantage of Web
services namely the Service Oriented Architecture (SOA) and the Service-Based
Software (SBS) approaches. In the SOA approach, a fixed architecture is presumed for
service composition. Little flexibility, if any, is available to the service provider in
determining how the service should be composed. The author argues that the service
provider should be given more flexibility and ‘authority’ in service composition. In
the SBS approach, the service provider is given this flexibility by means of a flexible
composition strategy of individual service provider, i.e. the Know-How capability
(Fig. 1).</p>
      <p>SERVICE
PROVIDER
Atomic Service
Sub-Contractor
Sub-Contractor
USER
specify needs
propose contract
negotiate</p>
      <p>select
accept contract
provide service</p>
      <p>SERVICE
Know-How</p>
      <p>This capability would enable service providers to choose the most appropriate
service composition method (compose then offer services vs. offer then compose at
execution). Therefore, the architecture for the software from individual services can
be chosen prior to composition. To attain this capability, the software architecture
style of services should be identified and determined, for example pipes and filters,
prior to service composition.</p>
      <p>
        In this paper the author proposes the use of the Alfa framework [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] to model the
software architecture styles of services and to support the discovery of suitable
services. Section 2 will present some background information on the SBS approach.
Section 3 will present service architecture modeling using the Alfa framework.
Section 4 will outline the expected results and contribution of this research. Finally,
conclusion and future work will be presented in Section 5.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>This section will discuss some background information on Service Oriented
Architecture, Service-Based Software, Software Architecture and the Alfa framework.</p>
      <sec id="sec-2-1">
        <title>2.1 Software Oriented Architecture</title>
        <p>Service Oriented Architecture (SOA) provides means to find, integrate, and use
services that are available inside and outside the organization through the network/
Internet. SOA underlines three important issues for implementing Web services:
interoperability, development and delivery. SOA identifies interoperability issues across
open and proprietary platforms. This would allow organizations to benefit from a
flexible IT architecture built on established standards without limiting the flexibility
of business units to implement technologies that provide the capabilities they need.
SOA also concerns the programming and development approach of services. Web
services represent a programming approach that takes advantage of available objects
and content that would enable faster development cycles and lower costs due to
component reuse. In addition to that, SOA also deals with the openness and flexibility of
service delivery where organizations can provide access to any type of information
such as inventory transactions and financial data in a reusable and open fashion.</p>
        <p>However, SOA limits the flexibility of the service provider to choose the method
for service composition. Services are composed from a predefined and rigid
architecture where sometimes the user’s requirements could not be fulfilled completely.</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2 Service-Based Software</title>
        <p>
          The Service-Based Software (SBS) is based on the Software as a Service (SaaS)
project, carried out by the Pennine group involving academicians from three UK
universities. SBS is a new paradigm proposed by the group for software engineering,
a service-based approach to structuring, developing and deploying software. SBS
comprises of a number of small software components that meet user requirements.
When a component needs to be updated or replaced; it is disengaged; suitable
replacement is searched and acquired from the marketplace; integrated; and executed.
SBS are acquired and paid for on demand, as and when needed. Research efforts in
SaaS have been working on the principles and practicality of SBS. An architecture for
SBS has been proposed and the feasibility of the concept and primitives of the SBS
architecture has been demonstrated [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]. The basics of SBS have also been
demonstrated using prototypes to perform service negotiation, composition, discovery,
mediation and binding [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. Studies in SBS also include the supplier-customer
relationships [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], the negotiation process [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. A ‘Negotiation Description Language’ has also
been proposed for SBS [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>SBS is a better approach for Web services compared to SOA as it gives the
flexibility of identifying and determining the method for services composition.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3 Software Architecture</title>
        <p>
          Software Architecture is generally referred to as the ‘blueprint’ of a software system
that describes its coarse-grain components. Software architecture is often defined in
terms of patterns of structural organization or Software Architecture Style (SAS) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
Each style has a vocabulary of components and a set of constraints on how they can
be combined. SAS provides a collection of proven solutions to recurring design
problems and demonstrates a method for integrating individual style into heterogeneous
structures. SAS have been used informally and explicitly, and more than one style can
be used. Examples of SAS include Pipes and Filters and Implicit Invocation. In
addition to the styles in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], there are also other styles found in literature for example
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ],[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ],[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ],[
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] and [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ].
        </p>
        <p>Clearly, there is wealth of software architecture styles that can be used in the
service composition. However, these components need to be fine-grained and formalized
before it can be used in the composition process.</p>
      </sec>
      <sec id="sec-2-4">
        <title>Alfa</title>
        <p>
          Alfa is an assembly language for software architecture and supports the modeling of
data, processing, and connecting elements of an architecture [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. However, Alfa
goes beyond architectural description as it is based on a small set of architectural
primitives with precise dynamic semantics. Alfa also supports comprehensive style
conformance analysis and architectural composition using domain-independent
primitives. Alfa’s characterization of styles for composing architecture is adopted from the
characterization of distributed styles using five dimensions: Data, Structure,
Interaction, Behavior and Topology [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. There are seventeen styles that have been
characterized in Alfa including Client-Server and Layered systems.
        </p>
        <p>
          Alfa’s primitives have been shown to be expressive enough to model any
interactions involving a regular expression of input/output events on point-to-point channels
[
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. As such, Alfa can be used to represent the software architecture style for the
service composition process.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3 Service Architecture Modeling Using Alfa</title>
      <p>This section will present the idea of service architecture modeling using Alfa. The
architecture of Web services can be modeled using one or more software architecture
styles. For example, based on a set of user’s requirements, the service provider
decides that the best way to fulfill the requirements is by using Event-Based Integration
(EBI) software architecture style.</p>
      <p>Generally, EBI refers to a system where the components can announce or
broadcast one or more events. Other components in the system can register an interest in
any event by associating a procedure with it. When the event is announced, the
system invokes all of the procedures that have registered for the event. As such, the
system would have at least 3 components namely the Publisher, Subscriber and
Distributor that announces, registers for, and manages the registration of events,
respectively (please refer to Fig. 2).</p>
      <p>Using Alfa’s characterization of styles and primitives, this architecture is
formalized and fine-grained to computational elements in the system. These would lead to
the identification and determination of the data type; structure of the system and its
components; topology of the system; interactions and behavior between the
components. Using topology as an example, we could determine that the Publisher’s publish
interface is connected to the Distributor’s accept interface; the Subscriber’s
subscription interface is connected to the Distributor’s subscription interface; and the
Distributor’s distribute interface is connected to the Subscriber’s consume interface.</p>
      <p>Alfa’s primitives provide information on the computational elements in the
components and system. For example, RELAY is a connector that contains multiple
INPUT and OUTPUT portals, and enables multi-point interaction. Each portal is
housed in a separate INTERFACE. Data items from each INPUT portal are
forwarded to every OUTPUT portal of the RELAY. DATUMs allowed at all the portals
of a RELAY are identical (words in capital are Alfa’s primitives).</p>
      <p>Distributor</p>
      <p>Send
Send</p>
      <p>Handle
Receive</p>
      <p>Selector</p>
      <p>Send
Birelay</p>
      <p>Handle</p>
      <p>Receive
subscription</p>
      <p>Send</p>
      <p>Send distribute
Handle consume
Subscriber
Publisher
publish
Send</p>
      <p>Event
accept
Receive</p>
      <p>Receive</p>
      <p>Relay</p>
      <p>Send
subscription Receive</p>
      <p>Subscription</p>
      <p>This information is also used for service discovery to fulfill specific requirements
regarding the architecture of the service. Examples would be specific type of
DATUMs, behavior of a specific PARTICLE, means of interaction either DUCT,
RELAY or BIRELAY.</p>
      <p>This section has presented an approach of using Alfa to model software
architecture for the service composition process. For this approach to be implemented,
software architecture and Alfa’s primitives need to be included in the search criteria of
Web services and the composition process.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Expected Results and Contribution</title>
      <p>This research is still in an early stage where it proposes a more flexible approach to
the composition of Web services by including the aspect of software architecture. In
order accomplish this, at least two issues need to be addressed, a vocabulary of terms
that will be used and the description of available services, both taking into account
the software architecture aspects in the service composition process. Ontology of
service architecture should be developed to ensure uniformity of terms used. Not only
does this cover software architecture styles, but also the components in a specific
style. Method for describing available services needs to be identified and developed
in order for the services to be advertised and discovered. It is anticipated that the Web
Ontology Language (OWL) and Web Services Description Language (WSDL) could
be used for these purposes with the probability of extending WSDL to accommodate
Alfa’s primitives. A prototype would be developed at a later stage to demonstrate the
feasibility of the whole SBS approach for Web services composition.</p>
    </sec>
    <sec id="sec-5">
      <title>5 Conclusion and Further Work</title>
      <p>This paper has outlined the SBS approach for Web services composition. The concept
and use of software architecture and Alfa in for modeling and composing Web
services were presented. Work in the near future will be investigating the use of OWL
and WSDL in this research as discussed in the previous section.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Nenad</given-names>
            <surname>Medvidovic</surname>
          </string-name>
          ,
          <string-name>
            <surname>Nikunj R. Mehta</surname>
          </string-name>
          , and
          <string-name>
            <surname>Marija</surname>
          </string-name>
          Mikic-Rakic.
          <article-title>(</article-title>
          <year>2002</year>
          ).
          <article-title>A family of software architecture implementation frameworks</article-title>
          .
          <source>In Proceedings of the 3rd IFIP Working International Conference on Software Architectures</source>
          , Montreal, Canada.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bennett</surname>
            ,
            <given-names>K. H.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Munro</surname>
          </string-name>
          , et al. (
          <year>2001</year>
          ).
          <article-title>An Architectural Model for Service-Based Software with Ultra Rapid Evolution</article-title>
          .
          <source>Proceedings of the 2001 International Conference on Software Maintenance (ICSM</source>
          <year>2001</year>
          ), Florence, Italy, IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bennett</surname>
            ,
            <given-names>K. H.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Munro</surname>
          </string-name>
          , et al. (
          <year>2002</year>
          ).
          <article-title>Prototype Implementations of an Architectural Model for Service-Based Flexible Software</article-title>
          .
          <source>Proceedings of the 35th Hawaii International Conference on System Sciences (HICSS-35</source>
          <year>2002</year>
          ), Big Island,
          <string-name>
            <surname>HI</surname>
          </string-name>
          , IEEE Computer Society.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Brereton</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>"</article-title>
          <source>The Software Customer/Supplier Relationship." Communications of the ACM</source>
          <volume>47</volume>
          (
          <issue>2</issue>
          ):
          <fpage>77</fpage>
          -
          <lpage>81</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Elfatatry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2002</year>
          ).
          <article-title>Service-Oriented Software: A Negotiation Perspective</article-title>
          .
          <source>PhD Thesis</source>
          , UMIST.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Elfatatry</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>P. J. Layzell</surname>
          </string-name>
          (
          <year>2004</year>
          ).
          <article-title>"Negotiating in Service Oriented Environments."</article-title>
          <source>Communications of the ACM August</source>
          <volume>47</volume>
          (
          <issue>8</issue>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Shaw</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          &amp;
          <string-name>
            <surname>D. Garlan</surname>
          </string-name>
          (
          <year>1996</year>
          ).
          <source>Software Architecture: Perspectives on an Emerging Discipline. New Jersey</source>
          , Prentice Hall.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Andrews</surname>
            ,
            <given-names>G. R.</given-names>
          </string-name>
          (
          <year>1991</year>
          ).
          <article-title>"Paradigms for Process Interaction in Distributed Programs</article-title>
          .
          <source>" ACM Computing Surveys</source>
          <volume>23</volume>
          (
          <issue>1</issue>
          ):
          <fpage>49</fpage>
          -
          <lpage>90</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Berson</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>1992</year>
          ). Client/ Server Architecture,
          <string-name>
            <surname>Mc-Graw Hill</surname>
          </string-name>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Mettala</surname>
          </string-name>
          , E. and
          <string-name>
            <surname>M. H. Graham</surname>
          </string-name>
          (
          <year>1992</year>
          ).
          <article-title>The Domain-Specific Software Architecture Program</article-title>
          .
          <source>Technical Report CMU/SEI-92-SR-9</source>
          , Carnegie Mellon Software Engineering Institute.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Tracz</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          (
          <year>1994</year>
          ).
          <article-title>Collected Overview Reports from the DSSA Project</article-title>
          . Owego, Loral Federal Systems.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          (
          <year>1987</year>
          ).
          <article-title>"Statecharts: A Visual Formalism for Complex Systems."</article-title>
          <source>Science of Computer Programming</source>
          <volume>8</volume>
          :
          <fpage>231</fpage>
          -
          <lpage>274</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Nikunj R. Mehta</surname>
          </string-name>
          , Nenad Medvidovic. (
          <year>2003</year>
          ).
          <article-title>Composing Architectural Styles from Architectural Primitives</article-title>
          . ESEC / SIGSOFT FSE.
          <volume>347</volume>
          -
          <fpage>350</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Fielding</surname>
            ,
            <given-names>R.T.</given-names>
          </string-name>
          (
          <year>2000</year>
          ).
          <article-title>Architectural Styles and the Design of Network-based Software Architectures</article-title>
          .
          <source>Ph.D. thesis</source>
          . University Of California, Irvine.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>