How to expose a native dll on EC2 or Azure? - web-services

I have a native C++ dll doing some advanced calculations which should be kept secret. The dll has an interface, let's say:
int calculate(int* params, int params_length);
I want to expose this dll to web applications. So far I found that common solution is to build a web service around the dll (SOAP or REST).
What is the best way of solving this kind of a problem, what platform to use (EC2 or Azure) ? I would prefer to not use .NET solution.

Having a service around it will be best solution. REST service if preferable as performs better and we don't need to build SOAP wrapper anymore.
Also, if the web applications are written in .NET you can directly use C++ DLL, as explained here,
http://blogs.msdn.com/b/jonathanswift/archive/2006/10/02/780637.aspx
Regarding platform, there is no best platform as such and you can use any of the two. However, if you are building solutions in .NET and using Visual Studio then Azure will be preferred as there is built-in tooling in Visual Studio for Azure.

Related

How to best deploy SNMP in existing application?

I have an existing Windows desktop application written in C++ that needs to add support for SNMP so that a few pieces of status information are available on some SNMP OIDs. I found the net-snmp project and have been trying to understand how this can best fit into the existing program.
Questions:
Do I need to run snmpd, or can I just integrate the agent code into my application? I would prefer that starting my application does everything necessary rather than worry about deploying and running multiple processes, but the documentation doesn't speak much about doing this. The net-snmp agent daemon tutorial has an option for running the sample code as the full-agent rather than sub-agent, but I'm not sure about any limitations of doing this.
What would the PROs/CONs be for running a full agent in my application vs using snmpd and putting a subagent in my application? Is there a 3rd option I should also consider?
If I can integrate the full agent into the existing program, how do I pass it a configuration file via the API? Can I avoid the config file all together by passing these parameters in via function call instead?

getting database connectivity in c++

How can I create a database using SQL in c++?
I tried going according to the steps I found on a website(which required all this to be on codeblocks) by downloading the SQLAPI++ library for c++.
Next it instructed to download oracle c++ call interface, which I downloaded but didn't understand, how to integrate the library with my Codeblocks project.
If you know any other method it would be much appreciated.
In general:
Standard c++ doesn't support SQL database/server connections out of the box. You need to have a 3rd party product to achieve this.
Many SQL standard compliant DB systems support C or C++ APIs you can use for that.
To name a few:
SQLite
PostgreSQL
MariaDB
MySQL
... a by no means complete list ...
Another alternative is to use a generic ODBC interface implementation, which might also support specific database servers, and SQL standard versions.
In particular:
Codeblocks is ypur IDE, it manages projects and their dependencies on libraries.
You seem to have a solution at hand, which uses the sqlapi++ framework library
You need to integrate the underlying SQL server system in turn of configuring that above mentioned API
You may need to link the native support for that specific SQL API of the server system
To do these steps mentioned above you'll need to install (maybe development versions) of the above mentioned APIs, SDKs, ... (whatever they'll call it) and integrate those with your IDE project (related Q&A link regarding this).

ABBYY FlexiCapture web service in workflow

I need to implement a custom workflow for a batch type. Inside this workflow it is necessary to communicate with another system through a web service (REST).
Is there any predefined API for ABBYY I can use?
I only found solutions to call ABBYY through other systems, not calling other systems from ABBYY.
Thanks in advance.
I've tried to implement a solution inside Abbyy, but since I'm using FlexiCapture 11, only .Net Framework 3.5 is supported. Because I have to use objects which require .Net version 4.5 I've switched to the solution to call an external program from Abbyy which does all the web service implementation.

C++ in the cloud. Casablanca REST Service on Microsoft Azure

Hello fellow Azure users. I have created quite an extensive C++ REST service using the CasaBlanca REST SDK. When I began working on this project I as lead to believe that I could run it in the Cloud (Azure) . Please explain how best I can get this service to run on Microsoft Azure. I can't afford to re-program the entire project in another language like C# or Java. Thanks in advance!
If you're wondering why I believed CasaBlanca was meant for the Cloud:
http://channel9.msdn.com/Events/TechEd/Australia/2012/AZR331
-Seth
Looking at the TechEd video I can see that they are using the SpeechService demo which you can find the source of here: https://hg.codeplex.com/microsoftcasablanca so you can understand how they performed the deployment to Azure.
Looking at the code I can see the solution is designed to be deployed to a Cloud Service Worker Role and includes a "Cloud Service" project in the Visual Studio solution - this is the project type which gives the "Deploy To Cloud" option which you see in the video.
Given that the demo is from 2012 there will have been many Azure SDK releases since then so the demo code may require an update, but the deployment method from Visual Studio 2012 and 2013 remains essentially unchanged.
Regardless how you're using casablanca, c++ applications can be run on Virtual Machines, web/worker role (stateless) VMs in cloud services, probably websites... Choosing between these is a matter of opinion (or at least dependent on the app you're building), and there's no single right answer.

Simplest technology for distributing Web Services

Is there a way to meet the following criteria in distributing a Web Service to Windows machines?
1) Automatic installation and configuration of the Web Server.
2) No configuration (or even awareness) of a Web Server required by the customer.
3) No prompts to download and install Java or .NET - especially anything after .NET 2.0; those installs / restarts can take forever!
In short, is there a way to deliver a single install process that installs the Web Server along with a simple web app without requiring lengthy installations of pre-requisites? Something for even the most non-technical of users?
.NET's WCF almost meets the requirements but getting .NET updated up to 3.0 / 3.5 is a lengthy process and can be a turn-off for customers, even if the install holds their hand through the whole thing.
Rubyscript2exe was also very close, but it is extremely touchy and out-dated.
I am open to any technology / programming language - just looking for the slickest distribution process for my customers that meets the above three criteria.
I've been doing quite a bit of research on this as it is extremely important to me that my users have a simple installation experience. Here are a few things that I've found:
UltiDev Cassini: Cassini is that convenient mini-server that runs when you debug your web apps from Visual Studio or Visual Web Developer. UltiDev Cassini builds on that and looks pretty promising. It offers support for all non-beta flavors of .Net and integrates right into Visual Studio. Most interesting to me is the ability to include as part of your installer. The only down side is that pesky .Net pre-requisite. I can handle helping users get installed up to 2.0, but the install process to move to 3.0 and 3.5 is way too heavy for the typical user.
RubyScript2Exe: I like the premise of an executable Rails app. However, I attempted to use this on a Mac and it is simply too outdated and requires too many workarounds for my tastes. It's too bad, because I love Ruby on Rails development.
Server2Go: This is my favorite of the three options. It is easily distributable (just send off a zip file) and has a lot of nice options. For example, you can configure it to leave the included Apache server running even after the browser closes - that is PERFECT for a nicely packaged web service. It can also provide a customizable icon in the task bar for shutting down the service if necessary. I think this best meets my needs for the time being.
Please, if you know of any other options, let me know.
Also, you may be wondering, "Why not just write a desktop app?". The simple answer is that I don't need much of a GUI, if any. I need a simple to install web service that can be consumed by various other applications (web, mobile, and desktop included).