throbber
1
`
`GOOGLE-1019
`Google Inc. v. Micrografx LLC
`IPR2014-00532
`
`

`

`5,475,817
`Page 2
`
`01‘HER PUBLICATIONS
`
`“The Eden System: ATechnical Review”, G. T. Almes, et al.,
`IEEE Trans. on Software Engineering, vol. SE—ll, Jan.
`1985, pp.
`“Distribution and Abstract Types in Emerald“, A. Black, et
`al., IEEE Trans. on Software Engineering, vol. SE—13, Jan.
`1987, pp. 65—76.
`“The Eden Programming Language”, A. P. Black, Tech. Rep.
`85—09—01, Dept. of Computer Science, University of Wash-
`ington, Seattle, Wash, Sep. 1985(rev. Dec. 1985).
`“Supporting Distributed Applications: Experience with
`Eden”, A. P. Black, Tech. Rep. 85—O3~02, Dept. of Com-
`puter Science, University of Wash, Seattle, Wash, Sep.
`1985.
`“UIDs as Internal Names in a Distributed File System," P. J.
`Leach, et al, Proc. of the Symposium on Principles of
`Distributed Computing, Ottawa, Canada, Aug. 1982, pp.
`34—4].
`
`UNIX Programmer’s Ref. Manual, 4.3 BSD Virtual
`
`VAX—l] Version, Univ. of Calif., Berkeley, Apr. 1986, Sel.
`pp.(MAN pp on INETD,GETPROTOENT, GETSERVENT.
`SERVJp. PSlzfi—l4) Apr. 1986.
`“Request for Comments 1034: Domain Names—Concepts
`and Facilities", P. V. Mockapetris, 181 Network Working
`Group, Nov. 1987.
`E. Jul et al., ”Fine~Grained Mobility in the Emerald Sys-
`tem,” ACM Transactions on Computer Systems. vol. 6, No.
`1, (Feb. 1988): 109—133.
`
`“Object Data Manager,” IBM Technical Disclosure Bulletin.
`vol. 32, No. 10A (Mar. 1990): 55—57.
`A. Benkiran et al., “A Communication System Architecture
`for the Office," Proceedings Eighth Annual Joint Conference
`of the IEEE Computer and Communications Societies, vol.
`11, Apr. 23—27, 1989, 382—392.
`S. Blount, “Distributed Computing Is Demanding New
`Technologies,” Technology Review, vol. 10, No. 5. (Apr.
`1990): 21725.
`
`2
`
`

`

`US. Patent
`
`Dec. 12, 1995
`
`Sheet 1 of 4
`
`5,475,817
`
`.830
`
`550:4
`
`33:22
`
`5523
`
`6930
`
`5098.2
`
`8:83
`
`9.63262
`
`E30
`
`Sacco—2
`
`mmsiom
`
`3
`
`

`

`US. Patent
`
`Dec. 12, 1995
`
`Sheet 2 of 4
`
`5,475,817
`
`\
`
`Mochinel Egg
`
`MachineZ fl
`
`Object
`
`Object
`(sending
`object)
`
`DOMF
`
`DOMF
`
`Object
`(receiving
`object)
`
`.
`
`Objed
`
`rumime . runtime
`
`4
`
`

`

`US. Patent
`
`Dec. 12, 1995
`
`Sheet 3 of 4
`
`5,475,817
`
`
`030k3903030%
`
`02809:6
`
`\«xm
`
`332:30.2
`
`
`005.6%3000.3
`32c_o%cmn§mamm
`
`6.mm
`
`2.900003
`
`£20305
`
`\
`
`22030:0
`
`2-30003
`
`
`
`2.0000032.000003
`
`
`
`2.9032.3003
`
`
`
`
`
`\ILV_OO&MMOUOHQGEO—Egg“
`
`
`
`
`
`mmSon.389302233
`
`5
`
`
`
`
`
`
`

`

`US. Patent
`
`Dec. 12, 1995
`
`Sheet 4 of 4
`
`5,475,817
`
`Register-
`_______ -. _endpoims
`
`
`
`
`
`Runiime
`g:
`
`
`Genobj Process 55
`
`
`
`
`
`GeLclasanfo
`
`
`Class
`
`Expert {31
`
`
`
`
`393.319
`
`6
`
`

`

`1
`OBJECT ORIENTED DISTRIBUTED
`COMPUTING SYSTEM PROCESSING
`REQUEST TO OTHER OBJECT MODEL
`WITH CODE MAPPING BY OBJECT
`MANAGERS LOCATED BY MANAGER OF
`OBJECT MANAGERS
`
`This is a continuation of application Ser. No. 07I660,478
`filed on, Feb. 25. 199], now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`“Distributed computing” is a well known concept in the
`field of computer processing. Basically, distributed comput-
`ing allows processes on different computers in a network of
`computers to communicate with each other and provide
`services for each other. The computers in the network may
`have distinct machine architectures and operating systems.
`The most common paradigm of distributed computing is
`known as the “client-server model". Consumers of services
`i.e. clients, make requests of service providers i.e. servers.
`Various disadvantages in client server distributed com-
`puting exists. For example, Current systems require clients
`processes to be coded so as to explicitly acquire (or “know”)
`the locations of servers they wish to use. Further, if a server
`changes location while a client is using it, the client must be
`coded so as to perform a relocation of the server. Without
`such relocation the client will fail in its attempt to commu-
`nicate with the server.
`
`Most systems also require a server to be active prior to
`any attempted use by a client. A client trying to use an
`inactive server will fail in its attempt to obtain the service it
`needs.
`
`Other distributed computing systems either have no
`notion of computer programming entities called “objects”,
`or require objects to conform to a particular object model
`dictated by the system. Because there is at most one object
`model in a given system and no common models across
`systems, such distributed computing systems are unduly
`limiting. That is, such systems are limited in their ability to
`incorporate new technology and to extend to problem
`domains for which the system was not originally designed.
`As used herein an “object" is a programming entity
`comprising some state and a set of defined behaviors. The
`state is represented by data maintained by the object. The
`behavior is specified in terms of operations the object can
`perform. Operations are realized by executable code. Con-
`ceptually the data and the code are inextricably bound
`together in the object. Objects may be “persistent", that is
`they may continue to exist even though they are inactive or
`the computer on which they exist has failed or been turned
`off. Further. objects may issue requests for services to other
`objects as well as supply services.
`As used herein “class” refers to an object’s type and
`specifies what kind of object it is. For example, Garfield and
`Snoopy while distinct “objects" are both “cartoon charac—
`ters". “Cartoon character“ is the class of each. A different
`kind of entity say, the World Trade Center, would have a
`different class (in this case perhaps “building“) .
`As used herein an “object manager" is an entity which
`manages groupings of objects supporting each object’s
`existence and operation.
`Also, as used herein, “object model" is an abstraction of
`the activities a particular class of object manager performs
`and the way it performs them. These activities include (i)
`
`5,475,817
`
`2
`
`managing the persistent state of objects, (ii) mapping opera-
`tions on objects into code.
`According to the foregoing, improvements in distributed
`computing are needed.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides a distributed computing
`system that solves the problems of prior art. In particular, the
`present
`invention provides an object oriented distributed
`computing system which, unlike other distributed comput-
`ing systems, does not require clients of services to be coded
`so as to know or acquire the locations of service providers.
`Futher, this system, unlike other object-oriented computing
`systems, recognizes objects that conform to various object
`models.
`
`In particular, the present invention provides management
`apparatus for an object oriented distributed computing sys-
`tem. The management apparatus employs a location service
`for locating desired objects in system on behalf of requesting
`objects or processes (i.e. requesters). Arequestcr need not be
`coded to have any awareness of the location service (much
`less the details of the location service).
`
`the location service is automatically con-
`Specifically,
`tacted when a requester makes a request
`to a service—
`providing object i.e “target object”. The preferred embodi—
`ment employs processing means for calling the location
`service within automatically generated stubs. Further,
`the
`location service locates objects based on the identity of the
`object where each object has a unique identity in the system.
`This unique identity encodes an indication of the computer
`on which the object was created.
`The location service comprises various kinds of entities in
`the system. There are Object Managers each of which
`supports the existence and operation of the objects that are
`associated with it; Managers of Object Managers, each of
`which manages a grouping of Object Managers; Object
`Region Managers each of which tracks the location of
`objects with respect to computers in the system. A distinct
`object region is defined for each different grouping of
`computers, where each region has its own Object Region
`Manager. To provide a mapping between computers and
`Object Region Managers the location service employs map-
`ping means.
`In accordance with one aspeet of the present invention a
`common generic interface allowing a common means of
`communication with and among the object managers, man-
`agers of object managers, object region managers and map-
`ping means is employed.
`In addition, object managers are based on respective
`object models. Objects associated with an object manager
`based on one object model are able to transmit requests to
`objects associated with a respective object manager based on
`a different object model.
`Further, in one embodiment there exists a generic inter-
`face supported by object managers managed by a common
`Manager of object managers such that the Manager of object
`managers is able to communicate with each of its object
`managers in a manner free of explicit knowledge of the
`respective object model of the object manager.
`Preferably each object manager
`treats groupings of
`objects associated with it as respective equivalence classes.
`To that end, the object manager tracks object process asso
`ciation as a group instead of individually. Further, preferably
`the object managers provide deactivation of processes in
`
`5
`
`10
`
`20
`
`25
`
`3O
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`7
`
`

`

`5,475,817
`
`3
`automatic response to the system needing resources.
`In accordance with another aspect of the present invention
`the management apparatus further employs means for scr-
`vicing a request for a target object independent of associa—
`tion of the target object with a process at the time of the
`request. To that end, all objects in the system appear to be
`available for processing requests even though a given target
`object may not be associated with a process at the time of the
`request.
`Said another way. an object oriented distributed comput—
`ing system of the present
`invention provides computer
`means for implementing operations and data of a target
`object. in one process of the plural processes of the system,
`in response to a request to the target object. As a conse-
`quence, availability of each object is defined independent of
`the association of the object with a process at the time of the
`request.
`
`BRIEF DESCRIPTIONS OF THE DRAWINGS
`
`The foregoing and other objects. features and advantages
`of the invention will be apparent from the following more
`particular description of preferred embodiments of the
`invention, as illustrated in the accompanying drawings in
`which like reference characters refer to the same parts
`throughout the diiferent views. The drawings are not nec-
`essarily to scale, emphasis instead being placed upon illus-
`trating the principles of the invention.
`FIG. 1 is a schematic diagram of an object oriented
`distributed computing system embodying the present inven-
`tion.
`
`FIG. 2 is a block diagram of object/process management
`apparatus of the present invention employed in the system of
`FIG. 1.
`
`FIGS. 3a and 3b each illustrate object activation in the
`present invention.
`
`DETAILED DESCRIPTION OF THE
`PREFERRED EMBODIMENTS
`
`Illustrated in FIGS. 1 and 2 is an object oriented distrib-
`uted computing system 11 embodying the present invention.
`The system 11 comprises a plurality of loosely coupled
`computers 37 which form a network. On each computer 37
`their may be one or more processes 39 in which various
`objects 13 perform respective operations. The objects 13 in
`FIG. I reside in the same or different process 39 on the same
`or different computers 37 of the network defining the object
`oriented distributed computing system 11.
`At the heart of the system 11 is an object/process man-
`agement apparatus 15 of the present invention. By way of
`overview. apparatus 15 handles the following object behav-
`ior:
`
`(1) registers all existing objects 13 in system 11;
`(2) enables objects 13a to issue requests to other objects
`13b (that are potentially in ditferent address spaces
`and/or computers); and
`(3) delivers the requests and manages their execution.
`The apparatus 15 does not require that objects 13 be
`compiled or linked together before one may issue a request
`of the other. An object 13 may issue a request to any other
`object 13 in the system provided it has a reference to that
`object.
`Further. the invention apparatus 15 supports distribution
`of objects 13 among processes in the system 11. An object
`or a process can issue requests to objects on other computers
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`in the network. The object or process (i.e., requester or
`client) issuing the request does not need to be aware on
`which computer the target object is to be found. or even
`whether the target object is on a diflerent computer. The
`invention apparatus 15 determines location of the target
`object in an automatic manner on behalf of a client without
`explicit human coding of client calls to a location service
`(discussed later). Different kinds of networks can be sup-
`ported, including broadcast networks such as many local
`area networks (LANs) and connection—oriented networks.
`such as many wide area networks (WAN s).
`In addition,
`the apparatus 15 supports heterogeneity.
`Different types of computers may be mixed in the network.
`The invention apparatus 15 manages any differences
`between the computers containing the object issuing the
`request (the sender) and the object executing the request (the
`receiver). A common problem occurs when two computers
`have difi'erent processors that represent data differently.
`Motorola 68xxx series processors and Intel 80xxx series
`processors.
`for example,
`store integers differently in
`memory. The invention apparatus 15 manages the translation
`of the parameters of the requests between the formats of the
`two computers when necessary.
`The invention apparatus 15 also supports multiple user
`sessions simultaneously. The apparatus 11 can manage
`objects on a single user computer such as a personnel
`computer or single-user workstation. Equally, the apparatus
`15 can manage objects on a multi-user computer. Objects
`managed by the apparatus 15 may simultaneously be per-
`forming services on behalf of several different users. The
`apparatus 15 contains a security mechanism to protect
`against unauthorized use of services.
`Further, the apparatus 15 is scaleable. In the network of
`computers, each computer runs an implementation of the
`invention apparatus 15. At the low end, the apparatus 15 can
`function cflicicntly on a stand—alone singlevuser computer.
`At the high end. the apparatus 15 can operate efficiently on
`each machine in an entire network that includes all the
`computers of a large multinational corporation.
`To accomplish the foregoing the invention apparatus 15
`has a two layer structure. The lower layer is formed of
`communication services 19 which provide a uniform mecha-
`nism for issuing and delivering requests among objects 13.
`The communication services layer 19 enables requests to be
`delivered among objects by. among other operations, con—
`verting data representations when the requester object and
`the target object are on diflerent kinds of computers. Secu-
`rity mechanisms are also provided to prevent unauthorized
`access to objects. The communications services 19 also
`isolates the rest of the management apparatus 15 and objects
`13 from the effects of difierent network topologies, protocols
`and software.
`An upper layer of the management apparatus 15 is formed
`of the object management services 17 which include object
`managers 23, 25 and a location service 21. Object managers
`23, 25 provide services such as object activation and deac-
`tivation. and object class installation. The location service
`21 enables the apparatus to determine a communication path
`to a particular object 13. Thus,
`the object management
`services layer 17 manages an object's life cycle (creation,
`instantiation, and deletion) and location.
`In the preferred embodiment the communications services
`19 and object management services 17 are implemented by
`a runtime library 27. object managers 23, manager of object
`managers 29 and location service 21 shown in FIG. 2. The
`runtime library 27 resides in the address spaces of the
`objects 13 being managed by the computing system 11 and
`
`8
`
`

`

`5
`
`6
`
`5,475,817
`
`can be thought of as part of all of those objects. The runtime
`library 27 provides a basic interface used by all objects 13
`in communicating within the system 11. Preferably the
`runtime library 27 contains code that allows communication
`with the persistent storage manager (described later) and
`code that allows the creation of object references used by the
`location services 21.
`The object managers 23 are responsible for directly
`managing objects 13, activating and deactivating objects,
`delivering messages to objects, and keeping track of what-
`ever state is needed for those activities. To that end, each
`object 13 is associated with an object manager 23 such that
`different pluralities of objects are managed by different
`object managers. The present invention provides as least one
`default object manager 25 in the management apparatus 15.
`A minimal subset of the operation interfaces of the default
`object manager 25 define the services that must be provided
`by all other object managers 23. Following these interfaces
`and a common generic interface used by a manager of object
`managers 29 (discussed below), new object managers are
`allowed to be subsequently added.
`Each object manager 23 is associated with a manager of
`object managers (MOM) 29. Also, associated with such
`MOM 29 is a default object manager 25. Each manager of
`object managers (MOM) 29 is responsible for receiving
`messages that are directed to objects 13 associated with the
`object managers 23 that it (the MOM) manages. Each MOM
`29 is also responsible for finding the object manager 23 with
`which a given object is associated, thus the MOM 29 serves
`as the local clearing house for requests. Said another way,
`the MOM 29 is designed as a well known receiving point for
`requests coming in for any of the objects that are managed
`by any of the object managers 23 which are in turn managed
`by (associated with)
`the manager of object managers
`(MOM) 29.
`The location services 21 are responsible for finding the
`current location of any object 13 within the system 11. These
`services 21 are used by the system 11 in an automatic
`manner and are completely hidden to programmers who are
`writing applications within the system 11 or users who are
`using objects 13 within the system 11. In particular, the
`present invention provides processing means for automati-
`cally calling location services 21 on behalf of the requesting
`object {or process),
`in response to a request on a target
`object. As a result, requesting objects (or processes) do not
`have to be explicitly coded to call the location services 21 as
`required in the prior art.
`The runtime library and the manager of object managers
`(MOM) 29 operate in both the communication services layer
`19 of management apparatus 15 and object management
`layer 17.
`In the communication services layer 19,
`the
`runtime library 27 handles the passing of messages from one
`object 13 to another, and the manager of object managers
`(MOM) 29 acts as the lowest level object location service.
`In the object management services layer 17 the runtime
`library 27 along with the set of object managers 23 deals
`primarily with the object lifecycle.
`Communication from the objects 13 point of view occurs
`through the runtime component of layers 17, 19. The runt-
`ime 27 contacts location services 21 to find a target object
`13b and sends messages from object 13 to object 131) as
`discussed next. It is noted that the location services 21 run
`on some computer or computers in the overall system 11.
`From the point of view of the object 13, however, those
`services 21 are not located on any particular computer 37.
`Hence, FIGS. 1 and 2 show these services 21 as existing but
`not located on a particular machine 37.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Referring to FIG. 2, the location services 21 employ a
`hierarchy of elements. As previously mentioned objects 13
`operate in a process or processes 39 of a computer or
`different computers 37. A plurality or group of objects 13 are
`associated with an object manager 23 which is responsible
`for managing those objects 13. In turn, the object managers
`23 are grouped and associated with a manager of object
`managers (MOM) 29. Each object manager 23 is based on
`a respective object model 24, there being any number of
`object models 24 in the system 11. Object managers 23 of
`different object models 24 are able to be managed by a
`common MOM 29 through a generic interface discussed
`later. In addition, objects associated with an object manager
`23 based on one object model 24 are able to transmit
`requests to objects associated with a respective object man—
`ager based on a different object model 24 as discussed in
`detaii below.
`Further each MOM 29 is associated with an object region
`manager 31 as follows. Different object regions are defined
`by sets of computers 37 which are grouped together for
`administrative purposes. For each object region there is an
`object region manager 31. The role of the object region
`manager 31 is to map object references to a (possibly empty)
`set of manager of object managers (MOM) 29 that might
`know about target objects 1312. An object region manager 31
`comprises a single database and a set of processes that allow
`inquiry into and manipulation of that database. Preferably, a
`logically single object region manager 31 is replicated
`within the region for purposes of high availability. Each
`region has its own distinct object region manager 31.
`in the next level of the hierarchy of elements in location
`services 21 are meta object region managers 33. These
`managers map object references to the identifier of the
`appropriate object region manager 31 that knows about that
`object. Distinct meta object region managers 33 communi-
`cate with each other to allow location of objects 13 between
`object regions. Like the object region managers 31. each
`meta object region manager 33 comprises a single database
`and a set of processes which inquire into and manipulate that
`database. Each logically single meta object region manager
`33 may be replicated. Each system has its own distinct meta
`object region manager 31.
`on the terminal level of the hierarchy are sibling meta
`object region managers 35 which maintain a list of two or
`more distinct meta object region managers 33.
`In the preferred embodiment, there is a common generic
`interface between the diiferent entities of the foregoing
`hierarchy. The common generic interface allows a common
`means of communication with and among object managers
`23. MOM's 29, object region managers 31 and mapping
`managers 33.
`Interaction among objects 13 is by means of requests sent
`from one requestor (i.e., object or process) to a target object
`asking for some operation on the target object. Operation
`calls are the basic form of communication between objects
`13 that reside in the framework defined by the management
`apparatus 15 of the present invention. Basically, an opera-
`tion is a way to request that a target object supply some
`information, undertake some manipulation of its own state
`and/or make operations on other objects. An operation is
`defined by its call signature. The signature consists of a
`return type (possibly null), a list of parameter specifications
`and whether the operation is synchronous (the default) or
`asynchronous.
`The management apparatus 15 of the present invention
`defines its operation calls to objects as all having the
`following syntactic form:
`
`9
`
`

`

`5,475,817
`
`7
`
`retumgtype
`Operation_ Namer
`objref_t
`type
`
`type
`
`):
`
`targetiobject.
`Pararnl,
`
`ParamN
`
`An opaque handle referred to as an objrefit is used to
`identify the object to which the request is to be sent (i.e.,
`target object). In the preferred embodiment, oberfit is a
`pointer to a system defined structure which is implementa-
`tion dependent. The internal structure of such handles are
`not visible or available to users of the system 11. Users of
`the system 11 create and delete objref_t handles through
`calls to the runtime library 27.
`Some parameters are conceptually passed by reference;
`that
`is,
`they have the status of output or inputvoutput
`parameters. The first parameter to all operations is a system
`defined object references to the target object
`that
`is to
`receive the request. If the method invoked by the call returns
`a simple value, that value is returned as the return value for
`the operation. If the method returns multiple values, those
`values are returned in the parameters to the operation which
`are capable of returning values. Also, all management appa-
`ratus 15 operations are defined to return a status value,
`which can be used to determine whether the operation
`succeeded. If the operation fails, the status value indicates
`the nature of the failure.
`An interface is a non-empty set of operations that are
`logically related and form a semantic unit. The management
`apparatus 15 makes the following requirement regarding
`interfaces: if an object class supports any operation in an
`interface, it must support all of the members of the set of
`operations that constitute that interface. Further, each inter-
`face is identified by an interface identifier that is assigned by
`the implementor who originally designed the interface.
`A method is the code that implements an operation. For a
`given operation that code may vary from one object 13 to
`another because of differences in computer architecture or
`for other reasons. An operation is used to specify the action
`that is to be performed on an object 13. A request made of
`an object 13 is mapped to a method on that object 13. This
`mapping associates a particular implementation with the
`operation defined in an interface supported by the object 13.
`It is the responsibility of the class implementor to ensure that
`the method associated with the operation request performs
`the appropriate actions to give the intended semantics to the
`request.
`in response to an object
`According to the foregoing,
`operation call from a requester, the MOM of the target
`object’s object manager interacts with the object manager to
`forward the request to the target object 13b. The object
`manager 23 associated with the target object 131; receiving
`the operation call also ensures that the target object 13b is
`capable of receiving the request.
`The managers of object managers (MOMS) 29 are
`designed to allow the addition of multiple object managers
`23 over the life of the computing system 11. This is
`accomplished by a common generic interface supported by
`object managers 23 managed by a common MOM 29, such
`that the MOM 29 is able to communicate with each object
`managers 23 without explicit knowledge of the object model
`on which the object manager is based. The exact way in
`which the MOM 29 and a particular object manager 23
`communicate is the same for any particular implementation
`
`8
`of the manager of object managers 29, but may vary from
`implementation to implementation.
`The separation of the managers of object managers
`(MOMS) 29 and the individual object managers 23 allows
`objects 13 with very different attributes to coexist within the
`computing system 11 without limiting the ability of those
`objects 13 to interoperate. The separation also allows the
`MOMS 29 to know about the communications services used
`throughout the system 11, while the individuai object manA
`agers 23 know the particulars of the objects 13 that are
`associated with them.
`
`Moreover, this splitting of knowledge allows the MOMS
`29 to receive requests for any type of object 13. In response
`to receipt of a request, the MOM 29 determines if the target
`object 13b of the request is one which is managed by one of
`the object managers 23 associated with that MOM 29. In
`turn, the individual object manager 23 of the target object
`i3!) ensures that the target object 13b is ready to receive the
`request. The object manager is able to accomplish this by
`having or aquiring specific knowledge of the target object
`13!) being managed. In one case, ensuring that a target object
`13b is ready to receive a request requires that the associated
`object manager 23 activate the target object 1317. This, in
`turn, requires that the associated object manager 23 know
`the execution model and persistent storage scheme used by
`the target object.
`The net effect of the foregoing separation of responsibility
`between the managers of object managers (MOMS) 29 and
`the individual object managers 23 can be restated as follows.
`The MOM 29 acts as a well known receiving point and a
`forwarding agent for requests, while the object managers
`associated with the MOM 29 act as the object model-specific
`activators and manipulators of objects 13b.
`To function in the distributed computing system defined
`by the management apparatus 15, objects 13 support certain
`operations. In the preferred embodiment, all objects 13
`support the following functions.
`
`l
`getiacu
`obijJ
`status_t
`
`are]
`
`J;
`
`object.
`“status
`
`The function getgacl returns an access control list associA
`ated with the object referred to by the parameter "object”.
`
`boolean
`set;acl(
`objref_t
`aclAt
`status_|
`
`);
`
`object,
`to_ar:1,
`*status
`
`list
`The function setiacl associates the access control
`referred to by to ac] with the object referred to by the
`parameter “object". The function returns the value “true" if
`the setting is successful, and “false" otherwise. Note that the
`access control list currently associated with the parameter
`“object" must allow the sender of the request the rights to set
`the access control list for the operation to be successful.
`
`10
`
`15
`
`20
`
`25
`
`3O
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`hoolean
`
`10
`
`10
`
`

`

`5,475,817
`
`10
`
` -continued
`set_class_id(
`object.
`objref
`t
`to_class,
`classidit
`*status
`statusit
`);
`
`
`
`objref_t
`ornLdup_objref(
`to_dup.
`objref_t
`*status
`status a t
`);
`
`The function set_class_fiid changes the class identifier asso-
`ciated with the object referred to by the parameter “object”
`to the value specified in to__class. The function returns the
`value “true” if the setting was successful; otherwise the
`function returns a value of “false".
`
`
`boolean
`intholncatiom
`of__objeet.
`objrefwt
`withmobjeet,
`cbjref ,
`t
`*status
`status_t
`);
`
`The function ing_colocation asks of the object referred to
`by of_object if it is colocated with the object referred to by
`with_ object. The function returns “true" if the objects are
`colocated; otherwise the function returns ‘Talse". Note that
`the sematics of colocation are dependent on the persistent
`storage mechanism and/or object manager associated with
`the objects.
`During runtime, calls or operation requests are processed
`as follows. The runtime library 27 is bound to all objects 13.
`It serves both as the departure point for sending requests and
`the final destination for receiving requests. As part of this
`function, runtime library 27 provides an interface to con-
`struct object references, which are basic entities in the
`Location Services 21. The runtime 27 also provides an
`interface to the Persistent Storage Manager, which allows
`objects to manage their persistent state with the aid of the
`default object manager 25 as discussed later.
`The sending and receiving of requests is transparent to the
`user of the system 11 and the writer of objects 13, or more
`accurately, classes of objects. Request
`transmission is
`defined by the internal runtime functionality and by the stubs
`(i.e., interface code fragments) generated by an interface
`compiler when it processes the class’s operation interfaces.
`However, three functions are exported from the runtime 27.
`The first function allows the comparison of two object
`reference handles to determine if they refer to the same
`object. The second function allows the creation of an object
`reference to a class object. The third function allows the
`destruction of an object reference handle.
`The first exported runtime function in the preferred
`embodiment is as follows:
`
`
`boolean
`omf objref,,equal[
`refl,
`nbjrefét
`ref2,
`objref_t
`*status
`status
`1
`);
`
`The function omf_objref__,equal returns the value “true” if
`the object reference handles of refl and ref2 each refer to the
`same object; otherwise the function returns the value “false”.
`The second exported runtime function in the preferred
`embodiment is as follows:
`
`The omf__ref,robjref call creates a duplicate of the object
`reference supplied by the parameter toridup. The resulting
`object reference can be given to other objects.
`The third exported runtimc function in the preferred
`embodiment is:
`
`
`void
`omffifi'ee_objref(
`to_l'nee.
`objreLt
`'status
`5111111571
`);
`
`The function omfafreeiobjrcf deletes from storage an
`object reference handle.
`Other functions employed in the runtime interface are as
`follows:
`
`
`
`objrefvt
`emficreatd
`objmclass,
`classidm
`group_with,
`objref_t
`in, _ tran

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket