× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



For what it's worth...

My last four gigs (either as an employee or as a consultant) have involved
training a lot of OPM programmers to use ILE.  

There are a lot of issues in the learning curve, but the main thing I've found
is that these shops that haven't got experience with this kind of modular
programming.  So, the first steps are definitely small.  

To help my clients or fellow employees see and think in terms of ILE design,
I've usually worked under the following rules for service program/module
creation and design:

1.  One function per module.  Modules that are functionally related are lumped
into a service program, even if only one module will make up the service
program.  The only exception to this rule is when "classic" (non SQL) I/O is
being used.  Then, multiple functions that deal with a file or group of files
may be grouped into one module.

Reason:  This has helped people see the relationship between modules and a
service program.  The idea of aggregating physically separate runtime objects
into a single object has been a tough one to communicate.  Demonstrating how
the modules become service programs is much easier when you can show a working
example in the context of the current codebase.

2.  Service programs always have binder source, even if the binder source
export list is identical to the service program function list.

Reason: Making service source mandatory leaves the door open for multiple
signature support, if extra modules or functions are added to the service
program.

3.  Application programs do not bind directly to service programs.  The
application programs bind to binding directories.  Period.

Reason:  Although there are some trade-offs for this particular point, I've
found overall that this enforces consistency in implementation.

Also, according to the ILE Concepts Manual, there's a bit of overhead going
through the Binding Directory -> Service Program chain when loadint the Service
Program into memory.  The fewer entries, the better, according to the book.  

So, to keep the binding directories lightweight, we have created different
binding directories for different applications.  For example, customer lookup
is used in various parts of the system by different applications.  Rather than
forcing the system to scan through the entire customer-related binding
directory, we have separate "hybrid" binding directories containing the most
commonly-used functions for the system.  This binding directory may only
contain one or two of the customer related service programs.  Despite the
apparent maintenance implications, we've found this system works reasonably
well.

As I say, these are just the things I've come up with in my own experience. 
Your mileage may vary.

-Doc

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.