martes, 21 de octubre de 2008

Interoperabilidad - Documento Final

Pueden revisar el documento de la investigación Interoperabilidad - Java .NET en sus correos.

Saludos,

Eduardo

Exposicion de WS Security

Estamos pensando en concentrarnos en lo siguiente:

Aunque la exposicion sera de WS-Security, vamos a concentrarnos principalmente en la implementacion con Microsoft WCF.

Durante la exposicion, vamos a presentar como implementar seguridad en un Servicio de WCF basado en Web Services y usando WS-Security en los siguientes escenarios:
  • Como implementar seguridad de mensajes utilizando PKI (PKI, Certificados Digitales).
  • Como implementar firma digital o encripcion de mensajes.
Importante para todos:
Si no estan familiarizados con los terminos:
  • Firma Digital
  • Certificado Digital (X.509)
  • Encripcion asimetrica
  • PKI
Les recomendamos repasar o estudiarlos antes de la exposicion, pues no vamos a cubrir los conceptos teoricos de la teoria o infraestructura de PKI.

- mmorales

Avance de exposicion y algunas dudas con attachments

Como primer punto para la exposicion, la idea era manejar interoperabilidad entre los diferentes tipos de envios como lo son DIME y MTOM. para el primero, tuvimos pruebas satisfactorias de subir archivos y descargar archivos del mismo, pero en el caso de MTOM no he encontrado un ejemplo claro de como enviar archivos entre axis y .net por lo que solo mantendriamos en la exposicion la demostracion de envio pero creo que no podamos hacer la interaccion, por lo pronto solo puedo asegurar que encontre un ejemplo con servicios creados para ambas tecnologias, y como interactuan, pero piden el reemplazo de unos paquetes que aun estoy probando. Si resulta satisfactorio tal vez haremos la demostracion
como ultimo post solo algunas preguntas que hicieron acerca de attachments escritas en este enlace, http://saloon.javaranch.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=51&t=005513
donde se ven algunas interrogantes al manejarlos, cabe recalcar como la primera el como maneja el servidor los archivos temporales que estan involucrados mientras se hace el proceso de transmision del servicio web.

Web Services y Dispositivos Moviles - .Net

He seguido con el testing de consumir Java Web Services en un cliente en .Net compact framework.
Solo he intentado con el paso de hileras y no he tenido mayores problemas.
Espero que montemos el web service final para la exposición para probar con él.

Aplicacion de prueba para web services -cont.

La idea seria usar Axis en el lado del servidor para no complicarse mucho la vida. Publicar metdos basicos de la calculadora: sumar, restar, multiplicar y dividir.

Como se menciono se utilizara JAX-RPC en el lado del Blackberry. En este momento tengo dos emuladores, el del modelo 8120 y el 9000, el BB mas nuevo. Con el simulador MDS se pueden conectar a localhost, donde estan los servicios de Axis.

Tambien investigando el API de Blackberry para presentar la calculadora en el dispositivo decentemente.

Seguridad - Nada que decir

Este titulo es para hacer juego con el anterior post :)
Ayer tuvimos examen del otro curso por lo que se ha echo bastante complicado trabajar en la exposición, si Dios quiere a partir de mañana podremos trabajar fuerte en ella.

Saludos,
Jr

Interoperabilidad - Algo que decir...

Encontre algo que decir, estaba viendo las diferencias entre JAX-RPC y su sucesor JAX-WS. Entre muchas de las interesantes caracteristicas de JAX-WS encontre que incorpora varios lineamientos de WS-I:

WS-I Basic Profile 1.1
WS-I Attachments Profile 1.0
WS-I Simple SOAP Binding Profile 1.0

Lo anterior, hasta cierto punto nos garantiza un mayor grado que interoperabilidad. Seria bueno averiguar si Axis2 tambien esta incorporando estos estandares.

Saludos,

Jose

Interoperabilidad - Exposicion

Nada que decir, hoy exponemos. Tan tan!

Para no terminar mi aporte de forma tan abrupta les cuento que la exposicion basicamente tendra 3 partes bien definidas: Introduccion, WS-I (Basic Profile) & Proyecto Tango, y finalmente un par de ejemplos.

Saludos,

Jose

lunes, 20 de octubre de 2008

Ruby-RoR-Ws

Un resumen bastante bueno para comprender tanto Ruby, como Rails y WS en RoR lo encontramos en:

http://maximilien.org/tutorials/2007/ws_on_rails/Web_Services_on_Rails.ppt

Para el desarrollo en Rails es muy importante el modelo MVC pues dependiendo de la funcionalidad de las clases así serán ubucadas en carpetas. Acordemonos que Rails trabaja bajo el concepto de "Convention over configuration".

a) Para el acceso a BB contamos con ActiveRecords = Object relational mappings

b) Podemos definir un controller de la forma
class ConferenceController < ApplicationController

def index
render_text “Welcome to ConfApp”
end

def list
@conference_page, @conferences = paginate :conferences, :per_page => 10
end
def new
@conference = Conference.new
end

def show
@conference = Conference.find params[:id]
end

#...
end

c) Las vistas se desarrollan con archivos .rhtml que son similares a los jsp y asps. Cada controlador tiene una carpeta para sus vistas.

d) Action Web Services nos proporciona Server-side support para SOAP y XML-RPC Web services. Soporta WSDL (no en su totalidad)

Aplicacion para prueba de webservices

Como parte de la exposicion de dispositivos moviles, se implementara el tipico webservice de Calculadora (que se usa como ejemplo muy comunmente).

Para consumir este servicio se utilizara el API de J2ME soportado por el dispositivo, que incluye una version reducida de jax-rpc. Las pruebas, dado que no tenemos un dispositivo blackberry real, se haran con emulador.

De ser posible, dado que el servicio es en realidad sencillo, puede explorarse la posibilidad de hacer el mismo cliente pero para palm (con el api de .net), o, por que no, con un gateway sms... en este ultimo (y remoto caso), se probaria con un emulador de sms propiamente (logica smpp)

Exposición Web Services con Adjuntos

Dentro de la agenda de exposición como comenta Jeffry hablaremos de MTOM, pero primero hablaremos de la implementación con DIME, en el lado de .NET utilizaremos Visual studio 2003 o 2005 con WSE 2.0, tanto para el server como para el cliente, luego desmostraremos la interoperatividad con Java en Axis (y al igual que en .Net haremos un servidor y un cliente).

Una vez hecho esto migraremos el código con WSE 2.0 a WSE 3.0 usando Visual Studio 2005, con el objetivo de use MTOM y probaremos su funcionabilidad. Una vez hecho probaremos la interoperatividad que como lo comenta Jeffry se ha tenido problemas.

Para el momento de la exposición ya tendremos un mayor avance.

Allan

miércoles, 15 de octubre de 2008

Interoperabilidad

Cuando se habla de interoperabilidad en servicios web, se tiene el concepto de que la simple tarea de poder comunicar dos tecnologías como .Net y Java es suficiente para que haya interoperabilidad entre las partes. Sin embargo muchas de las características más importantes para el cliente no se cumplen.

El proyecto Tango es una iniciativa de Sun para crear Interoperabilidad entre Java y .Net, y se ha utilizado Windows Comunication Foundation, para interactuar con los servicios web en la plataforma de .Net 3.0.

El proyecto Tango enfatiza su trabajo en tres aspectos de suma importancia para el uso de servicios web. Estas tres tecnologías son: Seguridad, Confiabilidad y Transacciones.

El motivo principal de la creación del proyecto Tango se divide en dos puntos muy precisos, los cuales son:
· Una implementación de las especificaciones clave de los servicios web (WS-*). http://wsit.dev.java.net/specification-links.html

· Interoperabilidad con el framework 3.0 de .NET.

martes, 14 de octubre de 2008

WS-I Testing Tools V1.1

Ya en posts anteriores he hecho referencia a la organización WS-I y sus herramientas de verificación de interoperabilidad http://www.ws-i.org/. En resumen, tenemos que los autores del WS-I Basic Profile querían proporcionar una manera sencilla de asegurar la compatibilidad con esta especificación. Así es como crearon un conjunto de herramientas para que los desarrolladores puedan verificar que los artefactos generados fueran conformes al Basic Profile.

Este conjunto de herramientas está conformado por:
- Monitor: intercepta mensajes hacia y desde un servicio Web
- Analizer: inspecciona varios artefactos de servicios Web (incluyendo los mensajes interceptados por la herramienta Monitor)

Es importante mencionar que existen implementaciónes en Java y C# y, como parte de nuestra exposición, nos gustaría mostrar la forma de incorporar y utilizar estas herramientas en nuestros proyectos.

Por ejemplo, a continuación se muestran los pasos para la utilización de la implementación C#.

En primer lugar, descargaremos las herramientas "Interoperability Testing Tools V1.1" de la página del WS-I. En la carpeta "common/profiles" se encuentran los archivos correspondientes para cada perfil. Nosotros vamos a usar el fichero "BasicProfileTestAssertions.xml" para comprobar que cumplimos con el perfil básico.

En la carpeta "cs/bin", editamos el archivo "monitorConfig.xml" para configurar la herramienta de monitorización:
- Con la etiqueta indicamos el puerto en el que la herramienta escuchará las peticiones al servicio web que vamos a comprobar.
- Con la etiqueta indicamos el host y puerto real del servicio web.

Los demás valores podemos dejarlos tal y como vienen por defecto. De esa forma, la herramienta reenviará todos los mensajes recibidos en el puerto indicado en listenPort al host y puerto indicados en schemeAndHostPort y guardará todos estos mensajes en un fichero "tracelog.xml" que usaremos más adelante.

Una vez completada la configuración, ejecutamos la herramienta "monitor.exe" para comenzar a monitorizar.

A continuación tenemos que crear un archivo WSDL modificado para que la URL donde el cliente vaya a buscar el servicio Web se encuentre en el host y puerto donde tenemos escuchando a la herramienta "monitor.exe" en lugar del host y puerto real, por lo demás, el archivo WSDL es igual. La herramienta "monitor.exe" se encargará de redireccionar las peticiónes que reciba al host real que hemos indicado antes en el archivo de configuración y de paso monitorizará todos los mensajes intercambiados en el proceso, que quedarán almacenados en el archivo "tracelog.xml".

Después de alguna llamada al servicio Web que pase a través del monitor ya tendremos unos cuantos mensajes en el archivo de logging, así que podemos cerrar la herramienta de monitorización.

A continuación editamos el archivo"analizerConfig.xml" para configurar la herramienta de análisis:
- Con la etiqueta indicamos el nombre del puerto del servicio Web.
- Con la etiqueta indicamos la dirección del archivo WSDL.

Si dejamos los demás valores tal y como vienen por defecto, la herramienta utilizará los mensajes almacenados en el archivo "tracelog.xml" y el archivo "BasicProfileTestAssertions.xml" para hacer las pruebas.

Finalmente ejecutamos la herramienta "Analyzer.exe" para conseguir el archivo "report.xml" que contiene los resultados de los tests.

Saludos,

Eduardo

Exposicion: Posibles caracteristicas a Comparar.

Para tratar de comparar estos Frameworks, open source que soportan web service en php se debe tratar de compara la facilidad de programacion, instalacion, uso, entre otros aspectos basicos, pero comparar caracteristicas especiales es importate, para ello podemos buscar que caracteristicas especiales nos ofrecen:

El WSO2 para php cuanta con la siguiente pagina con caracteristicas especiales:
http://wso2.org/project/wsf/php/2.0.0/docs/features.html

Mientras que al buscar para NuSoap esto fue una de las pocas cosas encontradas:
http://phpwebservices.blogspot.com/2008/01/nusoap-feature-list.html

El hecho que aparentemente sea mas sencillo puede ser ampliamente compensado con un excelente desempeno en las caracteristicas basicas.

Webservices ASP.NET 3.5 AJAX

Este articulo explica como usar webservices en ASP.NET 3.5 en ambiente AJAX y como llamar un servicio web del lado del cliente.

http://www.codedigest.com/Articles/ASPNET/52_ASPNET_35_AJAX_and_WebServices__.aspx

Exposición: algunos detalles de los servicios a implementar

Para la exposición se planea crear una serie de servicios utilizando los diferentes frameworks escogidos para trabajo con Web Services en PHP. Para facilidad de pruebas y para una mejor comprensión del código que se presentará, se decidió hacer una clase base que contiene 3 métodos que se van a publicar como servicios. Esto nos permitiría, además, hacer pruebas de "interoperabilidad" entre los diferentes frameworks.

El código de la clase es el siguiente:




abstract class DateWebService{

protected function getDateString(){
return date("H:i:s, l F d Y");
}

protected function getDateStruct(){
$dateStruct;
$dateStruct['time'] = date("H:i:s");
$dateStruct['date'] = date("F d Y");
$dateStruct['dayofweek'] = date("l");
return $dateStruct;
}

protected function getDayOfTheWeek($day, $month, $year){
$timestamp = mktime(0,0,0,$month,$day,$year);
if($timestamp == false){
return false;
}
else{
return date("l", $timestamp);
}
}


}

?>

Se pretende así tener una base de un método que sólo devuelva un tipo simple (string), uno que devuelva algo más complejo (arreglo), y uno que reciba parámetros.

Si no se pudiera publicar los métodos de una clase, se recurriría a hacer una función con la misma implementación.

Seguridad Web Services Exposicion

Todo bien,
Lastimosamente no he tenido chanse de trabajar en la exposicion esta semana.
Hasta el momento lo que se tiene definido es hacer dos pequeños demos, utilizando Visual Studio 2005 y 2008 Team System Edition.

Se esta pensando en usar maquinas virtuales para correr las aplicaciones en dos maquinas en la misma maquina fisica; pero aun no se tiene completamente definido, la otra opcion es tener un par de laptops y montar el demo entre ellas.

Saludos,
jr

Temas iniciales de la exposicion

Para la exposicion se desea mostrar los diferentes tipos de attachments, entre los que recalcamos mime, dime, mtom, para la demostracion en la exposicion, la interoperabilidad entre java .net para los protocolos mime y dime funcionan perfectamente, pero para el caso de mtom, presenta especificaciones especiales que pueden hacer que los servicios no tengan interoperabilidad, en parte se debe a lo reciente del protocolo mtom, por lo pronto en esta pagina encontramos un ejemplo de codigo de mtom, ya que esta hecho en apache axis2 mostraremos una forma de motarlo facilmente, ya que la exposicion esta orientada mas a attachments mas que a tecnologias.


Codigo de MTOM
http://www.java2s.com/Open-Source/Java/Web-Services-Tools/Axis2/AXIS2-Examples/mtom/Catalogmtom.htm

Breve intro a Ruby y RoR

Como parte de nuestra exposición presentaremos una breve introducción a Ruby y RoR. A continuación un extarcto de dicha sección.

Ruby:
- Creado por Yukihiro "Matz" Matsumoto, liberado en 1995.
- Es gratis.
- Lenguaje orientado a objetos, interpretado, reflexivo.
- Gramática compleja pero muy expresiva.
- Las variables son de tipo dinámico.
- Posee una biblioteca “core” y un poderoso API.
- Case sensitive.

Se puede bajar Ruby de http://www.ruby-lang.org/es/
La instalación contiene ejecutables (interprete y otras herramientas), bibliotecas, Gems (el administrador de actualizaciones y nuevas herramientas), los fuentes de Ruby y ejemplos.
Con Ruby instalado creamos un ejemplo creando una clase en el archivo Test.rb

#Una clase
class Persona
#Constructor
def initialize (nombre, apellido)
#Con @ variables de instancia
@nombre = nombre
@apellido = apellido
end
#Metodo
def saludar
puts("Hola, yo soy #{@nombre} #{@apellido}")
end

end

#Herencia con '<'
class Juan < Persona
#Constantes en MAYUSCULA
SEXO = "Masculino"

def initialize (edad)
super("Juan", "Perez")
@edad = edad
end
#métodos de acceso
attr_reader :SEXO #get
attr_accessor :edad #get y set

end

juan = Juan.new(20)
juan.saludar()
puts("Tengo #{juan.edad} años y mi sexo es #{juan.SEXO}")


Se ejecuta el comando >Ruby Test.rb
Hola, yo soy Juan Perez
Tengo 20 años y mi sexo es Masculino


Un buen tutorial se encuentra en la página http://rubytutorial.wikidot.com/

Ruby on Rails (ROR):
- Framework para desarrollar aplicaciones web con base de datos en lenguaje Ruby (http://www.rubyonrails.org.es/).
- Es Gratis.
- Estructura las aplicaciones bajo el patrón Model-View-Controller.
- Herramientas como InstantRails ya traen un ambiente ROR integrado con un servidor web y un motor de base de datos
- La estructura runtime de aplicaciones de RoR es:

README #Información de la instalación y uso
Rakefile #Script para conrtruir
app/ #Archivos de model, view, and controller van acá.
app/controllers
app/helpers
app/models
app/views/layouts
components/ #Componentes reutilizables
config/ #Configuration and database connection parameters.
db/ #Schema and migration information.
doc/ #Documentacion autogenerada
lib/ #Bibliotecas compartidas
log/ #Log de la aplicación
public/ #La aplicación corre desde acá. Acceso público.
script/ #Scripts utilitarios.
test/ #Diferentes test
tmp/ #Archivos temporales de runtime.
vendor/ #Código importado.

lunes, 13 de octubre de 2008

WS en un Blackberry

La idea para la exposición es incluir un ejemplo de un cliente consumiendo un Web Service en un simulador de Blackberry.

Para empezar a jugar con el desarrollo en BB descargué el Blackberry JDE 4.3.0, que funciona con Java 1.5. El JDE incluye un simulador para el modelo 8120, y además bajé un simulador para el modelo más reciente, el 9000. Importante destacar que para acceder a Internet desde el dispositivo simulado hay que correr un simulador de servicios MDS (incluido en el JDE o también puede bajarse por aparte). Este simulador arranca una especie de versión modificada de tomcat para RIM, que escucha en el puerto 8080.

El JDE trae varios ejemplos de aplicaciones, entre ellas un clásico Hello World. Estas permiten ver un poco como funciona el API de RIM para sus dispositivos.

Ahora para el desarrollo de un cliente que pueda consumir Web Services en el BB se utiliza el J2ME WS API soportado por el dispositivo. J2ME incluye una versión reducida de JAX-RPC que permite desarrollar clientes de WS.

El cliente de WS en el Blackberry se desarrollará basándose en estos dos artículos:

http://developers.sun.com/mobility/apis/articles/wsa/
http://developers.sun.com/mobility/midp/articles/webservices/

Acerca de la presentación de web services con adjuntos

En cuanto a la demostración de código en .net usando DIME, nos basaremos en el siguiente artículo:
How to: Add Attachments to a SOAP Message by Using DIME
http://msdn.microsoft.com/en-us/library/ms824597.aspx

Para luego demostrar como podemos usar MTOM (Y nos basaremos en este artículo)
How to: Migrate Code that Uses DIME Attachments to Use MTOM
http://msdn.microsoft.com/en-us/library/aa529283.aspx

La idea es crear un servidor web en .Net y en Java que permita recibir y enviar archivos de imágenes y con un método que entregue la lista de archivos disponibles.

Y además crear un cliente en .Net y en Java que consuma dichos servicios sin importar si son implementados en .Net o en Java

Saludos

Interoperabilidad

Con respecto a esta publicacion se puede decir que se tiene el proyecto Tango de Sun para hacer una arquitectura compatible con el framwork 3.0 de .NET, y como esto va a ir evolucionando hacia el 3.5 y continuar mejorandolo.

Aqui se muestra la participacion de SUN con el proyecto Tango en el plug fest de interoperabilidad de microsoft.

http://blogs.sun.com/arungupta/tags/plugfest

martes, 7 de octubre de 2008

Interoperabilidad

En este articulo se presenta como se puede definir una arquitectura para interoperabilidad sin caer en problemas o tropiezos.

http://www.sei.cmu.edu/isis/guide/engineering/architectures.htm

http://www.soa.com/index.php/section/solutions/interoperability/

Este trata interoperabilidad mas aterrizado a Java y .Net con servicios.

http://www.infoq.com/articles/REST-INTEROP

Detalles sobre exposicion de SOA y PHP

Para profundizar sobre lo que expuso el compañero Christopher, para la investigación sobre SOA y PHP el plan es implementar una serie de servicios y consumidores en PHP, y además, hacer algunas pruebas de interoperabilidad con clientes y servicios escritos en otros lenguajes.

Las tecnologías a utilizar son:
La exposición tratará de exponer las principales características de cada uno de estos frameworks, de una manera comparativa. También, resultaría importante una explicación sobre el proceso de instalación de las mismas en el contexto de un PHP ya instalado.

En cuanto a prática, la idea es escribir servicios simples que ilustren las capacidades particulares de cada framework. Por ejemplo, WSO2 es el único de los frameworks seleccionados que soporta -según los features en su website- el uso de attachments, por lo tanto sería ideal ilustrar dicha funcionalidad.

Una posibilidad sería tratar de integrar los clientes y servicios empleados en los laboratorios del curso como una prueba de interoperabilidad. .NET debería ser otra plataforma a considerar para dichas pruebas.

Interoperabilidad - Exposición

Nos gustaría introducir el tema de interoperabilidad Java .NET con un repaso de los desafios que enfrentan los negocios hoy en día y hacen necesaria la interoperabilidad e integración de sistemas heterogéneos.

A continuación, una descripción breve de las diferentes tecnologías que permiten la interoperabilidad entre las plataformas Java y .NET. Recordemos que web services es únicamente una de las muchas tecnologías existentes.

A partir de este punto, la investigación se enfoca en web services. Existen dos metodologías de integración que necesitamos explorar:
- Sincrónica
- Asincrónica

Para cada una de las anteriores, se hará una descripción de los detalles de implementación de web services en ambas plataformas Java y .NET, los patrones de diseño conocidos, ejemplos, mejores prácticas, etc. Asímismo, vamos a estudiar las recomendaciones propuestas por la organización WS-I y utilizaremos la aplicación de ejemplo Supply Chain Management.

Por último, debemos cubrir lo relacionado con los requerimientos de calidad de servicio e.g. seguridad, confiabilidad, escalabilidad. Para esto, estudiaremos el Project Tango.

Entre las fuentes bibliográficas consultadas, debemos resaltar las siguientes:
- Java EE and .Net Interoperability: Integration Strategies, Patterns, and Best Practices por Marina Fisher, Ray Lai, Sonu Sharma, Laurence Moroney
- SOA Cookbook por Eben Hewitt

Saludos,

Eduardo

DataHandler para attachments

Para el envio de archivos por web, se utliza ahora en java una clase llamada Datahandler, que vienen en el paquete de javax.activation, una pequeña explicacion viene en este enlace de ibm. http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=/com.ibm.wbia_developer.doc/doc/data_handler/datahand21.htm

en si mismo consta de una clase que encapsula que presenta la interfase basica de envio de archivos en cualquie protocolo ya sea jms, http, o por correo. esta es la base para el envio de archivos por web en cualquier tecnologia java, mas abajo seria enviar arreglos de bytes. es usado principalmente por por la api de javamail. pero ha sido adaptado a las diferentes tecnologias que envian archivos como axis y jax-rpc. un breve ejemplo de codigo es el siguiente

MessageContext msgContext = MessageContext.getCurrentContext();
Message rspmsg = msgContext.getResponseMessage()
File archivo =new File("c:/nana/"+dh.getName());
rspmsg.getAttachmentsImpl().setSendType(org.apache.axis.attachments.Attachments.SEND_TYPE_MIME);

dh = new DataHandler(new FileDataSource(archivo));
rspmsg.getAttachmentsImpl().addAttachments(new Attachments(dh));


Aunque la operabilidad de los protocolos MIME, DIME o MTOM depende principalmente de la tecnologia, la parte que codifica los archivos para que se puedan enviar pertence a esta clase sin importar protocolo o tecnologia.

Puntos importantes en PHP WebServices

Para tratar el tema de Web Services en PHP, debemos en primera instancia dar una pequena introduccion del soporte de PHP para crear Web Services, para esto se poseen plataformas externas y tambien soporte propietario apartir de php 5, asi que lo recomendable es discutir y dar una breve demostracion de al menos 2 plataformas y del soporte de php 5.

Tambien es importante probar la interoperabilidad entre web services php y clientes en java y .net, que son las plataformas de desarrollo mas populares.

Tocando estos puntos podriamos crearnos un concepto y una opinion acerca de los Web Services en php.

Exposicion de attachments

agregando acerca de lo que expone el compañero allan, http://soa-ucr.blogspot.com/2008/10/presentacin-de-servicios-web-con.html. las tecnologías java en las que nos centramos principalmente son Axis 1.1 y 1.2, aunque no nesesariamente vamos a explicar axis2, este lo incluimos para ver el estandar de envio MTOM en java. ya que la version 1 de axis no la soporta como pusimos en versiones anteriores y en axis2 descartaron el estandar DIME.
por lo demas la idea es correrlos un cliente y servidor desarrollados en la misma tecnologia y despues hacer una interoperabilidad entre ellos.

WS y Disp. Moviles

Segui el tutorial que habia posteado en agosto. Con algunos cambios (el tuturial es viejo) pude correr un web service sencillo en mi maquina y consumirlo en el Windows Device Emulator que viene con VS .net.
Todo es sencillo al mejor estilo .Net. Ahora queda tratar de consumir un java web service.

WS Security

Profe nosotros lo que estamos pensando es hacer un demo de WCF y mostrar dos formas de hacer la comunicación segura; hasta el momento eso es lo que hemos pensado, estamos investigando sobre WCF para familiarizarnos con la tecnologia para implementar un demo.

saludos,
jr

lunes, 6 de octubre de 2008

WS en tecnologias emergentes

Saludos

Para nuestra exposición los temas a tratar serán:
- Una muy breve introducción a Ruby como lenguaje OO
- Una introducción a RoR como framework de desarrollo de aplicaciones Web (modelo y filosofía de programación)
- Clientes de WS en Ruby: Programación (Probablemente en NetBeans, sino RadRails) e instalación en WebServers Mongrel con InstantRails
- Servidores de WS en Ruby Programación (Probablemente en NetBeans, sino RadRails) e instalación en WebServers Mongrel con InstantRails
- Interoperabilidad de nuestros clientes y servidores de WS en Ruby con WS en otras tecnologías
- Ajax para consumir WS.

Casi definitivamente Scala queda fuera de nuestro alcante, por que hay muy poca documentación y consideramos que con la agenda antes mencionada ya ocupamos el tiempo que tenemos para exponer.

Aparecen novedosas para desarrollar en RoR, Rad rails es una de ellas y es un IDE para programación para RoR Basado en Eclipse: http://www.aptana.com/rails

Blackberry WS -Entorno a utilizar.

Como se ha hablado en posts anteriores RIM provee varias herramientas de desarrollo para Blackberry en su sitio. Este link presenta las herramientas recomendadas o requeridas dependiendo del tipo de aplicación que se desee desarrollar:

http://na.blackberry.com/eng/developers/started/tools.jsp

Como se puede ver ahi existe un apartado específico sobre Web Services. El problema en este caso es que se requiere el MDS Studio, un ambiente de desarrollo propietario de RIM para Blackberry WS. Si bien el MDS studio es descargable, requiere del BlackBerry Enterprise Server para poder hacer deploy de este tipo de servicios, y éste no es gratis. Esto también limita los WS a una solución propietaria. Probablemente sólo pocos ambientes empresariales específicos utilizarían BB Enterprise Server, mientras que la mayoría de WS disponibles en Internet estan siendo deployeados en contenedores estándar como Tomcat esperando ser consumidos.

Por esto en este caso utilizaremos las herramientas requeridas para desarrollar programas "Cliente" según esa tabla. La herramienta es el entorno Blackberry JDE, que debería permitirnos utilizar código Java. Esperamos con esto ser capaces de crear un programa cliente capaz de consumir Web Services deployeados en un Tomcat común y corriente, y también hacer pruebas con WS disponibles en la red.

El programa simulador de Blackberry está disponible gratis y se utilizará para simular correr el programa cliente en el dispositivo mismo.

Interoperabilidad - Presentacion / Ejemplos

Dada la cercania de la fecha de la presentacion de Interoperabilidad de WebServices (Java - .NET), quisiera aprovechar este espacio para publicar un par de direcciones sobre las cuales es muy probable que nos basemos para los ejemplos que utilizaremos en clase:

http://www.developerfusion.com/article/4694/web-services-interoperability-between-j2ee-and-net-part-1/

http://www.cs.helsinki.fi/u/mlaanti/WSInterop.html

http://www.c-sharpcorner.com/UploadFile/ankithakur/WSIntegration02132006041221AM/WSIntegration.aspx?ArticleID=a0966837-4a15-4091-b6a7-a751ed3ada85

http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=178

http://netbeans.dzone.com/news/advanced-web-service-interoper

Esta direccion tiene una serie de recursos importantes no solo para lo que es interoperabilidad sino para webservices en general:

http://www.javapassion.com/webservices/

Nuevos Recursos de Interoperabilidad .NET - Java

El siguiente articulo da una pincelada a un par de recursos nuevos relacionados a tecnologias que recientemente han sido publicadas.

Nos referimos a WCF para el caso de .NET y WebSphere MQ (WMQ) y ActiveMQ para Java/Axis.



http://www.infoq.com/news/2008/03/wmq-activemq-interop

Saludos,

Jose

ROR y .NET

Para nuestra exposición, se haran esfuerzos para mostrar como crear y consumir WebService En ROR y Ajax, ademas como trabajan con .NET y JAVA...

Mi compañero ampliará mas sobre que se podrá ver y explicar en el trabajo.


Por otra parte esta artículo explica como consumir desde ROR un webservice en .NET, craqndo un objeto llamado @security que contiene el precio y la descripción de un articulo en stock, para poder guardarlo en otro registro.


http://webgambit.com/blog/calling-a-net-web-service-from-rails-original/

miércoles, 1 de octubre de 2008

Presentación de servicios web con adjuntos

Para la presentación pensamos tocar los siguientes temas:

+ Introducción se servicios web con adjuntos (delimitación y alcance - .net y axis)
+ Tecnologías existentes (MIME, DIME, MTOM)
+ Comparaciones entre tecnologías
+ Presentación en código de un servicio web y su respectivo cliente en .net
+ Presentación en código de un servicio web y su respectivo cliente en java usando axis
+ Interoperatividad entre aplicaciones

Saludos, Allan