SlideShare a Scribd company logo
An MDA based environment for modelling and
            executing business Negotiations

                                                                    b
                        Pierfranco Ferronatoa, Jason Finnegan

     a
      Pierfranco Ferronato, Dr., Chief Architect, Soluta.Net, Italy, EU, e-mail :
                               pferronato@soluta.net

b
    Jason Finnegan, Waterford Institute of Technology, email :jfinnegan@tssg.org




     Abstract. The Open Negotiation Environment project is a research project
     funded by the Information Society and Media DG ICT for Enterprise
     Networking Unit in the 6 th Framework Program. It consists of an environment
     that supports the modelling, creation and execution of business negotiations,
     the project is strongly centred around the MDAtm approach. A Domain
     Specific Language (DSL) has been defined and used to generate the modelling
     editor that in turn allows users to creates models representing the negotiations,
     the are finally executed by JBoss: the AJAX user interfaces to coordinate the
     participants are created at run-time. The project also provides a metamodel
     driven Recommender and Learner component that provide the ability to
     suggest which action to take during the negotiation process and which
     participant to invite.




     The paper presents the results of the ONE project, including their Factory
     environment, This paper describes the strategies, the MDA architecture, the
     process used in the development of the project and the key decisions they
     drove the entire architecture specification. It describes why MDA was the
     founding principle that drove the entire architecture; namely, to allow the
     solution to functionally scale, to have software components that are not bound
     to a specific negotiation. The consortium has successfully and widely adopted
     the MDA Eclipse framework as a set of specifications and tools; this has
     proved also to be beneficial in the daily organization of the work easing the
     interoperability and communication among partners and software components.




     The highly scalable architecture allows the infrastructure and the model to
     grow at the pace of the community as it needs to. The underlying DSL, the
     open source infrastructure and the MDA will help creating an open library of
     computable negotiation models that can be modified, shared and executed
     across a community in different domains. This ability can open up a market of
models, where they can be sold or bought; an open source platform does not
       prohibit a commercial use of the platform.

       Keywords: modelling, negotiations, e-procurements, MDA, p2p, peer to peer,
       metamodelling, agreement




1Introduction

Supporting negotiations in a web based environment is a task that many tools and
vendors already offers. Some of these also offer the ability to customize to some
extent the tender/auction; for example the price and the duration is customizable, as
is the fact that it can be a public or a private negotiation. In general these solutions
support a rather small number of negotiation types (auction or direct buy usually) and
for each some level of customization is allowed. Supporting new behaviours like for
example extending the termination of the negotiation by 5 minutes after the receipt of
an offer, or adding complete new models like “reverse auction” or generic tenders, is
hard without the need to undergo a rather long set of changes in the application code.
The ONE projects has been entirely conceived for being able to dynamically support
new negotiation models.
The project is constituted of two main environments: the Factory, where models are
defined, and the Runtime, where models are instantiated and executed. Figure 1
below illustrates this design and it also indicates that the Runtime is further defined
in two phases: the Setup where negotiations are configured with data and the
Execution where they are started and users actually participate to arrive at an
agreement.


            Negotiation Factory
          (negotiation modelling)
                                                Publish




                                      ONENegotiation Runtime
                                                Environment
                                                          Announcement
                            Negotiation Setup
                                                      Negotiation
                                                      Execution)




  Figure 1: Environments in ONE
2The MDA approach

In order to support new negotiation models without undergoing the classical develop,
compile test and software deployment life cycle, the ONE consortium has decided to
leverage the Model Driven Architecture(MDA[1]). ONE provides a tool where
negotiation models can be created in a visual environment specifying the negotiation
protocol, and the underlying information model. The protocol is modelled using a
UML[2] state diagram notation where messages, flow and conditions are defined:
with this model it is possible for example to model First Price Sealed-bid auction or
virtually any other custom negotiations.
The models defined in the editor (MDA M1 abstraction level [FRANKEL]) are
instances of the negotiation modelling language, called the One Negotiation
Metamodel, defined by the consortium[ONM] that represents the core expression
capabilities of the models (the language resides at M2 abstraction level).
The ONE consortium has defined a domain specific language (DSL) for describing
negotiations (a DSL is hence a specifically tailored language for describing the
structure and the behavior of vertical domains). Adopting this approach, primarily
aims at raising the level of abstraction at which the software is produced. The main
idea is to capture the domain knowledge by means of models and to develop (parts
of) applications by instantiating these models and generating the code,
documentation, and other artifacts.
As stated by the OMG: “The MDA defines an approach to IT system specifications
that separates the specification of system functionality from the specification of the
implementation of that functionality, on a specific technology platform. To this end,
the MDA defines an architecture for models that provide a set of guidelines for
structuring specifications expressed as models.”[3].
Models are processed by the run-time environment which allows users to tailor them
to their needs by specifying the products or the services, the start and the end date,
and in general to given values to the various variables defined in the model. During
this phase, called Setup, users can also invite users and specify if the negotiation will
be public or private. The Setup phase essentially creates an instance (M0 respect to
the MDA abstraction level) that can be finally executed in a web collaborative
environment under the control of the execution engine.

                             Self described meta-language
         higher                          “thing”
                      (M3)



                              ONE Negotiation Language
                                                             DSL
                                     “syntax”
                      (M2)
        Abstraction



                                  Negotiation Models         Models
                                    “expressions”
                      (M1)




                                    Negotiation Data         Data
                                       “values”
           lower
                      (M0)



  Figure 2: ONE simplified standard stack
Figure 2 above depicts the abstraction layers: M3 is the language used to create the
negotiation language, in our case it is ECORE. Level M2 is the One Modelling
Language itself, inspired by FIPA protocol and by the OMG Negotiation Facility[4].
M1 are the models created with the Editor, and M0 are the negotiations themselves
enriched with data and executed.


3The Implementation Strategy

The project has been conceived for a community of users and as a such it has adopted
the EOA approach (Ecosystem Oriented Architecture)[5]. The main features in this
sense are:
      decentralization of the model repository, which is based on a p2p network;
      evolutionary repository: models are owned and extended by the community;
      use of folksonomy[6] to tag models and the information model;
      community driven trust and reputation model[7];
      a negotiation topology that reflects the star based model of real life
         negotiations (see Figure 3 below);
      scalable: the infrastructure is able to scale at runtime as the community
         needs to;
      use of open source frameworks.
The strategy when defining the Architecture has been to reflect the topological model
found in real life business negotiations and in ecosystems.
As defined in the DBE project[8] business ecosystem are based on a peer to peer
model, where each participant plays both the role of a server and of a client, with the
absence of a central control point. This topological model well reflects the nature of
social networks: they are self sustained and are regulated by a mechanism where each
participant offers part of its infrastructure as a resource to the community: this
approach enforces the sense of being part of a living organism. In particular it's key,
the absence of a central regulation node, that in turn, technically speaking, can
represent a single point of failure. From the business perspective this avoids the “big
brother” syndrome1.
The execution environment on the other hand is star based topology: the owner of a
negotiation is hosting the negotiations itself, while the participants are using their
nodes to access the negotiation. Figure 3 below depicts this approach. There are two
dotted circles that represent p2p networks of resources. The first, in the upper part of
the figure are the nodes that can run the negotiation as either an owner or a
participant in a negotiation. The second network, in the lower part of the figure,
represents the p2p network of the Distributed Knowledge Base. The two other clouds
represent two running negotiations: 'A' and 'B'. Each cloud is called a “Negotiation
Arena” and their life cycle is regulated by each negotiation: they appear and
disappear in sync with the negotiations.



1The   fears of many people concerning computers and privacy: “Big Brother”, the government,
or someone else that can in theory assemble a great deal of information people and use it for
its, or third parties, benefits
O N E N e g o tia tio n S c e n a rio E x a m p le

                                                                                                                              N e g o tia tio n B

                                                                                               O ne N ode
                                                                    One N ode                                                                                                   P a r tic ip a n t
                                                                                                                                  P a r tic ip a n t   T ru s te d N o d e
                                                                                     P 2 P n e tw o r k

                                               O ne N ode
                                                                                                            T ru s te d N o d e

                                                                                                                                                                  O w ner
                                                                               N e g o tia tio n A                                       O ne N ode


                                                                                                                                                                                     P artic ip an t
                                                          P a r tic ip a n t
                                                                                                                                                           T ru s te d N o d e
                                                                                T r u s te d N o d e


                                   T ru s te d N o d e
              P a r tic ip a n t
                                                                                                                     O ne N ode

                                                                                    ON E N ode
                                              O w ner




                                                         T ru s te d N o d e                                                                               D e c e n tralize d K B
                                    P a r tic ip a n t                                                                                                                               D e c e n tr a liz e d K B
                                                                                                                                            P 2 P n e tw o r k



N o t e : A T r u s te d N o d e is a O N E N o d e ju s t in a d if f e r e n t r o le                                                                          D e c e n tralize d K B

Figure 3: ONE topological model

The consortium has made use of sophisticated topology models and technologies in
order to avoid having the architecture rely on a single point of failure. This means
that the Runtime environment will not allow any single entity to gain “control” over
the negotiation process: there is not a single element in the architecture where data
and messages are stored or where they transit, as such there is no way to tamper with
a server in order to alter the behavior of an entire negotiation for the benefit of an
organization or a single user.
The environment, due to the redundant peer-to-peer nature of the topology, is highly
reliable and able to remain effective in case of a random failure of nodes.
There are essentially two reasons for introducing a peer to peer topology in ONE
infrastructure: one is technical and another is to provide an immediate perceivable
benefit to users.
From the technical perspective the p2p topology is a way to replicate information and
access points. This gives a real economical benefit because no one in the community
is asked to provide a important investment in terms of resources like database and
application servers; no one is in charge of supporting a possible increase of the
workload by retrofitting new hardware or bandwidth. With a proper p2p topology the
resources will grow as the community needs to: i.e. each participant sustains the
grown with it's own resources. In addition, by a proper p2p strategy, it is possible to
avoid the typical bottleneck in portals, since connections are routed to different
nodes: scalability is key since it does not requires a huge investment to start a
community.
From the user perspective the adoption of a p2p architecture is essentially invisible
from the usability perspective but relevant when explained that all the models and
data provided during usage are stored across the entire community in a redundant and
fail safe infrastructure. This brings functionally two benefits: one is the awareness
that models and data are not owned by a single organization, the other is that in this
way there is no “big brother syndrome”. This is one of the major concerns in current
Internet: it was Microsoft for operative systems, now it is Google in the Internet age.
In any case these two aspects are related and represent the two faces of the same
coin. The application of a p2p topology is a natural consequence of the
implementation of a decentralized community: this is how negotiations works in the
real world. In the late 60's Conway has postulated a law[9] that takes it's name which
states: “Organizations which design systems are constrained to produce designs
which are copies of the communication structures of these organizations” or in other
words: “Any piece of software reflects the organizational structure that produced it”.
It'd have been a gross error to adopt a centralized implementation in a context where
the p2p topology is in the essence of the problem ONE is addressing.


4The Factory Environment

The Factory environment is where models are created, modified and published in the
Distributed Knowledge Base. It is essentially a boxes and lines tool. Before
developing the application, we envisioned three possible options:
• customize an open source UML editor (e.g. Argo UML);
• develop it from scratch;
• generate it from a meta model.
In order to have a quicker development life-cycle and to be more consistent with the
MDA approach, it was decided to generate the graphical modelling editor from a
negotiation DSL (domain specific language)[10].
The GEF[11] and the GMF[12] Eclipse framework has been considered as the
primary source for MDA related frameworks for the construction of the Negotiation
Model Editor.
Since UML is a general purpose language and, a DSL had to be created ad-hoc.
There are essentially three ways in MDA to specify a language:
1. using a subset of UML;
2. using UML Profiles;
3. creating a meta model from scratch using a modelling language (meta meta-
    model), in the same way UML is defined..
In order to have the best flexibility, it was decided to adopt the third approach.
Essentially there are two kind of reference languages to be used when defining a
meta model:
 1 MOF[13];
 2 ECORE (part of EMF[14]).
MOF is generally considered more formal and, to some extend, academic. As a
matter of fact, there are not many production based systems which adopt it; the most
relevant criticism is that it is too complex at the time being.
EMF has been conceived in the Eclipse community and it is more essential and close
to the pragmatic needs of developers. For this reason it has been adopted as part of
the technical architecture of ONE, for encoding the meta model.
Once the ONE DSL had been specified a series of transformations (see Figure 5
below) generate intermediate models, and from them, the code of the graphical
model editor. This is turn can be further customized in order to fit special
requirements which can not be expressed in the input meta model, for example for
creating wizards for adding Variables, Protocol Rules, Criteria, Action Language
support, access to the repository etc. More detailed information in chapter 8, The
ONE Negotiation Metamodel
The process is iterative (the meta model might change, especially in the early phases
of the project) so it is important to ensure that the customizations made to the
generated editor are preserved between different iterations (the complete description
of the designing and development of the Negotiation Model Editor is the subject of a
dedicated deliverable of the ONE project).
One of the key features of adopting the MDA approach in the Negotiation Model
Editor tool is that it depends on the Negotiation meta model and, as a consequence,
the tool only needs to be updated/regenerated if the Negotiation meta model changes.
The consortium has adopted a sort of “model life-cycle management” in the software
development process. In case the ONE meta model is updated, the Editor must be
updated to generate new compliant models as well as all the components that depend
on it, such as the Setup and the Negotiation Engine. In addition, the environment
shall be able to process both kind of models: the one made with the previous version
of the meta model and the new one: this is not a trivial effort. ONE is enabling this
scenario by storing in the models the version of the meta model they are, and by
implementing a Distributed Knowledge Base which is meta models agnostic, i.e. it is
possible to store new models which are based on different versions of the meta
model. Adding new features to the negotiation meta models during the production
phase are to be implemented with caution because a significant effort is required: a
destructive changes on the other hand like removing or renaming an entity will
jeopardize the entire architecture.
The notation used is based on UML State Diagrams. In ONE it was decided to draw
two state diagrams, one represents the Owner (left side) the other the Participant
(right side).




  Figure 4: Negotiation Editor, two state machines
Each state diagram has four Super Stages: Admission, Readiness, Negotiation and
Acceptance that regulate the way negotiations are managed at runtime. Each Super
Stage has one or more Stages (states) connected with Transitions that are regulated
by the usual Trigger, Action and Condition.
The two State Machines communicate via Messages that are sent by Actions in one
side and that are captured by Events on the other side.
In order to describe precise behaviors, like Actions, preconditions and in general
behavioral logic, it is necessary to support an action language, this means to augment
the DSL with an imperative language. Since scripts are to be executed at run time by
the Negotiation Engine and since the entire project is based on Java, it is
straightforward to adopt a subset of the Java Language[15] in order to avoid useless
transformations between the Editor and the Engine.
The model editor provides an Action Script editor based on the open source project
Bean Shell [BSHELL]: a Java interpreter (Java script) augmented with the ability to
access global negotiation variables as defined in the meta model like list of sent
messages, list of participants, start time of the negotiations, list of receive messages,
date and time and the model specific attributes.
In order to avoid reading sensitive information or gaining control of the negotiation,
it was decided not to enable the Participant side to define an Action Script.
In essence the editor is a rich client application that does not run inside a web
platform: the models can be stored locally in the file system or in the Distributed
Knowledge Base (DKB) as an XMI[16] encoded file. In line with the MDA
approach, these models are not specific to an execution engine, they are a PIM's,
Platform Independent Models, there is no assumption about the Execution Engine,
Jboss or Ilog or others, not even of course it assumes the participants of the
negotiations are humans using Web based interface or software components using
Web Services. As a matter of fact the Runtime environment could be implemented as
a PHP or .Net application. Actually ONE is supporting a Java implementation.


5The ONE Negotiation Metamodel

A negotiation specific language (a DSL) was created in order to allow users to design
any type of negotiation process as simply as possible, while still being specific
enough to allow the process to be machine executable. The metamodel uses
essentially a subset of UML, as no existing UML profile met our requirements.
The metamodel has two sections, the Information model which describes what is
being negotiated, and the Negotiation Protocol , which describes how an agreement
is negotiated. The Information Model needs to be very flexible to support almost any
business domain, so it has a simple structure with attributes and issues that can be
negotiated (changed by negotiators). The ONE metamodel does contain any standard
agreement or contract types, and it is up to users to define these models.
The Negotiation Protocol is the process by which an agreement is reached between
multiple parties.
From examining many existing negotiation methods and systems, a number of
features common to virtually all negotiation processes were determined. An example
of one of these concepts is that to reach an agreement a user must make an offer and
that offer must be accepted by another user. These concepts were formalised into the
negotiation protocol section of the ONE Negotiation metamodel.
A core requirement for the ONE system was the decentralisation of the negotiation,
this meant each user would maintain their own state in a negotiation. Negotiations do
not require a neutral third party to host or coordinate a negotiation, the parties
communicate directly with one another. This brought us to the approach of using
independent state diagrams for each user, with the transitions between states being
triggered by the sending or receipt of messages, or other stimulus. Each Negotiation
State machine would have a number of SuperStages that a process would go through
on the way to reaching an Agreement.
These SuperStages are present in every ONE negotiation model but can be bypassed
by transitions if not required. The SuperStages are Admission, Readiness Negotiation
and Acceptance. A detailed description of the meanings and rules for each state can
be found in D3.1. The SuperStages and the basic negotiation protocol were created to
help ensure every negotiation achieved certain legal norms inherent in contract
creation[ONM].




Figure 5: Generic Negotiation Protocol Behaviour
User defined Stages in ONM represent specific steps in the negotiation process, such
as when a user is creating an offer or other message, waiting to respond to an offer,
or waiting after a sealed bid has been made. These states are defined by the modeler
and customized by adding actions and transitions to other states.
5.1Messages
The Exchange of messages is vital to any negotiation, and in the ONE MetaModel
we defined a number of message types, in including Offers, Agreements, Admission
Requests, Information and Notification messages . These Message types have
defined meanings and uses but can be extended to support new negotiation models.


5.2Actions




Figure 5: Figure 5: Protocol Messages
Actions are functions that are triggered at certain steps in the negotiation protocol,
such as when a user enters or leaves a specific stage. In designing the metamodel a
difficult decision to make was the level of granularity for predefined actions. The
more functionality that was included in the predefined actions, the less flexible the
system becomes.With less functionality the metamodel provides no benefit over
existing modelling languages. The decision made was to define a few simple
common actions, and define the more complex behavior in action Scripts, small
sections of Bean shell code, embedded in the models. This approach allows a user to
easily define the exchange of messages of the negotiation in a drag and drop editor,
and also write complex rules to sort or filter messages using an imperative language.


5.3Transformation and Execution
A key requirement of the ONE project is that negotiations created using the ONE
metamodel must be automatically executable. This could have been achieved by
developing a state machine engine to step through the ONE models. However an
existing open source state machine(JBPM) was found to have all of the core features
required for the ONE Engine. It was demonstrated that by transforming models from
the ONE DSL into JBPM compatible models(JPDL), the development cycle could be
greatly reduced.
The process of transforming negotiation models from the ONE metamodel into JPDL
was not a straightforward task, as not every feature in ONE metamodel had an
equivalent in JPDL. A specific area of difficulty was around Event triggering as the
two languages used different approaches. Eventually a multiple layer transformation
process was developed that supported all the features of the ONE metamodel[17].
This process uses a number of ATL rules (Atlas Transformation Language) with
XSLT also used for formattingFigure 6 below.
The transformation layer would allow different implementations to use the same
negotiation model, with Web services providing the standard for messaging. This
means that it will be easily to replace components of the current ONE platform with
new components and remain compatible with existing ONE nodes and Negotiation
models.



                                                        M a p s fro m                                       M a p s to
                                                                                ATL
                                                                           m e ta m o d e l                              E n g in e M e ta M o d e l
                 N e g o tia tio n M e ta M o d e l
                             (S o u rc e M M )                                                                                      (T a rg e t M M )

                                                                                                                           In s ta n c e o f
                                    In s ta n c e o f
                                                                                               in p u t

                         N e g . M o d e ls                                 T ra n s fo r m a tio n                          E n g . M o d e ls
                            N e g . M o d e ls                                     R u le s                                     E n g . M o d e ls
                                N e g . M o d e ls                                                                                  E n g . M o d e ls
                                                                                                          o u tp u t
                                                                in p u t



                                            s to re d                                                                                          in p u t


                                                                                                                            O n e R u n tim e
                               DKB                                                                                               E n g in e
                                                                           T r a n s fo r m a tio n
                           R e p o s ito r y
                                                                                    T o o ls
             Figure 6: models and metamodels
The greatest benefit of transforming the models into an existing process model
language was that it allowed us to rapidly prototype negotiation processes in a stable
state machine environment and use a number of features that would not have been
possible to implement with the available resources.


6The Runtime Environment

The Runtime is the Web base environment where negotiations' instances are created
from models and executed; in addition this environment provides a set of side
functionalities[18] like searching, inspecting for negotiations, registration, login and
the management of a personal workspace where to keep track of past negotiations,
called the My One[19]: it can be said that, with the exception of the Model Editor,
the run time provides all the resources needed to expose all the functionalities as
specified in Deliverable “D2.1 Functional Architecture”. The connection point
between the Factory and the Runtime is the Distributed Knowledge Base (Distributed
Knowledge Base) that receives the models created in the first environment and they
are then retrieved, configured and executed from the second (Figure 2 “ONE
simplified standard stack“ in page 3).
As specified in the project deliverable D2.1, the Runtime environment supports the
ONE Web Portal and the MyONE. While the Web Portal is publicly accessible, the
MyONE requires authentication; and provides functionalities to users that are act as a
participant or as an owner.
The most relevant features of the ONE Web Portal are:
• to allow users to configure a negotiation in a section of the Portal which is called
   the “Setup”;
• to execute a negotiation in a section of the Portal which is called the “Negotiation
   Console”;
• the workspace, where contacts, profile, part negotiations are managed.
The Setup is the phase where a negotiation is created from a model, an instance is
actually created with data and published in the portal. From this point participants
can join and negotiate under the rules specified in the model.
The ONE Web Site is not implemented as a centralized server, even if it behave like
a classical web site like Ebay[EBAY]: the information (like models, negotiations,
history, contacts...) are stored in the DKB (Distributed Knowledge Base) that adopts
a decentralized peer-to-peer network of nodes.
The implementation is not straightforward because the topology of a negotiation
environment is multidimensional as the shows. In the ONE architecture we have
defined three p2p architectures each -potentially- with a different topology:
     1. Negotiation Arena: essentially a p2p networks of star based networks;
     2. One Nodes: a p2p network;
     3. DKB: another p2p network.
As it was said, the ONE Runtime components will not reside in a single central
server but will make use of participants’. As such there can be several ONE Web
Portals in the Internet each with its own different IP address and any of these can be
used to log in and to enter the community. The ONE Web Portal is hence a stateless
application server, it does not own a local storage of information; it stores and
retrieve information from the Distributed Knowledge Base only.

Nevertheless from the usability perspective there is not much difference respect to a
traditional Auction or Negotiation web site. This is a unique feature for this type of
system that represents an advancement in the state of the art; this strategy greatly
hardens the architecture and the implementation.


7The ONE node

There are essentially three kinds of topologies in ONE (reference ):
    1. ONE Nodes: the network of ONE Nodes which represent the Community:
    2. DKB: the trusted network of DKB nodes which, in relation to a Community,
         provides the storage support;
3.
          Negotiation Arena: the network that represents all the participants when
          executing a negotiation. With respect to the other two topologies, the
          Negotiation Arena adopts a centralized architecture, where -for the sole
          duration of a negotiation- the owner hosts the central node of a star based
          network topology where participants are the vertexes that are connected
          through their own ONE Node.
The One node is technically shown in Figure 7 below, it is built on top of the Spring
[20] service container, where a ONE specific framework has been developed. All the
functional components are then plugged on top and some of them make also use of
the Portal that make use of an Open Source implementation[21] of the Portlet
specification[22].
In a Negotiation Arena, a negotiation starts in the node that has been defined by the
owner at setup time; the central node is assumed to remain active for the entire
duration of the negotiation despite the fact that the owner is logged in or not. In this
scenario, and in ONE in general, it is assumed that participants have a preference for
a trusted node through which they access a ONE instance. This node, as it was
introduced in the previous section, is responsible for its traffic and for the activity of
their users, as such there is a cross trusted relation that will be properly implemented
by the Security Component of ONE. In other words, all the nodes in ONE are the
trustees of the users coming by their connection and hence the prime subject of trust
is a node. As such the most important trusted entities in a Negotiation Arena are
essentially the nodes of the participants and of the owner.


Web Interfaces                            Public       Negotiation
                          MyOne
                                          Portal        Console
                                                                                                                                         local
                                       AJAX, Portlet                                                                                     API

                                   Pluto Web Portal
                           http://portals.apache.org/pluto/


                    ONE framework (announcement logging, timers...)
                                                                             Negotiation                          Trust &
                                                                                           DKB        Security                 R&L
                                                                               Engine                            Reputation
To soapod
in ONE nodes
                    Soapod (p2p infrastructure, DBE conn, service registry,..) JBoss        JCR
for node registry   http://www.soapod.org/                                     MySQL     Jackrabbit
                                                                                                                              JColibrì   WS
                                                                              NetWork     NetWork     NetWork     NetWork                API

                    Spring (application server)
                    http://www.springframework.org/

                    Tomcat (container)
                    http://tomcat.apache.org/

                    JVM




Figure 7: One node, layers of technologies
As a consequence, users who intend to participate to a negotiation are to be
redirected, together with their trusted/owning node, to the central node were the
negotiation will be hosted and run. Participants are not required to log in directly to
the central node, they can use any ONE Web Portal to access the community but
when “Joining” a negotiation a proper forwarding mechanism will be executed in
order to connect the user to the central node via his trusted node (the information
about the location of the negotiation hosting node is specified in the negotiation
instance stored the Distributed Knowledge Base). It is important to enforce the
concept that a node becomes “central” only for the duration of the negotiation: this is
not an absolute property of a node. When the negotiation will terminate the node will
return “generic”, with no specific role.
O ne N o de
                                                                    O ne N ode

                                                                                     P 2 P netw o r k
                                                                                                                             P artic ip an t
                                                O ne N ode                                                                                                         P artic ip an t


                                                                                                       T ru s te d N o d e
                                                                                                                                T ru s te d N o d e

                                                                                                                                                                          P artic ip an t


                                                          P a r tic ip a n t                                                    T ru s te d N o d e
              N e g o tia tio n A                                                  T ru s te d N o d e &                                                          N e g o tia tio n B
                                                                                   N e g o t ia t io n N o d e

                                   T ru s te d N o d e                                                                   O w ner

                 P artic ip an t
                                                                                                                                    O ne N ode


                                              O w ner                          N e g o t ia t io n N o d e




                                                         T ru s te d N o d e
                                    P a r tic ip a n t                                                                                          D e c e n tr a liz e d K B
                                                                                                                                                         P 2 P n e tw o r k
                                                                                                                       D e c e n tralize d K B

   N o te : A T ru s te d N o d e is a O N E N o d e ju s t in a d iff e r e n t r o le


                                                                                                                                           D e c e n tr a liz e d K B

  Figure 8: Overlapping Negotiation Arenas
A consequence of this approach is that a node might run, hence host, several
negotiations at the same time; it could be a central node for many negotiations. A
node, in addition, could host the connections of many users who could participate to
different negotiations and hence the Negotiation Areas do overlap and intersect: a
node can support many users in the role of owner and many users in the role of
participants in the same or in different nodes. The Figure 3 in page 5 represents an
ideal scenario where two separate Arenas do not share any Node and also represent
their relation with the Distributed Knowledge Base. represents the overlapping
scenario when there is a node which is both hosting a negotiation and is the trusted
entry node of a different one.
Another alternate scenario which is supported is the case where an user wishes to
participate to a negotiation without having a trusted node, in this case the architecture
will allow the user to join the negotiation using the owner's central node; this
assumes that the owner when setting up the negotiation has allowed this feature. The
pros will be a probable increase in the number of participants, with the cons of the
risk of accepting non trusted participants.
Since negotiations are supposed to last for several days or weeks it is hence required
to provide a fail-over mechanism: during the negotiation, the Engine will take care of
duplicating the negotiation state in a backup node. Whenever a central node is
unavailable the “Join” of a negotiation will forward the request to the backup node.
This and other scenarios are to be implemented by the Execution Engine.
8Recommender and Learner

ONE also provides a recommendation framework and an intelligent learner system
that given the negotiation models and the history of past anonymous executions is
able to provide feedbacks and infer suggestions to the participants.
The Recommender System[23] that plays a key role in supporting users during the
negotiation processes, it recommends how to reply or respond in a negotiation. It is
aimed at implementing a learning agent, able to suggest to the user a negotiation
strategy. This has been achieved by observing, in the right context, the user
behaviour and the actions of other partners in past negotiations.




Figure 9: The design of the learner component (from D4.1
Recommender and Learner)
The recommender system might also automate certain type of actions, i.e., to reply
on behalf of the participant. The strategy learning algorithms will be based on the
observation and storage of real interactions that happens in the Execution
Environment.
The Learner is a component that infers Recommendation Models from logs of past
negotiations, it is used by the Recommender. Figure 9 above shows a sketch of the
internals of the Learner component.


9Summary and conclusions

MDA is the founding principle that drives the entire architecture of the Open
Negotiation Environment, this allows the solution to functionally scale, to have
software components that are not bound to any specific negotiation and are adaptable
to custom needs. The consortium has successfully and widely adopted the MDA
Eclipse framework as a set of specifications and tools. This has also provided benefit
in the daily organization of the work easing the interoperability issues among
partners and software components.
The architecture adopts a decentralized approach to avoid having a central node (a
single point of failure) as this would jeopardize the adoption of the platform. The
architecture is configured in order to behave like a self supporting organism that
grows over time: nodes of participant organizations are attached to each other sharing
resources.
This decision has put severe challenges in the project that required to rethink the
model repository, the service registry and the topology of the network. The
technologies for the decentralization are built around p2p protocols.
The project, due to end in June 2009, is showing tangible results: negotiations
models can already be modelled, published and executed.


References

1: Many, Model Driven Architecture, , www.omg.org/mda
2: Many, UML, , http://www.uml.org/
3: Many, OMG MDA Guide , 2001
4: Many, OMG Negotiation Facility, 2002, http://www.omg.org/cgi-bin/doc?formal/
2002-03-14
5: Ferronato Pierfranco, Architecture for Digital Ecosystems: Beyond Service-
Oriented Architecture, 2007
6: Many, Folksomy, , http://en.wikipedia.org/wiki/Folksonomy
7: Mihaela Ion, Andrea Danzi, D5.2- Design of a peer-to-peer reputation model,
2007
8: Many, Digital Business Ecosystem Project, 2004, www.digital-ecosystem.org
9: Melvin E. Conway, How Do Committees Invent?, 1968
10: P. Cavalcance, P. Ferronato,, Del 3.3 Set of Software Design Tools, 2008
11: Many, Graphical Editing Framework, , http://www.eclipse.org/gef/
12:       Many,        Eclipse      Graphical      Modeling       Framework,     ,
http://www.eclipse.org/modeling/gmf/
13: Many, Meta Object facility, , http://www.omg.org/mof
14: Many, Eclipse Modeling Framework, , http://www.eclipse.org/modeling/emf/
15: Many, Provides classes that are fundamental to the design of the Java
programming language, , http://java.sun.com/j2se/1.4.2/docs/api/java/lang/package-
summary.html
16: Many, MOF 2.0/XMI Mapping, Version 2.1.1, 2007, http://www.omg.org/cgi-
bin/doc?formal/2007-12-01
17: Z Boudjemil, J. Finnegan, D3.1 – Languages, Models and Agreements, 2008
18: Pierfranco Ferronato, D2.1 – Functional Architecture, 2008
19: Katarina Stanoevska-Slabeva, Roger Faust, Volker Hoyer, D1.2 – Software
Requirements and Use Cases, 2007
20: Many, The Spring Framework, , http://springframework.org/
21: Many, Reference Implementation of the Java Portlet Specfication, ,
http://portals.apache.org/pluto/
22: Java Community Process, JSR 168: Portlet Specification, ,
http://www.jcp.org/en/jsr/detail?id=168
23: Paolo Avesani, Andrea Malossini, Loris Penserini, Alessandro Serra, D4.1 -
Interaction Design, 2007
[DELTOOL] P. Cavalcance, P. Ferronato, “Del 3.3 Set of Software Design Tools”, 1.6.2008, a ONE
Deliverable

More Related Content

Viewers also liked

Softwaree l\'Ingegneria Civile
Softwaree l\'Ingegneria CivileSoftwaree l\'Ingegneria Civile
Softwaree l\'Ingegneria Civile
pierino23
 
A model based platform for eProcurements
A model based platform for eProcurementsA model based platform for eProcurements
A model based platform for eProcurements
pierino23
 
What To Expect With C
What To Expect With CWhat To Expect With C
What To Expect With C
Joseph Guadagno
 
Beyond Service Oriente Architecture
Beyond Service Oriente ArchitectureBeyond Service Oriente Architecture
Beyond Service Oriente Architecture
pierino23
 
One Dsl4negotiations Presented
One Dsl4negotiations PresentedOne Dsl4negotiations Presented
One Dsl4negotiations Presented
pierino23
 
Agile Modelling Architecture
Agile Modelling ArchitectureAgile Modelling Architecture
Agile Modelling Architecture
pierino23
 

Viewers also liked (8)

Egil Og Anton
Egil Og AntonEgil Og Anton
Egil Og Anton
 
Softwaree l\'Ingegneria Civile
Softwaree l\'Ingegneria CivileSoftwaree l\'Ingegneria Civile
Softwaree l\'Ingegneria Civile
 
A model based platform for eProcurements
A model based platform for eProcurementsA model based platform for eProcurements
A model based platform for eProcurements
 
Power point parc
Power point parcPower point parc
Power point parc
 
What To Expect With C
What To Expect With CWhat To Expect With C
What To Expect With C
 
Beyond Service Oriente Architecture
Beyond Service Oriente ArchitectureBeyond Service Oriente Architecture
Beyond Service Oriente Architecture
 
One Dsl4negotiations Presented
One Dsl4negotiations PresentedOne Dsl4negotiations Presented
One Dsl4negotiations Presented
 
Agile Modelling Architecture
Agile Modelling ArchitectureAgile Modelling Architecture
Agile Modelling Architecture
 

Similar to Ferronato Finnegan One Digibiz Long

TM Forum Frameworx Overview Course
TM Forum  Frameworx Overview CourseTM Forum  Frameworx Overview Course
TM Forum Frameworx Overview Course
Flavio Vit
 
Microsoft BizTalk server seen by the programmer’s eyes
Microsoft BizTalk server seen by the programmer’s eyesMicrosoft BizTalk server seen by the programmer’s eyes
Microsoft BizTalk server seen by the programmer’s eyes
Sandro Pereira
 
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
ijcsit
 
Sap cloud ecosystem
Sap cloud ecosystemSap cloud ecosystem
Sap cloud ecosystem
Sebastian Vitzthum
 
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
FIAT/IFTA
 
1 introduction
1 introduction1 introduction
1 introduction
Dipak Shinde
 
Service Oriented & Model Driven Architectures
Service Oriented & Model Driven ArchitecturesService Oriented & Model Driven Architectures
Service Oriented & Model Driven Architectures
Pankaj Saharan
 
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
GilbertoBorregoSoto
 
Semi-Automated Assistance for Conceiving Chatbots
Semi-Automated Assistance for Conceiving ChatbotsSemi-Automated Assistance for Conceiving Chatbots
Semi-Automated Assistance for Conceiving Chatbots
Jean-Léon BOURAOUI - MBA, PhD
 
Ggti 22 03-2012
Ggti  22 03-2012Ggti  22 03-2012
Ggti 22 03-2012
José Carlos Cavalcanti
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal Architecture
Can Pekdemir
 
Deutsche telekom
Deutsche telekomDeutsche telekom
Deutsche telekom
laurabeckcahoon
 
Open Source Meets Open Specifications
Open Source Meets Open SpecificationsOpen Source Meets Open Specifications
Open Source Meets Open Specifications
Kenn Hussey
 
Open Digital Framework from TMFORUM
Open Digital Framework from TMFORUMOpen Digital Framework from TMFORUM
Open Digital Framework from TMFORUM
Maganathin Veeraragaloo
 
IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docx
vrickens
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
Divya Watson
 
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
gtilton
 
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHESWEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
ijwscjournal
 
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHESWEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
ijwscjournal
 
JBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco MatrixJBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco Matrix
The World Bank
 

Similar to Ferronato Finnegan One Digibiz Long (20)

TM Forum Frameworx Overview Course
TM Forum  Frameworx Overview CourseTM Forum  Frameworx Overview Course
TM Forum Frameworx Overview Course
 
Microsoft BizTalk server seen by the programmer’s eyes
Microsoft BizTalk server seen by the programmer’s eyesMicrosoft BizTalk server seen by the programmer’s eyes
Microsoft BizTalk server seen by the programmer’s eyes
 
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
DESIGN AND DEVELOPMENT OF BUSINESS RULES MANAGEMENT SYSTEM (BRMS) USING ATLAN...
 
Sap cloud ecosystem
Sap cloud ecosystemSap cloud ecosystem
Sap cloud ecosystem
 
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
OUT-OF-THE-BOX INTEROPERABLE COMPONENTS FOR THE DESIGN OF DIGITAL MEDIA ARCHI...
 
1 introduction
1 introduction1 introduction
1 introduction
 
Service Oriented & Model Driven Architectures
Service Oriented & Model Driven ArchitecturesService Oriented & Model Driven Architectures
Service Oriented & Model Driven Architectures
 
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
Marc Lankhorst (auth.) - Enterprise Architecture at Work_ Modelling, Communic...
 
Semi-Automated Assistance for Conceiving Chatbots
Semi-Automated Assistance for Conceiving ChatbotsSemi-Automated Assistance for Conceiving Chatbots
Semi-Automated Assistance for Conceiving Chatbots
 
Ggti 22 03-2012
Ggti  22 03-2012Ggti  22 03-2012
Ggti 22 03-2012
 
Domain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal ArchitectureDomain Driven Design & Hexagonal Architecture
Domain Driven Design & Hexagonal Architecture
 
Deutsche telekom
Deutsche telekomDeutsche telekom
Deutsche telekom
 
Open Source Meets Open Specifications
Open Source Meets Open SpecificationsOpen Source Meets Open Specifications
Open Source Meets Open Specifications
 
Open Digital Framework from TMFORUM
Open Digital Framework from TMFORUMOpen Digital Framework from TMFORUM
Open Digital Framework from TMFORUM
 
IT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docxIT 8003 Cloud ComputingFor this activi.docx
IT 8003 Cloud ComputingFor this activi.docx
 
The Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios EssayThe Architecture Of Software Defined Radios Essay
The Architecture Of Software Defined Radios Essay
 
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
Project findings paper TMForum catalyst 2014 B2B service bundling 1.0
 
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHESWEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
 
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHESWEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
WEB PORTAL INTEGRATION ARCHITECTURE APPROACHES
 
JBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco MatrixJBoss Fuse vs Tibco Matrix
JBoss Fuse vs Tibco Matrix
 

Ferronato Finnegan One Digibiz Long

  • 1. An MDA based environment for modelling and executing business Negotiations b Pierfranco Ferronatoa, Jason Finnegan a Pierfranco Ferronato, Dr., Chief Architect, Soluta.Net, Italy, EU, e-mail : pferronato@soluta.net b Jason Finnegan, Waterford Institute of Technology, email :jfinnegan@tssg.org Abstract. The Open Negotiation Environment project is a research project funded by the Information Society and Media DG ICT for Enterprise Networking Unit in the 6 th Framework Program. It consists of an environment that supports the modelling, creation and execution of business negotiations, the project is strongly centred around the MDAtm approach. A Domain Specific Language (DSL) has been defined and used to generate the modelling editor that in turn allows users to creates models representing the negotiations, the are finally executed by JBoss: the AJAX user interfaces to coordinate the participants are created at run-time. The project also provides a metamodel driven Recommender and Learner component that provide the ability to suggest which action to take during the negotiation process and which participant to invite. The paper presents the results of the ONE project, including their Factory environment, This paper describes the strategies, the MDA architecture, the process used in the development of the project and the key decisions they drove the entire architecture specification. It describes why MDA was the founding principle that drove the entire architecture; namely, to allow the solution to functionally scale, to have software components that are not bound to a specific negotiation. The consortium has successfully and widely adopted the MDA Eclipse framework as a set of specifications and tools; this has proved also to be beneficial in the daily organization of the work easing the interoperability and communication among partners and software components. The highly scalable architecture allows the infrastructure and the model to grow at the pace of the community as it needs to. The underlying DSL, the open source infrastructure and the MDA will help creating an open library of computable negotiation models that can be modified, shared and executed across a community in different domains. This ability can open up a market of
  • 2. models, where they can be sold or bought; an open source platform does not prohibit a commercial use of the platform. Keywords: modelling, negotiations, e-procurements, MDA, p2p, peer to peer, metamodelling, agreement 1Introduction Supporting negotiations in a web based environment is a task that many tools and vendors already offers. Some of these also offer the ability to customize to some extent the tender/auction; for example the price and the duration is customizable, as is the fact that it can be a public or a private negotiation. In general these solutions support a rather small number of negotiation types (auction or direct buy usually) and for each some level of customization is allowed. Supporting new behaviours like for example extending the termination of the negotiation by 5 minutes after the receipt of an offer, or adding complete new models like “reverse auction” or generic tenders, is hard without the need to undergo a rather long set of changes in the application code. The ONE projects has been entirely conceived for being able to dynamically support new negotiation models. The project is constituted of two main environments: the Factory, where models are defined, and the Runtime, where models are instantiated and executed. Figure 1 below illustrates this design and it also indicates that the Runtime is further defined in two phases: the Setup where negotiations are configured with data and the Execution where they are started and users actually participate to arrive at an agreement. Negotiation Factory (negotiation modelling) Publish ONENegotiation Runtime Environment Announcement Negotiation Setup Negotiation Execution) Figure 1: Environments in ONE
  • 3. 2The MDA approach In order to support new negotiation models without undergoing the classical develop, compile test and software deployment life cycle, the ONE consortium has decided to leverage the Model Driven Architecture(MDA[1]). ONE provides a tool where negotiation models can be created in a visual environment specifying the negotiation protocol, and the underlying information model. The protocol is modelled using a UML[2] state diagram notation where messages, flow and conditions are defined: with this model it is possible for example to model First Price Sealed-bid auction or virtually any other custom negotiations. The models defined in the editor (MDA M1 abstraction level [FRANKEL]) are instances of the negotiation modelling language, called the One Negotiation Metamodel, defined by the consortium[ONM] that represents the core expression capabilities of the models (the language resides at M2 abstraction level). The ONE consortium has defined a domain specific language (DSL) for describing negotiations (a DSL is hence a specifically tailored language for describing the structure and the behavior of vertical domains). Adopting this approach, primarily aims at raising the level of abstraction at which the software is produced. The main idea is to capture the domain knowledge by means of models and to develop (parts of) applications by instantiating these models and generating the code, documentation, and other artifacts. As stated by the OMG: “The MDA defines an approach to IT system specifications that separates the specification of system functionality from the specification of the implementation of that functionality, on a specific technology platform. To this end, the MDA defines an architecture for models that provide a set of guidelines for structuring specifications expressed as models.”[3]. Models are processed by the run-time environment which allows users to tailor them to their needs by specifying the products or the services, the start and the end date, and in general to given values to the various variables defined in the model. During this phase, called Setup, users can also invite users and specify if the negotiation will be public or private. The Setup phase essentially creates an instance (M0 respect to the MDA abstraction level) that can be finally executed in a web collaborative environment under the control of the execution engine. Self described meta-language higher “thing” (M3) ONE Negotiation Language DSL “syntax” (M2) Abstraction Negotiation Models Models “expressions” (M1) Negotiation Data Data “values” lower (M0) Figure 2: ONE simplified standard stack
  • 4. Figure 2 above depicts the abstraction layers: M3 is the language used to create the negotiation language, in our case it is ECORE. Level M2 is the One Modelling Language itself, inspired by FIPA protocol and by the OMG Negotiation Facility[4]. M1 are the models created with the Editor, and M0 are the negotiations themselves enriched with data and executed. 3The Implementation Strategy The project has been conceived for a community of users and as a such it has adopted the EOA approach (Ecosystem Oriented Architecture)[5]. The main features in this sense are:  decentralization of the model repository, which is based on a p2p network;  evolutionary repository: models are owned and extended by the community;  use of folksonomy[6] to tag models and the information model;  community driven trust and reputation model[7];  a negotiation topology that reflects the star based model of real life negotiations (see Figure 3 below);  scalable: the infrastructure is able to scale at runtime as the community needs to;  use of open source frameworks. The strategy when defining the Architecture has been to reflect the topological model found in real life business negotiations and in ecosystems. As defined in the DBE project[8] business ecosystem are based on a peer to peer model, where each participant plays both the role of a server and of a client, with the absence of a central control point. This topological model well reflects the nature of social networks: they are self sustained and are regulated by a mechanism where each participant offers part of its infrastructure as a resource to the community: this approach enforces the sense of being part of a living organism. In particular it's key, the absence of a central regulation node, that in turn, technically speaking, can represent a single point of failure. From the business perspective this avoids the “big brother” syndrome1. The execution environment on the other hand is star based topology: the owner of a negotiation is hosting the negotiations itself, while the participants are using their nodes to access the negotiation. Figure 3 below depicts this approach. There are two dotted circles that represent p2p networks of resources. The first, in the upper part of the figure are the nodes that can run the negotiation as either an owner or a participant in a negotiation. The second network, in the lower part of the figure, represents the p2p network of the Distributed Knowledge Base. The two other clouds represent two running negotiations: 'A' and 'B'. Each cloud is called a “Negotiation Arena” and their life cycle is regulated by each negotiation: they appear and disappear in sync with the negotiations. 1The fears of many people concerning computers and privacy: “Big Brother”, the government, or someone else that can in theory assemble a great deal of information people and use it for its, or third parties, benefits
  • 5. O N E N e g o tia tio n S c e n a rio E x a m p le N e g o tia tio n B O ne N ode One N ode P a r tic ip a n t P a r tic ip a n t T ru s te d N o d e P 2 P n e tw o r k O ne N ode T ru s te d N o d e O w ner N e g o tia tio n A O ne N ode P artic ip an t P a r tic ip a n t T ru s te d N o d e T r u s te d N o d e T ru s te d N o d e P a r tic ip a n t O ne N ode ON E N ode O w ner T ru s te d N o d e D e c e n tralize d K B P a r tic ip a n t D e c e n tr a liz e d K B P 2 P n e tw o r k N o t e : A T r u s te d N o d e is a O N E N o d e ju s t in a d if f e r e n t r o le D e c e n tralize d K B Figure 3: ONE topological model The consortium has made use of sophisticated topology models and technologies in order to avoid having the architecture rely on a single point of failure. This means that the Runtime environment will not allow any single entity to gain “control” over the negotiation process: there is not a single element in the architecture where data and messages are stored or where they transit, as such there is no way to tamper with a server in order to alter the behavior of an entire negotiation for the benefit of an organization or a single user. The environment, due to the redundant peer-to-peer nature of the topology, is highly reliable and able to remain effective in case of a random failure of nodes. There are essentially two reasons for introducing a peer to peer topology in ONE infrastructure: one is technical and another is to provide an immediate perceivable benefit to users. From the technical perspective the p2p topology is a way to replicate information and access points. This gives a real economical benefit because no one in the community is asked to provide a important investment in terms of resources like database and application servers; no one is in charge of supporting a possible increase of the workload by retrofitting new hardware or bandwidth. With a proper p2p topology the resources will grow as the community needs to: i.e. each participant sustains the grown with it's own resources. In addition, by a proper p2p strategy, it is possible to avoid the typical bottleneck in portals, since connections are routed to different nodes: scalability is key since it does not requires a huge investment to start a community. From the user perspective the adoption of a p2p architecture is essentially invisible from the usability perspective but relevant when explained that all the models and data provided during usage are stored across the entire community in a redundant and fail safe infrastructure. This brings functionally two benefits: one is the awareness that models and data are not owned by a single organization, the other is that in this way there is no “big brother syndrome”. This is one of the major concerns in current Internet: it was Microsoft for operative systems, now it is Google in the Internet age.
  • 6. In any case these two aspects are related and represent the two faces of the same coin. The application of a p2p topology is a natural consequence of the implementation of a decentralized community: this is how negotiations works in the real world. In the late 60's Conway has postulated a law[9] that takes it's name which states: “Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations” or in other words: “Any piece of software reflects the organizational structure that produced it”. It'd have been a gross error to adopt a centralized implementation in a context where the p2p topology is in the essence of the problem ONE is addressing. 4The Factory Environment The Factory environment is where models are created, modified and published in the Distributed Knowledge Base. It is essentially a boxes and lines tool. Before developing the application, we envisioned three possible options: • customize an open source UML editor (e.g. Argo UML); • develop it from scratch; • generate it from a meta model. In order to have a quicker development life-cycle and to be more consistent with the MDA approach, it was decided to generate the graphical modelling editor from a negotiation DSL (domain specific language)[10]. The GEF[11] and the GMF[12] Eclipse framework has been considered as the primary source for MDA related frameworks for the construction of the Negotiation Model Editor. Since UML is a general purpose language and, a DSL had to be created ad-hoc. There are essentially three ways in MDA to specify a language: 1. using a subset of UML; 2. using UML Profiles; 3. creating a meta model from scratch using a modelling language (meta meta- model), in the same way UML is defined.. In order to have the best flexibility, it was decided to adopt the third approach. Essentially there are two kind of reference languages to be used when defining a meta model: 1 MOF[13]; 2 ECORE (part of EMF[14]). MOF is generally considered more formal and, to some extend, academic. As a matter of fact, there are not many production based systems which adopt it; the most relevant criticism is that it is too complex at the time being. EMF has been conceived in the Eclipse community and it is more essential and close to the pragmatic needs of developers. For this reason it has been adopted as part of the technical architecture of ONE, for encoding the meta model. Once the ONE DSL had been specified a series of transformations (see Figure 5 below) generate intermediate models, and from them, the code of the graphical model editor. This is turn can be further customized in order to fit special requirements which can not be expressed in the input meta model, for example for creating wizards for adding Variables, Protocol Rules, Criteria, Action Language
  • 7. support, access to the repository etc. More detailed information in chapter 8, The ONE Negotiation Metamodel The process is iterative (the meta model might change, especially in the early phases of the project) so it is important to ensure that the customizations made to the generated editor are preserved between different iterations (the complete description of the designing and development of the Negotiation Model Editor is the subject of a dedicated deliverable of the ONE project). One of the key features of adopting the MDA approach in the Negotiation Model Editor tool is that it depends on the Negotiation meta model and, as a consequence, the tool only needs to be updated/regenerated if the Negotiation meta model changes. The consortium has adopted a sort of “model life-cycle management” in the software development process. In case the ONE meta model is updated, the Editor must be updated to generate new compliant models as well as all the components that depend on it, such as the Setup and the Negotiation Engine. In addition, the environment shall be able to process both kind of models: the one made with the previous version of the meta model and the new one: this is not a trivial effort. ONE is enabling this scenario by storing in the models the version of the meta model they are, and by implementing a Distributed Knowledge Base which is meta models agnostic, i.e. it is possible to store new models which are based on different versions of the meta model. Adding new features to the negotiation meta models during the production phase are to be implemented with caution because a significant effort is required: a destructive changes on the other hand like removing or renaming an entity will jeopardize the entire architecture. The notation used is based on UML State Diagrams. In ONE it was decided to draw two state diagrams, one represents the Owner (left side) the other the Participant (right side). Figure 4: Negotiation Editor, two state machines Each state diagram has four Super Stages: Admission, Readiness, Negotiation and Acceptance that regulate the way negotiations are managed at runtime. Each Super
  • 8. Stage has one or more Stages (states) connected with Transitions that are regulated by the usual Trigger, Action and Condition. The two State Machines communicate via Messages that are sent by Actions in one side and that are captured by Events on the other side. In order to describe precise behaviors, like Actions, preconditions and in general behavioral logic, it is necessary to support an action language, this means to augment the DSL with an imperative language. Since scripts are to be executed at run time by the Negotiation Engine and since the entire project is based on Java, it is straightforward to adopt a subset of the Java Language[15] in order to avoid useless transformations between the Editor and the Engine. The model editor provides an Action Script editor based on the open source project Bean Shell [BSHELL]: a Java interpreter (Java script) augmented with the ability to access global negotiation variables as defined in the meta model like list of sent messages, list of participants, start time of the negotiations, list of receive messages, date and time and the model specific attributes. In order to avoid reading sensitive information or gaining control of the negotiation, it was decided not to enable the Participant side to define an Action Script. In essence the editor is a rich client application that does not run inside a web platform: the models can be stored locally in the file system or in the Distributed Knowledge Base (DKB) as an XMI[16] encoded file. In line with the MDA approach, these models are not specific to an execution engine, they are a PIM's, Platform Independent Models, there is no assumption about the Execution Engine, Jboss or Ilog or others, not even of course it assumes the participants of the negotiations are humans using Web based interface or software components using Web Services. As a matter of fact the Runtime environment could be implemented as a PHP or .Net application. Actually ONE is supporting a Java implementation. 5The ONE Negotiation Metamodel A negotiation specific language (a DSL) was created in order to allow users to design any type of negotiation process as simply as possible, while still being specific enough to allow the process to be machine executable. The metamodel uses essentially a subset of UML, as no existing UML profile met our requirements. The metamodel has two sections, the Information model which describes what is being negotiated, and the Negotiation Protocol , which describes how an agreement is negotiated. The Information Model needs to be very flexible to support almost any business domain, so it has a simple structure with attributes and issues that can be negotiated (changed by negotiators). The ONE metamodel does contain any standard agreement or contract types, and it is up to users to define these models. The Negotiation Protocol is the process by which an agreement is reached between multiple parties. From examining many existing negotiation methods and systems, a number of features common to virtually all negotiation processes were determined. An example of one of these concepts is that to reach an agreement a user must make an offer and that offer must be accepted by another user. These concepts were formalised into the negotiation protocol section of the ONE Negotiation metamodel.
  • 9. A core requirement for the ONE system was the decentralisation of the negotiation, this meant each user would maintain their own state in a negotiation. Negotiations do not require a neutral third party to host or coordinate a negotiation, the parties communicate directly with one another. This brought us to the approach of using independent state diagrams for each user, with the transitions between states being triggered by the sending or receipt of messages, or other stimulus. Each Negotiation State machine would have a number of SuperStages that a process would go through on the way to reaching an Agreement. These SuperStages are present in every ONE negotiation model but can be bypassed by transitions if not required. The SuperStages are Admission, Readiness Negotiation and Acceptance. A detailed description of the meanings and rules for each state can be found in D3.1. The SuperStages and the basic negotiation protocol were created to help ensure every negotiation achieved certain legal norms inherent in contract creation[ONM]. Figure 5: Generic Negotiation Protocol Behaviour User defined Stages in ONM represent specific steps in the negotiation process, such as when a user is creating an offer or other message, waiting to respond to an offer, or waiting after a sealed bid has been made. These states are defined by the modeler and customized by adding actions and transitions to other states.
  • 10. 5.1Messages The Exchange of messages is vital to any negotiation, and in the ONE MetaModel we defined a number of message types, in including Offers, Agreements, Admission Requests, Information and Notification messages . These Message types have defined meanings and uses but can be extended to support new negotiation models. 5.2Actions Figure 5: Figure 5: Protocol Messages Actions are functions that are triggered at certain steps in the negotiation protocol, such as when a user enters or leaves a specific stage. In designing the metamodel a difficult decision to make was the level of granularity for predefined actions. The more functionality that was included in the predefined actions, the less flexible the system becomes.With less functionality the metamodel provides no benefit over existing modelling languages. The decision made was to define a few simple common actions, and define the more complex behavior in action Scripts, small sections of Bean shell code, embedded in the models. This approach allows a user to easily define the exchange of messages of the negotiation in a drag and drop editor, and also write complex rules to sort or filter messages using an imperative language. 5.3Transformation and Execution A key requirement of the ONE project is that negotiations created using the ONE metamodel must be automatically executable. This could have been achieved by
  • 11. developing a state machine engine to step through the ONE models. However an existing open source state machine(JBPM) was found to have all of the core features required for the ONE Engine. It was demonstrated that by transforming models from the ONE DSL into JBPM compatible models(JPDL), the development cycle could be greatly reduced. The process of transforming negotiation models from the ONE metamodel into JPDL was not a straightforward task, as not every feature in ONE metamodel had an equivalent in JPDL. A specific area of difficulty was around Event triggering as the two languages used different approaches. Eventually a multiple layer transformation process was developed that supported all the features of the ONE metamodel[17]. This process uses a number of ATL rules (Atlas Transformation Language) with XSLT also used for formattingFigure 6 below. The transformation layer would allow different implementations to use the same negotiation model, with Web services providing the standard for messaging. This means that it will be easily to replace components of the current ONE platform with new components and remain compatible with existing ONE nodes and Negotiation models. M a p s fro m M a p s to ATL m e ta m o d e l E n g in e M e ta M o d e l N e g o tia tio n M e ta M o d e l (S o u rc e M M ) (T a rg e t M M ) In s ta n c e o f In s ta n c e o f in p u t N e g . M o d e ls T ra n s fo r m a tio n E n g . M o d e ls N e g . M o d e ls R u le s E n g . M o d e ls N e g . M o d e ls E n g . M o d e ls o u tp u t in p u t s to re d in p u t O n e R u n tim e DKB E n g in e T r a n s fo r m a tio n R e p o s ito r y T o o ls Figure 6: models and metamodels The greatest benefit of transforming the models into an existing process model language was that it allowed us to rapidly prototype negotiation processes in a stable state machine environment and use a number of features that would not have been possible to implement with the available resources. 6The Runtime Environment The Runtime is the Web base environment where negotiations' instances are created from models and executed; in addition this environment provides a set of side functionalities[18] like searching, inspecting for negotiations, registration, login and the management of a personal workspace where to keep track of past negotiations, called the My One[19]: it can be said that, with the exception of the Model Editor, the run time provides all the resources needed to expose all the functionalities as
  • 12. specified in Deliverable “D2.1 Functional Architecture”. The connection point between the Factory and the Runtime is the Distributed Knowledge Base (Distributed Knowledge Base) that receives the models created in the first environment and they are then retrieved, configured and executed from the second (Figure 2 “ONE simplified standard stack“ in page 3). As specified in the project deliverable D2.1, the Runtime environment supports the ONE Web Portal and the MyONE. While the Web Portal is publicly accessible, the MyONE requires authentication; and provides functionalities to users that are act as a participant or as an owner. The most relevant features of the ONE Web Portal are: • to allow users to configure a negotiation in a section of the Portal which is called the “Setup”; • to execute a negotiation in a section of the Portal which is called the “Negotiation Console”; • the workspace, where contacts, profile, part negotiations are managed. The Setup is the phase where a negotiation is created from a model, an instance is actually created with data and published in the portal. From this point participants can join and negotiate under the rules specified in the model. The ONE Web Site is not implemented as a centralized server, even if it behave like a classical web site like Ebay[EBAY]: the information (like models, negotiations, history, contacts...) are stored in the DKB (Distributed Knowledge Base) that adopts a decentralized peer-to-peer network of nodes. The implementation is not straightforward because the topology of a negotiation environment is multidimensional as the shows. In the ONE architecture we have defined three p2p architectures each -potentially- with a different topology: 1. Negotiation Arena: essentially a p2p networks of star based networks; 2. One Nodes: a p2p network; 3. DKB: another p2p network. As it was said, the ONE Runtime components will not reside in a single central server but will make use of participants’. As such there can be several ONE Web Portals in the Internet each with its own different IP address and any of these can be used to log in and to enter the community. The ONE Web Portal is hence a stateless application server, it does not own a local storage of information; it stores and retrieve information from the Distributed Knowledge Base only. Nevertheless from the usability perspective there is not much difference respect to a traditional Auction or Negotiation web site. This is a unique feature for this type of system that represents an advancement in the state of the art; this strategy greatly hardens the architecture and the implementation. 7The ONE node There are essentially three kinds of topologies in ONE (reference ): 1. ONE Nodes: the network of ONE Nodes which represent the Community: 2. DKB: the trusted network of DKB nodes which, in relation to a Community, provides the storage support;
  • 13. 3. Negotiation Arena: the network that represents all the participants when executing a negotiation. With respect to the other two topologies, the Negotiation Arena adopts a centralized architecture, where -for the sole duration of a negotiation- the owner hosts the central node of a star based network topology where participants are the vertexes that are connected through their own ONE Node. The One node is technically shown in Figure 7 below, it is built on top of the Spring [20] service container, where a ONE specific framework has been developed. All the functional components are then plugged on top and some of them make also use of the Portal that make use of an Open Source implementation[21] of the Portlet specification[22]. In a Negotiation Arena, a negotiation starts in the node that has been defined by the owner at setup time; the central node is assumed to remain active for the entire duration of the negotiation despite the fact that the owner is logged in or not. In this scenario, and in ONE in general, it is assumed that participants have a preference for a trusted node through which they access a ONE instance. This node, as it was introduced in the previous section, is responsible for its traffic and for the activity of their users, as such there is a cross trusted relation that will be properly implemented by the Security Component of ONE. In other words, all the nodes in ONE are the trustees of the users coming by their connection and hence the prime subject of trust is a node. As such the most important trusted entities in a Negotiation Arena are essentially the nodes of the participants and of the owner. Web Interfaces Public Negotiation MyOne Portal Console local AJAX, Portlet API Pluto Web Portal http://portals.apache.org/pluto/ ONE framework (announcement logging, timers...) Negotiation Trust & DKB Security R&L Engine Reputation To soapod in ONE nodes Soapod (p2p infrastructure, DBE conn, service registry,..) JBoss JCR for node registry http://www.soapod.org/ MySQL Jackrabbit JColibrì WS NetWork NetWork NetWork NetWork API Spring (application server) http://www.springframework.org/ Tomcat (container) http://tomcat.apache.org/ JVM Figure 7: One node, layers of technologies As a consequence, users who intend to participate to a negotiation are to be redirected, together with their trusted/owning node, to the central node were the negotiation will be hosted and run. Participants are not required to log in directly to the central node, they can use any ONE Web Portal to access the community but when “Joining” a negotiation a proper forwarding mechanism will be executed in order to connect the user to the central node via his trusted node (the information about the location of the negotiation hosting node is specified in the negotiation instance stored the Distributed Knowledge Base). It is important to enforce the concept that a node becomes “central” only for the duration of the negotiation: this is not an absolute property of a node. When the negotiation will terminate the node will return “generic”, with no specific role.
  • 14. O ne N o de O ne N ode P 2 P netw o r k P artic ip an t O ne N ode P artic ip an t T ru s te d N o d e T ru s te d N o d e P artic ip an t P a r tic ip a n t T ru s te d N o d e N e g o tia tio n A T ru s te d N o d e & N e g o tia tio n B N e g o t ia t io n N o d e T ru s te d N o d e O w ner P artic ip an t O ne N ode O w ner N e g o t ia t io n N o d e T ru s te d N o d e P a r tic ip a n t D e c e n tr a liz e d K B P 2 P n e tw o r k D e c e n tralize d K B N o te : A T ru s te d N o d e is a O N E N o d e ju s t in a d iff e r e n t r o le D e c e n tr a liz e d K B Figure 8: Overlapping Negotiation Arenas A consequence of this approach is that a node might run, hence host, several negotiations at the same time; it could be a central node for many negotiations. A node, in addition, could host the connections of many users who could participate to different negotiations and hence the Negotiation Areas do overlap and intersect: a node can support many users in the role of owner and many users in the role of participants in the same or in different nodes. The Figure 3 in page 5 represents an ideal scenario where two separate Arenas do not share any Node and also represent their relation with the Distributed Knowledge Base. represents the overlapping scenario when there is a node which is both hosting a negotiation and is the trusted entry node of a different one. Another alternate scenario which is supported is the case where an user wishes to participate to a negotiation without having a trusted node, in this case the architecture will allow the user to join the negotiation using the owner's central node; this assumes that the owner when setting up the negotiation has allowed this feature. The pros will be a probable increase in the number of participants, with the cons of the risk of accepting non trusted participants. Since negotiations are supposed to last for several days or weeks it is hence required to provide a fail-over mechanism: during the negotiation, the Engine will take care of duplicating the negotiation state in a backup node. Whenever a central node is unavailable the “Join” of a negotiation will forward the request to the backup node. This and other scenarios are to be implemented by the Execution Engine.
  • 15. 8Recommender and Learner ONE also provides a recommendation framework and an intelligent learner system that given the negotiation models and the history of past anonymous executions is able to provide feedbacks and infer suggestions to the participants. The Recommender System[23] that plays a key role in supporting users during the negotiation processes, it recommends how to reply or respond in a negotiation. It is aimed at implementing a learning agent, able to suggest to the user a negotiation strategy. This has been achieved by observing, in the right context, the user behaviour and the actions of other partners in past negotiations. Figure 9: The design of the learner component (from D4.1 Recommender and Learner) The recommender system might also automate certain type of actions, i.e., to reply on behalf of the participant. The strategy learning algorithms will be based on the observation and storage of real interactions that happens in the Execution Environment. The Learner is a component that infers Recommendation Models from logs of past negotiations, it is used by the Recommender. Figure 9 above shows a sketch of the internals of the Learner component. 9Summary and conclusions MDA is the founding principle that drives the entire architecture of the Open Negotiation Environment, this allows the solution to functionally scale, to have software components that are not bound to any specific negotiation and are adaptable to custom needs. The consortium has successfully and widely adopted the MDA Eclipse framework as a set of specifications and tools. This has also provided benefit in the daily organization of the work easing the interoperability issues among partners and software components. The architecture adopts a decentralized approach to avoid having a central node (a single point of failure) as this would jeopardize the adoption of the platform. The
  • 16. architecture is configured in order to behave like a self supporting organism that grows over time: nodes of participant organizations are attached to each other sharing resources. This decision has put severe challenges in the project that required to rethink the model repository, the service registry and the topology of the network. The technologies for the decentralization are built around p2p protocols. The project, due to end in June 2009, is showing tangible results: negotiations models can already be modelled, published and executed. References 1: Many, Model Driven Architecture, , www.omg.org/mda 2: Many, UML, , http://www.uml.org/ 3: Many, OMG MDA Guide , 2001 4: Many, OMG Negotiation Facility, 2002, http://www.omg.org/cgi-bin/doc?formal/ 2002-03-14 5: Ferronato Pierfranco, Architecture for Digital Ecosystems: Beyond Service- Oriented Architecture, 2007 6: Many, Folksomy, , http://en.wikipedia.org/wiki/Folksonomy 7: Mihaela Ion, Andrea Danzi, D5.2- Design of a peer-to-peer reputation model, 2007 8: Many, Digital Business Ecosystem Project, 2004, www.digital-ecosystem.org 9: Melvin E. Conway, How Do Committees Invent?, 1968 10: P. Cavalcance, P. Ferronato,, Del 3.3 Set of Software Design Tools, 2008 11: Many, Graphical Editing Framework, , http://www.eclipse.org/gef/ 12: Many, Eclipse Graphical Modeling Framework, , http://www.eclipse.org/modeling/gmf/ 13: Many, Meta Object facility, , http://www.omg.org/mof 14: Many, Eclipse Modeling Framework, , http://www.eclipse.org/modeling/emf/ 15: Many, Provides classes that are fundamental to the design of the Java programming language, , http://java.sun.com/j2se/1.4.2/docs/api/java/lang/package- summary.html 16: Many, MOF 2.0/XMI Mapping, Version 2.1.1, 2007, http://www.omg.org/cgi- bin/doc?formal/2007-12-01 17: Z Boudjemil, J. Finnegan, D3.1 – Languages, Models and Agreements, 2008 18: Pierfranco Ferronato, D2.1 – Functional Architecture, 2008 19: Katarina Stanoevska-Slabeva, Roger Faust, Volker Hoyer, D1.2 – Software Requirements and Use Cases, 2007 20: Many, The Spring Framework, , http://springframework.org/ 21: Many, Reference Implementation of the Java Portlet Specfication, , http://portals.apache.org/pluto/ 22: Java Community Process, JSR 168: Portlet Specification, , http://www.jcp.org/en/jsr/detail?id=168 23: Paolo Avesani, Andrea Malossini, Loris Penserini, Alessandro Serra, D4.1 - Interaction Design, 2007
  • 17. [DELTOOL] P. Cavalcance, P. Ferronato, “Del 3.3 Set of Software Design Tools”, 1.6.2008, a ONE Deliverable