VisiBroker 4 – Features & Benefits


 
Complete OMG CORBA Implementation
VisiBroker
Full support for CORBA 2.3 specifications
V
Portable Object Adapter (POA), which provides for sophisticated management of server object lifetimes, and allows server source code portability across ORB products
V
Objects By Value (OBV), for passing of arbitrary complex objects and graphs of objects by value across processes, machines, and languages
V
Valuetypes, the OMG-specified mechanism for encoding and passing objects by value which allows interoperability of OBV across ORB products
V
RMI over IIOP and the Java-to-IDL reverse mapping allows Java developers to write CORBA applications without having to learn IDL and other CORBA features, and allows existing RMI applications to be migrated to VisiBroker’s high-performance CORBA runtime.
V
A very high-performance robust implementation of IIOP, which has become the de-facto industry standard IIOP protocol implementation against which other IIOP implementations are judged
V
GIOP 1.2 for enhanced interoperability. Fragmentation for enhanced performance by enabling large requests to be interleaved seamlessly with smaller ones. 
V
Quality of Service (QoS) APIs, for configuring or modifying the behavior of the ORB runtime & services, to allow developers to make engineering trade-offs
V
ORB Property Management, a uniform scheme for managing the numerous configurable aspects of VisiBroker
V
Support for Multi-homed Hosts, to allow effortless deployment of VisiBroker applications on machines with multiple network cards, such as firewall machines, or high-end servers
V
Interface Repository (IR) for storing descriptions of CORBA Object Interfaces, and other Type information for runtime discovery by clients
V
Implementation Repository and the Object Activation Daemon (oad), which allows the activation of both CORBA objects and servers on demand, according to multiple configuration policies
V
OMG standard IDL-to-Java mapping, crucial for source portability of your Java-CORBA applications across ORB products
V
OMG standard IDL-to-C++ mapping, crucial for source portability of your C++-CORBA applications across ORB products
V
idl2java compiler, for implementing IDL interfaces in Java, and invoking CORBA objects with IDL interfaces, from Java.
V
idl2cpp compiler, for implementing IDL interfaces in C++, and invoking CORBA objects with IDL interfaces, from C++.
V
java2idl compiler for creating IDL from Java code, thereby, allowing you to re-implement Java objects in another language.
V
java2iiop compiler for creating IIOP-compliant stubs and skeletons directly from Java interfaces, which eliminates the need to learn & write IDL
V
Support for both Inheritance and Delegation (TIE) mechanisms, to allow developers flexibility in designing server object models and hierarchies
V
Portable stubs and skeletons, to allow developers to substitute a different ORB runtime into an application developed with VisiBroker
V
Seamless propagation of System Exceptions and User Exceptions across machines, operating systems, and languages
V
Integration with industry-standard naming and directory services via support for the CORBA Naming Service, and LDAP
V
A smart ORB runtime that chooses most efficient marshalling and communication strategy as appropriate
V
Hooks (Object Wrappers, Interceptors) provided for low-level customization and hand-coding of networking parameters, location algorithms, marshalling algorithms, etc.
V
Support for static, dynamic, synchronous and asynchronous invocations
V
Support for various levels of logging for Java applications, for debugging and management
V
VisiBroker for Java
VisiBroker
Implemented in 100% Pure Java, to make CORBA available wherever Java is available
V
Ability to automatically download the required ORB classes to a thin client, allows Java-CORBA applets to be written and deployed without having to install anything else on thin clients
V
VisiBroker for C++
VisiBroker
ANSI C++ compliant interfaces for maximum source portability
V
Support for code generation using either namespaces or nested classes to allow developers maximum flexibility in their use of these C++ features
V
Uses native operating system threads internally and provides the same threading models to developers on all platforms
V
Single-threaded model available, in addition to Thread-per-session and Thread-per-request with Thread Pool.
V
Single-threaded library also available for applications that are known to be single-threaded and wish to avoid the overhead of locking and synchronization primitives
V
Same-machine Optimizations during method invocations, to boost performance for targets that are on the local machine (e.g., optionally using NT shared memory on NT, or Unix domain sockets on Unix)
V
Configurable send/receive/connect timeouts for user-configurable fault-tolerance
V
Uses portable abstraction layers, to ease porting to multiple platforms, by Inprise, OEMs, and ISVs
V
IDL to Java & IDL to C++ Compilers
VisiBroker
Allow building of CORBA 2.3 compliant servers and clients with full Valuetypes support
V
Support for generation of POA interfaces on server side, to allow server programmers to code to new POA APIs
V
Support for generation of older BOA interfaces on server side, with the 
-boa compiler option, to ease migration of BOA-based code
V
Accurate and verbose error messages for fast development
V
Fast IDL compilation (order of magnitude faster than previous versions)
V
Ability to also compile generated Java stubs and skeletons during the IDL compilation process
V
Both idl2java and idl2cpp are implemented completely in Java
V
RMI over IIOP
VisiBroker
Supports the CORBA 2.3 Java-to-IDL Mapping
V
Supports RMI interfaces for client interfaces and server implementations
V
Pure Java 2 implementation (no native code)
V
Backwards Compatibility and Interoperability
VisiBroker
BOA APIs preserved, and now layered atop the new POA APIs, to provide source code compatibility for VisiBroker 3.x applications
V
Runtime Interoperability between VisiBroker for Java 4.x and VisiBroker for C++ 4.x
V
Runtime Interoperability between VisiBroker 4.x and VisiBroker 3.3 and later 
V
Support for General Inter-ORB Protocol (GIOP) versions 1.0, 1.1, and 1.2, with 1.2 being the default, and automatic fallback to previous versions based on peer capabilities
V
SmartAgent (OSAgent Daemon)
VisiBroker
A VisiBroker value-add that provides a dynamic distributed naming & directory service with support for fault-tolerance and load-balancing
V
Ability to be used both as a lightweight naming service by itself and/or as bootstrapping for automatically discovering CORBA services such as the CORBA Naming Service
V
Simplified API that eliminates the complexity of discovering objects
V
Support for automatic discovery of the nearest Smart Agent by VisiBroker server processes
V
Support for automatic discovery of the nearest Smart Agent by VisiBroker client processes
V
Ability for Smart Agents to discover other Smart Agents in the network
V
Ability to control whether and when UDP broadcasts are used to automatically discover Smart Agents
V
Support for networks of Smart Agents to span subnets
V
High Availability & Fault Tolerance, to allow a CORBA client using an object A on machine M to transparently fail over to using a replica, object B on machine N, without requiring any coding by the application programmer
V
Round-robin load balancing built-in
V
ORB hooks (bind interceptors) and programming examples for adding other load-balancing algorithms
V
Support for standard CORBA object migration, which allows clients to automatically discover that an object has moved from machine M to machine N, without requiring special coding by the application programmer
V
Support for the use of Smart Agents in Internet or other Wide Area Network (WAN) scenarios when used in conjunction with the GateKeeper
V
Ability for an administrator to turn off the failover feature for a client, but leave other Smart Agent related behaviors intact
V
Ability to disable and completely remove the Smart Agent from your deployed application. (The Smart Agent can be intelligently leveraged by all other parts of VisiBroker, but is not required to be present).
V
Ability to create multiple parallel “virtual domains” of CORBA clients, objects, and servers on the same set of machines (e.g., development vs. QA), by using different Smart Agent port numbers
V
Location Service, an IDL-based interface which can be used to discover the information contained in a network of distributed Smart Agents, such as the location of all the agents, and the types, names, and location of all objects known to the Smart Agent(s)
V
Server-Per-Method Policy: A server process is started for each method that is invoked.
V
Ability to run as an NT Service
V
Object Activation Daemon (OAD)
VisiBroker
Automatically launches servers when needed by clients 
V
Shared-Server Policy: The OAD only activates one server implementation which is shared by multiple clients.
V
Unshared-Server Policy: Only one client of a given implementation will be bound to the activated server. Separate servers are activated for each additional client.
V
Support for automatic starting of both POA and BOA based servers
V
Both command-line and programmatic interfaces available for administering the OAD
V
Ability to run as an NT Service
V
Interface Repository (IR)
VisiBroker
Full support for new CORBA 2.3 Interface Repository interfaces
V
Ability to run as a daemon for interaction-free operation
V
Ability to selectively populate the Interface Repository
V
Ability to incrementally populate the Interface Repository
V
Ability to be started up on demand
V
Ability to run multiple replicas of the Interface Repository, and load balance across them
V
Ability to fail-over from one Interface Repository to another
V
Ability to run as an NT Service
V
Portable Object Adaptor (POA)
VisiBroker
Full support for CORBA 2.3 specification
V
Backward compatibility for VisiBroker 3.x applications with a BOA based on POA
V
Support for all specified POA policies, such as Thread policy, Lifespan policy, Object ID Uniqueness policy, ID Assignment policy, Servant Retention policy, Request Processing policy, Implicit Activation policy, etc.
V
Support additional VisiBroker-specific policies, such as Bind Support policy
V
ServantLocators and ServantActivators allow fine-grained control over how objects are activated and deactivated
V
Servant Timeouts, to automatically deactivate objects that are idle
V
Ability for user to create multiple IOR profiles, so that the same object might be accessed in different ways by different clients (e.g., over SSL or not)
V
Ability for user to create multiple agent registration policies to control which objects get published to the Smart Agent
V
Ability to programmatically specify which transport layer to use, on a per-POA basis
V
Objects By Value (OBV)
VisiBroker
OMG-specified extension of the basic CORBA type system, to include Valuetypes (local programming objects) , and pass them by value as parameters to requests.
V
Dynamic Invocations and Data Types
VisiBroker
Client-side Dynamic Invocation Interface (DII) to enable clients to dynamically build operation requests for any object interface that is stored in the Interface Repository. Allows you to write clients such as object browsers, administration tools, testing tools, or very dynamic end-user applications that must operate on an unlimited range of object types that cannot be known in advance by the client
V
Server-side Dynamic Server Invocation (DSI) to enable servers to dynamically create object implementations at runtime based on client requests, or to allow them to arrange custom handling of requests (such as forwarding to another server) without compile-time knowledge of the types involved in each request
V
Robust support for CORBA Any and Dynamic Any (DynAny) types, for building powerful client and server applications that can create and interpret arbitrary complex data types at runtime
V
Interceptors
VisiBroker
Interceptors allow advanced application programmers to add custom code to the ORB runtime, which is executed during object creation and destruction, method invocation, etc.
V
InterceptorManager APIs for managing the registration of interceptors
V
Service Initializers allow Interceptors to be dynamically loaded into client and server processes, in both VisiBroker for Java and VisiBroker for C++, without changing or even recompiling client or server code
V
Debugging interceptors that allow breakpoints to be set in remote servers from a central console
V
Logging interceptors provided as programming examples
V
Client-Side Interceptors:
V
-- BindInterceptors for inserting user code before and after binds, which allows users to customize object lookup algorithms, naming service fail-over strategies, load balancing algorithms, etc.
V
-- ClientRequestInterceptors for inserting user code at various points during a request marshalling and invocation, which in combination with ServerRequestInterceptors allow users to perform custom transformations of requests and responses, such as encryption/decryption, compression/decompression, adding/removing parameters, propagating application contexts, etc., all without changing remote interfaces and client and server application code.
V
Server-Side Interceptors: 
V
-- POALifeCycleInterceptor for inserting user code at POA creation/destruction
V
-- ActiveObjectLifeCycleInterceptor for inserting user code at Object activation /deactivation
V
-- IORCreationInterceptor for manipulating a newly created IOR.
V
-- ServerRequestInterceptor for inserting code at various points during a request execution and reply marshalling… see ClientRequestInterceptors above.
V
Object Wrappers
VisiBroker
Object wrappers enable you to define methods that are invoked when a client application invokes a method on a bound object or when a server application receives a operation request. Unlike interceptors, which are invoked at the ORB level, object wrappers are invoked before an operation request has been marshaled.
V
Typed-Object-Wrappers to mimic the interface of the object that is being wrapped
V
Untyped Object Wrappers to provide the same generic interface to intercept invocations to the object(s) being wrapped
V
Service Initializers allow Object Wrappers to be dynamically loaded into client and server processes, in both VisiBroker for Java and VisiBroker for C++, without changing or even recompiling client or server code
V
VisiBroker Event Service
VisiBroker
Complete Implementation of the CORBA Event Service specification
V
Support for creation of multiple event channels, in the same event channel server process, or in multiple processes on multiple machines
V
Support for instantiating event channels in their own server, or in a client or server of your own
V
Ability to customize how events are handled (e.g., persistence) using interceptors and object wrappers
V
Support for Push Suppliers, which allows the writing of proactive suppliers, which actively push events into an event channel
V
Support for Pull Suppliers, which allows the writing of passive suppliers, which register with an event channel but provide events to the channel only when the channel requests them
V
Support for Push Consumers, which allows the writing of passive consumers, which register with an event channel and are delivered events as soon as they’re pushed into the channel
V
Support for Pull Consumers, which allows the writing of active consumers, which proactively pull events from an event channel and can block for events to become available
V
VisiBroker Naming Service
VisiBroker
Support for OMG-standard CORBA Naming Service APIs
V
Support for the Interoperable Naming Service (INS) Specification, which allows the VisiBroker Naming Service to be integrated into any CORBA application with ease
V
Support for JNDI APIs, using the CosNaming Provider for JNDI from Sun, to allow RMI- or EJB-style clients to look up objects in the same naming services being used by CORBA clients & servers
V
Support for using an industry standard LDAP server as your directory service (see Pluggable Storage, below), and inherit enterprise-level scalability, replication, and fault-tolerance offered by commercial LDAP servers, such as the Netscape Directory Server
V
Multiple naming servers can be started for the same naming data store for replication, performance and scalability
V
URL Naming
VisiBroker
Allows the use of any web server as a naming server, so that a highend naming service need not be deployed for small web-based applications
V
Servers can associate URLs with CORBA object references, instead of or in addition to publishing the object reference in other naming services
V
Clients can look up CORBA object references using URLs instead of using more complicated naming service APIs
V
Allows the use of web server’s access control features to control access to a URL Naming hierarchy
V
VisiBroker for C++ clients and servers can also use URL Naming by using any HTTP Client libraries
V
Pluggable Storage in the VisiBroker Naming Service
VisiBroker
Several different kinds of storage can be “plugged in” underneath the Naming Service
V
In-Memory Storage, to be used when it is reasonable to keep all naming data in memory, and does not need to be persistent
V
JNDI Storage, to allow naming data to be written to any directory service for which there exists a JNDI provider, e.g., LDAP, NDS, Active Directory, etc.
V
JDBC Storage to allow naming data to be written to any database for which there exists a JDBC driver, e.g., Oracle, Sybase, MS SQL Server, DB2, JDataStore, InterBase
V
Optimized JDBC Adaptor with caching facility, to bring the performance of using a JDBC data store for naming data, close to the performance of using an In-Memory storage.
V
DataExpress Adaptor, for fast access to the Inprise’s JDataStore
V
Federation in the VisiBroker Naming Service
VisiBroker
Support for federation, to allow multiple naming servers to be deployed, with naming hierarchies spanning multiple servers, which can increase performance and scalability, and allow decentralized administration
V
Command-line options for federation of naming servers, for easily federating multiple naming servers
V
Clustering in the VisiBroker Naming Service
VisiBroker
Ability to associate a single object name with multiple object references, which allows the Naming Service to load-balance over the set, when a client attempts to look up that name
V
Requires no changes to client code performing lookups of object references
V
Multiple clusters can be created in the Naming Service, to allow multiple unrelated services to use the clustering feature
V
Criterion for load-balancing is specified for each cluster, to allow different clusters to use different load-balancing criteria
V
APIs to create clusters, and add, remove and iterate through their members, for complete programmatic control over clusters
V
APIs to retrieve all the clusters that exist in the Naming Service, to allow clients, servers and admin tools to determine which service clusters exist
V
Load-Balancing in the VisiBroker Naming Service
VisiBroker
Dynamic Load-Balancing is performed automatically, both by the Smart Agent (see Smart Agent) and by the VisiBroker CORBA Naming Service
V
Customizable Load-Balancing Algorithms, can be plugged into the Naming Service using the Criterion Manager APIs
V
Load balancing at the CORBA object level can be combined with load balancing at the DNS, web server, or servlet engine level
V
Fault-Tolerance and Fail-Over in the VisiBroker Naming Service
VisiBroker
Failover of the Naming Service, avoids a single point of failure at the Naming Service by allowing administrators to identify master and slave naming servers
V
Transparent failover by clients from a failed master Naming Server to a slave Naming Server, with no special coding required by application programmer, to avoid single point of failure at the Naming Service
V
Transparent failover by clients from a failed member of cluster to another member of that cluster, with no special coding required by the application programmer, to tolerate a failure in the server object
V
Built-in Scalability
VisiBroker
Ability to replicate objects in multiple processes on multiple machines
V
Server-side support for multi-threading to allow servers to serve multiple clients simultaneously and make maximum use of available resources
V
Client-side support for multi-threading to allow multiple threads in a client process to make simultaneous invocations to the same server, using a single connection, without blocking or deadlocking
V
Thread Pooling built-in, to manage server resources in a scalable fashion
V
Connection Pooling built-in, to manage TCP/IP connections in a scaleable fashion
V
Same-process Optimizations during method invocations, to boost performance for targets that are in the local process (e.g., substituting remote object references with local pointers/references)
V
Server-Threading Models
VisiBroker
Thread-Per-Session: One server-side thread is spawned per client connection – regardless of the number of object instances accessed by the client within the server.
V
Thread-Per-Request with Thread-Pool: A dynamically-sized pool of threads is available to handle client requests. Upon request completion, the thread returns to the pool for the next client request.
V
Ability to specify minimum and maximum number of threads per server process, to bound resource consumption
V
Automatic growth of thread pool from minimum size to maximum size as the load on the server increases
V
Thread idle-timeouts for automatic shrinking of the thread pool to minimum size as load on the server decreases
V
Pluggable threading models to allow OEM customers to add custom threading models
V
Connection Management
VisiBroker
Connection Management enables Servers to recycle existing connections for maximum performance, scalability, and throughput.
V
Ability for a server programmer or administrator to specify the maximum number of client connections that can be open at any point in time
V
Ability for a client programmer or administrator to specify the maximum number of server connections that can be open at any point in time
V
Connection idle-timeouts to allow clients and servers to shut down TCP/IP connections that are not being used
V
Connection recycling, in which the server-side ORB runtime automatically shuts down the Least Recently Used connection to allow a new client to connect to the server, without exceeding the maximum number of allowed connections
V
Automatic reestablishment of a previously-terminated connection between a client and a server when it is needed again, without disrupting the client-server session
V
Pluggable transport layers to allow OEM customers to add custom transport layers
V
Pluggable connection management models to allow OEM customers to add custom connection management algorithms
V
VisiBroker GateKeeper
VisiBroker
The GateKeeper is a high-performance IIOP Proxy based on CORBA Firewall specifications
V
Configurable stateless/stateful connection management for flexibility in managing server resources
V
Support for deploying GateKeeper functionality as a Servlet, which allows GateKeeper functionality to be tightly integrated with your enterprise web server or servlet engine, and simplified administration and management
V
Ability to handle asynchronous IIOP in addition to synchronous IIOP
V
Clustering, to allow transparently load balance across multiple GateKeepers
V
Fault tolerance, to allow defining master and slave GateKeepers and transparently fail-over across them
V
Support for all popular firewall products and configurations, from simple dual-homed machines and software based firewalls, to sophisticated configurations with multiple levels of routers, demilitarized zones (DMZs) and bastion hosts
V
Support for Network Address Translation (NAT) devices, which substitute one IP address for another for security purposes, and cause havoc in other ORBs
V
Support for Dual-Homed Gateway machines which are often used to run software-based firewalls
V
GateKeeper Chaining, useful not only for navigating multiple levels of firewalls but also for concentrating connections from large numbers of clients
V
Support for HTTP Proxy Servers, which allows clients behind proxy servers to interact with the GateKeeper without problems
V
Support for SOCKS, which allows Java clients running behind SOCKS proxy servers to make IIOP invocations 
V
Support for HTTP Tunneling, which allows clients to tunnel IIOP over HTTP, to ease deployment
V
Seamless integration with web servers and servlet engines
V
Applet Support:
V
-- Lightweight HTTP server built-in, for serving applets or serving HTML on small-scale
V
-- Support for making IIOP callback to applets, in the presence of firewalls
V
-- Support for forwarding an Applet’s requests for communication with a Smart Agent, to the Smart Agent network on the server-side, to avoid UDP communication on the Internet and WANs
V
Visual Administration Tools
VisiBroker
Visual GUI tools for simplified administration
V
Visual control of servers and their properties using the VisiBroker Console
V
Discover and browse all running Smart Agents and their hosts
V
Discover and browse the names and types of all CORBA objects known to all Smart Agents
V
Discover all running Implementation Repositories and browse their contents
V
Discover all running Interface Repositories and browse their contents
V
Discover all running Naming Services and browse their contents
V
Support for browsing & editing any naming service supporting JNDI
V
Discover all running GateKeepers and configure their properties
V
ORB Property Management
VisiBroker
Ability to configure all ORB properties using a uniform naming convention via the command line
V
Ability to configure all ORB properties using a uniform naming convention via a centralized properties file
V
Ability to configure all ORB properties using a uniform naming convention via programmatic APIs
V
ServerManager Interface
VisiBroker
Ability to communicate directly with the ORB runtime of a running VisiBroker client or server, and configure various ORB properties without shutting down the client or server, in 24x7 situations
V
Quality of Service (QoS)
VisiBroker
Full support for policy management and QoS in the runtime
V
Support for additional VisiBroker-specific policies
V
Platform Availability
VisiBroker
Microsoft Windows
V
Sun Solaris
V
Redhat Linux
V
HP-UX
V
IBM AIX
V
IBM OS/390 Mainframe
V

 
 
 
 
 

Separately Available Options for VisiBroker 4
 
Complete range of CORBA Services (from Prism Technologies)
VisiBroker
Orbix
JBroker
OpenFusion Trading Service 
V
   
OpenFusion Notification Service 
V
   
OpenFusion LifeCycle Service
V
   
OpenFusion Property Service
V
   
OpenFusion Collection Service 
V
   
OpenFusion Concurrency Service 
V
   
OpenFusion Relationship Service 
V
   
OpenFusion Time Service 
V
   
Secure GateKeeper (requires Inprise Security Service)
VisiBroker
Orbix
JBroker
Support for IIOP-over-SSL, which layers IIOP traffic over SSL, thus automatically encrypting all CORBA traffic between a given client and server, without requiring coding changes
V
   
Support for choosing IIOP-over-SLL or unencrypted IIOP, from the GateKeeper to each server, on a server-by-server basis
V
   
Support for HTTPS Tunneling, which allows thin clients to tunnel IIOP over HTTPS – by taking advantage of the HTTPS implementation already available in all popular web browsers, this feature makes possible secure CORBA clients with zero-installation and dramatically eases deployment of secure CORBA applications
V
   
Supports IIOP/SSL Callbacks, to allow servers to make secure CORBA invocations to clients
V
   
Credential Forwarding, the ability to forward client credentials to servers, so that servers can authenticate clients themselves
V
   
Authentication of clients on behalf of servers to allow the GateKeeper to immediately reject intruders
V
   


Interface Ltd.

Tel: 7+(095) 135-55-00, 135-25-19
E-mail: mail@interface.ru
http://www.interface.ru
Ïîäãîòîâèëè: tkachev@interface.ru
Äàòà: 17.11.99