C++ Tango REST API implementation

Slides:



Advertisements
Similar presentations
Building RESTful Interfaces
Advertisements

Copyright © IBM Corp., All rights reserved. The presentation is licensed under Creative Commons Att. Nc Nd 2.5 license. RESTful Service Oriented.
Systems Architecture, Fourth Edition1 Internet and Distributed Application Services Chapter 13.
Beyond the UI Using Tools to Improve Testing Jeremy Traylor
ASP. Net is a rich web framework that leverages well known patterns and JavaScript frameworks to build great web experiences quickly.
Designing and Implementing Web Data Services in Perl
Python and REST Kevin Hibma. What is REST? Why REST? REST stands for Representational State Transfer. (It is sometimes spelled "ReST".) It relies on a.
Or, Hey can’t we just do it using HTTP for the envelope?
Grid Chemistry System Architecture Overview Akylbek Zhumabayev.
Module 7: Advanced Application and Web Filtering.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
Shminder Singh Marquese Carter Ethan Bowyer.  What is SOAP?  Example SOAP Code.  SOAP Characteristics.  Use for SOAP.  Advantages.  Disadvantages.
Web2.0 Secure Development Practice Bruce Xia
RESTful Web Services A MIDAS MISSION PRESENTATION APRIL 29, 2015.
Web Technologies Lecture 10 Web services. From W3C – A software system designed to support interoperable machine-to-machine interaction over a network.
Writing secure Flex applications  MXML tags with security restrictions  Disabling viewSourceURL  Remove sensitive information from SWF files  Input.
AFS/OSD Project R.Belloni, L.Giammarino, A.Maslennikov, G.Palumbo, H.Reuter, R.Toebbicke.
MIIS1 MIIS - 17 Introduction to the WWW & http * * http information from World Wide Web Programming with HTML & CGI by Ed Tittel, Mark Gaither, S. Hassinger,
Feeling RESTful? Well, first we’ll define a Web Service –A web page meant to be consumed by a computer via an autonomous program as opposed to a web browser.
Using Retrofit framework in implementation of Android REST client David Ante Macan*, Zlatko Stapić, Milan Pavlović* University of Zagreb Faculty of Organization.
REST API Design. Application API API = Application Programming Interface APIs expose functionality of an application or service that exists independently.
Joint institute for nuclear research Volkov V.I., Gorbachev E.V., Kirichenko A.E., Sedykh G.S. NEC’2015 The thermometry system of superconducting magnets.
Lecture # 1 By: Aftab Alam Department Of Computer Science University Of Peshawar Internet Programming.
National College of Science & Information Technology.
ONAP CLI (Command-Line Interface ) Architecture
Open-O CLI (Command-Line Interface ) Architecture
Brice Copy, Mirjam Labrenz
API (Application Program Interface)
Hypertext Transfer Protocol
Content from Python Docs.
Better RESTFul API – Best Practices
API Security Auditing Be Aware,Be Safe
Data Bridge Solving diverse data access in scientific applications
WEB SERVICES.
REST: Web Services Abel Sanchez.
Node.js Express Web Services
Tango Administrative Tools
AJAX and REST.
Unit – 5 JAVA Web Services
TGFT protocal prototyping based on CCSDS
Hypertext Transport Protocol
What is REST API ? A REST (Representational State Transfer) Server simply provides access to resources and the REST client accesses and presents the.
of superconducting magnets cryogenic test bench
OPNFV: Support for HA Guest APIs: Introduction
Applied Cyber Infrastructure Concepts Fall 2017
JavaScript: ExpressJS Overview
Chapter 3: Windows7 Part 4.
Ashish Pandit IT Architect, Middleware & Integration Services
WEB API.
$, $$, $$$ API testing Edition
Cloud Web Filtering Platform
Distributed Systems through Web Services
A gentle introduction to RESTful APIs
Creating a Distributed System with Remote Procedure Calls and Web Services Ch.5 B.Ramamurthy 2/17/2019 B.Ramamurthy.
Middleware, Services, etc.
EE 122: HyperText Transfer Protocol (HTTP)
William Stallings Data and Computer Communications
REST APIs Maxwell Furman Department of MIS Fox School of Business
Building production-ready APIs with ASP.NET Core 2.2
REST på Microsoft-stacken
Web API with Angular 2 Front End
APACHE WEB SERVER.
Python and REST Kevin Hibma.
Week 05 Node.js Week 05
A gentle introduction to RESTful APIs
Information Retrieval and Web Design
Web-Services and RESTful APIs
WCF Data Services and Silverlight
Computer Network Information Center, Chinese Academy of Sciences
Chengyu Sun California State University, Los Angeles
Presentation transcript:

C++ Tango REST API implementation Joint Institute for Nuclear Research, Dubna, Russia RestDS – C++ Tango REST API implementation Georgy Sedykh, Evgeny Gorbachev TANGO Workshop @ ICALEPCS 2017

Web clients 1. Web technologies progress 2. Advantages: Universal Flixible Well-looking Convenient Universal tools for communication between Tango Controls and Web clients are required

REST Global identification of resources (URL); REST (Representational State Transfer) – architectural principles to design web services that focus on system’s resources. Global identification of resources (URL); Manipulation of resources through the standard protocol (HTTP); Stateless;

Tango REST API RC4 * Describes how to: Operate with different tango hosts; Browse Tango units (devices, attributes, properties, commands, pipes); Write/Read attributes; Execute commands; Write/Read pipes; Get/Set properties; Use authentication mechanisms; Transmit arguments as http parameters; Parse Response JSON; Use Error codes; http://tangodevel.jinr.ru:8080/tango/rest/rc3/nuclotango.jinr.ru/20000/devices/sys/tg_test/1/attributes/DevDouble/value Attribute Command Pipe Property REST Service URL REST API Version Tango host Tango device ID * http://tango-rest-api.readthedocs.io/en/latest/

RestDS – Tango module, designed to provide access to tango control system units through http requests; Features: Developed in C++ with Boost and OpenSSL; Windows and Linux supported; Lightweight; Tango device server; Both http and https protocols supported; Basic http authentication supported; Uses server-side role-based Tango access control and logging system (More info: TUPHA171 – Development of NICA Control System: Access Control and Logging); Git: http://tangodevel.jinr.ru/git/tango/web/RestDS.git; Tango REST API RC4 partial support (so far without pipes);

RestDS :: Examples To read attribute: GET http(s)://host:port/tango/rest/rc4/devices/domain/family/member/attributes/name/value To write attribute: POST / PUT http(s)://host:port/tango/rest/rc4/devices/domain/family/member/attributes/name + arguments as POST parameters. To execute command without arguments: POST / PUT http(s)://host:port/tango/rest/rc4/devices/domain/family/member/commands/name To execute command with arguments: POST / PUT http(s)://host:port/tango/rest/rc4/devices/domain/family/member/commands/name + arguments as POST parameters.

Response as JSON object if success Or http error code if failed.. RestDS :: Operation diagram http://host:port/tango/rest/rc4/devices/thermo/shoulder/1/attributes/T56/value Web Client RestDS HTTP code 200 - OK Response as JSON object if success Host:port Threads number Authentication Security (SSL) { “name”: “T56”, “quality”: “VALID”, “timestamp”: 1473348563, “value”: 273.12, } Or http error code if failed.. 400 – Bad request 403 – Forbidden 401 – Unauthorized 404 – Not found

Web client examples :: Thermometry

Web client examples :: Satellite refrigerators control

Summary: Web client applications are cross-platform, well-looking and convenient; Web clients will be widely distributed within the NICA Control system. RestDS Tango module was developed to provide universal way to communicate between web client and Tango-based control system.