Database procedures and functions vs web services - database

In our development team we have:
4 developers
one application uses PHP and database Microsoft SQL Server 2008r2, except one using PowerBuilder instead of PHP and one using MySql instead of Microsoft SQL Server
All applications are database-centered, some of them are for general public, some are not.
Question is: for the procedures and functions shared by all applications, what does it make most sense to use, database procedures/functions or web services?
We could not find an agreement within the team.
Whatever you answer, please explain the reasons.

Webservices and Database Proc/Functions are two entirely different things.
Webservices are the services over the web, mainly used when a client and a server interact and client interacts with the server through web or HTTP or any other protocol.
Database proc/func - are created to interact with a login to a DB server.
In your case, if all the application are in the same domain... then you dont need to access through webservices and also it is a lot of overhead.
You can create a common DB server , where you can keep these proc/func and can be consumed by all.

Related

how can i choose the right database?

I am creating a website, using mostly html and some php pages, now I have to create a database and connect it with my website, for log in and requests, my question is what database should I go for, is Microsoft access good enough? or sql server or phpmyadmin? the website isn't large, it might get 6 requests per day, I am not a professional programmer but I know a few things about programming, please help
I am an developer in Access. Access technology is a Windows application, not intended for web applications. It is not a back end database which is what a web server needs behind it. The SQL Server - Express Edition (free) would be the product from the Microsoft family. Of course there are other suitable shareware products out there, probably the best known being MySQL.
When the requirement is for internal needs, not public facing, but the users are geographically separated; then Access (and other Windows Applications) are platformed on a Remote Desktop Server (aka Terminal Services).
The other alternative to building your own web application is using one of the database centric web services: Soho, QuickBase, Knack, etc.

Simple VB/SQL app and AZURE

I have a simple ms sql 2012 express database & a simple VB Express 2010 application as its front end.
Can I simply host my MS SQL database on Azure & update the application to interrogate the hosted database? This would mean, the application would still be local, but the DB would be hosted. My offices are distributed & if we could do this it would save quite a bit of hassle.
Do I need to use a virtual machine, cloud services or straight hosting? Its difficult for me to understand the subtleties each service.
I've had a look at the azure services information and the documentation is pitched a little high for me. I just wanted to know if this is relatively simple thing to do & if anyone has has any pointers to How To's or Noob guides to azure.
It's absolutely possible and in fact, super easy to set up.
Check out this simple step-by-step instruction on how to set up SQL Server DB on Windows Azure - https://www.windowsazure.com/en-us/develop/net/common-tasks/sql-azure-management/
You can even connect to it from your SQL Server Management Studio just like you would connect to a local database or a database on your network.
Ideally - yes, you can change the connection string used by the VB desktop app to reference the Windows Azure SQL Database instance instead of the local database. That said, SQL Database is not 100% compatible with SQL Server. Be sure to check out the differences at http://msdn.microsoft.com/en-us/library/windowsazure/ff394115.aspx
Can I simply host my MS SQL database on Azure & update the application
to interrogate the hosted database?
Yes, your SQL Azure database is accessible via a connection string, but you have to make sure that you create a firewall rule in SQL Azure to allow your locally hosted or remotely hosted applications to access the database. Everything is turned off by default.
Do I need to use a virtual machine, cloud services or straight
hosting?
I'm not exactly sure what you're asking here, but a VM may be overkill, as that gives you basically a place to host a VM in Azure. You control the O/S, patching, etc. A cloud service (a web or worker role) is a little less maintenance heavy as the O/S, patches, updates, etc. are maintained by Azure and you just worry about your application. Straight hosting - are you talking about hosting on 1&1 or GoDaddy or something? If so, that's really no different than your VB app running locally and accessing your Azure database. For this option, just make sure you have your firewall rules set properly, otherwise you won't be able to access the database.
Hopefully this helps. Good luck!
Azure has some specific requirements that need to be met (like every table has to have a Clustered Index), and it does not support some functionality that is available on "normal" SQL Server (like replication, FILESTREAM data, or data compression).
Other than that, as long as your app meets the requirements, there should not be a reason for it not to work on Azure. The majority of the functionality not supported by Azure is most likely out6 of the scope of what a "noob" would implement, so you probably are safe.
However, Azure might be overly expensive for your needs. It might be cheaper to go for hosting the database somewhere. This would mean you would only have to change the connection string of the application to point to the new database server (though there could be additional limitations imposed by your hosting provider).
Good luck with whichever option you end up taking!

Application Server and Web Server running on same hardware/physical server

I have a conceptual design question. I'm building an application/platform that will consist of a server, possibly running Apache Tomcat w/ a MySQL database, and several client applications (such as native iPhone apps, android apps, blackberry apps). Communication between the client applications and the server will be handled via SOAP, or XML-RPC (also trying to figure this out).
All of the above I'm reasonably comfortable with, but the last part of my plan is to create web/browser based client interface to the platform. And this is where I run into my question, should I install Apache Web Server on my same physical server and build a PHP application that invokes RPC's on the Application Server (Tomcat, running on same physical machine)? Does this type of design pattern make sense? Or should I stick with one type of server software for all possible client applications, including the web/browser based application? Thanks!
I think the web server and app server ought to be separate. I'd make the database separate from the app server too, if I could.
The reason I like the web server to be separate is that it's usually in between two firewalls. The app server lives inside the second firewall in the "safe" network.

Does a open source DB exist that exposes SQL DB as a web service?

Do any of the existing open source databases have the ability to expose a database as a web service on a server port? I'm looking for something like Microsoft SQL Servers ability to expose a wsdl web service URL .
If not, I guess i will use SQL Server Developer Edition...
CouchDb is built around HTTP, with all actions being http methods. This makes the database easy to access from a variety of platforms and languages.
However, you can create a web server for any databases, for the given app with varying degrees of flexibility.
You can do it with any database connected to a JBI like openEsb if you use a binding component like DatabaseBC
this is a good screencast on how generating a WSDL from an SQL file ... for more details you can look at this tutorial ...

Silverlight SQL 2005

I want to allow a user to provide their SQL login credentials, and display local SQL tables, stored procs, etc. in a listing. Is this possible? Note: I do not want to install some local, small SQL variant. I'm talking about the full version of SQL 2005+ that's already sitting on a developer's workstation.
Silverlight provides no mechanism for connecting to a SQL Database directly. You either need to provide a set of web services to interface with your data source or use ADO.NET Data services.
Connecting to a local SQL database using Silverlight alone isn't possible.
Something I almost missed is that you don't want to connect back to a database on the web server. You want information about a possible sql server instance on the user's (developer's) local machine. That isn't possible from within Silverlight alone.
I had thought you might be able to send the credentials on to the web server, have it dynamically generate a connection string, and then use the information_schema views to return lists of tables and views like any other data source. But that won't work.
However, in that scenario the web server is essentially acting as a proxy for your silverlight app. You might be able to build something else to act a proxy instead. Perhaps a small clickonce winforms app. That would install from a web page via hyperlink, so you could craft a link to install it on the page hosting your silverlight app.
With silverlight you cannot access the local machine/network resources. you will need to use wpf/xbap.

Resources