× 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.


  • Subject: RE: ILE RPG SOCKET PROTOTYPES
  • From: Bob Crothers <bob@xxxxxxxxxxxxxx>
  • Date: Mon, 16 Aug 1999 13:03:52 -0500
  • Organization: Cornerstone Communications, LLC

Paul,

Nobody else is commenting, so here is my 2 cents:

First, by ICF programming, I assume you mean APPC with ICF files.  All 
of my experience in this area has been AS/400 to the PC world.  Never 
AS/400 to AS/400.

My sockets experience has been both PC to PC and PC to AS/400.  Again, 
never AS/400 to AS/400.

There are a couple of issues when a PC is involved that you do not 
have when doing APPC between AS/400's:

A) Blocking.  On the PC side, records are not unblocked 
automatically...not hard to do, but it must be done. With ICF, this is 
done automaticly on the AS/400 side.  With Sockets, you must 
reassemble the records on both the PC and AS/400 sides (even if you 
are doing AS/400 to AS/400).  This is a biggie.  Not hard to do, but 
if you don't do it with Sockets...your app will work fine until some 
minor change in your network architecture (there was a post just last 
week about this).

B) byte order differences.  The AS/400 is "big edian" or High order 
byte first.  Intel PC's are little edian or low order byte first. 
 APPC/ICF gives you no way to handle this.  It comes standard with 
Sockets.  A work around is to always exchange numeric data as zoned. 
 No packed or binary numbers.  This approach works well and simplifies 
the ASCII/EBCIDIC issues.

C) ASCII/EBCIDIC - which one do you use in the conversation?  This is 
an issue with both Sockets and ICF conversations.  I think it is 
easier to deal with using sockets since on the /400, you are already 
dealing with the buffers and probably have something in between your 
RPG program and the Sockets interface (a bit of "C" makes Sockets a 
LOT easier).

ICF conversations are very structured.  You must do request to send, 
send data,  request to receive, receive the request to receive, start 
receiving and then request to send (it has been awhile, so this is 
probably not 100% accurate, but the drift is correct).  Or APPC will 
blow you out of the water...big time.

On the other hand, Sockets does not enforce anything like this.  When 
you want to send, send.  When you want to receive, then receive. 
 There is of course a penalty with this "looseness".  If both sides 
are sending and neither side is receiving, you will probably deadlock 
because your conversation is messed up.  It is up to you to keep 
things right.

A very big issue is that APPC requires an SNA compatible 
network...which the Internet is NOT.  Sure, you can do things like SNA 
over IP, but those are kludges and require extra layers of 
conversion/translation.

Also, in the PC world, APPC requires Client Access.  Not nice if you 
are selling your product.

On the other hand, Sockets (TCP/IP) does NOT require any Client Access 
or any other 3rd party software except a TCP/IP stack...which ships 
with Win95/98/NT and our beloved AS/400 (V3R1 and up).

Not having Client Access in the picture alone is reason enough to use 
Sockets.  And having your program/product "Internet Ready" is 
something the marketing folks really like.

From the customer perspective, Sockets based programs are "Load & Go". 
 Anything involving Client Access (APPC) is much more complicated. 
 And if you are using Data Queues, DDM, etc, it gets MUCH worse as 
exact versions, service pack levels, etc start coming into play.

On the other hand, I have not seen a faster way to move a lot of data 
to/from an AS/400 than through a custom APPC conversation.

Which one is easier?  I think sockets is better...especially if you 
wrap the API's in a bit of C.  C is awesome at manipulating buffers, 
blocking/deblocking and stuff like that.  Use RPG to do the database 
 work (at least on the AS/400).

BTW, if all you are doing is talking to another AS/400 in the same 
room, then ICF/APPC is probably easier.  But let either side leave the 
/400 or the room, and Sockets will usually win.

Now, after all the above, I realize I did not answer your question: 
 "Which one is easier?".  If you are going AS/400 to AS/400, the 
ICF/APPC route probably is.  If a PC or the Internet is involved, then 
I would say Sockets...especially if you are not afraid of "C".  Note: 
APPC can be done with VB and no "C", but it is quite slow.

Regards,
Bob Crothers
Cornerstone Communications, LLC
www.faxserver401.com

another day done
all targets met
all systems fully operational
all customers satisfied
all staff keen and motivated
all pigs fed and ready to fly...




-----Original Message-----
From:   PaulMmn [SMTP:PaulMmn@ix.netcom.com]
Sent:   Saturday, August 14, 1999 11:56 AM
To:     MIDRANGE-L@midrange.com
Subject:        Re: ILE RPG SOCKET PROTOTYPES

How does Socket Programming compare to ICF or SAA communication 
programming?

--Paul E Musselman
PaulMmn@ix.netcom.com


+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midr  
ange.com.
| Questions should be directed to the list owner/operator: 
david@midrange.com
+---

+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

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.