Friday, August 04, 2006

Service Description Language meets Service Factory

I have been working for quite some time now with the DSL Tools and spend the last couple of months on Service Factory and related to that a little bit on the Guidance Automation Toolkit. Now, I decided to integrate the two and see how easy it is to make customizations in Service Factory and call GAT recipes from the DSL Tools.

 

Both our DSL (Service Description Language) and Service Factory cover the same problem domain of “designing services” so this seems to be a perfect fit ;)

 

I decide to start simple and added two new custom commands to the message shape in our DSL. As you can see below we now have the opportunity to call the “Generate DataTypes” and “Generate MessageType” recipe from the message shape.

 

 

My first concern was to just make it work so I didn’t spend any time yet on optimizing the Service Factory recipes to make them match better the DSL. I reckon this is necessary to make the user experience of the DSL integrated in Service Factory better.

If we have a look at (some of) the properties of the DataContract (picture below) that is modelled in the message, we can see that the DataContract is defined in the “RestaurantData.Xsd”.

After selecting the “Service Factory: Generate DataType” command on the message shape we can see that the XSD that describes the DataContract is added to the Service Factory “datatypes” project and that a datatype class is generated out of the XSD file.

 

Another thing we can do now is generate a Message Type for the message that is modelled. In the picture below we can see that we can execute the “Service Factory: Generate Message Type” command and that we can send the necessary data from the message in the model to the recipe in the Service Factory package.

As said, the Service Factory recipes and wizard need some changes to make them fit better with the DSL. For example in this case we don’t need the “Response Class Name” textbox on the wizard because we are starting the recipe from one message in the model. To solve this we can of course execute this recipe from the Service Operation in our DSL or customize the Service Factory recipes.

 

In a future post I will share some more technical details on how to call GAT recipes from a DSL, how share data between the DSL and GAT, etc.

 

For me it was good to see that it is possible to combine DSL Tools and GAT and that is relatively easy to make changes in the Service Factory package (not shown yet).

To be continued...

posted on 8/4/2006 10:28:20 PM UTC  #   

Related Posts:
Slides and recording 'Build Your Own Software Factory'
Building Software Factories - Factories 201
Factories 201 - What should you strive for?
Factories 201 - With what would you build it?
Factories 201 - What do I tell my manager?
Factories 201 - What are they (concretely)?

Tracked by:
"Building a Domain Specific Language (23)" (Edward Bakker) [Trackback]
http://www.edwardbakker.nl/PermaLink,guid,e7c42baa-210a-48a0-993e-1c52798898cc.a... [Pingback]
"construction project checklist" (construction project checklist) [Trackback]
"phentermine diet pill" (phentermine diet pill) [Trackback]
"nokia 1110" (nokia 1110) [Trackback]
"Funny Quotes" (Funny Quotes) [Trackback]
"chicago gay dating" (chicago gay dating) [Trackback]
"cinema roma" (cinema roma) [Trackback]
"Sports Betting Rss Feed" (Sports Betting Rss Feed) [Trackback]
"babel" (babel) [Trackback]
"pc memory upgrade" (pc memory upgrade) [Trackback]
"popcorn recipe ebook" (popcorn recipe ebook) [Trackback]
"generic cialis next day" (generic cialis next day) [Trackback]
"gamblers" (gamblers) [Trackback]
"child custody" (child custody) [Trackback]
"SEIKO KINETIC SKH640" (SEIKO KINETIC SKH640) [Trackback]
"babysitter wanted fairbanks alaska" (babysitter wanted fairbanks alaska) [Trackback]
"paul posey tallahassee florida" (paul posey tallahassee florida) [Trackback]
"sauna mista milano" (sauna mista milano) [Trackback]
"Executive Office Furniture" (Executive Office Furniture) [Trackback]
"museo santa giulia brescia" (museo santa giulia brescia) [Trackback]
"how to make a sword" (how to make a sword) [Trackback]
"fotografico" (fotografico) [Trackback]
"rubber stamping sites" (rubber stamping sites) [Trackback]
"cd organizers" (cd organizers) [Trackback]
"viaggi abruzzo" (viaggi abruzzo) [Trackback]
"poor girls for marriage" (poor girls for marriage) [Trackback]
"si te vas mp3" (si te vas mp3) [Trackback]
"gadget audi" (gadget audi) [Trackback]
"lilith" (lilith) [Trackback]
"foto spogliatoio" (foto spogliatoio) [Trackback]
"dirty disney toons" (dirty disney toons) [Trackback]
"Software Factories Presentation for Internal LogicaCMG event" (Edward Bakker) [Trackback]
http://www.edwardbakker.nl/PermaLink,guid,84151c80-c50e-47d3-a8ee-5cbd51c9fb67.a... [Pingback]