Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

mu.semte.ch: A transitional architecture for Linked Data

103 views

Published on

Presentation by Aad Versteden & Niels Vandekeybus at Open Belgium 2018 - http://2018.openbelgium.be/session/musemtech-transitional-architecture-linked-data

Published in: Data & Analytics
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE Format, ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/y6a5rkg5 } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD FULL BOOKS, INTO AVAILABLE FORMAT ......................................................................................................................... ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/yxufevpm } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/yxufevpm } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/yxufevpm } ......................................................................................................................... 1.DOWNLOAD FULL. PDF EBOOK here { https://tinyurl.com/yxufevpm } ......................................................................................................................... 1.DOWNLOAD FULL. EPUB Ebook here { https://tinyurl.com/yxufevpm } ......................................................................................................................... 1.DOWNLOAD FULL. doc Ebook here { https://tinyurl.com/yxufevpm } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

mu.semte.ch: A transitional architecture for Linked Data

  1. 1. redpencil.io redpencil.io A transitional architecture for Linked Data Aad Versteden & Niels Vandekeybus from redpencil.io for OpenBelgium
  2. 2. redpencil.io - Lower total cost of ownership - Ease to adapt and extend - Predictable performance - Easy to maintain - Low initial cost How are business solutions chosen?
  3. 3. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium WHOOPS Linked Data does not offer this . . . yet
  4. 4. redpencil.io microservices birds-eye
  5. 5. redpencil.io - Easy to understand - Easy to debug - Easy to reuse Microservices are awesome
  6. 6. redpencil.io Microservices are complex - Data model dependencies - API dependencies - Disaster analysis
  7. 7. redpencil.io - Direct connection to the database - Using semantic modelling Microservices are to be reengineered
  8. 8. redpencil.io - Embrace Semantic Model - Functional microservices - Standard APIs Microservices are micro standalone services
  9. 9. redpencil.io … taking advantage of the semantic domain model
  10. 10. redpencil.io Some history Share code on personal projects Rails is not über-productive Stay light, choose later Use microservices and semantic model
  11. 11. redpencil.io mu.semte.ch
  12. 12. redpencil.io In 60 seconds State-of-the-art web applications fuelled by Linked Data aware microservices - User-facing microservices - Easy deployment using Docker - Single Page Apps using Ember.js - Well known requirements => [HTTP+JSON+SPARQL] https://github.com/mu-semtech/ https://mu.semte.ch
  13. 13. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium KISS Keep It Super Simple
  14. 14. redpencil.io KISS - Most of us aren’t microservice experts - Most of us aren’t UI experts - We need to get stuff done - Maximize freedom - Orthogonal features - Minimize requirements - Enforce simple mental model
  15. 15. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium Simple mental model user-facing http-services
  16. 16. redpencil.io Simple mental model User-facing microservices Limit base technologies: - HTTP - JSON(API) - SPARQL (one graph)
  17. 17. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium Semantic models Many actors, telling parts of the same story
  18. 18. redpencil.io Semantic models Services read/write the part of the world they understand. User Registration: - There’s a new user => add it to the triplestore. User Login: - Check username/password => connect user to current session.
  19. 19. redpencil.io Semantic models Registration service Login service
  20. 20. redpencil.io Semantic models Many implementations, one model Same model for: - Username/Password login - OAuth login - ACM/IDM login
  21. 21. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium Docker Deployment made easy
  22. 22. redpencil.io Docker Container =~ Lightweight Linux Virtual Machine Docker Compose =~ Topology of multi-container project Each service runs in its own Docker Container In short: - Simple hosting on hub.docker.com - Clean project description - Always works Share using Docker
  23. 23. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium Reuse everything
  24. 24. redpencil.io Reuse everything - Templates: basics for a service - Configurable services - mu-cl-resources - Ember add-ons - Data table addon - Login add-on
  25. 25. redpencil.io Base templates CatalogsIndexRoute = Ember.Route.extend ajax: Ember.inject.service() model: () -> @get('ajax').request('/hello') Hello result: {{model.value}} get '/hello/' do counter = query( "SELECT COUNT (*) as ?counter" + "WHERE {" + " ?s ?p ?o." + "}" ).first[:counter].to_i status 200 { value: counter }.to_json end FROM semtech/mu-ruby-template:2.0.0-ruby2.3 MAINTAINER Your Name <you@provider.com> demo: image: you/demo-service links: - db:database dispatcher: … links: - demo:demo match "/hello/*path" do Proxy.forward conn, path, "http://demo/hello/" end [mu-ruby-template]
  26. 26. redpencil.io Configurable services (define-resource agendapunt () :class (s-prefix "besluit:Agendapunt") :properties `((:titel :string ,(s-prefix "dct:title")) (:beschrijving :string ,(s-prefix "dct:description")) (:openbaar :boolean ,(s-prefix "besluit:geplandOpenbaar")) :has-many `((agendapunt :via ,(s-prefix "dct:references") :as "referenties")) :has-one `((agendapunt :via ,(s-prefix "besluit:aangebrachtNa") :as "vorige-agendapunt") (agenda :via ,(s-prefix "besluit:heeftAgendapunt") :inverse t :as "agenda")) :resource-base (s-url "https://data.lblod.info/id/agendapunten/") :on-path "agendapunten") [mu-cl-resources] Full JSONAPI from abstract description
  27. 27. redpencil.io Ember add-ons > ember install ember-paper-data-table // template {{data-table content=model fields="title isbn genre publicationDate language numberOfPages" sort=sort page=page size=size}} // route import Ember from 'ember'; import DataTableRouteMixin from 'ember-data-table/mixins/route'; export default Ember.Route.extend(DataTableRouteMixin, { modelName: 'book' });
  28. 28. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium What we learned
  29. 29. redpencil.io What we experienced - Extremely productive - Code reuse - Easy for juniors - Customers like front-end - Database performance is okayish - Conscious playing with alternative solutions
  30. 30. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium About the future
  31. 31. redpencil.io Trigger microservices by changes in semantic model. Example: -Send email/tweet by writing it to the triplestore - Compute KPIs when a new dataset is added Reactive programming
  32. 32. redpencil.io More performance - ember-fastboot: Faster first page render - mu-cache: Smart caching strategies in core microservices - mu-cl-resources: Partial resource caching
  33. 33. redpencil.io More authority Describe authorization outside the microservices: - Simplify mental model - Help in sharing content - Open gate to advanced applications
  34. 34. redpencil.io More interactivity Push cache updates to all visiting clients. Almost no development time to create basic interactive applications (eg: updating KPIs, chat applications, …)
  35. 35. redpencil.ioredpencil.ioFrom Aad Versteden & Niels Vandekeybus of redpencil.io for Open Belgium More links
  36. 36. redpencil.io Resources used & interesting links Lego Time Star Wars: https://www.flickr.com/photos/eurobricks-starwars/5223334274/in/photolist-8XyXiu-7BJ9Xp-c2btBw-davQBK- nAQJCC-9XVSZs-a3vVhy-vPZaHw-r6NB6c-4ajSXh-rX7ezA-BBhAWf-BiWDpc- rED79Q-rX7f8u-mtctqc-wtp245-fcNzVb-CgXNsA-D4Uxps-wKj5u9-rX7fVm- rUWnBU-uhC54v-rXeB4g-zVknPq-qxEqXx-8GSCNc-nzg79j-biFNa6-9fXjwV-biFMTa-a1kbsX-5HnKDa-dQCdnW-a54g8X-bm9TRN-8zJUzU-fbGRan-sdr4hw- e9DMFz-q3qQqf-aAZwyV- bm9Tsw-dQCdpb-sdpUWU-rkow4K-wazJmK-bz4Md8-pyU2QM Wendelstein 7X: http://www.sciencemag.org/news/2015/10/ bizarre-reactor-might-save- nuclear-fusion 300SL: https://www. flickr.com/photos/smfan/7181631212/in/photolist-bWBJKN-o52kEN- 5pCCRH-6NezBh-oF2nYm-gHtRrE-6KAHDv-cPKKj9-2aj2ur-s3A8ua-5pH14j-bQk48B-omejVV-q2tAx7-o8yCtS-nRauVz-5pCNWB-o525H4-o9dqig-sk2we8- o4EApo-N2NDc-o7jxQM-5pCG4c-81DnQh-exNBvp-kc9m4-exS223-cm2nm5-aPXHgc-7Tg5XD-6HQ5Q9-6w1JtR-5pCGWi-eb6dJe-pJYFdi-azFSaU-p5y4mb- 6GjCy2-q2kGp6-o52baX-9XtXDc-4GqX86-pJXbk1-8canak-q2tu1j-6HQ6eo- sjZQkD-dhaPyf-bBqucA http://www.quickmeme.com/meme/3stqet Big Data Europe: https://www.big-data-europe.eu/ Docker Logo: http://www.silicon.de/41608942/microsoft-optimiert-windows-server- 2016- fuer-die- cloud/ webCAT: https://github.com/tenforce/webcat Banksy Van: http://artcentron.com/2016/06/22/banksy-graffiti-art-swat-van-sale/ #prettyPhoto Banksy Bananas: https://www.touchofmod ern.com/sales/banksy-8a9ea26d-040f-4435-ada1-86e7a6b4a05c/pulp-fiction-bananas Your Data Stories platoform: http://platform.yourdatastories.eu/ Star Wars Clones box: https://www.flickr.com/ photos/kalexanderson/ 5410769283/in/photolist-9f8Bcz-5SJTDj-55MnH2-4WEfzr-in3p6t-drf7fp-3b46gb-bKfRW4-3aYzBt-4xztdx-35E11y-9jVQVR-9wuv3f-9r3mWe-9hNTVz- 7JzMxg-7JYZFM- Hw1QSq-8FW8eh-nVj9Sc- 8ytJvH-aPPKYz-dYyYWK-7fhBFE-7GgZYm-e5M9jV-bwm6S9-7fhyGd-e5SNkL-5LDPWB-e5SNdf-4MKWht-e5SLrb- 5zPWDw-74Yjyb-8xh5Vr-9Apdwp-4XUn5j-jSHfRS-9fAZ86-eueiqp-e5SPwu-e5MbcZ- 9tJQdd- 5f4rJT-9HsoqF-9hud4U- e5MaQX-52mMrQ-e5M9WX/ GitHub Logo: https://blog.adafruit.com/2012/12/31/github-has-big-dreams-for- open-source-software-and-more/ Twitter Logo: https://en.wikipedia.org/wiki/File: Twitter_bird_logo_2012.svg mu-ruby-template: https://github.com/mu-semtech/mu-ruby-template mu-cl-resources: https://github.com/mu-semtech/mu-cl-resources mu-project: https://github.com/ mu-semtech/mu-project https://www.flickr.com/photos/thecampbell/538006470/in/photolist-PxqzC-VvKpZz-5fxVBU-9BdHcy-jun5Rc-b3hJyr-4kwAzq-4aDxKG-9eikzy-oN1cS- b1qFS-5nW8RE-4XQciS-7P4d2M-fcJrSw- 4BFdFe-eeeL3U-7NmZah-5d87sF-68AumY-dsrDuJ-68wgj8-qc8eFQ-87br53-9P9rDt-4BKw9G-RF34ho-TosZvG-878cZX-7EdrUZ-89s9TJ-4BFebF-5B6SFH-4BKw5f-pFSyd-VWMxDV-9yGdaJ- dfCama-7tGsfM-y7Avs-bu5LUt-7ZMRsc-fs8mh2-tw7JN-4dGcFB-8xSsMz-nktNfw-2VBNK-7GiQEy-nnvv8Z https://www.flickr.com/photos/cluczkow/8690663851/in/photolist-eeXVzV-82JLku-fJ9vu-c7ZA4w-fjWxes- eeKJac-bLsdaK-9zhVG1-n9gwFN-d54eqS-8uJCbZ- aaRdq9-eP2SdB-rd3rho-hcCjht-d8sJuN-pgtoo9-e9dgJL-2qdpwR-6p1a48-d54h85-ekh1kE-D9uR9c-ojB38x-4YB5p5-6UUkDm-9FbBY8-9ZfVqH-57q8DD-9qWu4w-2xAzyk-82FAtP- EK7Km-fgpz5y-4YSvHt-8fcr8Z-932Wnm-d54mgs-nWQFct-96ZKbg-5rT9Qt-natQkd-5teooV-e3KkQV-dMKrEt-3a1Ne5-2yeaAg-71K499-9ayB82-54LgcX/ https://en.wikipedia.org/wiki/Leuven https://en.wikipedia.org/wiki/Tielt-Winge https://en.wikipedia.org/wiki/ Mechelen https://en.wikipedia.org/wiki/Ghent http://dbpedia.org/sparql?default-graph- uri=&query=SELECT+%3Fname+%3Fsite%0D%0AWHERE+%7B%0D%0A++%3Fs+a+%3Chttp%3A%2F%2Fwww.wikidata.org%2Fentity %2FQ493522%3E.%0D%0A++%3Fh+owl%3AsameAs+%3Fs.%0D%0A++%3Fh+foaf%3Ahomepage+%3Fsite.%0D%0A++%3Fh+dbp%3Aname+%3Fname.%0D%0A%7D%0D%0A%0D%0A%0D%0A&format=text%2Fhtml&CXML_redir_for_subjs=121&CXML _redir_for_hrefs=&timeout=30000&debug=on&run=+Run+Query+ https://www.flickr.com/photos/cali4beach/6790834651/in/photolist-bm5Ny4-pQkJgC-dYksek-9PKymD-beLUSg-egPTkg-5gjPjk-ghTSVc-9dPT9n- 5eDrNx- bzmwMC-amjKMc-2e8zVU-9fzrFZ-hUobba-bxtMvP-5Np5za-5gRG6g-bzmwPs-d9K1Bc-bkSEGt-bw3ZQV-66Davt-b6EXke-egPS9t-bNgawP-bNgbmk-fPxGqz-fsXK2T-JHRMnJ-bNgaur-2A1ce-8iLdBT-RD9qP3-RD9qCb-ishC4V- bzmwX3-sHC6yq-WqknzF-777FW7-ojNSvV-khpPit-o4xe7r-pzJY1X-5fZJ94-M6wMD5-khqtvZ-AJR5Kw-5aCCcP-cbxNbJ https://openthebox.be https://www.flickr.com/photos/mrsbluff/3176611820/in/photolist-5QGY2j- aippf7-9kMTw7-JkELqH-bUYXoA-pn1WtL-bkNwnp-q71M5T-bpNyGe-adkduX-chEfau-J1HXj1-c1VtC-fL89Cq-b2qBzv-rdEFvK-dVK1R-5W1XmD-a1TrpD-yYdcp-4D87s8-9VDoNo-7BDKnc-sv7Eyp-4PT1ZR-GK4SR-7wtzVF-7U9mPB- 4e5gsE-bkNwXv-4QAa4w-VqAK7R-4Qw1Dp-q7jq49-chEaLb-3rFin-dYKokD-9GapDu-bkNxdX-aWpyqP-dsxEBu-cbo125-q71Mzk-bpNLCt-9kN2A3-bkNwFZ-aWTq7t-VJ3NWF-bUmuNN-9c6rNm https://www.flickr.com/photos/gsfc/ 8244369739/in/photolist-dywxTR-e7YVJL-UodiQu-5jhfU6-dFPPin-kweLCx-7hL9AT-i7arhE-hv3CGC-khqtLi-r3woAG-Ws9dLt-WXd3rQ-dRbXp3-dADspH-ndhiJD-bkbY3h-i3NEP6-Vw1xYM-V6myVs-LNdz9B-kwecKk-9BXY79- Vba1Xj-khpNqM-qntpoT-pxXgHn-kwTrDV-Us2Kqs-kwDSas-6wX9GD-r1j98o-bxTMss-r3sfj8-9mMqHx-dPcqJ1-pn3Mi4-pQd6Nt-dZUzW9-5SLpFa-7YLgj7-Xmy3CG-7w564c-8ffSaJ-UjAVpd-jzi6jL-pNmAjY-dE4u2v-kzox7D-cw8Rd9 http://ap-verlag.de/clickandbuilds/WordPress/MyCMS4/wp-content/uploads/2017/08/grafik-gartner-hype-cycle-2017.jpg https://media.gcflearnfree.org/content/5690213b4ba91213b0054eb9_01_08_ 2016/start_interface_background.png https://www.flickr.com/photos/michael_wacker/17148486915/in/photolist-s8mtHv-agNv1-4cour1-XZD99V-5ykQv2-7FZrKM-Di7LgY-jXbgSS-fYzPax-92GCXs-eCA45-fzMq36- dNnzX5-fHnJhb-axebUS-SQYNXN-aartBG-dbXycb-77JH3Z-5gcSxe-pBqMXx-8s3qVd-9C1Gj9-k25sMf-esjBQ-f7s8X-5kLpry-4xAdWe-7n61dm-4eF9CC-aGN96H-qem58t-eLa5Ap-9WaWEe-jeXAhv-dhMHpj-4HxX4D-fUp4yu-aZQNW- cveJpf-5WAdxf-8UCbKW-dRnxLS-bmQwtT-fu7Jiu-g8sZxB-4UQA74-2HVntV-dDCwFE-8AjJ68 https://media.gcflearnfree.org/content/5690213b4ba91213b0054eb9_01_08_2016/start_interface_background.png https://www.flickr.com/photos/michael_wacker/17148486915/in/photolist-s8mtHv-agNv1-4cour1-XZD99V-5ykQv2-7FZrKM-Di7LgY-jXbgSS-fYzPax-92GCXs-eCA45-fzMq36-dNnzX5-fHnJhb-axebUS-SQYNXN-aartBG- dbXycb-77JH3Z-5gcSxe-pBqMXx-8s3qVd-9C1Gj9-k25sMf-esjBQ-f7s8X-5kLpry-4xAdWe-7n61dm-4eF9CC-aGN96H-qem58t-eLa5Ap-9WaWEe-jeXAhv-dhMHpj-4HxX4D-fUp4yu-aZQNW-cveJpf-5WAdxf-8UCbKW-dRnxLS-bmQwtT- fu7Jiu-g8sZxB-4UQA74-2HVntV-dDCwFE-8AjJ68 https://www.flickr.com/photos/113306963@N05/36557530146/in/photolist-XGsU4U-oGo3ik-TEaP7K-WRMiBi-XymJYe-XGsR6u-V5fVcP-kjF94x-9o8SH7-VW8c8m-XavzLf- UXu6tr-VJaHBj- TrTv9W-b3avJ6-SyBwwc-SvVqru-eiiXTd-WuHLXC-agrRD4-4DX1uB-SRXAch-TqSowy-bupAbm-VALapW-SyBvK2-Xt7PaJ-TdVb11-V8fjeA-bq3t9j-XMrxTv-Vp3fAJ-bAHbfa-XvDkp5-XGtjjh-cuNNPf-VgcEn6-cXoU91- TUtbH2-kKijCm-XruZpQ-arM9WT-Vmz5rN-e5YFrT-9fXtHs-cXoSYL-UiUXYc-TPb1EU-Ucy8ZT-UDpaZY https://commons.wikimedia.org/wiki/File:Teacup_clipart.svg

×