ewd-feder8 Installation & Reference Guide

Size: px
Start display at page:

Download "ewd-feder8 Installation & Reference Guide"

Transcription

1 ewd-feder8 Installation & Reference Guide Version 1 25 July M/Gateway Developments Ltd ewd-feder8 Page 1

2 What is ewd-feder8? ewd-feder8 is a Node.js module that allows you to create a customisable platform for federated access across and between a set of HTTP/REST servers. ewd-feder8 is built on top of the ewd-xpress module which, in turn, is an Express-based platform that makes use of the ewd-qoper8 master/worker architecture with either the GT.M or Cache databases providing local persistence and session management within the federating platform. This architecture makes ewd-feder8 highly scalable. It is also highly customisable, for example: incoming HTTP requests can be re-routed to one or more of the federated Web Service/REST servers. Routing to more than one servers simultaneously is achieved by defining groups of servers. You may define as many groups as you like, and groups can overlap. responses from a group of servers are automatically aggregated and, when the last one is received, the aggregated response is returned to the original client. you can optionally customise ewd-feder8 by adding your own Node.js module that allows you to intercept and modify/manipulate not only incoming requests to ewd-feder8, but also incoming responses from the back-end federated servers. Installing ewd-feder8 ewd-feder8 is installed using: npm install ewd-feder8 Configuring and Running ewd-feder8 ewd-feder8 extends the ewd-xpress module, so you need to create a startup file that defines how you want to configure ewd-xpress and starts it up. Within the startup file you also define: - aliases and configuration details for the remote HTTP/REST servers that you want to federate - groupings of remote servers - the name/path for your customisation module, if applicable You'll find an example in the ewd-feder8 /examples directory (look for the file ewd-feder8.js) You then simply run your startup file, eg: node mystartupfile If you are using Caché as a database with ewd-feder8 running on a Linux platform, depending on the permissions granted when you installed Caché, you may need to invoke the startup file as sudo, e.g.: sudo node mystartupfile 2016 M/Gateway Developments Ltd ewd-feder8 Page 2

3 Example ewd-feder8 startup file Here's a simple example: var config = { managementpassword: 'keepthissecret!', servername: 'EWD Feder8 Platform', port: 8082, poolsize: 1, database: { type: 'cache' ; var feder8_params = { server: { placeholder: { host: ' myewd1: { host: ' myewd2: { host: ' destination: { dest1: ['myewd1', 'myewd2'] ; var feder8 = require('ewd-feder8'); feder8.start(config, feder8_params); The config object at the start of this example sets up the configuration for ewd-xpress: - it will listen on port one ewd-qoper8 worker will be used - the worker will connect to the Caché database - the management password can be used to allow access from the ewd-xpress-monitor application. The feder8-params object defines the servers that we want to federate. Each has a name or alias (eg 'placeholder', 'myewd1') and defines its base URL. The destination sub-object defines destination groups, each of which is an array of server names. If the example above is saved as /ewd3/my-feder8.js and started using: cd /ewd3 sudo node my-feder8 Then you should see the following: 2016 M/Gateway Developments Ltd ewd-feder8 Page 3

4 sudo node feder8-test [sudo] password for robtweed: webserverrootpath = /home/robtweed/ewd3/www/ Worker Bootstrap Module file written to node_modules/ewd-qoper8-worker.js ======================================================== ewd-qoper8 is up and running. Max worker pool size: 1 ======================================================== ewd-feder8 is now ready for use. To test it we should use an HTTP/REST client such as Chrome Advanced REST Client or Postman. Simple Use of ewd-feder8 as a proxy At its most simple, ewd-feder8 can be used as a proxy for another HTTP/REST server. The example startup file allows us to demonstrate this - take the "placeholder" server, which was defined/configured as follows in the startup file: placeholder: { host: ' This is a generally-available public server that is useful for REST testing. Try accessing it directly via your REST client: URL: Method: GET Content-type: application/json You should get a response similar to this: { "userid": 1, "id": 1, "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit", "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto" Now try accessing it indirectly via ewd-feder8: URL: Method: GET Content-type: application/json Note: Change the IP address and port to match that of your ewd-feder8 You should get the same response, but you'll see activity being logged in your ewd-feder8 console window, e.g.: 2016 M/Gateway Developments Ltd ewd-feder8 Page 4

5 no available workers sent qoper8-start message to 9538 process.argv[2] = ewd-xpress.worker workermodule: ewd-xpress; worker Session Garbage Collector has started in worker 9538 master process received response from worker 9538: {"type":"workerprocessstarted","ok":9538 new worker 9538 started and ready so process queue again checking if more on queue worker 9538 received message: {"type":"ewd-qoper8-express","path":"/placeholder/posts/ 1","method":"GET","headers":{"host":" :8082","content-type":"application/ json","params":{"0":"posts/1","destination":"placeholder","query":{,"body":{,"application":"ewdfeder8/lib/worker","expresstype":"ewd-feder8" handler module loaded for ewd-feder8/lib/worker master process received response from worker 9538: {"type":"ewd-qoper8- express","finished":true,"message":{"userid":1,"id":1,"title":"sunt aut facere repellat provident occaecati excepturi optio reprehenderit","body":"quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto","restmessage":true,"type":"ewd-feder8" Master process has finished processing response from worker process 9538 which is back in available pool If we analyse what happened: - We've pointed the REST client at our instance of ewd-feder8 via the URL : the URL path /placeholder tells ewd-feder8 to forward the request to the server with the alias 'placeholder' (ie - anything following this in the path is appended on the URL for the 'placeholder' server, so in our example the forwarded URL is: The forwarding is carried out by the ewd-qoper8 worker process, and when it receives the response from the remote server, it is returned to the ewd-qoper8 master process which, in turn, returns it to our REST client. Simple Federated Access to a Group of Servers A more useful use of ewd-feder8 is to forward a copy of an incoming request to a group of HTTP/ REST servers and pool the responses into a single aggregated response object. In order to test this, you'd need to set up a couple of ewd-xpress servers which will handle a web service (you could actually use a group of any web service endpoints that return the same or similar responses). Setting up such an ewd-xpress server is described here: We can define a very simple web service using the following module: 2016 M/Gateway Developments Ltd ewd-feder8 Page 5

6 module.exports = { ; restmodule: true, handlers: { test1: function(messageobj, finished) { console.log('*** test messageobj: ' + JSON.stringify(messageObj)); finished({ test: 'finished ok', pid: process.pid ); If we save this module into the /ewd3/node_modules directory and name it mywebservice.js, then this web service can be invoked by a URL path of /mywebservice/test1 Looking back at the example startup file, it defined the following ewd-xpress servers: myewd1: { host: ' myewd2: { host: ' It also defined a group (named 'dest1') containing these servers: destination: { dest1: ['myewd1', 'myewd2'] If both of the ewd-xpress servers used our simple test web service, we can get our ewd-feder8 server to forward a request for it to both of the ewd-xpress servers by sending the following request: URL: Method: GET Content-type: application/json If your ewd-xpress servers have been correctly set up and running on the correct IP addresses defined in your ewd-feder8 startup file, you should get back the following response: { "myewd1": { "test": "finished ok", "pid": 7741, "myewd2": { "test": "finished ok", "pid": M/Gateway Developments Ltd ewd-feder8 Page 6

7 This is a composite response object - each server in the group is identified by its alias (myewd1, myewd2) with its respective response defined as a sub-object below the alias name. So, provided each of the federated servers need to perform the same task, ewd-feder8 makes it very simple and straightforward to create a federated proxy web service. Customising ewd-feder8 If your requirements are more complex, ewd-feder8 provides a simple but powerful mechanism for customising its behaviour: you can intercept: - the incoming request from the REST/HTTP client; and/or - responses returned from the federated servers Request Interception If you intercept the incoming request, you can do things such as augmenting or modifying its payload and/or headers, and having done so you can either: - let it be forwarded to each server in the group defined by the incoming request path - forward the request to a server or group of your choice - i.e. you can programmatically over-ride the federation group mapping Response Interception If you intercept responses returned by a server, you can programmatically: - modify its contents - allow it to be added to the aggregated response; or - forward a new request (probably based on the response contents) to another federated server or group So by using response interception, you could create a complex "dance" of responses and requests between your ewd-feder8 server and your federated endpoint servers, building up a complex response. Furthermore, by making use of the persistence provided by the database that you've configured in your ewd-qoper8 server (ie GT.M or Caché), you could cache intermediate results and build a complex composite response. Adding Interceptions In order to intercept requests and responses, you must create an ewd-feder8 extension module which contains your intercept logic. This is a standard Node.js module which you'd normally save in your server's node_modules directory (eg /ewd3/node_modules). You can name it whatever you like, but you instruct ewd-feder8 to load it within the startup file. So we could do this in our example by adding the line shown: 2016 M/Gateway Developments Ltd ewd-feder8 Page 7

8 var config = { managementpassword: 'keepthissecret!', servername: 'EWD Feder8 Platform', port: 8082, poolsize: 1, database: { type: 'cache' ; var feder8_params = { server: { placeholder: { host: ' myewd1: { host: ' myewd2: { host: ' destination: { dest1: ['myewd1', 'myewd2'], extensionmodule: 'myextensionmodule' ; var feder8 = require('ewd-feder8'); feder8.start(config, feder8_params); You can, in fact, load the extension module from any directory you wish by specifying a full path, e.g: extensionmodule: 'ewd-feder8/examples/myfeder8extension' An ewd-feder8 extension module should export a function that contains any or all of the following event handlers: - this.on('feder8-request', function(params) {..; and/or - this.on('feder8-response', function(params) {..; and/or - this.on('feder8-combined-response', function(params) {..; Handling the feder8-request event The feder8-request event is emitted whenever an HTTP request is sent to your ewd-feder8 server. Your handler's callback function has a single argument, params, with the properties: - messageobj: the incoming request message object. This is in the standard ewd-xpress REST format described in - destination: the server or group destination as defined in the first element of the request URL - forward.tohost: a function that allows you to forward a message to a specified server - forward.togroup: a function that allows you to forward a message to a specified group destination 2016 M/Gateway Developments Ltd ewd-feder8 Page 8

9 - finished: the standard ewd-qoper8 finished() function which you must pass as an argument to forward.tohost or forward.togroup Here's our example's messageobj contents: { "type": "ewd-qoper8-express", "path": "/dest1/mywebservice/test1", "method": "GET", "headers": { "host": " :8082", "content-type": "application/json", "params": { "0": "mywebservice/test1", "destination": "dest1", "query": {, "body": {, "application": "ewd-feder8/lib/worker", "expresstype": "ewd-feder8" Typically you'll be interested in the method, headers, query and/or body properties within this object. Here's a simple do-nothing request intercept example: module.exports = function () { ; this.on('feder8-request', function(params) { console.log('**** feder8-request event fired in extension module!'); console.log('*** message: ' + JSON.stringify(params.messageObj)); ); Here we'll return a response to the REST client: module.exports = function () { this.on('feder8-request', function(params) { params.messageobj.responsesent = true; params.finished({ foo: 'bar', response: 'from request intercept' ); ); ; Note the way we have to set the responsesent flag as a property of the params.messageobj object - this tells ewd-feder8 to stop any further processing of the request M/Gateway Developments Ltd ewd-feder8 Page 9

10 Here we'll forward the request to the server named EWD1: module.exports = function () { this.on('feder8-request', function(params) { params.forward.tohost('myewd1', params.messageobj, params.finished); ); ; forward.tohost() automatically instructs ewd-feder8 to stop any further processing of the request. The arguments of the forward.tohost() function are: - destination: the alias of the federated server to which you want to send the message - messageobj: the message object to send to the destination server - finished: the ewd-qoper8 finished() function for returning the server's response to the ewdfeder8 master process. forward.togroup() should be used if you want to forward your message to a group of federated servers. Its arguments are: - destination: the name of the server group to which you want to send the message - messageobj: the message object to send to the destination server - finished: the ewd-qoper8 finished() function for returning the server's response to the ewdfeder8 master process. - forward: you should add the params.forward object as this argument, to allow the message to be forwarded to each member of the group. Note: within your feder8-request event handler, you can get access to the database by using either: this.documentstore to use the Document Store APIs this.db to use the raw cache.node / NodeM APIs Handling the feder8-response event The feder8-response event is emitted whenever a response is received from a federated server. Your handler's callback function has a single argument, params, with the properties: - responseobj: the response JSON object received from the federated server; - messageobj: the original message that was sent to the server, to allow your event handler to understand the context for the event - destination: the server or group destination as defined in the first element of the request URL - error: if an error occurred, this object will be defined and contain the details. - body: the main body of the response received from the federated server - forward.tohost: a function that allows you to forward a message to a specified server - forward.togroup: a function that allows you to forward a message to a specified group destination 2016 M/Gateway Developments Ltd ewd-feder8 Page 10

11 - finished: the standard ewd-qoper8 finished() function which you must pass as an argument to forward.tohost or forward.togroup, or use to return your final response to the REST client. Here we've added a simple do-nothing response intercept event handler to our ewd-feder8 extension module: module.exports = function () { ; this.on('feder8-request', function(params) { console.log('**** feder8-request event fired in extension module!'); console.log('*** message: ' + JSON.stringify(params.messageObj)); ); this.on('feder8-response, function(params) { console.log('**** on response fired in extension module!'); console.log('*** response was ' + JSON.stringify(params.responseObj)); ); ewd-feder8 will continue handling the response in the above example. Here we'll return our own customised response to the REST client and instruct ewd-feder8 to stop further processing of the response: module.exports = function () { ; this.on('feder8-request', function(params) { console.log('**** feder8-request event fired in extension module!'); console.log('*** message: ' + JSON.stringify(params.messageObj)); ); this.on('feder8-response, function(params) { console.log('**** on response fired in extension module!'); console.log('*** response was ' + JSON.stringify(params.responseObj)); params.responseobj.responsesent = true; params.finished({hello: 'world!'); ); Alternatively, you can use the params.forward.tohost() and params.forward.togroup() functions to send a new message back out to one or more of your federated servers. The mechanism for using these is identical to that used in your feder8-request handler (see above). Using either of these functions automatically instructs ewd-feder8 to stop further processing of the response. Note that your feder8-response handler will fire on receipt of any and all received responses from federated servers. You'll probably mainly use the params.destination property to determine how to handle each incoming response - this property will tell you which server returned the response. Of course you may also need to inspect the response object's contents in order to determine how to handle each incoming response M/Gateway Developments Ltd ewd-feder8 Page 11

12 Your feder8-response handler function also has access to the database via this.db and this.documentstore, allowing you to create temporary cached data to build up a complex composite response resulting from multiple round-trips to federated servers. Handling the feder8-combined-response event The feder8-combined-response event is emitted when all the responses have been received from a destination group of servers, just prior to the combined response being returned to the client. You can therefore write a handler function for this event to further customise the combined response object, and/or perform other tasks within ewd-feder8. Your handler's callback function has a single argument, params, with the properties: - responseobj: the JSON object containing the composite/combined response from all servers in the destination group; - messageobj: the original message that was sent to the server, to allow your event handler to understand the context for the event - destination: the name of the group destination, as defined in the first element of the request URL - error: error string notifying you of the last undefined server in the group (if any were undefined) - forward.tohost: a function that allows you to forward a message to a specified server - forward.togroup: a function that allows you to forward a message to a specified group destination - finished: the standard ewd-qoper8 finished() function which you must pass as an argument to forward.tohost or forward.togroup, or use to return your final response to the REST client. Here we've added a simple do-nothing feder8-combined-response intercept event handler to our ewd-feder8 extension module: module.exports = function () { ; this.on('feder8-request', function(params) { console.log('**** feder8-request event fired in extension module!'); console.log('*** message: ' + JSON.stringify(params.messageObj)); ); this.on('feder8-response, function(params) { console.log('**** on response fired in extension module!'); console.log('*** response was ' + JSON.stringify(params.responseObj)); ); this.on('feder8-combined-response', function(params) { console.log('**** combined-response has been created'); console.log('*** params = ' + JSON.stringify(params)); ); 2016 M/Gateway Developments Ltd ewd-feder8 Page 12

13 2016 M/Gateway Developments Ltd ewd-feder8 Page 13

M/Gateway Developments Ltd. ewd-federator. Reference Guide. M/Gateway Developments Ltd.

M/Gateway Developments Ltd. ewd-federator. Reference Guide. M/Gateway Developments Ltd. M/Gateway Developments Ltd ewd-federator Reference Guide M/Gateway Developments Ltd http://www.mgateway.com Copyright 2015, M/Gateway Developments Ltd. All Rights Reserved Table of Contents Introduction

More information

EWD Lite. Rob Tweed M/Gateway Developments Ltd. Tuesday, 16 July 13

EWD Lite. Rob Tweed M/Gateway Developments Ltd.   Tuesday, 16 July 13 EWD Lite Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com 1 EWD Lite Background, History and Aims Underlying Technology & Architecture Comparison with classic EWD Benefits

More information

EWD.js Architecture. Rob Tweed M/Gateway Developments Ltd. Saturday, 23 November 13

EWD.js Architecture. Rob Tweed M/Gateway Developments Ltd.   Saturday, 23 November 13 EWD.js Architecture Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com EWD.js Architecture 2 EWD.js Architecture Child Process removed from available pool as soon as a request

More information

Michelle Spigner Final Project Proposal

Michelle Spigner Final Project Proposal Michelle Spigner Final Project Proposal For my final project, I will be recreating my portfolio site, coding it from the ground up. My overall concept is to have most of the content viewable on a single

More information

EWD.JS INTRO WHAT IS EWD.JS AND HOW DO I USE IT? Christopher Edwards -

EWD.JS INTRO WHAT IS EWD.JS AND HOW DO I USE IT? Christopher Edwards - EWD.JS INTRO WHAT IS EWD.JS AND HOW DO I USE IT? Christopher Edwards - ChristopherEdwards@krminc.com Technical Manager @ KRM Associates, Inc. - www.krminc.com Manager, Product Certification and Release

More information

NODE.JS MOCK TEST NODE.JS MOCK TEST I

NODE.JS MOCK TEST NODE.JS MOCK TEST I http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

Backend Development. SWE 432, Fall Web Application Development

Backend Development. SWE 432, Fall Web Application Development Backend Development SWE 432, Fall 2018 Web Application Development Review: Async Programming Example 1 second each Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy bar Go get a candy

More information

EWD.js on FHIR. Rob Tweed M/Gateway Developments Ltd. Wednesday, 12 March 14

EWD.js on FHIR. Rob Tweed M/Gateway Developments Ltd.     Wednesday, 12 March 14 on FHIR Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com http://www.mgateway.com Architecture Caché Or GT.M Architecture Mumps: - Language - Database Caché Or GT.M Architecture

More information

Introduction to Express.js. CSC309 Feb. 6, 2015 Surya Nallu

Introduction to Express.js. CSC309 Feb. 6, 2015 Surya Nallu Introduction to Express.js CSC309 Feb. 6, 2015 Surya Nallu What is Express.js? Web application framework for Node.js Light-weight and minimalist Provides boilerplate structure & organization for your web-apps

More information

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016 Distributed Systems 2015 Exam 1 Review Paul Krzyzanowski Rutgers University Fall 2016 1 Question 1 Why did the use of reference counting for remote objects prove to be impractical? Explain. It s not fault

More information

Resources. The heart of ATI

Resources. The heart of ATI About Us Our Portfolio Funding European & International & Media Insight 03 - Emerging technologies in commercial aircraft systems This INSIGHT looks at the emerging technologies that will feature in future

More information

Controller/server communication

Controller/server communication Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication

More information

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Backend Development. SWE 432, Fall 2017 Design and Implementation of Software for the Web Backend Development SWE 432, Fall 2017 Design and Implementation of Software for the Web Real World Example https://qz.com/1073221/the-hackers-who-broke-into-equifax-exploited-a-nine-year-old-security-flaw/

More information

Developing Ajax Applications using EWD and Python. Tutorial: Part 2

Developing Ajax Applications using EWD and Python. Tutorial: Part 2 Developing Ajax Applications using EWD and Python Tutorial: Part 2 Chapter 1: A Logon Form Introduction This second part of our tutorial on developing Ajax applications using EWD and Python will carry

More information

Testing in AWS. Let s go back to the lambda function(sample-hello) you made before. - AWS Lambda - Select Simple-Hello

Testing in AWS. Let s go back to the lambda function(sample-hello) you made before. - AWS Lambda - Select Simple-Hello Testing in AWS Let s go back to the lambda function(sample-hello) you made before. - AWS Lambda - Select Simple-Hello Testing in AWS Simulate events and have the function react to them. Click the down

More information

Fiducial - Designers & Developers

Fiducial - Designers & Developers Fiducial - Designers & Developers Chateau Group Arquitectonica Fortune International Group Bonan Fiducial - Designers & Developers (Placed) User has placed the Designers & Developers fiducial on the table.

More information

Online Multimedia Winter semester 2015/16

Online Multimedia Winter semester 2015/16 Multimedia im Netz Online Multimedia Winter semester 2015/16 Tutorial 09 Major Subject Ludwig-Maximilians-Universität München Online Multimedia WS 2015/16 - Tutorial 09-1 Today s Agenda Discussion: Intellectual

More information

Microservices with Node.js

Microservices with Node.js Microservices with Node.js Objectives In this module we will discuss: Core Node.js concepts Node Package Manager (NPM) The Express Node.js package The MEAN stack 1.1 What is Node.js? Node.js [ https://nodejs.org/

More information

Overview of BC Learning Network SMS2 Introduction

Overview of BC Learning Network SMS2 Introduction Overview of BC Learning Network SMS2 Introduction This guide is designed to be a cumulative overview of the SMS2 web application. SMS2 is a student management system which integrates with Moodle, a learning

More information

tapi Documentation Release 0.1 Jimmy John

tapi Documentation Release 0.1 Jimmy John tapi Documentation Release 0.1 Jimmy John July 02, 2014 Contents 1 Why use TAPI? 3 2 Features 5 3 Dependencies 7 4 Installation 9 5 Quick Start 11 6 User Guide 13 6.1 Fundamentals...............................................

More information

Bitnami Node.js for Huawei Enterprise Cloud

Bitnami Node.js for Huawei Enterprise Cloud Bitnami Node.js for Huawei Enterprise Cloud Description Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. It uses an event-driven, non-blocking

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

IBM Security Access Manager Version 9.0 October Development topics IBM

IBM Security Access Manager Version 9.0 October Development topics IBM IBM Security Access Manager Version 9.0 October 2015 Development topics IBM IBM Security Access Manager Version 9.0 October 2015 Development topics IBM ii IBM Security Access Manager Version 9.0 October

More information

Automate with Grunt. Extracted from: The Build Tool for JavaScript. The Pragmatic Bookshelf

Automate with Grunt. Extracted from: The Build Tool for JavaScript. The Pragmatic Bookshelf Extracted from: Automate with Grunt The Build Tool for JavaScript This PDF file contains pages extracted from Automate with Grunt, published by the Pragmatic Bookshelf. For more information or to purchase

More information

CSET 4100 Assignment 3

CSET 4100 Assignment 3 CSET 4100 Assignment 3 Simple Java Servlet Overview This assignment will focus on creating Java Servlets that can communicate with a data storage system. Read CH. 6 and CH. 7 in the Java servlets and JSP

More information

Serverless Microservices Are The New Black. Lorna Mitchell, IBM

Serverless Microservices Are The New Black. Lorna Mitchell, IBM Serverless Microservices Are The New Black Lorna Mitchell, IBM Serverless FaaS: Functions as a Service write a function (many languages supported) deploy it to the cloud (Lambda, Cloud Functions, etc)

More information

ForeScout Open Integration Module: Data Exchange Plugin

ForeScout Open Integration Module: Data Exchange Plugin ForeScout Open Integration Module: Data Exchange Plugin Version 3.2.0 Table of Contents About the Data Exchange Plugin... 4 Requirements... 4 CounterACT Software Requirements... 4 Connectivity Requirements...

More information

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy

Features of a proxy server: - Nowadays, by using TCP/IP within local area networks, the relaying role that the proxy Que: -Proxy server Introduction: Proxy simply means acting on someone other s behalf. A Proxy acts on behalf of the client or user to provide access to a network service, and it shields each side from

More information

IBM Security Access Manager for Mobile Version Developer topics

IBM Security Access Manager for Mobile Version Developer topics IBM Security Access Manager for Mobile Version 8.0.0.5 Developer topics IBM Security Access Manager for Mobile Version 8.0.0.5 Developer topics ii IBM Security Access Manager for Mobile Version 8.0.0.5:

More information

Bitnami Ruby for Huawei Enterprise Cloud

Bitnami Ruby for Huawei Enterprise Cloud Bitnami Ruby for Huawei Enterprise Cloud Description Bitnami Ruby Stack provides a complete development environment for Ruby on Rails that can be deployed in one click. It includes most popular components

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Semester 2

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Semester 2 IEMS 5722 Mobile Network Programming and Distributed Server Architecture 2016-2017 Semester 2 Assignment 3: Developing a Server Application Due Date: 10 th March, 2017 Notes: i.) Read carefully the instructions

More information

Extra Notes - Data Stores & APIs - using MongoDB and native driver

Extra Notes - Data Stores & APIs - using MongoDB and native driver Extra Notes - Data Stores & APIs - using MongoDB and native driver Dr Nick Hayward Contents intro install MongoDB running MongoDB using MongoDB Robo 3T basic intro to NoSQL connect to MongoDB from Node.js

More information

Node.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js

Node.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js Node.js Mendel Rosenblum Threads versus Events request = readrequest(socket); reply = processrequest(request); sendreply(socket, reply); Implementation: Thread switching (i.e. blocking) and a scheduler

More information

RESTful APIs ECS 189 WEB PROGRAMMING. Browser s view. Browser s view. Browser s view. Browser s view. Which will It be for photobooth?

RESTful APIs ECS 189 WEB PROGRAMMING. Browser s view. Browser s view. Browser s view. Browser s view. Which will It be for photobooth? RESTful APIs ECS 189 WEB PROGRAMMING 5/19! We re implementing what is called a RESTful API! ReST stands for representational state transfer! The term was coined in 2000 by Roy Fielding, who at the time

More information

Composer Help. Web Request Common Block

Composer Help. Web Request Common Block Composer Help Web Request Common Block 7/4/2018 Web Request Common Block Contents 1 Web Request Common Block 1.1 Name Property 1.2 Block Notes Property 1.3 Exceptions Property 1.4 Request Method Property

More information

Policy Based Device Access Security Position Paper to Device Access Policy Working Group

Policy Based Device Access Security Position Paper to Device Access Policy Working Group 1 (8) Policy Based Device Access Security Position Paper to Device Access Policy Working Group 2 (8) 1. INTRODUCTION Nokia has implemented a policy-based device access security model for its Web runtime

More information

Administration Dashboard Installation Guide SQream Technologies

Administration Dashboard Installation Guide SQream Technologies Administration Dashboard Installation Guide 1.1.0 SQream Technologies 2018-08-16 Table of Contents Overview................................................................................... 1 1. Prerequisites.............................................................................

More information

Running and Debugging Custom Components Locally

Running and Debugging Custom Components Locally Oracle Intelligent Bots TechExchange Sample. Running and Debugging Custom Components Locally Martin Deh, May 2018 With Oracle Intelligent Bots, each state in the dialog flow invokes a component to perform

More information

Scaling DreamFactory

Scaling DreamFactory Scaling DreamFactory This white paper is designed to provide information to enterprise customers about how to scale a DreamFactory Instance. The sections below talk about horizontal, vertical, and cloud

More information

Oracle BI 12c: Build Repositories

Oracle BI 12c: Build Repositories Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 67863102 Oracle BI 12c: Build Repositories Duration: 5 Days What you will learn This Oracle BI 12c: Build Repositories training teaches you

More information

Google GCP-Solution Architects Exam

Google GCP-Solution Architects Exam Volume: 90 Questions Question: 1 Regarding memcache which of the options is an ideal use case? A. Caching data that isn't accessed often B. Caching data that is written more than it's read C. Caching important

More information

ForeScout CounterACT. Configuration Guide. Version 3.4

ForeScout CounterACT. Configuration Guide. Version 3.4 ForeScout CounterACT Open Integration Module: Data Exchange Version 3.4 Table of Contents About the Data Exchange Module... 4 About Support for Dual Stack Environments... 4 Requirements... 4 CounterACT

More information

User Manual. Admin Report Kit for IIS 7 (ARKIIS)

User Manual. Admin Report Kit for IIS 7 (ARKIIS) User Manual Admin Report Kit for IIS 7 (ARKIIS) Table of Contents 1 Admin Report Kit for IIS 7... 1 1.1 About ARKIIS... 1 1.2 Who can Use ARKIIS?... 1 1.3 System requirements... 2 1.4 Technical Support...

More information

Santiago Documentation

Santiago Documentation Santiago Documentation Release 1.2.0 Top Free Games November 07, 2016 Contents 1 Overview 3 1.1 Getting started.............................................. 3 1.2 Features..................................................

More information

LUCITY REST API INTRODUCTION AND CORE CONCEPTS

LUCITY REST API INTRODUCTION AND CORE CONCEPTS LUCITY REST API INTRODUCTION AND CORE CONCEPTS REST API OFFERINGS Lucity Citizen Portal REST API Lucity REST API Both products are included in our REST API Historically we also offered a COM API and a.net

More information

The Header Text. The Header Text. The Header Text. Company. Company. Dropdown. Button. Button. Button. Button. Button. Button. Amount.

The Header Text. The Header Text. The Header Text. Company. Company. Dropdown. Button. Button. Button. Button. Button. Button. Amount. Company People 84 Violations 42 Statistics Settings Profile Company People 84 Violations 42 Statistics Settings Edit All users Create Verified Delete Left Left Left Middle Middle Right Right Banned Append

More information

extc Web Developer Rapid Web Application Development and Ajax Framework Using Ajax

extc Web Developer Rapid Web Application Development and Ajax Framework Using Ajax extc Web Developer Rapid Web Application Development and Ajax Framework Version 3.0.546 Using Ajax Background extc Web Developer (EWD) is a rapid application development environment for building and maintaining

More information

Guides SDL Server Documentation Document current as of 05/24/ :13 PM.

Guides SDL Server Documentation Document current as of 05/24/ :13 PM. Guides SDL Server Documentation Document current as of 05/24/2018 04:13 PM. Overview This document provides the information for creating and integrating the SmartDeviceLink (SDL) server component with

More information

Copyright. Copyright Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 4.

Copyright. Copyright Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 4. Server 4.3 Copyright 1 Copyright 2017 Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 4.3 June, 2017 Ping Identity Corporation 1001 17th Street, Suite 100 Denver,

More information

BIG-IP System: Implementing a Passive Monitoring Configuration. Version 13.0

BIG-IP System: Implementing a Passive Monitoring Configuration. Version 13.0 BIG-IP System: Implementing a Passive Monitoring Configuration Version 13.0 Table of Contents Table of Contents Configuring the BIG-IP System for Passive Monitoring...5 Overview: Configuring the BIG-IP

More information

Lesson 7: Defining an Application

Lesson 7: Defining an Application 35 Lesson 7: Defining an Application In this lesson, we will define two new applications in the realm server, with an endpoint for each application. We will also define two new transports to be used by

More information

Optimized Sales & Marketing Setup Guide

Optimized Sales & Marketing Setup Guide Optimized Sales & Marketing Setup Guide This document details the steps required to integrate Optimized Sales & Marketing (OSM) with Marketo. OSM uses this integration to read data from Marketo. There

More information

PAS for OpenEdge Support for JWT and OAuth Samples -

PAS for OpenEdge Support for JWT and OAuth Samples - PAS for OpenEdge Support for JWT and OAuth 2.0 - Samples - Version 1.0 November 21, 2017 Copyright 2017 and/or its subsidiaries or affiliates. All Rights Reserved. 2 TABLE OF CONTENTS INTRODUCTION... 3

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au

More information

nucleon Documentation

nucleon Documentation nucleon Documentation Release 0.1 Daniel Pope December 23, 2014 Contents 1 Getting started with Nucleon 3 1.1 An example application......................................... 3 1.2 Our first database app..........................................

More information

ExtraHop 7.3 ExtraHop Trace REST API Guide

ExtraHop 7.3 ExtraHop Trace REST API Guide ExtraHop 7.3 ExtraHop Trace REST API Guide 2018 ExtraHop Networks, Inc. All rights reserved. This manual in whole or in part, may not be reproduced, translated, or reduced to any machinereadable form without

More information

Creating and Managing a Content Server Cluster

Creating and Managing a Content Server Cluster CHAPTER 10 This chapter describes the main features, system requirements, setup, and management of a Cisco TelePresence Content Server (TCS) cluster. To a user, a Content Server Cluster behaves exactly

More information

VistA: a first-class citizen in the JSON-centric future of Health IT

VistA: a first-class citizen in the JSON-centric future of Health IT VistA: a first-class citizen in the JSON-centric future of Health IT Rob Tweed M/Gateway Developments Ltd @rtweed What is JSON? JavaScript Object Notation A simple and compact syntax for describing Objects

More information

NetIQ Identity Manager Driver for REST Implementation Guide. February 2018

NetIQ Identity Manager Driver for REST Implementation Guide. February 2018 NetIQ Identity Manager Driver for REST Implementation Guide February 2018 Legal Notice For information about NetIQ trademarks, see https://www.netiq.com/company/legal/. Copyright (C) 2018 NetIQ Corporation.

More information

Catbook Workshop: Intro to NodeJS. Monde Duinkharjav

Catbook Workshop: Intro to NodeJS. Monde Duinkharjav Catbook Workshop: Intro to NodeJS Monde Duinkharjav What is NodeJS? NodeJS is... A Javascript RUNTIME ENGINE NOT a framework NOT Javascript nor a JS package It is a method for running your code in Javascript.

More information

CS 498RK FALL RESTFUL APIs

CS 498RK FALL RESTFUL APIs CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources

More information

Cordova - Guide - Custom Plugins

Cordova - Guide - Custom Plugins Cordova - Guide - Custom Plugins Dr Nick Hayward A brief overview of custom plugin development for Cordova. Contents intro structure and design architecture - Android architecture - cross-platform Plugman

More information

HornetQ REST Interface 2.2.2

HornetQ REST Interface 2.2.2 HornetQ REST Interface 2.2.2 Preface... v 1. Introduction... 1 1.1. Goals of REST Interface... 1 2. Installation and Configuration... 3 2.1. Installing Within Pre-configured Environment... 3 2.2. Bootstrapping

More information

Design and Implementation of A P2P Cooperative Proxy Cache System

Design and Implementation of A P2P Cooperative Proxy Cache System Design and Implementation of A PP Cooperative Proxy Cache System James Z. Wang Vipul Bhulawala Department of Computer Science Clemson University, Box 40974 Clemson, SC 94-0974, USA +1-84--778 {jzwang,

More information

TangeloHub Documentation

TangeloHub Documentation TangeloHub Documentation Release None Kitware, Inc. September 21, 2015 Contents 1 User s Guide 3 1.1 Managing Data.............................................. 3 1.2 Running an Analysis...........................................

More information

Table of Contents HOL-1757-MBL-5

Table of Contents HOL-1757-MBL-5 Table of Contents Lab Overview - - VMware AirWatch: Mobile App Management and App Development... 2 Lab Guidance... 3 Module 1 - Introduction to AppConfig (30 minutes)... 8 Login to the AirWatch Console...

More information

TRAINING GUIDE. Lucity Web Services APIs

TRAINING GUIDE. Lucity Web Services APIs TRAINING GUIDE Lucity Web Services APIs Lucity Web Services APIs Lucity offers several web service APIs. This guide covers the Lucity Citizen Portal API as well as the. Contents How it Works... 2 Basics...

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

More information

engine Documentation Release Kevin Brolly

engine Documentation Release Kevin Brolly engine Documentation Release 0.7.0 Kevin Brolly July 15, 2014 Contents 1 Search 3 2 Resource 7 2.1 Authorisation............................................... 7 2.2 Example JSON Response........................................

More information

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues

More information

Controller/server communication

Controller/server communication Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication

More information

Pusher Documentation. Release. Top Free Games

Pusher Documentation. Release. Top Free Games Pusher Documentation Release Top Free Games January 18, 2017 Contents 1 Overview 3 1.1 Features.................................................. 3 1.2 The Stack.................................................

More information

WorldSpace Attest Quick Start Guide

WorldSpace Attest Quick Start Guide WorldSpace Attest Quick Start Guide Contents What is WorldSpace Attest?... 2 What Comprises WorldSpace Attest?... 2 What do I need to get started?... 2 Prerequisites... 2 Generating your personal API key...

More information

Oracle BI 11g R1: Build Repositories Course OR102; 5 Days, Instructor-led

Oracle BI 11g R1: Build Repositories Course OR102; 5 Days, Instructor-led Oracle BI 11g R1: Build Repositories Course OR102; 5 Days, Instructor-led Course Description This Oracle BI 11g R1: Build Repositories training is based on OBI EE release 11.1.1.7. Expert Oracle Instructors

More information

Contents. Introducing Collibra Connect 1. About Collibra Connect 2. Collibra Connect deployment 2. Installing Collibra Connect 5

Contents. Introducing Collibra Connect 1. About Collibra Connect 2. Collibra Connect deployment 2. Installing Collibra Connect 5 1.4.1 Contents Introducing Collibra Connect 1 About Collibra Connect 2 Collibra Connect deployment 2 Installing Collibra Connect 5 Integrations with Collibra Connect: from development to production 7 Installing

More information

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved.

Configuring the Oracle Network Environment. Copyright 2009, Oracle. All rights reserved. Configuring the Oracle Network Environment Objectives After completing this lesson, you should be able to: Use Enterprise Manager to: Create additional listeners Create Oracle Net Service aliases Configure

More information

HCA Tech Note 502. HCA Cloud Developer Access (as of 12-April-2018)

HCA Tech Note 502. HCA Cloud Developer Access (as of 12-April-2018) HCA Cloud Developer Access (as of 12-April-2018) Using the same facilities used to support partner services, HCA provides a way for individual users to access to their own HCA Server using the same cloud

More information

edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB

edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB Accessing ALDSP 3.0 Data Services Through ALSB 3.0 edocs Home > BEA AquaLogic Service Bus 3.0 Documentation > Accessing ALDSP Data Services Through ALSB Introduction AquaLogic Data Services Platform can

More information

websnort Documentation

websnort Documentation websnort Documentation Release 0.8 Steve Henderson Jul 04, 2018 Contents 1 Features 3 2 Contents 5 3 Issues 15 Python Module Index 17 i ii Websnort is an Open Source web service for analysing pcap files

More information

Web Application Development

Web Application Development Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.

More information

Mixed Signals Using Fusion s Signals API

Mixed Signals Using Fusion s Signals API Mixed Signals Using Fusion s Signals API One of my favorite features in Fusion is the Signals API a RESTful, flexible, easily implemented mechanism for capturing interesting user events, like (but not

More information

Copyright. Copyright Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 5.

Copyright. Copyright Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 5. Server 5.0 Copyright 1 Copyright 2018 Ping Identity Corporation. All rights reserved. PingAccess Server documentation Version 5.0 February, 2018 Ping Identity Corporation 1001 17th Street, Suite 100 Denver,

More information

The Guardfreight Platform. As user s Guide. Andrew Harrison

The Guardfreight Platform. As user s Guide. Andrew Harrison The Guardfreight Platform. As user s Guide. Andrew Harrison Contents Concepts... 3 Set Up... 3 Common Tasks... 4 Login... 4 Manage your user... 5 Creating New Users... 6 User Roles... 7 Setting up User

More information

Installation guide for Choic Multi User Edition

Installation guide for Choic Multi User Edition Installation guide for ChoiceMail Multi User Edition March, 2004 Version 2.1 Copyright DigiPortal Software Inc., 2002 2004 All rights reserved ChoiceMail Multi User Installation Guide 1. Go to the URL

More information

Carbon Black QRadar App User Guide

Carbon Black QRadar App User Guide Carbon Black QRadar App User Guide Table of Contents Carbon Black QRadar App User Guide... 1 Cb Event Forwarder... 2 Overview...2 Requirements...2 Install Cb Event Forwarder RPM...2 Configure Cb Event

More information

Click Studios. Passwordstate. Installation Instructions

Click Studios. Passwordstate. Installation Instructions Passwordstate Installation Instructions This document and the information controlled therein is the property of Click Studios. It must not be reproduced in whole/part, or otherwise disclosed, without prior

More information

d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners

d. Delete data e. Transactions Realtime Features a. Value Listener b. Child Listener c. Remove Listeners Contents 1. License... 5 2. Introduction... 5 3. Plugin updates... 7 a. Update from previous versions to 1.5.0... 7 4. Example project... 8 5. GitHub Repository... 8 6. Getting started... 9 7. Database

More information

Oracle BI 11g R1: Build Repositories

Oracle BI 11g R1: Build Repositories Oracle University Contact Us: + 36 1224 1760 Oracle BI 11g R1: Build Repositories Duration: 5 Days What you will learn This Oracle BI 11g R1: Build Repositories training is based on OBI EE release 11.1.1.7.

More information

DEPLOYMENT GUIDE DEPLOYING F5 WITH ORACLE ACCESS MANAGER

DEPLOYMENT GUIDE DEPLOYING F5 WITH ORACLE ACCESS MANAGER DEPLOYMENT GUIDE DEPLOYING F5 WITH ORACLE ACCESS MANAGER Table of Contents Table of Contents Introducing the F5 and Oracle Access Manager configuration Prerequisites and configuration notes... 1 Configuration

More information

AWS Connect Pindrop Integration Guide

AWS Connect Pindrop Integration Guide INTEGRATION GUIDE AWS Connect Pindrop Integration Guide AMAZON CONNECT PINDROP Users should be familiar with Amazon Connect and Amazon Web Services (AWS) prior to leveraging the Pindrop service. Please

More information

BIG-IP Access Policy Manager : Implementations. Version 12.1

BIG-IP Access Policy Manager : Implementations. Version 12.1 BIG-IP Access Policy Manager : Implementations Version 12.1 Table of Contents Table of Contents Web Access Management...11 Overview: Configuring APM for web access management...11 About ways to time out

More information

Installation 3. Minimum system requirements 3. Download and installation on Windows 3. Download and installation on Linux 3

Installation 3. Minimum system requirements 3. Download and installation on Windows 3. Download and installation on Linux 3 2 TABLE OF CONTENTS Installation 3 Minimum system requirements 3 Download and installation on Windows 3 Download and installation on Linux 3 Mail server configuration 4 Out-of-the-box integrations 4 ServiceDesk

More information

1/ , DNN Sharp

1/ , DNN Sharp / Contents Version 1.0.0, Released Jul 4, 2014 www.dnnsharp.com 1/35 2014, DNN Sharp www.dnnsharp.com / Contents Contents What is DNN API Endpoint?... 5 Key Features... 5 Support... 5 Getting Started...

More information

Registrar- web Version February Registrar- web. Release 3.1. Copyright 2015 DNS Belgium vzw

Registrar- web Version February Registrar- web. Release 3.1. Copyright 2015 DNS Belgium vzw Registrar- web Version 3.1 5 February 2016 Registrar- web Release 3.1 Copyright 2015 DNS Belgium vzw Table of contents 1 Registrar Web... 3 1.1 User Management... 3 1.1.1 Permissions... 3 1.1.2 Transactions...

More information

ForgeRock Access Management Customization and APIs

ForgeRock Access Management Customization and APIs training@forgerock.com ForgeRock Access Management Customization and APIs Description AM-421 Course Description Revision B This course provides a hands-on technical introduction to ForgeRock Access Management

More information

Oracle BI 11g R1: Build Repositories

Oracle BI 11g R1: Build Repositories Oracle University Contact Us: 02 6968000 Oracle BI 11g R1: Build Repositories Duration: 5 Days What you will learn This course provides step-by-step procedures for building and verifying the three layers

More information

NetIQ Identity Manager Driver for REST Implementation Guide. February 2017

NetIQ Identity Manager Driver for REST Implementation Guide. February 2017 NetIQ Identity Manager Driver for REST Implementation Guide February 2017 Legal Notice For information about NetIQ trademarks, see https://www.netiq.com/company/legal/. Copyright (C) 2017 NetIQ Corporation.

More information

Stream iphone Sensor Data to Adafruit IO

Stream iphone Sensor Data to Adafruit IO Stream iphone Sensor Data to Adafruit IO Created by Trevor Beaton Last updated on 2019-01-22 04:07:41 PM UTC Guide Contents Guide Contents Overview In this learn guide we will: Before we start... Downloading

More information

API Documentation. Release Version 1 Beta

API Documentation. Release Version 1 Beta API Documentation Release Version 1 Beta Document Version Control Version Date Updated Comment 0.1 April 1, 2016 Initialize document 1 Release version PROMOTEXTER V3 BETA - API Documentation 1 Table of

More information