0

I have an "AutoComplete" server written in java. Its a http(s) server which accepts protobuf . Currently I have a written a thick desktop client which uses this service to populate its textbox with autosuggestions. I intend to make this service generic, so that it can be used by other platforms. How do i go about it ? If i release proto definitions it will probably tie it up to 3-4 languages only. If I release a client jar , it will restrict it to Java. Any suggestion from API/system designers is much appreciated.

TruckDriver
  • 1,383
  • 13
  • 28
  • 3
    Have you considerd exposing it as a Webservice? – Zaid Malhis Aug 03 '15 at 07:11
  • Shall i redesign the whole thing a ReST server? Can you please elaborate, any hints would be useful . – TruckDriver Aug 03 '15 at 07:16
  • What's to prevent you from providing all options? If the system works, all you need to do is provide the documentation(s) and optionally any existing libraries you may have. – Kayaman Aug 03 '15 at 07:16
  • @Kayaman I thought that it might restrict the target audience to a certain limit . But i will do that too, will release it with proper documentations and libraries. – TruckDriver Aug 03 '15 at 08:36

2 Answers2

2

You can expose it as a Webservice.

From the Wikipedia page:

A Web service is a method of communication between two electronic devices over a network. It is a software function provided at a network address over the Web with the service always on as in the concept of utility computing. The W3C defines a Web service generally as a software system designed to support interoperable machine-to-machine interaction over a network.

There are two types of Webservices:

1- SOAP Webservices.

2- REST Webservices.

All programming languages provide methods for Creating and Consuming Websevices.

This Stackoverflow thread provides good explanation of Webservices.

Community
  • 1
  • 1
Zaid Malhis
  • 588
  • 4
  • 18
1

A web service is a collection of open protocols and standards used for exchanging data between applications or systems. Software applications written in various programming languages and running on various platforms can use web services to exchange data over computer networks like the Internet in a manner similar to inter-process communication on a single computer. This interoperability (e.g., between Java and Python, or Windows and Linux applications) is due to the use of open standards.(Reference)

REST stands for Representational State Transfer, which is an architectural style for networked hypermedia applications, it is primarily used to build Web services that are lightweight, maintainable, and scalable. A service based on REST is called a RESTful service. REST is not dependent on any protocol, but almost every RESTful service uses HTTP as its underlying protocol.

For complete tutorial have a look at RESTful Web Services

For SOAP based services have a look at SOAP webservice

SSH
  • 1,609
  • 2
  • 22
  • 42