<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Frank Michael Kraft&#039;s Blog &#187; Contract</title>
	<atom:link href="http://www.bpmnforum.net/blog27/tag/contract/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.bpmnforum.net/blog27</link>
	<description>Unifying Applications and Business Process Management in the Cloud</description>
	<lastBuildDate>Thu, 22 Jul 2010 08:33:17 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Weaving Executeability into UML Class Diagrams</title>
		<link>http://www.bpmnforum.net/blog27/model-driven/model-driven-architecture/weaving-executeability-into-uml-class-diagrams/</link>
		<comments>http://www.bpmnforum.net/blog27/model-driven/model-driven-architecture/weaving-executeability-into-uml-class-diagrams/#comments</comments>
		<pubDate>Sat, 27 Jun 2009 11:48:59 +0000</pubDate>
		<dc:creator>Frank Michael Kraft</dc:creator>
				<category><![CDATA[Model Driven Architecture]]></category>
		<category><![CDATA[Model Driven Development]]></category>
		<category><![CDATA[Action]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Business Object]]></category>
		<category><![CDATA[Constraint]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Executable]]></category>
		<category><![CDATA[MDA]]></category>
		<category><![CDATA[State]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog27/?p=323</guid>
		<description><![CDATA[Again about the First European Workshop on Behavior Mod [...]]]></description>
			<content:encoded><![CDATA[<p>Again about the First European Workshop on Behavior Modelling in Model Driven Architecture [<a href="http://www.ou.nl/eCache/DEF/2/06/802.html" target="_blank">BM-MDA</a>].</p>
<p>The second Presentation was about Weaving Executeability into UML Class Diagrams from Elvinia Riccobene of the Universtià degli Studi di Milano, Italy.</p>
<p>The introductory criticue about describing object contracts with a constraint language only (like OCL &#8211; or pre- and postconditions of methods / operations as mentioned before) was, that it was not possible to change the state of an object or a system by a postcondition. It was said, that it was better to describe this in an Abstract State Machine (ASM).</p>
<p>An ASM does not only describe preconditions for the execution of a function, but also the transition of the state &#8211; i.e. it is directly executable &#8211; platform independently (and thereby simulateable).</p>
<p>My personal opinion about this is, that in modelling the behavior of a business object a certain kind of nondeterminism is needed. For example if there would be a function &#8220;check credit limit&#8221; for a customer &#8211; this can be quite complex in terms of business functionality. So in an ASM you have the choice to model all the complexity of this decision, but then it is not a model any more, but it is the system implementation itself. So there is no other way than to do an abstraction and only model that ther outcome can be (granted, denied) or (granted, denied, manual decision needed) or whatever decision result needs to be modeled. If that is true, even in the ASM some nondeterminism is needed, which leads to limited executeability (i.e. a user must decide or chance or some simplified algorithm or the formalism is used for state space search).</p>
<p>But then the difference to modelling postconditions is not so big, because, the postcondition only states as well, that the result of the operation can be (granted, denied) or (granted, denied, manual decision needed). If the result is unary, then also the postcondition modelling can be used for execution.</p>
<p>In the succeeding part of the presentation it was explained in detail how ASM and UML class diagrams (as one example of any metamodel) can be weaved together to form new classes which are able to model the behavior in this language. But in my opinion first a common understanding on the more fundamental questions should be tried to reached, which I mentioned, before too much specific should deviate us from the discussion.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/model-driven/model-driven-architecture/weaving-executeability-into-uml-class-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Relation of BPMN Choreography Modeling and Pi-Calculus</title>
		<link>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/relation-of-bpmn-choreography-modeling-and-pi-calculus/</link>
		<comments>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/relation-of-bpmn-choreography-modeling-and-pi-calculus/#comments</comments>
		<pubDate>Wed, 04 Feb 2009 15:07:36 +0000</pubDate>
		<dc:creator>Frank Michael Kraft</dc:creator>
				<category><![CDATA[BPMN in Research]]></category>
		<category><![CDATA[Choreography]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Quality of Service]]></category>
		<category><![CDATA[Service]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog/?p=112</guid>
		<description><![CDATA[It could be asked this question: Communicating processe [...]]]></description>
			<content:encoded><![CDATA[<p>It could be asked this question: Communicating processes have an analogy to communicating programs. In the eighties there have been quite some publications about this, including Milners Pi calculus. So how is the relation of BPMN choreography and this?</p>
<p>My answer would be, that the Pi Calculus is a Low Level desription calculus for processes that communicate with each other, messages and message channels. This serves the simulation and analysis. The choreography model and the collaboration model are more like a notation with metamodel covering the processes and the messages, but not the message channels. It is more for modeling than for analysis, although the model can be input to the analysis and the simulation.<br />
Also every BPMN choreography model or collaboration model can be mapped to a Pi Calculus description, but not vice versa. Pi calculus is more general and has no notation. BPMN is guiding the modeling process and therefore easier to understand.</p>
<p>When one want to use the BPMN choreography model or collaboration model as input to a pi calculus conversion or a simulation and analysis, the quality of service contract needs to be specified before.</p>
<p><a href="http://www.bpmnforum.net/blog/bpmn/bpmn-in-research/quality-of-service-contracts/">http://www.bpmnforum.net/blog/bpmn/bpmn-in-research/quality-of-service-contracts/</a><br />
[ad]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/relation-of-bpmn-choreography-modeling-and-pi-calculus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quality of Service Contracts</title>
		<link>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/quality-of-service-contracts/</link>
		<comments>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/quality-of-service-contracts/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 11:12:19 +0000</pubDate>
		<dc:creator>Frank Michael Kraft</dc:creator>
				<category><![CDATA[BPMN in Research]]></category>
		<category><![CDATA[Choreography]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Quality of Service]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[State]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog/?p=73</guid>
		<description><![CDATA[[ad]
(1) speaks also about Quality of Service Contracts [...]]]></description>
			<content:encoded><![CDATA[<p>[ad]<br />
(1) speaks also about Quality of Service Contracts. In my understanding these questions need to be answered: Is the service synchronous or asynchronous. If it is asynchronous, are there queues (serialization contexts) or not? If there are queues, which type of queues like exactly once in order (EOIO) or Exactly Latest (<a href="http://www.google.com/patents?id=iJiQAAAAEBAJ&amp;dq=quality+of+service+exactly+latest">EL</a>). Also the question is relevant which granularity do the queues have.<br />
Why is this relevant? Why can this not merely be ignored as a technical detail of the implementation?<br />
It can not be ignored at the time of design of a contract, because it determines the possible situations (states of the process) that may occur and that need to be resolved in the design of the contract which implies the ability to design choreographies.<br />
To make an example. If it is only possible to update a sales order synchronously, then the contract needs not to be designed in a way to deal with a concurrent asynchronous cancellation of a previous sales confirmation, that might have happened in an asynchronous update scenario. And the resolution is not merely a technical resolution, but the resolution is better done on the business level – as for example discussed in (2). Therefore the QoS Contract implies needed resolutions on the business level – that need to be designed into the behavioral contract and into the syntactical contract.</p>
<h3>Bibliography</h3>
<p>1. Beugnard, Antoine, et al. Making Components Contract Aware. Computer. 1999, Vol. 32, 7, pp. 38 &#8211; 45. http://portal.acm.org/citation.cfm?id=621275.<br />
2. Lecture Notes in Computer Science: Non-desynchronizable Service Choreographies. Decker, Gero and Alistair Barros, Frank Michael Kraft and Niels Lohmann. Berlin / Heidelberg : Springer, 2008. Service-Oriented Computing – ICSOC 2008. Vol. 5364/2008, pp. 331-346. http://www.springerlink.com/content/9055736715131767/. ISSN 0302-9743 (Print) 1611-3349 (Online).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/quality-of-service-contracts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Defining a behavioral contract</title>
		<link>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/defining-a-behavioral-contract/</link>
		<comments>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/defining-a-behavioral-contract/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 10:18:34 +0000</pubDate>
		<dc:creator>Frank Michael Kraft</dc:creator>
				<category><![CDATA[BPMN in Research]]></category>
		<category><![CDATA[Choreography]]></category>
		<category><![CDATA[Behavior]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[State]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog/?p=68</guid>
		<description><![CDATA[When Web Service Components interact with each other, i [...]]]></description>
			<content:encoded><![CDATA[<p>When Web Service Components interact with each other, it is important to establish a reliable contract between them. Often the Contract is only defined on a syntactical level, i.e. the signature of the web services that each component offers. The paper (1) discusses, that additionally a behavioral contract is needed. It proposes even more contract levels: the synchronization level and the Quality-of-service level. But let us first discuss the behavioral contract. Some citations from the paper.</p>
<blockquote><p>When using a third-party component, contracts offer a specification against which you can validate that component. (1)</p></blockquote>
<p>This is in line with my <a title="earlier proposal" href="http://www.bpmnforum.net/blog/?p=3">earlier proposal</a> that this could be covered by what I call a Composite Integrated Development Environment.</p>
<p>Now for web service signatures, this is state of the art.</p>
<blockquote><p>Unfortunately, because the BankAccount specification does not define precisely the effect of operation executions, the user can only guess at their outcomes. (1)</p></blockquote>
<p>That is the problem. How is the behavioral contract specified?</p>
<blockquote><p>The client should only call a contractor routine in a state where the class invariant and the precondition of the routine are respected. In return, the contractor promises that when the routine returns, the work specified in the postcondition will be done, and the class invariant will be respected. (1)</p></blockquote>
<p>This means, that a behavioral contract should be specified in terms of preconditions of a web service and postconditions of it. In this case a composite IDE can validate models of services consumption against models of service provisioning.</p>
<p>In BPMN 2.0 the abstract process is a possible way to achieve this goal.  It defines which behavioral contract the participant offers and under which preconditions (process state) a service can be called. In the same way  in (2) the desynchronized choreographies can be seen as such. However in (2) the modeling process is top-down. In practice it could also be bottom-up. Especially if there are existing components with an implemented behavior which is modeled after the fact to allow for contract awareness.</p>
<h3>Bibliography</h3>
<p>1. Beugnard, Antoine, et al. Making Components Contract Aware. Computer. 1999, Vol. 32, 7, pp. 38 &#8211; 45. http://portal.acm.org/citation.cfm?id=621275.<br />
2. Lecture Notes in Computer Science: Non-desynchronizable Service Choreographies. Decker, Gero and Alistair Barros, Frank Michael Kraft and Niels Lohmann. Berlin / Heidelberg : Springer, 2008. Service-Oriented Computing – ICSOC 2008. Vol. 5364/2008, pp. 331-346. http://www.springerlink.com/content/9055736715131767/. ISSN 0302-9743 (Print) 1611-3349 (Online).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/bpmn/bpmn-in-research/defining-a-behavioral-contract/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benefits of Choreography modeling in a SOA</title>
		<link>http://www.bpmnforum.net/blog27/bpmn/benefits-of-choreography-modeling-in-a-soa/</link>
		<comments>http://www.bpmnforum.net/blog27/bpmn/benefits-of-choreography-modeling-in-a-soa/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 19:49:32 +0000</pubDate>
		<dc:creator>Frank Michael Kraft</dc:creator>
				<category><![CDATA[BPMN]]></category>
		<category><![CDATA[Choreography]]></category>
		<category><![CDATA[Action]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SOA]]></category>
		<category><![CDATA[State]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog/?p=16</guid>
		<description><![CDATA[[ad]

First, what is a Choreography Model? Spoken in ge [...]]]></description>
			<content:encoded><![CDATA[<p>[ad]</p>
<p>First, what is a Choreography Model? Spoken in general terms it does model the participants of a message exchange, the messages exchanged (not necessarily the structure of the message), which interactions (message exchanges) are desiged betreen the participants, who is the initiator of an interaction, and which interactions follow on which other interactions.</p>
<p>The benefits of modeling a Choreography are the general benefits of doing a design for anything. It gives transparency. It results in quality, because of clear-cut statements of the boundary conditions, if fosters collaboration by forcing to discuss the message exchange contract. It can be simulated and thereby problems can be found before implementation and the consistency can be checked with other models &#8211; especially process models of the participants.</p>
<p>Sending messages at unspecified points in time between participants and hoping, that they will somehow be processed may seem easier in the beginning, but experience shows, that this does not pay back. Error handling is especially difficult in distributed SOA landscapes. Therefore giving the interaction a backbond and skeleton by modeling it in the first place, is key to success.</p>
<p>This model could even be used in the runtime by letting systems validate messages that arrive or are being sent against the model. By this two things happen: (1) The quality of the model is forced to be on the highest level (in contrast to &#8220;just a drawing&#8221;) and (2) messages sent or received at the wrong time can be identified as contract violations (instead of clumsy debugging of the application coding).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/bpmn/benefits-of-choreography-modeling-in-a-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The role of Choreography modeling in a SOA</title>
		<link>http://www.bpmnforum.net/blog27/bpmn/the-role-of-choreography-modeling-in-a-soa/</link>
		<comments>http://www.bpmnforum.net/blog27/bpmn/the-role-of-choreography-modeling-in-a-soa/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 20:38:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[BPMN]]></category>
		<category><![CDATA[Choreography]]></category>
		<category><![CDATA[Business Process]]></category>
		<category><![CDATA[Business Process Platform]]></category>
		<category><![CDATA[Contract]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Service]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.bpmnforum.net/blog/?p=10</guid>
		<description><![CDATA[[ad]
A SOA consists of Process Components, each of whic [...]]]></description>
			<content:encoded><![CDATA[<p>[ad]<br />
A SOA consists of Process Components, each of which fulfil a certain business functionality, that interact with each other. One possibility is that a Composite Application does call Services of an underlying Business Process Platform &#8211; be it synchronously or asynchronously. Another possibility is, that Process Components of an unterlying Business Process Platform communicate with each other by mainly asynchronous web services. Examples for the first were mentioned above while examples for the second could be a Process Component for Supplier Relationship Management including Purchasing and a Process Component for handling the Delivery, that exchange asynconous XML messages with each other. Another example is the message exchange between a seller and a buyer.<br />
The modeling of a choreography can adress both purposes. It does focus on the exchange of the messages alone &#8211; i.e. internal details of the process components are not modeled in such a model.<br />
However it can server as a Top-Down Design methodology &#8211; if new Process Components will need to be designed, or &#8211; it can serve as a contract between two communication participants, that are adapted to the message exchange.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.bpmnforum.net/blog27/bpmn/the-role-of-choreography-modeling-in-a-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
