Mobile app with couchbase (REST services) - jquery-mobile

I'm creating a mobile app using cordova.
I decided to use Couchbase to store datas; but I can't figure out the difference from couchbase (server) and couchbase lite(/or mobile).
I have downloaded the couchbase server on my system, but how to connect it with my app?
Can I develop a mobile app only with couchbase server and rest calls?
Can I use N1QL to 'query' the server with .NET also using phonegap? (because couchbase mobile doesn't support n1ql).
I could just call a rest web service done with .NET or maybe JAVA but so is it needed to add couchbase mobile to the app?

Couchbase Mobile means the combined stack of Couchbase Server, Sync Gateway, and Couchbase Lite. Couchbase Server is a backend NoSQL enterprise database. Couchbase Lite is used embedded on a device. You glue them together with Sync Gateway.
Using Couchbase Server directly via REST calls isn't likely to work well. Server is built with different expectations about network latency and reliability. For example, you typically update a document using a CAS (compare and swap) approach. This doesn't work well if you have an unreliable network. (That's one very crude example.) Technically you can develop an app this way, but you're asking for big headaches. (This is true with any database not built for mobile.)
The Couchbase Mobile stack was developed to deal with all the problems faced in using an unreliable network. With the current version (1.4) of Couchbase Mobile you can do querying with map/reduce. This is already powerful. Stay tuned for support of new query capabilities in the upcoming 2.0 release.
N1QL is great, and it would be nice to have it available on mobile now. However, unless you really just can't get along without it, you should really work with the standard Couchbase Mobile stack.
For PhoneGap support, take a look at the information in the plugin GitHub repo: https://github.com/couchbaselabs/Couchbase-Lite-PhoneGap-Plugin

Related

Oracle maf and oracle af

Some information required about MAF.
How many platforms it will support?
I have read in some blogs, for client side(Mobile) they are using web frameworks and for Business logic they are using java and cordova for interact with Mobile functionalities.
Here business logic(JAVA) mean client side business logic or server side?
Using MAF directly(From mobile) we can access database, without interaction of webservices?
Is there any wrapper between Mobile and oracle database?
in case without wrapper we can, how to put security for database?
Thanks in advance.
MAF supports iOS and Android currently - versions here. See the data sheet for more info.
MAF can execute Java code (compiled at deployment) natively on the device. Java can be used for local business logic, although typically business logic is performed on server and accessed via Web Service for obvious performance and design reasons.
Java is typically used on device to support application state and behaviors or interface. UI is coded using component-based framework called AMX which generates HTML for rendering in web view and task flows for graphical design of navigation, or hand coded using HTML/JS fwk of your choice. Cordova provides access to on-device features via drag and drop code generation for AMX pages, as well as Java and JS APIs.
Java is used to connect to Web Services (REST and SOAP - REST preferred for performance) and the local database, (encrypted) SQLite via JDBC. All interaction with remote data sources is via Java JDBC and or Web Services. Java is used to wrapper all data sources, local and remote.
Please feel free to look at all the docs on the Oracle OTN site. Lots of good info there. Also, my aggregation site for my Oracle students has lots of good links as well.

NodeJS as an instant messaging server for a MVP chat service

I am working on a chat service with some unique features in it, and thinking about a server to dispatch messages and do all the IM-related stuff. First-priority client is going to be for iOS, built with Swift.
Is it feasible to create server, based on NodeJS Express, or may be Loopback? I have had a look at multiple choices, including ready solutions, like QuickBlox, Parse.
As for creating it from scratch, I think about NodeJS or Erlang.
At what stage should I make a decision so that not to waste too much time on reconfiguring everything for scaling and rapidity and convenience of development?
With technologies like Socket.io, Node.js, and Express, you could make a chat application fairly quickly.
Sockets are typically the best solution and the most common route to implementing a chat system, as they provide two way communication between the client and the server.
You could use practically any backend for a socket server, but it may end up being quicker to use Node.js and socket.io depending on your comfortability level with JavaScript.
All you would need is a socket compatible server and a client side library that connects to a socket server - there are plenty of JavaScript libs out there, including a socket.io-client.
Check out socket.io's chat demo on their site for a quick look at how it works:
http://socket.io/demos/chat/
They even provide a first party iOS Swift client:
https://github.com/socketio/socket.io-client-swift
Personally I recommend you to checkout SailsJS, a great framework for building API & chat server at the same time. It adopts socket.io internally so every route in a Sails app is compatible with socket.io (in other words, you can decide to call an API request via Socket anytime you wish!)
I've built a complete, working iOS App having chat feature. Its backend was completely developed using SailsJS. It saved me hundreds of hours. Sails documentation also mentions about scaling for production. Please have a look at http://sailsjs.org

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 .

Azure Mobile Services - Data Access - Developing for both mobile apps and websites

I'm developing with Azure Mobile Services (using SQL Azure) to provide a backend for both IOS and Android mobile apps and a PHP website.
My question is now that now custom apis have been introduced is it considered best practice to wrap everything up in custom api calls rather than e.g. using the CRUD table operation scripts directly from apps or websites?
Additionally for data access from a website should you lock down access to stored procedures and only exec via custom apis, to enforce a consistent approach no matter who the consumer is?
While I appreciate that custom apis and the table scripts are restful it still isn't clear how to architect a solution in the most efficient, reliable way that can enforce business rules in only place allowing each process only one entry point e.g. you have a stored procedure exec'd by an api called from the mobile apps. If the website calls that stored procedure directly without going via the api it could have unwanted side effects because other logic steps will have been missed.
I'm relatively new to Azure so forgive me if I have just missed something fundamental here. I've read many blogs and tutorials but they rapidly go out of date.
Many thanks
In my opinion the great feature of azure mobile services is the push notifications (to ios, android, wp). If you are not going to use that, there's no great advantage to use WAMS
(Windows Azure Mobile Services).
But it's a good choice using Windows Azure as backend since it's easy to scale up /down. In this case, you could create a Webapi and host in a Web Role. As it works with http, you can easily create Restful services and call them from your apps (ios / android).

Amazon Web Services with iOS

Good Day,
I have been more or less coding my own PHP scripts and using mysql for server-side stuff on my own server. I am quite interested in trying Amazon Web services.
Can I know if there is a free option to use their LAMP stack? Also, is there an iOS API available where I can create a database easily and just use the API for iOS to do retrieve data?
Yep there is a free tier option available where you can try a micro EC2 instance (a few AMIs already have Ubuntu + Apache + PHP5 installed as default) and a micro RDS (MySQL or others) database.
There is also a good iOS SDK available, even though it does not support all the AWS services.

Resources