SlideShare a Scribd company logo
1 of 28
Download to read offline
Creazione di un DSL per definire
processi di Negoziazione
(e generazione codice eseguibile)
Il progetto Open Negotiation Environment
Giulio Montanari, Soluta.Net
2
www.soluta.net gmontanari@soluta.net
Creative Commons licence
3
www.soluta.net gmontanari@soluta.net
The ONE projects
ONE Open Negotiation Environment
Proposal/Contract no.: FP6-034744
www.one-project.eu
Started: September 2006
End: March 2009
4
www.soluta.net gmontanari@soluta.net
What a Negotiation is
From UniSG, ONE Partner
“Negotiation is a process during
which two or more entities try to
reach a mutual acceptable
agreement on one or several issues
through some kind of
communication.”
Single/multilateral
Single/Multiple Issue
5
www.soluta.net gmontanari@soluta.net
Various kind of models
Reck, 1992, cited in Reck, 1994
“The word auction describes the
process of buying and selling of
goods through bidding.“
Many types...
6
www.soluta.net gmontanari@soluta.net
English Auction: the protocol
7
www.soluta.net gmontanari@soluta.net
ONE Objective
''The main objective of the ONE project is to enrich Digital
Ecosystems with an open, decentralised negotiation environment
and enabling tools that will allow organisations to create contract
agreements for supplying complex, integrated services as a
virtual organisation/coalition''
''To solve these problems, a negotiation environment must be
affordable, open, not centrally controlled, support the sharing of
knowledge via flexible security and trust policies and be able to
learn and evolve with the changing market conditions''
to allow users to create and customized their own negotiation
models and to run them in a web/community based
environment
The ONE Approach
9
www.soluta.net gmontanari@soluta.net
The environments
ONE
ONE Project
Development
Negotiation Factory
(negotiation modelling)
Negotiation Runtime
Environment
Negotiation Setup
Negotiation
Execution)
Announcement
Publish
10
www.soluta.net gmontanari@soluta.net
The component model
Factory
Environment
DKB
Security
Setup Execution
Trust&Rep
Recomm.
Announce
Publish
Eclipse Rich UI
Execute
Negotiation
Model
Web based UI Web based UI
Negotiation
ONE Node
Simplified
11
www.soluta.net gmontanari@soluta.net
Deployment model
Participant
Participant
One Node
(Trusted Node)
One Node
(Negotiation Node)
One Node
(Trusted Node)
One Node
(Trusted Node)
One Node
(Negotiation Node)
Decentralized KB
One Node
(Trusted Node)
One Node
()rusted Node
Participant
Participant
Participant
Participant
Owner
One Node
(Trusted Node)
Negotiation A
Negotiation B
Decentralized KB
Decentralized KB
Owner
One Node
One Node
One Node
One Node
Note: A Trusted Node is a ONE Node just in a different role
P2P network
P2P network
12
www.soluta.net gmontanari@soluta.net
MDA Abstraction layers
(M2)
(M1)
Negotiation Models
“expressions”
Negotiation Language
“syntax”
(M0)
Negotiation Data
“values”
MOF
“thing”
Abstraction
(M3)
higher
lower
DSL
Models
Data
13
www.soluta.net gmontanari@soluta.net
Role of a DSL
Ease effort of creating model specific to a domain
Capture domain knowledge/store assets!
Terms like:
Acceptance, contraints, offer, counter offer, price, reduction,
admission, issue, discount, negotiations, agreement, owner,
participant,...
Actions like:
To admit, To offer, to agree, to rebate, to discount, to retract, to be
invited,...
A “template” for models creation
From a DSL many models can be created
Allow an high level of reuse of tooling which becomes model independent
No development in case of new models
Allow adaptability/flexibility
Increase the ROI
14
www.soluta.net gmontanari@soluta.net
How to create a DSL?
1) UML/BPMN subset
UML is too complex, the effort requires does not allow
BPMN is not Negotiation specific, customization is required
Customization of a UML tool feasible
2) UML/BPMN Profile
Doable but not effective when creating a model
Hard to tailor an UML tool
Customization of a UML tool feasible
3) A new language (MOF or ECORE)
Hard to create
Very effective
A new DSL Editor has to be created
ONE Project decided for the 3rd
approach
15
www.soluta.net gmontanari@soluta.net
Creating a DSL
Ok we know we have to create a MOF model, and now?
We decided to use Sparx System Enterprise Architect (a cost-effective
commercial UML Editor) which has the ability to create MOF models and to
export XMI 1.2, MOF 1.4 for reusability
Negotiation meta model created as instances of MOF
From the computable MOF metamodel through a series of transformation we
generate the executable code
16
www.soluta.net gmontanari@soluta.net
ONE Metamodel: concept
class Negotiation Concepts
Negotiation
{leaf}
- id: String
- version: String
- creationDate: Date
- name: String
+ visibility: VisibilityKind
NegotiationElement
Item
NegotiationProtocol
{leaf}
Actor
- id: String
NegotiationType
{abstract}
NegotiationRole
{abstract}
NegotiationElement
Issue
NegotiationMessage
Agreement
«enumeration»
VisibilityKind
private
public
resolves
+issue 1..*
+issue 1..*
composed
of
+sub-issue
composedOf
0..*
+item 1..*
comprisedOf
specifies
+role 2..*
+protocol
1
executes
1
defines
+party2..*
defines
has
+role1
+negotiation 0..*
is
involved
+party 1..*
Name:
Package:
Version:
Author:
Negotiation Concepts
«metamodel» NegotiationMetaModel
1.0
WIT
SimplifiedResult of work of the Waterford Institute of Technology, Ireland
17
www.soluta.net gmontanari@soluta.net
One Metamodel: Information MM
class Information MetaModel
NegotiationMetaModel::
Negotiation
{leaf}
Issue
NegRule::Criteria
NegotiationElement
{abstract}
- id: String
Attribute
- name: String
Types::Type
{abstract}Item
AttributeValue
NegRule::
NegotiationRule
{abstract}
has
+type 1
+value
+issue
1..*
composed
of
co-related*
+sub-issue
composedOf0..*
+criteria *
constrainedBy
*
+attribute
1..*
constrainedBy
+criteria
*
+item 1..*
Name:
Package:
Version:
Author:
Information MetaModel
«metamodel» NegInformationMetaModel
1.0
WIT
Simplified
class Facility Management Information Model
«Item»
BuildingCleaning
- id: String
«Attribute»
- name: String
- address: String
- type: String
«Issue»
Price
- id: String
«Attribute»
- price: int
Nam e:
Package:
Version:
Author:
Facility Management Information Model
Inform ation Model
1.0
WIT
Result of work of the Waterford Institute of Technology, Ireland
18
www.soluta.net gmontanari@soluta.net
One Metamodel: Protocol MM
class Principal Negotiation Protocol Conceptsl
NegotiationProtocol
{leaf}
- id: String
- name: String
NegotiationMetaModel::
Negotiation
{leaf}
NegotiationMetaModel::
Actor
- id: String
NegotiationType
{abstract}
NegRole::
NegotiationRole
{abstract}
Behaviour
ProtocolBehaviour
{leaf}
SuperStage
Neg Stages::
Negotiating
{leaf}
PreNegotiation
Neg Stages::
Readiness
{leaf}
PreNegotiation
Neg Stages::
Admission
{leaf}
Ab stractStage
Neg Stages::
InitialStage
{leaf}SuperStage
Neg Stages::
Acceptance
{leaf}
AbstractStage
Neg Stages::
FinalStage
{abstract}
NegRole::
Participant
{leaf}
NegRole::
Owner
{leaf}
NegotiationElement
NegMessages::
NegotiationMessage
NegRule::
NegotiationRule
{abstract}
- id: String
- name: String
- expression: String
1
defines
contains
starts
from
1
starts
with
1
contains
1
contains
+behaviour1
specifies
1
1..3
terminates
at
+negotiation
0..*
is
involved
+party 1..*
+protocol 1
executes
specifies
+role
2..*
defines
1
governs
*
has
+role 1
Name:
Package:
Version:
Author:
Principal Negotiation Protocol Conceptsl
«metamodel» NegProtocolMetaModel
1.1
WIT
Simplified
class eTender Protocol Model
«NegotiationProtocol»
eTenderProtocol
- id: String
«Owner»
Owner
«Participa...
Participant
«ProtocolBehaviour»
OwnerProtocolBehaviour
- id: String
«ProtocolBehaviour»
ParticipantProtocolBehaviour
- id: String
«ProtocolRule»
NegotiatingTimeOutRule
- id: String
- expression: String
«ProtocolRule»
NegotiatingStartTimeRule
- id: String
- expression: String
«specifies» «specifies»
«governs»
«governs»
«specifies»«specifies»
Nam e:
Package:
Version:
Author:
eTender Protocol Model
Protocol Model
1.0
WIT
Result of work of the Waterford Institute of Technology, Ireland
19
www.soluta.net gmontanari@soluta.net
The protocol model
A class diagram models also a state
diagram and requires a notation
mapping for defining the modelling
at M1
stm OwnerProtocolBehaviour
Initial
ADMISSION
READINESS
NEGOTIATING
Waiting
«Do»
+ do / waitEvent(receiveMessage(Offer))
NotAgreed
EvaluatingOffer
«Ingress»
+ entry / evaluateMessage(Offer)
«Do»
+ entry / createMessage(OfferResponse)
«Egress»
+ exit / sendMessage(OfferResponse)
Acceptance
Agreed
CreatingRFP
«Do»
+ do / createMessage(RequestForProposal)
WaitingforAdmissionRequest
«Do»
+ do / waitEvent(receiveMessage(AdmissionRequest))
EvaluatingParticipant
«Do»
+ do / createMessage(AdmissionResponse)[sendMessage(AdmissionResponse)]
[OfferResponse.value =
Accept]
receiveMessage(Offer)
/sendMessage(RequestForProposal)
[receiveMessage(AdmissionRequest)]
20
www.soluta.net gmontanari@soluta.net
Action language issue
Negotiations need imperative language for decision block
“If time left <5 minutes and new offers arrive, then extend negotiation
deadline by other 10 minutes”
“Final price is equal to the value of the second offer arrived “
Behavioural logic (xUML) in UML/OMG is a recent addiction
Action language or OCL
We opt to go with Java Script which was added to the XMI streamed-line
model
Not formal but practical for the need of the project
Straight to the runtime where the Java code can be executed
21
www.soluta.net gmontanari@soluta.net
ONE DSL Model example
Simplified
Negotiation Metamodel
Negotiation Notation
MDA Enabling Technologies
23
www.soluta.net gmontanari@soluta.net
How it was created and used
.eap file
Generates
NMM XMI
.ecore file
Negotiation
Model Editor
NM
XMI
NM XMI
with values
Ecore->JPDL
transformation
JPDL
transformation
Sparx Systems
EA Custom Code
Setup
Negotiation
Engine
Bean Shell
24
www.soluta.net gmontanari@soluta.net
The Model Factory: creating models
25
www.soluta.net gmontanari@soluta.net
The Setup phase: adding data
The Setup create a negotiation
instance adding data to the model
ONE SetUp
KB
Negotiation
Model
XMI
Input GUI
ZK AJAX
Automatic
Generation
Negotiation
Instance
XMI
Read
Store
26
www.soluta.net gmontanari@soluta.net
Setup: snap-shot
<negmod:InformationModel xmi:id="_fE-B8DODEdysSf1x7kCsFQ">
<primitiveTypes xmi:type="negmod:OneBoolean" xmi:id="_fE-B8TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneByte" xmi:id="_fE-B8jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneChar" xmi:id="_fE-B8zODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneDate" xmi:id="_fE-B9DODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneDouble" xmi:id="_fE-B9TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneFloat" xmi:id="_fE-B9jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneInt" xmi:id="_fE-B9zODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneLong" xmi:id="_fE-B-DODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneShort" xmi:id="_fE-B-TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneString" xmi:id="_fE-B-jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneImage" xmi:id="_fE-B-jKKKdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneXML" xmi:id="_fE-B-XMLKdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneBinary" xmi:id="_fE-BYNARYdysSf1x7kCsFQ"/>
<items xmi:type="negmod:Item" xmi:id="_HzoM8DOEEdysSf1x7kCsFQ" name="MobilePhone" issues="_cWQigDOPEdysSf1x7kCsFQ _IdbhcDOQEdysSf1x7kCsFQ">
<attributes xmi:type="negmod:Attribute" xmi:id="_RdId0DOEEdysSf1x7kCsFQ" name="brand" type="_fE-B-jODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_AjgNQDOPEdysSf1x7kCsFQ" name="model" type="_fE-B-jODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_DWBYMDOPEdysSf1x7kCsFQ" name="type" type="_fE-B-jODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_GDBJ8DOPEdysSf1x7kCsFQ" name="cameraDetail" type="_fE-B-jODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_I9SisDOPEdysSf1x7kCsFQ" name="isBlueTooth" type="_fE-B8TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kCsFQ" name="isColourScreen" type="_fE-B8TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_SobLQDOPEdysSf1x7kCsFQ" name="isGPRS" type="_fE-B8TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_VrLxoDOPEdysSf1x7kCsFQ" name="isRadio" type="_fE-B8TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_YW_3oDOPEdysSf1x7kCsFQ" name="isLocked" type="_fE-B8TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKKKK" name="PhonePicture" type="_fE-B-jKKKdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKXML" name="PhoneXML" type="_fE-B-XMLKdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKBIN" name="PhoneBinary" type="_fE-BYNARYdysSf1x7kCsFQ"/>
</items>
<issues xmi:type="negmod:Issue" xmi:id="_cWQigDOPEdysSf1x7kCsFQ" name="Price" constrainedBy="_GCIm4DOUEdysSf1x7kCsFQ _SNd7UDOUEdysSf1x7kCsFQ">
<attributes xmi:type="negmod:Attribute" xmi:id="_6vmfgDOPEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_C4stkDOQEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/>
</issues>
<issues xmi:type="negmod:Issue" xmi:id="_IdbhcDOQEdysSf1x7kCsFQ" name="Usage">
<attributes xmi:type="negmod:Attribute" xmi:id="_LlZ_ADOQEdysSf1x7kCsFQ" name="isUsed" type="_fE-B8TODEdysSf1x7kCsFQ"/>
</issues>
<criteria xmi:type="negmod:Criteria" xmi:id="_eZtykDOQEdysSf1x7kCsFQ" name="ReleasedDate">
<attributes xmi:type="negmod:Attribute" xmi:id="_geVVsDOQEdysSf1x7kCsFQ" name="date" type="_fE-B9DODEdysSf1x7kCsFQ"/>
</criteria>
<criteria xmi:type="negmod:Criteria" xmi:id="_GCIm4DOUEdysSf1x7kCsFQ" name="StartPrice">
<attributes xmi:type="negmod:Attribute" xmi:id="_IDCHoDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_MxEkEDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/>
</criteria>
<criteria xmi:type="negmod:Criteria" xmi:id="_SNd7UDOUEdysSf1x7kCsFQ" name="ReservePrice">
<attributes xmi:type="negmod:Attribute" xmi:id="_UhInEDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_WsdPIDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/>
</criteria>
</negmod:InformationModel>
xmi:type="negmod:Attribute" name="brand"
xmi:type="negmod:Attribute" name="isBlueTooth"
<negmod:InformationModel xmi:id="_fE-B8DODEdysSf1x7kCsFQ">
<primitiveTypes xmi:type="negmod:OneBoolean" xmi:id="_fE-B8TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneByte" xmi:id="_fE-B8jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneChar" xmi:id="_fE-B8zODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneDate" xmi:id="_fE-B9DODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneDouble" xmi:id="_fE-B9TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneFloat" xmi:id="_fE-B9jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneInt" xmi:id="_fE-B9zODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneLong" xmi:id="_fE-B-DODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneShort" xmi:id="_fE-B-TODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneString" xmi:id="_fE-B-jODEdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneImage" xmi:id="_fE-B-jKKKdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneXML" xmi:id="_fE-B-XMLKdysSf1x7kCsFQ"/>
<primitiveTypes xmi:type="negmod:OneBinary" xmi:id="_fE-BYNARYdysSf1x7kCsFQ"/>
<items xmi:type="negmod:Item" xmi:id="_HzoM8DOEEdysSf1x7kCsFQ" name="MobilePhone" issues="_cWQigDOPEdysSf1x7kCsFQ _IdbhcDOQEdysSf1x7kCsFQ">
<attributes xmi:type="negmod:Attribute" xmi:id="_RdId0DOEEdysSf1x7kCsFQ" name="brand" type="_fE-B-jODEdysSf1x7kCsFQ" value="Nokia"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_AjgNQDOPEdysSf1x7kCsFQ" name="model" type="_fE-B-jODEdysSf1x7kCsFQ" value="N70"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_DWBYMDOPEdysSf1x7kCsFQ" name="type" type="_fE-B-jODEdysSf1x7kCsFQ" value="321/7"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_GDBJ8DOPEdysSf1x7kCsFQ" name="cameraDetail" type="_fE-B-jODEdysSf1x7kCsFQ" value="2Mp"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_I9SisDOPEdysSf1x7kCsFQ" name="isBlueTooth" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kCsFQ" name="isColourScreen" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_SobLQDOPEdysSf1x7kCsFQ" name="isGPRS" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_VrLxoDOPEdysSf1x7kCsFQ" name="isRadio" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_YW_3oDOPEdysSf1x7kCsFQ" name="isLocked" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKKKK" name="PhonePicture" type="_fE-B-jKKKdysSf1x7kCsFQ"></attributes>
<attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKXML" name="PhoneXML" type="_fE-B-XMLKdysSf1x7kCsFQ"></attributes>
</items>
<issues xmi:type="negmod:Issue" xmi:id="_cWQigDOPEdysSf1x7kCsFQ" name="Price" constrainedBy="_GCIm4DOUEdysSf1x7kCsFQ _SNd7UDOUEdysSf1x7kCsFQ">
<attributes xmi:type="negmod:Attribute" xmi:id="_6vmfgDOPEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="123"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_C4stkDOQEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/>
</issues>
<issues xmi:type="negmod:Issue" xmi:id="_IdbhcDOQEdysSf1x7kCsFQ" name="Usage">
<attributes xmi:type="negmod:Attribute" xmi:id="_LlZ_ADOQEdysSf1x7kCsFQ" name="isUsed" type="_fE-B8TODEdysSf1x7kCsFQ" value="false"/>
</issues>
<criteria xmi:type="negmod:Criteria" xmi:id="_eZtykDOQEdysSf1x7kCsFQ" name="ReleasedDate">
<attributes xmi:type="negmod:Attribute" xmi:id="_geVVsDOQEdysSf1x7kCsFQ" name="date" type="_fE-B9DODEdysSf1x7kCsFQ"/>
</criteria>
<criteria xmi:type="negmod:Criteria" xmi:id="_GCIm4DOUEdysSf1x7kCsFQ" name="StartPrice">
<attributes xmi:type="negmod:Attribute" xmi:id="_IDCHoDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="100"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_MxEkEDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/>
</criteria>
<criteria xmi:type="negmod:Criteria" xmi:id="_SNd7UDOUEdysSf1x7kCsFQ" name="ReservePrice">
<attributes xmi:type="negmod:Attribute" xmi:id="_UhInEDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="200"/>
<attributes xmi:type="negmod:Attribute" xmi:id="_WsdPIDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/>
</criteria>
</negmod:InformationModel>
Attribute" name="brand" value="Nokia"
Attribute" name="isBlueTooth" value="true"
27
www.soluta.net gmontanari@soluta.net
Conclusions
MDA is supported by Open Source Communities
Standards are sufficiently mature for supporting a challenging project like ONE
The business analysts feel confident when modelling using DSL
The definition of a DSL is still a hard task to accomplish
Still a need to use a plethora of tools to “execute” DSL
Next step:using the natural language to create models (SBVR)
Thanks
www.one-project.eu

More Related Content

Viewers also liked

Viewers also liked (13)

3.14 ppt
3.14 ppt3.14 ppt
3.14 ppt
 
2. 19 ppt
2. 19 ppt2. 19 ppt
2. 19 ppt
 
4.04 ppt
4.04 ppt4.04 ppt
4.04 ppt
 
L1 2-unit-testanswer-2
L1 2-unit-testanswer-2L1 2-unit-testanswer-2
L1 2-unit-testanswer-2
 
1.25 ppt
1.25 ppt1.25 ppt
1.25 ppt
 
3.30 2 ppt
3.30 2 ppt3.30 2 ppt
3.30 2 ppt
 
4.11 ppt
4.11 ppt4.11 ppt
4.11 ppt
 
MDA_WS
MDA_WSMDA_WS
MDA_WS
 
2.01 ppt
2.01 ppt2.01 ppt
2.01 ppt
 
Syllabus of business chinese ii 2016
Syllabus of business chinese ii 2016 Syllabus of business chinese ii 2016
Syllabus of business chinese ii 2016
 
U4 unit-test-answer
U4 unit-test-answerU4 unit-test-answer
U4 unit-test-answer
 
4.14 ppt
4.14 ppt4.14 ppt
4.14 ppt
 
Instrumentos de percusión
Instrumentos de percusiónInstrumentos de percusión
Instrumentos de percusión
 

Similar to ONE_DSL4negotiations

One Dsl4negotiations Presented
One Dsl4negotiations PresentedOne Dsl4negotiations Presented
One Dsl4negotiations Presentedpierino23
 
Ferronato Finnegan One Digibiz Long
Ferronato Finnegan One Digibiz LongFerronato Finnegan One Digibiz Long
Ferronato Finnegan One Digibiz Longpierino23
 
E Procurement Space Maturity Assessment Srm+ Ver
E Procurement Space Maturity Assessment   Srm+ VerE Procurement Space Maturity Assessment   Srm+ Ver
E Procurement Space Maturity Assessment Srm+ Verscottcwalls
 
Smalltalk speaks dot net
Smalltalk speaks dot netSmalltalk speaks dot net
Smalltalk speaks dot netESUG
 
Copyright Management for the LUISA Semantic Learning Content Management System
Copyright Management for the LUISA Semantic Learning Content Management SystemCopyright Management for the LUISA Semantic Learning Content Management System
Copyright Management for the LUISA Semantic Learning Content Management SystemRoberto García
 
Building Blockchain Projects on Enterprise Ethereum [Webinar]
Building Blockchain Projects on Enterprise Ethereum [Webinar] Building Blockchain Projects on Enterprise Ethereum [Webinar]
Building Blockchain Projects on Enterprise Ethereum [Webinar] Kaleido
 
IBM Blockchain Platform Technical Introduction v1.1
IBM Blockchain Platform Technical Introduction v1.1IBM Blockchain Platform Technical Introduction v1.1
IBM Blockchain Platform Technical Introduction v1.1Matt Lucas
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016Tom Boucher
 
Polygon vs Ethereum.pdf
Polygon vs Ethereum.pdfPolygon vs Ethereum.pdf
Polygon vs Ethereum.pdfTechugo
 
Webinar slides - Internet of Things Convergence: Preparatory Studies
Webinar slides - Internet of Things Convergence: Preparatory StudiesWebinar slides - Internet of Things Convergence: Preparatory Studies
Webinar slides - Internet of Things Convergence: Preparatory StudiesCreative Industries KTN
 
Blockchain and international trade, trade finance, and supply chain (1)
Blockchain and international trade, trade finance, and supply chain (1)Blockchain and international trade, trade finance, and supply chain (1)
Blockchain and international trade, trade finance, and supply chain (1)Sunny Sian
 
Iot hub agent
Iot hub agentIot hub agent
Iot hub agentrtfmpliz1
 
From class to architecture
From class to architectureFrom class to architecture
From class to architectureMarcin Hawraniak
 
Modeling Blockchain Applications v1.02
Modeling Blockchain Applications v1.02Modeling Blockchain Applications v1.02
Modeling Blockchain Applications v1.02Matt Lucas
 
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...eCommConf
 
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019Matthias Noback
 

Similar to ONE_DSL4negotiations (20)

One Dsl4negotiations Presented
One Dsl4negotiations PresentedOne Dsl4negotiations Presented
One Dsl4negotiations Presented
 
How to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contractHow to design, code, deploy and execute a smart contract
How to design, code, deploy and execute a smart contract
 
Ferronato Finnegan One Digibiz Long
Ferronato Finnegan One Digibiz LongFerronato Finnegan One Digibiz Long
Ferronato Finnegan One Digibiz Long
 
E Procurement Space Maturity Assessment Srm+ Ver
E Procurement Space Maturity Assessment   Srm+ VerE Procurement Space Maturity Assessment   Srm+ Ver
E Procurement Space Maturity Assessment Srm+ Ver
 
Smalltalk speaks dot net
Smalltalk speaks dot netSmalltalk speaks dot net
Smalltalk speaks dot net
 
Copyright Management for the LUISA Semantic Learning Content Management System
Copyright Management for the LUISA Semantic Learning Content Management SystemCopyright Management for the LUISA Semantic Learning Content Management System
Copyright Management for the LUISA Semantic Learning Content Management System
 
Building Blockchain Projects on Enterprise Ethereum [Webinar]
Building Blockchain Projects on Enterprise Ethereum [Webinar] Building Blockchain Projects on Enterprise Ethereum [Webinar]
Building Blockchain Projects on Enterprise Ethereum [Webinar]
 
WebML for OMG
WebML for OMGWebML for OMG
WebML for OMG
 
Agile contracting- APM Contracts and Procurement SIG, July 2016
Agile contracting- APM Contracts and Procurement SIG, July 2016Agile contracting- APM Contracts and Procurement SIG, July 2016
Agile contracting- APM Contracts and Procurement SIG, July 2016
 
IBM Blockchain Platform Technical Introduction v1.1
IBM Blockchain Platform Technical Introduction v1.1IBM Blockchain Platform Technical Introduction v1.1
IBM Blockchain Platform Technical Introduction v1.1
 
RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016RTP Bluemix Meetup April 20th 2016
RTP Bluemix Meetup April 20th 2016
 
Polygon vs Ethereum.pdf
Polygon vs Ethereum.pdfPolygon vs Ethereum.pdf
Polygon vs Ethereum.pdf
 
Webinar slides - Internet of Things Convergence: Preparatory Studies
Webinar slides - Internet of Things Convergence: Preparatory StudiesWebinar slides - Internet of Things Convergence: Preparatory Studies
Webinar slides - Internet of Things Convergence: Preparatory Studies
 
Blockchain and international trade, trade finance, and supply chain (1)
Blockchain and international trade, trade finance, and supply chain (1)Blockchain and international trade, trade finance, and supply chain (1)
Blockchain and international trade, trade finance, and supply chain (1)
 
Iot hub agent
Iot hub agentIot hub agent
Iot hub agent
 
From class to architecture
From class to architectureFrom class to architecture
From class to architecture
 
Modeling Blockchain Applications v1.02
Modeling Blockchain Applications v1.02Modeling Blockchain Applications v1.02
Modeling Blockchain Applications v1.02
 
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...
David Wang's Presentation at Emerging Communication Conference & Awards 2009 ...
 
Domain-Driven Design
Domain-Driven DesignDomain-Driven Design
Domain-Driven Design
 
Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019Hexagonal Symfony - SymfonyCon Amsterdam 2019
Hexagonal Symfony - SymfonyCon Amsterdam 2019
 

ONE_DSL4negotiations

  • 1. Creazione di un DSL per definire processi di Negoziazione (e generazione codice eseguibile) Il progetto Open Negotiation Environment Giulio Montanari, Soluta.Net
  • 3. 3 www.soluta.net gmontanari@soluta.net The ONE projects ONE Open Negotiation Environment Proposal/Contract no.: FP6-034744 www.one-project.eu Started: September 2006 End: March 2009
  • 4. 4 www.soluta.net gmontanari@soluta.net What a Negotiation is From UniSG, ONE Partner “Negotiation is a process during which two or more entities try to reach a mutual acceptable agreement on one or several issues through some kind of communication.” Single/multilateral Single/Multiple Issue
  • 5. 5 www.soluta.net gmontanari@soluta.net Various kind of models Reck, 1992, cited in Reck, 1994 “The word auction describes the process of buying and selling of goods through bidding.“ Many types...
  • 7. 7 www.soluta.net gmontanari@soluta.net ONE Objective ''The main objective of the ONE project is to enrich Digital Ecosystems with an open, decentralised negotiation environment and enabling tools that will allow organisations to create contract agreements for supplying complex, integrated services as a virtual organisation/coalition'' ''To solve these problems, a negotiation environment must be affordable, open, not centrally controlled, support the sharing of knowledge via flexible security and trust policies and be able to learn and evolve with the changing market conditions'' to allow users to create and customized their own negotiation models and to run them in a web/community based environment
  • 9. 9 www.soluta.net gmontanari@soluta.net The environments ONE ONE Project Development Negotiation Factory (negotiation modelling) Negotiation Runtime Environment Negotiation Setup Negotiation Execution) Announcement Publish
  • 10. 10 www.soluta.net gmontanari@soluta.net The component model Factory Environment DKB Security Setup Execution Trust&Rep Recomm. Announce Publish Eclipse Rich UI Execute Negotiation Model Web based UI Web based UI Negotiation ONE Node Simplified
  • 11. 11 www.soluta.net gmontanari@soluta.net Deployment model Participant Participant One Node (Trusted Node) One Node (Negotiation Node) One Node (Trusted Node) One Node (Trusted Node) One Node (Negotiation Node) Decentralized KB One Node (Trusted Node) One Node ()rusted Node Participant Participant Participant Participant Owner One Node (Trusted Node) Negotiation A Negotiation B Decentralized KB Decentralized KB Owner One Node One Node One Node One Node Note: A Trusted Node is a ONE Node just in a different role P2P network P2P network
  • 12. 12 www.soluta.net gmontanari@soluta.net MDA Abstraction layers (M2) (M1) Negotiation Models “expressions” Negotiation Language “syntax” (M0) Negotiation Data “values” MOF “thing” Abstraction (M3) higher lower DSL Models Data
  • 13. 13 www.soluta.net gmontanari@soluta.net Role of a DSL Ease effort of creating model specific to a domain Capture domain knowledge/store assets! Terms like: Acceptance, contraints, offer, counter offer, price, reduction, admission, issue, discount, negotiations, agreement, owner, participant,... Actions like: To admit, To offer, to agree, to rebate, to discount, to retract, to be invited,... A “template” for models creation From a DSL many models can be created Allow an high level of reuse of tooling which becomes model independent No development in case of new models Allow adaptability/flexibility Increase the ROI
  • 14. 14 www.soluta.net gmontanari@soluta.net How to create a DSL? 1) UML/BPMN subset UML is too complex, the effort requires does not allow BPMN is not Negotiation specific, customization is required Customization of a UML tool feasible 2) UML/BPMN Profile Doable but not effective when creating a model Hard to tailor an UML tool Customization of a UML tool feasible 3) A new language (MOF or ECORE) Hard to create Very effective A new DSL Editor has to be created ONE Project decided for the 3rd approach
  • 15. 15 www.soluta.net gmontanari@soluta.net Creating a DSL Ok we know we have to create a MOF model, and now? We decided to use Sparx System Enterprise Architect (a cost-effective commercial UML Editor) which has the ability to create MOF models and to export XMI 1.2, MOF 1.4 for reusability Negotiation meta model created as instances of MOF From the computable MOF metamodel through a series of transformation we generate the executable code
  • 16. 16 www.soluta.net gmontanari@soluta.net ONE Metamodel: concept class Negotiation Concepts Negotiation {leaf} - id: String - version: String - creationDate: Date - name: String + visibility: VisibilityKind NegotiationElement Item NegotiationProtocol {leaf} Actor - id: String NegotiationType {abstract} NegotiationRole {abstract} NegotiationElement Issue NegotiationMessage Agreement «enumeration» VisibilityKind private public resolves +issue 1..* +issue 1..* composed of +sub-issue composedOf 0..* +item 1..* comprisedOf specifies +role 2..* +protocol 1 executes 1 defines +party2..* defines has +role1 +negotiation 0..* is involved +party 1..* Name: Package: Version: Author: Negotiation Concepts «metamodel» NegotiationMetaModel 1.0 WIT SimplifiedResult of work of the Waterford Institute of Technology, Ireland
  • 17. 17 www.soluta.net gmontanari@soluta.net One Metamodel: Information MM class Information MetaModel NegotiationMetaModel:: Negotiation {leaf} Issue NegRule::Criteria NegotiationElement {abstract} - id: String Attribute - name: String Types::Type {abstract}Item AttributeValue NegRule:: NegotiationRule {abstract} has +type 1 +value +issue 1..* composed of co-related* +sub-issue composedOf0..* +criteria * constrainedBy * +attribute 1..* constrainedBy +criteria * +item 1..* Name: Package: Version: Author: Information MetaModel «metamodel» NegInformationMetaModel 1.0 WIT Simplified class Facility Management Information Model «Item» BuildingCleaning - id: String «Attribute» - name: String - address: String - type: String «Issue» Price - id: String «Attribute» - price: int Nam e: Package: Version: Author: Facility Management Information Model Inform ation Model 1.0 WIT Result of work of the Waterford Institute of Technology, Ireland
  • 18. 18 www.soluta.net gmontanari@soluta.net One Metamodel: Protocol MM class Principal Negotiation Protocol Conceptsl NegotiationProtocol {leaf} - id: String - name: String NegotiationMetaModel:: Negotiation {leaf} NegotiationMetaModel:: Actor - id: String NegotiationType {abstract} NegRole:: NegotiationRole {abstract} Behaviour ProtocolBehaviour {leaf} SuperStage Neg Stages:: Negotiating {leaf} PreNegotiation Neg Stages:: Readiness {leaf} PreNegotiation Neg Stages:: Admission {leaf} Ab stractStage Neg Stages:: InitialStage {leaf}SuperStage Neg Stages:: Acceptance {leaf} AbstractStage Neg Stages:: FinalStage {abstract} NegRole:: Participant {leaf} NegRole:: Owner {leaf} NegotiationElement NegMessages:: NegotiationMessage NegRule:: NegotiationRule {abstract} - id: String - name: String - expression: String 1 defines contains starts from 1 starts with 1 contains 1 contains +behaviour1 specifies 1 1..3 terminates at +negotiation 0..* is involved +party 1..* +protocol 1 executes specifies +role 2..* defines 1 governs * has +role 1 Name: Package: Version: Author: Principal Negotiation Protocol Conceptsl «metamodel» NegProtocolMetaModel 1.1 WIT Simplified class eTender Protocol Model «NegotiationProtocol» eTenderProtocol - id: String «Owner» Owner «Participa... Participant «ProtocolBehaviour» OwnerProtocolBehaviour - id: String «ProtocolBehaviour» ParticipantProtocolBehaviour - id: String «ProtocolRule» NegotiatingTimeOutRule - id: String - expression: String «ProtocolRule» NegotiatingStartTimeRule - id: String - expression: String «specifies» «specifies» «governs» «governs» «specifies»«specifies» Nam e: Package: Version: Author: eTender Protocol Model Protocol Model 1.0 WIT Result of work of the Waterford Institute of Technology, Ireland
  • 19. 19 www.soluta.net gmontanari@soluta.net The protocol model A class diagram models also a state diagram and requires a notation mapping for defining the modelling at M1 stm OwnerProtocolBehaviour Initial ADMISSION READINESS NEGOTIATING Waiting «Do» + do / waitEvent(receiveMessage(Offer)) NotAgreed EvaluatingOffer «Ingress» + entry / evaluateMessage(Offer) «Do» + entry / createMessage(OfferResponse) «Egress» + exit / sendMessage(OfferResponse) Acceptance Agreed CreatingRFP «Do» + do / createMessage(RequestForProposal) WaitingforAdmissionRequest «Do» + do / waitEvent(receiveMessage(AdmissionRequest)) EvaluatingParticipant «Do» + do / createMessage(AdmissionResponse)[sendMessage(AdmissionResponse)] [OfferResponse.value = Accept] receiveMessage(Offer) /sendMessage(RequestForProposal) [receiveMessage(AdmissionRequest)]
  • 20. 20 www.soluta.net gmontanari@soluta.net Action language issue Negotiations need imperative language for decision block “If time left <5 minutes and new offers arrive, then extend negotiation deadline by other 10 minutes” “Final price is equal to the value of the second offer arrived “ Behavioural logic (xUML) in UML/OMG is a recent addiction Action language or OCL We opt to go with Java Script which was added to the XMI streamed-line model Not formal but practical for the need of the project Straight to the runtime where the Java code can be executed
  • 21. 21 www.soluta.net gmontanari@soluta.net ONE DSL Model example Simplified Negotiation Metamodel Negotiation Notation
  • 23. 23 www.soluta.net gmontanari@soluta.net How it was created and used .eap file Generates NMM XMI .ecore file Negotiation Model Editor NM XMI NM XMI with values Ecore->JPDL transformation JPDL transformation Sparx Systems EA Custom Code Setup Negotiation Engine Bean Shell
  • 25. 25 www.soluta.net gmontanari@soluta.net The Setup phase: adding data The Setup create a negotiation instance adding data to the model ONE SetUp KB Negotiation Model XMI Input GUI ZK AJAX Automatic Generation Negotiation Instance XMI Read Store
  • 26. 26 www.soluta.net gmontanari@soluta.net Setup: snap-shot <negmod:InformationModel xmi:id="_fE-B8DODEdysSf1x7kCsFQ"> <primitiveTypes xmi:type="negmod:OneBoolean" xmi:id="_fE-B8TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneByte" xmi:id="_fE-B8jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneChar" xmi:id="_fE-B8zODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneDate" xmi:id="_fE-B9DODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneDouble" xmi:id="_fE-B9TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneFloat" xmi:id="_fE-B9jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneInt" xmi:id="_fE-B9zODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneLong" xmi:id="_fE-B-DODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneShort" xmi:id="_fE-B-TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneString" xmi:id="_fE-B-jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneImage" xmi:id="_fE-B-jKKKdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneXML" xmi:id="_fE-B-XMLKdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneBinary" xmi:id="_fE-BYNARYdysSf1x7kCsFQ"/> <items xmi:type="negmod:Item" xmi:id="_HzoM8DOEEdysSf1x7kCsFQ" name="MobilePhone" issues="_cWQigDOPEdysSf1x7kCsFQ _IdbhcDOQEdysSf1x7kCsFQ"> <attributes xmi:type="negmod:Attribute" xmi:id="_RdId0DOEEdysSf1x7kCsFQ" name="brand" type="_fE-B-jODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_AjgNQDOPEdysSf1x7kCsFQ" name="model" type="_fE-B-jODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_DWBYMDOPEdysSf1x7kCsFQ" name="type" type="_fE-B-jODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_GDBJ8DOPEdysSf1x7kCsFQ" name="cameraDetail" type="_fE-B-jODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_I9SisDOPEdysSf1x7kCsFQ" name="isBlueTooth" type="_fE-B8TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kCsFQ" name="isColourScreen" type="_fE-B8TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_SobLQDOPEdysSf1x7kCsFQ" name="isGPRS" type="_fE-B8TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_VrLxoDOPEdysSf1x7kCsFQ" name="isRadio" type="_fE-B8TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_YW_3oDOPEdysSf1x7kCsFQ" name="isLocked" type="_fE-B8TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKKKK" name="PhonePicture" type="_fE-B-jKKKdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKXML" name="PhoneXML" type="_fE-B-XMLKdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKBIN" name="PhoneBinary" type="_fE-BYNARYdysSf1x7kCsFQ"/> </items> <issues xmi:type="negmod:Issue" xmi:id="_cWQigDOPEdysSf1x7kCsFQ" name="Price" constrainedBy="_GCIm4DOUEdysSf1x7kCsFQ _SNd7UDOUEdysSf1x7kCsFQ"> <attributes xmi:type="negmod:Attribute" xmi:id="_6vmfgDOPEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_C4stkDOQEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/> </issues> <issues xmi:type="negmod:Issue" xmi:id="_IdbhcDOQEdysSf1x7kCsFQ" name="Usage"> <attributes xmi:type="negmod:Attribute" xmi:id="_LlZ_ADOQEdysSf1x7kCsFQ" name="isUsed" type="_fE-B8TODEdysSf1x7kCsFQ"/> </issues> <criteria xmi:type="negmod:Criteria" xmi:id="_eZtykDOQEdysSf1x7kCsFQ" name="ReleasedDate"> <attributes xmi:type="negmod:Attribute" xmi:id="_geVVsDOQEdysSf1x7kCsFQ" name="date" type="_fE-B9DODEdysSf1x7kCsFQ"/> </criteria> <criteria xmi:type="negmod:Criteria" xmi:id="_GCIm4DOUEdysSf1x7kCsFQ" name="StartPrice"> <attributes xmi:type="negmod:Attribute" xmi:id="_IDCHoDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_MxEkEDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/> </criteria> <criteria xmi:type="negmod:Criteria" xmi:id="_SNd7UDOUEdysSf1x7kCsFQ" name="ReservePrice"> <attributes xmi:type="negmod:Attribute" xmi:id="_UhInEDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ"/> <attributes xmi:type="negmod:Attribute" xmi:id="_WsdPIDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ"/> </criteria> </negmod:InformationModel> xmi:type="negmod:Attribute" name="brand" xmi:type="negmod:Attribute" name="isBlueTooth" <negmod:InformationModel xmi:id="_fE-B8DODEdysSf1x7kCsFQ"> <primitiveTypes xmi:type="negmod:OneBoolean" xmi:id="_fE-B8TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneByte" xmi:id="_fE-B8jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneChar" xmi:id="_fE-B8zODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneDate" xmi:id="_fE-B9DODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneDouble" xmi:id="_fE-B9TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneFloat" xmi:id="_fE-B9jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneInt" xmi:id="_fE-B9zODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneLong" xmi:id="_fE-B-DODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneShort" xmi:id="_fE-B-TODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneString" xmi:id="_fE-B-jODEdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneImage" xmi:id="_fE-B-jKKKdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneXML" xmi:id="_fE-B-XMLKdysSf1x7kCsFQ"/> <primitiveTypes xmi:type="negmod:OneBinary" xmi:id="_fE-BYNARYdysSf1x7kCsFQ"/> <items xmi:type="negmod:Item" xmi:id="_HzoM8DOEEdysSf1x7kCsFQ" name="MobilePhone" issues="_cWQigDOPEdysSf1x7kCsFQ _IdbhcDOQEdysSf1x7kCsFQ"> <attributes xmi:type="negmod:Attribute" xmi:id="_RdId0DOEEdysSf1x7kCsFQ" name="brand" type="_fE-B-jODEdysSf1x7kCsFQ" value="Nokia"/> <attributes xmi:type="negmod:Attribute" xmi:id="_AjgNQDOPEdysSf1x7kCsFQ" name="model" type="_fE-B-jODEdysSf1x7kCsFQ" value="N70"/> <attributes xmi:type="negmod:Attribute" xmi:id="_DWBYMDOPEdysSf1x7kCsFQ" name="type" type="_fE-B-jODEdysSf1x7kCsFQ" value="321/7"/> <attributes xmi:type="negmod:Attribute" xmi:id="_GDBJ8DOPEdysSf1x7kCsFQ" name="cameraDetail" type="_fE-B-jODEdysSf1x7kCsFQ" value="2Mp"/> <attributes xmi:type="negmod:Attribute" xmi:id="_I9SisDOPEdysSf1x7kCsFQ" name="isBlueTooth" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kCsFQ" name="isColourScreen" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/> <attributes xmi:type="negmod:Attribute" xmi:id="_SobLQDOPEdysSf1x7kCsFQ" name="isGPRS" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/> <attributes xmi:type="negmod:Attribute" xmi:id="_VrLxoDOPEdysSf1x7kCsFQ" name="isRadio" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/> <attributes xmi:type="negmod:Attribute" xmi:id="_YW_3oDOPEdysSf1x7kCsFQ" name="isLocked" type="_fE-B8TODEdysSf1x7kCsFQ" value="true"/> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKKKK" name="PhonePicture" type="_fE-B-jKKKdysSf1x7kCsFQ"></attributes> <attributes xmi:type="negmod:Attribute" xmi:id="_OeStIDOPEdysSf1x7kKXML" name="PhoneXML" type="_fE-B-XMLKdysSf1x7kCsFQ"></attributes> </items> <issues xmi:type="negmod:Issue" xmi:id="_cWQigDOPEdysSf1x7kCsFQ" name="Price" constrainedBy="_GCIm4DOUEdysSf1x7kCsFQ _SNd7UDOUEdysSf1x7kCsFQ"> <attributes xmi:type="negmod:Attribute" xmi:id="_6vmfgDOPEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="123"/> <attributes xmi:type="negmod:Attribute" xmi:id="_C4stkDOQEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/> </issues> <issues xmi:type="negmod:Issue" xmi:id="_IdbhcDOQEdysSf1x7kCsFQ" name="Usage"> <attributes xmi:type="negmod:Attribute" xmi:id="_LlZ_ADOQEdysSf1x7kCsFQ" name="isUsed" type="_fE-B8TODEdysSf1x7kCsFQ" value="false"/> </issues> <criteria xmi:type="negmod:Criteria" xmi:id="_eZtykDOQEdysSf1x7kCsFQ" name="ReleasedDate"> <attributes xmi:type="negmod:Attribute" xmi:id="_geVVsDOQEdysSf1x7kCsFQ" name="date" type="_fE-B9DODEdysSf1x7kCsFQ"/> </criteria> <criteria xmi:type="negmod:Criteria" xmi:id="_GCIm4DOUEdysSf1x7kCsFQ" name="StartPrice"> <attributes xmi:type="negmod:Attribute" xmi:id="_IDCHoDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="100"/> <attributes xmi:type="negmod:Attribute" xmi:id="_MxEkEDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/> </criteria> <criteria xmi:type="negmod:Criteria" xmi:id="_SNd7UDOUEdysSf1x7kCsFQ" name="ReservePrice"> <attributes xmi:type="negmod:Attribute" xmi:id="_UhInEDOUEdysSf1x7kCsFQ" name="amount" type="_fE-B9TODEdysSf1x7kCsFQ" value="200"/> <attributes xmi:type="negmod:Attribute" xmi:id="_WsdPIDOUEdysSf1x7kCsFQ" name="currency" type="_fE-B-jODEdysSf1x7kCsFQ" value="Euro"/> </criteria> </negmod:InformationModel> Attribute" name="brand" value="Nokia" Attribute" name="isBlueTooth" value="true"
  • 27. 27 www.soluta.net gmontanari@soluta.net Conclusions MDA is supported by Open Source Communities Standards are sufficiently mature for supporting a challenging project like ONE The business analysts feel confident when modelling using DSL The definition of a DSL is still a hard task to accomplish Still a need to use a plethora of tools to “execute” DSL Next step:using the natural language to create models (SBVR)