AXIS - servicios web en OC4J

Desplegar en OC4J

Estoy usando independiente OC4J 10.1.3.3.
Descargar Apache AXIS de http://ws.apache.org/axis/ (he usado la versión 1.4)
Descomprimir en un directorio de su elección por ejemplo, D: eje \


Copiar el eje sub-directorio en su instalación de OC4J








Actualice el archivo por defecto OC4J-web-site.xml con la entrada siguiente :



OC4J
Prueba llamando a la siguiente dirección - http://localhost:8888/axis/
Creación de un sencillo Java Web Service
Cree una clase java simple en JDeveloper sin una estructura de paquete por ejemplo:

public class SayHi2U {
public SayHi2U() {}
public String sayHi(String name){
return "Hi there " + name;
}
}
copiar el archivo .java a axis sub-directory en OC4J
renombre la extensión .java a .jws









Detener /Iniciar OC4J
Probar con la siguiente URL http://localhost:8888/axis/SayHi2U.jws


Java Standard de implementación de servicios Web
El servicio web desplegado, que se describe en la sección anterior, es muy limitada. implementación estándar de Java Web Services es la siguiente -
Aquí utilizaremos la clase CreditRatingChecker se definen a continuación:








Cree la siguiente estructura de directorios en la carpeta \ OC4J eje subdirectorio











Copie el archivo de clase., CreditRatingChecker.class, a este directorio; Crea el siguiente fichero, deploy.wsdd, en el mismo directorio





¿Qué es un WSDD? - De acuerdo a Apache Axis doc -
Para realmente aprovechar la flexibilidad disponible para usted en el eje, debe familiarizarse con el Eje de servicio Web descriptor de despliegue (CMDS) de formato. Un descriptor de despliegue contiene un montón de cosas que quiere "implementar" en el Eje - es decir, hacer disponible para el motor del Eje. Lo más común es para desplegar un servicio Web ...

Vamos a utilizar el cliente de administración AXIS para "instalar" el servicio web, pero en primer lugar, tenemos que establecer la ruta de clases, etc


Cree un archivo bat. En el mismo directorio con el siguiente
Set AXIS_HOME=D:\AXIS\axis-1_4
set AXIS_LIB=%AXIS_HOME%\lib
set AXISCLASSPATH=%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery-0.2.jar;%AXIS_LIB%\commons-logging-1.0.4.jar;
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\jaxrpc.jar;%AXIS_LIB%\saaj.jar;
set AXISCLASSPATH=%AXISCLASSPATH%;%AXIS_LIB%\log4j-1.2.8.jar;%AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar
set classpath=%AXISCLASSPATH%;%classpath%

Abra una ventana de DOS en el Directorio
bat Monta tu archivo.
A continuación, introduzca la siguiente cmd (-p es la directiva del Puerto)
java org.apache.axis.client.AdminClient deploy.wsdd-p 8888

Prueba





BPEL embebido en java


El siguiente ejemplo muestra un fragmento de Java se define en una actividad BPEL Java

En el IDE de desarrollo en el panel de objectos BPEL este componente quiere decir que se va a insertar codigo java

/* Inicio del fragmento de código*/

/*
Escriba el código Java a continuación
System.out.println("Hello, World");
*/
try{

String status = "Bronze";

/* Acceso a una variable de tipo string */
String country = (String)getVariableData("v_country");

/* Acceder a una variable dentro del complex type - customer */
Element country1 = (Element)getVariableData("inputVariable", "payload","/ns1:customer/ns1:Country");
String c1 = country1.getTextContent();

/* Escribe o deja un rastro en el LOG de auditoria, Será visible en la consola de BPEL en tiempo de ejecución*/
addAuditTrailEntry("country is: " + country);
addAuditTrailEntry("country1 is: " + c1);

if (country.equalsIgnoreCase("Ireland")){
status = "Gold";
}

/* Estableciendo una variable de salida en el complex type - customer */
setVariableData("outputVariable", "payload","/ns1:customer/ns1:Status", status);

addAuditTrailEntry("status is: " + status);

}catch (Exception e) {
addAuditTrailEntry(e);
}

Add the following line before the bpelx:exec tag to import the Element class


Agregue la línea siguiente antes de importar la clase de elemento : bpelx:exec

Usando booleano en una actividad BPEL - Switch

Muchas veces creemos que BPEL es un lenguaje natural para los ingenieros con pensamiento sistemático.. Pero créanme la siguiente sintaxis no fue tan natural ..

V_valor es definido boolean

condition= "bpws:getVariableData('V_valor')=string(true())"


La expresión anterior determina si la variable V_valor es igual a true que esta en un Switch.

ADF11g - Llamadas a reglas (rules) oracle

Navegando por la web me encontré con este ejemplo de implementación de funciones de negocio basado en reglas y me parecio muy interesante la demostración lo cual probé, asi que queria compartirlo ...

Creando un componente de reglas sencillas y lo implantamos a SOA Suite 11g.
Ahora quiero ejecutar el Reglamento de una aplicación ADF. No requiere codificación!

Puedo crear / implementar una aplicación de reglas muy simples

Entrada XSD (simpleCheck.xsd)
















Output XSD (simpleResult.xsd)


Las reglas son las siguientes



Pruebe con defecto WLS probador

Resultado de la prueba a través de http://localhost:8001/soa-infra







Probrar usuando ADF Web Service DataControl


Creaer un ADF App in JDeveloper



localizando= file:/// simpleResult.xsd
















soa y middleware

La Arquitectura Orientada a Servicios, es un concepto de arquitectura de software que define la utilización de servicios para dar soporte a los requisitos del negocio.
Permite la creación de sistemas altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma bien definida de exposición e invocación de servicios (comúnmente pero no exclusivamente servicios web), lo cual facilita la interacción entre diferentes sistemas propios o de terceros.

  • Aplicaciones básicas - Sistemas desarrollados bajo cualquier arquitectura o tecnología, geográficamente dispersos y bajo cualquier figura de propiedad;
  • De exposición de funcionalidades - Donde las funcionalidades de la capa aplicativas son expuestas en forma de servicios (servicios web);
  • De integración de servicios - Facilitan el intercambio de datos entre elementos de la capa aplicativa orientada a procesos empresariales internos o en colaboración;
  • De composición de procesos - Que define el proceso en términos del negocio y sus necesidades, y que varía en función del negocio;
  • De entrega - donde los servicios son desplegados a los usuarios finales.

SOA proporciona una metodología y un marco de trabajo para documentar las capacidades de negocio y puede dar soporte a las actividades de integración y consolidación.

Diseño y desarrollo de SOA
La metodología de modelado y diseño para aplicaciones SOA se conoce como análisis y diseño orientado a servicios. La arquitectura orientada a servicios es tanto un marco de trabajo para el desarrollo de software como un marco de trabajo de implementación. Para que un proyecto SOA tenga éxito los desarrolladores de software deben orientarse ellos mismos a esta mentalidad de crear servicios comunes que son orquestados por clientes o middleware para implementar los procesos de negocio. El desarrollo de sistemas usando SOA requiere un compromiso con este modelo en términos de planificación, herramientas e infraestructura.
Cuando la mayoría de la gente habla de una arquitectura orientada a servicios están hablando de un juego de servicios residentes en Internet o en una intranet, usando servicios web. Existen diversos estándares relacionados a los servicios web. Incluyen los siguientes:
XML
HTTP
SOAP
WSDL
UDDI
Hay que considerar, sin embargo, que un sistema SOA no necesariamente necesita utilizar estos estándares para ser "orientado a servicios" pero es altamente recomendable su uso.
En un ambiente SOA, los nodos de la red hacen disponibles sus recursos a otros participantes en la red como servicios independientes a los que tienen acceso de un modo estandarizado. La mayoría de las definiciones de SOA identifican la utilización de Servicios Web (empleando SOAP y WSDL) en su implementación, no obstante se puede implementar SOA utilizando cualquier tecnología basada en servicios.


Lenguajes de alto nivel
Los lenguajes de alto nivel como BPEL o WS-Coordination llevan el concepto de servicio un paso adelante al proporcionar métodos de definición y soporte para flujos de trabajo y procesos de negocio.


Diferencias con otras arquitecturas
Al contrario de las arquitecturas orientado a objetos, las SOAs están formadas por servicios de aplicación débilmente acoplados y altamente interoperables. Para comunicarse entre sí, estos servicios se basan en una definición formal independiente de la plataforma subyacente y del lenguaje de programación (p.ej., WSDL). La definición de la interfaz encapsula (oculta) las particularidades de una implementación, lo que la hace independiente del fabricante, del lenguaje de programación o de la tecnología de desarrollo (como Plataforma Java o Microsoft.NET). Con esta arquitectura, se pretende que los componentes de software desarrollados sean muy reutilizables, ya que la interfaz se define siguiendo un estándar; así, un servicio C# podría ser usado por una aplicación Java. En este sentido, ciertos autores definen SOA como una Súper-Abstracción.


Beneficios
Los beneficios que puede obtener una organización que adopte SOA son:

  • Mejora en los tiempos de realización de cambios en procesos.
  • Facilidad para evolucionar a modelos de negocios basados en tercerización.
  • Facilidad para abordar modelos de negocios basados en colaboración con otros entes (socios, proveedores).
  • Poder para reemplazar elementos de la capa aplicativa SOA sin disrupción en el proceso de negocio
  • Facilidad para la integración de tecnologías disímiles