<!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>Transformation from Requirements to Design for Service Oriented Information Systems1</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Lina Ceponiene</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lina Nemuraite</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Kaunas University of Technology</institution>
          ,
          <addr-line>Studentu 50-308, LT 51368 Kaunas</addr-line>
          ,
          <country country="LT">Lithuania</country>
        </aff>
      </contrib-group>
      <fpage>164</fpage>
      <lpage>177</lpage>
      <abstract>
        <p>Service-Oriented Architecture (SOA) and Web services are becoming the universally accepted architectural style for development of modern information systems of enterprises. But the methods of design in SOA are not well established yet. The most of current methodologies are focused on composition of business processes from services. In this work, SOA based design is considered as design of information system where modelling of services and processes composed of services is related to modelling of entities comprising service execution context. It is demonstrated, that various forms of UML 2.0 interactions and state machines fit well for representation of SOA related concepts - services, protocols, choreography, orchestrations, and transactions. The proposed design method consists of two steps - making comprehensive specification of requirements and transforming it to design using State Coordinator pattern that enables loose coupling of stateless services into system operating on the base of information about states of entities.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Service-Oriented Architecture (SOA) and Web services [
        <xref ref-type="bibr" rid="ref22 ref27">22, 27</xref>
        ] are becoming the
universally accepted architectural style for development of information systems of
enterprises. As foremost Web services have arisen as technological challenge in late
1999, methods of design of service-oriented systems are not well established up till
now. Existing modelling approaches such as Object-Oriented Analysis and Design
(OOAD), Software Component Based Design (CBD), Enterprise Architecture (EA)
frameworks, and Business Process Modelling (BPM) have provided high-quality
practices for development of enterprise information systems. But for development of
service oriented systems, as stated in [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ], more advanced techniques are required.
      </p>
      <p>
        What are features of service orientation that do not fit to familiar methodologies?
A service is an operation offered as an interface that stands alone in the model,
without encapsulating state, as entities and value objects [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Though concepts of
services have arisen from technical frameworks, in service-oriented design definition of
service must be originated from business domain, not from technology. Unlike
enti1 The work is supported by Lithuanian State Science and Studies Foundation according to
Eureka programme project “IT-Europe” (Reg. No 3473)
ties, service is described in terms of what it can do for a client; it has interface,
specifying set of operations, and makes contract with its client, so defining responsibilities
to fulfil this interface.
      </p>
      <p>
        The exclusive feature of service-oriented design is the separation between
behavioural objects, i.e. services, and persistent entities (information objects), in contrast
with object oriented design. A good service design has three characteristics [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]: its
operations correspond to domain concepts that are not the natural parts of entities or
value objects; the interface is defined in terms of other elements of the domain model;
the operations are stateless. Statelessness of service means that it is independent of
context, and any client can use any instance of a particular service without regard to
the history of this instance. The execution of a service uses external information, and
may change that information. But the service does not hold the state of its own that
affects its own behaviour, unlikely the most domain objects.
      </p>
      <p>
        In reality, the use of services is dependent on rules of business processes in hand.
These rules are often expressed in terms of states of information entities comprising
service execution context. In this work, design of information systems embracing
services of business domain is considered, and the State Coordinator pattern is
proposed for loose connection of stateless services into system that operates on the base
of information about persisted states of entities. SOA based design is considered as
design of information system where modelling of services and processes composed of
services is related with modelling of entities comprising context. This differs from
majority of proposed techniques, where emphasis is made on modelling of business
processes but information modelling is limited to definition of types of messages and
variables [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], textual notes [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], or not considered at all.
      </p>
      <p>
        The proposed design method consists of two steps – making comprehensive
specification of requirements (Design Independent Model (DIM) [
        <xref ref-type="bibr" rid="ref10 ref11">10, 11</xref>
        ]), and
transforming requirements to design – Platform Independent Model (PIM) in MDA
terminology [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. It is demonstrated, that various forms of UML 2.0 [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ] interactions and
state machines fit well for representation of SOA related concepts – services,
protocols, choreography, orchestration, and transactions. Secondly, it is shown that DIM
specification (using OCL [
        <xref ref-type="bibr" rid="ref26 ref28">26, 28</xref>
        ] and principles of contract-based design [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ])
makes it possible to formalize transformation from requirements to design.
      </p>
      <p>The paper is structured as follows: in Section 2 service concepts and related work
is characterized. In Section 3 the principles of requirements specification for
serviceoriented design are presented and illustrated with the example. In Section 4 service
design pattern is proposed. In Section 5 transformation from requirements to design is
described. Finally, Section 6 makes conclusion and reasoning about future work.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Service Concepts and Related Work</title>
      <p>
        Related approaches for modelling in SOA are associated with Business Process
Modelling Languages BPML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], BPMN [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], BPEL [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], WSCI [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], WS-CDL [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ];
standards for Business Transactions [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], Unified Modelling Methodology (UMM) [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ]
and ebXML [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]; the most popular implementation language is BPEL, or BPEL4WS;
relationships of these languages to Web Services Description Language (WSDL) [
        <xref ref-type="bibr" rid="ref29">29</xref>
        ]
as well as generation of WSDL specifications from designs of services are well
established.
      </p>
      <p>
        Design of services deals with three levels of abstraction: operations, services
(groupings of operations) and business processes. Operations represent atomic
business transactions (logical units of work). Execution of an operation usually causes
one or more persistent data records to be read, written, or modified, and additional
operations may be invoked. Service corresponds to class concept. For design of
operations of the service, object (e. a. [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]) or component-oriented (e. a. [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]) methods
are suitable, with the particularity, that services are pure behavioural concepts.
      </p>
      <p>
        Business processes represent long running flows of actions and activities
performed in order to respond to business events, and to achieve business goals.
Business processes require multiple invocations of business internal services and services
rendered by external business systems. The rules of sequencing of message exchange
patterns of business-to-business collaborations across business process are termed as
process choreography. Besides choreography concept that is used for definition of
business-to-business processes, the concept of orchestration is essential for modelling
of internal business processes serving for execution of interactions that particular
process can manage. Concepts of choreography, orchestration and multiparty
business transactions are extensively used in Web services literature; the intelligible
clarification of terms may be found at EBPML Web site (e.g. [
        <xref ref-type="bibr" rid="ref13 ref22">13, 22</xref>
        ]).
      </p>
      <p>
        The goal of service-oriented design is systematic construction of operations,
services, and organised sets of services. Many works are devoted to development of
business processes, composed of services; composition rules and phases [
        <xref ref-type="bibr" rid="ref30">30</xref>
        ];
emerging W3 Consortium and OASIS standards are concerned with choreography,
orchestration, transaction, context and coordination frameworks. In current business process
modelling languages, devoted for composition of services, design of business
processes is not integrated with design of services themselves. Similarly, object-oriented
and component-based methods, suitable for design of operations and services, are
lacking of service composition potential. In UMM, design of services is linked with
design of global business processes (choreographies), but orchestration is not
considered and services are not integrated with entities of domain model; so this
methodology is also insufficient for end-to-end development of service systems.
      </p>
      <p>In this work, system of services is constructed, rather than single business process,
and development process is considered going from requirements to code.
Specification of choreographies and orchestrations of business processes is based on UML 2.0
interactions and, specifically, interaction overview diagram that represents fruitful
combination of activity and sequence diagrams whereas established methods are
based on activity diagram-like representations or using activity and sequence
diagrams alternately.</p>
      <p>
        For execution of services, transition systems semantics and state machines
mechanisms are universally accepted (e.g. [
        <xref ref-type="bibr" rid="ref4 ref5 ref7">5, 7, 4</xref>
        ]), where states usually represent
persistent states observable in business domain. In our work, both persistent states and
behavioural states (performing actions or waiting for events) are taken into account,
and state machines of services are interrelated with state machines of entities. During
execution, system operates as composite state machine, where transitions are fired by
external events (received messages about requests of services) and restricted by
persisted states of entities. Transition rules coincident with service usage contracts are
separated from services; they may be implemented using rule checking operations or
stored in rule base, so design may be flexible to possible changes in business domain.
      </p>
      <p>
        The proposed transformation is based on State Coordinator pattern that is
somewhat similar to combination of classical Façade and State patterns [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. State
Coordinator serves as front end for receiving service request messages (as Facade), and
makes choice of operation for execution subject to context (as State). Additionally, it
takes into consideration interactions between services. For SOA design, many of
classical patterns are reused [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ], and service-specific patterns are proposed [
        <xref ref-type="bibr" rid="ref23 ref25 ref5">5, 23,
25</xref>
        ], but service composition mostly is based on Business Process Modelling
Languages. State Coordinator may be a simple variation of Business Process execution
engine that may be used for customary development as much as for model driven
design.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 Requirements definition</title>
      <p>In this section, principles of specification of requirements relevant for intended goals
to formalize service-oriented design are presented. Detailed model of requirements
must define overall state and behaviour of intended information system independently
of future design. Requirements definition consists of two phases: initial requirements
and system requirements.</p>
      <p>Initial requirements are described informally using Use Case diagrams and Use
Case templates that are filled using terms from domain model. Every step of use case
is described as user interaction with the system using pre and post conditions. To be
precise, domain and use case model are constructed simultaneously: during use case
analysis every time when new object types are discovered domain model is updated.</p>
      <p>
        In second phase, initial requirements are further evolved. Every use case is
transformed into interface between the user and the system, capturing interactions between
(possibly external) interfaces, and every use case step is transformed to operation; use
cases are detailed using sequence diagrams, where operations are specified in OCL.
Initial use case diagram and DIM of illustrative Publication Agency are presented in
Figure 1; sequence diagrams representing interactions between user and system
during execution of single use case (Submit) is presented in Figure 2, together with
specification of operation. Two kinds of sequence diagrams are used for use cases:
interaction between two participants (Business interaction protocol that may be
represented by protocol state machine) and namely interaction protocol that may be
represented by interaction (Business transaction) state machine. Protocol state machines
are introduced in UML 2.0, but interaction state machines are not considered.
Sometimes they may coincide with port state machines [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] but in general port may be
designed for collection of interactions.
      </p>
      <p>The interactions and patterns of interactions between participants of business
process represent choreographies of this process executed using services; the process of
internal coordination of all interactions performed in the system of individual
participant makes the orchestration. State Coordinator pattern proposed in this paper may be
considered as a kind of orchestration engine.</p>
      <p>Author</p>
      <p>Register
Submit
Revise
Review
Approve</p>
      <p>Reviewer</p>
      <p>Committee
Sequence diagrams like Figure 2a, representing client viewpoint, are not sufficient for
comprehensive specification of requirements, because realization of use case may
require usage of other services supported by the intended system, or other business
systems. Both offered and required interfaces are captured in interaction sequence
diagrams like Figure 2b. In Figure 3, interaction fragments represent choreography of
global business process “Submission” (for illustrative purpose, suppose that Isubmit,
IRevise and IReview are interfaces of different business systems, and “Revise” is
automatic service).
:
: Author ISubmit</p>
      <p>submit()
accept_submit( )</p>
      <p>: :
ISubmit IRevise</p>
      <p>revise()
: :
IRevise IReview</p>
      <p>appoint()
[Publication.Reviewer&gt;=MinCritiques]</p>
      <p>:
IReview</p>
      <p>:</p>
      <p>Reviewer
checkAppointments( )
resp_checkAppointments( )
b
For reconciliation of DIM, all interactions are transformed to state machines where
states of the system are represented by states of interfaces and entities of domain
model (Fig. 4); composite state machines render compound business transactions.</p>
      <p>WaitState</p>
      <p>ISubmitStateMachine IReviewStateMachine
[ not(Author.oclInState(Registered)) ] WaitState
submit()[ Author.oclInState(Registered) ] ^Author.accept_submit()</p>
      <p>Committee.revise()[ Publication.oclInState(Submitted) ] Reviewer.review()
SubmitState Include/IRevise Committee.resp_review()</p>
      <p>StateMachine ReviewState
Author.resp_submit()</p>
      <p>ISubmit.resp_revise()</p>
      <p>Committee.appoint()[ publication.Reviewer-&gt;size&lt;=MinCritiques ]
Committee.appoint( publication ) RevieweCr.roemvimewitt(e)[en.aopt(ppruobvelic[aPtuiobnli.cAauttiohno.rCInrfioti-q&gt;ueex-i&gt;sstsiz(ae|&gt;a==MRienvCieriwtiqeurIensfo])) ]
WaitState</p>
      <p>AppointState</p>
      <p>ApproveState
IReviseStateMachine</p>
      <p>Include/IReview</p>
      <p>StateMachine</p>
      <p>ISubmit.resp_revise()
tion scenarios are consolidated and converted to class diagram like the one in Figure
1 (detailed specification is not presented due to limits of space).</p>
    </sec>
    <sec id="sec-4">
      <title>4 State Coordinator pattern</title>
      <p>Transformation from design independent model to design (PIM) consists of several
steps and may be done in several ways. Mapping interfaces to services results in
coarse design, and mapping operation constraints to methods is in responsibility of
detailed design. Here we are considering architectural design, during which elements
of specification are allocated to realizing architectural elements. For service-oriented
design, the State Coordinator pattern is proposed (Fig. 5). The Coordinator handles
incoming messages that may be of two types: requests for some service operation and
response from the service about operation execution results. In Figure 5,
Coordinator’s reaction to received messages is presented graphically using sequence diagram
and specified in OCL as post-conditions of Coordinator’s operations.</p>
      <p>Checker
checkPre()
checkPost()</p>
      <p>Coordinator
request()
response()</p>
      <p>Actor
response()
exception()
accept()</p>
      <p>Constraint
Entity</p>
      <p>Service
operation()
ConcreteService
: Actor
: Coordinator
: Checker</p>
      <p>: Service
request(MessageEntity)</p>
      <p>checkPre(Operation):Boolean
operation(MessageEntity) [checkPre.result=true]</p>
      <p>response(MessageEntity)
checkPost(Operation):Set(Message)
response(MessageEntity)
Context Coordinator::request(m:Message)
post:
let pr:oclMessage=Checker^checkPre(m.Operation) in pr.hasReturned()
and if pr.result()=true then m.Operation.Service^m.Operation(m)
else Actor^exception(m.Operation.ExceptionMessage) endif
Context Coordinator::response(m:Message)
post:
let ps:oclMessage=Checker^checkPost(m.Operation) in ps.hasReturned()
and ps.result()Æ forAll(msg|let op: Operation = msg.Operation in
if msg.receiver.oclisKindOf(Interface) then
let pr:oclMessage=Checker^checkPre(op) in pr.hasReturned() and
if pr.result()=true then op.Service^op(op.RequestMessage)
else Actor^exception(op.ExceptionMessage) endif endif
if msg.receiver.oclIsKindOf(Actor) then
if op.clIsKindOf(Acceptance)
then Actor^acceptance(op.Request.AcceptanceMessage)
else Actor^response(op.Request.ResponseMessage)
endif
On received request, State Coordinator handles message, unfolds the name of
requested operation and calls checker to check precondition of that operation.
Preconditions and post conditions are specified in Constraint base using attributes and
relationships of entities from domain model. If Checker returns “false”, the rejection
message is sent. If Checker returns “true”, Coordinator calls operation and service
returns response about delivery or acceptance of service. Before sending response to
requestor, Coordinator asks Checker to check message expressions specified in post
conditions and possibly returns the set of messages that must be sent to internal or
external services to fulfil the request. It may be zero, one or more messages that must
be sent sequentially, in parallel or broadcast. If there are no messages to send,
Coordinator resends response to the requestor (as shown in Fig.5). Otherwise, it sends
messages to internal or external services as specified in message expressions, and
treats received responses in the same way as before.</p>
      <p>Message expressions mostly denote sending of message to successive interface,
but they may express sequence of messages, messages sent in parallel to different
targets (messages joined with “and”) or even multicast message flow with dynamic
targets. Indeed, every kind of these interactions may be described in OCL. If
responses must be received during operation execution it means that there is composite
operation, and every received message presents different operation described with pre
and post conditions. In other words, every request, acceptance or response is treated
as separate operation what significantly streamline reasoning. Using message
expressions in post conditions, services may be composed to the system in the recursive way
as services secondarily called may have calls to other services, and so on. The
implementation of Checker and Constraint may vary from direct checking operations to
complex rule checking engines and repositories.</p>
      <p>
        The purpose of Coordinator is the same as of other design patterns [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]: to
“normalise” behaviour, discovering recurring activities and concentrating them in separate
classes thus making the cohesive units of behaviour. In compound Web services
environment, such recurring behaviour is receiving/sending of messages, checking
context and selecting services for execution. State Coordinator pattern was
constructed on the base of Facade and State patterns, as it was no suitable Web Service
pattern for this purpose [
        <xref ref-type="bibr" rid="ref23 ref25 ref5">5, 23, 25</xref>
        ]. It is obvious, that for practical development
considerably more patterns should be used. In large systems, coordinator may be attached
to every composite service.
      </p>
      <p>State Coordinator pattern is simple alternative for Business Process execution
engine. Coordinator handles incoming message and passes it to services according to its
actual context. Coordinator uses the assistance of Checker that checks constraints
(pre-conditions and post-conditions) of operations. According to the principles of
good SOA design, operations of services must be stateless. Information about states is
captured by entities, and all constraints describing services subject to state changes
are kept in Constraint base.</p>
      <p>Coordinator may interact with external services or own composite services but
nevertheless they are treated as stateless services. It deals with constraints and
signatures of operations described by constraints that represent logic of usage of these
operations in Information System, and selects concrete service to fulfil request or
sends response about inability to do this. If new services are inserted or business rules
are changed, constraints must be supplemented or modified.</p>
      <p>There are many ways to proceed from requirements to design though we believe
that it would be valid to use State Coordinator in SOA related design when business
process execution language is not used. Resulting design may be implemented using
J2EE, MS .Net or other framework with message-oriented middleware, creating
operations for checking constraints. Checker also may be thought as some kind of rule
checking component when rules are stored declaratively in rule base.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Transformation to design</title>
      <p>Transformation from DIM to PIM, based on State Coordination pattern, is presented
in Figure 6. Transformations concerning detailed design and implementation are not
considered in this design phase. Signatures and body conditions of PIM operations
are obtained from body conditions of DIM query operations or post-conditions of
non-query operations (except of message expressions that together with preconditions
are allocated to constraints). For meaningful design, operations in DIM must have
been discovered in the way ensuring right division of responsibilities, and description
of post-conditions must hold all information for design of methods implementing
behaviour.</p>
      <p>
        The transformation from DIM to PIM is based on mapping between elements of
meta-models. This mapping is described by the set of rules that define how the
elements of the source model (DIM) are allocated to elements of the target model (PIM).
Main elements of DIM and PIM meta-models related by transformation rules are
depicted in Figure 6. These rules are specified using simple transformation language
based on OCL [
        <xref ref-type="bibr" rid="ref18 ref28">18, 28</xref>
        ]; the main transformations are shown in Figure 7, hiding
details how every relationship, attribute, association end, etc. is transformed.
      </p>
      <p>Transformations using State Coordinator pattern mainly are straightforward:
Coordinator service and abstract Actor class are created in PIM (transformations
DIM2Coordinator and DIM2Actor);
DIM entities are transformed to PIM entities (transformation Entity2Entity);
DIM interfaces are transformed to PIM services with interfaces (transformations
Interface2Service and Interface2ServiceInterface);
DIM operations are transformed to PIM operations. All the parameters of each
DIM operation are allocated to one parameter (of type MessageEntity) of PIM
operation (transformation Operation2Operation);
PIM message entities (MessageEntity) (also called value objects) are created for
DIM request, response, acceptance operations and operation preconditions. The
parameters of the operation (object types and data types from model of problem
domain) are transformed into elements (MessageElement) of message entities
(transformation Operation2Messages);
Classifier</p>
      <p>0..n
Interface
0..n</p>
      <p>PIM</p>
      <p>Element
MessageEntity +i0n.p.unt +rece0i.v.enr Classifier</p>
      <p>1
0..n</p>
      <p>+output
+elements 0..n
0..n
+sender</p>
      <p>1
0..n
MessageElement</p>
      <p>Fig. 6. Transformation from requirements model (DIM) to design (PIM)</p>
      <p>Transformation DIM2PIM (UML, UML)
{source DIM : UML :: Package;
target PIM : UML :: Package;
source condition DIM.InterfaceÆ notEmpty();
target condition DIM.name=PIM.name;
bidirectional;
mapping
try Interface2Service on DIM.Interface &lt;~&gt; PIM.Service;
try Entity2Entity on DIM.Entity &lt;~&gt; PIM.Entity;
try DIM2Actor on DIM &lt;~&gt; PIM.Actor;
try DIM2Coordinator on DIM &lt;~&gt; PIM.Coordinator;}
Transformation Interface2Service(UML,UML)
{source int:UML:Interface;
target s:UML:Service;
target condition s.name=int.name.concat(‘Service’);
bidirectional;
mapping
try Operation2Operation on int.Operation &lt;~&gt; s.Operation;
try Interface2ServiceInterface on int &lt;~&gt; s.Interface}
Transformation Operation2Operation(UML,UML)
{source opDIM:UML::Operation;
target opPIM:UML::Operation;
target condition
opPIM.name=opDIM.name and opPIM.Precondition=opDIM.Precondition and
opPIM.Bodycondition = opDIM.Bodycondition and
opPIM.Postcondition= opDIM.Postcondition and
opPIM.formalParameterÆ exists(m| m.oclIsKindOf(MessageEntity);
bidirectional;
mapping try Operation2Messages on opDIM &lt;~&gt;opPIM.MessageEntity}
Transformation Operation2Messages(UML,UML)
Preconditions and message parts of post conditions of DIM operations are
transformed to preconditions and post conditions of PIM operations; body conditions
(of post conditions) of DIM operations are transformed to body conditions (of
methods) of PIM operations (this transformation (Constraint2Constraint) is not
shown on the Figure 6 as soon as other details). The ultimate design of methods is
deferred to the phase of detailed design; the implementation of methods sometimes
may be achieved by direct transformation from OCL to program code, sometimes
it must be fulfilled manually.</p>
      <p>In presented transformation some assumptions were made that may vary in different
circumstances, for example, concrete naming scheme. Also, all preconditions here
have textual descriptions, and exception messages are created by concatenation of
negation of precondition and standard textual phrase. In practice, requirements for
message entities may be predefined in requirements phase.</p>
      <p>The implementation of transformations from DIM to PIM as extensions of UML
CASE tools may be another topic of research. There are many alternatives to choose
of:</p>
      <p>To base transformations on MOF to XML mapping (Metadata Interchange (XMl)
– OMG specification of standard model transfer format), but there are difficulties
raised by incompatibility of different implementations of different XMI versions
by CASE tools vendors.</p>
      <p>Other alternative is to base on MOF to Java mapping − Java™ Metadata Interface
(JMI) created by Sun Microsystems. It is platform independent dynamic
infrastructure for metadata creation, storage, interchange and management. But dependency
on application programming interface (API) of CASE tool remains unresolved.
There are many other similar mappings and repositories with analogous problems.
Eclipse Modelling Framework supports several metadata management scenarios
and seems the most promising solution capable to sustain compatibility for
different functionalities of CASE tools. Transformations in such a case may be
implemented as Eclipse plugins.</p>
      <p>Trial implementations of transformations, concerned with this work, were made
(and are under further development) as extensions to UML CASE tools Argo UML
(using native API) and Magic Draw (using JMI and API). Though our objectives are
to propose conceptual solution for going from requirements to design and
implementation serves only as demonstration of its validity, in the future the implementation
issues should be more deeply concerned focusing on Eclipse Modelling Framework.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>Behaviour has many forms that must be modelled during requirements definition
phase for subsequent service-oriented design: party interaction protocols;
choreographies and orchestration of business processes, and transactions; interfaces and
interface interactions; entities, operations and constraints. It is demonstrated that all
of these concepts may be defined, analysed, and reconciled in Design Independent
Modelling, where possibilities of UML 2.0 and OCL are employed.</p>
      <p>The main purpose of the work was to demonstrate that comprehensive definition of
requirements of Information System enables to obtain meaningful design in formal
way. As result, transformation from requirements to architectural design is presented,
during which elements, defined in requirement specification, are allocated to design
elements following State Coordinator pattern proposed for service-oriented design of
Information Systems.</p>
      <p>Resulting design may be further subjected to detailed design of operations and
transformed to implementation in WSDL and web services framework. Proposed
pattern is simple alternative for development of service-oriented information systems
when business process execution languages are not used.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Andrews</surname>
          </string-name>
          , T. et all:
          <source>Business Process Execution Language for Web Services Version 1</source>
          .
          <fpage>1</fpage>
          . (
          <year>2003</year>
          ) http://www-128.ibm.com/developerworks/library/specification/ws-bpel
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Arkin</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Business Process Modeling Language</article-title>
          . BPMI.org. (
          <year>2002</year>
          ) http://www.bpmi.org
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Arkin</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . (ed.):
          <article-title>Web Services Choreography Interface (WSCI) 1.0</article-title>
          .
          <string-name>
            <given-names>BEA</given-names>
            <surname>Systems</surname>
          </string-name>
          , Intalio,
          <string-name>
            <given-names>SAP</given-names>
            , Sun
            <surname>Microsystems</surname>
          </string-name>
          (
          <year>2002</year>
          ) http://www.w3.org/TR/wsci
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Baina</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casati</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toumani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Model-Driven Web Service Development</article-title>
          . In: A.
          <string-name>
            <surname>Persson</surname>
          </string-name>
          , J.Stirna (eds.):
          <article-title>Advanced Information Systems Engineering</article-title>
          . 16th international Conference, CaiSE
          <year>2004</year>
          . Riga, Latvia, June 7-11,
          <year>2004</year>
          , Springer-Verlag Berlin Heidelberg New York (
          <year>2004</year>
          )
          <fpage>290</fpage>
          -
          <lpage>306</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Benatalah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dumas</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fauvet</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rabhi</surname>
            ,
            <given-names>F.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sheng</surname>
            ,
            <given-names>Q.Z.</given-names>
          </string-name>
          :
          <article-title>Overview of some patterns for architecting and managing composite web services. ACM SIGecom Exchanges archive</article-title>
          , Vol.
          <volume>3</volume>
          ,
          <string-name>
            <surname>Issue</surname>
            <given-names>3</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Summer</surname>
          </string-name>
          ,
          <year>2002</year>
          (
          <year>2002</year>
          )
          <fpage>9</fpage>
          -
          <lpage>16</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Benatallah</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Casati</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toumani</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hamadi</surname>
          </string-name>
          , R.:
          <article-title>Conceptual Modeling of Web Service Conversations</article-title>
          . In: Goos,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Hartmanis</surname>
          </string-name>
          , J., van Leeuwen,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds.):
          <source>Proceedings of the 15th International Conference on Advanced Information Systems Engineering (CAiSE'03)</source>
          , LNCS vol.
          <volume>2681</volume>
          , Springer Verlag, Klagenfurt, Austria (
          <year>2003</year>
          )
          <fpage>449</fpage>
          -
          <lpage>467</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Berardi</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Calvanese</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>De Giacomo</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenzerini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mecella</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A foundational vision of e-services</article-title>
          . In: Goos,
          <string-name>
            <given-names>G.</given-names>
            ,
            <surname>Hartmanis</surname>
          </string-name>
          , J., van Leeuwen,
          <string-name>
            <surname>J</surname>
          </string-name>
          . (eds).
          <source>Proc. of the CAiSE 2003 Workshop on Web Services, LNCS</source>
          , vol.
          <volume>3095</volume>
          (
          <year>2003</year>
          )
          <fpage>28</fpage>
          -
          <lpage>40</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Business</given-names>
            <surname>Process Modelling</surname>
          </string-name>
          <article-title>Notation (BPMN)</article-title>
          .
          <source>Version 1</source>
          .
          <fpage>0</fpage>
          - May 3
          <year>2004</year>
          , BPMI.org. (
          <year>2004</year>
          ) http://www.bpmn.org
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Business</given-names>
            <surname>Transaction Protocol Primer</surname>
          </string-name>
          .
          <article-title>Organization for the Advancement of Structured Information Systems (</article-title>
          <year>2002</year>
          ) http://www.oasis-open.org
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ceponiene</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nemuraite</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Design Independent Modeling of Information Systems Using UML and OCL</article-title>
          . In: Barzdins,
          <string-name>
            <surname>J. et all</surname>
          </string-name>
          , (eds.):
          <source>Databases and Information Systems, Computer Science and Information Technologies</source>
          , Vol.
          <volume>672</volume>
          .
          <source>Sixth International Baltic Conference on Data Bases and Information Systems (DB&amp;IS'</source>
          <year>2004</year>
          ), Riga, Latvia (
          <year>2004</year>
          )
          <fpage>357</fpage>
          -
          <lpage>372</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Ceponiene</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nemuraite</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paradauskas</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Design of schemas of state and behaviour for emerging information systems</article-title>
          . In: Thalheim,
          <string-name>
            <given-names>B.</given-names>
            ,
            <surname>Fiedler</surname>
          </string-name>
          ,
          <string-name>
            <surname>G</surname>
          </string-name>
          . (eds.): Computer Science Reports, Vol.
          <volume>14</volume>
          . Branderburg University of Technology at Cottbus (
          <year>2003</year>
          )
          <fpage>27</fpage>
          -
          <lpage>31</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>D'Souza</surname>
            ,
            <given-names>D.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wills</surname>
            ,
            <given-names>A.C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Objects</surname>
          </string-name>
          , Components, and
          <article-title>Frameworks with UML. The Catalysis Approach</article-title>
          . Addison Wesley, Boston (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Dubray</surname>
            ,
            <given-names>J. J.:</given-names>
          </string-name>
          <article-title>A new model for multiparty collaborations</article-title>
          .
          <source>EBPML</source>
          .org, (
          <year>2002</year>
          ) http://www.ebpml.org
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <source>ebXML Business Process Specification Schema. Version</source>
          <volume>1</volume>
          .
          <fpage>01</fpage>
          .
          <article-title>Business Process Project Team, UN/CEFACT and OASIS (</article-title>
          <year>2001</year>
          ) http://www.ebxml.org/specs
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Evans</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          :
          <article-title>Domain Driven Design</article-title>
          .
          <article-title>Tackling complexity at the heart of software</article-title>
          .
          <source>AddisonWesley</source>
          , Boston (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Gamma</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helm</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Johnson, R.,
          <string-name>
            <surname>Vlissides</surname>
          </string-name>
          , J.: Design Patterns:
          <article-title>Elements of Reusable Object-Oriented Software</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Pearson Education</surname>
          </string-name>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kavantzas</surname>
            , N. (ed), Olsson,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mischkinsky</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chapman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Web Services Choreography Definition Language. Oracle Corporation</surname>
          </string-name>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kleppe</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Warmer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bast</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          : MDA Explained:
          <article-title>The Model Driven Architecture™: Practice and Promise</article-title>
          .
          <source>Addison Wesley</source>
          , Boston (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Mellor</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Balcer</surname>
            ,
            <given-names>M.J.: Executable</given-names>
          </string-name>
          <string-name>
            <surname>UML</surname>
          </string-name>
          .
          <article-title>A foundation for model-driven architecture</article-title>
          .
          <source>Addison-Wesley</source>
          , Boston (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Mencl</surname>
          </string-name>
          , V.:
          <article-title>Specifying Component Behavior with Port State Machines</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>101</volume>
          (
          <year>2004</year>
          )
          <fpage>129</fpage>
          -
          <lpage>153</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Monday</surname>
          </string-name>
          , P.B.:
          <source>Web Service Patterns: Java Edition</source>
          . Springer-Verlag New York, Inc. (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M. P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dubray</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A Survey of Web service technologies</article-title>
          .
          <source>Technical Report DIT-04-058</source>
          , Informatica e Telecomunicazioni, University of Trento (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Singh</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brydon</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Murray</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ramachandran</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Violleau</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stearns</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Designing Web Services with the J2EE™ 1.4 Platform JAX-RPC, SOAP, and XML Technologies</article-title>
          . Addison Wesley, Boston (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. UN/CEFACT Modeling Methodology. UNCEFACT/TMWG. (
          <year>2002</year>
          ) http://www.unece.org/cefact/umm/ umm_index.htm
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Unified Modeling Language Superstructure Specification</surname>
          </string-name>
          .
          <source>Version 2</source>
          .0, OMG document ptc/03-08-
          <fpage>02</fpage>
          (
          <year>2003</year>
          ) http://www.omg.org
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Unified Modeling</surname>
          </string-name>
          <article-title>Language: OCL Version 2.0</article-title>
          . OMG document ptc/03-08-
          <fpage>08</fpage>
          (
          <year>2003</year>
          ) http://www.omg.org
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <given-names>W3</given-names>
            <surname>Consortium. Web Services</surname>
          </string-name>
          <article-title>Architecture</article-title>
          .
          <source>W3C WG</source>
          (
          <year>2004</year>
          ) http://www.w3.org
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>Warmer</surname>
            ,
            <given-names>J.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kleppe</surname>
            ,
            <given-names>A.G.</given-names>
          </string-name>
          :
          <article-title>Object constraint language, The: Getting Your Models Ready for MDA</article-title>
          .
          <source>Second Edition</source>
          , Addison Wesley, Boston (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          29.
          <string-name>
            <surname>Web</surname>
          </string-name>
          <article-title>Services Description Language (WSDL)</article-title>
          .
          <source>Version 2</source>
          .0 (
          <issue>2004</issue>
          ) http://www.w3.org/TR/2004
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          30.
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papazoglou</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          :
          <article-title>Service components for managing the life-cycle of service compositions</article-title>
          .
          <source>Inf. Syst</source>
          .
          <volume>29</volume>
          (
          <issue>2</issue>
          ) (
          <year>2004</year>
          )
          <fpage>97</fpage>
          -
          <lpage>125</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          31.
          <string-name>
            <surname>Zimmerman</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Krogdahl</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gee</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Elements of Service-Oriented Analysis and Design</article-title>
          . International Business Machines (
          <year>2004</year>
          ) http://www106.ibm.com/developerworks/library/ws-soad1
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>