★ wanayoo — archive 1999 http://developer.iplanet.com/support/faqs/champions/corba.htmlNouvelle recherche | Portail wanayoo
iPlanet

You are here:  Home > Developers > Documentation > FAQs > CORBA FAQ
CORBA/IIOP FAQ
 iPlanet Developers


Developer Program
  Membership
  One-to-One Support
  Newsgroups

Developer Publications
  View Source
  Developer News

Documentation
  Technical Manuals
  White Papers
  TechNotes
  Sample Code
  FAQs
  Books

Technologies
  CORBA
  Directory & LDAP
  Dynamic HTML
  Java
  JavaScript
  Linux
  Security
  SSJS
  XML

Developer Downloads
  Tools & SDKs
  Patches

iPlanet Products
  Technical Resources










spacer
CORBA FAQ
DevEdge Newsgroup FAQ

By Rajeev Arora, Mike Lee, and Bob Schlicher
DevEdge Champions

Rajeev Arora, CORBA Champion, writer of Special Edition using Enterprise Java, and Principal Consultant for SystemSmiths, Melbourne, Australia, providing consulting services in internet and client-server applications.

Mike Lee, Technology Evangelist at Netscape Corporation, for CORBA and Internet Service Broker.

Bob Schlicher, CORBA Architect and Principal Consultant at AlterNet Communications, Inc.

(If you have additional questions about CORBA, visit the discussion group.)

Last Updated: 8/21/98


Note: The Netscape CORBA Newsgroup is for the support of Internet Service Broker ORB included in the Netscape Communicator 4.x client and Netscape Enterprise Server 3.x. Web Applications Interface (WAI) is a set of high-level CORBA enabled APIs for writing server-side applications, similar to NSAPI. For WAI support, see snews://secnews.netscape.com/netscape.dev.wai. Currently, many WAI questions do tend to spill over into the CORBA newsgroup, given that both are CORBA based.


Section 1: General Info
  1. What is Netscape Internet Service Broker (ISB)?
  2. Which versions of Visibroker is ISB based on?
  3. Which Netscape products provide support for CORBA?
  4. Where do I find out more about Netscape's support for CORBA technology?

1.1: What is Netscape Internet Service Broker (ISB)?
    Netscape Internet Service Broker is Netscape's ORB product. Two variations exist: ISB for Java and ISB for C++. ISB is based on the corresponding Visigenic's Visibroker products.
1.2: Which versions of Visibroker is ISB based on?
    Current version of ISB for Java (included in Communicator 4.x and Enterprise Server 3.x) is based on Visibroker for Java Version 2.5 and ISB for C++ is based on Visibroker for C++ Version 2.1.
1.3: Which Netscape products provide support for CORBA?
    • Netscape Communicator/Navigator 4.x or higher (includes client for ISB for Java)
    • Netscape Enterprise Server 3.x (includes ISB for Java and C++; and one developer license)
    • Visual JavaScript 1.0 or higher (provides a development environment for using CORBA components from Javascript.)
    • Netscape Application Server (formerly KIVA). Ships with IONA's Orbix 2.2c01 (C++) and OrbixWeb 2.01.
1.4: Where do I find out more about Netscape's support for CORBA technology? Back to the Question Summary, or to the top.

Section 2: Product Licensing
  1. Where can I find detailed information about licensing of various components of ISB?
  2. What licenses are included with Netscape Enterprise Server 3.x?
  3. What licenses are included with Navigator 4.x / Communicator?

2.1: Where can I find detailed information about licensing of various components of ISB?
    There are specific licensing requirements for ISB. These are specified for all type of combinations, eg. non-Netscape Navigator clients, non-Enterprise Server CORBA servers etc. Detailed information can be found in the Marketing and Licensing FAQ.
2.2: What licenses are included with Netscape Enterprise Server 3.x?
    • Development License for VisiBroker for Java
    • Development License for VisiBroker for C++
    • Runtime License for VisiBroker for Java
    • Runtime License for VisiBroker for C++
2.3: What licenses are included with Navigator 4.x / Communicator?
    • Run-time license for ISB for Java.
Back to the Question Summary, or to the top.

Section 3: Netscape Internet Service Broker Architecture
  1. Is CORBA application development with ISB different from other CORBA products and if yes, how?
  2. How does Netscape ISB differ from Visibroker?
  3. Is Netscape ISB thread safe?
  4. Does Netscape ISB implement thread-pooling?
  5. Can Browser or Composer plug-ins use CORBA?
  6. What is OSAgent?
  7. What is WAI?


3.1: Is CORBA application development with ISB different from other CORBA products and if yes, how?
    Mechanism for clients to discover (and "bind" to) servers in ISB is strictly CORBA compliant. Some other CORBA products use some form of bind API, which is ORB specific. This vendor specific bind call is a way to use a pseudo-naming service built into the ORB itself. According to IIOP/CORBA standard, clients discover servers by obtaining IOR (interoperable object reference) for servers. Naming service is the cleanest mechanism to achive this. Visibroker for Java and ISB use URL naming service, which has been submitted to OMG as a proposed standard. In this mechanism, the stringified (externalised) IOR is written to a directory accessible through the webserver.
3.2: How does Netscape ISB differ from Visibroker?
     
    Architecture Issue Visibroker 2.5 Netscape ISB (as in NES 3.5.x)
    ORB Daemon OSAgent is responsible for 
    1. Registration of active implementations.
    2. Binding clients to server (implementations).
    3. Works as "transient names" service.
    4. Carries out "other" functions such as load-balancing.
    There is no OSAgent or other daemon. ISB is "built-into" NES. Thus, ORBInterfaces are not available explicitly, thus ruling out DII. 
    1. Active implementations write their IORs in NES Name service directory. 
    2. ISB Clients do a name look-up which picks up the IOR file with the same name from the ISB naming service directory. 
    3. "Naming service" is limited to the files containing IORs in directory. 
    4. Is strictly limited to exposing only those IORs that are to be published through the web server.
    Security
    1. Allows use of GateKeeper.
    2. Through the GateKeeper, web clients may be able to register new servers or overwrite existing registations (weakness).
    1. No longer possible to use GateKeeper.
    2. Requires write access to the naming service directory on the webserver, which should be limited to hosts "behind" the webserver.
    3. Disables dynamic invocation and access to ORB services.
     
3.3: Is Netscape ISB thread safe?
    Yes. You have to ensure your server code is thread-safe too, to ensure end-to-end thread-safety of the deployed application.
3.4: Does Netscape ISB implement thread-pooling?
    No! Visibroker for Java 2.5 documentation mentions thread-pooling, but it is implemented only in VBJ 3.0. (Source: Ralph Galantine ralphg@visigenic.com on 15-Sep-97)
3.5: Can Browser or Composer plug-ins use CORBA?
    No. Visigenic and Netscape currently do not support CORBA calls from browser or composer plug-ins. (Source: Posting on secnew://netscape.dev.corba on 15-Sep-97 by Paul Pazandak pazandak@OBJS.com, quoting Visigenic Tech Support)
3.6: What is OSAgent? Is it included in ISB?
    OSAgent is Visibroker's built-in naming and load-balancing service. It was included in the original Enterprise Server 3.0 release. As a result of the Enterprise Server patch and WAI patch (see Getting Started and security sections), OSAgent is no longer required and should not be used. ISB's own URL naming service is used instead.
3.7: What is WAI?
    WAI is a server extension API. It is the current and future wai ; ) (way) to extend Enterprise Server and to add applications to Enterprise Server. WAI service (WAS) is used to handle requests from the browser. Think of it as a newer and better version of NSAPI that is easier to implement and reuse.
    More information can be found within the WAI documentation.
Back to the Question Summary, or to the top.

Section 4: Getting Started
  1. What Netscape Products do I need?
  2. What other tools do I need?
  3. How to configure Enterprise Server for using ISB?
  4. Are there any examples illustrating ISB coding?

4.1: What Netscape Products do I need?
    • Netscape Enterprise Server, latest patches are available at the File Library.
    • Netscape Communicator 4.x or later.
    • Visual JavaScript 1.0 or later, though not mandatory, allows you to develop and debug client and server side CORBA enabled Javascript and Java "weblications".
4.2: What other tools do I need?
    A Java Development Tool of your choice. For example, Symantec Visual Cafe for Java, Borland's JBuilder etc.
4.3: How to configure Enterprise Server for using ISB? 4.4: Are there any examples illustrating ISB coding?
    Yes. Two examples are available here to help you get started.
Back to the Question Summary, or to the top.

Section 5: Common Development Problems
  1. (General ES) Class file Patch.class missing. How do I get it?
  2. Bank and Station Monitor examples shipped with ES3.0 dont work. What is wrong?
  3. (Unix, C++ CORBA Server only) Why is loader unable to find liborb.so ?
  4. (ISB for Java) My CORBA applet works fine in appletviewer, but wont work in Navigator 4.x / Communicator. Why?
  5. What is the name of the client-side ISB runtime Java class libraries?
  6. What version of Visibroker do these libraries are from?
  7. What happens if I remove IIOP10.JAR altogether?
  8. How to upgrade the client IIOP10.JAR to Visibroker for Java 3.x version?
  9. How do I force Communicator to use external org.omg.corba.* classes?
  10. Can I replace NISB.ZIP with VBJ30.JAR in obj.conf to upgarde ES3.x to use Visibroker for Java 3.x?
  11. My CORBA object names dont seem to be resolved, even though the names match exactly. Why?

5.1: (General ES) Class file Patch.class missing. How to get it?
    This was a problem in the original release of Enterprise Server 3.0, which has been fixed by the patches for ES and WAI. Load the latest patch for Enterprise Server and WAI as described in Getting Started.
5.2: Bank and Station Monitor examples shipped with ES3.0 dont work. What is wrong?
    If the example code you have is dated earlier than 17 Dec 1997, download the revised examples, which have the revisions necessary to match late patches to ES3.0.
5.3: (Unix, C++ CORBA Server only) Why is loader unable to find liborb.so ?
    You need to add /wai/lib to LD_LIBRARY_PATH, SHLIB_PATH, or LIBPATH, depending on your platform.
5.4: (ISB for Java) My CORBA applet works fine in appletviewer, but wont work in Navigator 4.x / Communicator. Why?
    The most common reason for this problem is that Communicator 4.x treats even local applets as untrusted. In a development environment, the solution is to add the following lines to prefs.js in your Communicator's install directory.
    user_pref("signed.applets.codebase_principal_support", true);
    user_pref("signed.applets.local_security_for_local_classes", false);
    user_pref("signed.applets.low_security_for_local_classes", true);
    For a production environment, you should use signed applets with capability APIs. Capability APIs allow an applet to explicitly request priviledges outside the sandbox.
5.5: What is the name of the client-side ISB runtime Java class libraries?
    IIOP10.JAR, residing in Program/Java/classes subdirectory of your Communicator directory.
5.6: What version of Visibroker do these libraries are from?
    Visibroker for Java 2.5.
5.7: What happens if I remove IIOP10.JAR altogether?
    This is pre-Communicator or Navigator 3.x situation. Your CORBA client applets will still work, but the client runtime component of the ORB will be dynamically downloaded. Since, it consisists of many class files, clientside ORB initialization may take up to several minutes.
5.8: How to upgrade the client IIOP10.JAR to Visibroker for Java 3.x version?
    1. Remove or rename IIOP10.JAR.
    2. Ensure VBJ30.ZIP is on the CLASSPATH on client machine running Netscape communicator, or in the classes directory of the Communicator itself.
    3. Add the <PARAM name=org.omg.CORBA.ORBClass value=com.visigenic.vbroker.orb.ORB> to your html.
    4. If using Gatekeeper on the server, ensure it is running in the same directory as your CLASSPATH, or add it to CLASSPATH. This will not be very optimal, since VBJ30.ZIP (about 2MB) contains all VBJ 3.0 classes, rather than just the ones required for client-side ORB.
5.9: How do I force Communicator to use external org.omg.corba.* classes?
    A commonly attempted and unsuccessful approach is to code the following applet parameters with your applet, to (a) specify the target classes to use and (b) Ensure backwards compatibility if using a version of Visibroker later than 2.5 on the server side:
    <param name=org.omg.CORBA.ORBClass value=com.visigenic.vbroker.orb.ORB>
    <param name=ORBbackCompat value=true>
    The reason it does not work is that even though ORBClass is mapped to your vendor ORB, other class lookups are still resolved within IIOP10.JAR.
5.10: Can I replace NISB.ZIP with VBJ30.JAR in obj.conf to upgarde ES3.x to use Visibroker for Java 3.x?
    No.
5.11: My CORBA object names don't seem to be resolved, even though the names match exactly. Why?
    A common reason is you are using naming directory convention from pre-WAI patch release. For example, instead of:

    netscape.WAI.Naming.register("<A HREF="/old?u=http%3A%2F%2Fdeveloper.iplanet.com%2Fsupport%2Ffaqs%2Fchampions%2Fcorba.html&y=1999">http://" + host + "/iiop_objects/VisigenicBank", manager);
    

    Register the Server only with the following URL:

    netscape.WAI.Naming.register("<A HREF="/old?u=http%3A%2F%2Fdeveloper.iplanet.com%2Fsupport%2Ffaqs%2Fchampions%2Fcorba.html&y=1999">http://" + host + "/VisigenicBank", manager);

    This modification is necessary if you have installed the WAI-Patch.

Back to the Question Summary, or to the top.

Section 6: Advanced Design and Development Issues
  1. My applet does not work with Communicator 4.0.3 (with JDK 1.1.2) + 403wt.zip (upgrading NC to JDK 1.1.4)?
  2. How do I rollout my applet to production without requiring users to muck around with the IIOP10.JAR file and other settings?
  3. How should a client re-connect to a CORBA Server after a shutdown and restart?
  4. What is the relative performance of a CORBA client applet vs. a CORBA client (java) application?
  5. Can I use event service (callbacks) with ISB?

6.1: My applet does not work with Communicator 4.0.3 (with JDK 1.1.2) + 403wt.zip (upgrading NC to JDK 1.1.4)?
    Upgrade to Communicator 4.0.5 (JDK 1.1.5) or better. There may be a bug with JDK 1.1.4 release.
6.2: How do I rollout my applet to production without requiring users to muck around with the IIOP10.JAR file and other settings?
    Use Java Plug-in to deploy the JVM you want your users to use. Note that you need to modify your HTML to use this plug-in and develop your applet with the same version of JDK as that of the Java Plug-in specified.
6.3: How should a client re-connect to a CORBA Server after a shutdown and restart?
    You have to start your server with the option
        -OAport 
    or Java runtime option
        -DOAport = 

    Retaining the previous port number contributes to keeping the client IOR (Interoperable Object Reference) valid.

6.4: What is the relative performance of a CORBA client applet vs. a CORBA client (java) application?
    This is courtsey of Anat Katz-Lichtenstein. According to his benchmark, a round trip time in Navigator applet was 70 millisecond, vs. 20 milliseconds in a java application --- both being CORBA clients. The additional time taken by the applet can be attributed to:
    1. If using Gatekeeper, it will add another hop in the round trip.
    2. Browser security sandbox environment will take resources and time for validation.
    3. Operating system resource allocation happens two layers down -- OS allocates resources to browser, who in turn allocates resources to JVM.
6.5: Can I use event service (callbacks) with ISB?
    Use of event service will require the applet to create a CORBA server implementation and register with ISB. This is possible only if the applet can write to name service URL directory on the webserver. This does not fit in with Netscape ISB's security implementation approach. Allowing write access to applet client hosts (which may require opening up that directory to everyone), may be possible to implement, but this functionality is not supported by Netscape. An implementation with production quality security will require authentication and authorization at both the client and server firewalls/webservers.
Back to the Question Summary, or to the top.

Section 7: Security
  1. Why was Gatekeeper taken out of the final release Enterprise Server 3.x?
  2. When will there be IIOP/ SSL support in the ORB environments?
  3. What security concerns are there with enabling the Enterprise Server to run WAI applications?
  4. How can we reduce the security problem with running WAI applications?

7.1: Why was Gatekeeper taken out of the final release Enterprise Server 3.x?
    Netscape chose for security reasons, to take out the Gatekeeper feature in Enterprise Server 3.x. Today there is no SSL support for IIOP which results in lack of privacy in an open environment such as the Internet. Gatekeeper allows any machine that can reach the server via HTTP or IIOP to register or intercept services, and or corrupt the namespace.

    Netscape will be adding IIOP/SSL support to the C++ ORB in the Apollo release of the SuiteSpot servers, and for the Java ORB in the Mercury release of the Communicator.

7.2: When will there be IIOP/ SSL support in the ORB environments?
    Netscape will be adding IIOP/SSL support to the C++ ORB in a future release (later than Apollo) of the SuiteSpot servers, and for the Java ORB in the Mercury release of the Communicator. IIOP/SSL will be used to support point-to-point authentication based on a certificate framework. The protocol will include support for trust-based principal delegation.
7.3: What security concerns are there with enabling the Enterprise Server to run WAI applications?
    If your web service is implemented as an application that runs outside the Enterprise Server's process, the following scenarios could occur: Someone could replace a web service by running another program that registers under the same name or by uploading a file to the server. Someone could run a program on a separate machine and register the program with your Enterprise Server. For more information read the Security chapter in: Writing web applications with WAI.
7.4: How can we reduce the security problem with running WAI applications?
    Netscape recommends that you follow these guidelines: (a) Restrict login access to the Enterprise Server's host machine. (b) Run WAI applications on the local machine only (the machine on which the Enterprise Server runs). (c) Restrict osagent so that it only accepts connections from the local host only.

    For more information read the Security chapter in: Writing web applications with WAI

Back to the Question Summary, or to the top.

Section 8: Future Support of CORBA in Netscape Products
  1. When will ISB for Java and C++ in Communicator and Enterprise Server be upgraded to later/latest version of Visibroker?
  2. When will an implementation of Secure IIOP (IIOP over SSL) be available in Netscape products (Communicator and Enterprise Server 3.x)?
  3. Is Netscape committed to Visigenic's ORB or is it likely to be replaced by another ORB like Orbix?

8.1: When will ISB for Java and C++ in Communicator and Enterprise Server be upgraded to later/latest version of Visibroker?
    Netscape is working closely with Visigenic to integrate the latest versions of Visigenic ORBs into the releases of Enterprise Server and Communicator.

    The simplified version of the route that Netscape takes is the following:

    • Visigenic Releases their ORB
    • Netscapes get source code andevaluates release
    • Netscape modifies the code to fit Netscape security models, etc. (i.e. Removal of Gatekeeper).

    So expect future major releases of Netscape products to upgrade to the latest or close to latest versions of the Visigenic ORB.

8.2: When will an implementation of Secure IIOP (IIOP over SSL) be available in Netsacpe products (Communicator and Enterprise Server 3.x)?
    Netscape is actively working on an IIOP over SSL solution. Details of the approach are likely to be made public before a major release containing new versions of Visibroker products.
8.3: Is Netscape committed to Visigenic's ORB or is it likely to be replaced by another ORB like Orbix?
    Netscape is committed to work with Visigenic ORB for the visible future.
Back to the Question Summary, or to the top.



Email any ideas and suggestions for improving this FAQ to the CORBA Champion

ADDITIONAL READING

NETSCAPE CORBA RESOURCES

GENERAL CORBA RESOURCES

CORBA SECURITY RESOURCES

MEMBERS RESOURCES

Content contributed voluntarily by our awesome DevEdge Champions based on peer-to-peer discussion in the DevEdge newsgroups. While Netscape hosts them, it does not offer any direct developer support via the newsgroups.

This FAQ is intended as a developer resource. Any reference to third parties or third-party products should not be construed as an endorsement by Netscape Communications Corporation. 


Related Readings:


Any sample code included above is provided for your use on an "AS IS" basis, under the Netscape License Agreement - Terms of Use

spacer spacer


                                                       
iPlanet International | Year 2000 | Site Map | Feedback
Products | Solutions | Support | Services | Download | About Us | Developer
© 2000 Sun-Netscape Alliance. All Rights Reserved  Privacy Policy