Data-Centric Systems and Applications Florian Daniel Maristella Matera Mashups Concepts, Models and Architectures Chapter 8 Tool-Aided Mashup Development Figures
JSON formatted data Locally installed and running Data formatted as structured parameters HTTP calls REST wrapper UI wrapper UI widget Common component model, access mechanism/ protocol, data format RESTful Web service Running remotely JavaScript events SOAP wrapper SOAP messages XML payload SOAP Web service Fig. 8. Wrapping components into a unified view on native component models.
Simple Parameter Value mashart component User interface Type Binding URL Event is of type Parameter output input.. Value.. isoptional.. Operation Reference Constructor Fig. 8.2 Unified component model of mashart components for SOAP/RESTful web services, UI components and RSS/Atom feeds [90].
RSS feed URL M2 A data flow connector exactly one and one. A mashup must contain exactly one sink. Data flow connector Sink..N Filter Union Filter condition Fig. 8.3 Metamodel (M2) of a very simple data flow mashup language: it supports fetching di erent RSS feeds from the Web, computing their union and/or filtering them, and publishing the result again as an RSS feed on the Web (the sink). A data flow connector must always have exactly one and one.
NY Times : R: RSS feed DF : Data flow connector M http://rss. nytimes.com/... : URL DF2 : Data flow connector U : Union DF3 : Data flow connector BBC News : R2: RSS feed http://feeds.bbci. co.uk/news/rss.xml : URL F : Filter title contains 'IT' : Filter condition DF4 : Data flow connector S : Sink Fig. 8.4 Asimpledataflowmodel(M)complyingwiththemetamodelofFigure 8.3 expressed in an abstract syntax, i.e., a UML object diagram.
of the feed RSS feed: New York Times Connector Data flow connector Connector URL: "http://rss.nytimes.com/..." Union Filter Sink RSS feed: BBC News Condition: "title contains 'IT'" URL: "http://feeds.bbci.co.uk/news/rss.xml" URL attribute Filter condition Fig. 8.5 The simple data flow model (M) of Figure 8.4 expressed in a concrete syntax that highlights the semantics of the constructs and eases readability.
Fig. 8.6 AsimplepipethatenrichesanRSSfeedwithgeographicallocationinformation and plots it on a map (the Location Extractor component).
URL Builder Fetch Feed Filter Location Extractor Pipe Output M2 Value Component Parameter Data flow connector A pipe must contain exactly one pipe output component, which cannot be the of a data flow connector. XOR Config. par. Input par. Fig. 8.7 AsimplifiedmetamodelofYahoo!PipesforthepipeinFigure8.6.
Service component Data flow connector UI component Events and operations Component browser Composition canvas Fig. 8.8 AmashupmodeledinmashArt[90]. The model represents a simple application for the monitoring of compliance.
Parameter Type Value Static par. produces Dynamic par. consumes from to Constructor parameter Type Event Operation produces Parameter mapping Component Type renders Data flow connector Template contains..n M2 Placeholder Parameter mappings of a connector refer only to the parameters of the connectors's event and operation. Fig. 8.9 Metamodel of the mashart modeling notation based on the unified component model of Figure 8.2.
Fig. 8.0 A screenshot of Presto Wires for data mashups serialized in EMML.
Fig. 8. AscreenshotoftheApacheRavemashupenvironmentextendedbythe EU FP7 project OMELETTE to import/export OMDL-compliant workspaces [262].
Custom composition language supports based on Custom component description language supports Composition feature..n..n constrains Feature constraint implemented as..n Component feature Control flow feature Data passing feature Presentation feature Collaboration feature derives from..n Feature reference specification..n derives from Generic composition language meta-model integrates Generic component descriptor meta-model Fig. 8.2 Conceptual approach to developing custom mashup languages [254].
Control flow..n Join..N Split CfConnector..N Component Type Binding Endpoint Class SupportRefere ncepassing Syntax Operation Type Reference Data Type Definition Input Parameter ManualInput Optional Output Parameter Condition Expression Language DfConnector Global Variable Type DefaultValue Mashup Collaboration User Role Page URL belongsto Configuration Parameter feeds feeds Constant Value..N Viewport Component Data passing Presentation displays Fig. 8.3 The generic mashup language model bringing together the most common mashup features [253].
Selected language features 4 5 9 8 2 3 4 data_flow service_component REST_for_service data_component RSS_for_data atom_for_data min operation_per_component max operation_per_component request_response 3 6 6 5 6 min output_param_per_operation max output_param_per_operation min intput_param_per_operation max_n_intput_param_per_operation 2 7 7 8 9 manual_input configuration_param branch Fig. 8.4 Yahoo! Pipes example composition and set of respective language features
Mashup editor Mashup metamodel Mashup language Design canvas Help res Front-end Mashup execution dashboard Instantiation UI/API Runtime monitor Developer community Mashup mgmt. dashbaord User mgmt. Access rights mgmt. SLAs mgmt. Mashup lifecycle mgmt. Mashup runtime environment Code generator Interpreter Back-end Component runtime environment Authentication and security module Web server Invocation module Web server Debugger Test environment Comp. container Internet Data store Component registry Mashup repository Execution log User/AR registry SLA repository Fig. 8.5 Conceptual reference architecture of a mashup platform articulated into front-end, back-end and persistent data store.
Fig. 8.6 Screen shot of Yahoo! Pipes with the debugging tab open (bottom). The content of the tab is the output of the Fetch Feed component selected in the canvas.
Fig. 8.7 Screen shot of the JackBe Presto developer community website.
Application Application model Configuration files Repetitive code uses Individual code Generative architecture Generation templates Code generator Platform Infrastructure components Infrastructure components Infrastructure components Fig. 8.8 Code generation in architecture-centric MDSD. The generative architecture corresponds to the runtime environment in Figure 8.5.