• Keine Ergebnisse gefunden

Design of a domain-specific language based on a technology-independent web service framework

N/A
N/A
Protected

Academic year: 2022

Aktie "Design of a domain-specific language based on a technology-independent web service framework"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Jens Knoop, Uwe Zdun (Hrsg.): Software Engineering 2016, Lecture Notes in Informatics (LNI), Gesellschaft f¨ur Informatik, Bonn 2016 41

Eine Dom¨anenspezifische Sprache f ¨ur die

technologie ¨ubergreifende Bereitstellung von Web Services

Florian Rademacher1Martin Peters1Sabine Sachweh1

Abstract:Web Services realisieren ger¨ateunabh¨angige Datenschnittstellen zur Kommunikation von Web-Applikationen mit Internet-Clients, wie Smartphone-Apps, und Maschinen im Industrie-4.0- Kontext. In der Mehrzahl werden diese Schnittstellen entweder mit Hilfe des REST-Paradigmas und Standards des World Wide Web (WWW) oder des SOAP-Protokolls und XML-Nachrichten imple- mentiert.

Der Beitrag stellt eine Dom¨anenspezifische Sprache (Domain-Specific Language; DSL) f¨ur die ef- fiziente, technologie¨ubergreifende Entwicklung von Web Services vor. Ein Codegenerator ¨uberf¨uhrt die DSL-Angaben in Java-Code, welcher auf einem erweiterbaren Framework basiert, das Unter- schiede zwischen verschiedenen Web-Service-Technologien abstrahiert.

Keywords:Dom¨anenspezifische Sprachen, Codegenerierung, Web Services

1 Einf ¨uhrung

Die Gruppe der ¨uber das Internet kommunizierenden Ger¨ate w¨achst in zunehmendem Ma- ße und wird zugleich immer heterogener. Neben Computern und Smartphone-Apps nutzen mittlerweile auch Maschinen und Sensoren im Rahmen einer Industrie 4.0 Technologi- en f¨ur den Datenaustausch ¨uber das Internet. Web Services stellen ein etabliertes Mit- tel f¨ur den ger¨ateunabh¨angigen Datenaustausch dar. Das auf WWW-Standards aufbauen- de REST-Paradigma und das XML-basierte SOAP-Protokoll sind dabei die am weitesten verbreiteten Web-Service-Technologien [GK13]. W¨ahrend SOAP in Szenarien mit hohen Anforderungen bspw. an die ¨Ubertragungsqualit¨at zum Einsatz kommt, werden REST- Schnittstellen f¨ur eine effiziente Kommunikation ¨uber das HTTP eingesetzt [PZL08].

Der Beitrag stellt eine DSL f¨ur die technologie¨ubergreifende Entwicklung von Web Ser- vices vor. Sie basiert auf dem in [RPS15] eingef¨uhrten Framework, mit dem Entwickler Gesch¨aftslogik parallel ¨uber beliebige Web-Service-Technologien, bspw. f¨ur Smartphone- Apps via REST und f¨ur Maschinen via SOAP, anbieten k¨onnen.

2 Spezifikation der Dom¨anenspezifischen Sprache

Abbildung 1 zeigt das semantische UML-Modell der DSL. Es basiert auf den Abstraktio- nen des Frameworks aus [RPS15] und beschreibt die Sprachkonstrukte als Klassen und ih- re Beziehungen als Assoziationen. Pakete kapseln semantische Sprachbereiche. So enth¨alt dasTypes-Paket das Typsystem der Sprache. Es erlaubt die Konstruktion strukturierter

1Fachhochschule Dortmund, Fachbereich Informatik, Otto-Hahn-Straße 23, 44227 Dortmund, vorname.nachname@fh-dortmund.de

(2)

42 Florian Rademacher, Martin Peters, Sabine Sachweh

Datentypen und Listen aus primitiven Basistypen. DasServices-Paket definiert Konzepte zur Modellierung von Web Services. Im Kontext der DSL ist ein Serviceein benanntes Element, welches einen spezifischenRequestentgegennimmt und eine bestimmteRespon- seproduziert. DasInterfaces-Paket erm¨oglicht die Assoziation einer technologieneutralen Service-Beschreibung mit Web-Service-Technologien wie REST oder SOAP.

T y p e I n s t a n c e name : String type : Type

*

* *

«enumeration»

H t t p M e t h o d GET POST PUT DELETE R e s t I n t e r f a c e method : HttpMethod path : String mimeType : String S o a p I n t e r f a c e

M a p p i n g request : Boolean response : Boolean both : Boolean

S e r v i c e I n t e r f a c e Interfaces

T y p e I n s t a n c e name : String type : Type

* BasicType

* L i s t T y p e S t r u c t u r e T y p e

T y p e name : String Types

Response R e q u e s t S e r v i c e

name : String Services

f i e l d t y p e >

0..1

1..*

1..*

1..*

nested list>

0..1 0..1

Abb. 1: Semantisches Modell der DSL

Listing 1 enth¨alt Teile der aus dem Modell abgeleiteten DSL-Grammatik. Listing 2 zeigt einen mit der DSL modellierten Web Service, der per REST und SOAP verf¨ugbar und Teil der Fallstudie aus [RPS15] ist. Ein Codegenerator ¨uberf¨uhrt in der DSL vorliegenden

Service:’service’ name = ID ’:’ otoName = ’receives’ otoVariables = TypeInstances itoName = ’returns’ itoVariables = TypeInstances interfaces += ServiceInterface (interfaces += ServiceInterface)∗’;’ ; ServiceInterface:name = ’interface’ type = (RestInterface| SoapInterface)

(mapping = MappingSpec)? ;

RestInterface:name = ’rest’ ’method’ method = HttpMethod ’path’

path = STRING ’handles’ mime = MimeSpec ; SoapInterface:{SoapInterface}name = ’soap’ ;

List. 1: Auszug der DSL-Grammatik

serviceUpdateParameterValue:

receives longwtsId,StringparamName, Datetimestamp,Stringvalue returns intreturnCode

interfacerestmethodput

path"wts/{wtsId}/{paramName}"

handles"application/json"

interfacesoap;

List. 2: Beispiel-Service

Code in Framework-basierten Java-Code. Hierbei findet eine Transformation f¨ur jede kon- krete Klasse aus Abbildung 1 statt. Die Gesch¨aftslogik eines Services muss anschließend in einer Platzhaltermethode implementiert werden. Sie ist dann durch das Framework im- plizit ¨uber alle spezifizierten Web-Service-Technologien verf¨ugbar. In einer erweiterten Fallstudie mit 25 Web Services, die parallel mittels REST und SOAP aufrufbar sein soll- ten, konnten aus 252 Zeilen DSL-Code 4384 Zeilen Java-Code generiert werden [RPS15].

Die im Folgenden implementierte Gesch¨aftslogik umfasste 789 Zeilen Java-Code. Somit konnten rund 81% des Gesamtsystems automatisch erzeugt werden.

Literaturverzeichnis

[GK13] Gulden, Markus; Kugele, Stefan: A concept for generating simplified RESTful interfaces.

In: Proceedings of the 22nd international conference on World Wide Web. International World Wide Web Conferences Steering Committee, S. 1391–1398, 2013.

[PZL08] Pautasso, Cesare; Zimmermann, Olaf; Leymann, Frank: RESTful Web Services vs.

”Big”Web Services: Making the Right Architectural Decision. In: Proceedings of the 17th international conference on World Wide Web. ACM, S. 805–814, 2008.

[RPS15] Rademacher, Florian; Peters, Martin; Sachweh, Sabine: Design of a Domain-Specific Lan- guage Based on a Technology-Independent Web Service Framework. In: Software Archi- tecture, S. 357–371. Springer, 2015.

Referenzen

ÄHNLICHE DOKUMENTE

Spezifische Lösung: DSL I Maßgeschneiderte Sprache I Wohldefinierte Unterklasse (Domäne) von Problemen I Geringer Abstand zum Problem I Domain-Specific Language. (DSL) I Als

– an interface and service implementation (locator) for every service section – Client stubs for every binding

Hence, such a framework needs to frame the maritime domain including its stakeholders, the existing and upcoming technical system (architectures), related business processes

The result of the survey based on appropriate features for recommendation are ¯avors (see survey), a extract of the most important ones to describe the classic recipes are chosen:

To extend this architecture the parallel tier (see fig. 1) is presented which describes the code-to-data part of composite application built during high-level task interpretation.

- Every procedure decision gate has a reference to a decision gate given by the process model and therefore has to be added to a procedure module to include

Since a very detailed draft for the language Mocol was pro- posed by Siemens VAI at the beginning of my thesis the most extensive part was the design and implementation of a

IC1 Publication was published in the proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), IEEE International Conference on Robotics