Expersoft Corporation

6620 Mesa Ridge Road
San Diego, California 92121
(619) 546-4100

Corporate, Market and Product Backgrounder 1995

Expersoft Corporation was established in 1989 to address the emerging new market for distributed object management software. The company develops and markets XShell, a distributed object management environment (DOME) comprising XShell Distributed ORB, and a suite of integrated tools that address many of the problems associated with building and managing distributed systems in large-scale enterprise environments. A technical introduction to XShell is provided here.

For more information please contact Expersoft at (800) 366-3054 or send mail to xshell@expersoft.com.

Executive Summary

Expersoft Corporation was established in 1989 to address the emerging new market for distributed object management software. The company develops and markets XShell, a distributed object management environment comprising XShell Distributed ORB, and a suite of integrated tools that address many of the problems associated with building and managing distributed systems in large-scale enterprise environments.

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.

The Development of a New Market

The emergence of distributed object management software is being fueled by several converging market and technology forces: business process re-engineering, distributed systems, client/server computing, and the growing acceptance of object technology. Each has contributed to the need for a more effective method to manage systems in large-scale, heterogeneous enterprise environments.

Market and Technology Forces

As corporations downsize and re-engineer business processes to cut costs and streamline operations, they are creating distributed information systems composed of networks of disparate computers. Distributed systems, including legacy applications based on third and fourth generation programming languages, are being re-architected using the client/server approach. New distributed client/server applications are also being built using the object-oriented paradigm, with programming languages such as C++. Hence, today's distributed computing environment is characterized by a mixture of desktop PCs, monolithic mainframes, operating systems, databases, applications, and data models.

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.

Expersoft's Market Opportunity:

The XShell Distributed Object Management Environment

Expersoft was established to deliver a new generation of software that enables customers to build enterprise-wide, distributed systems in heterogeneous environments. The company was founded by a team of developers with expertise in building large, distributed object systems for the commercial and defense markets. These experts developed a vision of a "unified computing resource" and applied breakthrough object technology to manage the complexity of distributed systems. With a $10 billion market for distributed systems and an $800 million market for object-oriented languages and environments in 1994, Expersoft has a huge market opportunity to be the leading distributed object management software provider.

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.

About the XShell DOME Architecture

The XShell distributed object management environment (DOME) comprises an application construction environment in which objects are transparently created and developed, and an execution runtime environment in which objects are managed and monitored. Several products in the XShell DOME are used in both the application and runtime environments.

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.

How XShell Distributed ORB Works

Current object-oriented compilers and environments create program objects that "live" in a single address space although they may communicate with external objects. XShell Distributed ORB removes address space restrictions allowing objects to migrate freely between address spaces. Users build objects in C++ that can be used in remote processes to create the "illusion of locality:" objects appear as if they were in a local program when they actually exist on remote machines. The ability to use surrogates and modules is facilitated by XShell's remote interface object technology and distributed architecture.

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

About Additional XShell Products

* XShell IDL -- XShell supports object interfaces specified in CORBA Interface Definition Language (IDL) with the XShell IDL. The IDL compiler generates CORBA-compliant client stubs that integrate directly into the XShell distributed object model, using XShell's high-performance invocation mechanisms and providing access to XShell services. The XShell IDL compiler provides language bindings for C++, with later releases supporting Smalltalk and other languages.

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

Product Differentiation and Benefits

Together, Expersoft's transparent object creation, asynchronous communications, distributed architecture, encapsulation, platform independence, and additional tools deliver three key benefits that differentiate XShell: scalability, interoperability, and performance. No other commercially available ORB offers these unique approaches to distributed object management.

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

Andersen's Eagle Technology Team Selects XShell

A case in point is Andersen Consulting's implementation of the XShell distributed object management environment. Andersen's Eagle Technology team, an advanced development team within Andersen Consulting's Technology Services Group, selected XShell as the foundation for a new method of software development. Andersen chose XShell for specific reasons after conducting a battery of tests on several products: the maturity of the XShell product (as compared to other ORBs) and its multi-platform support, performance and rich functionality. From a technical standpoint, the Eagle team was attracted to XShell because of its distributed architecture and transparent object distribution, as well as its asynchronous messaging, which is the foundation of Eagle's own architecture. Through XShell, Andersen expects to reap the benefits of decreased development costs, rapid systems development, flexible and extensible applications and system configuration, and portability and interoperability across a heterogeneous environment.

Expersoft's Strategy

Expersoft plans to proliferate XShell into mainstream non-object-oriented corporate applications and new object-based systems. The company sells its products direct as well as through systems integrators, value-added resellers and original equipment manufacturers around the world. Specific industries targeted are: telecommunications, financial services, energy, manufacturing and transportation.

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.

Distributed Object Access Alliance

In an effort to further the distributed object management software category, Expersoft founded the Distributed Object Access Alliance (DOAA) in 1993. Its members are a group of original developers and exclusive resellers of software, hardware and services that develop and market object management technologies. Its goal is to offer the marketplace a set of tools and services that are standards-based and interoperable -- multi-vendor solutions that work together, but do not necessarily depend on each other. Each Alliance vendor commits to the level of interoperability that makes the most sense for their product. As applicable standards evolve, they will be used as the technical basis for product interoperability. Expersoft believes the DOAA is important to the long term development of the distributed object management environment product category and to its own ability to deliver a robust and comprehensive offering.

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.

Competition and Other Alternatives

Expersoft faces competition from large vendors with CORBA-compliant solutions, smaller niche middleware vendors and database vendors. While these vendors have viable offerings, their products do not have the architecture, transparent object distribution, asynchronous communication, encapsulation, and services available in XShell.

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.

Future Outlook

As companies continue to re-engineer business processes, rightsize to client/server systems and tie in existing legacy systems with new object-oriented applications, XShell will be critical to successful, large-scale system development, deployment and management. Based on its vision, unique product architecture and advanced capabilities, Expersoft is uniquely positioned to be the leader in the provision of object request broker technology in the new market for distributed object management software.

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.