Post on 03-Jan-2015
SQL Server 2005 como SQL Server 2005 como servidor de aplicacionesservidor de aplicaciones
Edgar SánchezEdgar SánchezDirector Regional de MicrosoftDirector Regional de Microsoft
Lo que veremosLo que veremos
Soporte nativo para servicios de Web Soporte nativo para servicios de Web en SQL Server 2005en SQL Server 2005 Alcance y característicasAlcance y características Escenarios de usoEscenarios de uso
PrerrequisitosPrerrequisitos
Familiaridad con los conceptos de Familiaridad con los conceptos de servicios de Web con XMLservicios de Web con XML
Familiaridad con HTTPFamiliaridad con HTTP
AgendaAgenda
La visiónLa visión ArquitecturaArquitectura Escenarios de aplicaciónEscenarios de aplicación Detalles – endpoint, solicitud/respuestaDetalles – endpoint, solicitud/respuesta Modelo de programaciónModelo de programación SeguridadSeguridad RendimientoRendimiento Comparación con SQLXMLComparación con SQLXML Mejores prácticasMejores prácticas
La visiónLa visión
Proveer un mecanismo basado en Proveer un mecanismo basado en estándares abiertos para acceder a estándares abiertos para acceder a SQL ServerSQL Server
La metaLa meta Acceso ubicuo a datosAcceso ubicuo a datos
InteroperabilidadInteroperabilidad Basado en estándares como HTTP, SOAP Basado en estándares como HTTP, SOAP
1.1 y 1.2, XSD y WSDL 1.11.1 y 1.2, XSD y WSDL 1.1 Cumplir con las últimas especificaciones Cumplir con las últimas especificaciones
de servicios de Web que resulten de servicios de Web que resulten aplicablesaplicables
Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer
SQL SERVERSQL SERVER
TDS/TDS/TCPTCP
NamedNamedPipesPipes
TDS/TDS/TCPTCP
NamedNamedPipesPipes
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET
Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer
SQL SERVERSQL SERVER
TDS/TDS/TCPTCP
NamedNamedPipesPipes
TDS/TDS/TCPTCP
NamedNamedPipesPipes
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NETSQL XMLSQL XML
IISIISSQL XMLSQL XML
IISIIS
Protocolos de acceso a SQL Protocolos de acceso a SQL ServerServer
TDS/TDS/TCPTCP
NamedNamedPipesPipes
TDS/TDS/TCPTCP
NamedNamedPipesPipes
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NET
ODBC, ODBC, OLE DB, OLE DB, ADO.NETADO.NETSQL XMLSQL XML
IISIISSQL XMLSQL XML
IISIISSQL SERVERSQL SERVER
SOAP/SOAP/HTTPHTTP
SOAP/SOAP/HTTPHTTP
Unix ClientUnix ClientUnix ClientUnix Client
Requerimientos de plataformaRequerimientos de plataforma
Windows Server 2003, Windows XP Windows Server 2003, Windows XP SP2SP2 Soporte de Http.Sys en modo kernelSoporte de Http.Sys en modo kernel No se requiere Internet Information No se requiere Internet Information
Services (IIS)Services (IIS)
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
EndpointEndpointEndpointEndpoint
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
EndpointEndpointEndpointEndpoint
ProcedimientoProcedimientoalmacenadoalmacenado
ProcedimientoProcedimientoalmacenadoalmacenado
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
EndpointEndpointEndpointEndpoint
ProcedimientoProcedimientoalmacenadoalmacenado
ProcedimientoProcedimientoalmacenadoalmacenado
Acceso RPCAcceso RPC
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
EndpointEndpointEndpointEndpoint
ProcedimientoProcedimientoalmacenadoalmacenado
ProcedimientoProcedimientoalmacenadoalmacenado
Acceso RPCAcceso RPC
Acceso por lotesAcceso por lotes
SQL SERVERSQL SERVER
Diagrama de arquitecturaDiagrama de arquitectura
EndpointEndpointEndpointEndpoint
ProcedimientoProcedimientoalmacenadoalmacenado
ProcedimientoProcedimientoalmacenadoalmacenado
Acceso RPCAcceso RPC
Acceso por lotesAcceso por lotes
Solicitud WSDLSolicitud WSDL
GeneradorGeneradorWSDLWSDL
GeneradorGeneradorWSDLWSDL
Escenarios de aplicaciónEscenarios de aplicación
Aprovechar la inversión en procedimientos Aprovechar la inversión en procedimientos almacenadosalmacenados Lógica de procedimientos almacenados muy Lógica de procedimientos almacenados muy
asociada con los datosasociada con los datos Servicios de búsquedaServicios de búsqueda
Catálogo de productos, directorio de empleados, Catálogo de productos, directorio de empleados, servicios basados en la ubicaciónservicios basados en la ubicación
Servicios de reportesServicios de reportes Permite también reportes ad-hocPermite también reportes ad-hoc
Escenarios móvilesEscenarios móviles Permite que nuevas clases de dispositivos de Permite que nuevas clases de dispositivos de
tamaño pequeño se conecten a SQL Servertamaño pequeño se conecten a SQL Server Conexiones no atadas a una sesión, la sesión Conexiones no atadas a una sesión, la sesión
permanece incluso si la conexión se cae. Permite permanece incluso si la conexión se cae. Permite tener dispositivos conectados esporádicamente.tener dispositivos conectados esporádicamente.
Escenarios de aplicaciónEscenarios de aplicación (cont.)(cont.) Uso en ambientes heterogéneosUso en ambientes heterogéneos
Se puede conectar Perl a SQL ServerSe puede conectar Perl a SQL Server Se puede usar como una alternativa a Se puede usar como una alternativa a
JDBCJDBC Permite Arquitectura Orientada a Permite Arquitectura Orientada a
ServiciosServicios Aplicaciones desconectadasAplicaciones desconectadas Expone servicios de Web en la capa de Expone servicios de Web en la capa de
datos o en la capa intermediadatos o en la capa intermedia Servicios asincrónicos son posibles con Servicios asincrónicos son posibles con
la integración con SQL Server Service la integración con SQL Server Service BrokerBroker
Ejemplo de EndpointEjemplo de Endpoint
Un endpoint tiene un Un endpoint tiene un nombrenombre
Un conjunto de Un conjunto de opciones para el opciones para el transportetransporte (HTTP) – el (HTTP) – el URLURL
Un conjunto de Un conjunto de opciones para la carga opciones para la carga (SOAP) – métodos (SOAP) – métodos invocables en ese URLinvocables en ese URL
create endpoint create endpoint DemoDemo as HTTP (as HTTP ( authentication = authentication =
( integrated ),( integrated ), path = path = '/sql/demo','/sql/demo',
ports = ( clear),ports = ( clear), state = startedstate = started))for soap (for soap ( webmethod webmethod
'http://logicstudio.net''http://logicstudio.net'.'testproc1‘.'testproc1‘
(name = (name = demodb.dbo.testproc1),demodb.dbo.testproc1),
batches = enabled,batches = enabled, wsdl = defaultwsdl = default))
3333
2222
1111
1111
2222
3333
Endpoints – Modelo de Endpoints – Modelo de seguridadseguridad No hay acceso anónimoNo hay acceso anónimo Autenticación – dos nivelesAutenticación – dos niveles
Transporte HTTP: Basic, Digest, Integrated Transporte HTTP: Basic, Digest, Integrated (NTLM, Kerberos)(NTLM, Kerberos)
SQL Server: SQL Auth (WsSecurity Username SQL Server: SQL Auth (WsSecurity Username token ) habilitado cuando LOGIN_TYPE=MIXEDtoken ) habilitado cuando LOGIN_TYPE=MIXED
Prevención de envío de credenciales en Prevención de envío de credenciales en claroclaro Forzar SSL cuando se usa BASIC o LOGIN_TYPE Forzar SSL cuando se usa BASIC o LOGIN_TYPE
= MIXED= MIXED Filtrado de IPsFiltrado de IPs
Solicitud WSDLSolicitud WSDL
Describe la aplicación (servicios) que Describe la aplicación (servicios) que el endpoint exponeel endpoint expone
Solicitud del WSDLSolicitud del WSDL http://<SITE>:<PORT>/<PATH>?WSDLhttp://<SITE>:<PORT>/<PATH>?WSDL http://http://myserver/sql/demo?wsdlmyserver/sql/demo?wsdl
Crear Endpoint, solicitar WSDLCrear Endpoint, solicitar WSDL
WSDL - SoporteWSDL - Soporte
Generación dinámicaGeneración dinámica WSDL – Soporte de cajónWSDL – Soporte de cajón
ComplejoComplejo Descripción de tipos rica para parámetros y Descripción de tipos rica para parámetros y
resultados usando tipos complejos XSDresultados usando tipos complejos XSD SimpleSimple
Descripción mínimaDescripción mínima
Interoperabilidad incrementadaInteroperabilidad incrementada http://myserver/sql/demo?wsdlsimplehttp://myserver/sql/demo?wsdlsimple
Extensible – usa un procedimiento Extensible – usa un procedimiento almacenado personalizadoalmacenado personalizado
WSDL=sp_nameWSDL=sp_name
Solicitud SOAP - LoteSolicitud SOAP - Lote
<sqlbatch <sqlbatch xmlns="http://schemas.microsoft.com/SQLServexmlns="http://schemas.microsoft.com/SQLServer/2001/12/SOAP">r/2001/12/SOAP">
<BatchCommands>SELECT EmployeeID, LoginID, <BatchCommands>SELECT EmployeeID, LoginID, Gender FROM Employee Where EmployeeID=@x ;Gender FROM Employee Where EmployeeID=@x ;
</BatchCommands></BatchCommands> <Parameters><Parameters> <SqlParameter name="x" sqlDbType="Int" <SqlParameter name="x" sqlDbType="Int"
xmlns="http://schemas.microsoft.com/SQLServexmlns="http://schemas.microsoft.com/SQLServer/2001/12/SOAP/types/SqlParameter">r/2001/12/SOAP/types/SqlParameter">
<Value xsi:type="xsd:string">1</Value><Value xsi:type="xsd:string">1</Value> </SqlParameter></SqlParameter> </Parameters></Parameters></sqlbatch></sqlbatch>Equivalente en TDS a la declaración de Equivalente en TDS a la declaración de
parámetros invocando a sp_executesqlparámetros invocando a sp_executesql
SOAP- Solicitud RPCSOAP- Solicitud RPC<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><soap:Envelope <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" lope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body><soap:Body> <GetCustInfo <GetCustInfo
xmlns="http://Adventure-Works/Customers/">xmlns="http://Adventure-Works/Customers/"><CustomerID>1</CustomerID><CustomerID>1</CustomerID>
</GetCustInfo></GetCustInfo> </soap:Body></soap:Body></soap:Envelope></soap:Envelope>
Es similar a (sobre TDS, en un lote)Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfoEXEC demodb.dbo.GetCustInfo
<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?><soap:Envelope <soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envexmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" lope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body><soap:Body> <GetCustInfo <GetCustInfo
xmlns="http://Adventure-Works/Customers/">xmlns="http://Adventure-Works/Customers/"><CustomerID>1</CustomerID><CustomerID>1</CustomerID>
</GetCustInfo></GetCustInfo> </soap:Body></soap:Body></soap:Envelope></soap:Envelope>
Es similar a (sobre TDS, en un lote)Es similar a (sobre TDS, en un lote) EXEC demodb.dbo.GetCustInfoEXEC demodb.dbo.GetCustInfo
Respuestas SOAPRespuestas SOAP
Las User Defined Functions son Las User Defined Functions son sencillas sencillas Por ejemplo, un valor de retorno de unaPor ejemplo, un valor de retorno de una
nvarchar(100) se mapea a una “string”, nvarchar(100) se mapea a una “string”, con una longitud máxima de 100con una longitud máxima de 100
Los procedimientos almacenados Los procedimientos almacenados son más difícilesson más difíciles No hay un esquema fijo para lo que se No hay un esquema fijo para lo que se
devuelve. Se mapea para devolver un devuelve. Se mapea para devolver un arreglo de valores.arreglo de valores.
El retorno para un lote SQL es el El retorno para un lote SQL es el mismo que para un procedimiento mismo que para un procedimiento almacenadoalmacenado
Respuesta SOAPRespuesta SOAP
ResultStream deResultStream de SqlRowSet – resultado de SELECT …SqlRowSet – resultado de SELECT … SqlXml – resultado de SELECT .. FOR XMLSqlXml – resultado de SELECT .. FOR XML SqlMessage – Mensajes de Error, Warning SqlMessage – Mensajes de Error, Warning
y Printy Print SqlRowCount – Filas afectadasSqlRowCount – Filas afectadas SqlResultCode – Código de retorno del SPSqlResultCode – Código de retorno del SP
Errores/FallasErrores/Fallas
Clientes inteligentesClientes inteligentes
Los clientes consumen WSDL Los clientes consumen WSDL para generar código proxypara generar código proxy EnEn Visual Studio® .NET “Add Web Visual Studio® .NET “Add Web
Reference”Reference” En línea de comandos: wsdl.exe En línea de comandos: wsdl.exe
Por ejemplo…Por ejemplo…object[] SqlBatch(string batchCommands,object[] SqlBatch(string batchCommands,
ref SqlParameter[] ref SqlParameter[]
parameters);parameters);
string testFunc1(string p1);string testFunc1(string p1);
object[] testProc1();object[] testProc1();
Formato de resultado y Formato de resultado y binding del lenguajebinding del lenguaje FORMAT = ALL_RESULTSFORMAT = ALL_RESULTS
Object [] o = Object [] o = myProcedure(params);myProcedure(params);
FORMAT = ROWSETS_ONLYFORMAT = ROWSETS_ONLY DataSet ds = DataSet ds = myProcedure(myParam);myProcedure(myParam);
Aplicaciones de cliente – Java, Aplicaciones de cliente – Java, cliente inteligente con Visual cliente inteligente con Visual Studio 2005Studio 2005
Soporte de sesionesSoporte de sesiones
Se debe habilitar sesiones en el Se debe habilitar sesiones en el endpointendpoint
Las sesiones pueden extender Las sesiones pueden extender conexionesconexiones
Las solicitudes para conectarse a Las solicitudes para conectarse a sesiones son autenticadassesiones son autenticadas
Las sesiones se inician y terminan a Las sesiones se inician y terminan a través del header SOAPtravés del header SOAP
El timeout de la sesión se puede El timeout de la sesión se puede configurar en el endpoint y en el inicio configurar en el endpoint y en el inicio de la solicitudde la solicitud
Solicitud/Respuesta de sesiónSolicitud/Respuesta de sesión<SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>
<sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>
<sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header>
Solicitud/Respuesta de sesiónSolicitud/Respuesta de sesión<SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>
<sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- create a new session, with explicit timeout --<!-- create a new session, with explicit timeout -->>
<sqloptions:sqlSession initiate=”true” <sqloptions:sqlSession initiate=”true” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header><SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- response to creating a new session, or <!-- response to creating a new session, or enlisting in an existing session -->enlisting in an existing session -->
<sqloptions:sqlSession sessionId=” AAAAADreaLE=” <sqloptions:sqlSession sessionId=” AAAAADreaLE=” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Header<SOAP-ENV:Header
xmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envexmlns:SOAP-ENV=”http://schemas.xmlsoap.org/soap/envelope/”lope/”
xmlns:sqloptions=”http://schemas.microsoft.com/SQLSexmlns:sqloptions=”http://schemas.microsoft.com/SQLServer/2001/12/SOAP/Options”>rver/2001/12/SOAP/Options”>
<!-- response to creating a new session, or <!-- response to creating a new session, or enlisting in an existing session -->enlisting in an existing session -->
<sqloptions:sqlSession sessionId=” AAAAADreaLE=” <sqloptions:sqlSession sessionId=” AAAAADreaLE=” timeout=”12”/>timeout=”12”/>
</SOAP-ENV:Header></SOAP-ENV:Header>
Soporte de WS-SecuritySoporte de WS-Security
Soporte para token de header tipo Soporte para token de header tipo WsSecurity Username. Usado paraWsSecurity Username. Usado para SQLAuth.SQLAuth.
No soporta No soporta Encryption y Signature de Encryption y Signature de la especificación WS-Security.la especificación WS-Security.
Cabecera WS-Security - SQL AuthCabecera WS-Security - SQL Auth
<SOAP-ENV:Header><SOAP-ENV:Header> <wsse:Security xmlns:wsse=<wsse:Security xmlns:wsse=
"http://schemas.xmlsoap.org/ws/2003/06/se"http://schemas.xmlsoap.org/ws/2003/06/secext">cext">
<wsse:UsernameToken><wsse:UsernameToken>
<wsse:Username>sqluser</wsse:<wsse:Username>sqluser</wsse:Username>Username>
<wsse:Password Type=<wsse:Password Type=
"wsse:PasswordText">pass-word1</wsse:Pass"wsse:PasswordText">pass-word1</wsse:Password>word>
</wsse:UsernameToken></wsse:UsernameToken> </wsse:Security></wsse:Security></SOAP-ENV:Header></SOAP-ENV:Header>
<SOAP-ENV:Header><SOAP-ENV:Header> <wsse:Security xmlns:wsse=<wsse:Security xmlns:wsse=
"http://schemas.xmlsoap.org/ws/2003/06/se"http://schemas.xmlsoap.org/ws/2003/06/secext">cext">
<wsse:UsernameToken><wsse:UsernameToken>
<wsse:Username>sqluser</wsse:<wsse:Username>sqluser</wsse:Username>Username>
<wsse:Password Type=<wsse:Password Type=
"wsse:PasswordText">pass-word1</wsse:Pass"wsse:PasswordText">pass-word1</wsse:Password>word>
</wsse:UsernameToken></wsse:UsernameToken> </wsse:Security></wsse:Security></SOAP-ENV:Header></SOAP-ENV:Header>
Características de seguridadCaracterísticas de seguridad
Seguro por omisiónSeguro por omisión ¿Quién puede crear ¿Quién puede crear endpoints?endpoints?
Miembros del rolMiembros del rol sysadmin sysadmin Usuarios a los que se ha concedido el permisoUsuarios a los que se ha concedido el permiso
CREATE ENDPOINTCREATE ENDPOINT
¿Quién se puede conectar a un ¿Quién se puede conectar a un endpoint?endpoint? Miembros del rolMiembros del rol sysadmin, dueño del endpoint, sysadmin, dueño del endpoint,
usuarios a los que se ha concedido el permiso usuarios a los que se ha concedido el permiso CONNECT en el endpoint específico CONNECT en el endpoint específico
No hay soporte para que un Anónimo se No hay soporte para que un Anónimo se conecte a los econecte a los endpoints ndpoints
Mejores prácticas - SeguridadMejores prácticas - Seguridad
Instalar detrás de Instalar detrás de firewall/proxy/DMZfirewall/proxy/DMZ No abrir el puerto al InternetNo abrir el puerto al Internet
Preparar los endpoints para ser Preparar los endpoints para ser accedidos solo por principales que accedidos solo por principales que necesitan accesonecesitan acceso
SQLXML vs. SOAP nativoSQLXML vs. SOAP nativo
Tecnologías complementariasTecnologías complementarias SQLXML ofreceSQLXML ofrece
Plantillas (provee vistas actualizables)Plantillas (provee vistas actualizables) Updategrams, Bulkload, Query strings en el URLUpdategrams, Bulkload, Query strings en el URL
El acceso SOAP ofreceEl acceso SOAP ofrece No depende de IISNo depende de IIS ~%40 mejora de rendimiento sobre SQLXML~%40 mejora de rendimiento sobre SQLXML Soporte total a la ejecución de lotes Soporte total a la ejecución de lotes
parametrizadosparametrizados WSDL dinámicoWSDL dinámico
Mejores Prácticas – Cuando Mejores Prácticas – Cuando usar / Cuando no usarusar / Cuando no usar
Usar en ambientes heterogéneosUsar en ambientes heterogéneos Se puede conectar a SQL usando Perl, PHP, …Se puede conectar a SQL usando Perl, PHP, … Se puede usar como una alternativa a Java Se puede usar como una alternativa a Java
Database Connectivity (JDBC)Database Connectivity (JDBC)
No usar para aplicaciones caracterizadas No usar para aplicaciones caracterizadas por acceso en tiempo real altamente por acceso en tiempo real altamente concurrente, con transacciones de corta concurrente, con transacciones de corta duraciónduración
No usar para escalamiento estilo granja de No usar para escalamiento estilo granja de Web. No es un reemplazo para IIS.Web. No es un reemplazo para IIS.
Pruebas de interoperabilidadPruebas de interoperabilidad
WSI-BPWSI-BP Jbuilder 9Jbuilder 9 PerlPerl GlueGlue Axis 1.1Axis 1.1 WASPWASP VS.Net (RTM/Everett, Whidbey)VS.Net (RTM/Everett, Whidbey) Soap Toolkit 3.0Soap Toolkit 3.0
ResumenResumen
La visiónLa visión ArquitecturaArquitectura Escenarios de aplicaciónEscenarios de aplicación Detalles – endpoint, solicitud/respuestaDetalles – endpoint, solicitud/respuesta Modelo de programaciónModelo de programación SeguridadSeguridad RendimientoRendimiento Comparación con SQLXMLComparación con SQLXML Mejores prácticasMejores prácticas
Webcasts en españolWebcasts en español
Futuros:Futuros: http://www.microsoft.com/spanish/msdn/lahttp://www.microsoft.com/spanish/msdn/la
tam/videotam/video
Grabaciones previas:Grabaciones previas: http://www.microsoft.com/spanish/msdn/http://www.microsoft.com/spanish/msdn/
latam/video/webcast.asplatam/video/webcast.asp
¿Preguntas?¿Preguntas?
edgar.sanchez@logicstudio.netedgar.sanchez@logicstudio.net