Posteado por: wulfrano | abril 16, 2010

SAP y Java

Por lo general no me gusta escribir sobre mi trabajo, sobre todo en español. Las razones son dos principalmente: me da mucha flojera hablar de cosas para las que hay miles de documentos en inglés (si un programador o persona que labora en IT no domina ese idioma mejor que cambie de profesión) y siempre he pesando que la gente que no tiene otras cosas de que hablar más que de su trabajo son muy aburridas. El esfuerzo de tener un blog digno es inmenso cuando se tiene poco tiempo para dedicarle y mi interés es escribir de otros temas como Cine, Música, Filosofía o Economía.

Alguna vez platicando con @tacvbo le explicaba que tampoco me gusta dar pláticas técnicas por las mismas razones y, adicionalmente, porque en lo personal siento que ese tipo de pláticas en Congresos, Barcamps, etc. están reservadas para temas de mayor interés y difusión, no tan herméticos como lo es la actividad en la que he volcado mi carrera y conocimiento en los últimos años: la relación que tienen por un lado SAP, la suite de aplicaciones para negocios más vendida a nivel mundial, y por el otro lado Java, el lenguaje y plataforma de programación más popular hoy en día. Al contrario de lo que muchos pensarán, eso no significa que sea envidioso con mi experiencia o no disfrute transmitir el conocimiento que he adquirido en los últimos años, solo trato de limitar esta divulgación a los confines del trabajo.

Por petición de @xbenek a dar una opinión “experta” a un post sobre SAP en su sitio JavaMexico.org, la liga al post aquí, y la respuesta que me dió @tacvbo a mi negativa de dar pláticas argumentando que por lo menos así la banda se enteraría que hago en mi trabajo, he decidido escribir este post. Antes de entrar de lleno a la parte técnica aclaro que no me considero un experto en Java ni mucho menos un “gurú”, Peter Drucker decía que la palabra “gurú” se utiliza en lugar de charlatán porque es más conveniente para un encabezado. Solamente tuve la fortuna de cumplir uno de las metas que tuve en mi vida laboral: trabajar para una de las compañías top en el mundo del software.

Una de las primeras cosas que noté en mis primeros días trabajando para la oficina de SAP en México es que la información que se necesita para entender todos los temas relacionados con esa compañía y sus soluciones es inmensa, así que voy a intentar desglosar y sintetizar, en medida de los posible, el tema y términos descritos para hacer así sencilla su divulgación. Probablemente este post dará tela para cortar en el futuro.

Lo primero que tiene que quedar claro para todos los interesados en entender el mundo SAP es que las decisiones en este tipo de aplicaciones están completamente fuera del ámbito técnico. Al ser aplicaciones enfocadas al funcionamiento de negocios, lo técnico queda algunas veces en un segundo plano. La segunda aclaración que haré es que, a diferencia de otras plataformas tecnológicas de negocios, SAP tiene foco en ofrecer soluciones preempaquetadas a necesidades específicas de negocios, todo esto en un esquema que se conoce como “Best Practices“. Este concepto se refiere a la forma como SAP propone a las empresas automatizar sus procesos usando su suite de negocios, la cual está fundamentada en la experiencia que le da su amplia base instalada y el número de clientes de la compañía; los principios de contabilidad, finanzas, nómina y almacén en esencia son iguales aquí y en China, solamente se tropicalizan y adaptan a las necesidades de cada cliente. Si el interesado desea desarrollar aplicaciones “from scratch“, le recomiendo que evalúe otras soluciones, quizás no encuentre la respuesta a sus necesidades en el mundo SAP.

Haciendo estas aclaraciones, procederé a explicar un poco sobre SAP Netweaver y la relación que este tiene con Java, sobre todo la versión empresarial. Para no hacer extenso este post obviaré el significado de las siglas cuyo significado no esté más lejos que una búsqueda en Google. Con el perdón de mis lectores no técnicos, también voy a saltarme las definiciones de ciertos conceptos que cualquier programador o arquitecto debe de conocer.

Netweaver es el nombre que recibe la plataforma técnica de SAP sobre la que está implementada toda la suite de negocios. Esta está dividida entre dos tecnologías: ABAP y Java. El primero es el lenguaje en el que están programadas todas las aplicaciones y rutinas de negocios (ERP, CRM, SRM, SCM, etc.) junto con las funcionalidades de las soluciones verticales específicas para ciertos rubros (Retail, CPG, Oil & Gas, etc.); la explicación sobre cada una de esas aplicaciones da, por sí misma, para escribir otro post. ABAP cuenta con una ejecución que en su uso hace, hasta cierto punto, recordar el uso de las aplicaciones en mainframe. Toda la ejecución de los programas está basada en el concepto de transacciones, claves que se asignan a los mismos para la ejecución de sus distintas funcionalidades. Las aplicaciones en ABAP están basadas en la arquitectura cliente-servidor por lo que existe estado, a diferencia de las basadas en Web. Adicionalmente ABAP cuenta con una herramienta para administración y ejecución de flujos de trabajo (SAP Business Workflow) y un IDE para desarrollo de aplicaciones, entre otras herramientas.

La tecnología Java o JEE en este caso (antes J2EE) se utiliza en Netweaver principalmente para las siguientes funciones: integración entre aplicaciones y procesos (SAP Process Integracion y SAP Java Connector), desarrollo de aplicaciones (SAP Composition Environment), un framework Java MVC (SAP Java Webdynpro), interfaz de usuario basada en Web (SAP Enterprise Portal y SAP Business Explorer), diseño de aplicaciones sencillas basada en un concepto de consumo de servicios (SAP Visual Composer), registro para consumo de servicios Web compatible con UDDI para SOA (SAP Enterprise Service Repository  & Registry) y las nuevas herramientas de modelado, ejecución y monitoreo de procesos basados en el concepto de BPM. Todo esto integrando todos los componentes estándar y tradicionales de JEE (EJB, JPA, JCA, JSF, etc.)

Los primeros acercamientos de SAP con Java se dieron a través del componente de interoperatibilidad (middleware) y ejecución de funcionalidad remota conocido como SAP Java Connector (JCo). Este permite la ejecución en Java de funciones encapsuladas en el ambiente ABAP, conocidos como BAPIS, a través de la interfaz de comunicación remota de SAP: Remote Function Call o RFC.

La versión empresarial de Java, se empezó a utilizar en el mundo de SAP en las primeras versiones de la solución para administración y relación de clientes (CRM) que integraban una solución para montar una tienda en línea con carrito de compras. Con la conveniencia de la integración que ofrece una solución basada en el concepto de software Enterprise Resource Planning (ERP) la solución para integrar los inventarios, por las limitantes que tenía ABAP en aquella época para integrar tecnologías Web, tuvo que estar basada en J2EE por la facilidad que este representaba para publicar un sitio de compra en línea. El software conocido como SAP CRM Internet Sales, ahora SAP CRM Web Channel, está basada en el framework Java MVC Struts. Extraoficialmente se dice que las nuevas versiones tendrán soporte Java Server Faces, buscando el desarrollo de soluciones en un enfoque Web 2.0.

En vista de que no soy afín a los post largos en blogs dejaré el mismo hasta aquí, por el momento. Este es una introducción, casi un esbozo, de la explicación de la relación entre SAP y Java. Intentaré escribir un mayor número de post profundizando sobre los temas mencionados, esperando que les sean de utilidad. Los que quieran ampliar su conocimiento o mandar sus dudas, lo pueden hacer a mi dirección personal de email wulfrano@gmail.com

Anuncios

Responses

  1. Muchas gracias ‘wualfrano’. Esto de SAP y Java, de lejos se ve muy complejo y complicado… pero al mismo tiempo muy seductor, por mochos detalle, lo digo en lo personal, pues solo agradesco el post, y tambien un saludo al buen ‘benek’, por seguirnos la pista y tomar en cuenta de sobremanera a los que participamos en javamexico.org. suerte y buena vida 🙂

  2. Gracias por ampliar el tema.

    Estamos en contacto.

  3. Muy buen comentario!. Tal vez, antes de meterte de lleno en cuestiones técnicas, en donde tu y yo sabemos que SAP no se “defiende tanto”, habría que aclarar las causas de la decisión de SAP a entrarle al mundo de la tecnología.

    El juego de poderes que se tuvo en el Board con los alemanes y Agassi, la próxima entrada de los competidores a su propio terreno (Oracle) y la necesidad de obtener recursos de su base instalada, por la incapacidad de SAP de generalizar el upgrade al ERP 6.0 serían dichas causas. Todo eso sin mencionar el “calambre” que le metió Salesforce.com

    • Mi querido Alex, como aclaro en una parte del post: seguramente este da mucha tela de donde cortar. En el futuro se puede dar una conversación muy interesante sobre todos esos temas.

  4. Wulfrano.. apoco sabes Java.. jajajajaj


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Categorías

A %d blogueros les gusta esto: