Flask-Websub Documentation Release 0.4

Total Page:16

File Type:pdf, Size:1020Kb

Flask-Websub Documentation Release 0.4 Flask-WebSub Documentation Release 0.4 Marten de Vries Mar 06, 2021 Contents: 1 Examples 1 2 API 5 2.1 Hub module...............................................5 2.2 Subscriber module............................................6 2.3 Publisher module.............................................9 2.4 Errors module..............................................9 3 Further information 11 4 Useful to know 13 5 Indices and tables 15 Python Module Index 17 Index 19 i ii CHAPTER 1 Examples To run the example below, first start a celery broker. For example like this: docker run-p 6379:6379 redis:alpine Then, it is time to install the dependencies. We use a virtualenv to isolate them from the rest of the system: python3-m venv venv # create the virtualenv source venv/bin/activate # activate the virtualenv pip install Flask-WebSub[celery,redis] # install the dependencies Now our environment is set up, we can actually create a server and client file: #!/usr/bin/env python3 # server_example.py from flask import Flask, render_template, url_for # The publisher and hub are combined in the same process because it's easier. # There's no need to do so, though. from flask_websub.publisher import publisher, init_publisher from flask_websub.hub import Hub, SQLite3HubStorage from celery import Celery # app & celery app= Flask(__name__) app.config['SERVER_NAME']='localhost:8080' celery= Celery('server_example', broker='redis://localhost:6379') # initialise publisher init_publisher(app) # initialise hub # # PUBLISH_SUPPORTED is not recommended in production, as it just accepts any # link without validation, but it's but nice for testing. (continues on next page) 1 Flask-WebSub Documentation, Release 0.4 (continued from previous page) app.config['PUBLISH_SUPPORTED']= True # we could also have passed in just PUBLISH_SUPPORTED, but this is probably a # nice pattern for your app: hub= Hub(SQLite3HubStorage('server_data.sqlite3'), celery, **app.config) app.register_blueprint(hub.build_blueprint(url_prefix='/hub')) def validate_topic_existence(callback_url, topic_url, *args): with app.app_context(): if topic_url.startswith('https://websub.rocks/'): return # pass validation if topic_url != url_for('topic', _external=True): return "Topic not allowed" hub.register_validator(validate_topic_existence) hub.schedule_cleanup() # cleanup expired subscriptions once a day, by default @app.before_first_request def cleanup(): # or just cleanup manually at some point hub.cleanup_expired_subscriptions.delay() @app.route('/') @publisher() def topic(): return render_template('server_example.html') @app.route('/update_now') def update_now(): hub.send_change_notification.delay(url_for('topic', _external=True)) return "Notification send!" if __name__ =='__main__': app.run(host='0.0.0.0', port=8080) #!/usr/bin/env python3 # client_example.py from flask import Flask, url_for from flask_websub.subscriber import Subscriber, SQLite3TempSubscriberStorage, \ SQLite3SubscriberStorage, discover import sys app= Flask(__name__) app.config['SERVER_NAME']='localhost:8081' subscriber= Subscriber(SQLite3SubscriberStorage('client_data.sqlite3'), SQLite3TempSubscriberStorage('client_data.sqlite3')) app.register_blueprint(subscriber.build_blueprint(url_prefix='/callbacks')) (continues on next page) 2 Chapter 1. Examples Flask-WebSub Documentation, Release 0.4 (continued from previous page) @subscriber.add_success_handler def on_success(topic_url, callback_id, mode): print("SUCCESS!", topic_url, callback_id, mode) @subscriber.add_error_handler def on_error(topic_url, callback_id, msg): print("ERROR!", topic_url, callback_id, msg) @subscriber.add_listener def on_topic_change(topic_url, callback_id, body): print('TOPIC CHANGED!', topic_url, callback_id, body) if len(sys.argv) ==2: published_url= sys.argv[1] else: published_url='http://localhost:8080/' @app.route('/subscribe') def subscribe_route(): id= subscriber.subscribe( **discover(published_url)) return 'Subscribed.'+ url_for('renew_route', id=id, _external= True) @app.route('/renew/<id>') def renew_route(id): new_id= subscriber.renew(id) return 'Renewed:'+ url_for('unsubscribe_route', id=new_id, _external=True) @app.route('/unsubscribe/<id>') def unsubscribe_route(id): subscriber.unsubscribe(id) return 'Unsubscribed:'+ url_for('cleanup_and_renew_all', _external= True) @app.route('/cleanup_and_renew_all') def cleanup_and_renew_all(): subscriber.cleanup() # 100 days, to make sure every single subscription is renewed subscriber.renew_close_to_expiration(24 * 60 * 60 * 100) return 'Done!' if __name__ =='__main__': app.run(host='0.0.0.0', port=8081) <!DOCTYPE html> <!-- templates/server_example.html --> <html> <head> (continues on next page) 3 Flask-WebSub Documentation, Release 0.4 (continued from previous page) <title>WebSub test</title> {{ websub_self_link }} {{ websub_hub_link }} </head> <body> Hello World! </body> </html> Don’t forget to update server_example.py and client_example.py’s SERVER_NAME config variable when creating those files. Simply set them to whatever hostname the server will have (it can just be localhost). Finally, it’s time to start the applications. Each line in a different terminal (assuming the virtualenv is active in each): celery-A server_example.celery worker-l info # starts the celery worker ./server_example.py # runs the server flask application ./client_example.py # runs the client flask application You can now see the page the hub publishes by navigating to the root url of the hub server (port 8080). As it’s a static page, you can simulate updating it by navingating to /update_now. Of course, for this to do something, you need to subscribe to the URL. The subscriber server (as defined in client_example.py, port 8081) offers a /subscribe endpoint to help you with this. It will also tell you other URLs you can visit to control the subscription side of the process. 4 Chapter 1. Examples CHAPTER 2 API 2.1 Hub module class flask_websub.hub.Hub(storage, celery=None, **config) This is the API to the hub package. The constructor requires a storage object, and also accepts a couple of optional configuration values (the defaults are shown as well): • BACKOFF_BASE=8.0: When a hub URL cannot be reached, exponential backoff is used to control retry- ing. This parameter scales the whole process. Lowering it means trying more frequently, but also for a shorter time. Highering it means the reverse. • MAX_ATTEMPTS=10: The amount of attempts the retrying process makes. • PUBLISH_SUPPORTED=False: makes it possible to do a POST request to the hub endpoint with mode=publish. This is nice for testing, but as it does no input validation, you should not leave this enabled in production. • SIGNATURE_ALGORITHM=’sha512’: The algorithm to sign a content notification body with. Other possible values are sha1, sha256 and sha384. • REQUEST_TIMEOUT=3: Specifies how long to wait before considering a request to have failed. • HUB_MIN_LEASE_SECONDS: The minimal lease_seconds value the hub will accept • HUB_DEFAULT_LEASE_SECONDS: The lease_seconds value the hub will use if the subscriber does not have a preference • HUB_MAX_LEASE_SECONDS: The maximum lease_seconds value the hub will accept You can pass in a celery object too, or do that later using init_celery. It is required to do so before actually using the hub, though. User-facing properties have doc strings. Other properties should be considered implementation details. build_blueprint(url_prefix=”) Build a blueprint containing a Flask route that is the hub endpoint. 5 Flask-WebSub Documentation, Release 0.4 cleanup_expired_subscriptions Removes any expired subscriptions from the backing data store. It takes no arguments, and is a celery task. counter = count(0) endpoint_hook() Override this method to hook into the endpoint handling. Anything this method returns will be forwarded to validation functions when subscribing. init_celery(celery) Registers the celery tasks on the hub object. register_validator(f ) Register f as a validation function for subscription requests. It gets a callback_url and topic_url as its ar- guments, and should return None if the validation succeeded, or a string describing the problem otherwise. schedule_cleanup schedule_cleanup(every_x_seconds=A_DAY): schedules the celery task cleanup_expired_subscriptions as a recurring event, the frequency of which is determined by its parameter. This is not a celery task itself (as the cleanup is only scheduled), and is a convenience function. send_change_notification Allows you to notify subscribers of a change to a topic_url. This is a celery task, so you probably will actually want to call hub.send_change_notification.delay(topic_url, updated_content). The last argument is optional. If passed in, it should be an object with two properties: headers (dict-like), and content (a base64-encoded string). If left out, the updated content will be fetched from the topic url directly. class flask_websub.hub.SQLite3HubStorage(path) CLEANUP_EXPIRED_SUBSCRIPTIONS_SQL = "\n delete from hub where expiration_time <= strftime('%s', 'now')\n " DELITEM_SQL = 'delete from hub where topic_url=? and callback_url=?' GET_CALLBACKS_SQL = "\n select callback_url, secret from hub\n where topic_url=? and expiration_time > strftime('%s', 'now')\n " SETITEM_SQL = "\n insert or replace into hub(topic_url, callback_url, expiration_time,\n secret)\n values (?, ?, strftime('%s', 'now') + ?, ?)\n " TABLE_SETUP_SQL = '\n create table if not exists hub(\n topic_url text not null,\n callback_url text not null,\n secret text,\n expiration_time integer not null,\n primary
Recommended publications
  • A Field Guide to Web Apis by Kin Lane Contents
    A field guide to web APIs By Kin Lane Contents Executive summary 4 What are APIs used for? 5 Open data . 5 Websites . 5 Mobile . 5. Automobiles . 6. Homes and buildings . 6 Why are web APIs different? 7 They build on existing web architecture . 7. Intuitive resources . 7 Simplicity rules . 8. Easy to understand for developers and even nondevelopers . 8. Self-service resources . 8 . History of web APIs 9 Commerce . 9 . Social . 9 . Cloud computing . .9 . Mobile . .10 . What technology goes into an API? 11 REST . 11. JSON . 11 Security . 11 . Keys . 11 . Basic auth . 12 Open authorization . 12 . Webhooks . 12 Deploying your web API 13 Do-it-yourself approaches . 13 Cloud solutions . 13 . Enterprise gateways . 13 . Established practices for managing APIs 14 Self-service . 14 . Getting started . .14 . Documentation . 15 . Code samples . 15. 2 A field guide to web APIs Support and feedback loops . 15 . The legal aspect . 15. Developer dashboard . 16 Marketing and API evangelism 17 Goals . 17 User engagement . .17 . Blogging . 17 Landscape analysis . 18 . GitHub . .18 . Social . 18. Events . 19. The future of web APIs 20 API aggregation . 20 . Real-time APIs . 20. Backend as a Service (BaaS) . 20 . Automation . 20 Voice . 21. Internet of things . 21. Cloud trends 22 Maturity of IaaS layer . 22. Opportunities in the PaaS layer . .22 . Key takeaways 23 About Kin Lane 23 3 A field guide to web APIs Executive summary A new breed of web API has emerged, delivering a vision of a lightweight, low-cost approach to connect devices and allowing applications to exchange data efficiently. This research report is a field guide for web API providers, developers, and even nondevelopers .
    [Show full text]
  • Seamless Interoperability and Data Portability in the Social Web for Facilitating an Open and Heterogeneous Online Social Network Federation
    Seamless Interoperability and Data Portability in the Social Web for Facilitating an Open and Heterogeneous Online Social Network Federation vorgelegt von Dipl.-Inform. Sebastian Jürg Göndör geb. in Duisburg von der Fakultät IV – Elektrotechnik und Informatik der Technischen Universität Berlin zur Erlangung des akademischen Grades Doktor der Ingenieurwissenschaften - Dr.-Ing. - genehmigte Dissertation Promotionsausschuss: Vorsitzender: Prof. Dr. Thomas Magedanz Gutachter: Prof. Dr. Axel Küpper Gutachter: Prof. Dr. Ulrik Schroeder Gutachter: Prof. Dr. Maurizio Marchese Tag der wissenschaftlichen Aussprache: 6. Juni 2018 Berlin 2018 iii A Bill of Rights for Users of the Social Web Authored by Joseph Smarr, Marc Canter, Robert Scoble, and Michael Arrington1 September 4, 2007 Preamble: There are already many who support the ideas laid out in this Bill of Rights, but we are actively seeking to grow the roster of those publicly backing the principles and approaches it outlines. That said, this Bill of Rights is not a document “carved in stone” (or written on paper). It is a blog post, and it is intended to spur conversation and debate, which will naturally lead to tweaks of the language. So, let’s get the dialogue going and get as many of the major stakeholders on board as we can! A Bill of Rights for Users of the Social Web We publicly assert that all users of the social web are entitled to certain fundamental rights, specifically: Ownership of their own personal information, including: • their own profile data • the list of people they are connected to • the activity stream of content they create; • Control of whether and how such personal information is shared with others; and • Freedom to grant persistent access to their personal information to trusted external sites.
    [Show full text]
  • Navigating the New Streaming API Landscape
    WHITE PAPER Navigating the new streaming API landscape 10 ways real-time, event-driven architectures are redefining the future of business Navigating the new streaming API landscape Streaming: it’s much Streaming APIs that deliver data to web, mobile, and device applications more than video have been evolving for many years, but today an important convergence is happening between regular web APIs and streaming technology. The result When you mention streaming to is the advent of the event-driven architecture, and it’s redefining the future anyone in the context of the web, of business. they immediately think of Netflix and YouTube. This paper is not There are a lot of online services, tools, and devices that use the word about the streaming of video “streaming,” making for a crazy mix of information that will make even the content. It’s about widening your most seasoned technologist’s head spin. The objective of this paper is to perspective on what real-time help anyone — technical or not — navigate the fast-growing and ever-evolving streaming can be, and the many streaming API landscape. We’ll walk you through some of the most common reasons a company, use cases for making data available in a real-time stream to help you organization, institution, or understand how and when it makes sense to invest in your streaming government agency would want API infrastructure. to invest in streaming APIs and event-driven architecture. 10 ways real-time, event-driven architectures are redefining the future of business To help paint a picture of why streaming data using APIs isn’t just about video, financial data, or news, we’ll take a look at 10 areas of significant streaming technology adoption.
    [Show full text]
  • Bibliography of Erik Wilde
    dretbiblio dretbiblio Erik Wilde's Bibliography References [1] AFIPS Fall Joint Computer Conference, San Francisco, California, December 1968. [2] Seventeenth IEEE Conference on Computer Communication Networks, Washington, D.C., 1978. [3] ACM SIGACT-SIGMOD Symposium on Principles of Database Systems, Los Angeles, Cal- ifornia, March 1982. ACM Press. [4] First Conference on Computer-Supported Cooperative Work, 1986. [5] 1987 ACM Conference on Hypertext, Chapel Hill, North Carolina, November 1987. ACM Press. [6] 18th IEEE International Symposium on Fault-Tolerant Computing, Tokyo, Japan, 1988. IEEE Computer Society Press. [7] Conference on Computer-Supported Cooperative Work, Portland, Oregon, 1988. ACM Press. [8] Conference on Office Information Systems, Palo Alto, California, March 1988. [9] 1989 ACM Conference on Hypertext, Pittsburgh, Pennsylvania, November 1989. ACM Press. [10] UNIX | The Legend Evolves. Summer 1990 UKUUG Conference, Buntingford, UK, 1990. UKUUG. [11] Fourth ACM Symposium on User Interface Software and Technology, Hilton Head, South Carolina, November 1991. [12] GLOBECOM'91 Conference, Phoenix, Arizona, 1991. IEEE Computer Society Press. [13] IEEE INFOCOM '91 Conference on Computer Communications, Bal Harbour, Florida, 1991. IEEE Computer Society Press. [14] IEEE International Conference on Communications, Denver, Colorado, June 1991. [15] International Workshop on CSCW, Berlin, Germany, April 1991. [16] Third ACM Conference on Hypertext, San Antonio, Texas, December 1991. ACM Press. [17] 11th Symposium on Reliable Distributed Systems, Houston, Texas, 1992. IEEE Computer Society Press. [18] 3rd Joint European Networking Conference, Innsbruck, Austria, May 1992. [19] Fourth ACM Conference on Hypertext, Milano, Italy, November 1992. ACM Press. [20] GLOBECOM'92 Conference, Orlando, Florida, December 1992. IEEE Computer Society Press. http://github.com/dret/biblio (August 29, 2018) 1 dretbiblio [21] IEEE INFOCOM '92 Conference on Computer Communications, Florence, Italy, 1992.
    [Show full text]
  • Dezvoltarea Aplicațiilor Web La Nivel De Client
    inginerie inginerie Dezvoltarea Dezvoltarea aplicațiilor Web software în contextulsoftware la niveldeclient JavaScript Dr. Sabin Buragaprofs.info.uaic.ro/~busaco busaco ~ “There are two ways to write error-free programs; / only the third one works.” profs.info.uaic.ro Alan J. Perlis Dr. Sabin Sabin Buraga Dr. busaco ~ / Ce instrumente software și biblioteci JS pot fi folosite în contextul programării Web profs.info.uaic.ro la nivel de client? Dr. Sabin Sabin Buraga Dr. instrumente busaco ~ / Editare de cod și dezvoltare de aplicații Web Depanare profs.info.uaic.ro Testare Documentare a codului Compresie Optimizare Sabin Buraga Dr. instrumente: editare busaco ~ / Editoare + medii integrate (IDE) pentru desktop: Atom Editor, Brackets, JS Development Tools (Eclipse), Sublime Text, Visual Studio Code, WebStorm etc. profs.info.uaic.ro Disponibile pe Web – în cloud: Cloud9 IDE, Codepen, Codio, JS Bin, JS Fiddle, Plunker,… Dr. Sabin Sabin Buraga Dr. unele oferă și partajarea codului-sursă cu alți dezvoltatori a se considera și github.com/sorrycc/awesome-javascript#editors instrumente: depanare busaco ~ / Utilizarea consolei JS obiectul console oferit de browser profs.info.uaic.ro console.spec.whatwg.org (Living Standard, 25 oct. 2018) metode utile: log (), error (), warn (), info (), assert (), time (), timeEnd (), trace (), group (), groupEnd (), table (), dir (), dirxml () Sabin Buraga Dr. developer.mozilla.org/Web/API/Console instrumente: depanare busaco ~ / profs.info.uaic.ro de studiat și M. Burgess, Beyond console.log(), nov. 2018 medium.com/@mattburgess/beyond-console-log-2400fdf4a9d8 Dr. Sabin Sabin Buraga Dr. instrumente: depanare busaco ~ / Instrumentele de depanare profs.info.uaic.ro incluse în navigatoarele Web moderne: developers.google.com/web/tools/chrome-devtools/ developer.mozilla.org/docs/Tools docs.microsoft.com/en-us/microsoft-edge/devtools-guide developer.apple.com/safari/tools/ Dr.
    [Show full text]
  • D2.1 Report on Fair Requirements for Persistence and Interoperability 2019
    Project Title Fostering FAIR Data Practices in Europe Project Acronym FAIRsFAIR Grant Agreement No 831558 Instrument H2020-INFRAEOSC-2018-4 Topic INFRAEOSC-05-2018-2019 Support to the EOSC Governance Start Date of Project 1st March 2019 Duration of Project 36 months Project Website www.fairsfair.eu D2.1 REPORT ON FAIR REQUIREMENTS FOR PERSISTENCE AND INTEROPERABILITY 2019 Work Package WP2 - FAIR practices: semantics, interoperability and services Lead Author (Org) Heikki Lehväslaiho (CSC) Jessica Parland-von Essen (CSC), Claudia Behnke (SURFsara), Leah Contributing Author(s) (Org) Riungu-Kalliosaari (CSC), Heidi Laine (CSC), Yann Le Franc (e-SDF), Christine Staiger (DTL) Due Date 30.11.2019 Date 23.11.2019 Version 1.0 DRAFT NOT YET APPROVED BY THE EUROPEAN COMMISSION ​ DOI https://doi.org/10.5281/zenodo.3557381 Dissemination Level X PU: Public PP: Restricted to other programme participants (including the Commission) RE: Restricted to a group specified by the consortium (including the Commission) CO: Confidential, only for members of the consortium (including the Commission) DRAFT NOT YET APPROVED BY THE EUROPEAN COMMISSION Abstract This document is the first iteration of three annual reports on the state of FAIR in European scientific data by the FAIRsFAIR project. The interpretation of the FAIR data principles and their implications for services are now under intense scrutiny across Europe with multiple possible outcomes. The report is based on studies of public information, especially EOSC infrastructure efforts, and on limited surveying and interviews. The focus has been on understanding the usage of persistent identifiers and semantic interoperability. This study highlights the rapidity of change in technical solutions and wide variation across scientific domains in the uptake.
    [Show full text]
  • Applied Bioinformatics
    Paul M. Selzer Richard J. Marhöfer Oliver Koch Applied Bioinformatics An Introduction Second Edition Paul M. Selzer Richard J. Marhöfer Boehringer Ingelheim MSD Animal Health Animal Health Innovation GmbH Ingelheim am Rhein, Germany Schwabenheim, Germany Oliver Koch TU Dortmund University Faculty of Chemistry and Chemical Biology Dortmund, Germany The first edition of this textbook was written by Paul M. Selzer, Richard J. Marhöfer, and Andreas Rohwer Originally published in German with the title: Angewandte Bioinformatik 2018 ISBN 978-3-319-68299-0 ISBN 978-3-319-68301-0 (eBook) https://doi.org/10.1007/978-3-319-68301-0 Library of Congress Control Number: 2018930594 © Springer International Publishing AG, part of Springer Nature 2008, 2018 Preface Though a relatively young discipline, bioinformatics is finding increasing importance in many life science disciplines, including biology, biochemistry, medicine, and chemistry. Since its beginnings in the late 1980s, the success of bioinformatics has been associated with rapid developments in computer sci- ence, not least in the relevant hardware and software. In addition, biotechno- logical advances, such as have been witnessed in the fields of genome sequencing, microarrays, and proteomics, have contributed enormously to the bioinformatics boom. Finally, the simultaneous breakthrough and success of the World Wide Web has facilitated the worldwide distribution of and easy access to bioinformatics tools. Today, bioinformatics techniques, such as the Basic Local Alignment Search Tool (BLAST) algorithm, pairwise and multiple sequence comparisons, queries of biological databases, and phylogenetic analyses, have become familiar tools to the natural scientist. Many of the software products that were initially unin- tuitive and cryptic have matured into relatively simple and user-friendly prod- ucts that are easily accessible over the Internet.
    [Show full text]
  • The Maturity of Public Transport Apis 2019 Contents
    The maturity of public transport APIs 2019 Contents Foreword – 02 The ten cities & their API rankings – 04 Method – 05 Indicators of maturity – 06 Main findings – 13 London – 15 Manchester – 18 Helsinki – 21 Barcelona – 24 Singapore – 27 Sydney – 30 San Francisco – 33 Chicago – 36 NYC – 39 Vancouver – 42 Conclusions & recommendations – 44 Signs you need a Realtime API – 47 The maturity of public transport APIs 2019 1 Foreword Our most important digital interactions now happen in realtime. We expect the same from the apps and transport systems we use to traverse our cities on a daily basis. Do public transport sector APIs meet this new demand? A number of public transport providers have been at the forefront of the open data movement for years. Across the globe many of these transport providers now offer programmatic access to their data via REST APIs. For some, it’s been almost a decade. As hardware and software have become more sophisticated, so too have the demands Matthew O’Riordan of developers working with data of all kinds. REST APIs brought about a revolutionary change in the way organizations Founder and CEO Ably exchange data and the way in which developers create new applications and experiences. In transport, this saw the creation of CityMapper, Moovit, and many others. But REST APIs only satisfy request/response cycles and aren’t well-suited to streaming live updates to third-party apps and services when latency of updates really matters - like with travel updates. As a result of this, at Ably and across the wider realtime ecosystem, we’re seeing developers seek out Realtime APIs in many aspects of their work - largely driven by end-user demand.
    [Show full text]
  • Requirements and Initial Prototype
    This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 870811 D4.1 Linked Data server technology: requirements and initial prototype Deliverable information WP 4 Document dissemination level PU Public Deliverable type R Document, report Lead beneficiary OU Contributors UNIBO, UNITO, IMMA, CELI, UH, UCM Date 01/05/2021 Document status Final Document version v1.0 Disclaimer: The communication reflects only the author’s view and the Research Executive Agency is not responsible for any use that may be made of the information it contains Deliverable 4.1 SPICE GA 870811 v1.0 ‐ 30/04/2021 INTENTIONALLY BLANK PAGE 2 Deliverable 4.1 SPICE GA 870811 v1.0 ‐ 30/04/2021 Project information Project start date: 1st of May 2020 Project Duration: 36 months Project website: https://spice‐h2020.eu Project contacts Project Coordinator Project Scientific coordinator Project Manager Silvio Peroni Aldo Gangemi Adriana Dascultu ALMA MATER STUDIORUM ‐ Institute for Cognitive Sciences ALMA MATER STUDIORUM ‐ UNIVERSITÀ DI BOLOGNA and Technologies of the Italian UNIVERSITÀ DI BOLOGNA National Research Council Department of Classical Executive Support Services Philology and Italian Studies – E‐mail: [email protected] E‐mail: FICLIT [email protected] E‐mail: [email protected] SPICE consortium No. Short name Institution name Country 1 UNIBO ALMA MATER STUDIORUM ‐ UNIVERSITÀ DI BOLOGNA Italy 2 AALTO AALTO KORKEAKOULUSAATIO SR Finland 3 DMH DESIGNMUSEON SAATIO ‐ STIFTELSEN FOR
    [Show full text]
  • Linked Research on the Decentralised Web
    Linked Research on the Decentralised Web Dissertation zur Erlangung des Doktorgrades (Dr. rer. nat.) der Mathematisch-Naturwissenschaftlichen Fakultät der Rheinischen Friedrich-Wilhelms-Universität Bonn vorgelegt von Sarven Capadisli aus Istanbul, Turkey Bonn, 2019-07-29 Angefertigt mit Genehmigung der Mathematisch-Naturwissenschaftlichen Fakultät der Rheinischen Friedrich-Wilhelms-Universität Bonn 1. Gutachter: Prof. Dr. Sören Auer 2. Gutachter: Dr. Herbert Van de Sompel Tag der Promotion 2020-03-03 Erscheinungsjahr 2020 Abstract This thesis is about research communication in the context of the Web. I analyse literature which reveals how researchers are making use of Web technologies for knowledge dissemination, as well as how individuals are disempowered by the centralisation of certain systems, such as academic publishing platforms and social media. I share my findings on the feasibility of a decentralised and interoperable information space where researchers can control their identifiers whilst fulfilling the core functions of scientific communication: registration, awareness, certification, and archiving. The contemporary research communication paradigm operates under a diverse set of sociotechnical constraints, which influence how units of research information and personal data are created and exchanged. Economic forces and non-interoperable system designs mean that researcher identifiers and research contributions are largely shaped and controlled by third-party entities; participation requires the use of proprietary systems. From a technical standpoint, this thesis takes a deep look at semantic structure of research artifacts, and how they can be stored, linked and shared in a way that is controlled by individual researchers, or delegated to trusted parties. Further, I find that the ecosystem was lacking a technical Web standard able to fulfill the awareness function of research communication.
    [Show full text]
  • UN/CEFACT Orchestration Eb-Mou/MG Webinar Internet of Things
    UN/CEFACT Orchestration eB-MoU/MG Webinar Internet of Things Ian Watt UN/CEFACT Vice Chair: International Supply Chain Program Development Area [email protected] UNECE – UN/CEFACT 12th. September 2018 (CET 10:00-11:30 International Supply Chain Programme Development Area Domains: (ISCO & SCM&P & T&L) ISCO: International Supply Chain Orchestration Domain SCM&P: Supply Chain & Procurement Domain T&L: Transport and Logistics Domain 2 Orchestration Domain Background Information • Over the past decades, UN/CEFACT has developed a number of standards including business process models, XML schema and core components. The general overarching technical specification of the UN/CEFACT Modeling Methodology (UMM) was intended to guide much of this work. This guidance was useful for electronic messages which correspond to complete paper documents. • Today, data exchange is being conceived as snippets of information through event-driven data exchanges instead of exchanging complete ‘document’ equivalent messages. This is evident in projects such as the Reference Data Models, the Data Pipeline, Blockchain or Internet of Things. These new methods of data exchange require new methods of considering how these exchanges can work together and complement each other for a same transaction. 3 Orchestration Domain Scope The scope of the international supply chain orchestration Domain is to support the efforts of all UN/CEFACT related projects to deliver their semantic specifications in a way that suits implementers of web platforms and pipeline /IoT projects as well as traditional document exchange projects. To achieve that, we will • Develop an architecture model that presents the Supply Chain Reference Data Model (SCRDM) and Multi-Modal Transport Reference Data Model (MMT) as a set of granular information resources with clearly defined state lifecycles • For each web resource, explore possibilities such as an Open API 3.0 specification that represents the resource as a RESTful API with JSON data payload and JSON-LD links to related resources.
    [Show full text]
  • Programare Web. API-Uri Javascript În Contextul HTML5
    Full-Stack Web Development busaco demos.com 5 profs.info.uaic.ro/~ html Dr. Sabin Sabin Buraga Dr. API-uri JavaScript în contextul HTML5 – partea I Dr. Sabin Corneliu Buraga – profs.info.uaic.ro/~busaco/ busaco “You are never too old to set another goal or to dream a new dream.” profs.info.uaic.ro/~ C.S. Lewis Dr. Sabin Sabin Buraga Dr. Încărcarea & redarea documentelor busaco prezentarea conținutului (reprezentării) unei resurse – uzual, obiecte ale arborelui DOM – are loc în cadrul unui context de navigare profs.info.uaic.ro/~ (browsing context) Dr. Sabin Sabin Buraga Dr. Încărcarea & redarea documentelor busaco context de navigare mediu în care sunt redate obiectele de tip Document profs.info.uaic.ro/~ Dr. Sabin Sabin Buraga Dr. Încărcarea & redarea documentelor busaco context de navigare mediu în care sunt redate obiectele de tip Document profs.info.uaic.ro/~ exemple tipice: tab-ul unei instanțe de browser Web elementul <iframe> în care se încarcă o altă resursă Sabin Buraga Dr. Încărcarea & redarea documentelor busaco context de navigare are asociat un obiect WindowProxy profs.info.uaic.ro/~ care referă obiectul Window Dr. Sabin Sabin Buraga Dr. Încărcarea & redarea documentelor busaco context de navigare include un istoric al sesiunii curente (session history) profs.info.uaic.ro/~ memorând secvența instanțelor de tip Document care au fost redate utilizatorului documentul curent e considerat ca fiind document activ Sabin Buraga Dr. Încărcarea & redarea documentelor busaco context de navigare posedă un proprietar (creator browsing context) profs.info.uaic.ro/~ desemnat de o origine (origin) uzual, tuplul <schema, host, port, domain> Dr. Sabin Sabin Buraga Dr.
    [Show full text]