transformation of edoc behavior models to a telecommunication service … · 2009-05-28 · service...
TRANSCRIPT
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Transformation of EDOC Behavior Models to a
Telecommunication Service Provisioning Platform
Joachim Hößler & Dr. Olaf Kath Technical University BerlinDr. Marc Born & Andrej BlazarenasFraunhofer FOKUSMario WinklerIKV++ Technologies AG
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Why Service Creation for 3Gb Networks?
- service offerings differentiate network operators
- time from service idea to deployed service 0 + small ε
But: Networks are to complex for service creators
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The 3Gb Playground at FOKUS
ISDNGSM
Internetbackbone(IPv4/v6)
WLAN802.11bUMTS
Intranet (IPv4/v6)
GPRS RemoteGateways
(Test beds)
P-Server (OCS)
MGW
SIP (SER)
Parlay SCEs
P-GTW (CTI)
Remote P-AS (Apps)
Mobile Access Router
P-Server (jNETx)
P-AS (Apps)
TASParlay AS/GW Simulators:
Parlay API
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Why Model Driven Service Creation?
Support for service development from service idea down to running solution
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
As ManagementAs Managementrequested itrequested it
As the Project LeaderAs the Project Leaderdefined itdefined it
As SystemsAs Systemsdesigned itdesigned it
As ProgrammingAs Programmingdeveloped itdeveloped it
As OperationsAs Operationsinstalled itinstalled it
What the What the customer wantedcustomer wanted
Why Model Driven Service Creation?
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Our vision:
service creation tools for 3Gb services running in an environment that consistentlyconnects the output of one with the input of another
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
system developmentsystem development
system operationsystem operation
serviceidea and
requirements
serviceserviceideaidea and and
requirementsrequirements
technology-independent
service model
technologytechnology--independentindependent
serviceservice modelmodel
technologyspecific
service model
technologytechnologyspecificspecific
serviceservice modelmodel
system-components
systemsystem--componentscomponents
system integrationtests and running
system
system system integrationintegrationteststests and and runningrunning
systemsystem
technologyindependent
service model
technologytechnologyindependentindependent
serviceservice modelmodel
platform-independent Modeling tool
platform-independent Modeling tool
platform-specific
Modeling tool
platform-specific
Modeling tool
integrated-developmentenvironment
integrated-developmentenvironment
CORBA/Parlayfor integrationand operaton
CORBA/Parlayfor integrationand operaton
Cus tome r &Se rvic e -
Manag eme nt
Se rvic eImple me ntations
http-Se rve r
Authentic ation &Ses s ion-
Manag eme nt
Web
serv
er Exte rnal Cus to me rAdminis tratio n
Exte rnal Se curityInfras truc ture
External ServiceInfras truc ture
External ServiceSuppo rting Co mpo ne nts
Cus tome rInte rne t-PC
HotlineIntra ne t-PC
PlatformAdminis tration
Intra ne t-PC
S ervic eAdminis tration
Intranet-P C
Databas e
CORBA
IIOP
http
e nago OSP
RMI
artifactsartifacts in anin anMDA MDA inspiredinspired
softwaresoftwareengineering engineering
processprocess
automatedautomatedartifactartifact
transfertransferbetweenbetween toolstools
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
projectproject runrun time time
Our Tools in an Example Process
platform-independent
modeling
platform-independent
modeling
platform-specificmodeling
platform-specificmodeling
integrated-developmentenvironment
integrated-developmentenvironment
Service platformfor integrationand operation
Service platformfor integrationand operation
Cus tome r &Servic e-
Manageme nt
Se rvic eImple mentations
http-Se rve r
Authenticatio n &Ses s ion-
Manageme nt
Web
serv
er External Cus to merAdminis tratio n
External SecurityInfras tructure
External ServiceInfras tructure
External ServiceSupporting Co mpo nents
Cus tomerInte rnet-PC
HotlineIntranet-PC
PlatformAdminis tration
Intranet-PC
ServiceAdminis tration
Intranet-P C
Databas e
CORBA
IIOP
http
enago OSP
RMI
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The approach to the vision:
The Big Picture
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
integratedprogrammingenvironment
integratedprogrammingenvironment
platformspecific
modeling
platformspecific
modeling
platformindependent
modeling
platformindependent
modelingtool
sto
ols
repositoryfor platform
indep. models
repositoryfor platform
indep. models
repositoryfor platform
specific models
repositoryfor platform
specific models
repositorycode
fragments
repositorycode
fragments
mod
elin
gm
odel
ing
infra
stru
ctur
ein
frast
ruct
ure
transformerPIM to PSMtransformerPIM to PSM
trans
form
atio
nstra
nsfo
rmat
ions
transformerPSM
to code
transformerPSM
to code
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
eclipseJava IDEeclipse
Java IDEenago/Parlay
modeling-tool
enago/Parlaymodeling-
tool
UML/EDOCmodeling
tool
UML/EDOCmodeling
tooltool
sto
ols
repository for UML/EDOC-
models
repository for UML/EDOC-
models
repositoryfor enago/Parlay
models
repositoryfor enago/Parlay
models
repositoryfor Java
fragments
repositoryfor Java
fragments
mod
elin
gm
odel
ing
infra
stru
ctur
ein
frast
ruct
ure
transformerUML/EDOC
to enago/Parlay
transformerUML/EDOC
to enago/Parlay
trans
form
atio
nstra
nsfo
rmat
ions
transformerUML/Parlay
to Java
transformerUML/Parlay
to Java
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Current achievements:
- MOF and OCL based Meta-Tools
- modeling infrastructure for tool collaboration
- model transformers- platform independent modeling tool based on UML/EDOC
- platform specific modeling tool based on UML/Parlay
- eclipse (IBM IDE) integration
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Current achievements:
- MOF and OCL based Meta-Tools
- modeling infrastructure for tool collaboration
- model transformers- platform independent modeling tool based on UML/EDOC
- platform specific modeling tool based on UML/Parlay
- eclipse (IBM IDE) integration
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
test anddeployment
tool
test anddeployment
tool
IDEIDE
medini medini modelingmodeling infrastructureinfrastructure
requirementsrequirementsmodelsmodels
system system analysisanalysismodelsmodels
system system designdesignmodelsmodels platformplatform
realizationrealizationmodelsmodels
testtestmodelsmodels
deploymentdeploymentmodelsmodels
requirementsengineering
tool
requirementsengineering
tool
systemanalysis
tool
systemanalysis
tool
system designtool
system designtool
System Modeling and Development Tools
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
clientclientclientclient
medini repository coremedini repository core
medini generatedrepository
medini generatedrepository
accesstechnology
CORBA
accesstechnology
CORBA
accesstechnology
XML
accesstechnology
XML
accesstechnology
WSDL/SOAP
accesstechnology
WSDL/SOAP
accesstechnologyJava RMI
accesstechnologyJava RMI
medini repositories
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Current achievements:
- MOF and OCL based Meta-Tools
- modeling infrastructure for tool collaboration
- model transformers- platform independent modeling tool based on UML/EDOC
- platform specific modeling tool based on UML/Parlay
- eclipse (IBM IDE) integration
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Independent Modeling:Users Perspective
UML/EDOCModel
Repository
Rational Rosebased Tool for
UML/EDOC PIM Modeling
enago/ParlayModel
Repository
Rational Rosebased Tool forenago/Parlay
Modeling
modeltransformers
JavaProgrammingEnvironment
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Independent Modeling:EDOC Overview• Enterprise Distributed Object Computing is an OMG
modeling standard for enterprise distributed systems– Component based definition of business process
modules, definition of component collaborationusing choreographies
– definition of information models and their connection to business processes
– definition of messaging based interactions between business components
• EDOC is being realized as an extension to the Rational Rose modeling tool– Specific modeling wizards, dialogs, …
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Independent Modeling:Our EDOC Front-End for Rational Rose
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
ProcessComponent
EDOC Choreography
ComponentUsage
Port
PortConnector
PortActivity
Transition
Connection
Protocol
uses
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Current achievements:
- MOF and OCL based Meta-Tools
- modeling infrastructure for tool collaboration
- model transformers- platform independent modeling tool based on UML/EDOC
- platform specific modeling tool based on UML/Parlay
- eclipse (IBM IDE) integration
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Specific Modeling :PIM to PSM Transformation
UML/EDOCModel
Repository
Rational Rosebased Tool for
UML/EDOC PIM Modeling
enago/ParlayModel
Repository
Rational Rosebased Tool forenago/Parlay
Modeling
modeltransformers
JavaProgrammingEnvironment
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Specific Modeling:Users Perspective
UML/EDOCModel
Repository
Rational Rosebased Tool for
UML/EDOC PIM Modeling
Rational Rosebased Tool forenago/Parlay
Modeling
modeltransformers
JavaProgrammingEnvironment
enago/ParlayModel
Repository
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Specific Modeling:The enago Platform• enago (product of IKV++ Technologies AG) is a
CORBA based platform for rapid definition, realization, deployment and operation of distributed services– introduces the service concept, services can be
provided, used, sold, accounted on and so forth– Services are being realized by software
components• Modeling support for enago is being realized as an
extension to the Rational Rose modeling tool– again specific modeling wizards, dialogs, …
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Specific Modeling:Our enago Front-End for Rational Rose
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behavior modeling (1)
• enago structural modeling comprises:– Services– Components– CORBA interfaces …
• Platform independent modeling supportschoreographies – Model the behavior of the structural concepts– Describe the interactions between the model elements
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behavior modeling (2)
• enago behavior modeling– The behavior descriptions are derived from the
choreographies of the PIM– Refinement and extension of the resulting model with
enago specific aspects– Description of the interaction between services and
enago components– Interaction via CORBA interfaces and the offered
operations
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behavior Context (1)
• Behavior is modeled using state machines• A Behavior is always defined in a specific
context (BehaviorContext)
BehaviourBehaviourContext
0..11
+the_behaviour
0..1
+the_context
1
OwnedBehaviour
StateMachinename : CorbaString
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behavior Context (2)
• Behavior contexts in enago:– Services– enago components– Service user interfaces
• More detailed modelling– Supported interfaces– Required interfaces
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behavior Context (3)
BehaviourContext
SupportedDef
isServiceInterface : Boolean(f rom EnagoIDL)
AbstractComponentDef(from EnagoIDL)
RequiredDef
is_multiple : BooleanisServiceInterface : Boolean
(f rom EnagoIDL)
EnagoComponentDef(f rom EnagoIDL)
ServiceDef
isSuspendable : BooleanisMultiparty : BooleanisAccountable : Boolean
(f rom EnagoIDL)
ServiceUserInterfaceDef(f rom EnagoIDL)
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
• Behavior description by means of states and transitions
• State:– Condition during the lifetime of an object– Perform actions– Wait for an event– Outgoing transitions– Incoming transitions
States and Transitions
State
Trans itionVertex
name : CorbaString
1 0..n
+target
1 +incoming0..n
IncomingTransitions
0..n1
+outgoing+source
1OutgoingTransi tions
StateMachinename : CorbaString
0..n
1
+vertices0..n
+the_machine1
OwnedVertices
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
• Represents a change from an originating state to a successor state
• Two different kinds of transitions:– Automatic transition:
• Occurs when the activities of the originating state completes
– Non-automatic transition:• Occurs when a named event is received by the system• Named events are especially operations of the CORBA
interfaces
Transition
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
• Non-automatic transitions will be modeled by triggers
• A trigger is always associated with a transitionCall trigger:
– Event of an operation call
Trigger
Transition
+the_transition
TransitionTrigger
Trigger
0..1
1
+the_trigger
0..n
0..1
CallTrigger
OperationDef
isOneway : Booleanparam eters : MDE::BaseIDL::ParameterDefcontexts : CorbaString
(f rom BaseIDL)
0..n1
+the_operation OperationCall +the_call
0..n1
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
• If a state is entered a number of actions can be performed
• Actions are ordered• Actions result in operation calls• Three kinds of actions:
– Entry actions– Do actions– Exit actions
Actions
State
10..n
+the_state+the_actions
StateActions0..n 1
Actionkind : MDE::EnagoBehaviour::ActionKind
+the_action
+the_operation 1
Operation
1
0..n0..n
OperationDef
isOneway : Booleanparameters : MDE::BaseIDL::ParameterDefcontexts : CorbaString
(f rom BaseIDL)
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Pseudostates
• One initial pseudo state• One or more terminate pseudo states
– Execution of the state machine terminates– Success or failure result
Vertexname : CorbaString
PseudoState
TerminatePseudoStateIni tialPseudoState
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Decision
• A decision is a special state– Contains no actions– Contains a decision condition– Depending on the decision condition, one of the
outgoing transitions is used
Vertexname : CorbaString
PseudoState
Decision
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The meta model
PseudoState
Ini tialPseudoState TerminatePseudoState
ActionKindENTRY_ACTIONDO_ACTIONEXIT_ACTION
<<enumeration>>
StateAction
kind : MDE::EnagoBehaviour::ActionKind10..n
+the_state
1
+the_actions
0..n StateActions
CallTrigger
OperationDef
isOneway : Booleanparameters : MDE::BaseIDL::ParameterDefcontexts : CorbaString
(f rom BaseIDL)
1
0..n
+the_operation 1
+the_action 0..n
Operation
0..n1
+the_call
0..n
+the_operation
1
OperationCall
Decision
Trigger
Transition
0..1
1
+the_trigger 0..1
+the_transition1
TransitionTrigger
Vertexname : CorbaString
1 0..n
+target
1 +incoming0..n
IncomingTransitions
0..n1
+outgoing
0..n+source
1OutgoingTransitions
StateMachinename : CorbaString
0..n
1
+vertices0..n
+the_machine1
OwnedVertices
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Platform Specific Modeling:enago and Parlay • Parlay services are visible as a library of models
– Containing structure and behavior of the Parlay API and its implementation in the Parlay platform of FhIFOKUS
• A transformer from EDOC to enago + Parlay – is parameterized by the modeler, and maps
interactions between EDOC components to Parlay services usages
– both structure and behavior of EDOC models are mapped to such enago/Parlay models
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Current achievements:
- MOF and OCL based Meta-Tools
- modeling infrastructure for tool collaboration
- model transformers- platform independent modeling tool based on UML/EDOC
- platform specific modeling tool based on UML/Parlay
- eclipse (IBM IDE) integration
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
eclipse Integration:Users View
enago/ParlayModel
Repository
Rational Rosebased Tool forenago/Parlay
Modeling
modeltransformers
JavaProgrammingEnvironment
UML/EDOCModel
Repository
Rational Rosebased Tool for
UML/EDOC PIM Modeling
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
eclipse Integration:Purpose and Achievements• Purpose: automatic generation of Java
programming language code out of enago/Parlay models– The modeler refines the enago/Parlay model of
collaborating services– The services are being realized by software
components– These components are implemented in the Java
language• eclipse (IBM’s open source development platform)
provides a Java integrated development environment
• We use eclipse as target for code generation
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Results enable
• platform independent definition of business processes– with well defined semantics, based on EDOC– supported by graphical modeling tools
• platform specific definition of enago/Parlay services– with well defined semantics– Supported by graphical modeling tools and programming
environments• transformations between platform independent and platform
specific models as well as code generation– with well defined semantics, based on formal definition of
model transformation rules• a modeling infrastructure, supporting
– consistency and traceability of models– the integration of different modeling languages and
techniques into one environment
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Example
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The Buyer-Seller-Example
BuyerComponent
Buy
(from BuyerComponent)
<<initiates>>
SellerComponent
Sell
(from SellerComponent)
<<responds>>Sales
(from SalesProtocols)
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The Buyer-Seller-Example
QuoteBT
(from Sales)
OrderBT
(from Sales)
Sales
<<res ponds >>
<<res ponds >>
PaymentN oticeB T
(f rom Sa les)
<<res pond s >>
Quote
(from Qu oteBT )
QuoteBT
<<initiates >>
QuoteReques t
(from Qu oteBT )
<<res ponds >>
Order
(from OrderBT )
OrderConfirm ation
(from OrderBT )
OrderBT
<<res pond s >>
<<initiates>>
OrderDenied
(from OrderB T )
<<initiates >>
Paym entNoticeBT
Paym entNotice
(from Paym entNoticeBT )
<<res ponds >>
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The Buyer-Seller-ExampleThe Mapping Result
S ell_CB
(fro m S e l l e rCo m p o n e n tS e rvi ce )
B uy erCom ponentS ervic e
(f ro m S a l e sCom p o n en t s)
S ell
(fro m S e l l e rCo m p o n e n tS e rvi ce )
i_S ales
ini t iat es _Q uoteB T()ini ti ates _ Pa ym en tNot ic eB T()
init iates _O rderB T()
(fro m S a l e sP ro to co l s)
B uy
(fro m B u ye rCo m p o n e n tS e rvi ce )
B uy _CB
(fro m B u ye rCo m p o n e n tS e rvi ce )
S ellerCom ponentS ervic e(fro m S a l e sCo m p o n e n ts)
i_c b_S ales
< < oneway > > O rderConfirm ation()< < oneway > > O rderDenied()
(fro m S a l e sP ro to co l s)
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
The Buyer-Seller-ExampleThe Mapping Result
QuoteCalculatorService OrdersManagerService Ac counts ReceivableService
i_QuoteBT
<<oneway>> QuoteRequest()
(from SalesProtocols)
Quote
(from QuoteCalculatorService)
i_OrderBT
<<oneway>> Order()
(from SalesProtocols)
Order
(from Ord ersManagerService)
i_PaymentNoticeBT
<<oneway>> PaymentNotice()
(from SalesProtocols)
Payment
(from AccountsReceivableService)
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
BehaviourChoreographies
success<<PseudoStateDef>>
<<PseudoStateDef>>
QuoteBT<<PortActivityDef>>
<<TransitionDef>>
OrderBT<<PortActivityDef>>
<<TransitionDef>>
PaymentNoticeBT<<PortActivityDef>>
<<TransitionDef>>
<<TransitionDef>>
Sales
(f rom Sal esProtoc ols)
<<TransitionDef>>
<<PseudoStateDef>>
Sell<<PortActivityDef>>
<<TransitionDef>>
success<<PseudoStateDef>>
SellerComponent
<<PseudoStateDef>>
Buy<<PortActivityDef>>
<<TransitionDef>>
success<<PseudoStateDef>>
<<TransitionDef>>
BuyerComponent
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
BehaviourChoreographies
success
OrderDenied<<PortAct ivit yDef>>
OrderConfi rm ation<<PortActivityDef>>
<<TransitionDef>>
Order<<PortActivityDef>>
failure
<<TransitionDef>>
decision<<PseudoStateDef>>
<<Transit ionDef>>
<<PseudoStateDef>>
<<TransitionDef>>
<<TransitionDef>> <<Trans it ionDef>>
success
QuoteRequest<<PortActivityDef>>
Quote<<PortActivityDef>>
<<TransitionDef>>
<<TransitionDef>>
<<PseudoStateDef>>
<<TransitionDef>>
QuoteBT OrderBT
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
Behaviourenago OSP State Machines
BuyerComponentService
(f ro m Sal esCompone nts)
S0
S1
initiates_QuoteBT
S2
initiates_OrderBT
success
SellerComponentService(from SalesComponents)
S0
<<decision>>
Order
S1
entry/ OrderConfirmation
S2
entry/ OrderDeniedOrderDenied
S0
entry/ initiates_QuoteBTdo/ QuoteRequest
S1
entry/ init _OrderBTdo/ Order
Quote
success
OrderConfirmation
failure
OrdersManagerService
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
BehaviourJava Code
public class BuyerComponentServiceSSM extends SinglePartySSM {
…
// this operation will be called when this SSM is started
public void initialAction {
// here the implementor has to assign a valid referencefor sales_interface
i_QuoteBT result1 = m_BuyReq.initiates_QuoteBT();
result1.QuoteRequest();
}
…
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
BehaviourJava Code
public class i_cb_SalesImpl implements … {
public void Quote () {
stateTable.put(„i_cb_SalesImpl_ Quote“, Boolean.TRUE);
i_OrderBT result1 = m_BuyReq.initiates_OrderBT();
result1.Order();
}
}
}
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004
BehaviourJava Code
public class i_cb_SalesImpl implements … {
public void OrderConfirmation() {
if (stateTable.get(„i_cb_SalesImpl_ Quote“) == null) throw new RuntimeException(„incorrect state“);
stateTable.put(„i_cb_SalesImpl_ OrderConfirmation“, Boolean.TRUE);
}
public void OrderDenied() {
if (stateTable.get(„i_cb_SalesImpl_ Quote“) == null) throw new RuntimeException(„incorrect state“);
stateTable.put(„i_cb_SalesImpl_ OrderDenied“, Boolean.TRUE);
}
}
}
© TU Berlin, Fraunhofer FOKUS, and IKV++ Technologies AG, 2004