Archivo por meses: octubre 2006

Windows Communication Foundation: Best Practice

<<Lo mejor que he visto hasta ahora>>

Lista de 11  impresionante de TIPS para usar WCF.

Cosas cool:

  • El canal wsdualhttp es de jugete, confirmado
  • No usar mas XSD para validación de mensajes.
  • Una recomnedación muy buena es tener una interfaz de admisitarción común para los servicios.

Expositor :CraigMcMurty, Technical Evangelist

1.- Validación de mensajes.

0.-no validar mensajes con XSD

a.- la performance es mala.

b.- Dentro del canal se debe poner la validación.

c.- también se puede poner en el Message Inspector

d.- Mejor desempeño si se usan clases tipeadas, en el parameter inspector se puede validar los valores.

e.- XSD no tiene buen soporte de herramientas.

 

2.- SOAP FAULT

a.- Existe Fault Contract para falla en la estructura del mensaje.

b.- Fault Execption se ve en el proxy generado, pero no en wsdl.

 

3.- Traza a tarves de varios HOPS de servicios TRracing

a.- WCF puede hacer traza nativamente, con nivel de criticidad

b.- Se puede definir donde poner la traza, en que archivo.

c.- Tools traceview apoya el estudio de los LOG, aunque sean de diferentes puntos.

 

3.- ¿cómo puedo impersonar y mover las credenciales al servidor? Protocol credential

a.- Impesonalisation usando windows identity usando Kerberos/NTNL, en el binding configuration se puede habilitar la impersonalización por configuración.

b.- En el lado del servicio, se debe agregar en el servicio y en el metodo un atributo para permitir la impersonalisación.

c.- ¿Qupé pasa sin no es windows identity?

c.1.- Se debe usar STS, enviar el token y es complicado. En el largo plazo es mejor!!

 

4.- Buenas prácticas para hacer llamadas en el mismo proceso

a.- Esto no es un problema de computación distribuida.

b.- WCF no es para esto.

 

5.- Las mejores prácticas con equivalentes a NO HAGA….

a.- Ojo con los pilotos, no son una solución final J

 

6.- Addresses

a.- Cuando tenga su propio host defina la dirección base pero uso para el endopoint una dirección relativa.

b.- El binding delendpoint pueda cambiar sion cambiar la direccion base.

 

7.- Binding

a.- WSDUALHTTP: no aplica con firewall, NATs y IPv4. Es para demos, pero no tiene aplicaciones prácticas en el real WORLD. En IPV6 será posible.

b.- wsHTTP desabilite los protocolos que no usará.

b.1.- WS-I no está garantizando la intorepabilidad, por ejemplo con BEA.

d.- QUEUED:

d.1.- tiene el limite de tamaño de 4 MB.

d.2.- NO tiene remote recive.

f.- NetTcPBinding: para WCF-TO-WCF

g.- netPeerTcpBinding: solo es para P2P application.

h.- Streaming: se usa para archivos, por ejemplo musica.

h.1.- No está seguro para mandar grandes mensajes.

 

8.- Contratos

a.- ¿Qué pasa con los valores por defecto? Son diferentes de los defectos de ASMX

b.- Solo use tipos de datos que pueden ser resueltos por XSD. No mande DATASET aunque sean tipeados. No interoperan en la práctica.

c.- ContractFirst es una forma de diseñar, ojo con los atributos XML porque no pueden ser serializados en los contratos WCF, solo se deben usar elementos en XML.

d.- Uso de clases parciales (public partial class myDataContract) para los contratos. Los datos en una parte los metodos en otra parcial class. Así es fácil leer como es el contrato.

e.- sobre propiedades publicas y privadas: no hay diferencia en la serialización, si se usa serialización XML deben ser públicos los miembros para que sean considerados.

f.- La sección Header es para datos de protocolo no de negocio. MessageContract da acceso a todo el mensaje. DataContract solo al body del mensaje.

g.- Proveer un FaultContract para cada OperationContract.

h.- Proveer una operación por defecto: Action=”*”.

i.- Trate primero que la comunicación se asíncrona, si no es posible use sync.

j.- La interfaz de administración. Es una interfaz de consulta sobre el estado de la aplicación. Muy útil para saber que está pasando con la operación del servicio.

 

9.- Service Implementation

a.- Para elegir un WebHosting se debe tener en cuenta:

a.1.- Se pueden subir nuevos built?

a.2.- Provee seguridad seria.

b.- cuando uno tiene el hosting, llame expicitamente Close() para mejorar el desempeño.

c.- Implemente los servicios en una DLL independiente. Para poder tener un debugg decente.

d.- Para reducir la latencia y mejorar el desempeño haga:

d.1.- IntanceContextMode=Single.

d.2.- ConcurrencyMode=Multiple.

e.- Para mantener estado: use los mensajes, guarde los datos,

f.- No guarde estados, si lo hace que sea compatrible con ASP.NET

g.- ServiceAuthorizationManagerTypes es el modelo ideal.

g.1.- Es mas general, confiable pero considere el motor de reglas de WF para implemenatar)

 

10.- Client Implementation

a.- Siempre use programación asíncrona.

b.- Reduzca la latencia de la primera llamada usando el método OPen().

c.- Siempre llame el método Close(). Esto acelara el colector de basura.

 

11.- Managment

a.- Use WMI. Turn ON.

b.- Haga un model de health consistente,

b.1.- Deje contadores.

b.2.- Use Event Log.

b.3.- Tenga una interfaz de administración

Anuncio publicitario

The architecture of SOA

John Evdemon

Architect, Architecture Strategy

<<Notas sin editar>>

  1. Agilidad: la única estrategia sustentable
  2. SOA nos habilitará para hacer BPM.
  3. Mitos comunes de SOA:
    1. SOA es una tecnología: jajajajajajaja
    2. SOA requiere Web Services: solo son una implementación.
    3. SOA es una nueva revolución: no ya existía por ejemplo EDI, CORBA.
    4. SOA asegura la agilidad: SOA no es una metodología no asegura nada.
    5. SOA reduce el riesgo: es como un copo de nieve, no hay dos iguales.
    6. SOA requiere una nueva tecnología: en rigor puede ser implementada con su actual tecnología.
    7. SOA requiere un ejército de consultores: Se necesitan buenas herramientas no consultores.
    8. Necesitamos construir SOA: esto es un error, lo que se hace son soluciones que están alineadas con SOA no un SOA product.
  4. Re Uso
    1. ¿Deja Vu?
    2. El re uso no se ha logrado, no necesariamente se logrará con SOA.
  5. Exponer / componer / Consumir
    1. La triada del ciclo de vida de SOA
    2. Aplicaciones compuestas: es una nueva forma de hacer aplicaciones basadas en la asociación de servicios y procesos de negocio.
    3. Exponer: habla de cómo se construyen los servicios, decidir la granularidad es todo un tema no sencillo. Han aparecido patrones para esto.
  6. Recurring Logical Capabilities
    1. User Interaction: crear mejores aplicaciones.
      1. Son necesarios servicios especiales para CBA. Estos soportan las funcionalidades Rich de las aplicaciones.
      2. Servicios de Wrappers: muy importantes, exponen temas de LOB a las interfaces de manera simple.
    2. Workflow: componer aplicaciones. 
      1. Coordinar servicios remotos, procesos largos en el tiempo.
    3. Data: obtener datos consistentes. 
      1. Servicios de entidad
      2. Servicios de agregación 
      3. Servicios de Factoring.
    4. Identity and Access: aspectos de seguridad transversales. 
      1. Manejo de la identidad.
      2. Impersonalización y delegación.
      3. Modelo Trusted subSystem.
      4. Autentificación.
      5. RBAC
      6. Administración de los relaciones de confianza.
    5. Message and Services: esta compuesto por una capa lógica en frente de las aplicaciones.
      1. Es necesario determinar ¿Qué exponer?
      2. Service Operation Contratcs: administración
      3. Message And Data Contracts
      4. Versionamiento
  7. COMPOSE, los aspectos transversales que apoyan la composición son:
    1. User Interface: viene PAGEFLOWS concepto que ya existía en BEA hace dos o tres años, que buena noticia.
    2. Workflow: soporte para procesos largos, que siguen a la interfaz.
      1. Fáciles de modelar.
      2. Fáciles de cambiar, incluso en ejecución.
    3. Data: 
      1. Traking del estado de los workflow
      2. ETL
      3. Mensajeria confiable y persistencia.
      4. Replicación.
      5. Sincronización, para aplicaciones OCC
      6. Administración de metadata.
    4. Message and Services 
      1. Orquestación de servicios es la clave.
      2. Las orquestaciones se exponen como servicios.
      3. Soporta el patrón de comunicaciones asíncrono.
  8. Consume:
    1. User Interaction:
      1. OBAS, composición de aplicaciones.
      2. Personalización de interfaces.
      3. Portales
      4. BI y reportes.
      5. Agregación de contenido: los usarios reciben la información agregada desde diferentes fuentes.
      6. UX declarativa: ¿????????
    2. Workflow & BPM 
      1. Humman workflows (MOSS)
      2. Event Broking (CAB)
      3. Page Flows
    3. DATA 
      1. OBA(office Business Application), cómo la aplicación del Banco de Chile / Business Data Catalog (BDC)
      2. Una solo vista del cliente!!!
      3. JSON: Java script location on XML?????
    4. Identity and Access 
      1. SSO /RBAC /
      2. Servicios de directori
      3. Compliance?
    5. Messaging and services 
      1. Formularios electronicos (infoPath)
      2. Web PArts,
      3. Registro de servicios (check in / check out /buscar) ¿no esta claro con que hacerlo?
      4. AJAX, REST, rest interface permite el dialogo con la interfaz usando servicios.

Real Word SOA

<<Notas sin editar>>

John deVadoss

Director, Architectura Stragy

  1. Web Servicies, vino a satisfacer el sueño de integración fácil.
    1. WS* nuevos estándares del la industria.
  2. SOA es un estilo de arquitectura no un producto o tecnología.
    1. El primer beneficio es Agilidad.
    2. Los estándares son críticos para el éxito de SOA.
    3. El foco en el mundo real es Time-to-Value.
  3. Existen clientes exitosos y que han fracaso en la adopción de SOA.
  4. un ejemplo de necesidad del negocio es “Single View of client
  5. En el mundo real
    1. Business Driver
    2. Incremental delivery (Expose, Compose, Consume)
    3. Service Enablement (Expose) Servicios de aplicación.
    4. Compose: Workflow y orquestación.
    5. Consumir los servicios: aplicaciones de cualquier tipo.
    6. Cuando se ponen las piezas juntas:
      1. i. Seguridad.
      2. ii. Administración
      3. iii. Herramientas
  6. ROADMAP de innovación
    1. 2007
      1. i. Office
      2. ii. Windows Vista
      3. iii. Office Sharepoint
      4. iv. BizTalk 2006 R2
      5. v. .net 3.0
    2. Después
      1. i. Windows Server “Longhom”
  7. Enterpice Connectivity
    1. BizTalk Adapter
      1. i. Muchos adaptadores para la industria.
      2. ii. R2:
        1. 1. WCF
        2. 2. EDI /AS2
        3. 3. RFID
        4. 4. Otros LOB
        5. HOST INTEGRATION Server
        6. i. Nuevos adaptadores.
      3. ESB Guidance
        1. PRe Built, aceleran la implementación.
        2. Programas de adopción para ISV.
    2. .NET 3.0
      1. Windows CardSpace 
        1. Registro y Login
        2. Integrado con Indigo.
        3. iii. Tecnología para las masas.
      2. WF
      3. WPF
      4. WCF
  8. The “Last Mile problem”
    1. En el mundo real, las aplicaciones y sistemas no están preparadas para ser integradas. Todo es AD HOC, no fue pensado para integrarse.
  9. Links útiles
    1. http://msdn.microsoft.com/architecture/
    2. http://msdn.microsoft.com/practices/
    3. http://msdn.microsoft.com/webservices/
    4. http://www.architecturejournal.net/2006/issue8/
  10. ¿Cómo empezar?
    1. Buscar los Business Drivres
    2. Middle-out: busque casos impactantes, demuestre el valor para el negocio.
    3. Partition your business capabilities, esto es un riesgo busque que es lo que realmente puede hacer para su organización.
    4. Demuestre valor rápidamente y “no aguas abajo” (waterFall)

Los clientes exitosos son lo que siguen el modelo “SnowBall”, es decir partir pequeño e ir aumentando el alcance en el tiempo.

SOA & BPM: KEY NOTE

David Chappell

<<Estas son mis notas si Editar, espero poder escribir en forma coherente despúes.>>

  1. KEY NOTE "Una vista pragmática"

Tres metas pragmáticas:

      •  Estandarizar 
      •  Crear los servicios necesarios 
      •   Hacer los procesos de negocio

 SOA is a Loosely vision : defines vision.

Ø      Dos aspectos fundamentales.

o       Common protocol.

o       Common foundation

Ø      TCP/IP + WCF son los aspectos fundamentales.

Ø      Framework 3.0:

o       WWF

o       WCF

o       WPF

o       Windows Space?

Ø      .net 2.0 la implementación depende del protocolo.

Ø      .net 3.0 las aplicaciones usan diferente protocolos con una misma API.

Ø      Summary de estandarización de las comunicaciones en SOA

o       Definición de un protocolo común, no es posible. Esto es un problema, que debe ser resuelto.

o       Definición de una fundación (pilares) comunes. WCF

o       Definición de la data. XML, complejo. Se estan usando varias definiciones de los documentos.

o       Getting widesparade adoption, no hay consenso.

o       Providing business value ¿hay valor de negocio? Agilidad y re-uso. Agilidad ok pero re-uso no se está dando mucho. Por ejemplo que pasó con el reuso de objetos, falló.  El reuso de objetos de negocio, .net es reuso de objetos.

o       TCP(/IP soporta todo lo que necesitamos.

2.- SOAP no es suficiente

Ø      QUEUED no soportado.

Ø      Necesita trasformar todos los formatos.

Ø      Se usa para conectar aplicaciones no SAO.

Ø      La realidad es que hay aplicaciones que no hablan SOAP y que tiene una fachada propietaria que tiene interfaz SOAP. En Windows esa fachada está en BizTalk.

3.- ESB?

Ø      ¿Que es eso?

Ø      El problema con ESB es que es lo que llamamos ESB. Las categorías no están claras y son confusas. Depende de la marca que es un ESB.

Ø      Gartner, forester,  tiene una definición. ¿qué significan?

Ø      El punto es que no es posible definirlo hasta ahora.

1.      puntos comunes:

a.       Seguridad

b.      Calidad de servicio.

c.       Registro de servicios y metadata

d.      Extensibilidad de los mensajes

e.       Monitoreo y administración

f.       Soporte al ciclo de vida de los servicios.

4.- El objetivo es crear una infraestructura efectiva de comunicación.

  1. BizTalk Server
    1. Creando la nueva infraestructura
      1. Ø      Fundación: WCF
      2. Ø      QUEUED: Biztalk
      3. Ø      Data transformación: Mapping de BizTalk
      4. Ø      Conexión con diferentes protocolos: BizTalk.
      5. Ø      Los otros problemas: Múltiples productos (Willy te quitaron el piso) el futuro será  System center operation manager 2007 (esta hecho WCF)

2.- Use BPM Technologies Effective

Ø      BPM una visión de procesos y eficiencia. Gente de negocio.

Ø      La vista del técnico es crear y ejecutar un proceso lógico.

3.- CORE PBM Technologies

Ø      Workflow (Humanos y maquinas)

Ø      Herramientas gráficas de diseño.

Ø      BRE motor de reglas de negocio

Ø      BAM

Ø      BizTalk: workflow, BRE, BAM (Que casualidad hace todo lo que destacan como importante)

4.- Tecnologías MS para BPM y SOA

Ø      BizTalk 2006

Ø      WCF

Ø      Sharepoint

Ø      WF (Windows Foundation) Foco en gente Developer no para humanos.

Ø      En el futuro la orquestación de BizTalk será para humanos

Ø      Windows Sharepoint Services WSS 3.0.

1.      Tiene capacidad de workflow (versión 2007) viene con témplate y otras cosas que facilitan que humanos hagan y participen en Workflow.

2.      Los usuarios podrán

a.       Usarlo vía Web y Outlook.

3.      Será el HOST de los workflow para humanos

4.      ¿Cómo se crean?

a.       Developer: WF

b.      Humanos: New tools Office Sharepoint Designer 2007.

                                                                                                 i.      La aproximación de esta herramienta es que sea como una serie de reglas, no secuencia de pasos.

ii.      Es una aproximación USer Frendly.

5.      Office Sharepoint Server 2007

a.       Contiene aprobaciones, otras actividades.

b.      Puede usar infoPath

 5.- Conclusiones

Ø      La visión es esencial pero debe ser pragmática

Ø      Tres metas pragmáticas

1.      Estandarización de las comunicaciones.

2.      Cree la infraestructura de servicios necesarias

3.      Use las tecnologías de BPM efectivamente.

Ø      Si usa sigue estas metas, será beneficioso para la organización.

Ø      El reuso es un míto, es un problema de humanos Developer.

Ø      No tiene MS un catalogo de servicios y administración de Metadata “Sorry”.