Especificaciones Proyecto Siteminder
Documentación Siteminder:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/overview
Otros recursos:
• WSDL: adjuntado está el .WSDL exacto que se necesita (
SMXAPP_API_FLAT.wsdl)
• WSDL en .cs: adjuntado está el archivo “
wsdl.cs” que es una clase de C# que fue hecho a partir del .WSDL original mediante la herramienta “svcutil”. Se puede usar directamente esta clase para hacer la estructura, no hay ningún problema y es de hecho la manera más correcta de hacerlo porque ya viene todo pre-definido, pero en caso de que no se utilice les servirá de referencia para lograr el entregable.
• Full XML Request Example: adjuntado está el archive “Full XML Request Example” que contiene el XML máximo que la aplicación debe ser capaz de recibir y dar una respuesta.
Extracto Proyecto
Lo que se necesita es que se cree un servicio en C# que sea consumido por 3eros, mediante WCF y Visual Studio 2015, que sea capaz de leer un XML de entrada especificado como “Maximum Content XML Sample” de la documentación de Siteminder. El proyecto tiene que contemplar la instalación de este servicio en un servidor a elección Windows en AWS, que puede ser Windows Server 2012, Windows Server 2016, y cualquiera de sus derivados (R2, station, standard, data center edition, etc..).
Se debe entregar:
• Código del proyecto en C# utilizando Visual Studio 2015
• Instalación de proyecto en una máquina virtual AWS (entregada por nosotros)
Explicación de negocio
Siteminder es una empresa del mundo del travel que se especializa en ser distribuidores de reservas para otras empresas (B2B) que quieran conectarse al sistema de reservas de algún hotel. Básicamente es un intermediario entre un hotel y una empresa que quiera prestarle servicios que tengan alguna relación con las reservas de ese hotel.
Esta especificación del proyecto no busca que se haga ninguna lógica con la data que Siteminder va a “empujar” a nuestros sistemas, simplemente que se puedan leer todos los campos especificados en el “Maximum Content XML Sample”, luego de eso nosotros nos encargaremos de la lógica de negocios
Especificaciones Técnicas
Header
Tal y como sale especificado en la documentación, se tiene que validar que cualquier input de XML que entre tiene que tener este formato de Header y con esas especificaciones de seguridad exactas. El usuario y contraseña se puede utilizar cualquiera de pruebas para el entregable.
Cuerpo / Body
• Todo xml recibido por el servicio debe aceptar la estructura exacta que aparece en la documentación, en la sección:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/pages/234946685/Maximum+Content+XML+Sample
• Fijarse muy bien que hay clases / campos que pueden venir 1 o varios dentro de uno mismo. Por ejemplo el primero que aparece “Source”:
• Se deben considerar todos los parámetros, tanto como “XMLElementAttribute” (en el punto anterior el campo “ResStatus” sería uno de ellos) como el valor de una de las etiquetas del XML (en el punto anterior sería “CompanyName0” de la etiqueta “CompanyName”) especificados en la documentación.
• Notar que todo XML que se recibe contiene un cuerpo que comienza con “OTA_HotelResNotifRQ” con un objecto de “HotelReservations” adentro de él que es in arreglo del objeto “HotelReservation” y pueden ser N de ellos.
• Notar que toda respuesta debe ser de un objeto “OTA_HotelResNotifRS” con las especificaciones de la documentación. En específico, se deben considerar 2 escenarios:
o Respuesta “success”: lo que aparece acá:
https://siteminder.atlassian.net/wiki/spaces/smxapps/pages/199439075/smx+for+applications+api#smxforapplicationsapi-ota_hotelresnotifrssample
o respuesta con “errors”: lo que aparece acá:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/pages/556367921/Error+Handling
Como se comentó en esta documentación anteriormente, no es necesario que se aplique la lógica de cuándo, porqué y/o cómo se devuelven estos estados de “success” y/o “errors”, sino que simplemente dar un ejemplo de cada uno con las estructuras establecidas.
Project duration 1 to 3 months