lunes, abril 26, 2010

Algo más sobre Open Access en RPG (y el i 7.1)

Continuando con los anuncios del i 7.1, sucesor actual del AS/400 (perdón, iSeries, etc), Scott Clement publicó el 22 de este mes un artículo en System I Network, que también destaca las principales novedades y virtudes del nuevo sistema. De entre los distintos puntos destacados, nuevamente destacamos las referencias a los cambios en el RPG, fundamentelmente el concepto de Open Access:

Rational Open Access: RPG Edition

The biggest RPG feature of 7.1 is RPG Open Access. Open Access (previously referred to as "Open I/O" in early discussions) makes it possible for programmers to write "handlers" that take the place of file I/O when you use RPG's native file opcodes.

The way George Farr explained it, under the covers, anytime you read or write from a file, RPG actually calls a routine in the OS to handle that request. For example, if you CHAIN to a record in a PF, RPG calls a routine in the database manager that retrieves a record by key. Similarly, when you use EXFMT to display a screen, it calls a routine in the display file management portion of the OS. So while we tend to think of these operations as "reading a file," the RPG runtime is really just calling a routine.

What IBM has done is open those routines up to you. You can now have it call a routine of your choosing rather than one provided by the OS. That way, you have full control over what happens when the program tries to read a file. Will it actually read a file? Or will your code simply calculate the value returned for the fields in the record? It's up to you.

People are excited about this new tool because it makes it possible for existing RPG code to use opcodes like EXFMT, READ, WRITE, etc., against a display file—but they can provide the routines that handle the display I/O. So the routine might decide to display a web page instead of a display file. Or it might decide to communicate with a Visual C++ program running on Windows, and that Visual C++ program might bring up a GUI window.

Third-party vendors are already providing prewritten handlers that RPG Open Access can call. So if you want your RPG programs to output to the web instead of outputting to a 5250 terminal, you can buy a "web" handler from a vendor, pop it in, and your program now goes to the web!

If, in the future, you want your output device to be an iPhone or iPad or Droid, it's just a matter of buying a new handler. The only change required to your RPG program is the F-spec, where you'll need to code the HANDLER keyword to tell it where to call the handler routine.

Unfortunately, I don't really have the space to go in-depth about RPG Open Access. That's something that could easily fill an article by itself. Or several articles! But if you'd like to see a more in-depth technical description, I suggest that you check out the technical documentation on the RPG Cafe.

RPG Open Access is not included with the RPG compiler, however. Instead, you have to purchase it separately from IBM. So, unless you plan to write your own handlers, you're going to need approval for two different costs: Open Access itself, plus whatever the vendor is charging for their handler.

On the plus side, it's available for both 6.1 and 7.1, so you don't even have to wait till 7.1 before you can try it out.

Sin embargo, Scott mantiene sus reservas sobre el alcance de Open Access, cuestionando su verdadero nivel de cambio, al no modificar esencialmente la arquitectura:
My opinion is that Open Access is overhyped. It has been represented as the greatest thing ever and the salvation of the RPG language, and in my opinion that's blown way out of proportion. All it does is enable a new way of calling subprocedures in a service program. Instead of calling them directly, you do file opcodes, and the file opcodes call the procedures.

Plus, the existing SPECIAL file support, although limited, never got a lot of adoption in the RPG community. So why come out with new tool that's almost identical to a tool that's hardly used? Is there really that much demand for it?

Furthermore, from the RPG program's perspective, it's still reading/writing a display file. Even though you may have another device on the other end, RPG doesn't know that, and so it can't take advantage of it. It can't behave like a proper web application, because it's trying to control the flow and act in a stateful manner. It can't behave like a proper GUI program, because it can't take action based on mouse events or what keystrokes a user typed into which custom controls. All it knows is how to read/write data to a display file. And we basically already had the same thing with screen scrapers, didn't we? I realize that Open Access is intercepting the program logic at a different level than a screen scraper would—but other than that, isn't it still doing the same thing? Transforming a DDS-defined 5250 screen into a GUI screen, while tricking the RPG program into thinking it's still 5250?

No obstante, la idea me resulta más que interesante. Poner fuera el destinatario/orígen de una lectura/escritura, abre posibilidades. Es cierto que esto puede ser especialmente útil para terceros proveedores, pero justamente, es probable, desde mi punto de vista, que sea posible sacarle provecho a través de Plex, con la misma licencia, y código basado en patrones.

Más allá de los apuntes sobre Open Access, Scott resume otras novedades, tanto sobre RPG como sobre herramientas de desarrollo, licencias, almacenamiento. Para la consternación de muchos desarrolladores, el entorno de desarrollo basado en PDM, SEU, SDA, RLU, DFU, se acerca cada vez más a su fin. No quedará otro remedio que acelerar el uso de las nuevas IDEs...

sábado, abril 24, 2010

Llega el nuevo ISeries: i7.1

En "breve" tiempo, IBM ha entregado dos nuevos releases del sistema operativo OS: el 6.1, y ahora, ya casi, el 7.1, manteniendo el soporte del R5V4 hasta 2012 aproximadamente. Grandes cambios en el hardware, y grandes cambios en el sistema operativo y sus recursos. Vamos a tener que forzar la marcha...
El nuevo equipo está basado en los procesadores POWER7, e incorpora mejoras importantes de hardware y software, desde el mismo procesador y su inclusión múltiple y la utilización de almacenamiento en estado sólido, hasta la ampliación del soporte de XML y del RPG.

Chris Smith, en MC Press, destaca los principales aspectos de la nueva versión:
IBM announced a significant new release of IBM i this week, the first major release to the operating system since 2008. While IBM i 7.1 touches on nearly every aspect of the operating system, making it easier to work with new technologies such as XML, the company took the opportunity also to announce enhancements to the RPG language that will make it easier for developers and ISVs to interface with mobile devices and Web services. The company also announced new BladeCenter hardware running the POWER7 chip as a continuation of the rollout of POWER7 servers that will occur throughout 2010.
(...)

Highlights of the enhancements to i 7.1 and RPG include the following:

  • DB2 support for XML and column-level encryption
  • PowerHA asynchronous Geographic Mirroring and LUN-level switching
  • IBM i 6.1 virtualization for i 7.1 partitions
  • Automatic movement of frequently accessed data to solid-state drives
  • Open Access for RPG to allow extended application reach to mobile devices and Web services
  • Enhancements to System Director and System Navigator
Para la gran masa de aplicaciones basadas en RPG que existen en el iSeries, los cambios en el lenguaje son de gran importancia para su modernización. Para sus usuarios, quizá esta sea la noticia más importante:

ISVs and most RPG developers will be intrigued by the changes IBM is announcing to the RPG language. The new feature is called Rational Open Access: RPG Edition. In essence, RPG applications with Open Access will have the option of extending the reach of applications to pervasive devices such as mobile phones, XML, and Web services.

"In many respects, this is a dramatic change, given that since the 1970s, RPG has always had the development environment that [outputs a 5250 data stream]. Most people today don't use green-screens, and they certainly don't use terminals; they all have PCs, and most convert that 5250 data stream into a browser or some other device…. For the first time, we're separating the RPG runtime from the output device so you have the user interface completely separate from the business logic."

The solution doesn't change (read: "break") any existing applications but is instead an option for new applications or for rewriting older RPG applications, he said. The way the process works is that the data goes through what IBM is calling a "Handler" before being directed to the device or browser. We're just learning what these handlers are, and Jon Paris and Susan Gantner give a good overview in their MC Special Issue article, "V7's RPG Enhancements Include Open Access!" The enhancement to RPG will allow programmers to write handlers (IBM is apparently leaving this up to ISVs and developers), which are routines that are run when updates, deletes, etc. are done to the file. The handler is similar to today's SPECIAL file support except that it goes beyond what SPECIAL files offer. Open Access can be used with any RPG file type and reportedly will be available on V6.1 as well as 7.1.

Sobre este aspecto se extiende más el blog de Help 400.
Entre otros recursos, es base de mucha información la nota de prensa de IBM sobre el POWER7, del 8 de febrero. Información completa, incluyendo especificaciones, se puede encontrar en la página del POWER.

lunes, abril 19, 2010

Un caso de uso de desarrollo basado en modelos

Fred Madiot publicó hace pocos días una breve reseña del paso a diseño basado por modelos en un caso práctico: un banco tunecino que decide reelaborar sus aplicaciones cambiando tecnología y método de construcción. Nada mejor que casos prácticos para que quienes se aproximan a conocer el desarrollo basado en modelos, tengan una idea del estilo y posibilidades de MDD.
Para mi experiencia y preferencias, de todas formas esperaría que cada caso (aquí, el proyecto del banco) requiriera menos elaboración (me refiero a que el modelado se centrara más en la aplicación, y no inicialmente en la herramienta de transformaciones), y que el código se derivara sin fase final manual, desde un generador bajo Eclipse:
From the EMF model of the reference application, the templates have regenerated 6 MXML files and 19 ActionScript files (Commands, Events, Service Delegates, Front Controller, and Value Objects). The MXML files contain the graphical definition of the GUI: they will be generated only once, just to provide a first application which can be executed. Then they will be edited and maintained with a WYSIWYG designer.
Este aspecto revela en mi criterio la todavía relativa inmadurez de las herramientas disponibles. Digo esto desde mi punto de vista, con una herramienta, Plex, que considero más consistente en este terreno, y a la vez menos flexible en el mismo aspecto que estoy observando.
En común: en la comunidad de Plex, la importancia de Eclipse como puente entre las reglas de Plex y el ancho mundo de los metamodelos para resolver lo que no esté contemplado.

Fred Madiot también participa del proyecto MoDisco, que intenta desarrollar herramientas capaces de extraer el modelo implícito en una aplicación antigua (Legacy Reverse Engineering), de lo que hemos hablado en alguna oportunidad.

domingo, abril 18, 2010

Plex: WebClient amplía el soporte de Dojo

Para usuarios de Plex: ADC amplía el soporte de Dojo, entre ellos, los componentes TreeView y FlexGrid, que ahora hubieran requerido un trabajo adicional en plantillas, a partir de la próxima versión sólo será necesario heredar del control adecuado. Trabajo simplificado.
Un caso desarrollado en el blog de WebClient.

viernes, abril 16, 2010

Modelos y libertad de acción

Jean-Jacques Dubray escribió, el once de este mes, una "carta abierta a Steve Jobs", en la que, a propósito de la declaración de Apple de que cerrará la programación para el iPhone, recuerda su catastrófica experiencia con NeXTStep, el revolucionario sistema operativo que Jobs desarrolló en su transitoria etapa fuera de Apple. Dubray recuerda su decidido compromiso por el sistema operativo y sus herramientas, y cómo la absorción posterior de NeXT por Apple destruyó su inversión, y afectó a sus clientes:

I discovered NeXT and NeXTStep in 1990 at Penn State and it was love at first sight. I was inspired, from the very first second after years of programming in Turbo Pascal. It is hard to believe for most people that something like Xcode was available as early as 1989. I had built two solutions with NeXTStep: a Laboratory Information Management System (LIMS) and an Industrial Process Control System. It was not easy but the results were incredible.

NeXTStep was so productive that a very small team of 2 or 3 people could write software that was vastly superior to the one written by much larger teams (10-50). I still remember a professor from Stanford visiting us at Hughes Research Lab and looking at these two products (at the time I had also added a Natural Language Interface to the Process Control Software to log process data in the LIMS and define control rules), his jaw dropped on the floor.

Yet, around 1994, NeXT started to fail. You had already moved to create OpenStep (a port of their APIs to Sun -yet incompatible with NeXTStep) and all together in 1997, NeXTStep was packed in boxes and moved to Apple. It resurfaced nearly a decade later. You can easily imagine how these two "strategic" moves impacted my business and my customers. Yes, devastating doesn't really qualifies.

La enseñanza que sacó Dubray de su experiencia tiene dos aspectos: uno, respecto a la evolución de la industria del software, que no necesariamente coincide con los intereses del usuario de la tecnología:
Software vendors are always looking for new customers, they compete against each other and ultimately they have no commitment to their past customers. I actually don't know a single Platform Software Vendor which understands and focuses on helping their existing customers migrate to new versions of their platform. They simply don't care, older customers are just collateral damage.
Su segunda conclusión es que ya nunca encarará la construcción de software comprometido técnicamente con un proveedor, sino que se apoyará en el desarrollo basado en modelos:
I have learned my lesson, never, ever will I write code directly tied to a set of APIs.
(...) NeXT shaped my mind to build model-driven software. Somehow, I could never go back to just writing imperative code ever again. Around 2005, my understanding of MDE became a lot more formal with the emergence of DSL Tools and Eclipse Modeling Framework and later XText and Oslo.
Ever since I understood how deadly, and frankly stupid it was to tie your solutions to vendor APIs, I spent lots of time developing strategies to become technology and architecture independent.
Jean-Jacques expresa un punto de vista importante en el estado actual del mercado del software: en un universo de negocios cambiantes, donde la tecnología es infinitamente variada, y donde es difícil contruír soluciones estables porque el ciclo de vida de las aplicaciones es crecientemente corto, comprometerse con una solución basada en una tecnología es peligroso. Y orientarse hacia el desarrollo basado en modelos es preventivo: difícilmente un cambio de tecnología afectará la especificación del software. Existen distintas variantes de desarrollo basado en modelos; cualquiera de ellas ofrecerá mejores perspectivas que un diseño apegado a un lenguaje, o infraestructura, o plataforma específica. En el estado actual de la industria, cada variante de lenguaje o plataforma se acerca a ser un commodity, y es el desarrollo basado en modelos el que permite manipular esta diversidad.

sábado, abril 10, 2010

Informe de tecnologías 2009-2010 del World Economic Forum

Leído en América Economía, a comienzos de abril:
Suecia encabeza el informe sobre Tecnologías de la Información y la Comunicación (ICT) que este viernes lanzó el World Economic Forum (WEF en sus siglas en inglés), un listado 2009-2010 que evalúa mal a los países latinoamericanos, todos ubicados a partir del puesto 40.

El estudio del WEF analizó a 133 economías de todo el mundo, con el objeto de medir el impacto de las ICT sobre el proceso de desarrollo de sus economías y la compatibilidad de estas naciones.

Suecia, que obtuvo una puntuación de 5,65 en este ranking, es seguido en el top ten por Singapur (5,64), Dinamarca (5,54), Suiza (5,48), Estados Unidos (5,46), Finlandia (5,44), Canadá (5,36), Hong Kong (5,33), Holanda (5,32) y Noruega (5,22).

Los retrasados países latinoamericanos recién aparecen el la medianía de la tabla del WEF, en la posición 40, donde Chile fue evaluado con 4,13 puntos, seguido de Puerto Rico Puerto Rico en el puesto 45 (4,07), y Costa Rica en el casillero 49 (3,95).

El país latinoamericano peor evaluado es Bolivia, en el puesto 131, la antepenúltima posición del ranking, tras una puntuación de 2,68.

Uruguay y Panamá, dos de las economías más estables de la región, afloran juntos en este ranking, en las posiciones 57 (3,81) y 58 (3,81), respectivamente.

Más atrás aparecen juntos Colombia y Brasil, en las ubicaciones 60 (3,80) y 61 (3,80), respectivamente.

El reporte es producido por el Foro Económico Mundial en cooperación con Insead, la escuela de negocios líder a nivel internacional, en el marco de Las Redes Competitivas del World Economic Forum; el Programa de Sociedad industrial para tecnología de información y la industria de telecomunicaciones.

América Economía destaca algunos casos del informe, desde el punto de vista iberoamericano:

The Networked Readiness Index 2009–2010
País Ranking 2009-2010 Puntaje 2008-2009 Variación
Suecia 1 5.65 2 +1
EEUU 5 5.46 3 -2
España 34 4.37 34
Barbados 35 4.36 36 +1
Chile 40 4.13 39 -1
Puerto Rico 45 4.07 42 -3
Costa Rica 49 3.95 56 +7
Uruguay 57 3.81 65 +8
Panama 58 3.81 66 +8
Colombia 60 3.80 64 +4
Brasil 61 3.80 59 -2
Jamaica 66 3.73 53 -13
República Dominicana 74 3.64 75 +1
México 78 3.61 67 -11
Trinidad y Tobago 79 3.60 81 +2
El Salvador 81 3.55 78 -3
Guatemala 83 3.53 82 -1
Argentina 91 3.38 87 -4
Perú 92 3.38 89 -3
Honduras 106 3.13 95 -11
Venezuela 112 3.06 96 -16
Ecuador 114 3.04 116 +2
Nicaragua 125 2.95 125
Surinam 126 2.92 117 -9
Paraguay 127 2.88 122 -5
Bolivia 131 2.68 128 -3

El informe 2009-2010 dedica cuatro capítulos a casos puntuales, siendo uno de ellos el análisis del Plan Avanza, de España; los restantes, Irlanda, Tunez, China.
Tanto de la simple visión de los números, como de las propias palabras del Informe (Resúmen ejecutivo), destaca un relativo estancamiento del mundo iberoamericano.
El informe en su sitio.

James Gosling renuncia a Oracle


Leído en InfoQ, y publicado en su blog en nueva dirección, James Gosling ya no pertenece a Oracle:
Time to move on...

Yes, indeed, the rumors are true: I resigned from Oracle a week ago (April 2nd). I apologize to everyone in St Petersburg who came to TechDays on Thursday expecting to hear from me. I really hated not being there. As to why I left, it's difficult to answer: just about anything I could say that would be accurate and honest would do more harm than good. The hardest part is no longer being with all the great people I've had the privilege to work with over the years. I don't know what I'm going to do next, other than take some time off before I start job hunting.

This is the new home of my blog. It contains all of my old blog entries from Sun: Sun's blogging policy gave bloggers rights to their own works. The few more recent blog entries that I did at blogs.sun.com were written under somewhat more strict policies :-)

Un nuevo signo de los cambios que Oracle implica para Java. Este no es un ecosistema adecuado para liderar un estándar. Se trata simplemente de negocios, y parece ser que Gosling no encuentra allí su lugar.

La imágen, en Wikipedia.