A public forum for discussing the design of software, from the user interface to the code architecture. Now closed.
I'm looking to implement a serverside component for web servers that will make a (eventually, several) fairly simple SOAP and/or REST webservice call, provide some failover to a second webservice URI, and provide logging/testing capabilities.
Is there any one "right" language to write this in these days? The target market is ecomm, it could be dedicated servers, it could be shared hosting, VPS, cloud.
I'm guessing C++/ISAPI with a SOAP and/or REST library is the way to go here, but it's been a while since I've looked into this kind of thing.
Thursday, October 09, 2008
Hmmm... the combination C++/ISAPI sounds very low level, with a significant risk of being stuck on Windows with the Microsoft C++ compiler and IIS.
I would suggest Java, because it is a pretty comfortable platform to use with respect to both REST and SOAP, with a ton of deployment options as well.
Tov Are Jacobsen
Saturday, October 11, 2008
OP, I agree that ISAPI is too low-level and not a good fit for your requirements. It's not cross-platform -- you're basically limiting yourself to IIS on Windows and Apache on Windows. Also, shared hosting providers generally don't allow ISAPI modules.
Beyond that, it's highly unusual to see web work done in C++ these days. It just doesn't give you anything that compensates for the increased development time and security risk.
If you need to be cross-platform, Java and PHP are the only reasonable choices. If you need to run on inexpensive shared hosting, PHP is the only reasonable choice.
Sunday, October 12, 2008
This component needs to be callable by .NET, by PHP, by Java, by Ruby, by whatever. This component calls out to my web services, and renders content on the client site.
I think in the end the only true answer is to write and maintain components in each of my target languages/frameworks. Maintainability is going to suck.
Monday, October 13, 2008
First off, the business answer is to either narrow your focus or take advantage of the fact that you're talking about several different markets with their own pricing policies.
The only way you're going to write code that's callable from all of those languages is to go with COM, and then only on Windows and only with some difficulty both on your part and on the part of your users. Wrapping a COM object well enough so that it feels native to callers and they don't get any whale guts on them when things go wrong is a challenge. More importantly, if you go with anything other than pure PHP then you give up the PHP shared hosting market.
Which language is used most by the market you're targeting?
Tuesday, October 14, 2008
Our language of choice is WSDL. We carefully designed and defined our functions and messages in WSDL then ran it through the wsdl2java tool in Apache Axis (they also have a C++ tool). It generated the client and server stubs.
The client stub is called from the web server, the server stub went to our application server where it calls our API objects. In our case the web server is using JSP, the backend is Tomcat and Java
There is a slight overhead on CPU for the extra message wrapping/unwrapping but you get great front end/back end independence (i.e. use Java at one end, C++ at the other)
Visual Studio has tools to generate stubs from WSDL. As an example we built a Visual Basic client that connects to our backend Tomcat server. Just specify the URL to the WSDL and it gives you a module with the methods.
Here's the problem: I'm dealing with partners who need essentially no barrier to installation and use. They might be small shops lacking expertise, or they might be top 50 retailers whose IT departments are recalcitrant to add another project to the queue, or any more maintenance obligations to their budgets.
I can't narrow my focus, I need to address the top 5-6-7 or so most commonly used languages or frameworks in ecomm, which means PHP, ASP.NET, RoR, Python+Django or Pylons, probably Perl ... and probably in that order of priority.
Wednesday, October 15, 2008
I tend to agree with you on the language choise. Have the core in C/C++, with all the functionality to the outside world in C exported functions. Then you can compile it for Linux, for Windows, for Mac, for mobile. And then write bindings for any of languages you plan to support. Want Java? I am sure Java can call C functions. PHP? C#?
Implementing the core again and again for each language is too much of a hassle.
Friday, October 17, 2008
The only thing it would be missing would be local logging to disk or etc.
Monday, October 20, 2008
Why not use a REST setup like yahoo maps or something? Just format a url with the arguments to the service, fire it off in an http connections, and retrieve the repsonse as xml? Most all languages have decent xml parsing capabilitie nowadays.
Saturday, October 25, 2008
Monday, October 27, 2008
This topic is archived. No further replies will be accepted.Other recent topics
Powered by FogBugz