Java Connectivity To Mainframes

I have an architecture question.  We can now run Java on a CICS region, but I have some questions regarding connectivity.  We can connect to a mainframe via TCPIP.  Based on research, we should be implementing Java classes using CORBA and IDL.  In order for this to take effect their is this ORB that must reside on the Server and Client side correct?  If so, what is it's limitation.  We currently use a middle where with C++ that has 32k buffer limit to access mainframe data.  Does this limit exist with and ORB.  Can where have a Java Class on the Mainframe that Loads applets to a web browser?  Has anyone tried this?  Any issues converting ASCII to EBCDIC or since it's byte code it doesn't matter.  Is their any other limitations or technologies that I should be exploring in trying to create web apps that access mainframe db2 and vsam files.  Any ideas is greatly appreciated.

Buried in research.
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

As I can understand you are trying to create web apps that access mainframe db2 and vsam files

some questions
(1)is there a firewall involved? mean to say r specific ports/protocols of the mainframe u gonna access be blocked? Ask the administrator on future policy,coz u dont want to get a shock lateron when they change their policy
If they r free then u can explore a java only solution called RMI which is simpler than CORBA.

(2)what is the max size imaginable of the db2 /vsam files?

(3)what do u mean by access? Just when a client asks throw them the file?and when they say put file ,u put it on mainframe?Define this properly as this is the heart of the problem

>>>>>Based on research, we should be implementing Java classes using CORBA and IDL

I dont get it ,I think u can do so without that

>>>>>In order for this to take effect their is this ORB that must reside on the Server and Client side correct?

what ORB r u talking of?

>>>>>Can where have a Java Class on the Mainframe that Loads applets to a web browser

sure the mainframe must be running a Web Server to which the Web browser will connect to and then throw a applet to the browser.

>>>>>Any issues converting ASCII to EBCDIC or since it's byte code it doesn't matter.

pls clarify as to whether the underlying files r in which format?
dt19643063098Author Commented:
In regards to your questions.  
1)Yes their is firewall but clients should have a direct connection to the host via ip address.  It won't be an internet application, but an intranet.
2)Unlimited.  Millions of rows at sometimes; however we would never need to return all of that, that is just the max size of some of the tables.
3)Add, update, delete access to the mainframe tables.  The VSAM files will have to be accessed through a cobol subroutine to handle the I/O.  I heard Java can call Cobol subroutines.
I don't get it) I thought that we had to create distributed objects if web-apps are hitting mainframe java classes.
ORB) Object Request Broker.  Middle-ware I believe which is the communication for the CORBA objects.
Can we have java ...) great
Any issues ..) EBCDIC is the format of the mainframe data.  Our current middle-ware does the conversion to ASCII format for us.  I am curious though if the ORB or other communication packages will also perform this translation.
so the client will directly connect to ur Mainframe and it's an intranet so you can write ur own classes to do the necessary leg work.

It is NOT necessary to write distributed objects in CORBA /RMI for a custom Application as urs ,that is wholly my personal opinion.

>>>>> I heard Java can call Cobol subroutines.

Not directly I think right now till JDK 1.2 ,Java can call C/C++ which in turn call COBOL,this is thru Java Native Interface(JNI) ,since I assume u r working on AIX ,it has a COFF(or E -COFF) right?so I think that the C to COBOL linkage will be easy.

>>>> EBCDIC is the format of the mainframe data
does the client reuqire the ASCII format only? if so i think u would have to do manual translation using the

public InputStreamReader(InputStream in,String enc) throws UnsupportedEncodingException

Create an InputStreamReader that uses the named character encoding.
look at

for ur specific encoding I think it's
Cp1046           IBM Open Edition US EBCDIC

>>>>>Add, update, delete access to the mainframe tables.

what is a VSAM file? think how will you access it using C --> COBOL?

what is a db2 file? You are not going to access it using it to throw to client.You are going to I think display the table in a graphical format using HTML to a browser right ?

clarify a bit here.

I am guessing if that is so then u can take a look at
main page
this u can get by clicking around.

basically this is a third party package which will connect to ur database and then display the results thru another package called as htmlkona,the jdbcKona
search for 'Using htmlKona to display dynamic data' at

see the example provided there.

and 1 last point remember abt the 'int',long,byte,short etc... size mappings from Java to C to COBOL.
see ya tommorrow.
Introduction to R

R is considered the predominant language for data scientist and statisticians. Learn how to use R for your own data science projects.

dt19643063098Author Commented:
In regards to your question
VSAM-Virtural Sequential Access Method.  Basically a flat file with Indexes to get to the data faster.
DB2 File-Meant to say table and yes your right.

What is a better approach for a Web-based app that uses the mainframe.  

Dynamic HTML (afraid we would be loosing a lot of gui functionality with this option)

Java Applets (Is there a lot of download time here with buttons, combo boxes, grids etc.)

Java Servlets (heard about them, but don't know what they do.  Sounds like an applet that runs on the server and not the client).  Is this a big performance gain over Applets.

Thanks for your ideas.
To use Applet:
1) There must be a Web server available on the mainframe
1) There needs to be a third machine running Web server and CGIs that in turn communication with the mainframe via CORBA/IIOP or RMI.

To use Servlet:
1) The above has to be true and the Web server must have Java Servlet Engine

To use pure java solution, your mainframe must have a JDK implementation.

Between RMI and CORBA, RMI is slower and simpler, and CORBA is usually faster but much heavier (megabytes of memory is usually needed, of course it depends. Some lightweight ORBs might be available with limited functinality).

Among RMI, DCOM, and CORBA, CORBA is the only feasible solution when mainframe legacy software is in the picture. You have a much greater chance to find a proper language mapping to wrap your DB2 code.

Here is a three-tiered suggestion:
Client/HTML <--HTTP--> ApplicationServer/Servlet+CORBA <--IIOP--> CORBA Objects wrapping DB2 legacy code on the mainframe

The above requires a new application server residing on a separate machine. The advantage is to avoid the access/technology/security/performance/resources limitation on the mainframe. It also allows your mainframe developer to concentrate in working in the environment that they are familiar with. The application server takes care of the fancy part for Web access and can create an uniform data front end for multiple backend mainframe/legacy servers.

Regarding applets, they can easily grow into unmanagable sizes when functionality requirements increase. However, if you are in an intranet environment, applet java class files can be precached on client machines. Therefore, performance shouldn't be a problem for you. It's usually easier to let servlets to generate HTML for the clients. This would eliminate the code for applet without increasing much business logic in the servlets.

One final hint, you might want to take a look at XML for data exchange between applications.

I'm submitting as an answer for it's difficult to cover too much details here. System architecture is a complicated issue.

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
what do u mean by
applet java class files can be precached on client machines

I have only worked on Servlets throwing Applet to web browsers so I cant help u in detail in others.
dt19643063098Author Commented:
Thanks for all your help.  I have some idea of my unknowns now.

When a particular applet requires a large class library apart from what's already available in the VM, the library can either be downloaded by client at runtime or be preinstalled on the client to reduce download time. One example is the applets using JFC/Swing. Again, intranet users might not mind downloading several megs of swing library with an applet.

i would advise not to look at Applet at all as they are horrid memory hoggers,u can try the rest of the GUI componenets in a stand alone application,I am sure many people will approve what I am saying
If centralized program deployment is preferred in an intranet environment, an alternative is to install stand alone programs on clients' machines (as mbormann suggested), AND equipt the programs with update tools that automatically update components and resources files for the clients. Such tools are commercially available.  It's almost like an applet without browser restrictions. Furthermore, if you can automate the inital program installation by using properly signed applets, your clients will love it more.
dt19643063098Author Commented:
Want do you mean by properly singing applets.  Do you have an example of this update process.  What type of coding is involved etc..
Content-Disposition: form-data; name="notify"

Content-Disposition: form-data; name="Submit"

serach for that in PAQ's of EE

have a look at this too,
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today

From novice to tech pro — start learning today.