can we use SOAP on intranet? - web-services

I am new to services. I am sorry for my question being a little theoretical. On a site I was reading about SOAP, they said it works over internet.
Can we use SOAP based services in intranet environment ?
Can we use HTTP over intranet or it is just a internet protocol ?
Please guide.

You can use SOAP over any TCP network. This could be internet or intranet. SOAP is an interoperable protocol over HTTP. And HTTP works over TCP. So everywhere you have HTTP you can have SOAP. Basically SOAP is a protocol which allows for heterogeneous systems to communicate using an industry defined standards.
And note that SOAP is getting less attention lately compared to REST which is starting to gain lots of momentum.

SOAP is a service supported by a server/web service. You can even use SOAP to translate data between two services on the same server box that have no other form of API.

Related

Web Service , Web API , API What are All These?

I found So many Answers but haven't got one suits my (Basic) "Knowledge"
These are Troubling For me , kindly Guide me
I know what API is (from the local concept like GetCursorPos() winApi of user32.dll)
Q: what is WebApi ?
Ans : web API is a API which is exposed via the web
Q:what is WebService ?
Ans : is a software function provided at a network address over the web
My Doubts:
is a WebApi used to Achieve a Service through web ? Acess a WebService ?
What Differs WebService and Web API ?
The Following Makes me again Weird :
A Web services describes a standardized way of integrating Web-based applications using the XML, SOAP, WSDL and UDDI open standards over an Internet protocol backbone.
A web API is a development in web services where emphasis has been moving to simpler representational state transfer (REST) based communications
Then What is this Web API For ?
Also Seen that WebServices = API + Http ( Api refers to Web Api? )
What are Web Service API ?
Web Services:
To achieve the platform interoperability Web Services are being used, and it is a SOA based. It follows standards like WSDL,SOAP, UDDI and so on. WSDL passed through SOAP protocol and will be accessed by clients, by having stubs generated out of WSDL.
Web API:
Now a days a new paradigm of achieve the platform independent services are done by RESTful web services or Web API's. It rely on HTTP protocol, and these services will be accessed by HTTP clients like browser or a HTTP client code. WebAPI is an another name to describe these both client and server API's.
Hope it makes clear

regarding webservices

I've started learning about webservices recently. Have few question about that:
For webservice, is it always necessary that source should provide wsdl or any other way possible to consume it without needing wsdl?
Till a while ago, I was doing server side XMLhttp post in classic ASP to do modifications in external application & to push data in my application from external application. I'm confused - is that very different from webservice or can be called a sort of webservice(ofcourse without based on SOAP). Any major difference or it is just protocol difference bw webservice and server side XMLhttp post?
Web services can be made asynchronous?(Something like AJAX call through javascript)
Are there any different types of webservices ? (for e.g is there difference bw, webservice providing stock quotes and webservice provided by google)
1.For webservice, is it always necessary that source should provide wsdl or any other way possible to consume it without needing wsdl?
WSDL is a document that publishes an interface. As long as a client complies to the inteface, it is guaranteed to be able to "talk" to the web service. Having said that WSDL is a formal way for a specification when there are many stakeholders. You can proceed without one, as long as you somehow know what the web service expects. Just wrap the application data in a SOAP envelope and send it to the web service. As long as you send what the web service expects (in the SOAP envelope or the application data) and in the way they are expected e.g. transport HTTP etc. it does not matter for the WS if you have used a WSDL or not.
2.Till a while ago, I was doing server side XMLhttp post in classic ASP to do modifications in external application & to push data in my
application from external application. I'm confused - is that very
different from webservice or can be called a sort of
webservice(ofcourse without based on SOAP). Any major difference or it
is just protocol difference bw webservice and server side XMLhttp
post?
In very simple terms web service is XML over some application protocol (usually HTTP). Could be SOAP based or REST. To understand more on this you should read about Service Oriented Applications
3.Web services can be made asynchronous?(Something like AJAX call through javascript)
They could but it is more complicated than that.
4.Are there any different types of webservices ? (for e.g is there difference bw, webservice providing stock quotes and webservice
provided by google)
Not sure what you ask here. Each web service offers something.
I will try to be very simple here:
The W3C defines a "Web service" as "a software system designed to
support interoperable machine-to-machine interaction over a network".
That means first requisite for any software to be web-service is that it should not depend upon platform or software i.e a web service made on java stack can be consumed by client in .net stack on windows or java stack on android.
If your server side implementation XMLhttp post suffice this ,its a
web service.
Types of Web services
Actually, there is no overall and clear categorization on types of web services. But two most popular are :
SOAP based web services. :It use XML messages that follow the Simple Object Access Protocol (SOAP) standard, an XML language defining a message architecture and message formats(WSDL).
REST based web services. With evolution of WEb 2.0 emphasis has been moving away from SOAP based services towards representational state transfer (REST) based communications.[3] REST services do not require XML, SOAP, or WSDL service-API definitions.Read here to get a easy explanation of REST
Need of WSDL to consume SOAP web services?
To consume a SOAP service we only require SOAP endpoint and XML message format. WSDL is a pre-requisite for automatic client side code generation through Java and .NET SOAP frameworks.
Asynchronous web services
Making web services asynchronous is possible.But complexity depends upon frameworks used, for example AXIS2 in JAVA has easy implementation of this.

Secure data transfer over http with custom server

I am pretty new to security aspect of application. I have a C++ window service (server) that listens to a particular port for http requests. The http requests can be made via ajax or C# client. Due to some scope change now we have to secure this communication between the clients and custom server written in C++.
Therefore i am looking for options to secure this communication. Can someone help me out with the possible approaches i can take to achieve this.
Thanks
Dpak
Given that you have an existing HTTP server (non-IIS) and you want to implement HTTPS (which is easy to screw up and hard to get right), you have a couple of options:
Rewrite your server as a COM object, and then put together an IIS webservice that calls your COM object to implement the webservice. With this done, you can then configure IIS to provide your webservice via HTTP and HTTPS.
Install a proxy server (Internet Security and Acceleration Server or Apache with mod_proxy) on the same host as your existing server and setup the proxy server to listen via HTTPS and then reverse proxy the requests to your service.
The second option requires little to no changes to your application; the first option is the better long-term architectural move.
Use HTTPS.
A good toolkit for securing your communication channel is OpenSSL.
That said, even with a toolkit, there are plenty of ways to make mistakes when implementing your security layer that can leave your data open to attack. You should consider using an existing https server and having it forward the requests to your server on the loopback channel.
It's reasonably easy to do this using either OpenSSL or Microsoft's SChannel SSPI interface.
How complex it is for you depends on how you've structured your server. If it's a traditional style BSD sockets 'select' type server then it should be fairly straight forward to take the examples from either OpenSSL or SChannel and get something working pretty quickly.
If you're using a more complex server design (async sockets, IOCP, etc) then it's a bit more work as the examples don't tend to show these things. I wrote an article for Windows Developer Magazine back in 2002 which is available here which shows how to use OpenSSL with async sockets and this code can be used to work with overlapped I/O and IOCP based servers if you need to.

SOAP versus HTTP [duplicate]

This question already has answers here:
Difference between SOAP and HTTP protocol?
(3 answers)
Closed 4 years ago.
I have read that web services are transmitted through SOAP over HTTP. Then what is the difference between SOAP and HTTP, if they are both communication protocols?
Is there any difference or is HTTP simply a binding used by SOAP?
There are two main protocols related to web services.
1st, transport protocols - e.g.
HTTP(commonly used), TCP, UDP
2nd, messaging protocols - e.g. SOAP,
XML, JSON or binary encoded messages
Generally speaking,
Messaging protocols are responsible for exchanging the messages in a commonly agreed format.
Transport protocols are responsible for delivering the messages and how
it should communicate.
A real world example:
HTTP is like telephone communication, SOAP is like English.
You call the web service over HTTP in SOAP messages such as you call your friend by mobile phone and talking in English.
It's not web services are transmitted. Rather, messages are transmitted in SOAP format.
SOAP being a protocol specification for exchanging structured information can use pretty much any transport protocol (HTTP being the most widely used, RPC and SMTP can be used as well).
Long story short, you cannot compare HTTP and SOAP since these are two orthogonal things. See Wikipedia for introduction.
Web services do not need to be implemented using SOAP, and SOAP does not actually need to be transmitted over HTTP (although this is pretty rare). HTTP is the underlying protocol of the web, while SOAP is one way of using XML as an envelope for RPC calls.
Http or Https is the protocol over witch SOAP runs.
SOAP (Simple Object Access Protocol) is meant for data exchange between servers.
client systems of soap are just other servers that connect to get data from the master server.
the oter option of soap is RPC (remote procedure call)
http://en.wikipedia.org/wiki/SOAP

Developing a secure WS client for consuming a Axis2 Web Service with Rampart WS Security module?

I have a Axis2 web service secured using Rampart. I do want to develop secure clients for it, preferably JAX-WS based. I tried a lot of tutorials but they are so closed tied with each other, like including Axis2 libraries in the client side. The client should be fairly independent of the WS service framework, as the service can be consumed by .NET based clients or even PHP based clients.
Thanks in advance...
As I understand it, you would want to be able to feed the policy defined for your Rampart secured web service into your JAX-WS client.
That ought to be doable. As you say-- the idea is to be able to execute different client and server technologies, standardized around WSDLs...
We're only just getting into this - so I don't have any hands on knowledge for you.
But I would think you should be able to copy the policy info for your rampart on the server in the services.xml file and put it in your client.
This seemed pretty helpful:
https://metro.dev.java.net/guide/
Sections 12 and 18 in particular.