29
State-of-the-art Web Applications using Microservices and Linked Data Aad Versteden & Erika Pauwels www.tenforce.com yourdatastories.eu

State of-the-art web applications using microservices and linked data

Embed Size (px)

Citation preview

Page 1: State of-the-art web applications using microservices and linked data

State-of-the-art Web Applications using Microservices and Linked Data

Aad Versteden & Erika Pauwels

www.tenforce.com yourdatastories.eu

Page 2: State of-the-art web applications using microservices and linked data

What is mu.semte.ch?

Page 10: State of-the-art web applications using microservices and linked data

We were able to reuse a lot :-)

Page 11: State of-the-art web applications using microservices and linked data

Supported by yourdatastories.eu

- Integrating data sources

- Making investigative journalism easy

- Check http://yourdatastories.eu :)

Page 12: State of-the-art web applications using microservices and linked data

Runs on Big Data Europe platform

Used by ESCO (& others)

Page 13: State of-the-art web applications using microservices and linked data

How we think about it

Page 14: State of-the-art web applications using microservices and linked data

Why did we build it?

Page 15: State of-the-art web applications using microservices and linked data

Why did we build it?- Personal projects

- Need code reuse

- Uncertain future (who will be the next big player)

- Change in web frontend landscape

- Change in web backend landscape

- Change in deployment landscape

- Need to roll your own

Page 16: State of-the-art web applications using microservices and linked data

Many actors, one semantic model

Page 19: State of-the-art web applications using microservices and linked data

Semantic model in mu.semte.ch

- Semantic model is the application’s domain

- Each microservice is an actor

- Integration is easy

- [FUTURE] Evaluate reasoning for complex or evolving applications

Page 20: State of-the-art web applications using microservices and linked data

Automatic integration of services is awesome

… it is the bulk of what we explain to the un-indulged ...

… but you already know that ...

… give a taste of semantic technologies without a full buy-in.

Page 21: State of-the-art web applications using microservices and linked data

Productivity is key

Page 22: State of-the-art web applications using microservices and linked data

[Docker] Ease of installation & deployment- Completely isolated environment (like a Virtual Machine)

- Automatic download & installation

books:

image: madnificent/books-service:1.0.0

links:

- db:database

Page 23: State of-the-art web applications using microservices and linked data

[JSONAPI] Automatic communication with frontend- Guidelines for REST resources on JSON APIs

- Limit discussion, point to jsonapi.org

{ "data": [{

"attributes": {

"name": "db",

"scaling": 1

},

"id": "ff9a62f3-6ecd-47da-95b1-aa310d29ffa5",

"type": "services",

"relationships": {

"pipeline": {

"links": { "self": "/services/ff9a62f3-6ecd-47da-95b1-aa310d29ffa5/links/pipeline-instance",

"related": "/services/ff9a62f3-6ecd-47da-95b1-aa310d29ffa5/pipeline-instance" }

}

}

}]}

Page 24: State of-the-art web applications using microservices and linked data

- Make simple tasks simple

- Help follow best practices, don’t force

[Templates] Simple microservices

== Dockerfile ==FROM semtech/mu-ruby-template:1.2.0-ruby2.1 MAINTAINER Aad Versteden <[email protected]>

== web.rb ==get '/:id/count' do resp = query " PREFIX votes: <http://mu.semte.ch/vocabularies/ext/votes/> PREFIX mu: <http://mu.semte.ch/vocabularies/core/> SELECT (COUNT(?user) AS ?votes) WHERE { GRAPH <#{settings.graph}> { ?user votes:plusOne/mu:uuid \"#{sparql_string params['id']}\" } } "

status 200 { data: { attributes: { votes: resp.first["votes"].to_i } } }.to_jsonend

Page 25: State of-the-art web applications using microservices and linked data

[Templates] Extensible services- Make simple tasks simple

- Help follow best practices, don’t force

(define-resource catalog () :class (s-prefix "dcat:Catalog") :properties `((:title :string ,(s-prefix "dct:title")) (:description :string ,(s-prefix "dct:description"))) :has-one `((publisher :via ,(s-prefix "dct:publisher") :as "publisher")) :has-many `((dataset :via ,(s-prefix "dcat:dataset") :as "datasets")) :resource-base (s-url "http://tenforce.com/catalogs/") :on-path "catalogs")

Page 26: State of-the-art web applications using microservices and linked data

- Some backend services have standard frontend components

- The road towards web components

- Not semantic

[Ember addons] Sharing frontend code

> ember install ember-mu-login

= application.hbs =

{{login-form}}

Page 27: State of-the-art web applications using microservices and linked data

Ease mental model

Page 28: State of-the-art web applications using microservices and linked data

- A step towards semantic applications

- Extensive sharing of code

- Encourages experimentation

- State-of-the-art frontend applications

- It’s just a step

In conclusion

Page 29: State of-the-art web applications using microservices and linked data

<Thank You> need more?

Erika Pauwels

- [email protected]

- @ErikaPauwels

- http://github.com/erikap

- [email protected]

Aad Versteden

- [email protected]

- @impulsater

- http://github.com/madnificent

- [email protected]

http://mu.semte.ch - http://tenforce.com - http://github.com/mu-semtech

This study was funded by yourdatastories.eu, as were parts of the microservices.