How to query Titan Graph Database from iOS App - ios

If I set up a graph-database with an AWS DynamoDB backend using the Titan plug-in, how do I then actually send queries to the database and return values? From this Diagram that I found here, it looks like the TinkerPop API can be used to send these queries. But I can't find any information on running TinkerPop on an iOS device. So how do I interact with the database from the app?
Thanks.

TinkerPop and Titan are Java libraries, so if you are writing an IOS app, you should go through the TinkerPop Gremlin Server. As described in the TinkerPop documentation,
[Gremlin Server] Provides a method for Non-JVM languages (e.g. Python, Javascript, etc.) to communicate with the TinkerPop stack.... By default, communication with Gremlin Server occurs over WebSockets and exposes a custom sub-protocol for interacting with the server.
In your IOS app, you can connect to the Gremlin Server using a WebSockets client library, such as SocketRocket (Objective-C) or Starscream (Swift). Then you would need to send a RequestMessage to the Gremlin Server following the format described in the TinkerPop documentation. An initial approach to create a Gremlin Driver in Swift has been attempted (gist).
Alhtough WebSockets is the default connection protocol, you can optionally configure HTTP on the Gremlin Server instead, then make HTTP requests to the server.

Related

How to traffic data between Google Cloud SQL and Flutter?

Cloud SQL documentation about connecting with external apps didn't helped me much. Isn't there some library to handle data traffic like Firebase's Cloud Firestore and Realtime Database offer?
Either use cloud functions to provide an API for Flutter and access to the DB
or run your custom server in the Google cloud that does that.
SQL databases should never be accessed over the internet directly and instead hidden behind a web server that only exposes a limited or specialized API.

Connecting to neo4j-graphql websocket for subscriptions?

I haven't found any information on how to connect to a websocket to enable graphql subscriptions on a neo4j (3.3) instance with the neo4j-graphql plugin installed.
I've also unsuccessfully tried urls relating to the bolt port (localhost:7687).
Is this possible to do?
If not, could there be a workaround at the level of a separate, subscription-enabled graphql server when using schema delegation down to the neo4j server?
So, neo4j-graphql doesn't implement ws yet
And yes, if calling the db through a graphql server such as aws appsync that would enable subscriptions.

Fetch data from Siebel CRM

I'm planning to develop an adapter to access Siebel CRM data for my iOS app. I'm a new bee into this Siebel technology. I 've the Siebel CRM up an running in my workstation with sample db data. Could any one help me in getting this done? please excuse me if i've hosted this ques in a wrong stack.
There seems to be only 2 valid ways to do that:
SOAP webservices
REST api (but for this you need to have jboss or weblogic server: Sebel Bookshelf)
all other ways (Java Siebel Data Bean, COM interfaces, direct db access) got lots of issues: like issues with java on iOS ( I think it is not possible to run on iPhone), issues with legacy COM interfaces on iOS and numerous issues with direct db connection (complexity, stability, reusability...)
SOAP is out of the box on Siebel but requires more coding on iOS side, REST is easier on iOS or any webpage but requires some middlware:
JBoss/WebLogic + and RESTfull Siebel client form Siebel (available somewhere on their page)
java data bean app that produces REST
soap client that produces REST
I have worked on 2 projects involving iOS and Siebel: first one using JBoss and second project that used SOAP client which translated requests to/from REST. SOAP client approach was more stable (in comparison to RESTfull client from vendor - as the RESTfull client connects to Siebel internally using Java Data Bean) on Siebel 7.8.
In both cases we picked REST to talk to iOS as it allows easier deveopment on iOS side and also possiblity to easly utilize it in projects creating webpages to simplify/tune siebel GUI for different purpose..
If you're current system is sample db, then you have installed developer instance of Siebel. It uses a Sybase database. The server installation will use Oracle/MSSQL server. If you are ok with database connection, you can check that.
For Webservices, by default , Siebel does not support JSON/REST api. Only the older SOAP structure is supported. You will have to go through oracle bookshelves to setup an inbound webservice in Siebel.
But just to add, the latest version of Siebel's UI uses javascript/CSS, and runs on any browser, including IOs .

Which server is affected when we use Neo4j traversal API?

Maybe a silly question :)
If we use separate physical servers for Application and Database, when using Traversal framework, which one of the servers should support the queries (DB or Application)?
Neo4j traversals run on the Neo4j database server, if you are using the server version of Neo4j.
Disclaimer: I'm building a similar system right now, so my view is probably biased.
My Node.js Application server provides an Angular app from the /public folder. The client application speaks only to the Application server.
Generally it works like this:
Client sends a message to Server.
Server returns a promise to client.
Server queries the DB, performs any necessary manipulation to the data.
Server resolves the promise.
Client interprets the response.
hope that's helpful.

Using Rexter API to interact with Neo4j

Is there a way to interact with a neo4j graph db (running externally HA mode) via Rexter API. Neo4j's REST api is great but using Rexter makes my application completely agnostic of the remote graph db implementation stack. This will enable me to swap in other tinkerpop based graph db stacks like titan without affecting/changing my application code.
You should be able to use the Neo4jHaGraph Blueprints implementation:
https://github.com/tinkerpop/blueprints/wiki/Neo4jHa-Implementation
Here's some instructions for connecting using Rexster:
https://github.com/tinkerpop/rexster/wiki/Specific-Graph-Configurations#neo4j-high-availability-cluster

Resources