Concept clearance regarding Mobile Apps

96 Views Asked by At

I am new to mobile programming although I have some experience of working on web products. I have a few concepts which I need cleared...

  1. What is the difference between an MBAAS(Like Kii or Parse) and a data store(like MongoDB)?

  2. How will I tie MBaas and MongoDB together? Also, if i need to connect MBaas to an RDBMS how to go about it?

  3. On some MBaas websites I read about objects in cache getting synchronised with objects in server etc. In what shape are these cached objects? Are they JSON bodys?

  4. Can a session be shared between an application and a browser session in the same mobile ?

  5. Can multiple applications access the same MBaas space ? What happens if multiple applications need to access the same data base? Is it possible ?

  6. I have an application, can it use the same cache area for storing the ids/passwords of to different users ?

Please help me as I am not getting enough documents on the internet...

Thanks in advance, Dee.

1

There are 1 best solutions below

0
On

Those are all pretty good questions when you're starting to take a look at MBaaS. I'll try to answer according to my experience:

1) MBaaS provide a higher level of abstraction that a database. It delivers higher level services instead of just persistence. Think of services like user management, analytics, push, etc on top of just data management. MBaaS almost always provide a data management service but it's higher level since it runs on top of databases like MongoDB (since MBaaS services require scalability they often rely on NoSQL databases but they do not expose the db api to you directly). Pros: you get to deal with a simpler/straightforward data management api. Cons: you don't get granular control over the data operations as seen on a db

2) To tie MBaaS to other database you need to rely on the MBaaS import/export services (I suppose that this makes sense to you after reading the first question). Pros: you don't worry about how the data is stored in an MBaaS (it will scale, have integrity, etc). Cons: you don't have a low level access to the data (you do it through the MBaaS API). But I must say MBaaS are improving a lot in what they allow you to do with the data (this is getting better)

3) maybe you read something about the offline capabilities of some MBaaS. Some of them keep operations and/or changed objects in a cache and then synchronize with the backend when online. The shape of these can vary with each MBaaS but JSON is often used when it's time to communicate with the backend (JSON is convenient for transfers of data/operations but it's not necessarily an internal representation of MBaaS client cache)

4) Not in the traditional web sense of having a session with a cookie. MBaaS usually work at the level of a user session relying on authentication services (they are particluarly strong in this area). Some MBaaS provide an anonymous user functionality where users of your app can do a session without explicit authentication (but this can't be correlated to a the same user doing an anonymous session on the web). In general you'll have to use user authentication to share web activity with MBaaS activity.

5) On the first generation of MBaaS this wasn't possible. Everything was designed thinking in independent apps. But some problems started to arise like "what if I want to share users among different apps"? So MBaaS provides are adding more services that address this sort of issues (like single sign on for multiple apps)

6) I'm not sure if I follow but if you have an application that uses an MBaaS you're probably going to use the MBaaS authentication services to login a user so the fact that you're using one device/one cache is not an issue for allowing your app to authenticate multiple users. Let me now if this is not exactly what you asked (I can edit the question)

Hope this helps you get a better picture.

Best!