Designing RESTful web services with XMPP servers - web-services

We have a website which uses HTML, angular in the front end and java in the back-end. We use RESTful webservices to perform read and write operations to the back-end, as we have IOS and Android apps too. We have messaging service in our website and apps, I am trying to make it as fast as possible. I am doing some research and came along XMPP servers for faster messaging. Can I develop RESTful web services for XMPP servers? and which language and environment is best to do it?.
Thanks,
Mani

I believe XMPP-FTW is the thing you are looking for.
This module takes away all of the XML and works by hooking to events which are passed between client and server using a transport in JSON.

Related

what is RESTful api and difference between it and web service?

can someone help me telling what is RESTful and difference with `web Service'?
i tried to search but i get confused between it and web service can anyone help ?
It's name clearly state its meaning that services provided on the web are called a web service
web service has two type REST API and SOAP API
RESTful Web Services are basically REST Architecture based Web Services. In REST Architecture everything is a resource. RESTful web services are light weight, highly scalable and maintainable and are very commonly used to create APIs for web-based applications.
SOAP (Simple Object Access Protocol) is a messaging protocol that allows programs that run on disparate operating systems (such as Windows and Linux) to communicate using Hypertext Transfer Protocol (HTTP) and its Extensible Markup Language (XML).
RESTful is one kind of web service. Another kind is SOAP. I think comment in this link will help you
https://stackoverflow.com/a/2285743/4874281

Web application as a client for web service

I am new to Web development. And hence, if the question is dumb, please be polite. For creating my application, I had to take a decision of whether writing a web service or a web application. After searching a few questions in stackoverflow, I came to know that, web service is something which doesn't involve human interaction. And web application is what human uses ( the UI/web page kind of stuffs ).
But lately, I saw gmail is a web service ( email service ). But I was confused from here on, because, gmail provides a UI, and human interactions do occur. And from there on, I got confused again.
So what I figured out from this is, gmail website is like a web application for users to use directly. The web application in turn uses the web service provided by Google for email. Is my understanding right? So can a web application be a client for web service?
If I am wrong somewhere, please do correct me. I hope to be clear after someone throws light on this with some good example. Thanks in advance.
You are quite right. Basically a Web Service has several endpoints over HTTP (normally) that provides data (generally in JSON or XML) and are meant to be consumed by Web Clients. Sometimes the are also called Web API's (Application Program Interface).
A Web Application is quite similar to a Web Service but it provides an interface where the user can interact with. Usually Web Applications are consumers of Web Services or Web APIs.
Following your example, Google email is could be considered as both, a Web Service and a Web Application. It is a Web Service because it provides a set of HTTP endpoints that works independently of its Web UI Application (GMail). In fact, you can find third party Web Apps that interact with the Google email Web API.
This concept is very important when designing Web Solutions. Ideally you want to design and implement a good Web API, usually a RESTful Service (in JSON/XML). Then you or others will be able to implement different types of applications (Web, Mobile, etc.) because of this API.

When to use standalone web service approach

I just started learning web services. In bottom up approach, I have found some examples without being deployed in any application server. I mean a standalone web service application.
Here is an example of such type.
I have also given a try and done a walk-through of deployable simple web service examples.
So far to my learning of web services, I got to know that firstly, bottom-up- approach is not recommended. Now, in bottom-up approach, this standalone web service. When is it applicable to follow standalone web service procedure?
Endpoint.publish();
I guess, this approach is provided just for beginners and not to follow as a real-time practice. Is my interpretation correct?
I would make my application as a standalone web service if it will have multiple clients like:
Web Client via a web browser
Mobile App Client
Desktop Client
Then I could build every one of them alone using whatever the technology I prefer, and make it consumes my standalone web service.
For example, You could imagine the guys behind Twitter started developing it by building their core system as web service, then they build an independent web interface application for it, then they built the Twitter Android and iPhone APP, and another one came and introduced a Twitter Desktop client like Tweetbot and TweetDeck ... etc

Could Web server and Application server be developed separately?

My friend has developed a recommend system in C++, now we want to make a web information system based on his work. As we both do not have no Web technology knowledge, I have some questions:
If we want to develop a web site which based on this recommend system, we should implement the recommend system in the application server and make a web server that could return the pages, right?
Then what web server we should use or use what technique to develop a web server to call the function in the recommend system? How the web server communicates with the application server?
Some web frameworks, such as Django, does it act as web server or application server or it is both?
As we have so much basic questions, do you have some books or website to recommend?
You can think of your C++ app as a service that your Django app can execute to return values to your users. You could easily execute any application on the same server as Django and capture the response or you could create a thin HTTP API and put your C++ app on its own server and call it by HTTP from your Django app to make requests for your users.
https://www.djangoproject.com/ is a great place to start.

Convert custom API to Ruby on Rails ActiveResource

I have a set of embedded devices that run software written in c++. The API to communicate the devices is simple: get/set/acquire parameters and signals.
I'd like to implement common web application to access all of the devices from a single point.
My idea was to add XML RPC interface to devices and then use ActiveResource to access devices from the web server. This combination doesn't seem to be used at all in practice.
I'm free to choose any protocol inside the devices. What are your recommendations?
If you're already considering XML RPC I'm assuming you have some sort of web server running on the device. I would probably choose a RESTful web service over XML RPC. If designed carefully you could have corresponding services on your Rails app.
For example:
http://somedevice/signals.json - gets all signals
http://yourrailsapp/somedevice/signals.json - gets somedevice's signals; you could use an id instead here if that makes more sense (http://yourrailsapp/devices/1/signals.json).
You probably won't find much XML RPC stuff in the Rails community. Rails itself really pushes you towards RESTful web services. Specifically a resource-oriented RESTful architecture. There are great books out there about it but it comes down to using http methods (get, put, post, delete) instead of passing parameters and then some intelligent URLS.