How a saas application coding is different from our traditional web applications? - saas

How a saas application coding is different from our traditional web applications? Please share some link where I can find some helpful tutorials. Thanks in advance for your time and help.

The main differences between the code of SaaS applications and traditional applications is the concurrency control and the resources consumption.
The concurrency control is necessary when you have multiple users accessing the same resources, so things like thread safety are crucial to this kind of application.
About the resources consumption, the efficiency of SaaS applications are much more important than traditional applications, because the hosting costs of SaaS are (normally) paid by the company who own the app, and impact directly on the company finance. Plus, all the resources used are multiplied by the number of users.
Other main concern that should be considered when programming SaaS applications is about the data separation: a user should never, ever, see data of another users registered in the application (there are exceptions, of course). This have extra weight when talking about SaaS applications in areas like finance and fiscal management, etc.
If you have more questions or want me to expand the answer in some specific direction, please let me know in the comments section.

Related

Flutter package for Blockchain BFT consensus between app users

I am looking for suggestion before I could plan / design an open source flutter package which enable developers to introduce distributed consensus to their application (basically a blockchain within mobile phones) along with their existing backend stack.
This package would work along with existing backend to generate identity, participate in validation of transaction, and store a copy of chain within their device. Later I am planning to use pluggable encryption based on developer’s need for enhanced security.
Keeping in mind of the best consensus as Practical Byzantine Fault Tolerant but PBFT/BFT has resource intensive PoW to do consensus which phones can't be, I am planning to implement PBFT based on technique explained in “Elastico” paper (review/summary is attached here [1]). 
This is just an initial idea rolling in my mind for few hours now. I need to realise the feasibility this technique inside a mobile phone to form a network.
[1] https://muratbuffalo.blogspot.com/2018/03/paper-review-secure-sharding-protocol.html
Why do you want to build this
This package would help devs to integrate features of blockchain to their centralised app stack without rebuilding their backend. Talking about application part, consider situations which involve decision making and forming opinions, supply chain management, data provenance (integrating with IPFS)
Development of the plugin will take some real effort and time.
Not having done any serious feasibility study on the project but I believe this plugin will be useful for a longer run.
If there are some suggestions based on your experience in plugin development, pl share it here.

BLUEMIX support for Social media app

I'm building a social media app targeting a specific nitche of users.
The app is built in HTML5 with features similar to Facebook or Instagram.
Can the entire application run on Bluemix?
What exactly are the benefits of bluemix to an App of this nature?
Thanks.
Blumix is a PAAS. The benefits of Bluemix are the benefits of a PAAS infrastructure and of the support:
cost savings
reduced technical maintenance
The upfront costs for purchasing servers, other hardware, and the necessary software licenses are eliminated.
Technical Benefits
Choice to choose the programming models, languages, operating systems and databases
Switching in different environments – Development , Test ( System, Integration, UAT,etc)
Hardware Scalability - Auto scaling supported through DevOps Services
Elasticity - Supported through DevOps Services
Automation – Supported at various level from runtime provisioning to development lifecycle
Improved development productivity
Business benefits
Lower Total Cost of Ownership
Faster time to market
Business Continuity
Savings on costs associated with hardware resource consumption and support infrastructure
Facebook is a social network.
And yes you can do something like this on Bluemix choosing the right services. I suggest you to take a look at Bluemix Catalog in order to understand what services you can create and use on Bluemix to do what you want: https://console.ng.bluemix.net/catalog/
In this particular case I suggest you to take a look to Object Storage Service (to store files) - DashDB (or other db service) to store db information - SSO to manage the authentication.
I suggest to take a look at this article too: https://www.ibm.com/developerworks/community/blogs/96960515-2ea1-4391-8170-b0515d08e4da/entry/Moving_to_Cloud_Platform_as_a_Service_Pros_and_Cons?lang=en
This a quite large topic, however let's see some of the services you could use on Bluemix developing your application:
the first thing I think about is the IBM Graph service: it is an easy-to-use, fully-managed NO-SQL graph database service for storing and querying data points, their connections, and properties. IBM Graph offers an Apache TinkerPop3 compatible API and plugs into your Bluemix application seamlessly. This service can be used for building recommendation engines, analyzing social networks, and fraud detection.
Insights for Twitter: this could be useful if you need to integrate with Twitter for example analyzing the trends and providing your users updated news.
You could take a look at the Watson cognitive services in the Bluemix Catalog, some of them can be useful for social networking purposes (eg. Language Translation to connect people speaking different languages, or Personality Insights to identify psychological traits which determine purchase decisions, intent and behavioral traits).
The application can entirely run on Bluemix (you can choose the Runtime you prefer for the server-side code). The benefits, in addition to the services listed above (there are actually many others that could result useful), are the classic ones related to developing on a Cloud PaaS platform: scalability (both horizontal and vertical), availability, lower costs...

Need some advice to get a commercial xmpp application developed

I have a business idea which I want to materialize for sometime .. I recently shared my idea with 2 close friends who also found it very interesting, new and doable plus the cost included for the project to start is reasonable and they have planned to invest in it. Much of the success of this project app depends on the proper marketing element out of which most of the time, you have to personally meet up with clients/vendor and make them use your application.
The idea is to connect local ecommerce (retail shops, businesses, vendors, etc.) with users/customers through a messaging app mostly similar to whatsapp. I have already started to look for a xmpp/jabber developer who can accomplish our requirements. We are expecting him to develop the app and also set-up the server requirements. Our budget lies within $3000-4000 range for the project to initiate.
I want the app to have the following aspects:
a) user friendly GUI
b) highly scalable (planning to start within my city located in south asia)
c) location sharing (want users to navigate nearby shops/vendor offering their type of goods/services)
d) have a user review feedback against vendors and an additional page for vendor profile/rating system
e) only customer - vendor chats with functionalities like camera snaps, audio recording (just like whatsapp).
f) both for ios and android
Now the whole idea outlaid, after reading lots of articles, discussion and tutorials, I have some questions (I am a non-technical person btw):
1- I believe ejabberd is the best option as compared to tigase or prosody due to high scability. Is this ok to go with or should I look at other xmpp servers?
2- Currently, I am planning to launch this application within my city (rated as worldwide no.2 as per population stats of above 25m people), should I set-up a local server with high internet bandwith and a powerful machine or should I outsource it to some xmpp hosted server in the US (as their technological infrastructure has always provided quality service).
3- Should I be worried about the developer stealing the source code or is there any effective way to minimize this risk?
4- Any ideas what other things I am missing. This is dead serious for me and I am willing to do anything to get this project on the road.
(P.S.: The idea for this app is similar to the existing app called Lookup but I am planning to add some variations to it)
Thanks and sorry for being a bit lengthy ..
Regards,
Ahmed
ejabberd is indeed likely your best bet. However, be careful about the budget. To launch a quality service in an highly competitive area you have to have a significant budget, both development and marketing, if you expect your project to succeed.

SaaS-company structure

What is the most typical structure of business where you want to develop several web services? Should one establish a company for each of them or keep under one? I would like to hear your experiences maintaining such situation, keeping in mind the global focus.
By far the two most critical sets of issues determining the answer to this question are legal and financial (including, but not mainly, accounting). So it's hard to see how this question fits with the intent of this site.
It is advised to provide more background information on the topic. Business plans for SaaS companies can range from large cloud computing service vendors (with integrated solutions) and up to business analytics providers targeting specific market niche.
Business is a bit like programming: Keep It Simple (Stupid). Do not create multiple companies, unless there is a good reason to do it.
If You Planning to use python, you can use Django to build saas application,
this video Build SaaS application in Python django will explain about getting started with Sass.
Thanks

Cloud Computing need some regulations?

I was involved in couple of cloud computing platform recently.
First of all please note that I am not trying to criticize any platform.
Cloud computing is large area but to make my point simple and understandable. Let me come up with very simple scenario and that is data storage services hosted on the cloud.
If you take any storage service like Amazon EC2, SQL Data Service(SDS), Salesforce.com services.
If you want to consume any of such data storage service platform goal of all such service are same and that is to serve requested data on demand. Without warring about how it store and where it stored and who is maintaining it etc... (all cloud goodies)
Now my area of concern is the way ANSI-SQL regulated platform venders to make sure they follow similar language across all the product can’t they regulate similar concept across
service providers?
Why no such initiatives??
Any thoughts appreciated
It seems to me like you're worried about vendor lock-in with cloud computing. I may be naive but I would normally choose technologies and then go look for cloud vendors that'd be able to deliver these technologies. And if I was aiming for a "write once run anywhere approach" I'd have to select technology that'd make this as realistic as possible.
With the fairly rapid speed of development I really think standardization committees would struggle to keep up. ANSI-SQL has had 20 + years of history. It seems to me like you're requesting for standardization long before we even know what the cloud is up to....
I think that this emerging cloud computing initiative is just too young in order to have standards.
Service providers right now just worry about rushing into the market, rather than interoperability and standards.
Later on, when the situation is more established, some common guidelines may emerge. But there is still a long way to go.
You seem to be asking specifically about cloud storage services, rather than cloud computing in general. So your Amazon example would be S3, not EC2.
I think the field is a little young to be standardising on an API just yet. The services differentiate themselves in ways which rule this out. For example, S3 trades sophistication for scalability/reliability/performance: you can't do a complex SQL LIKE query. You can store and retrieve blobs of data based on a key, and that's about it.
I think as such services become more and more the mainstream way to do things, standards will emerge. Users will want the freedom to switch providers on a whim, move their data around, test against free local storage, etc.
The APIs used are all based on Web Standards already. Making an abstraction layer to make them look the same is fairly trivial.