The 2009 Edition of BSF4Rexx

2009 International Rexx Symposium”, Chilworth, England, Great Britain
May 18th – May 21st 2009.

Скачать полный текст статьи в формает pdf.

Abstract: This article describes briefly the functionality made available in the Vienna Version of BSF4Rexx, a package that bridges Rexx and Java. After
identifying shortcomings that are linked to missing (concurrency) APIs for Rexx, possible solutions for removing these shortcomings in the Vienna Version of
BSF4Rexx that would become possible with the new release of Open Object Rexx 4.0 are discussed and functions with their signatures are devised, that would
overcome the identified shortcomings.

1 Introduction

This article briefly introduces the development of the "Bean Scripting Framework for Rexx (BSF4Rexx)" in section 2 and its various versions since the first package was created in 2001, highlighting the most important new features each of these versions brought along.

Following this, the shortcomings of the "Vienna" version of BSF4Rexx are discussed in section 3, which could only be overcome, if Rexx interpreters would supply APIs that allow for concurrent, direct interaction with running Rexx programs. For 2009 a new version of Open Object Rexx ("ooRexx", version 4.0) was announced which would possess a new kernel, that would allow for concurrent callbacks into running Rexx programs, making it possible to overcome the identified shortcomings (section 4).

From the sketching of the BSF4Rexx shortcomings and the possibilities the announced Open Object Rexx interpreter would allow for, new concepts for BSF4Rexx are devised in section 5, removing the shortcomings of the Vienna version altogether.

2 BSF4Rexx: From Essen to Vienna

Life of BSF4Rexx [W3BSF4Rexx] started as a seminar assignment while staying at the University of Essen, Germany, in the wintersemester 2000/01. The supervised student, Peter Kalender, was given the task to create a minimal proof of concept, that it is in principle possible to create a Rexx engine for the "Bean Scripting Framework (BSF)". BSF was originally created as an open source project by IBM at the end of the 90s and was later handed over to the Apache Software Foundation (ASF) [W3BSF].

Based on [Kal01]'s initial work the BSF engine for Rexx has since been rewritten and the functionality drastically extended over time by the author [Flat01]. Later, while teaching and researching at the University of Augsburg work on the basic functionality of BSF4Rexx was concluded, yielding the "Augsburg" version of BSF4Rexx in 2003. This version allowed Rexx programs to demand load Java, in order to become able to create and interact with Java objects.

The "Augsburg" version got introduced officially at the "2003 International Rexx Symposium", where Pierre G. Richard's (author of Rexx for Palm) feedback ("need to prepend each argument with its type is unRexxish") caused a new goal: improve the support for Rexx following the "human-centricness" paradigm as set forth by the author of Rexx, Mike F. Cowlishaw [Cow90].

Subsequently the work on BSF4Rexx yielded a version which removed the need to indicate the Java type of arguments supplied by Rexx programmers for Java
methods, drastically simplifying the interface for them. This feature and in addition the creation of the Rexx support for (OOo) [Flat05a, Flat05b], taking advantage of OOo's Java interfaces, were carried out after returning to the WU Vienna, Austria, yielding the "Vienna" version of BSF4Rexx in 2006.

Using BSF4Rexx, any Java application can use Rexx as its scripting language, being able to supply arguments and fetching return values from the Rexx scripts. Any Rexx program using the BSF4Rexx bridge is able to interact with Java objects and take advantage of all of the functionality that the class library of the "Java Runtime Environment (JRE)" offers. JRE is usually installed on any desktop computer.