For more information please contact Expersoft at (800) 366-3054 or send mail to xshell@expersoft.com.
Under the technical leadership of nationally acclaimed defense sector engineers with extensive experience in distributed and object computing, Expersoft has commercialized a technology that predates industry standards groups. Their vision is to deliver a distributed object management environment that effectively "transforms the corporation into a unified computing resource." Coincidentally, the first implementation of XShell at Raytheon in 1991 occurred simultaneously with the Object Management Group's (OMG) first Common Object Request Broker Architecture (CORBA) specification.
Today, XShell Distributed ORB conforms to the CORBA object model, yet it surpasses other compliant ORBs in scalability, interoperability, and performance. XShell Distributed ORB is the only object request broker offering a unique foundation of a distributed architecture, transparent object distribution, asynchronous messaging, encapsulation of legacy code and platform independence. Additional integrated products in the XShell distributed object management environment include services for security, transaction management, CORBA IDL support, and expert systems development.
The potential for XShell is tremendous because it delivers the promise of object-oriented computing -- an $800 million market in 1994 -- while tying all manner of distributed systems together into one framework. XShell transforms legacy, client/server and object applications into interoperable objects. With the XShell distributed object management environment, developers can connect legacy and client/server systems and migrate their object systems into large-scale, distributed environments. Other message-handling products from database, hardware and niche middleware vendors do not offer the same object-oriented technology, openness, robust functionality, interoperability and performance as XShell.
To fuel distributed object development, Expersoft founded the Distributed Object Access Alliance (DOAA). It provides planning and migration support, and promotes the developments of interoperable tools to give end users robust object-oriented solutions. To-date, the DOAA has over 20 vendor and system integrator members.
Expersoft's strategy is to proliferate XShell into mainstream, production-level applications. Expersoft has more than 25 customers including Alta Software, Andersen Consulting, Chemical Bank, KPMG, Ontario Hydro, Raytheon, Sprint, and US West. XShell has also been chosen by Andersen Consulting's Eagle Technology project team as the basis of a new distributed object architecture that will support custom applications in vertical industries.
Expersoft has over $6.5 million in venture capital from Crosspoint Venture Partners, Enterprise Partners, and Indosuez Partners. XShell is sold direct as well as through systems integrators, value-added resellers and original equipment manufacturers around the world. Expersoft has strategic alliances with technology vendors including Covia Technology, Object Design, Inc., Rational Software, and Rogue Wave Software. Based in San Diego, the company has offices in Boston, Chicago, Dallas, Denver, and London.
This type of heterogeneous environment requires extensive messaging-oriented middleware or connectivity software for collaborative processing and data access. Major new software challenges have fallen out of the distributed and client/server computing movement, including needs for asynchronous communications, network security and heterogeneous platform support, consistency and availability of distributed data, distributed transaction processing, and systems administration. The increased use of object-oriented technology in new applications demands a new software infrastructure capable of integrating object and non-object-oriented applications in enterprise environments.
Industry analysts concur. According to the META Group of Stamford, Conn., the successful deployment of distributed systems and object technology hinges on the availability of a new breed of distributed object management software. "The reality is that businesses face severe obstacles in their efforts to combine client/server and object-oriented technology into dynamically distributed information systems, which provide the flexibility and performance they require, " states a META Group report.
Statistics from Forrester Research of Cambridge, Mass. estimate that roughly 24% of users surveyed plan to deploy their first object-oriented application in 1994, with the majority planning deployment later when more supporting tools become available. A recent Forrester report stated, "Users do not have the technology to manage objects distributed across a network. The key to managing distributed objects is object request brokers (ORBs)."
In response to demand, the market has witnessed the emergence of industry standards groups such as the Distributed Computing Environment (DCE) and the Object Management Group (OMG). The OMG's first specification of CORBA, published in October 1991, was designed to help vendors develop standards-based ORBs and enable users to deploy distributed systems quickly and efficiently. Today, Expersoft continues to play a critical role in furthering the standards for CORBA. Expersoft co-submitted the Universal Networked Objects (UNO) proposal, which was selected as the basis for the interoperability principals surrounding the CORBA 2 interoperability standard. Expersoft continues to demonstrate technology and market insight, awareness and leadership throughout these discussions.
There has emerged a market need for a more robust distributed object management environment that enables users to transparently create objects and manage them in highly decentralized, large-scale, distributed computing environments. This environment must enable users to scale their workgroup applications to the enterprise-level, without sacrificing performance. As such, a distributed object management environment must be open and facilitate the migration of multiple, disparate computing systems into one interoperable environment. And, it must offer a robust complement of object services that enable users to manage naming directories, network security, transaction processing, consistency and availability of distributed data, and other object lifecycle issues.
The Seybold Computing Group, an industry analyst organization based in Boston, Mass. agrees. "Expersoft offers a promising approach to distributed object computing middleware and signals the beginning of a new stage of evolution for ORB technology. Recent tests and installations suggest that users can expect better performance (double or more than that of first generation CORBA ORBs) and transparency."
As stated earlier, XShell, a distributed object management environment, consists of two basic product offerings: the XShell Distributed ORB and a suite of integrated tools. Specifically, it offers transparent object distribution, asynchronous messaging, distributed architecture, encapsulation of legacy code, and additional tools such as security and transaction management. Many of these functions available in XShell today are, in fact, the same functions to be specified in CORBA 3, slated for release in 1995 or later.
The XShell Distributed ORB comes bundled with the XShell Object Naming Service, XShell Class Processor, XShell IDL, XShell SNMP Agent, XShell Replicated Namespace, and XShell Administration Tools. Unlike many ORBs, XShell offers several additional high-level tools to manage transactions and security in distributed object applications as well as to develop expert object systems. These products are: XShell Security, XShell TP Manager, XShell Rules, and XShell Fuzzy.
* Transparent Creation and Distribution of Objects
A surrogate is a local "stand-in" for remote modules generated by XShell. Modules are classes with method interfaces that are accessible from remote machines. For example, a user takes the classes of application components or objects that he wants to distribute and runs them through the XShell Class Processor to create source files for C++ classes. These source files are then run through a C++ compiler to create an executable module with a corresponding surrogate. The surrogate has the same methods as the original object it was generated from and is logically linked to its original object.
Through the use of surrogates, XShell can define objects that are both clients and servers, thus facilitating peer-to-peer computing. Expersoft rejects the notion that separate programming facilities are required for clients and servers. It also does not rely on centralized servers to coordinate object messaging, which helps to improve performance and supports larger installations.
* True Asynchronous Messaging
Expersoft believes asynchronous messaging is the best way to support interobject messaging (object communication) and has made this model a key element of XShell's core technology. Asynchronous messaging is a communications model in which an object can continue processing while it waits for the result from a request to another object. The alternative is the synchronous model, in which an object suspends processing while waiting for the response from another object.
Asynchronous messaging is XShell's greatest differentiator from other CORBA compliant products. According to the Seybold Computing Group, CORBA supports a `deferred synchronous' use of its underlying messaging facility that is close to, but not actually true, asynchronous messaging. An XShell future is a place-holder or identifier for a value in an expected response from an object. An object making a request of another object receives a future first and the real result of the requested operation later. XShell also supports future callbacks which are installed on a future object and invoked when the future value is returned. Future callback events allow programs to implement event-driven asynchronous distributed systems.
* Distributed Architecture
In the runtime environment, initial object creation and connection functions are implemented by "daemons" installed on every node in an XShell environment. XShell's distributed architecture forms the backbone of the XShell execution environment for dynamic process control, object creation, connection management, lifecycle management, and access to other XShell tools.
For example, if a surrogate object wants to connect to a remote module, the user's daemon goes to the XShell Object Naming Service and finds the appropriate daemon of that module (daemon-to-daemon communication). The daemon of the remote module goes out to the namespace to find if the process object (a collection of modules) has published a handle for the module in question. The surrogate's daemon then finds the modules that the surrogate relates to and establishes a direct connection between them. This distributed daemon design improves the availability of the environment's services. Applications are not dependent on a single server for all object brokering and related services.
* Encapsulation of Legacy Code and Data
XShell is being used by many customers to re-engineer legacy applications by encapsulating their components in object-oriented "wrappers." When an application has been encapsulated in an XShell object interface, it becomes available as a distributed service that can be invoked transparently throughout the network. In addition, applications that require large amounts of processing power can often be partitioned into several smaller components that are encapsulated in XShell module objects. XShell distributes these object components throughout the network, so that they can execute on several processors simultaneously for higher performance.
XShell supports re-engineering and encapsulation through the XShell Class Processor. Engineers use the XShell Class Processor and C++ to define a distributed object interface for their application or service, and then make adaptations to the legacy code so that the distributed object's methods can call legacy routines. The XShell Class Processor also assists in encapsulating legacy data structures in classes that can be used as arguments in remote method invocations. Once an application's components have been encapsulated, all of XShell's services and capabilities are available to distribute and manage them.
* Platform Independence
XShell 3.5 is designed to deliver the scalability required by corporate developers in building distributed systems. It supports Microsoft Windows and Windows NT (clients only), SunSoft's Solaris (SPARC), the HP 9000 Series (HP-UX), the IBM RS/6000 (AIX), SCO Unix on Intel 386 and 486, and workstations from Silicon Graphics (IRIX). It works with the native C++ compilers provided with each of these platforms. XShell also works with the Energize C++ environment from Lucid, Inc., and the Object Center environment from CenterLine Software, Inc.
* XShell Rules -- XShell Rules is a rule-based extension to C++ for building intelligent distributed objects. XShell Rules allows engineers to encapsulate declarative knowledge in a distributed object-oriented interface, using forward chaining rule-based reasoning. The XShell Rules language supports tight integration with C++, allowing reasoning directly on C++ classes, with C++ expressions in rule conditions and arbitrary C++ statements in rule actions. An XShell Rule specification is reorganized into a Rete network and compiled into an optimized XShell object, which can use all XShell services and may be distributed and managed by the XShell ORB.
* XShell Fuzzy -- XShell Fuzzy is an interactive development and run-time environment for building fuzzy logic-based XShell objects. These objects act as distributed intelligent agents, encapsulating domain knowledge in the form of Fuzzy Associative Memories (FAM). XShell Fuzzy objects are built using a graphical toolkit in which the developer graphically defines fuzzy set membership functions and rules. The XShell Fuzzy specification is subsequently compiled into an optimized XShell object that can use all XShell object services and may be distributed and managed by the XShell ORB.
* XShell SNMP Agent -- The XShell SNMP (Simple Network Management Protocol) Agent is a new optional product that supports management of XShell services and XShell applications via SNMP. XShell SNMP supports SNMP v1 including asynchronous traps. The XShell SNMP Agent is packaged as a developers toolkit for creating SNMP manageable XShell application objects and a set of services that support the SNMP protocol machine and agent functions.
* XShell Replicated Namespace -- The XShell Replicated Namespace is a new optional product that increases performance, availability, and reliability of production XShell implementations. The XShell Namespace is a critical XShell DOME component that supports directory, events, persistence, and object management services. The Replicated Namespace product is a service with associated management tools that supports replication, synchronization, configuration, and recovery of the XShell namespace and its associated services. Should a namespace service instance fail during production operation, the Replicated Namespace services will transfer application support to a replicated service instance.
* RogueWave Software's Tools.h++ -- Tools.h++ from Rogue Wave Software of Corvallis, OR, the industry leader in reusable software components, is a robust and versatile C++ foundation class library that has been chosen by a wide variety of compiler vendors and applications development groups as their base set of components. XShell 3.5 gives developers the capability of constructing applications from Tools.h++ components that may be distributed and managed by the XShell DOME. These applications may also utilize the other value added XShell services including naming, events, logging, and migration.
The integration of XShell and Rogue Wave components is another step towards providing Expersoft customers with the ability to distribute heterogeneous components.
* Scalability: XShell's distributed ORB and services provide the foundation for highly scalable distributed systems. XShell's architecture distributes object connection, event notification, and communication processing to the maximum extent possible. All messaging between remote objects is direct, avoiding any centralized routing agent. Finally, XShell distributed daemons interact only on demand, minimizing overall network overhead and system initialization time. All of these features allow user applications to scale up from prototyping through production and deployment with minimal performance penalties.
* Interoperability: XShell delivers the interoperability required by developers of heterogeneous systems through its transparent object creation and distribution technology as well as through its encapsulation capabilities. Any component of a software system -- legacy, client/server or object-based -- can be configured as a distributed object that exports its interface through surrogates. Desktop programs can communicate directly with each other, and disparate applications are connected creating a completely unified corporate network.
* Performance: XShell is designed for high-performance applications. XShell IPC mechanisms are direct and do not make use of non-object oriented intermediate transport layers (e.g., RPCs). XShell's direct management of IPC results in an order of magnitude advantage in messaging when compared against other commercial ORBs. XShell's process management features enable running XShell systems to change their topology on the fly and thereby to adapt to changing processing demands. Finally, XShell's light weight distributed objects, asynchronous remote method invocation, event notification services, and object stream services allow users to easily construct and manage parallel distributed systems that blend both process and data parallel computing constructs.
Expersoft has 25 customers including Alta Software, Chemical Bank, KPMG, Ontario Hydro, Raytheon, Sprint and US West using XShell in several applications such as a real-time power control and geographic information systems. Expersoft's contract with Andersen Consulting strengthens Expersoft's viability as a systems integrator's strategic offering and seeds XShell in several markets.
The Alliance is dedicated to providing strategic and tactical support (design and architecture, migration planning, training, subcontracting), as well as second generation products (useful libraries of reusable code to integrate programs written in Smalltalk, Objective C, Ada, Fortran, Cobol, and C). Alliance integrators and consulting firms include Andersen Consulting, CAI Recon Optical, ESCA, Genesis Development Corporation, MRJ, Raytheon, SHL Systems House, and Structured Technologies. Software vendors include Angeli Systems, Associative Design, Expersoft, Lucid, Objectivity, and Persistence.
CORBA compliant solutions include Digital Equipment and Microsoft's DEC ObjectBroker, Hewlett-Packard's Distributed Smalltalk, IBM's DSOM, and Sun's DOE. While each of these vendors have significant development budgets and marketing muscle, their products are not as mature as XShell and do not support such high levels of performance. They also are limited in their support for synchronous communication only.
Middleware vendors such as Horizon, Peerlogic, Momentum, COVIA and Teknekron are jockeying for position in the client/server aftermarket with their own standards body (Message-Oriented Middleware) and assorted message-handling software products. While useful for traditional applications, they are limited in their support for objects and encapsulation, and lack tools and services for enterprise applications. Other software management packages for security and transaction processing, are point solutions that solve specific problems, but spawn a whole new crop of integration issues.
Database vendors such as Oracle and Sybase offer database-oriented messaging middleware. These vendors will offer generic RPC and distributed naming services based on industry standards (IBM's Distributed Relational Database Architecture (DRDA) and SQL Access Group's Call-Level Interface). Available in 1995, these advanced database gateways will provide higher-speed data distribution in addition to increased database synchronization. However, these products do not function as dedicated object request brokers, and therefore are not optimized for distributed object creation and management.
In the immediate future, Expersoft plans to add support for additional platforms. It will also extend XShell to support multi-threaded environments, parallel processing and dynamic load balancing. The company will continue to position itself as the leading provider of standards-based products and services to help application developers of Fortune 500 companies build, deploy and manage complex distributed object oriented applications.
# # #
Expersoft and XShell are registered trademarks of Expersoft Corporation. All other product names are trademarks of their respective owners.