martes, 21 de octubre de 2008
Interoperabilidad - Documento Final
Saludos,
Eduardo
Exposicion de WS Security
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.
Si no estan familiarizados con los terminos:
- Firma Digital
- Certificado Digital (X.509)
- Encripcion asimetrica
- PKI
- mmorales
Avance de exposicion y algunas dudas con attachments
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
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.
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
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...
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
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
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
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
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
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
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
- Con la etiqueta
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
- Con la etiqueta
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.
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
http://www.codedigest.com/Articles/ASPNET/52_ASPNET_35_AJAX_and_WebServices__.aspx
Exposición: algunos detalles de los servicios a implementar
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
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
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
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
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
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
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
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
Las tecnologías a utilizar son:
- NuSOAP (http://sourceforge.net/projects/nusoap/)
- PHP-SOAP (www.php.net):
- WSO2 par PHP (wso2.org/projects/wsf/php):
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
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
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
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
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
Todo es sencillo al mejor estilo .Net. Ahora queda tratar de consumir un java web service.
WS Security
saludos,
jr
lunes, 6 de octubre de 2008
WS en tecnologias emergentes
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.
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
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
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
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
+ 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
martes, 30 de septiembre de 2008
Construyendo WebService with attachmente interoperables
Building Interoperable Web Services With Attachment Support Using JAXRPC 1.1.2
https://jax-rpc.dev.java.net/whitepaper/1.1.2/attachments-howto.html
Allan
Consumir webservice en .NET con ROR
http://wiki.rubyonrails.org/rails/pages/How+To+Consume+.NET+WebServices
Esta presentacion muestra un repaso por lo ruby y ROR muy interesante
http://maximilien.org/tutorials/2007/ws_on_rails/Web_Services_on_Rails.ppt
SDO y PHP
http://www.osoa.org/display/PHP/SDO+with+PHP
SDO es Service Data Objects, y esta implementación permite accesar a diversas fuentes heterogéneas de datos mediante clases en PHP que permiten la abstracción de las mismas. Dada la diversidad de posibles fuentes de datos en un ambiente SOA empresarial, iniciativas como estas son relevantes para migraciones a estas arquitecturas.
SAAJ Standard Implementation
Link al website de SAAJ.
Link al Tutorial.
ws para android
Viendo el codigo, es realmente simple. Aunque no es un "web service" propiamente dicho, permite acceder un documento xml en un web server. Puede verse que el parsing del xml esta hecho "a pata". Si se encontraran disponibles las librerias de jwsdp, posiblemente se podria hacer algo similar a lo del laboratorio 1.
codigo
INTEROPERABILIDAD
www.3ersector.org.mx/index2.php?option=com_content&do_pdf=1&id=5578
www.microsoft.com/spain/interop/developers/Java.mspx
jaime.cid.googlepages.com/JC_SOA_CercleFiber_20070626.ppt
www.mkm-pi.com/mkmpi.php?page=article_pdf&id_article=1843
WSE - Web Services Enhancements for .NET
Para el caso de .NET, existen los WSE (Web Service Enhancements) que permiten extender las habilidades de los web services que implementamos agregando seguridad, attachements, WS-routing, etc
WSE 3.0 Download Page
WCF es compatible con WSE3... asi que no hay que estresarse por escoger WSE solo porque es un poco "mas viejito" :)
SOAP y PHP
http://www.sitepoint.com/article/own-web-service-php-xml-rpc/
http://www.ferdychristant.com/blog/articles/DOMM-6J2QFF
http://cr.php.net/soap
http://www.onlamp.com/pub/a/php/2003/10/30/amazon_rest.html
Que son enfocadas a PHP.
Axis2 MTOM file download web service
Attachments
Feature | Axis 1.x | Axis2 | CXF | Glue | JBossWS | XFire | Metro@GlassFish | OracleAS 10g |
Soap w/ Attachments | X | X | X | X | X |
| X | X |
DIME | X |
|
| X |
|
|
| X |
MTOM |
| X | X |
| X | X | X | X |
Public Key Infraestructure (PKI)
PKI Security
Saludos.
Tips de WS en Ruby y WS en diferentes Paradigmas
http://wiki.rubyonrails.org/rails/pages/How+To+Consume+.NET+WebServices
Un artículo con información para crear WS en ruby basados en los diferentes paradigmas REST, en SOAP y en XML-RPX
http://www.devx.com/enterprise/Article/28101/0/page/3
lunes, 29 de septiembre de 2008
Interoperabilidad: Java EE & .NET
http://developers.sun.com/learning/javaoneonline/2006/webtier/TS-4611.pdf
Saludos,
Eduardo
domingo, 28 de septiembre de 2008
Mobile Web Service - Yahoo! Blueprint.
El ambiente permite crear aplicaciones que pueden consumir web services de manera sencilla simplemente definiendo un esquema de la aplicación y ocultando el "binding" de los datos
El gran atractivo de este sistema es poder desarrollar aplicaciones que son compatibles con diferentes ambientes como Windos Mobile, Java y Symbian.
http://mobile.yahoo.com/developers
http://developer.yahoo.com/mobile/
Doc
martes, 23 de septiembre de 2008
Interoperabilidad - Tutorial Eclipse
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.jst.ws.doc.user/concepts/cwsiover.html
Saludos,
Eduardo
Web Services Security Policy Language (WS-SecurityPolicy)
Entre otras cosas esta especificación abarca SOAP Message Security, WS-Trust and WS-SecureConversation.
Archivo pdf
Introducción a MTOM
Introduction to MTOM: A Hands-on Approach
Learn how to use MTOM by building a simple prototype
http://www.crosschecknet.com/intro_to_mtom.php
Allan
Mobile WS Agent Based Framework
Ellos proponen el uso de portales de red que eliminen el procesamiento XML en los dispositivos, y utilizan agentes inteligentes que pueden moverse a traves de la red para realizar el procesamiento.
http://dsonline.computer.org/portal/site/dsonline/menuitem.6dd2a408dbe4a94be487e0606bcd45f3/index.jsp?&pName=dso_level1_article&TheCat=1005&path=dsonline/2006/06&file=w3bener.xml&;jsessionid=LZVK5lZLR0bfLkgLsyLQQ55JNmTNVn1n5TkLjyJgC2nKppZ1ztyC!2136579355
NuSOAP para PHP5
En este link se puede encontrar una implementacion de NuSOAP para PHP5.
http://code.google.com/p/nusoap-for-php5/downloads/list
Este release es importante en caso de que, por ejemplo, uno tenga codigo con NuSOAP y quiera hacer un upgrade a PHP5.
Interoperabilidad PHP WS - .Net
La mayoría de los datos básicos son fácilmente interpretados y procesados en ambas tecnologías, el crear un web Service en .Net que tenga un cliente php es más sencillo que crear un Web Service en php que tenga un cliente en .Net, ya que .Net autogenera el WSDL, mientras en php nos toca crear el WSDL.
Cuando se están trabajando tipos de datos complejos la tarea se torna más difícil ya que crear el WSDL correcto para un cliente en .Net de un Web Service en php puede ser algo engorroso pero no imposible.
Algunas ejemplos de esta interoperabilidad:
http://www.sanity-free.org/125/php_webservices_and_csharp_dotnet_soap_clients.html
http://blogs.digitss.com/php/my-experiences-with-soap-web-service-php-vs-net/
http://arsenalist.com/2007/01/19/php-client-for-web-services/
ASP.NET AJAX
-presentación basada en estándares usando XHTML y CSS
-exhibición e interacción dinámicas usando el Document Object Model;
-Intercambio y manipulación de datos usando XML and XSLT;
-Recuperación de datos asincrónica usando XMLHttpRequest;
-y JavaScript poniendo todo junto.
Tal vez unas de las razones por las que ajax se ha hecho tan famoso es po que Google está haciendo una significativa inversión en el acercamiento Ajax. Todos los grandes productos que Google ha introducido como Orkut, Gmail, la última versión de Google Groups, Google Suggest, y Google Maps son aplicaciones Ajax.
Estos trozos son rescatados de un artículo publicado por Jesse James Garrett.
http://adaptivepath.com/ideas/essays/archives/000385.php
También les dejo una explicación muy detallada de cómo utilizar un webservice con ASP.NET AJAX
http://www.developer.com/net/asp/article.php/10917_3657826_1
HHFR
La arquitectura propuesta, Handheld Flexible Representation (HHFR), propone optimizar los contenidos del mensaje SOAP de una manera optima. Pretenden separar los tipos de datos en el cuerpo del mensaje SOAP para representarlos optimamente de manera binaria, integrandose con el estandar actual. Se utilizan mensajes SOAP para negociar el formato del transporte optimizado. Si el endpoint no es compatible con HHFR, se realiza un fallback al SOAP convencional.
Los benchmarks realizados por el grupo de investigacion muestran mejoras de desempeño considerables midiendo el RTT de mensajes, en especial en comunicaciones prolongadas.
A pesar de que es una investigacion inicial, y no un estandar, es un paso hacia mejoras de desempeño considerables.
Documento
.Net Security New Apps
Sharing Security for Developers Industrywide
Esto no esta estrictamente relacionado con Web Services pero si con el desarrollo de aplicaciones en general que al final pueden ser expuestas mediante Web Services.
lunes, 22 de septiembre de 2008
Ajax on Rails
http://www.onlamp.com/pub/a/onlamp/2005/06/09/rails_ajax.html
Que nos explica un ejemplo de como se puede implementar Ajax en Rails. Es un poco viejo pero es un buen inicio. La forma más sencilla de implementar Ajax en Rails es por medio de las bibliotecas que ofrece Rails.
Un metodo versatil es "link_to_remote()" que usa tres parámetros:
- El texto a mostrar (recibe el evento que activa el js)
- El id del elemento DOM que contiene el contenido a reeemplazar
- El URL del action a invovcart del lado del servidor
Un ejemplo de fuentes dende el action se llama "say_when":
<html>
<head>
<title>Ajax Demo</title>
<%= javascript_include_tag "prototype" %>
</head>
<body>
<h1>What time is it?</h1>
<div id="time_div">
I don't have the time, but
<%= link_to_remote( "click here",
:update => "time_div",
:url =>{ :action => :say_when }) %>
and I will look it up.
</div>
</body>
</html>
La idea es tratar de incorporar este conocimiento para invocar WS de Ruby desde Ajax al estilo Ruby... vamos a ver como nos va =D
Interoperabilidad - Running Naked!
Mientras mucha gente intenta resolver el problema de incompatibilidad entre primitivas, y formas propias de cada lenguaje, el autor de este articulo plantea la posibilidad de generar codigo que sea ejecutable indistintamente de la plataforma.
Si se preguntan como, aca esta la respuesta:
http://tssblog.blogs.techtarget.com/2007/10/10/to-run-unmodified-on-java-or-net/
Mi opinion general, despues de leido este articulo: considero que la idea esta tan loca que vale la pena probarla, al menos por simple diversion. Sin embargo, creo que el autor viene a dar una idea nueva como solucion de este problema, proporcionando un punto de vista diferente al comun.
Saludos,
Jose
Interoperabilidad .Net / Java - User Defined Exceptions
El siguiente articulo menciona una posible solucion a este problema en caso de que nos lo topemos en un futuro:
http://blog.tomaselfving.com/2008/05/javanet-web-service-interoperability.html
Saludos,
Jose
domingo, 21 de septiembre de 2008
Interoperabilidad
El primer link es como una nueva compracion de .net con el j2ee. Aqui se presenta mayor comparación entre tecnologías teniendo en cuenta aspectos de webservices.
www.fing.edu.uy/inco/pedeciba/bibliote/reptec/TR0208.pdf
Por su lado el siguiente link presenta algunas ventajas de Java y las mejoras para interoperabilidad.
http://www.estudiagratis.com/cursos-gratis-online-Interoperabilidad-Web-Services-Enhancements-1-0-Java-curso-26321.html
martes, 16 de septiembre de 2008
Web Service Security Guide
Link para hacer download de la guia
Opciones para intercambio de archivos
http://tugdualgrall.blogspot.com/2007/12/web-services-and-files-exchange.html, hace un breve resumen de las formas de enviar archivos entre las tecnologias que estan en el mercado. el mismo hace una pequeña descripcion de las formas como son
- XML Base64 encoding
- SOAP With Attachment (SwA) using MIME (Multipurpose Internet Mail Extensions)
SOAP With Attachment using DIME (Direct Internet Message Encapsulation)- Message Transmission Optimization Mechanism (MTOM)
Artículos sobre AJAX y RUBY
http://www.informationweek.com.mx/articulo-59-6490-373.html
Otro artículo interesante donde James Gosling resalta la interoperabilidad de JAVA y RUBY, además menciona un poco sobre AJAX.
http://searchsoa.techtarget.com/news/interview/0,289202,sid26_gci1215525,00.html
Es importante resaltar que estos artículos son muy viejos en dos años RUBY y AJAX han mejorado pero nunca esta demás saber un poco de historia…
Seguridad más...
The Future of Web Services Security: A Conversation with Eve Maler
Interoperabilidad PHP WS - Java
Algunos artículos donde se comentan errores son:
http://www.zoe.vc/2007/webservice-mit-php-server-und-java-client/?lan=english
http://forums.devshed.com/php-development-5/web-service-java-client-and-php-server-complex-data-types-548000.html
http://synodinos.net/2007/08/02/web-services-interoperability-fable-with-java-and-php/
Por lo tanto es recomendable probar previamente la correcta interpretación de ambos lenguajes del tipo de datos que se desea enviar-recibir, o utilizar solo tipos de datos básicos.
Diferencias entre diferentes frameworks de Web Services de PHP
PHP5 SOAP:
- Extensión nativa de PHP5
- La implementación más rápida
- Soporta SOAP 1.1 y 1.2, WSDL 1.1
- EL WSDL debe ser creado manualmente
- Puede ser usado en PHP4
- Depende de extensiones PEAR
- Escrito en PHP
- Escrito en PHP, funciona en PHP4
- El WSDL es generado "on the fly".
- Hay problemas de choques de clases con PHP5
Interoperabilidad - Caso de estudio
http://www.ibm.com/developerworks/webservices/library/ws-soa-intersoap/index.html
Saludos,
Eduardo
Migrar código que usa DIME para enviar attachments a WSE3.0 con MTOM
Artículo: "How to: Migrate Code that Uses DIME Attachments to Use MTOM"
link: http://msdn.microsoft.com/en-us/library/aa529283.aspx
Allan
lunes, 15 de septiembre de 2008
Ajax en Java WebServices y Framework de WS de Scala
http://www.ibm.com/developerworks/webservices/library/ws-wsajax/
Hay un framework para desarrollo web en Scala, aparentemente el más aceptado, sin embargo no está bien documentado. Vale recordar que es un lenguaje muy nuevo.
http://liftweb.net/index.php/Main_Page
Web Services y Dispositivos Móviles - MobiLink
El siguiente articulo muestra un ejemplo sencillo de su utilización.
http://www.codeproject.com/KB/webservices/Mobilizing_Web_Services.aspx
Seguridad en Web services para dispositivos móviles
Los dispositivos móoviles, dada la particularidad de que transmiten datos sobre redes públicas (y al aire), son susceptibles a diversos ataques que comprometen la seguridad de los datos. Agregar un esquema de criptografía, y por ende agregar "peso" a los paquetes transmitidos (ya sea aumentando el tamaño o el tiempo de procesamiento), comprometen la calidad del servicio.
Aquí, Blackberry Enterprise Services ofrece la estructura necesaria para establecer una comunicación segura entre el dispositivo móvil y el servidor, valiéndose de tecnologías de encriptado y transporte similares a los encontrados en VPNs. Además, aprovecha la tecnología del push, para optimizar la experiencia del usuario.
Sin embargo, ya un dispositivo celular normal no tiene mucho que hacer contra uno como el expuesto en el artículo. La seguridad en dispositivos celulares (de un rango de precios más bajo) sigue siendo un problema abierto.
Mas Informacion
Interoperabilidad
http://www.desarrolloweb.com/articulos/958.php
Este segundo link es el mas directo que he encontrado referente al tema de interoperabilidad de java con .net en servicios web, este es un documento completo que realiza la comparación entre las dos tecnologías.
http://es.geocities.com/ntx_puntonet/ComparandoJ2EE.doc
sábado, 13 de septiembre de 2008
Mobile WS -Aplicacion
martes, 9 de septiembre de 2008
Palm -
A pesar de eser un ambiente simple de desarollo, El Garnet O.S sdk tiene un buena cantidad de librerias definidas para networking (incluido web services).
en el sitio de palm develpmente network se puede obtener este sdk. Para facilidad, se instala el IDE Eclipse modificado para utilizar un gcc modificado para producir binarios para el Palm O.S. Tambien se instalan emuladores de palm para prueba.
WSS en .NET... pero NO con WCF :)
Interoperabilidad - Testing
El siguiente articulo nos muestra una serie de pasos a seguir para validar la interoperabilidad de nuestro WSDL. Realmente el contenido del articulo es basico, pero seria lo minimo a hacer para asegurarnos la interoperabilidad entre plataformas.
http://www.exforsys.com/tutorials/sws/validating-interoperable-wsdl.html
Testing tools?
Ya existen una serie de herramientas que podemos utilizar para hacer nuestras validaciones:
- http://www.ws-i.org/deliverables/workinggroup.aspx?wg=testingtools
- http://www.developers.net/ibmshowcase/view/2841
Saludos,
Jose
Fortify
El articulo esta bien interesante.
Fortify 360
NuSOAP y algunas funciones de seguridad
Si existe un Web Service que requiera autenticación HTTP, se puede utilizar la función setCredentials, como en el siguiente código:
$consumidor = new soapclient('http://serviciophp.com/servicios/servicio.php');
$consumidor->setCredentials('user', 'password');
También se puede acceder a un servicio que esté publicado a través de HTTPS, inicializando el soapclient de manera simiar:
$consumidor = new soapclient('https://serviciophp.com/servicios/servicio_https.php');
No obstante, es necesario instalar la extensión CURL de PHP para poder ejecutar este código con éxito.
Fuente: Professional Open Source Web Services.
Apache Rampart - Axis2 Security Module
- WS - Security 1.0 ya comentada aquí
- WS - Security 1.1
- WS - Secure Conversation - February 2005
- WS - Security Policy - 1.1 - July 2005
- WS - Security Policy - 1.2
- WS - Trust - February 2005
- WS - Trust - WS-SX spec - EXPERIMENTAL
Flex, PHP y WS
Flex es una plataforma de Acrobat para desarrollo web, bastante sencilla y utilizada.
Asi que rápidamente realice una pequeña búsqueda con muy buenos resultados, ya que existen muchos ejemplos y aportes de la integración de estas 2 tecnologías.
Algunos ejemplos sencillos y prácticos.
http://www.flexer.info/2008/02/17/flex-and-php-web-service/
http://www.phpbuilder.com/columns/daniel_williams20071005.php3
http://manfred.dschini.org/2006/12/29/consuming-php-soap-webservices-with-flash-part-i/
http://manfred.dschini.org/2007/02/23/sharing-complex-objects-between-php-and-flash-part-ii/
http://manfred.dschini.org/2007/10/09/php-and-flex-part-iii/
Attachments Axis MTOM
http://ws.apache.org/axis2/1_2/mtom-guide.html
WS moviles - Nokia
Lo interesante en el caso de Nokia es que ademas de soportar las tecnologias "tradicionales" de WS en Java, tambien posee un framework para crear Web Services para codigo C++ Symbian.
Este sitio contiene mucha informacion para desarrolladores interesados en utilizar WS en dispositivos Nokia:
http://www.forum.nokia.com/main/resources/technologies/web_services/
lunes, 8 de septiembre de 2008
Interoperabilidad - Understanding the WS-I Test Tools
http://www.ibm.com/developerworks/webservices/library/ws-wsitest/
El artículo describe la arquitectura básica de Test Tools, el cual consiste de dos herramientas principales:
- monitor
- analizador
Saludos,
Eduardo
Adjuntos en mensajes SOAP usando DIME y WSE 2.0
How to: Add Attachments to a SOAP Message by Using DIME
link: http://msdn.microsoft.com/en-us/library/ms824597.aspx
domingo, 7 de septiembre de 2008
Servers WS en Ruby
Rails viene con un componente llamado ActionWebService (AWS) que hace el hosting de WS en SOAP y XML-RPC, permitiendo que los métodos estén disponibles asociando los WS a clases controllers de la aplicación RubyOnRails. Se encarga de muchos detalles técnicos como parsear los XML request y crear el XML response, y crear un WSDL adecuado para el servicio SOAP
Los pasos para crear servers en Rails son:
1. Determinar el modo de dispatch (Directo, Delegado, o en capas).
2. Crear un API con el detalle de los métodos.
3. Crear los métodos en el controlador
Ahora... a intentar programarlo!!!
sábado, 6 de septiembre de 2008
WS en AJAX
http://www.tecnoshare.com/TecnoBlog/Lists/Entradas%20de%20blog/Post.aspx?List=01b86d9a-d150-44f8-885f-2dab83a12b1c&ID=8
viernes, 5 de septiembre de 2008
Interoperabilidad
Guía de Interoperabilidad de Servicios Web (WSIG): BEA WebLogic 8.1 SP3 (8.1.3)
http://www.microsoft.com/spain/interop/developers/wsinteroprecsbea.mspx
Interoperabilidad con Patrones de Intercambio de Mensajes creados con BEA WebLogic 8.1.3
http://www.microsoft.com/spain/interop/developers/beaconvwebservices.mspx
martes, 2 de septiembre de 2008
NuSOAP: dos modos de llamado a un servicio.
WCF - Encrytion
Encrytion in WCF
La seguridad en "web services": entre la incertidumbre y la sobreinformación
Archivo PDF
Articulo: envio de datos sin usar attachments
en este articulo "Web services programming tips and tricks: Send binary data without using attachments" (http://www.ibm.com/developerworks/webservices/library/ws-tip-noattach.html)
exponen ideas de como enviar archivos en otras formas, como los protocolos utilizados anteriormente como el DIME (http://msdn.microsoft.com/en-us/magazine/cc188797.aspx) y uno reciente como el MTOM (http://www.crosschecknet.com/intro_to_mtom.php) . tambien muestra un envio de forma binaria puramente, que puede funcionar en casos especiales. el articulo presenta un codigo con la interorperabilidad en java y .net de esta solucion. para nuestro caso solo posibles implementaciones se puede mencionar.
RE: WCF Security
Vale la pena recalcar que, aunque personalmente soy un "chico .NET" :) definitivamente .NET WS ni WCF son la unica solucion que implementa Web Services ni WS-Security.
Encontre este link por ahi:
http://xfire.codehaus.org/WS-Security
Es un ejemplo de una implementacion de esta tecnologia.
Tambien hay publicaciones de otras empresas importantes acerca de como implementar WS-Security (ya sea en sus tecnologias o no):
http://www.ibm.com/developerworks/webservices/library/ws-security.html
http://msdn.microsoft.com/en-us/magazine/cc163570.aspx
Encontre aqui una explicacion, creo, bastante clara de la arquitectura de seguridad en .NET para Web Services (WCF):
http://msdn.microsoft.com/en-us/library/ms788756.aspx
Y aunque el link parece estar muerto :S me encontre un site que pareciera poder tener mucha informacion muy util tanto para WCF como para el resto de .NET 3.5
http://wcf.netfx3.com/
- mmorales
WS en PHP y WebSphere
Como ya se había comentado Web Sphere es una plataforma propietaria de IBM, que cuenta con un modulo que brinda soporte a php, dicha plataforma esta enfocada a java por los cual este modulo es bastante interesante, en este enlace se discute de esta integración de las ventajas y desventajas que podría presentar.
Daniel Krook quien asegura tener experiencia en utilizar php y Web Sphere y es un Especialista en IT certificado por IBM nos menciona aspectos por tomar en cuenta a la hora de hacer la integración de estas tecnologías, algo en lo que al parecer IBM a estado trabajando.