|
| |
Ron van Hoof
9 Moraine Rd
Edison, NJ
08820, USA
rvhoof@optonline.net
|
Availability: |
Currently
unavailable for project work, working
full-time on NASA projects. |
|
OBJECTIVE |
Position as a Software Engineer developing object oriented Java based
systems |
WORK EXPERIENCE
|
11/98 - present |
Software Engineer IV,
QSS Group, Inc.,
NASA Ames Research Center,
Moffet Field, CA, USA
Mobile Agents Project
(7/02 – present)
Mobile Agents is a
project to develop an open agent-based architecture to support exploration
missions. It includes the development of a distributed wireless surface
exploration support system supporting a crew and remote science teams for
the planning and execution of extra-vehicular activities (EVA’s). The system
supports EVA plan management and tracking, automated recording of science
data, robot commanding, health monitoring, navigational support and system
monitoring using a voice controlled interface.
As the development lead
of the Brahms sub team consisting of four people responsible for planning
and managing the development of the Brahms agents and Brahms interfaces to
systems external to Brahms.
As the software architect
responsible for the design of the mobile agents architecture, managing the
design of the Brahms agents, the interaction of these agents with one
another and of these agents with the various support and control systems
such as GPS sensors, health sensors, robots, system hardware, etc. Started
the design of a service oriented architecture using J2EE where the Brahms
software agents use the J2EE services to ensure robust persistence of
telemetry, science data and state and to allow us to develop a wide variety
of user interfaces for different user communities to retrieve and analyze
the captured data.
As a software engineer
responsible for the requirements analysis and definition for the mobile
agents project. Responsible for maintaining the requirements specification
throughout the project and responsible for tracking the implementation of
the requirements throughout the development cycle. Also responsible for
signing off on the requirements after the implementation, testing and
integration of various mobile agents functions.
As a software engineer
responsible for the development of Brahms agents as part of the mobile
agents system that include plan tracking agents, navigation assistants,
medical assistants, science data assistants, and system assistants, and that
include Brahms interfaces that include interfaces between Brahms agents and
GPS sensors, bio sensors for monitoring heart rate and blood oxygen levels,
EVA robots to control movement and camera’s, a speech recognizer (Nuance)
and speech synthesizer (SAPI5, FreeTTS). The agents were developed using the
Brahms language. The interfaces were developed using Java (J2SE 5.0),
depending on the interface type using Corba (JacORB), Java Messaging Service
(JBoss), TCP/IP sockets, and Java Native Interface to communicate with
Windows COM objects and the kernel API.
Successfully field tested
mobile agents for 3 years (’03, ’04, ’05) at the Mars Desert Research
Station in Hanksville, UT with 2 geologists, 2 EVA Robotic Assistants and a
remote science team, at Meteor Crater, AZ (’05) with 2 astronauts in
pressurized space suits and a Scout rover and at Ames’ Marscape (’05) with
one ‘astronaut’ and a K9 and Gromit rover.
Brahms Project (11/98 –
present)
Brahms is a multi-agent
intelligent agent and simulation environment used for modeling, simulating
and analyzing work practice. Brahms is a data driven (forward chaining)
discrete event simulation environment with extensions for the real-time
execution of intelligent agents. This project is a continuation of work
performed at Bell Atlantic, now Verizon. This work is continued at NASA Ames
Research Center first as a contractor for
Caelum Research Corporation
(11/98 – 7/00), now as a contractor for QSS Group, Inc (7/00 – present)
As the development lead
of the Brahms project responsible for planning and managing the development
of the Brahms agent environment. Responsible for the development of
development guidelines and coding standards. Responsible for supporting the
developers in understanding Brahms and the development of the Brahms
components.
As the system architect
responsible for designing the short and long term system architecture for
the Brahms agent environment to include the specification of the various
Brahms components and their interaction in stand-alone systems and
distributed architectures.
As a software engineer
responsible for maintaining and expanding the Brahms language and Brahms
compiler to support new agent capabilities. Details of the current language
specification can be found at
http://www.agentisolutions.com. The Brahms compiler is implemented using
byacc and Java J2SE 5.0. The compiler generates XML to represent the Brahms
compiled code. Specified the Document Type Definition for the Brahms code
and implemented the XML generator using Java J2SE 5.0. The generated XML is
used as the ‘byte code’ input for the Brahms virtual machine.
As a software engineer
responsible for the requirements analysis, object oriented design and
implementation of the Brahms Virtual Machine. The Brahms Virtual Machine
loads in Brahms models from XML and starts the simulation of the Brahms
agents. The Brahms VM generates a reasoning state network similar to a RETE
network but with extensions and enhancements for Brahms. The reasoning state
network maintains the state of all the Brahms frames (activity rules) and
conditions that can be matched by agent’s beliefs and/or world facts. The
Brahms VM includes a discrete event manager to synchronize time and
distribute events to the agents in case of a simulation. Added support to
the Brahms VM for real-time execution of Brahms agents as software agents
and added an open API to allow virtual machine services to be loaded, to
allow for agent activities to be developed using Java and to allow for an
interface for external agents to interact with Brahms agents. Added support
for an agent directory service and to allow agents hosted in different
virtual machines to communicate with eachother in a distributed environment
without requiring the agent developer to change any Brahms code. The Brahms
VM is implemented in Java using J2SE 5.0 and Sun’s XML parser.
As a software engineer
responsible for porting the Brahms Agent Viewer graphical user interface
application from Visual Basic to Java using Swing and migrating the
underlying database from MS Access to MySQL 4.x developing the database
interfaces using JDBC 2.x and SQL managing database creation and deletion,
parsing of the history file generated by the Brahms virtual machine to the
database using inserts and querying the database for displaying data using
prepared statements.
As a software engineer
responsible for developing a dockable window framework for the Brahms
integrated development environment (IDE) using JDK 1.3 based on Swing
components that allow users to organize their desktop windows in a way most
productive to them. The dockable window framework emulates the behaviors
found in Microsoft’s Visual Studio applications.
As a software engineer
responsible for the development of the Brahms model builder prototype
allowing model builders to create and browse Brahms models. The model
builder is implemented using Java jdk 1.1.8 and Swing 1.1.1.
As a software engineer
responsible for the requirements analysis, object oriented design and
implementation of the Brahms virtual reality environment prototype that
visualizes the activities performed by the agents in a Brahms simulation run
in a three dimensional view. The virtual reality environment prototype is
implemented using Java jdk 1.2, Swing 1.1.1 and Java 3D using VRML as the
format in which the scene and scene elements are defined.
As a software engineer
responsible for the requirements analysis, object oriented design and
implementation of the Brahms Enterprise JavaBeans server prototype with
support for stateless session beans but no transaction management
implemented using Java jdk 1.1.8 and RMI. The server is to be used to host
Brahms server side components written as EJBs. The EJB Server is based on
the EJB specification V1.0. The EJB Server also includes a database service
allowing for connectivity to multiple databases using connection pools. The
database service uses JDBC to connect to databases.
As a
software engineer responsible for the requirements analysis, object
oriented design and implementation of the Brahms Messaging Service used to
distribute events generated by Brahms virtual machines to Brahms components
registered for those events. The Brahms Messaging Service complies to the
Sun Java Messaging Service specification V1.0 and supports the
publish/subscribe messaging component. The Brahms Messaging Service is
integrated with the Brahms EJB Server and is a multi-threaded application
implemented using Java jdk 1.1.8, RMI and JNDI.
|
|
6/95 - 11/98 |
Member of Technical Staff, Bell
Atlantic IS, White Plains, NY, USA
Trouble Entry System
Solution (TESS) Project (1/98 – 11/98)
TESS is a trouble entry client/server system used for trouble entry,
tracking and reporting of telephony problems reported by large business
customers. TESS has a four tier architecture with a Java based client,
Java EJB based second tier using BEA Weblogic, a Bell Atlantic proprietary
gateway to legacy systems on the third tier and the legacy trouble entry
systems on the fourth tier
As a software engineer developed a proposal for
the TESS project to replace the non Y2K compliant trouble entry system
used for trouble entry, tracking and reporting for large business
customers. Designed and implemented a prototype as a proof of concept for
a web enabled trouble entry solution for use by Bell Atlantic’s customer
service representatives. The prototype is implemented in Java using Swing
as the user interface class library. For this application developed a
Windows 98 look and feel, substituting the available Swing look and feels.
As a development lead responsible for the
planning and managing of the development of the TESS client with a project
team consisting of three developers, a technical writer and a subject
matter expert. Also responsible for reporting and tracking issues and
requirements with the customer.
As a software engineer together with the client
team responsible for the requirements analysis for the entire TESS system
as part of a contractual agreement with the customer, and the object
oriented design, implementation and unit testing of the TESS client. The
design is created using the unified modeling language (UML). The
implementation is in Java using jdk 1.1.6 and Swing 1.0.2.
Project Compendium Project (12/97 – 3/98)
Project Compendium is a conversational modeling tool allowing for
capturing discussions, notes, requirements, designs, issues and more
between a team using a graphical representation linking questions, ideas
and information. Project Compendium provides interfaces to MS Word and MS
Excel for transparent display of discussion results and information in
popular formats.
As a software engineer responsible for the
design and implementation of an interface between Questmap (an existing
conversational modeling tool) and a MS Access database with a graphical
visualization interface on top of the application to verify imported data.
The application is designed using UML and implemented using Java with
Microsoft’s AFC and the JDBC-ODBC bridge. Started the design and
implementation of a three tier client-server converational modeling tool
with a web enabled interface using Swing and using RMI between the client
and server. The work is continued by other developers due to the higher
priority of the TESS project.
Customer Service Manager (CSM) Project (12/97)
The Customer Service Manager System allows for measuring and displaying of
the performance of frame relay networks.
As a software engineer responsible for the
design and implementation of a web enabled prototype to view statistical
data, in the form of bar charts, about the performance of frame relay
networks. The client is implemented using Java and a dbAnywhere middleware
server is used as the interface to the database containing the captured
performance data.
Brahms Project (6/95 – 12/97)
Brahms is a multi-agent intelligent agent and simulation environment used
for modeling, simulating and analyzing work practice.
As a software engineer responsible for the
design of the Brahms language (in BNF) for modeling activity based work
processes and developing agent based applications. For this language
designed and implemented an object oriented compiler. The design of the
compiler was realized using the unified modeling language. The
implementation was realized using Yacc and Java. The user interface was
developed in Java using Microsoft’s AFC class library.
As a software engineer responsible for the
design and implementation of extensions to the Brahms simulation engine
for simulating work and social processes. The simulated work process
models are defined using the Brahms language. UML is used for the design.
The simulation engine is developed in G2 using it’s third generation
language from Gensym.
|
|
3/95 to 6/95 |
Junior Knowledge Engineer, Bolesian
Systems Europe B.V., Helmond, The Netherlands
As a knowledge engineer responsible for building
interfaces between MS-Access, MS Word, and MS Excel for automatically
generating quotations in five languages based on the result of a knowledge
based configuration editor for the configuration of pumps. The interfaces
are developed in Visual Basic for Applications.
|
|
12/94-3/95 |
Co-operator automation, Housing society Etten-Leur,
Etten-Leur, the Netherlands
Periscope Project (12/94
– 3/95)
Periscope is a system allowing the housing society to manage information
about houses owned and maintained by the housing society.
As a software engineer responsible for the
design and implementation of a quality control system for the houses of
the housing society providing reports about the state of the houses. The
information systems used are the Informix RDBMS and Periscope. The
implementation required writing SQL to retrieve the information for
presentation in reports.
|
|
7/94-10/94 |
Knowledge Engineer, Work Systems Design Group, Bell
Atlantic Science & Technology, White Plains, NY
Casedom Project (7/94 – 10/94)
Casedom is a computer aided software engineering tool allowing for
modeling domain knowledge and generating a rule based system from the
modeled domain knowledge.
As a knowledge engineer responsible for
designing and building a CASE tool with automatic code generation for
domain modeling. Domain modeling concerns data modeling and knowledge
modeling for conventional as well as knowledge-based systems based on
CommonKADS. For the requirements a language specification was created, for
the design the technique OMT (Rumbaugh) was used and the implementation
was realized in SNAP.
|
PATENTS
|
US Patent 6,216,098 |
W. J. Clancey, D.M. Torok, M. Sierhuis, R.J.J. van
Hoof, and P. Sachs, "Simulating Work Behavior" in United States Patent
Office. USA: Institute for Research on Learning and Bell Atlantic
Network Services, Inc., April 2001. |
EDUCATION
|
12/94 |
M.S., Knowledge Engineering, Center for Knowledge Technology, Utrecht,
the Netherlands and University of Middlesex, London, England |
|
7/93 |
B.S., Computer Science, Hogeschool West-Brabant, Etten-Leur, the
Netherlands
|
COMPUTER SKILLS
|
Methodologies |
CommonKADS, SDM (System Development Methodology developed by Cap Volmac),
Yourdon Structured Analysis and Design
|
|
Techniques |
Object Oriented Analysis and Design using UML (Use Case Analysis, OMT,
STD, DFD, ERD)
|
|
Tools |
Microsoft Visual Studio 6.0, Microsoft Frontpage,
Microsoft Office, Microsoft Project, Select Enterprise,
Symantec Visual Café, Borland JBuilder 2005, Eclipse
3.x, Gensym G2, CVS
|
|
Languages
|
AionDS, Assembler, C, C++, Demos, Eiffel, G2, HTML,
Java, JavaScript, Lex&Yacc,
Modula, Perl, Prolog, SNAP, SQL, TURBO Pascal, Visual Basic, XML, DTD
|
|
Java APIs |
JDK 1.0.2-1.5.x, AWT,
Swing, JDBC, JNDI, JNI, RMI,
CORBA, J2EE, EJB 3,x Sockets, Threads, JMS, Java 3D, Javadoc,
MS SAPI 5.x, FreeTTS, Nuance Speech System, GPS (NMEA)
|
|
Application Servers |
JBoss 4.x |
|
Databases |
Informix RDBMS, Oracle RDBMS 6.0 (Forms, Reportwriter, Embedded SQL),
Unify RDBMS/ACCELL, MySQL 4.x, MS-Access
|
|
Operating Systems |
Sun Solaris 2.x, MS-DOS/Windows 3.1/95/98/NT4/2000/XP,
Linux RedHat/Fedora Core, Mac OS X
|
|