|Re: [stp-dev] Re: Follow on meeting about the Hybrid Model|
Guillaume Nodet ha scritto:
On 9/7/07, Andrea Zoppello <andrea.zoppello@xxxxxx> wrote:Hi Guillaume, I try to explain briefly about your doubt what are the means of the entities in that model. Guillaume Nodet ha scritto:I'm sorry I missed this meeting... :-( I have a few questions wrt to the meta model described at http://wiki.eclipse.org/STP_Metamodel The model defines the notion of service, binding and endpoint, but the comments below do not put any definition behind these concepts ? Do they have the same meaning than in WSDL ? If yes, where is the Interface ? In which case would a service have more than one endpoint ?This model aims to define both: 1) the concept of service in very similar way as it's in the webservices world so this is the reason for the presence of Service, ServiceBinding and Enpoint entities.Well, I assumed that, hence my question about the PortType / Interface. Usually a service has a collection of endpoint. Each endpoint has a binding, and each binding has an interface. The interface is the abstract model, the binding has the protocol informations and the endpoint has the location information.2) The concept of Process as a set of steps and transitions, each steps use a services with a particular binding. When you're using the model to define business process you really don't care about the services you just need to use in your step. Makin a very simple example suppose you have a business process defined in terms of three step. - Take Input -> Make Some Business Transformation -> Make Data Persistent -> Get Output this could be mapped to the service in: - TakeInput ( InputService) -> MakeSomeBusinessTransformation ( BusinessService ) -> MakeDataPersistent( BusinessService) -> GetOuptut( OutputService) In that way you've a process with four step and two of that are reusing the BusinessService. Then you coul put there the binding so you could have - TakeInput( InputService, JBIHttpInputBinding ) ->MakeSomeBusinessTransformation ( BusinessService, JBI-XSLT-ServiceEngineBinding ) ->MakeDataPersistent( BusinessService, JBI-JDBC-ServiceEngineBinding ) ->GetOuptut(OutputService, JBIHttpOutputComponent) But the "same business process" could have different "technological details" changing the binding association in the step instances so the same process could result in: - TakeInput( InputService, JBIJmsInputBinding ) ->MakeSomeBusinessTransformation ( BusinessService, JBI-XSLT-ServiceEngineBinding ) ->MakeDataPersistent( BusinessService, JBI-JDBC-ServiceEngineBinding ) ->GetOuptut(OutputService, JBIJmsOutputBinding)Also I don't really see why a process step would be linked to a binding ? It seems to me it should be linked to an Interface or an Endpoint (if we want the physical location)...
Ok i'll try to explain in that term.You can see the service as the Interface and the bindings as a particular service implementation.
Take the example of "BusinessTransformationService" you can do with: - JBI XSLT Service Engine - JBI-JavaBean Service Engine - Whatever you want this are the bindings...So in step you simply decide which implementation you choose for a particular process
It's like to instantiate a service instance with a particular binding.Whe choose to put that type of bind ( Step, Service, ServiceBinding ) in the Step
class, so you could.1) Resuse the Service ( maybe with different bindings ) across multiple processes.
2) Resuse the same binding for more than one servicesSpeaking in JBI terms a Step will be mapped to an endpoint, the properties associated to that
step will configure the endpoint that will go on configuration files.
The physical location URI and other details are expresses as properties of the steps.I'm not sure if you mean that the same process can be used with different bindings (it actually only uses the abstract model) or if you want to bind it to real endpoints.In the first case, I'd say there is a confusion between binding /interface. In the second case, the process should reference an endpoint (with the location information). Sorry If I missed something...
All technical details like URI and so on will be expressed as properties.I hope that now is clear, by the way i'm trying to get a working example that will generate
code for servicemix runtime with a basic process. Andrea Zoppello Engineering Eng. Informatica
Back to the top