Microsoft Rinses SOAP Out of SQL Server 2008
Julie188 writes "A Microsoft SQL Server 2005 fan toppled over in surprise when he got this error message from SQL Server 2008 (he was running the SQL Server 2008 Upgrade Advisor tool): 'In SQL Server 2008, SQL Server native SOAP has been deprecated and will be removed in a future SQL Server release ... Avoid use of SQL server native SOAP in new development work, and plan to modify applications that currently use it.' No more SOAP-based Web services for your SQL Server database? Native XML was only added in v.2005 and was much ballyhooed at that time."
Why exactly would you want a SOAP interface to SQL Server anyway? I mean, I wrote an XMLRPC interface for Visual FoxPro so that Unix machines could run SQL against it, but that was the only binding we had. It's not like there were other client libraries to pick from.
Dewey, what part of this looks like authorities should be involved?
Maybe because SOAP (Simple Object Access Protocol) has proven to be a dead-end, particularly for structured data storage, and especially in the pursuit of "cloud" services.
No one is turning back on XML or serialized application interfaces over HTTP. The storage interfaces will be accessible using some REST oriented API.
"Flyin' in just a sweet place,
Never been known to fail..."
as a developer on sql2005, i found very little use for it. the xml parsing and displaying functionality will remain in 2008, only the native xml webservices are being pulled. it made no sense anyway, it had nothing of the richness that asp.net web services offer and made most administrators nervous about its security (and rightly so!) why anyone in their right minds would have used it...i don't know!
--- blackironprison, where ignorance is bliss....
No more SOAP-based Web services for your SQL Server database?
Not exactly. It means no more SOAP-based Web services directly served from your SQL Server. Now you have to go back to using a web server application like god intended.
Developers: We can use your help.
Not unless they port SQL Server to Unix.
Proud Unix DB hippie, but the polo-wearing kind.
Dewey, what part of this looks like authorities should be involved?
SQL Server showering is just not necessary...
Who cares if SOAP is killed?
Who keeps the metric system down?
We do! We do!
No more SOAP-based Web services for your SQL Server database?
Of course you can have SOAP-based Web Services for your SQL Server Database. Make your application server handle them. Or your XML middleware if you use it. I don't know if SQL Server supports WDSL's, but if they do and your own SOAP interface is compatible, this ought not be terribly painful at all.
If one were to fall over, it ought to be because Microsoft is making their database a bit more secure by removing extraneous code that doesn't need to be there. That's surprising, but welcome.
I suppose it's one less shortcut for developers, but one ought to expect there'd be a SOAP interface generator tool for sale to replace it for those who don't wish to do any coding. And if it exists, somebody out there is exposing their database directly to the Internet to save some effort. They've probably forgotten about SQLSlammer.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Confucius say "Microsoft wrong again. Computer programmers need more soap, not less."
Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
Well yea, if you use SOAP in your hair it will get all nasty. SHAMPOO is better.
(Could stand for something like Shared Heuristic Access to Managed Protocols using Opensource Objects.)
Googled "Shared Heuristic Access to Managed Protocols using Opensource Objects"....just in case - there are a few pages that actually use every word...scary
Why can't all fpga/microcontroller manufacturers just release free optimizing compilers???
SOAP plays into the Embrace, Extend, Extinguish model very well. It's large and complex enough that one company (not naming any names) could make small changes that make their competitors incompatible.
Unfortunately, if nobody jumps on-board your broken wagon, there is nothing to embrace or extend. So the only thing left is to extinguish; SOAP itself, that is.
Think about it... what can you tweak about something simple like JSON or REST that would let you get a competitive (some would say monopolistic) advantage?
It may explain why some companies (not naming any names) may not have adopted it.
Now we'll just have to build an open source REST/SOAP bridge, if one doesn't already exist! ;)
The point-of-sale package we sell mandates SOAP installation before it'll work. I wonder how badly this will bork their development/upgrade cycles...
Don't tell me to get a life. I'm a gamer; I have LOTS of lives!
I think that poster's comment is a little misleading. From the article and linked materials it would appear that only integrated SOAP web services are deprecated, and not native XML as the poster implies.
Details of deprecated features here: http://technet.microsoft.com/en-us/library/ms143729.aspx
...because they dropped the soap. Now we know who the Goatse man was.
I don't get why Microsoft ever thought this was a good idea. Regardless of your opinion on SOAP (and I don't hate it nearly as much as some other folks here), having the SQL Server dishing it out directly was always kind of silly. Thats what a Web Server is for.
Removing silly code that just creates more places for security holes to hide is a good thing. Not doing it at all would have been better, but at least Microsoft is fixing that mistake now.
-- "So they told me that using the download page to download something was not something they anticipated." - Bill Gates
Last Post
I went to some MS conference years ago for a previous employer. The MS speaker who went over SOAP actually made it out to be a direct competitor to Java, which has never made any sense to me. But a lot of stuff from MS doesn't make a huge amount of sense to me.
"Luncheon meats make the sawdust in your stomach explode."
Why can't one of these new fanged RPC thingies HANDLE FUCKING AUTHENTICATION and AUTHORIZATION in a standard way? And if there *is* a standard way, I dont know about, WHY IS IT NOT OBVIOUS AND EASY!?
Why do I *have* to roll my own fucking way to hold a session using SOAP? Why couldn't they have some concept of a cookie or some easy way to maintain state that was buried deep within the protocol so it was transparent to me?
All these XML based RPC specs suck ass. Some architechure astronauts snorted a bunch of crack and decided to do crazy stuff like let you use SMTP for a transport. It would be much simpler to just pick a damn transport and stick with it so you can exploit the charctaristics of said transport (like cookies for HTTP or ??? for SMTP).
Unless you trust your IDE and dont need to get say, a C# client to talk to a mod_perl backend, you are in a world of hurt. For that matter, if you use any kind of dynamic language (PHP, Ruby, Perl), god help you with anything. You'll be writing a fuckton of XML that you'll have to keep in sync with your codebase. Forget any kind of automated tools.
In short, screw SOAP. Keep it fucking simple!!!
This is slashdot... you dont have a girlfriend.
Make SELinux enforcing again!
SOAP being an open and vendor-independent standard, this is a very predictable move by M$. I wonder, did M$ ever successfully implement support for an open standard?
The largest prime factor of my UID is 263267.
I spy with my little eye: an Oracle technician.
Dude, take it back. There are some things that just aren't said in polite society.
Dewey, what part of this looks like authorities should be involved?
*lol*
/Mike
-- "So, what's the deal with Auntie Gerschwitz et all?"
I write SOAP web services in C# for a living. Those services use SQL servers. But I would never want to combine the two. What the heck...? Was Microsoft trying to make SQL Server be this uber thing that did web services, parsed XML, and served data? What a horrible idea.
BillG/SteveB gotta keep up with Larry...
Dude, chill. It's not like he said dBase IV admin.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
This hurts, but I've gotta' say it.
While I generally agree with you, AKAImBatman, I think you've missed the mark on this one. The Serializable interface has been deprecated and will not be forward compatible. Unfortunately, this affects (effects? I always get them mixed up...) just about everything in the javax.swing package.
Granted, swing is somewhat ugly, single threaded (discounting worker threads - you still only have one dispatcher to do painting, anyways... although I want to choke everyone who tries to do everything on the dispatcher and wonders why nothing is responsive), and a generally over engineered toolkit; but it's also been around since like version 1.0 and is still effective for consistent cross platform GUIs. LookAndFeel aside, Solaris, Windows, Linux (X11R6 and R7) and, I would presume, Macs all render the same under Swing. As a bonus, about five lines of code will make a Swing app an applet in any browser with a java plugin, and it still renders exactly the same.
I have no idea why something so proven would be deprecated after all this time, considering how many legacy apps could break. Unless I'm not understanding the rational, which is more than likely considering I've never bothered to follow up on it after reading the deprecation notice in the JavaDocs. If so, feel free to flame me for being so loud about something I was too lazy to look up before opening my mouth.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
OK so they win this round in Bullshit Bingo.
I'm a consultant currently forced to work in SQL Server. If you had to replace SQL Server with the nearest open source functional equivalent in *NIX, what would it (or they) be? I'm talking the whole nut - interface and underlying DB. I've used MySQL before, but only at the CLI. Is there a gui frontend I can use to show 'this is just like MS product, but better.. and free (as in freedom)' ?
Does Oracle do this too?
connect to mysql through odbc using openoffice base, it will give you an interface you like, very handy for those who are used to access-like front-ends,
What in the world are you talking about? java.io.Serializable, right? I don't see anything in there that says "deprecated".
This would be especially weird because Serializable doesn't do anything. It's just a marker for a class to say "Yes, I am serializable!" Now you may be able to accomplish the same thing with the new attribute tags, but I see nothing that prevents you from using the Serializable interface.
I think you may be confusing Serializable with something else. :-)
In any case, deprecated features in Java usually don't go away. They simply are not recommended for use any longer.
Javascript + Nintendo DSi = DSiCade
First, MySQL is a toy. It's fundamentally braindamaged and you won't be happy migrating from SQL Server. Look at PostgreSQL which has much more functionality and is much faster in typical business settings. A lot of people like pgAdmin III for routine admin work; not having run an SQL Server before, I don't know how that compares to what you already know.
Dewey, what part of this looks like authorities should be involved?
There is a Windows GUI for MySql, there might be one for Unix, but I've never seen it, mostly I like to use phpMyAdmin for remote administration.
Fanatically anti-fanatical
Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder.
I've seen this warning on a few Swing classes. After re-re-reading it, I have no idea what they're trying to say, but I'm assuming its EE related (although in the SE Javadocs?). IIRC, RMI is Remote Method Invocation or something to the effect (affect? Arg!) of RPC... I haven't the foggiest what that has to do with short term storage.
At any rate, I stand corrected. Sorry for that rant. Given the chance, I'd do it again, but talk about the Thread class! =)
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
The pgAdmin 3 tool for PostgreSQL is a pretty nice graphical tool.
I don't know that it's as nice as the GUI tools for SQL Server or Oracle, but we've had no problems with it. You can graphically add and remove databases, tables, columns, foreign keys, and constraints. You can view the SQL used to create any table, sequence, view, or whatever. You can also view the database data in a graphical mode, and for any table with a primary key (which of course should be all of them) click into a column, change the value, and click save and the database automatically runs the corresponding update (using a primary key for the 'where').
And of course, you can run your SQL queries and copy and paste from the results or pipe them to a text or CSV file.
There's no convenient graphical tool for click-and-drag graphical generation of SQL queries, though. An experienced DBA doesn't need it, but newbies often get some benefit from tools like that.
I've heard that phpMyAdmin, a web-front end tool for administering MySQL, is at least as feature-full as pgAdmin3. But I've never used it.
If you've been doing work in a real database like SQL server, you'll be much happier if you select another real database like PostgreSQL. MySQL is about the same as Access in terms of functionality, but with less reliability and interoperability. Sure MySQL claims to have stored procedures, views, triggers, foreign keys and other "enterprise database features that you dont really need", but every one of those "enterprise class features" has a set of disclaimers that would make Publishers Clearing House blush.
PgAdminIII is an excellent GUI that isn't as meaty as SQL Server Management Studio, but it gets most of your job done. It is still a bit more "gotta know SQL" centric though...
The big problem with PostgreSQL is that it isn't as well integrated into the .NET stuff as SQL Server (or Oracle). For example, if you like LINQ (and I like LINQ), there isn't much support for PostgreSQL. Lord knows about the ADO.NET entity framework. This is the most promising .NET stuff for now.
MySQL, as much as I hate it, has a bit better .NET integration. That is about the only thing it has going for it though... unless you consider pain and misery a feature.
The Serializable interface has been deprecated and will not be forward compatible.
I just checked the latest javadoc for Serializable, and it's not marked as deprecated. Where do you get your info?
The push is to wrap them in WCF service contracts, oldschool web references are buried deep in the "add service reference" dialogs.
Get with the f*cking times. This is no cause for nerd rage.
This was "news" a year ago, btw. I'm shocked it took this
Your original 'affects' was correct. Affect is a verb, effect is a noun. But they're both said the same you can always get the right meaning from context, and sooner or later they'll probably be interchangeable anyway. Anyway who cares.
I am not entirely sure what notice you may be referring to. I have never heard of any reference Serializable being deprecated. I highly doubt that this was the intent of what you read. To remove Serializable, at least four of the core API's would have to be completely re-written.
Just look at Collections and you'll quickly understand that to remove Serializable you would have to basically re-write Java.
I am guessing that you read one of the notes that are on many of Swings JavaDoc pages. They all basically say this:
"Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeansTM has been added to the java.beans package. Please see XMLEncoder."
(This was taken from the Java SE 6 JFrame page):
http://java.sun.com/javase/6/docs/api/javax/swing/JFrame.html
All this notice is talking about is that you should not save a Swing objects using Serializable methods then load that class after you have changed versions of the JVM I think this is pretty much a no brainier as far as any class goes. This is because there is no guarantee that the classes private variables have not changed between implementations.
If you it wasn't this kind of note, I would love to find out where you read it.
"...Was Microsoft trying to make SQL Server be this uber thing that did web services, parsed XML, and served data..."
Answer: Yes.
In SQL2005, M$ allowed DBAs to create HTTP endpoints for URLs that exposes stored procedures over the web. You have to configure your web server to let it know that SQL2005 is the handler for that URL. Also in SQL2005 are native XML datatypes and XML columns (which have to be well-formed - you cannot store XML data in a SQL2005 XML column if an end tag is missing or the case does not match). Within SQL2005, if you're querying an XML column you have to use XQuery. And yes, select statements can return results formatted in XML.
See my reply to AKAImBatman (this thread); I misunderstood a warning note in the Javadocs.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
Yeah, that's exactly the one. I don't think that they worded as they wanted to, or I just changed the meaning around in my (admittedly poor) short term memory. Sorry about all the fuss, this was a case of me being a little too caffeinated and trigger happy with the 'reply' button =). Note to self: Order of operations; think... then post. Or, double check the facts before posting.
If I mod you up, it doesn't necessarily mean I agree with what you've said, sorry.
What?
MS Dropped the soap?
Having SQL Server easily accessible by any front-end application would have meant that ASP.NET wouldn't have been a shoe-in for the front-end app. You could just have easily used PHP, Ruby, Python, Java, etc.
Just a hunch.
creation science book
...SQL Server native SOAPs YOU!"
In times of universal deceit, telling the truth gets you modded -1 Troll
The only half-competent GUI I know of for MySQL is phpMyAdmin, but on the positive side, if you're trying to convince someone it's like using Microsoft that might be just what you need...
As in: "Person X effected this change in policy.". The meaning is basically "make happen" or more literally "cause to happen".
HAND.
SOAP is for people who eschew SHAMPOO in favor of REAL POO.
Thanks for the insightful reply - yours was the most useful. I appreciate you taking the time to think and respond. I am downloading Postgresql and PGAdmin3 now to try out.
Much respect to you.
Many thanks - I appreciate the insight, esp. regarding .NET. I am not terribly concerned with .NET though, as I will be using this for a personal project where I have the luxury of not having a bunch of .NET dependencies to worry about.
Which leads to another question - .NET is simply a MS framework, yet it gets a ton of play in discussion groups, etc. I'm relatively new to web dev work, so maybe I'm just ignorant, but why should I care about .NET integration, unless I have to do dev. work in someone else's code that uses it?