We help IT Professionals succeed at work.

Check out our new AWS podcast with Certified Expert, Phil Phillips! Listen to "How to Execute a Seamless AWS Migration" on EE or on your favorite podcast platform. Listen Now

x

Recommendations for a language for retrieving information from different datasources (Web based)

jasef
jasef asked
on
Medium Priority
368 Views
Last Modified: 2010-04-17
Hi Experts,
My background is primarily networking so please keep it simple and broad for now :) I am needing some steering as to the best language(s) and methodologies to utilise for the following scenario (I will most likely oversee development of the project, but could possibly be landed with the programming job too):

We have an inhouse SQL Server database that records our clients and their purchases.  Much of it is tailored to property details (our main investment 'product' ATM), but this will be expanding to possibly include shares and superannuation.
This info needs to be made available to clients online (securely of course, so will need to manage logons) AND also provide a facility to report on the current value of their investment by interrogating other websites or sources (some may be SQL, others might be using a querying tool provided by the website itself, obviously all these sources are subject to change, so adaptation or at least easy modification of data source(s) and interrogation will need to be a core component).

I suspect this is best done as a two stage process, firstly developing an application to handle the interrogation and reporting of the different datasources, and secondly (more web based) the customer portal and security etc. but have never attempted this kind of project before.

I have also posted this q to web development, but thought the information retrieval app would perhaps be better answered here.  I'm really groping in the dark (but not as much fun as usual) so any candle is appreciated.

Thanks for reading!
Comment
Watch Question

CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Mayank SPrincipal Technologist
CERTIFIED EXPERT

Commented:
.NET seems to be a good option if you're on SQL Server.
Melih SARICAMelih SARICA
CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION

Commented:
depends alot here jasef

is your environment primarily windows machines, or do you have linux/bsd/unix machines?

what os is the sql server on?

what os are your web servers?

are you familiar with any languages?

.net is very robust, but i try and steer clear because then your locked into windows...

PHP is also a veyr robust and strong language, and i reccommend it if you dont know anything thus far...reasoning:

PHP runs on windows, bsd, linux, unix, mac, etc....it's not as closed as something .net
It also has sql connections (to MySQL) built in.

If your starting from scratch heres my reccommendation:

Setup a secure enviroment for your webserver (seperate from existing network using router and possibly ipsec)
Host MySQL and apache w/ php on a non windows OS (FreeBSD is my server os of choice, linux or any other BSD/UNIX variant is also acceptable...i don't care what ANYONE tells me windows IIS is NOT AS SECURE OR RELIABLE AS APACHE. PERIOD. i'm not going to get into a flame war over it, but look at the track records...they speak for themselves)
With no experience on FreeBSD, i had it setup, apache, mysql, php, and a firewall setup on a machine in a couple hours...it's very easy
If your currently using MS Sql Server, setup a "View" of all the data your going to need replicated and set it nightly or hourly...depending on how often you need it updated. Better yet, you should have the internet accessable SQL db on a seperate machine....

I suggest you do NOT have your production DB EVER, under ANY case accessable via the internet....reasoning being that if someone does hack the site and corrupt your db, it's nothing to just push the production data right back into the internet DB. Simple as that. We currently have several oracle DB's internal and several completely seperate oracle DB's, containing much of the same into, for the web servers.

You had said you were mainly networking orientated? Look up a reg/orange/green network enviroment (it's called several other things..) i will give a quick rundown (forgive me if you know this)
red - internet. untrusted. Firewalled to other zones. No explicit access to orange/green.
orange - INTERNET server zone. Ability to reach red and internet, and may need access from red > orange. No access to green. Green MAY have access to orange.
Green - Further firewalled from orange and red. access to internet (red) through strict security standards. Some clients may have access to orange (i prefer using ipsec for those needing).

If i mixed anything there up or left things out i am sure someone will fill me in on it.
I know i sound very anti MS products in this post, but my feeling is that if its going to be on the internet it shouldent be run on a windows OS.


Bottom line:
Keep production and internet DB seperate
Keep internet server OFF of your LAN (do not keep it on seperate ip range)
Try not to lock yourself into one OS or vender. MS has a habbit of trying to keep you locked into their products.
Look around. If someone is acomplishing something similar, see how they did it.

If i missed anything or you have anymore questions ask away.

Author

Commented:
Thanks for your responses everyone.
.NET seems to be the most common answer here (and the only one on the web dev post), however for the areas I know, fcislers' advice mirrors my own thoughts (hosting the server seperately, using an IPSEC etc), so I'm leaning that way;
We will most likely have the database (at least a copy of it) hosted by an ISP, so the MS security aspect isn't EXTREMELY important - it's their problem (I wouldn't use it as a preferred practice, but I'm not going to get blasted for recommending it if that turns out best).  Being locked into MS products is also not an extreme issue (unless it won't work with linux browsers etc. etc. which I hope won't be a problem)...  So fcisler, with these things in mind, which

Our environment is windows, but that is irrelevant, the clients will be using god knows what, and I can upload from our Win2K Server MS SQLServer database to mySQL or Postgre if that is a superior solution.

I'm familiar a little with SQL, VB, html & javascript, but not enough to count; So I don't mind picking up a new language from scratch as long as I know it's the best choice.
 
Mayank SPrincipal Technologist
CERTIFIED EXPERT

Commented:
>> the clients will be using god knows what

Then I would recommend Java :-)

But I don't know of any Java drivers for SQL Server.

Commented:
nooo mayankeagle

java, in theory, is a very good idea


in implementation, it just plain out sucks
soooo slow on windows machines

jasef, if your gonna go .net do it! being locked into a technology refered to your server environment, not clients...provided you don't use anything ie only/ns only then your fine.....net is all (mostly) implemented server side

Look up MySQL....it's advantages are mainly for web based development (quick selects, sorts...slow updates...etc) i may be wrong on this, but read up...

good luck
Mayank SPrincipal Technologist
CERTIFIED EXPERT
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Commented:
Unlock this solution and get a sample of our free trial.
(No credit card required)
UNLOCK SOLUTION
Mayank SPrincipal Technologist
CERTIFIED EXPERT

Commented:
>> all i stated was that speed on it SUCKS...it's just plain slow

Maybe you should try working with Eclipse.

>>  but not on windows (majority of most workstations)

I have been developing Java applications since years using WSAD and Windows - never faced a problem with that. After development, we usually deploy the application to a Solaris or UNIX server because its more secure than Windoce. Hardly takes a few seconds.

>> So with that, there goes your security

I was not talking about de-compilation. I meant that a Java program runs within an instance of the JVM, and the JVM sees to it that it should not interfere with other processes. Neither do malicious processes affect it. Nor does it affect any outside processes.

>> more robust...than anything else

Because it is architecture-neutral. You change your processor, have upgrades on your system, etc - your C/ C++/ C# programs might stop running - but your Java programs will still run as good as ever.

>> after stating there are no drivers for SQL Server

I am not sure if there are or not. But its not the job of Java to provide drivers for all databases. I don't know whether the JdbcOdbcDriver it provides works for SQL Server or not (it works for Oracle and Access, at least). But generally, third parties provide drivers for their databases in the form of JAR files.

>> but i still think it's seriously lacking.

I don't think it lacks anything. It is portable to any platform -> that way I might say that M$ products are lacking much more than it is (if it is lacking anything).

Just wanted to tell you a litte more about Java, nothing else. Since in this case, it is SQL Server, I have already recommended the use of .NET. But just a moment - *if* the client is on Linux or anything other than Windows, you don't have another option but Java.

Author

Commented:
Hi everyone, thanks for your responses.  I am currently having a good look at PHP, might try .NET if having too much trouble on PHP.  Would try Java, but seeing as you guru's aren't too sure about SQL Server integration even though likely (no offence to mayankeagle) I'll give it a miss at this stage.
Intendting to awarding points to fcisler.  Any objections?
CERTIFIED EXPERT

Commented:
jasef,
I suggested .NET ages ago.....

Dabas
Mayank SPrincipal Technologist
CERTIFIED EXPERT

Commented:
I found out that there is a Microsoft SQL Server driver (and even if it was not there, it was not Sun's fault ;-) )

BTW, I'm ok with whoever gets the points - whether there's a split or a single accept.
Unlock the solution to this question.
Thanks for using Experts Exchange.

Please provide your email to receive a sample view!

*This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

OR

Please enter a first name

Please enter a last name

8+ characters (letters, numbers, and a symbol)

By clicking, you agree to the Terms of Use and Privacy Policy.