Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
Discussion Groups
DB Engine
SQL ServerMSDESQL Server CE
Services
Analysis (Data Mining)Analysis (OLAP)DTSIntegration ServicesNotification ServicesReporting Services
Programming
CLRConnectivitySQLXML
Other Technologies
ClusteringEnglish QueryFull-Text SearchReplicationService Broker
General
Data WarehousingPerformanceSecuritySetupSQL Server ToolsOther SQL Server Topics
DirectoryUser Groups
Related Topics
MS AccessOther DB ProductsMS Server Products.NET DevelopmentVB DevelopmentJava DevelopmentMore Topics ...

SQL Server Forum / Other Technologies / Service Broker / May 2008

Tip: Looking for answers? Try searching our database.

Service Broker versus httpEndpoints

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Bill Ross - 17 May 2008 01:04 GMT
MS constantly impresses me with their ingenuity... but I am often overwhelmed. Especially when it comes to SQL Server and the myriad of data access choices and acronyms. The Help system is a jumble of choices.

For example, what is the relationship between HTTP Endpoints and Sql Service Broker? Or, to put it another way, would I ever NOT use Service Broker if I want to do Soap access to the data?

My current project would allow me to choose whatever database I would like as well as any access method (though it will be web based, and I have opted for SQL Server). I don't exactly NEED to approach this as a Web Service, but I love the idea of getting most of the data issues managed at the database level and having dumber clients consume them.

I'm assuming Crystal Reports can consume Service Broker web services?

Ok, so what I am envisioning is this:

* Sql Server, via stored procedures and Service Broker functions, etc, serves up the data, with the business rules enforced, to the clients via SOAP;
* Initially most of my clients will be asp.net/c# web pages and Crystal Reports that reside on the same server, but I can conveniently consume the same services with ad hoc consumption by Office, etc;

As I understand Service Broker, I can tap into the CLR by "Using System" and "Using System.Web" etc?

Thanks,

Signature

Bill Ross
http://billrosspolitics.blogspot.com
http://bibleshockers.blogspot.com

Bill Ross - 17 May 2008 01:30 GMT
In fact, let me make this question even more explicit...

At this site:

http://www.developer.com/db/article.php/3547866

The author says this:

"...The FOR SOAP clause states that this endpoint will respond to SOAP messages. Other endpoints handle messages for Service Broker or database mirroring..."

Ok, so Service Broker is NOT necessary to access SQL Server via HTTP Endpoints? So would I ever do that in 2008?

"Service Broker versus HTTP Endpoints" has not brought up any hits that clear all this up for me.

Thanks,

Bill Ross
http://billrosspolitics.blogspot.com
Tibor Karaszi - 17 May 2008 08:51 GMT
IMO, SB and HTTP Endpoint are totally different things.

HTTP Endpoint allow you to expose a stored procedure or function as a web service method. It is as
simple as that. All needed is a CREATE ENDPOINT command (and security in place) and you are done.

Service broker allow you to post and read messages from queues. It include functionality to
guarantee delivery, read in order etc. And SB also allow you to communicate messages between two
databases and even instances. In the later case, you need to define SB endpoints so that SQL Server
on one instance has some way to reach into the other instance to deliver the message.

HTTP Endpoints are deprecated in 2008, so you don't want to go that route...

Signature

Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://sqlblog.com/blogs/tibor_karaszi

MS constantly impresses me with their ingenuity... but I am often overwhelmed. Especially when it
comes to SQL Server and the myriad of data access choices and acronyms. The Help system is a jumble
of choices.

For example, what is the relationship between HTTP Endpoints and Sql Service Broker? Or, to put it
another way, would I ever NOT use Service Broker if I want to do Soap access to the data?

My current project would allow me to choose whatever database I would like as well as any access
method (though it will be web based, and I have opted for SQL Server). I don't exactly NEED to
approach this as a Web Service, but I love the idea of getting most of the data issues managed at
the database level and having dumber clients consume them.

I'm assuming Crystal Reports can consume Service Broker web services?

Ok, so what I am envisioning is this:

* Sql Server, via stored procedures and Service Broker functions, etc, serves up the data, with the
business rules enforced, to the clients via SOAP;
* Initially most of my clients will be asp.net/c# web pages and Crystal Reports that reside on the
same server, but I can conveniently consume the same services with ad hoc consumption by Office,
etc;

As I understand Service Broker, I can tap into the CLR by "Using System" and "Using System.Web" etc?

Thanks,

Signature

Bill Ross
http://billrosspolitics.blogspot.com
http://bibleshockers.blogspot.com

Bill Ross - 17 May 2008 18:02 GMT
Thanks, Tibor.

As I understand best practices for Web services today from the Microsoft point of view, the usual best way to approach this is NOT to use Service Broker but rather to use the Windows Communication Foundation. That is how I read this:

http://msdn.microsoft.com/en-us/library/ms996406.aspx

which says:

"....In this paper, I outlined the motivations for adopting a Service-Oriented approach to designing and building distributed systems. I discussed how and where to most appropriately use the current Microsoft suite of distributed technologies to implement these systems. My summarized guidance is as follows:
 a.. Build services using ASP.NET.
   a.. Enhance your services with WSE if you must support WS-*.
 b.. Keep components inside your services.
   a.. Use Enterprise Services where appropriate.
   b.. Use .NET Remoting where appropriate.
 c.. Use MSMQ for queued messaging.
 d.. Use BizTalk if you need to orchestrate loosely coupled business processes and/or to integrate several disparate systems and technologies.
 e.. Use SQL Server Notification Services if you need to build a data-oriented, asynchronous, queued application.
By following this guidance you'll be well aligned with Microsoft strategy. This will enable you to adopt and adapt the current Microsoft technologies and take advantage of the powerful distributed systems technologies we will be delivering in the future to help you build, deploy and operate your distributed services more easily than ever before..."

So, it is unlikely that I should go with Service Broker and more likely that I should use .asmx services, yes?

Also, as I understand WCF, formerly "Indigo" and formerly "WinFX"... that it actually is just the name for the suite of tools found in Visual Studio 2008:

http://msdn.microsoft.com/en-us/library/aa480188.aspx

"...Unification of Microsoft's Distributed Computing Technologies
The initial releases of the .NET Framework included several different technologies for creating distributed applications. The figure below lists each one, along with the primary reason why a developer would typically use that technology. To build basic interoperable Web services, for example, the best choice was ASP.NET Web services, more commonly referred to as ASMX. To connect two .NET Framework-based applications, .NET Remoting was sometimes the right approach. If an application required distributed transactions and other more advanced services, its creator was likely to use Enterprise Services, the .NET Framework's successor to COM+. To exploit the latest Web services specifications, such as WS-Addressing and WS-Security, a developer could build applications that used Web Services Enhancements (WSE), Microsoft's initial implementation of these emerging specifications. And to create queued, message-based applications, a Windows-based developer would use Microsoft Message Queuing (MSMQ).

       ASMX .NET Remoting Enterprise Services WSE MSMQ Indigo
     Interoperable Web Services     X             X
     .NET - .NET Communication       X           X
     Distributed Transactions, etc.         X         X
     Support for WS-* Specifications           X       X
     Queued Messaging             X     X

All of these options had value, yet the diversity was certainly confusing to developers. Why have so many choices? A better solution would be to have one technology that addresses all of these problems. With the arrival of Indigo, that technology has appeared. Rather than forcing developers to choose one of several possibilities, Indigo lets them create distributed applications that address all of the problems solved by the technologies it subsumes. While Microsoft will still support these earlier technologies, most new applications that would previously have used any of them will instead be built on Indigo..."

So am I correct that I should in most cases be using ASMX?

Thanks,

Bill Ross

 IMO, SB and HTTP Endpoint are totally different things.

 HTTP Endpoint allow you to expose a stored procedure or function as a web service method. It is as
 simple as that. All needed is a CREATE ENDPOINT command (and security in place) and you are done.

 Service broker allow you to post and read messages from queues. It include functionality to
 guarantee delivery, read in order etc. And SB also allow you to communicate messages between two
 databases and even instances. In the later case, you need to define SB endpoints so that SQL Server
 on one instance has some way to reach into the other instance to deliver the message.

 HTTP Endpoints are deprecated in 2008, so you don't want to go that route...

 --
 Tibor Karaszi, SQL Server MVP
 http://www.karaszi.com/sqlserver/default.asp
 http://sqlblog.com/blogs/tibor_karaszi

 "Bill Ross" <billross@bibleshockers.com> wrote in message
 news:369E1296-AAD3-4E9C-978B-CC1897342527@microsoft.com...
 MS constantly impresses me with their ingenuity... but I am often overwhelmed. Especially when it
 comes to SQL Server and the myriad of data access choices and acronyms. The Help system is a jumble
 of choices.

 For example, what is the relationship between HTTP Endpoints and Sql Service Broker? Or, to put it
 another way, would I ever NOT use Service Broker if I want to do Soap access to the data?

 My current project would allow me to choose whatever database I would like as well as any access
 method (though it will be web based, and I have opted for SQL Server). I don't exactly NEED to
 approach this as a Web Service, but I love the idea of getting most of the data issues managed at
 the database level and having dumber clients consume them.

 I'm assuming Crystal Reports can consume Service Broker web services?

 Ok, so what I am envisioning is this:

 * Sql Server, via stored procedures and Service Broker functions, etc, serves up the data, with the
 business rules enforced, to the clients via SOAP;
 * Initially most of my clients will be asp.net/c# web pages and Crystal Reports that reside on the
 same server, but I can conveniently consume the same services with ad hoc consumption by Office,
 etc;

 As I understand Service Broker, I can tap into the CLR by "Using System" and "Using System.Web" etc?

 Thanks,

 --
 Bill Ross
 http://billrosspolitics.blogspot.com
 http://bibleshockers.blogspot.com
Tibor Karaszi - 17 May 2008 21:01 GMT
"As I understand best practices for Web services today from the Microsoft point of view, the usual
best way to approach this is NOT to use Service Broker but rather to use the Windows Communication
Foundation."

I guess I just fail to see how SB gets thrown into the mix where web services are discussed. SB
doesn't have anything to do with web services. Or perhaps one should say it has as little with web
services as MQ does.

As for the other aspects, I'm not the right persona to answer. Perhaps somebody else jumps in here,
but you are probably better off going to some Windows programming group for that...

Signature

Tibor Karaszi, SQL Server MVP
http://www.karaszi.com/sqlserver/default.asp
http://sqlblog.com/blogs/tibor_karaszi

Thanks, Tibor.

As I understand best practices for Web services today from the Microsoft point of view, the usual
best way to approach this is NOT to use Service Broker but rather to use the Windows Communication
Foundation. That is how I read this:

http://msdn.microsoft.com/en-us/library/ms996406.aspx

which says:

"....In this paper, I outlined the motivations for adopting a Service-Oriented approach to designing
and building distributed systems. I discussed how and where to most appropriately use the current
Microsoft suite of distributed technologies to implement these systems. My summarized guidance is as
follows:
 a.. Build services using ASP.NET.
   a.. Enhance your services with WSE if you must support WS-*.
 b.. Keep components inside your services.
   a.. Use Enterprise Services where appropriate.
   b.. Use .NET Remoting where appropriate.
 c.. Use MSMQ for queued messaging.
 d.. Use BizTalk if you need to orchestrate loosely coupled business processes and/or to integrate
several disparate systems and technologies.
 e.. Use SQL Server Notification Services if you need to build a data-oriented, asynchronous,
queued application.
By following this guidance you'll be well aligned with Microsoft strategy. This will enable you to
adopt and adapt the current Microsoft technologies and take advantage of the powerful distributed
systems technologies we will be delivering in the future to help you build, deploy and operate your
distributed services more easily than ever before..."

So, it is unlikely that I should go with Service Broker and more likely that I should use .asmx
services, yes?

Also, as I understand WCF, formerly "Indigo" and formerly "WinFX"... that it actually is just the
name for the suite of tools found in Visual Studio 2008:

http://msdn.microsoft.com/en-us/library/aa480188.aspx

"...Unification of Microsoft's Distributed Computing Technologies
The initial releases of the .NET Framework included several different technologies for creating
distributed applications. The figure below lists each one, along with the primary reason why a
developer would typically use that technology. To build basic interoperable Web services, for
example, the best choice was ASP.NET Web services, more commonly referred to as ASMX. To connect two
.NET Framework-based applications, .NET Remoting was sometimes the right approach. If an application
required distributed transactions and other more advanced services, its creator was likely to use
Enterprise Services, the .NET Framework's successor to COM+. To exploit the latest Web services
specifications, such as WS-Addressing and WS-Security, a developer could build applications that
used Web Services Enhancements (WSE), Microsoft's initial implementation of these emerging
specifications. And to create queued, message-based applications, a Windows-based developer would
use Microsoft Message Queuing (MSMQ).

       ASMX .NET Remoting Enterprise Services WSE MSMQ Indigo
     Interoperable Web Services     X             X
     .NET - .NET Communication       X           X
     Distributed Transactions, etc.         X         X
     Support for WS-* Specifications           X       X
     Queued Messaging             X     X

All of these options had value, yet the diversity was certainly confusing to developers. Why have so
many choices? A better solution would be to have one technology that addresses all of these
problems. With the arrival of Indigo, that technology has appeared. Rather than forcing developers
to choose one of several possibilities, Indigo lets them create distributed applications that
address all of the problems solved by the technologies it subsumes. While Microsoft will still
support these earlier technologies, most new applications that would previously have used any of
them will instead be built on Indigo..."

So am I correct that I should in most cases be using ASMX?

Thanks,

Bill Ross

 "Tibor Karaszi" <tibor_please.no.email_karaszi@hotmail.nomail.com> wrote in message
news:5DC84490-8A08-45B7-96B1-3E068DBA55AD@microsoft.com...
 IMO, SB and HTTP Endpoint are totally different things.

 HTTP Endpoint allow you to expose a stored procedure or function as a web service method. It is as
 simple as that. All needed is a CREATE ENDPOINT command (and security in place) and you are done.

 Service broker allow you to post and read messages from queues. It include functionality to
 guarantee delivery, read in order etc. And SB also allow you to communicate messages between two
 databases and even instances. In the later case, you need to define SB endpoints so that SQL
Server
 on one instance has some way to reach into the other instance to deliver the message.

 HTTP Endpoints are deprecated in 2008, so you don't want to go that route...

 --
 Tibor Karaszi, SQL Server MVP
 http://www.karaszi.com/sqlserver/default.asp
 http://sqlblog.com/blogs/tibor_karaszi

 "Bill Ross" <billross@bibleshockers.com> wrote in message
 news:369E1296-AAD3-4E9C-978B-CC1897342527@microsoft.com...
 MS constantly impresses me with their ingenuity... but I am often overwhelmed. Especially when it
 comes to SQL Server and the myriad of data access choices and acronyms. The Help system is a
jumble
 of choices.

 For example, what is the relationship between HTTP Endpoints and Sql Service Broker? Or, to put it
 another way, would I ever NOT use Service Broker if I want to do Soap access to the data?

 My current project would allow me to choose whatever database I would like as well as any access
 method (though it will be web based, and I have opted for SQL Server). I don't exactly NEED to
 approach this as a Web Service, but I love the idea of getting most of the data issues managed at
 the database level and having dumber clients consume them.

 I'm assuming Crystal Reports can consume Service Broker web services?

 Ok, so what I am envisioning is this:

 * Sql Server, via stored procedures and Service Broker functions, etc, serves up the data, with
the
 business rules enforced, to the clients via SOAP;
 * Initially most of my clients will be asp.net/c# web pages and Crystal Reports that reside on the
 same server, but I can conveniently consume the same services with ad hoc consumption by Office,
 etc;

 As I understand Service Broker, I can tap into the CLR by "Using System" and "Using System.Web"
etc?

 Thanks,

 --
 Bill Ross
 http://billrosspolitics.blogspot.com
 http://bibleshockers.blogspot.com
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2009 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.