SlideShare a Scribd company logo
1 of 38
Using Domain Specific Language(s) to Simplify Creating SOA Artifacts  SOA Symposium 2010 Guido Schmutz, Technology Manager / Partner Trivadis AG 5.10.2010, Berlin
Introduction ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
About Trivadis ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
„ Problem“ ,[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
„ Problem“ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts <wsdl:definitions xmlns:tns=&quot;http://trivadis.com/service/credit-card/v1&quot;    ...   name=&quot;CreditCardValidation-v1&quot;> <wsdl:types> <xsd:schema ...> </wsdl:types> <wsdl:message name=&quot;validateCardRequest&quot;> <wsdl:part name=&quot;request&quot;    element=&quot;tns:validateCreditCardPaymentRequest&quot;/> </wsdl:message> <wsdl:message name=&quot;validateCardResponse&quot;> <wsdl:part name=&quot;reply&quot;    element=&quot;tns:validateCreditCardPaymentResponse&quot;/> </wsdl:message> <wsdl:message name=&quot;invalidCreditCardNumberFault&quot;> <wsdl:part name=&quot;error„ element=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:message> <wsdl:portType name=&quot;CreditCardValidationPT&quot;> <wsdl:operation name=&quot;validateCard&quot;> <wsdl:input message=&quot;tns:validateCardRequest&quot;/> <wsdl:output message=&quot;tns:validateCardResponse&quot;/> <wsdl:fault name=&quot;InvalidCreditCardNumberFault&quot;    message=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:operation> </wsdl:portType> <wsdl:binding ...> <wsdl:service ...> </wsdl:definitions> <xs:schema xmlns:xs=„...&quot;    xmlns:tns=&quot;http://www.trivadis.com/cdm/credit-card/v1&quot;    targetNamespace= „http://www.trivadis.com/cdm/credit-card/v1 “ elementFormDefault=&quot;qualified&quot;    attributeFormDefault=&quot;unqualified&quot; version=&quot;1.0&quot;> <xs:element name=&quot;creditCard&quot; type=&quot;tns:CreditCardT&quot;/> <xs:complexType name=&quot;CreditCardT&quot;> <xs:sequence> <xs:element name=&quot;creditCardKind&quot;    type=&quot;tns:CreditCardKindT&quot;/> <xs:element name=&quot;cardNumber&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;cardholderFirstName&quot;    type=&quot;xs:string&quot; minOccurs=&quot;0&quot;/> <xs:element name=&quot;cardholderLastName&quot;    type=&quot;xs:string&quot;/> <xs:element name=&quot;expirationMonth&quot;    type=&quot;tns:MonthT&quot;/> <xs:element name=&quot;expirationYear&quot;    type=&quot;tns:YearT&quot;/> </xs:sequence> <xs:attribute name=&quot;id&quot; type=&quot;xs:int&quot;/> </xs:complexType> <xs:simpleType name=&quot;CreditCardKindT&quot;> <xs:restriction base=&quot;xs:string&quot;> <xs:enumeration value=&quot;visa&quot;/> <xs:enumeration value=&quot;mastercard&quot;/> <xs:enumeration value=&quot;amexco&quot;/> </xs:restriction> </xs:simpleType> ... /xs:schema>
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
WSDL and XSD UML  Profile in UML Tools ,[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
CBDI-SAE Meta Model for SOA ,[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
CBDI-SAE UML Profile  for SOA Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Business Type Model Showing Domains Service Implementation Architecture Showing Services and Automation Units Service Deloyment Architecture Showing Deployments http://everware-cbdi.com
SoaML ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts 1.0-Beta-2 available:  http://www.omg.org/spec/SoaML/
SoaML - Goals ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
SoaML Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
MDA vs. MDSD ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
MDA vs. MDSD ,[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
But wouldn't it be easier .... use a DSL for WSDL  Using Domain Specific Language (s) to Simplify Creating SOA Artifacts <wsdl:definitions xmlns:tns=&quot;http://trivadis.com/service/credit-card/v1&quot;    ...   name=&quot;CreditCardValidation-v1&quot;> <wsdl:types> <xsd:schema ...> </wsdl:types> <wsdl:message name=&quot;validateCardRequest&quot;> <wsdl:part name=&quot;request&quot;    element=&quot;tns:validateCreditCardPaymentRequest&quot;/> </wsdl:message> <wsdl:message name=&quot;validateCardResponse&quot;> <wsdl:part name=&quot;reply&quot;    element=&quot;tns:validateCreditCardPaymentResponse&quot;/> </wsdl:message> <wsdl:message name=&quot;invalidCreditCardNumberFault&quot;> <wsdl:part name=&quot;error„ element=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:message> <wsdl:portType name=&quot;CreditCardValidationPT&quot;> <wsdl:operation name=&quot;validateCard&quot;> <wsdl:input message=&quot;tns:validateCardRequest&quot;/> <wsdl:output message=&quot;tns:validateCardResponse&quot;/> <wsdl:fault name=&quot;InvalidCreditCardNumberFault&quot;    message=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:operation> </wsdl:portType> <wsdl:binding ...> <wsdl:service ...> </wsdl:definitions> abstract message common { requestNr : String [1:1] } Import common.msgtype namespace service.credit-card(1.0) using cdm.credit-card(1.0) as cc message validateCardRequest extends common { creditCard : cc.CreditCard forAmount : Double } message validateCardResponse { requestNr : String[1:1] reservationNumber : String } fault invalidCreditCardNumber { code : String creditCard : cc.CreditCard } service CreditCardValidation { sync operation validateCard  throws invalidCreditCardNumber input validateCardRequest output validateCardResponse }
... and for the XSD‘s .... Using Domain Specific Language (s) to Simplify Creating SOA Artifacts namespace cdm.credit-card(1.0) entity CreditCard { id : Integer creditCardKind : CreditCardKind  [1:1] cardNumber : String [1:1] cardholderFirstName : String cardholderLastName : String [1:1] expirationMonth : Month [1:1] expirationYear : Year [1:1]  } dataType Month extends Integer  pattern &quot;[0-1][0-9]&quot; dataType Year extends Integer  pattern &quot;[0-9][0-9][0-9][0-9]&quot; dataType CrediCardKind extends String  enum { &quot;visa&quot;, &quot;mastercard&quot;, &quot;amexco&quot; } <xs:schema xmlns:xs=„...&quot;    xmlns:tns=&quot;http://www.trivadis.com/cdm/credit-card/v1&quot;    targetNamespace= „http://www.trivadis.com/cdm/credit-card/v1 “ elementFormDefault=&quot;qualified&quot;    attributeFormDefault=&quot;unqualified&quot; version=&quot;1.0&quot;> <xs:element name=&quot;creditCard&quot; type=&quot;tns:CreditCardT&quot;/> <xs:complexType name=&quot;CreditCardT&quot;> <xs:sequence> <xs:element name=&quot;creditCardKind&quot;    type=&quot;tns:CreditCardKindT&quot;/> <xs:element name=&quot;cardNumber&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;cardholderFirstName&quot;    type=&quot;xs:string&quot; minOccurs=&quot;0&quot;/> <xs:element name=&quot;cardholderLastName&quot;    type=&quot;xs:string&quot;/> <xs:element name=&quot;expirationMonth&quot;    type=&quot;tns:MonthT&quot;/> <xs:element name=&quot;expirationYear&quot;    type=&quot;tns:YearT&quot;/> </xs:sequence> <xs:attribute name=&quot;id&quot; type=&quot;xs:int&quot;/> </xs:complexType> <xs:simpleType name=&quot;CreditCardKindT&quot;> <xs:restriction base=&quot;xs:string&quot;> <xs:enumeration value=&quot;visa&quot;/> <xs:enumeration value=&quot;mastercard&quot;/> <xs:enumeration value=&quot;amexco&quot;/> </xs:restriction> </xs:simpleType> ... /xs:schema>
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
Domain Specific Language (DSL) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Internal vs. External DSL ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts computer(&quot;A&quot;) .processor().cores(2).i386() .disk().size(150) .disk().size(75).speed(7200).sata() .end(); computer  A { processor  i386  with  2  cores disks  { size  150 size  75  speed  7200  type  sata } Processor p = new Processor(2, Processor.Type.i386);  Disk d1 = new Disk(150, Disk.UNKNOWN_SIZE, null);  Disk d2 = new Disk(75, 7200, Disk.Interface.SATA);  return new Computer(p, d1, d2);
Domain Specific Language (DSL) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
What is Eclipse Xtext ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Highlights of Xtext ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action ,[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts DSL to be supported
Xtext in Action – 1. Create an Xtext Project ,[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 2. Build the Grammer ,[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 2. Build the Grammer ,[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts (no operator) exactly one ? zero or one * zero or more + one or more feature=... corresponds to setFeature(...) list+=... corresponds to getList().add(...) condition?=... corresponds to setCondition(true)  DomainModel : (elements+=AbstractElement)*; AbstractElement: PackageDeclaration | Type; TypeRef: referenced=[Type] (multi?='*')?; QualifiedName: ID (‚.‘ ID)*;
Xtext in Action – 3. Generate Language Artefacts ,[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 4. Run the Generated IDE Plug-in ,[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 5. Write a Code Generator ,[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 5. Write a Code Generator ,[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Xtext in Action – 5. Write a Code Generator ,[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
Service DSL Prototype ,[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Agenda ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Data are always part of the game.
Summary ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
Thank you! SOA Symposium 2010   Guido Schmutz, Technology Manager / Partner Trivadis AG 5.10.2010, Berlin

More Related Content

Viewers also liked

de novo drug design
de novo drug designde novo drug design
de novo drug designmojdeh y
 
Programming Without Coding Technology (PWCT) - Get Input From User
Programming Without Coding Technology (PWCT) - Get Input From UserProgramming Without Coding Technology (PWCT) - Get Input From User
Programming Without Coding Technology (PWCT) - Get Input From UserMahmoud Samir Fayed
 
Programming Without Coding Technology (PWCT) - Radiogroup control
Programming Without Coding Technology (PWCT) - Radiogroup controlProgramming Without Coding Technology (PWCT) - Radiogroup control
Programming Without Coding Technology (PWCT) - Radiogroup controlMahmoud Samir Fayed
 
خدمات ابنيات
خدمات ابنياتخدمات ابنيات
خدمات ابنياتabniyat4egypt
 
Programming Without Coding Technology (PWCT) - Image control
Programming Without Coding Technology (PWCT) - Image controlProgramming Without Coding Technology (PWCT) - Image control
Programming Without Coding Technology (PWCT) - Image controlMahmoud Samir Fayed
 
Sasaki Associates: Retrospective Pinup Opening Event
Sasaki Associates: Retrospective Pinup Opening EventSasaki Associates: Retrospective Pinup Opening Event
Sasaki Associates: Retrospective Pinup Opening EventSasaki Associates
 
VAVE certification
VAVE certificationVAVE certification
VAVE certificationRajkumar R
 
SC12 S3700 Series launch event gold
SC12 S3700 Series launch event goldSC12 S3700 Series launch event gold
SC12 S3700 Series launch event goldAlan Frost
 

Viewers also liked (10)

de novo drug design
de novo drug designde novo drug design
de novo drug design
 
Programming Without Coding Technology (PWCT) - Get Input From User
Programming Without Coding Technology (PWCT) - Get Input From UserProgramming Without Coding Technology (PWCT) - Get Input From User
Programming Without Coding Technology (PWCT) - Get Input From User
 
Programming Without Coding Technology (PWCT) - Radiogroup control
Programming Without Coding Technology (PWCT) - Radiogroup controlProgramming Without Coding Technology (PWCT) - Radiogroup control
Programming Without Coding Technology (PWCT) - Radiogroup control
 
خدمات ابنيات
خدمات ابنياتخدمات ابنيات
خدمات ابنيات
 
Programming Without Coding Technology (PWCT) - Image control
Programming Without Coding Technology (PWCT) - Image controlProgramming Without Coding Technology (PWCT) - Image control
Programming Without Coding Technology (PWCT) - Image control
 
Sasaki Associates: Retrospective Pinup Opening Event
Sasaki Associates: Retrospective Pinup Opening EventSasaki Associates: Retrospective Pinup Opening Event
Sasaki Associates: Retrospective Pinup Opening Event
 
ROUNDTABLE 2016: BERNARD
ROUNDTABLE 2016: BERNARDROUNDTABLE 2016: BERNARD
ROUNDTABLE 2016: BERNARD
 
VAVE certification
VAVE certificationVAVE certification
VAVE certification
 
bio (3)
bio (3)bio (3)
bio (3)
 
SC12 S3700 Series launch event gold
SC12 S3700 Series launch event goldSC12 S3700 Series launch event gold
SC12 S3700 Series launch event gold
 

Similar to Dsl for-soa-artefacts

Build Message-Based Web Services for SOA
Build Message-Based Web Services for SOABuild Message-Based Web Services for SOA
Build Message-Based Web Services for SOAJeffrey Hasan
 
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk ServicesSQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk ServicesSandro Pereira
 
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk ServicesGlobal Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk ServicesSandro Pereira
 
January 2017 - Deep dive on AWS Lambda and DevOps
January 2017 - Deep dive on AWS Lambda and DevOpsJanuary 2017 - Deep dive on AWS Lambda and DevOps
January 2017 - Deep dive on AWS Lambda and DevOpsDavid McDaniel
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Dave Bost
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-designArnaud Bouchez
 
AWS Chicago user group: AWS Platform for .NET Developers
AWS Chicago user group: AWS Platform for .NET DevelopersAWS Chicago user group: AWS Platform for .NET Developers
AWS Chicago user group: AWS Platform for .NET DevelopersAWS Chicago
 
Alchemy Publisher Presentation
Alchemy Publisher PresentationAlchemy Publisher Presentation
Alchemy Publisher PresentationShamusd
 
Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcdsravinxg
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
Biztalk Server 2006
Biztalk Server 2006Biztalk Server 2006
Biztalk Server 2006ipaciti
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsSteve Speicher
 
FME World Tour 2015: (EN) FME 2015 in action
FME World Tour 2015: (EN) FME 2015 in actionFME World Tour 2015: (EN) FME 2015 in action
FME World Tour 2015: (EN) FME 2015 in actionGIM_nv
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008ctindale
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormXavier Agnetti
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathonaaronwso2
 
Contract First Modeling Services Using Uml
Contract First Modeling Services Using UmlContract First Modeling Services Using Uml
Contract First Modeling Services Using UmlRody Middelkoop
 
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Marius Constantinescu [MVP]
 

Similar to Dsl for-soa-artefacts (20)

Build Message-Based Web Services for SOA
Build Message-Based Web Services for SOABuild Message-Based Web Services for SOA
Build Message-Based Web Services for SOA
 
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk ServicesSQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
SQLSaturday #341 porto - Introduction to Microsoft Azure BizTalk Services
 
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk ServicesGlobal Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
Global Windows Azure Bootcamp – Lisboa - Windows Azure Biztalk Services
 
Open Source Soa
Open Source SoaOpen Source Soa
Open Source Soa
 
January 2017 - Deep dive on AWS Lambda and DevOps
January 2017 - Deep dive on AWS Lambda and DevOpsJanuary 2017 - Deep dive on AWS Lambda and DevOps
January 2017 - Deep dive on AWS Lambda and DevOps
 
Building Applications for SQL Server 2008
Building Applications for SQL Server 2008Building Applications for SQL Server 2008
Building Applications for SQL Server 2008
 
D2 domain driven-design
D2 domain driven-designD2 domain driven-design
D2 domain driven-design
 
AWS Chicago user group: AWS Platform for .NET Developers
AWS Chicago user group: AWS Platform for .NET DevelopersAWS Chicago user group: AWS Platform for .NET Developers
AWS Chicago user group: AWS Platform for .NET Developers
 
Alchemy Publisher Presentation
Alchemy Publisher PresentationAlchemy Publisher Presentation
Alchemy Publisher Presentation
 
Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcds
 
Mdd lcds
Mdd lcdsMdd lcds
Mdd lcds
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Biztalk Server 2006
Biztalk Server 2006Biztalk Server 2006
Biztalk Server 2006
 
Innovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC IntegrationsInnovate2011 Keys to Building OSLC Integrations
Innovate2011 Keys to Building OSLC Integrations
 
FME World Tour 2015: (EN) FME 2015 in action
FME World Tour 2015: (EN) FME 2015 in actionFME World Tour 2015: (EN) FME 2015 in action
FME World Tour 2015: (EN) FME 2015 in action
 
Anatomy Of A Driver Presentation 09 15 2008
Anatomy Of A Driver Presentation   09 15 2008Anatomy Of A Driver Presentation   09 15 2008
Anatomy Of A Driver Presentation 09 15 2008
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
 
2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon2014 q3-platform-update-v1.06.johnmathon
2014 q3-platform-update-v1.06.johnmathon
 
Contract First Modeling Services Using Uml
Contract First Modeling Services Using UmlContract First Modeling Services Using Uml
Contract First Modeling Services Using Uml
 
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
Rapidly building data-driven modern Office 365 Cloud Business add-ins with Li...
 

More from Guido Schmutz

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as CodeGuido Schmutz
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureGuido Schmutz
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsGuido Schmutz
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!Guido Schmutz
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Guido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureGuido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureGuido Schmutz
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaGuido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaGuido Schmutz
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?Guido Schmutz
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaGuido Schmutz
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaGuido Schmutz
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming VisualisationGuido Schmutz
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Guido Schmutz
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaGuido Schmutz
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureGuido Schmutz
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Guido Schmutz
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming VisualizationGuido Schmutz
 

More from Guido Schmutz (20)

30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code30 Minutes to the Analytics Platform with Infrastructure as Code
30 Minutes to the Analytics Platform with Infrastructure as Code
 
Event Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data ArchitectureEvent Broker (Kafka) in a Modern Data Architecture
Event Broker (Kafka) in a Modern Data Architecture
 
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-FormatsBig Data, Data Lake, Fast Data - Dataserialiation-Formats
Big Data, Data Lake, Fast Data - Dataserialiation-Formats
 
ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!ksqlDB - Stream Processing simplified!
ksqlDB - Stream Processing simplified!
 
Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?Kafka as your Data Lake - is it Feasible?
Kafka as your Data Lake - is it Feasible?
 
Event Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data ArchitectureEvent Hub (i.e. Kafka) in Modern Data Architecture
Event Hub (i.e. Kafka) in Modern Data Architecture
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) ArchitectureEvent Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
Event Hub (i.e. Kafka) in Modern Data (Analytics) Architecture
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Location Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache KafkaLocation Analytics - Real-Time Geofencing using Apache Kafka
Location Analytics - Real-Time Geofencing using Apache Kafka
 
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache KafkaSolutions for bi-directional integration between Oracle RDBMS and Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS and Apache Kafka
 
What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?What is Apache Kafka? Why is it so popular? Should I use it?
What is Apache Kafka? Why is it so popular? Should I use it?
 
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache KafkaSolutions for bi-directional integration between Oracle RDBMS & Apache Kafka
Solutions for bi-directional integration between Oracle RDBMS & Apache Kafka
 
Location Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using KafkaLocation Analytics Real-Time Geofencing using Kafka
Location Analytics Real-Time Geofencing using Kafka
 
Streaming Visualisation
Streaming VisualisationStreaming Visualisation
Streaming Visualisation
 
Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?Kafka as an event store - is it good enough?
Kafka as an event store - is it good enough?
 
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache KafkaSolutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
Solutions for bi-directional Integration between Oracle RDMBS & Apache Kafka
 
Fundamentals Big Data and AI Architecture
Fundamentals Big Data and AI ArchitectureFundamentals Big Data and AI Architecture
Fundamentals Big Data and AI Architecture
 
Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka Location Analytics - Real-Time Geofencing using Kafka
Location Analytics - Real-Time Geofencing using Kafka
 
Streaming Visualization
Streaming VisualizationStreaming Visualization
Streaming Visualization
 

Recently uploaded

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 

Recently uploaded (20)

08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 

Dsl for-soa-artefacts

  • 1. Using Domain Specific Language(s) to Simplify Creating SOA Artifacts SOA Symposium 2010 Guido Schmutz, Technology Manager / Partner Trivadis AG 5.10.2010, Berlin
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. CBDI-SAE UML Profile for SOA Using Domain Specific Language (s) to Simplify Creating SOA Artifacts Business Type Model Showing Domains Service Implementation Architecture Showing Services and Automation Units Service Deloyment Architecture Showing Deployments http://everware-cbdi.com
  • 11.
  • 12.
  • 13. SoaML Using Domain Specific Language (s) to Simplify Creating SOA Artifacts
  • 14.
  • 15.
  • 16. But wouldn't it be easier .... use a DSL for WSDL Using Domain Specific Language (s) to Simplify Creating SOA Artifacts <wsdl:definitions xmlns:tns=&quot;http://trivadis.com/service/credit-card/v1&quot; ... name=&quot;CreditCardValidation-v1&quot;> <wsdl:types> <xsd:schema ...> </wsdl:types> <wsdl:message name=&quot;validateCardRequest&quot;> <wsdl:part name=&quot;request&quot; element=&quot;tns:validateCreditCardPaymentRequest&quot;/> </wsdl:message> <wsdl:message name=&quot;validateCardResponse&quot;> <wsdl:part name=&quot;reply&quot; element=&quot;tns:validateCreditCardPaymentResponse&quot;/> </wsdl:message> <wsdl:message name=&quot;invalidCreditCardNumberFault&quot;> <wsdl:part name=&quot;error„ element=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:message> <wsdl:portType name=&quot;CreditCardValidationPT&quot;> <wsdl:operation name=&quot;validateCard&quot;> <wsdl:input message=&quot;tns:validateCardRequest&quot;/> <wsdl:output message=&quot;tns:validateCardResponse&quot;/> <wsdl:fault name=&quot;InvalidCreditCardNumberFault&quot; message=&quot;tns:invalidCreditCardNumberFault&quot;/> </wsdl:operation> </wsdl:portType> <wsdl:binding ...> <wsdl:service ...> </wsdl:definitions> abstract message common { requestNr : String [1:1] } Import common.msgtype namespace service.credit-card(1.0) using cdm.credit-card(1.0) as cc message validateCardRequest extends common { creditCard : cc.CreditCard forAmount : Double } message validateCardResponse { requestNr : String[1:1] reservationNumber : String } fault invalidCreditCardNumber { code : String creditCard : cc.CreditCard } service CreditCardValidation { sync operation validateCard throws invalidCreditCardNumber input validateCardRequest output validateCardResponse }
  • 17. ... and for the XSD‘s .... Using Domain Specific Language (s) to Simplify Creating SOA Artifacts namespace cdm.credit-card(1.0) entity CreditCard { id : Integer creditCardKind : CreditCardKind [1:1] cardNumber : String [1:1] cardholderFirstName : String cardholderLastName : String [1:1] expirationMonth : Month [1:1] expirationYear : Year [1:1] } dataType Month extends Integer pattern &quot;[0-1][0-9]&quot; dataType Year extends Integer pattern &quot;[0-9][0-9][0-9][0-9]&quot; dataType CrediCardKind extends String enum { &quot;visa&quot;, &quot;mastercard&quot;, &quot;amexco&quot; } <xs:schema xmlns:xs=„...&quot; xmlns:tns=&quot;http://www.trivadis.com/cdm/credit-card/v1&quot; targetNamespace= „http://www.trivadis.com/cdm/credit-card/v1 “ elementFormDefault=&quot;qualified&quot; attributeFormDefault=&quot;unqualified&quot; version=&quot;1.0&quot;> <xs:element name=&quot;creditCard&quot; type=&quot;tns:CreditCardT&quot;/> <xs:complexType name=&quot;CreditCardT&quot;> <xs:sequence> <xs:element name=&quot;creditCardKind&quot; type=&quot;tns:CreditCardKindT&quot;/> <xs:element name=&quot;cardNumber&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;cardholderFirstName&quot; type=&quot;xs:string&quot; minOccurs=&quot;0&quot;/> <xs:element name=&quot;cardholderLastName&quot; type=&quot;xs:string&quot;/> <xs:element name=&quot;expirationMonth&quot; type=&quot;tns:MonthT&quot;/> <xs:element name=&quot;expirationYear&quot; type=&quot;tns:YearT&quot;/> </xs:sequence> <xs:attribute name=&quot;id&quot; type=&quot;xs:int&quot;/> </xs:complexType> <xs:simpleType name=&quot;CreditCardKindT&quot;> <xs:restriction base=&quot;xs:string&quot;> <xs:enumeration value=&quot;visa&quot;/> <xs:enumeration value=&quot;mastercard&quot;/> <xs:enumeration value=&quot;amexco&quot;/> </xs:restriction> </xs:simpleType> ... /xs:schema>
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38. Thank you! SOA Symposium 2010 Guido Schmutz, Technology Manager / Partner Trivadis AG 5.10.2010, Berlin

Editor's Notes

  1. Hier könnte eine Kopfzeile stehen 06.10.10 Hier könnte eine Fusszeile stehen Ihr müsst nicht alle Punkt aufzählen. Vielleicht der Hinweis, CH-Unternehmen mit 13 Standorten in D-A-CH, Anzahl Mitarbeiter und das wir finanziell unabhängig sind.