US5644764A - Method for supporting object modeling in a repository - Google Patents

Method for supporting object modeling in a repository Download PDF

Info

Publication number
US5644764A
US5644764A US08/382,303 US38230395A US5644764A US 5644764 A US5644764 A US 5644764A US 38230395 A US38230395 A US 38230395A US 5644764 A US5644764 A US 5644764A
Authority
US
United States
Prior art keywords
type
repository
persistent
collection
objects
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
US08/382,303
Inventor
Peter Johnson
Sridhar Srinivasa Iyengar
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Unisys Corp
Original Assignee
Unisys Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Unisys Corp filed Critical Unisys Corp
Priority to US08/382,303 priority Critical patent/US5644764A/en
Assigned to UNISYS CORPORATION reassignment UNISYS CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: IYENGAR, S., JOHNSON, P.
Application granted granted Critical
Publication of US5644764A publication Critical patent/US5644764A/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • the present invention relates in general to the field of repository databases and in particular to a method for supporting object modeling in a repository.
  • a database allows one to store information in it; and it does not necessarily have any special meaning associated with the things that are stored in the database.
  • a repository not only uses the database as a data store, but it is a layer above a database.
  • a repository has information about the things stored in the database. Stated otherwise, a repository is like a card catalog that is found in the library, with the library being analogous to a database.
  • repositories With the advent of repositories, improvements in the accessibility of data within databases has improved. However, as these repositories have become larger and more complex a method is required to support object modeling in a repository.
  • the method of the present invention is useful in a computer system having a user interface, a memory, a repository and a database.
  • the method is a repository program executed by the computer system.
  • FIG. 1 is a block diagram of a computer system showing the various components of hardware and software that support a repository employing the method of the present invention.
  • FIG. 2 is an organization chart amplifying the breakdown of elements of a model into types and features, and their constituents.
  • FIG. 3 is a conceptual diagram of a model of a banking system useful in illustrating the method of the present invention.
  • FIG. 4 is a flow chart illustrating the creation of a model object.
  • FIG. 5 is a flow chart illustrating how to initialize the persistent type object.
  • FIG. 6 is a flow chart illustrating how to create an operation object.
  • FIG. 7 is a flow chart illustrating how to create an attribute model.
  • FIG. 8 is a flow chart illustrating how to create a reference object.
  • a repository enables the user to store, manage, share and reuse information about the information system in which the repository is used.
  • the repository enables the user to store more than just the data that is processed by an information system.
  • definition data stored in the repository may be information about the development of applications; including descriptions of data, programs and system objects. It may also include information about relationships among data, programs and system objects; as well as the semantics and use of the information.
  • definition information might include the files and programs that form a salary administration application. This application might define the minimum and maximum salaries at a given level. Another example is management information used to manage and maintain definition information. Management information also describes who can use definition information and when, where and why the information is used. For example, the salary administration application might be accessible only to a select group of repository users.
  • Yet another example is operational information about the environment in which the user operates. Examples of this information include system configuration, backup information and schedules.
  • FIG. 1 a block diagram is shown of a computer system 12 including a repository 10 that may use the method of the present invention.
  • the repository 10 is illustrated as being supported by an information system 12 having a user interface 14.
  • Tools 16-20 (such as CASE tools), which are integrated within the repository 10, are coupled to a services interface 15.
  • the tools 16 and 17 are coupled to the interface 15 by means of an interface agent identified as Portable Common Tool Environment (“PCTE")
  • tool 18 is coupled to the interface 15 by means of an Information Resource System Dictionary (“IRDS”)
  • tool 20 is coupled to the interface by means of an Electronic Industry Associates (“EIA”) interface agent.
  • PCTE Portable Common Tool Environment
  • IRDS Information Resource System Dictionary
  • EIA Electronic Industry Associates
  • An administrator 21 manages the repository 10, the database 13 and the environment around the repository.
  • the administrator 21 is typically a work station that can manage a single repository or a network of repositories.
  • a service library 22 provides the functionality that enables the user to store, manage and reuse repository information.
  • Examples of services within the library 22 are Composite Object Service 22a, which is disclosed in a copending patent application Ser. No. 08/381,574, filed Jan. 31, 1995, assigned to the assignee of this application and entitled IN AN OBJECT ORIENTED REPOSITORY, A METHOD OF TREATING A GROUP OF OBJECTS AS A SINGLE OBJECT; and Version Service 22b, which is disclosed in a copending patent application Ser. No. 08/381,580, filed Jan.
  • Persistent Service 22c deals with definition, tracking and maintenance of objects that continue to exist beyond the execution of a particular tool or of the repository itself.
  • MetaData Service 22d is the subject of this application. It is noted that many more types of library services may form a part of such a repository, the details of which are beyond the scope of this disclosure.
  • the repository 10 employing the present invention provides a client/server architecture in which clients, i.e. tools 16-20, request services from the server, i.e. the repository 10 and its service library 22. In return the repository 10 and its service library 22 respond to requests from client tools 16-20.
  • a repository client is software that accesses or modifies information that is maintained by the repository.
  • the repository client uses the service library 22 (i.e., the server), which includes software integrated into the repository to manage repository information and provide services to users of that information. It is noted that software in the repository can act both as a repository client when the software is requesting a service from some other repository software and as a repository server when the software is providing a service to some other repository software.
  • a "tool” is any application software that creates, modifies or uses information in the repository.
  • Tools primarily use the repository for sharing information with other tools and tool users.
  • a COBOL compiler and a user-interface tool can share the definition of a data structure.
  • Tools also benefit from using the repository services that provide features such as a version control and network distribution.
  • a wide variety of tools serving many diverse purposes can use a repository.
  • a catalog of such tools includes integrated computer-aided software engineering (CASE) and fourth generation language (4GL) tools, enterprise modeling tools, analysis and design specification tools, project planning tools, word processors, graphics tools, source code editors, compilers, linkers, de-buggers, etc.
  • CASE computer-aided software engineering
  • 4GL fourth generation language
  • the repository service library 22 provides the functionality that enables the user to store, manage and reuse repository information.
  • the present invention deals with that service referred to herein as metadata services.
  • the metadata service enables a user to define object-modeling constructs such as objects, types, attributes, relationships, operations and integrity rules. It also allows the user to extend the repository information model such that one can integrate new tools with the repository and define new types of repository objects, such as data flow diagrams and project schedules. It also allows reuse of object types and operations that are defined in the repository. Moreover, it allows the extension of repository functionality by defining subtypes and by overriding inherited operations to refine their behavior in the subtypes.
  • the method of the present invention provides a mechanism for representing a concept that is too large or complex to describe as a single entity through the use of modeling. Instead, a model represents the concept as a set of components and the relationships between these components. Models are abstractions of real-world concepts such as ideas, objects or systems. Typically, models are used to describe, design and document systems such as a reservation system for an airline, a banking system or a patient-information system for a hospital. Information models represent the information processed or managed by enterprises. An information model represents an enterprise as a set of related components, called types, and the relationships among the types. The types provide templates defining the structure of the information and the services provided by the model. The information model of the present invention defines information that can be stored in the repository. It also identifies the services provided by the repository and the tool and technology models supported thereby.
  • Repository information models define information stored in repositories and identify the repository functionality.
  • the types defined for a repository model provide a common structure for information in a repository. This feature enables tools interfacing with the repository to share and reuse repository information.
  • the method of the present invention is one of the libraries of the repository and sometimes is referred to herein as metadata service.
  • the metadata service provides the mechanisms that enable the user to perform the following tasks:
  • object-modeling constructs such as objects, types, attributes, relationships, operations, and integrity rules
  • Extend repository functionality by defining subtypes and by overriding inherited operations to refine their behavior.
  • a type is a template that describes a set of features--the state and behavior--that an object or another type can possess.
  • a type defines a pattern that can be used to create or identify objects; it does not contain the actual object.
  • a model is defined by a hierarchy of types.
  • Data types define the values associated with the features.
  • Data types are also known as primitive types.
  • data types are used to define attribute values, operation parameters, and operation return values.
  • the values represented by the data types do not exist as separate objects in the repository. Instead, they are always sorted as part of a repository object.
  • Persistent types define objects that continue to exist within the repository beyond the execution of a particular tool or of the repository. These persistent objects are essentially permanent--they remain in the repository until they are explicitly deleted by users. The majority of repository types are persistent.
  • a transient type defines a temporary object that will be automatically deleted when the function or program in which the object was created exists or terminates.
  • Transient types are provided in the model to support exchange of data between an application and the repository.
  • a type that can be used to define other types and objects is said to be instantiable.
  • Objects derived from a type are called instances of that type.
  • Types derived from a type are called subtypes of that type. Instances and subtypes of a type inherit the features--attributes, references, and operations--defined for that type.
  • the repository User type is an example of an instantiable type.
  • a type that is used to define only other types and not objects is said to be abstract.
  • a type that is derived from one or more other types is called a subtype.
  • the definition of a subtype identifies the type or types from which it is derived.
  • a type from which a subtype is derived is called the supertype.
  • the definition of a supertype identifies the subtypes derived from it.
  • a type cannot be a supertype or a subtype of itself.
  • a subtype inherits all the features of its supertype. It can be customized by adding new features.
  • the structure created by deriving types from other types is called a hierarchy. The hierarchy shows the relationship of the supertypes and subtypes.
  • a hierarchy has a single base type.
  • the base type is the highest supertype in the hierarchy.
  • each subtype acquires the features defined for the supertype. This trait is called inheritance. For example, managers have all of the features defined in Manager, and they inherit all of the features of Employee as well. Hence, if the Employee type has a feature such as name, we can ask for the name of a manager since Manager is a subtype of Employee.
  • a feature defines some element of either the state or the behavior that objects can possess.
  • a feature is defined for a type, but applied to the corresponding objects.
  • the repository has two kinds of features: operations and properties.
  • the Employee type might define the features name, birthDate, salary, and setSalary.
  • Each employee object is subsequently considered to possess these features. That is, each employee has a name, a birth date, and salary. The employee's salary can be modified by using the setSalary feature.
  • properties define state.
  • the salary feature is a property that defines an employee's current salary.
  • Operations define behavior.
  • the setSalary feature is an operation that defines the mechanism for changing an employee's salary.
  • a property is a feature that represents a state that objects can possess. (In some models, properties are called instance variables.) A property can represent either a single value or a set of values. Properties are further divided into attributes, whose values are embedded within the owning objects, and references, whose values are independent objects.
  • the repository supports the following kinds of properties:
  • an employee's social security number can be defined as an attribute whose value is stored as a string within the employee object.
  • the employee's manager can be defined as a reference that identifies a separate employee object that represents the manager.
  • Every property has a domain that identifies the objects that the value of the property can hold.
  • the domain is defined as a type. Objects that are instances of the type are legal values for the property. For example, the domain of the boss property of the Employee type might be specified as the Manager type. Therefore, only a manager object can be designated as the boss of an employee.
  • a property for which the value is embedded within the owning object is called an attribute.
  • Such a property typically is used for simple values that are not shared between multiple owning objects.
  • the Employee property birthDate is simply a Date object--that is, the domain of the birthDate property is the Date type. If one employee's birthDate property is changed, the change does not affect other employees whose birthDate property is the same date. Consequently, each employee object should use a "private" date object that is embedded within it--that is, as an attribute.
  • a property for which the value is maintained outside the owning object is called a reference.
  • the owning object points to the value object.
  • One reason for defining a property as a reference is to allow object sharing.
  • a reference enables two or more owning objects to have the same value for a property. All owning objects can point to the same value object. For example, if two employees have the same manager as a boss, they share the same manager object. Consequently, any changes to the manager (such as changing his or her name) are reflected when the boss reference is accessed for all employees that have that boss.
  • a property that has one value for each object is said to be single valued. For example, each employee has one name and one birth date.
  • a property that has more than one value for each object is said to be multi-valued. For example, each manager manages multiple employees, so the staff property for a manager object must be able to reference multiple values.
  • a multi-valued property is defined by specifying a collection as its domain. A collection represents a set of values. A collection provides the ability to count the values defined for a multi-valued property, to add new values to the property, and to delete existing values.
  • the repository supports several types of collections, each of which organizes elements in a different manner. This capability enables the user to:
  • An operation is a feature that represents a behavior that objects can possess.
  • An operation can be thought of as a function: it has a name, an optional set of parameters, and an optional return type. Like properties, operations are applied to each object within the owning type. Consequently, an operation is generally invoked in the context of a specific object.
  • An operation can have parameters that identify information a caller must provide when invoking the operation.
  • the birthDate attribute has a domain of Date.
  • Age is an operation (with no parameters) whose return type is Integer.
  • the purpose of age is to compute an employee's current age (in years) from his or her birth date. Because the age operation is invoked for a specific employee, it is able to obtain the value of that employee's birthDate attribute, make the necessary computation, and return the appropriate integer without requiring parameters.
  • each parameter has semantics similar to those of properties.
  • Each parameter has a name, a domain type, and a set of options that can be used to affect the behavior of the parameter.
  • the following table shows an example of an operation, defined for the Employee type, that has parameters:
  • the setSalary operation has three parameters:
  • the amount parameter is a Real number (floating-point) that is required. Therefore, the caller must specify a value for this parameter.
  • the authorizedBy parameter is a Manager object that also is required.
  • the effective parameter is a date parameter that is not required. However, if the caller does not specify a value for this parameter, the current system date is used by default.
  • a multi-valued parameter is a set, or collection, of values. Such a parameter is useful when the operation must operate on several objects even though it is invoked in the context of a single object.
  • An operation optionally can return an object when it completes processing, just as a program function can return a value.
  • An operation that returns an object is called typed because it has a return type specified.
  • An operation that does not return an object is called un-typed because it does not have a return type specified.
  • a return type must be one of the types recognized by the repository.
  • An operation can return a set of objects by specifying a collection as its return type.
  • An operation can be defined for a type and then redefined for each subtype of the original type. This process is called overriding an operation.
  • Dynamic binding also called polymorphism
  • the most specific method is the one defined in the lowest subtype of which the object is an instance.
  • setSalary is an operation defined for the Employee type.
  • An employee object can be an instance of the Employee type or one of its subtypes.
  • the repository selects the method associated with the setSalary operation defined for the employee type.
  • the repository selects the method associated with the setSalary operation as it is redefined for the Manager type. If the Manager type does not redefine the setSalary operation, the repository selects the method associated with the setSalary operation defined for the Employee type as the immediate supertype of the Manager type.
  • Each combination of parameters that an operation can accept is called a signature.
  • a signature To define multiple signatures for an operation, you define the operation more than once in the same owner type and use the desired signature for each definition.
  • each operation must be implemented by a module of code called a method. Methods are typically written as separate functions and bound into a set of code libraries. The method code library name for each operation is then identified to the repository as part of the definition of the operation.
  • a caller invokes an operation
  • the request is received by the repository, which finds and calls the appropriate method.
  • the operation passes to the method the appropriate parameters.
  • a method can then act as a caller and call back into the repository to invoke other operations. Consequently, a method can be thought of as a specialized kind of application program.
  • An object is an abstract representation of a real-world concept or thing--such as a person, a software package, or an event--that is stored in the repository.
  • the state of an object is represented by the values of the properties defined for the type. For example, the state of an integer is its numeric value.
  • the state of a person is its name, birthDate, spouse and so on.
  • the behavior of an object is the set of functions that the object can perform.
  • the behavior of an object is represented by the operations defined for the owner type.
  • a characteristic of object behavior is the ability to return some of its state to a requester. For example, the object person can return its name. For this reason, some object models describe object behavior as the set of messages that an object can receive and respond to.
  • One example of object behavior is the capability an integer has to perform such functions as addition, square root and absolute value.
  • a type is a template that describes a set of features (the state and behavior) that an object or another type can possess.
  • a type defines a pattern that can be used to create or identify objects; it does not contain the actual object.
  • a model is defined by a hierarchy of transient data types 32 or persistent object types 33.
  • features 34 which are categorized into operations 35 or properties 36.
  • a feature defines some element of either the state or the behavior that objects can possess.
  • a feature is defined for a type, but applied to the corresponding objects.
  • a type defines the layout of the data for the objects, and objects are instances of the type.
  • Properties define a state.
  • the salary feature is a property that defines an employee's current salary.
  • Operations define behavior.
  • the setSalary feature is an operation that defines the mechanism for changing an employee's salary.
  • the properties 36 are categorized as attributes 37, whose values are embedded within the owning objects, and references 38, whose values are independent objects.
  • FIG. 3 a conceptual diagram of a model of a banking system is provided for help in illustrating the method of the present invention.
  • a persistent type 40 is created for a Transaction Record.
  • Three data types 41, 42 and 43 are created for $ Amount, Date and Name, respectively.
  • Another persistent type 44 is created for Account.
  • Yet another persistent type 45 is created for Customer.
  • Still another persistent type 46 is set up for a special account such as Christmas Club, which account is a subtype of Account 44 and is linked thereto by a pointer 47.
  • the persistent type 46 includes an operation 48 for execution of a print statement operation.
  • attributes 49 and 50 are created for Amount and Date, respectively. Also, a reference 51 is established for Account. The attribute 49 for Account is linked to the data type 41 for $ Amount by a pointer 52. In a like manner, attribute 50 for Date is linked to the data type 42 by a pointer 53. These pointers will be explained in greater detail hereinafter.
  • references 54 and 55 are created for Customer and Transactions, respectively.
  • the reference 54 is linked to the persistent type 45 for Customer by a pointer 56; and, the reference 55 is linked to the persistent type 40 by a pointer 57.
  • the reference 55 for Transactions is linked to the reference 50 within Transaction Record by a pointer 58. Inversely, the reference 50 is linked back to the reference 55 by the same pointer 58. Thus, this relationship is referred to herein as an inverse reference.
  • an operation 59 is created for Print Statement.
  • a data type 60 is created for Name.
  • the data type 60 is linked to the data type 43 for Name by a pointer 61.
  • the transaction recorded within the database 13 appears as shown. That is, the dollar amount of the transaction is recorded along with the account number, the date and the transaction.
  • the data stored into the repository is defined by what is known as the information model.
  • a model is a collection of models that define the data that will be stored in the repository.
  • the Model is the basic type of the metadata service, and a basic services model is stored in the repository for use as an outline to aid the user.
  • the user creates instances of each of the elements of a model (see FIG. 2), as required for the subject being modeled (see FIG. 3 for the subject of banking).
  • Each Model defined in the repository consists of one or more Types.
  • Each Persistent Type declared in a model is defined as containing one or more Features.
  • the Features of a Persistent Type define the state (Property) as well as the behavior (Operation) of the type.
  • An Attribute represents a basic data value of an object. For example, if one object represents an employee, the date the employee was hired is an attribute of the employee type.
  • a Reference links one object to another object. For example, if one object represents an employee and another object represents a task, the task being worked on by the employee is a reference of the employee type.
  • MetaType instance represents the structure
  • MetaFeature instance represents the interface and functionality of the model.
  • the order in which the user defines a model and its components is as follows:
  • the user constructs the operation of an instance of the MetaModel type. This instance represents the model in the repository.
  • the structure of that model is defined by defining the types that are part of the model. Note that a type can be used in only one model, which restriction is necessary in order to avoid confusion.
  • the user employs the construct operation to create an instance of one of the following repository MetaFeature subtypes:
  • An instance of this type represents a data-valued property of the type.
  • An instance of this type represents an object-valued property of the type.
  • An instance of this type represents an operation of the type.
  • MetaAttribute type contains the following information:
  • the attribute value is an instance of one of the subtypes of the repository MetaDataType type.
  • This instance contains the following information:
  • This instance contains the following information:
  • the metadata service of the present invention enables the user to define relationships among objects in a model.
  • the metadata service supports the following kinds of relationships:
  • Inheritance relationships are defined through the superclass and subclass properties of the repository MetaClass type.
  • Reference, composite and dependent relationships are defined through the composite and dependent properties of the repository MetaReference type.
  • a value type for a relationship the user must indicate a value type for the relationship. Only objects of that value type, or one of its subtypes, can be included in that relationship.
  • an inheritance relationship also known as a generalization or specialization relationship, the user designates superclasses and subclasses within the instance of the repository MetaClass type. A type inherits the characteristics of the superclass and passes characteristics to its subclasses.
  • the metadata service of the present invention supports both single inheritance and multiple inheritance.
  • composition relationship also known as a whole-part or parts of relationships
  • the user sets the composite property to true, and declares the inverse relationship of the destination object to the source object as a reference relationship.
  • the semantics of a composition relationship determine how an object is versioned and its components are handled.
  • a dependent relationship indicates that the existence of one or more objects is dependent on another object.
  • the user sets the composite property to TRUE. This relationship is also referred to as an existence constraint because the dependent object exists only if the source object exists.
  • the metadata service enables the user to define several variations of dependent relationships that have different semantics:
  • a destination object is owned exclusively by a source object.
  • the destination object belongs to the source object and cannot be shared with any other source objects.
  • This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship single-valued and required.
  • a destination object can be shared among other objects.
  • several source objects can have dependent relationships with a single destination object.
  • This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship multi-valued and required.
  • a destination object can exist without any source object.
  • a destination object does not require a source object.
  • This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship either single valued or multi-valued and not required.
  • a model consists of a collection of types and a type object is to be created for each type, all within a text file. An examination is made of the text file retrieved for each and every type that belongs to the same model. It is pointed out that each type includes an identification of the model to which it belongs. Thus, an inquiry is made as to whether or not there are more types in the text file to create (decision diamond 67).
  • this type is a data type (decision diamond 68), since the specific type object created depends on whether the type is a data type or a persistent type. If the answer from decision diamond 68 is NO, then it must be a persistent type since there are only two model types: data and persistent.
  • a persistent type object is created to represent the persistent type in the repository as depicted by the process block 69; and if the type is a data type then a data type object is created to represent the data type in the repository as depicted by the process block 70.
  • the type objects both persistent and data
  • the type object owned is a data type object, then nothing is to be done as represented by the YES branch from the diamond 74 returning to the entry to the diamond 72. If the type object is a persistent type object, which is the NO branch from the diamond 74, the persistent type object is initialized (process block 75). After this initializing step a return is made back to the decision diamond 72 for more type objects to initialize. If there are no more, then a branch is taken out of this routine as depicted by a stop bubble 76.
  • a persistent type consists of a collection of features.
  • a feature object must be created for each feature of the persistent type, such as an operation, an attribute or a reference.
  • feature 34 is either an operation 35 or a property 36.
  • a property 36 has both an attribute 37 and a reference 38. If the feature is an operation, then a branch is taken to a process block 80 to create an operation object. The operation object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 6.
  • a branch is taken to another decision diamond 81 to determine if the feature is an attribute. If it is an attribute then a branch is taken to a process block 82 to create an attribute object.
  • the attribute object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 7. If the feature is not an attribute then it must be a reference. Hence, a branch is taken to a process block 83 to create a reference object.
  • the reference object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 8.
  • FIG. 6 a flow chart amplifying the process block 80 of FIG. 5 is illustrated.
  • the creation of an operation object starts with a BEGIN bubble 86.
  • an operation comprises a collection of parameters, and the text files include all the necessary parameters.
  • a parameter object must be created in the repository for each parameter defined for the operation.
  • the first inquiry is whether or not there are more parameters to define, as depicted by a decision diamond 87. If the answer is YES, then a parameter object is created to represent the parameter of the operation (process block 88).
  • a parameter object comprises a link to the type object that represents its value type. Hence, the parameter object is linked to the corresponding type object (process block 89).
  • the parameter object is added to a collection of parameters for the operation object (process block 90). Following this operation a return is made to the entry of the decision diamond 87 for retrieval of the next parameter, if any.
  • an inquiry is made as to whether or not the operation returns a value as depicted by a decision diamond 91.
  • an operation also consists of an optional link to the type object that represents its return value type. If the operation returns a value (as depicted by the YES branch from the diamond 91), then the return type is set to a reference type object, which is depicted by a process block 92. Following this process step, or if the operation does not return a value, an exit is taken from this routine as depicted by a bubble 93.
  • FIG. 7 a flow chart amplifying the process block 82 of FIG. 5 is illustrated.
  • the process steps for creating an attribute object starts with a BEGIN bubble 95.
  • an attribute object consists of a link to the data type object that represents its value type.
  • the attribute object is linked to the corresponding data type object.
  • This process step is depicted by a process block 96, which sets the value Type of attribute to reference type object.
  • an attribute object is created and an exit is taken from this routine as depicted by a bubble 97.
  • a flow chart amplifying the process block 83 of FIG. 5 is illustrated.
  • the process steps for creating a reference object starts with a BEGIN bubble 98.
  • a reference object consists of a link to the persistent type object that represents its value type.
  • the reference object is linked to the corresponding persistent type object.
  • This process step is depicted by a process block 99, which sets the value Type of reference object to reference type object.
  • a reference is a link from one persistent type to another persistent type.
  • a reference can have an inverse, which is a reference from that other type back to the original type.
  • the account Reference 55 for Transactions points back to the Transaction Record Reference 50 by means of a pointer 58.
  • a reference and its inverse are maintained automatically by the repository to maintain reference integrity. Therefore, an inquiry is next made as to whether or not the reference has an inverse, which is depicted by a decision diamond 85. If the answer is yes, then the reference object is linked to the inverse reference (process block 101). Following this step, or if the reference does not have an inverse, an exit is taken from this routine as depicted by a bubble 102.

Abstract

In a computer system having a user interface, a memory, a repository and a database, a repository program operating in the computer system for accessing the database, the repository program executing a method for supporting modeling, the method comprising the steps of examining a collection of types forming a model; sorting object types into data and persistent type objects; creating all data type objects and adding to a collection of all objects owned by the model; creating all persistent type objects and adding to a collection of all objects owned by the model; initializing all persistent type objects in the collection of objects.

Description

FIELD OF THE INVENTION
The present invention relates in general to the field of repository databases and in particular to a method for supporting object modeling in a repository.
BACKGROUND OF THE INVENTION
The storage and manipulation of data records or objects within a database application is well known in the prior art. A database allows one to store information in it; and it does not necessarily have any special meaning associated with the things that are stored in the database. A repository not only uses the database as a data store, but it is a layer above a database. A repository has information about the things stored in the database. Stated otherwise, a repository is like a card catalog that is found in the library, with the library being analogous to a database.
With the advent of repositories, improvements in the accessibility of data within databases has improved. However, as these repositories have become larger and more complex a method is required to support object modeling in a repository.
BRIEF SUMMARY OF THE INVENTION
It is therefore an object of the present invention to provide an improved repository system.
It is another object of the present invention to provide an improved repository which supports object modeling.
The method of the present invention is useful in a computer system having a user interface, a memory, a repository and a database. The method is a repository program executed by the computer system.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a computer system showing the various components of hardware and software that support a repository employing the method of the present invention.
FIG. 2 is an organization chart amplifying the breakdown of elements of a model into types and features, and their constituents.
FIG. 3 is a conceptual diagram of a model of a banking system useful in illustrating the method of the present invention.
FIG. 4 is a flow chart illustrating the creation of a model object.
FIG. 5 is a flow chart illustrating how to initialize the persistent type object.
FIG. 6 is a flow chart illustrating how to create an operation object.
FIG. 7 is a flow chart illustrating how to create an attribute model.
FIG. 8 is a flow chart illustrating how to create a reference object.
DETAILED DESCRIPTION
Before proceeding with a detailed description of the method of the present invention a background discussion of repositories in which the present invention is useful would be helpful. In general, a repository enables the user to store, manage, share and reuse information about the information system in which the repository is used. The repository enables the user to store more than just the data that is processed by an information system. For example, definition data stored in the repository may be information about the development of applications; including descriptions of data, programs and system objects. It may also include information about relationships among data, programs and system objects; as well as the semantics and use of the information.
Examples of definition information might include the files and programs that form a salary administration application. This application might define the minimum and maximum salaries at a given level. Another example is management information used to manage and maintain definition information. Management information also describes who can use definition information and when, where and why the information is used. For example, the salary administration application might be accessible only to a select group of repository users.
Yet another example is operational information about the environment in which the user operates. Examples of this information include system configuration, backup information and schedules.
Referring now to the drawings and FIG. 1 in particular, a block diagram is shown of a computer system 12 including a repository 10 that may use the method of the present invention. The repository 10 is illustrated as being supported by an information system 12 having a user interface 14. Tools 16-20 (such as CASE tools), which are integrated within the repository 10, are coupled to a services interface 15. The tools 16 and 17 are coupled to the interface 15 by means of an interface agent identified as Portable Common Tool Environment ("PCTE"), tool 18 is coupled to the interface 15 by means of an Information Resource System Dictionary ("IRDS") and tool 20 is coupled to the interface by means of an Electronic Industry Associates ("EIA") interface agent. The point here is to illustrate the flexibility of use of a variety of tools and interface agents with the repository 10.
An administrator 21 manages the repository 10, the database 13 and the environment around the repository. The administrator 21 is typically a work station that can manage a single repository or a network of repositories.
A service library 22 provides the functionality that enables the user to store, manage and reuse repository information. Examples of services within the library 22 are Composite Object Service 22a, which is disclosed in a copending patent application Ser. No. 08/381,574, filed Jan. 31, 1995, assigned to the assignee of this application and entitled IN AN OBJECT ORIENTED REPOSITORY, A METHOD OF TREATING A GROUP OF OBJECTS AS A SINGLE OBJECT; and Version Service 22b, which is disclosed in a copending patent application Ser. No. 08/381,580, filed Jan. 31, 1995, also assigned to the assignee of this application and entitled A METHOD FOR MAINTAINING A HISTORY OF SYSTEM DATA AND PROCESSES FOR AN ENTERPRISE. Another library service, Persistent Service 22c, deals with definition, tracking and maintenance of objects that continue to exist beyond the execution of a particular tool or of the repository itself. Yet another library service, MetaData Service 22d, is the subject of this application. It is noted that many more types of library services may form a part of such a repository, the details of which are beyond the scope of this disclosure.
The repository 10 employing the present invention provides a client/server architecture in which clients, i.e. tools 16-20, request services from the server, i.e. the repository 10 and its service library 22. In return the repository 10 and its service library 22 respond to requests from client tools 16-20. A repository client is software that accesses or modifies information that is maintained by the repository. The repository client uses the service library 22 (i.e., the server), which includes software integrated into the repository to manage repository information and provide services to users of that information. It is noted that software in the repository can act both as a repository client when the software is requesting a service from some other repository software and as a repository server when the software is providing a service to some other repository software.
It is pointed out that a SPARC system manufactured by Sun Microsystems, Inc. of Mountain View, Calif., was used for executing one embodiment of the method of the present invention, which method was written in C++ programming language.
As a repository user, one can access the information in the repository through the tools 16-20 that have been integrated within the repository. In the context of a repository, a "tool" is any application software that creates, modifies or uses information in the repository. Tools primarily use the repository for sharing information with other tools and tool users. For example, a COBOL compiler and a user-interface tool can share the definition of a data structure. Tools also benefit from using the repository services that provide features such as a version control and network distribution. A wide variety of tools serving many diverse purposes can use a repository. A catalog of such tools includes integrated computer-aided software engineering (CASE) and fourth generation language (4GL) tools, enterprise modeling tools, analysis and design specification tools, project planning tools, word processors, graphics tools, source code editors, compilers, linkers, de-buggers, etc.
The repository service library 22 provides the functionality that enables the user to store, manage and reuse repository information. The present invention deals with that service referred to herein as metadata services. The metadata service enables a user to define object-modeling constructs such as objects, types, attributes, relationships, operations and integrity rules. It also allows the user to extend the repository information model such that one can integrate new tools with the repository and define new types of repository objects, such as data flow diagrams and project schedules. It also allows reuse of object types and operations that are defined in the repository. Moreover, it allows the extension of repository functionality by defining subtypes and by overriding inherited operations to refine their behavior in the subtypes.
The method of the present invention provides a mechanism for representing a concept that is too large or complex to describe as a single entity through the use of modeling. Instead, a model represents the concept as a set of components and the relationships between these components. Models are abstractions of real-world concepts such as ideas, objects or systems. Typically, models are used to describe, design and document systems such as a reservation system for an airline, a banking system or a patient-information system for a hospital. Information models represent the information processed or managed by enterprises. An information model represents an enterprise as a set of related components, called types, and the relationships among the types. The types provide templates defining the structure of the information and the services provided by the model. The information model of the present invention defines information that can be stored in the repository. It also identifies the services provided by the repository and the tool and technology models supported thereby.
Repository information models define information stored in repositories and identify the repository functionality. The types defined for a repository model provide a common structure for information in a repository. This feature enables tools interfacing with the repository to share and reuse repository information.
The method of the present invention is one of the libraries of the repository and sometimes is referred to herein as metadata service. The metadata service provides the mechanisms that enable the user to perform the following tasks:
Define object-modeling constructs such as objects, types, attributes, relationships, operations, and integrity rules;
Extend the repository model to integrate new tools with the repository and define new types of repository objects, such as data flow diagrams and project schedules;
Reuse object types and operations that are defined in the repository; and,
Extend repository functionality by defining subtypes and by overriding inherited operations to refine their behavior.
At this Juncture of the description several additional definitions are helpful.
TYPES
A type is a template that describes a set of features--the state and behavior--that an object or another type can possess. A type defines a pattern that can be used to create or identify objects; it does not contain the actual object. A model is defined by a hierarchy of types.
Most types define the structure of repository objects as the features the objects can have. Data types define the values associated with the features. (Data types are also known as primitive types.) For example, data types are used to define attribute values, operation parameters, and operation return values.
The values represented by the data types do not exist as separate objects in the repository. Instead, they are always sorted as part of a repository object.
Persistent types define objects that continue to exist within the repository beyond the execution of a particular tool or of the repository. These persistent objects are essentially permanent--they remain in the repository until they are explicitly deleted by users. The majority of repository types are persistent.
A transient type defines a temporary object that will be automatically deleted when the function or program in which the object was created exists or terminates. Transient types are provided in the model to support exchange of data between an application and the repository.
A type that can be used to define other types and objects is said to be instantiable. Objects derived from a type are called instances of that type. Types derived from a type are called subtypes of that type. Instances and subtypes of a type inherit the features--attributes, references, and operations--defined for that type. The repository User type is an example of an instantiable type. A type that is used to define only other types and not objects is said to be abstract.
A type that is derived from one or more other types is called a subtype. The definition of a subtype identifies the type or types from which it is derived. A type from which a subtype is derived is called the supertype. The definition of a supertype identifies the subtypes derived from it. A type cannot be a supertype or a subtype of itself. A subtype inherits all the features of its supertype. It can be customized by adding new features. The structure created by deriving types from other types is called a hierarchy. The hierarchy shows the relationship of the supertypes and subtypes.
A hierarchy has a single base type. The base type is the highest supertype in the hierarchy.
In addition to features defined specifically for a subtype, each subtype acquires the features defined for the supertype. This trait is called inheritance. For example, managers have all of the features defined in Manager, and they inherit all of the features of Employee as well. Hence, if the Employee type has a feature such as name, we can ask for the name of a manager since Manager is a subtype of Employee.
FEATURES
A feature defines some element of either the state or the behavior that objects can possess. A feature is defined for a type, but applied to the corresponding objects. The repository has two kinds of features: operations and properties. For example, the Employee type might define the features name, birthDate, salary, and setSalary. Each employee object is subsequently considered to possess these features. That is, each employee has a name, a birth date, and salary. The employee's salary can be modified by using the setSalary feature.
There are two basic categories of features: properties and operations. Properties define state. For example, the salary feature is a property that defines an employee's current salary. Operations define behavior. For example, the setSalary feature is an operation that defines the mechanism for changing an employee's salary.
PROPERTIES
A property is a feature that represents a state that objects can possess. (In some models, properties are called instance variables.) A property can represent either a single value or a set of values. Properties are further divided into attributes, whose values are embedded within the owning objects, and references, whose values are independent objects.
The repository supports the following kinds of properties:
Attribute
A property for which the value is embedded within the owning object. For example, an employee's social security number can be defined as an attribute whose value is stored as a string within the employee object.
Reference
A property for which the value is maintained outside the owning object. For example, the employee's manager can be defined as a reference that identifies a separate employee object that represents the manager.
Every property has a domain that identifies the objects that the value of the property can hold. The domain is defined as a type. Objects that are instances of the type are legal values for the property. For example, the domain of the boss property of the Employee type might be specified as the Manager type. Therefore, only a manager object can be designated as the boss of an employee.
When an object is first created, none of its properties have values until they are implicitly assigned a default value or explicitly assigned a value by the construct operation. Until a property has a value it is considered undefined. For properties that are references, the value is considered null. The state of being null is not having a value for itself. Rather, it means that no value exists.
A property for which the value is embedded within the owning object is called an attribute. Such a property typically is used for simple values that are not shared between multiple owning objects. For example, the Employee property birthDate is simply a Date object--that is, the domain of the birthDate property is the Date type. If one employee's birthDate property is changed, the change does not affect other employees whose birthDate property is the same date. Consequently, each employee object should use a "private" date object that is embedded within it--that is, as an attribute.
A property for which the value is maintained outside the owning object is called a reference. For a reference, the owning object points to the value object. One reason for defining a property as a reference is to allow object sharing. A reference enables two or more owning objects to have the same value for a property. All owning objects can point to the same value object. For example, if two employees have the same manager as a boss, they share the same manager object. Consequently, any changes to the manager (such as changing his or her name) are reflected when the boss reference is accessed for all employees that have that boss.
A property that has one value for each object is said to be single valued. For example, each employee has one name and one birth date. A property that has more than one value for each object is said to be multi-valued. For example, each manager manages multiple employees, so the staff property for a manager object must be able to reference multiple values. A multi-valued property is defined by specifying a collection as its domain. A collection represents a set of values. A collection provides the ability to count the values defined for a multi-valued property, to add new values to the property, and to delete existing values.
The repository supports several types of collections, each of which organizes elements in a different manner. This capability enables the user to:
Store and retrieve the elements in a special order; and,
Search for elements in a special way.
The collection types supported by the repository are summarized in the following table:
______________________________________                                    
Type     Description                                                      
______________________________________                                    
Array    Creates a dynamic array of objects in which an                   
         integer index can be used to access array                        
         members. An array can contain duplicate                          
         objects.                                                         
List     Creates an ordered collection of objects. A                      
         list can contain duplicate objects.                              
Set      Creates an unordered collection of objects.                      
         Objects in a set must be unique.                                 
______________________________________                                    
OPERATIONS
An operation is a feature that represents a behavior that objects can possess. An operation can be thought of as a function: it has a name, an optional set of parameters, and an optional return type. Like properties, operations are applied to each object within the owning type. Consequently, an operation is generally invoked in the context of a specific object.
An operation can have parameters that identify information a caller must provide when invoking the operation.
If an operation has no parameters, a caller merely invokes the operation for the desired object. For example, consider the following features:
______________________________________                                    
                           Domain/Return                                  
Type       Feature         Type                                           
______________________________________                                    
Employee   birthDate (attribute)                                          
                           Date                                           
           age (operation) Integer                                        
______________________________________                                    
As shown, the birthDate attribute has a domain of Date. Age is an operation (with no parameters) whose return type is Integer. The purpose of age is to compute an employee's current age (in years) from his or her birth date. Because the age operation is invoked for a specific employee, it is able to obtain the value of that employee's birthDate attribute, make the necessary computation, and return the appropriate integer without requiring parameters.
When an operation has parameters, each parameter has semantics similar to those of properties. Each parameter has a name, a domain type, and a set of options that can be used to affect the behavior of the parameter. The following table shows an example of an operation, defined for the Employee type, that has parameters:
______________________________________                                    
                    Parameter Parameter                                   
Operation                                                                 
         Parameter  Domain    Options                                     
______________________________________                                    
setSalary                                                                 
         amount     Real      REQUIRED                                    
         authorizedBy                                                     
                    Manager   REQUIRED                                    
         effective  Date      DEFAULT today's                             
                              date                                        
______________________________________                                    
The setSalary operation has three parameters:
The amount parameter is a Real number (floating-point) that is required. Therefore, the caller must specify a value for this parameter.
The authorizedBy parameter is a Manager object that also is required.
The effective parameter is a date parameter that is not required. However, if the caller does not specify a value for this parameter, the current system date is used by default.
A multi-valued parameter is a set, or collection, of values. Such a parameter is useful when the operation must operate on several objects even though it is invoked in the context of a single object. An operation optionally can return an object when it completes processing, just as a program function can return a value. An operation that returns an object is called typed because it has a return type specified. An operation that does not return an object is called un-typed because it does not have a return type specified. A return type must be one of the types recognized by the repository. An operation can return a set of objects by specifying a collection as its return type.
An operation can be defined for a type and then redefined for each subtype of the original type. This process is called overriding an operation.
When an operation is overridden, a subtype that inherits the operation has a separate method that redefines the functionality of that operation. The technique that the repository uses to choose which method to call for a given operation is called dynamic binding.
Dynamic binding (also called polymorphism) means that the repository chooses the method that is most specific for a given object and operation. The most specific method is the one defined in the lowest subtype of which the object is an instance.
For example, assume setSalary is an operation defined for the Employee type. An employee object can be an instance of the Employee type or one of its subtypes.
If you call the setSalary operation for an object that is an Employee instance, the repository selects the method associated with the setSalary operation defined for the employee type.
If you call the setSalary operation for an object that is a Manager instance, the repository selects the method associated with the setSalary operation as it is redefined for the Manager type. If the Manager type does not redefine the setSalary operation, the repository selects the method associated with the setSalary operation defined for the Employee type as the immediate supertype of the Manager type.
You can define an operation to be called with different sets of parameters. For example, you might define the setSalary operation to be called with only an amount parameter or with both an amount parameter and an effectiveDate parameter.
Each combination of parameters that an operation can accept is called a signature. To define multiple signatures for an operation, you define the operation more than once in the same owner type and use the desired signature for each definition.
METHODS
The operations defined for a model form an interface that can be seen by a caller. Separate from this definition, each operation must be implemented by a module of code called a method. Methods are typically written as separate functions and bound into a set of code libraries. The method code library name for each operation is then identified to the repository as part of the definition of the operation.
When a caller invokes an operation, the request is received by the repository, which finds and calls the appropriate method. The operation passes to the method the appropriate parameters. When a method is called, it can then act as a caller and call back into the repository to invoke other operations. Consequently, a method can be thought of as a specialized kind of application program.
OBJECTS
An object is an abstract representation of a real-world concept or thing--such as a person, a software package, or an event--that is stored in the repository. In the repository, the state of an object is represented by the values of the properties defined for the type. For example, the state of an integer is its numeric value. The state of a person is its name, birthDate, spouse and so on.
The behavior of an object is the set of functions that the object can perform. In the repository, the behavior of an object is represented by the operations defined for the owner type. A characteristic of object behavior is the ability to return some of its state to a requester. For example, the object person can return its name. For this reason, some object models describe object behavior as the set of messages that an object can receive and respond to. One example of object behavior is the capability an integer has to perform such functions as addition, square root and absolute value.
Specification of a model in the repository depends on the definition of the object types of the metadata. With reference to FIG. 2, the object types of the metadata service are shown. First, there is a model 30 followed by a type 31. A type is a template that describes a set of features (the state and behavior) that an object or another type can possess. A type defines a pattern that can be used to create or identify objects; it does not contain the actual object. A model is defined by a hierarchy of transient data types 32 or persistent object types 33. Next are features 34 which are categorized into operations 35 or properties 36. A feature defines some element of either the state or the behavior that objects can possess. A feature is defined for a type, but applied to the corresponding objects. In other words, a type defines the layout of the data for the objects, and objects are instances of the type. Properties define a state. For example, the salary feature is a property that defines an employee's current salary. Operations define behavior. For example, the setSalary feature is an operation that defines the mechanism for changing an employee's salary. The properties 36 are categorized as attributes 37, whose values are embedded within the owning objects, and references 38, whose values are independent objects.
Example of a Model
Referring now to FIG. 3, a conceptual diagram of a model of a banking system is provided for help in illustrating the method of the present invention. To begin with, several types, both data and persistent, are created. For example, a persistent type 40 is created for a Transaction Record. Three data types 41, 42 and 43 are created for $ Amount, Date and Name, respectively. Another persistent type 44 is created for Account. Yet another persistent type 45 is created for Customer. Still another persistent type 46 is set up for a special account such as Christmas Club, which account is a subtype of Account 44 and is linked thereto by a pointer 47. The persistent type 46 includes an operation 48 for execution of a print statement operation.
Within the persistent type 40 for Transaction Record, attributes 49 and 50 are created for Amount and Date, respectively. Also, a reference 51 is established for Account. The attribute 49 for Account is linked to the data type 41 for $ Amount by a pointer 52. In a like manner, attribute 50 for Date is linked to the data type 42 by a pointer 53. These pointers will be explained in greater detail hereinafter. Within the persistent type 44 for Account, references 54 and 55 are created for Customer and Transactions, respectively.
The reference 54 is linked to the persistent type 45 for Customer by a pointer 56; and, the reference 55 is linked to the persistent type 40 by a pointer 57. The reference 55 for Transactions is linked to the reference 50 within Transaction Record by a pointer 58. Inversely, the reference 50 is linked back to the reference 55 by the same pointer 58. Thus, this relationship is referred to herein as an inverse reference. Also within the persistent type 44 an operation 59 is created for Print Statement.
Within the persistent type 45 for Customer, a data type 60 is created for Name. The data type 60 is linked to the data type 43 for Name by a pointer 61.
When a transaction within the banking system takes place the amount thereof is entered into the attribute 49 from the data type 41; and, the date is recorded into the attribute 51 from the data type 42. The Customer name is entered into the reference 54 from the data type 60 within the persistent type 45; and, the amount, the account number and the date of the transaction is entered into the reference 55 from the persistent type 40-Transaction Record. Note that the reference 55 in this model is multivalued since many transaction records will be made for a particular account.
When a statement is to be printed for accounts, then the print statement operation 59 within the persistent type 44 and operation 48 within the persistent type 46 will be executed.
The transaction recorded within the database 13 appears as shown. That is, the dollar amount of the transaction is recorded along with the account number, the date and the transaction.
Description of one Embodiment: Defining a Model
The data stored into the repository is defined by what is known as the information model. Such a model is a collection of models that define the data that will be stored in the repository. The Model is the basic type of the metadata service, and a basic services model is stored in the repository for use as an outline to aid the user. Thus, to create a model the user creates instances of each of the elements of a model (see FIG. 2), as required for the subject being modeled (see FIG. 3 for the subject of banking). Each Model defined in the repository consists of one or more Types. Each Persistent Type declared in a model is defined as containing one or more Features. The Features of a Persistent Type define the state (Property) as well as the behavior (Operation) of the type. An Attribute represents a basic data value of an object. For example, if one object represents an employee, the date the employee was hired is an attribute of the employee type. A Reference links one object to another object. For example, if one object represents an employee and another object represents a task, the task being worked on by the employee is a reference of the employee type.
To define a model the user creates and relates instances of the repository MetaModel, MetaType and repository MetaFeature types. That is, the MetaType instance represents the structure, while the MetaFeature instance represents the interface and functionality of the model. The order in which the user defines a model and its components is as follows:
1. Create the model;
2. Create the types that the model contains; and
3. Define the features for each type.
For defining a model in the repository, the user constructs the operation of an instance of the MetaModel type. This instance represents the model in the repository. Once the user has established a new model in the repository, then the structure of that model is defined by defining the types that are part of the model. Note that a type can be used in only one model, which restriction is necessary in order to avoid confusion.
To define a feature for a type, the user employs the construct operation to create an instance of one of the following repository MetaFeature subtypes:
Repository MetaAttribute type
An instance of this type represents a data-valued property of the type.
Repository MetaReference type
An instance of this type represents an object-valued property of the type.
Repository MetaOperation type
An instance of this type represents an operation of the type.
In defining a property the user must define both an attribute and a reference. To define an attribute the user employs the construct operation to create an instance of the MetaAttribute type. This instance contains the following information:
The name of the attribute;
The data type of the attribute value;
The attribute value is an instance of one of the subtypes of the repository MetaDataType type; and
Any constraints of the attribute, such as required or unique.
To define a reference the user employs the construct operation to create an instance of the repository MetaReference. This instance contains the following information:
The name of the reference;
The instance of the repository MetaClass type that describes the kind of object which the reference value represents;
Any constraints on the reference, such as required or unique; and
The name of the inverse reference for this reference.
To define an operation for a type the user employs the construct operation to create an instance of the repository MetaOperation type. This instance contains the following information:
The name of the operation;
A reference to the repository Method instance that describes the processing the operation performs;
A list of the repository Parameter type that represent the types of the objects that must be provided to the operation by the caller.
The metadata service of the present invention enables the user to define relationships among objects in a model. The metadata service supports the following kinds of relationships:
Inheritance
Reference
Composite
Dependent
Inheritance relationships are defined through the superclass and subclass properties of the repository MetaClass type. Reference, composite and dependent relationships are defined through the composite and dependent properties of the repository MetaReference type. In defining a value type for a relationship, the user must indicate a value type for the relationship. Only objects of that value type, or one of its subtypes, can be included in that relationship. In defining an inheritance relationship, also known as a generalization or specialization relationship, the user designates superclasses and subclasses within the instance of the repository MetaClass type. A type inherits the characteristics of the superclass and passes characteristics to its subclasses. The metadata service of the present invention supports both single inheritance and multiple inheritance.
In defining a composition relationship, also known as a whole-part or parts of relationships, the user sets the composite property to true, and declares the inverse relationship of the destination object to the source object as a reference relationship. The semantics of a composition relationship determine how an object is versioned and its components are handled.
A dependent relationship indicates that the existence of one or more objects is dependent on another object. To define such a relationship the user sets the composite property to TRUE. This relationship is also referred to as an existence constraint because the dependent object exists only if the source object exists. The metadata service enables the user to define several variations of dependent relationships that have different semantics:
1. A destination object is owned exclusively by a source object. In this scenario, the destination object belongs to the source object and cannot be shared with any other source objects. This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship single-valued and required.
2. A destination object can be shared among other objects. In this scenario, several source objects can have dependent relationships with a single destination object. This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship multi-valued and required. It should be noted that a destination object can exist without any source object. In this scenario, a destination object does not require a source object. This type of dependent relationship is created by defining the relationship of the source object to the destination object as a dependent relationship; declaring the inverse relationship of the destination object to the source object as a reference relationship; and, making the inverse relationship either single valued or multi-valued and not required.
Referring now to FIG. 4, a flow chart illustrating the process steps for creating a model object is shown. From a start bubble 65 the first process step is to create a model object to represent the model in the repository, which is depicted by a block 66. A model consists of a collection of types and a type object is to be created for each type, all within a text file. An examination is made of the text file retrieved for each and every type that belongs to the same model. It is pointed out that each type includes an identification of the model to which it belongs. Thus, an inquiry is made as to whether or not there are more types in the text file to create (decision diamond 67). If the answer is YES, then a branch is taken to another inquiry as to whether or not this type is a data type (decision diamond 68), since the specific type object created depends on whether the type is a data type or a persistent type. If the answer from decision diamond 68 is NO, then it must be a persistent type since there are only two model types: data and persistent. A persistent type object is created to represent the persistent type in the repository as depicted by the process block 69; and if the type is a data type then a data type object is created to represent the data type in the repository as depicted by the process block 70. Finally, the type objects (both persistent and data) are added to a collection of types owned by the model (process block 71).
Once all of the type objects have been created, we must go through the collection of type objects a second time to properly set up (i.e., initialize) the persistent type objects. With reference again to the decision diamond 67, if there are no more types to create then a branch is taken to yet another inquiry as to whether or not there are more objects to initialize (decision diamond 72). If the answer is YES then a branch is taken to a process block 73 depicting the obtaining of the next type object from the collection of types owned by the model (block 71). Next, an inquiry is made as to whether or not the type object is a data type, decision diamond 74. If the type object owned is a data type object, then nothing is to be done as represented by the YES branch from the diamond 74 returning to the entry to the diamond 72. If the type object is a persistent type object, which is the NO branch from the diamond 74, the persistent type object is initialized (process block 75). After this initializing step a return is made back to the decision diamond 72 for more type objects to initialize. If there are no more, then a branch is taken out of this routine as depicted by a stop bubble 76.
Referring now to FIG. 5, a flow chart amplifying the process block 75 of FIG. 4 is shown. The initializing of the persistent type object begins with bubble 77. A persistent type consists of a collection of features. A feature object must be created for each feature of the persistent type, such as an operation, an attribute or a reference. We begin with an inquiry as to whether or not there are more features of the type to create (decision diamond 78). If yes, then a branch is made to another inquiry (decision diamond 79) as to whether or not the feature is an operation or a property.
With reference briefly back to FIG. 2, note that feature 34, is either an operation 35 or a property 36. Also, a property 36 has both an attribute 37 and a reference 38. If the feature is an operation, then a branch is taken to a process block 80 to create an operation object. The operation object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 6.
If the feature is a property then a branch is taken to another decision diamond 81 to determine if the feature is an attribute. If it is an attribute then a branch is taken to a process block 82 to create an attribute object. The attribute object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 7. If the feature is not an attribute then it must be a reference. Hence, a branch is taken to a process block 83 to create a reference object. The reference object creation process will be explained in greater detail hereinbelow in conjunction with the description of FIG. 8.
Finally, when there are no more features of types to create, as depicted by the NO branch from the decision diamond 78, then an exit is made from the process to initialize the persistent type object as depicted by bubble 85.
Referring now to FIG. 6, a flow chart amplifying the process block 80 of FIG. 5 is illustrated. The creation of an operation object starts with a BEGIN bubble 86. Recall that an operation comprises a collection of parameters, and the text files include all the necessary parameters. Thus, a parameter object must be created in the repository for each parameter defined for the operation. The first inquiry is whether or not there are more parameters to define, as depicted by a decision diamond 87. If the answer is YES, then a parameter object is created to represent the parameter of the operation (process block 88). A parameter object comprises a link to the type object that represents its value type. Hence, the parameter object is linked to the corresponding type object (process block 89). Next, the parameter object is added to a collection of parameters for the operation object (process block 90). Following this operation a return is made to the entry of the decision diamond 87 for retrieval of the next parameter, if any.
Once there are no more parameters to define, as depicted by the NO branch from the diamond 87, then an inquiry is made as to whether or not the operation returns a value as depicted by a decision diamond 91. Note that an operation also consists of an optional link to the type object that represents its return value type. If the operation returns a value (as depicted by the YES branch from the diamond 91), then the return type is set to a reference type object, which is depicted by a process block 92. Following this process step, or if the operation does not return a value, an exit is taken from this routine as depicted by a bubble 93.
Referring now to FIG. 7, a flow chart amplifying the process block 82 of FIG. 5 is illustrated. The process steps for creating an attribute object starts with a BEGIN bubble 95. Note that an attribute object consists of a link to the data type object that represents its value type. Thus, the attribute object is linked to the corresponding data type object. This process step is depicted by a process block 96, which sets the value Type of attribute to reference type object. Following this step an attribute object is created and an exit is taken from this routine as depicted by a bubble 97.
Referring now to FIG. 8, a flow chart amplifying the process block 83 of FIG. 5 is illustrated. The process steps for creating a reference object starts with a BEGIN bubble 98. Note that a reference object consists of a link to the persistent type object that represents its value type. Thus, the reference object is linked to the corresponding persistent type object. This process step is depicted by a process block 99, which sets the value Type of reference object to reference type object. A reference is a link from one persistent type to another persistent type. A reference can have an inverse, which is a reference from that other type back to the original type. With brief reference back to FIG. 3, note that the account Reference 55 for Transactions points back to the Transaction Record Reference 50 by means of a pointer 58. A reference and its inverse are maintained automatically by the repository to maintain reference integrity. Therefore, an inquiry is next made as to whether or not the reference has an inverse, which is depicted by a decision diamond 85. If the answer is yes, then the reference object is linked to the inverse reference (process block 101). Following this step, or if the reference does not have an inverse, an exit is taken from this routine as depicted by a bubble 102.
Although the invention has been described with reference to a specific embodiment, this description is not meant to be construed in a limiting sense. Various modifications of the disclosed embodiment as well as alternative embodiments of the invention will become apparent to one skilled in the art upon reference to the description of the invention. It is therefore contemplated that the appended claims will cover any such modifications of embodiments that fall within the true scope of the invention.

Claims (7)

What is claimed is:
1. In a computer system having a user interface, a memory, a repository and a database, a repository program operating in said computer system for accessing said database, said repository program executing a method for supporting object modeling, said method comprising the steps of:
a. examining a collection of types forming a model stored in said repository;
b. sorting object types into data and persistent type objects;
c. creating all data type objects and adding to a collection of all objects owned by said model;
d. creating all persistent type objects and adding to a collection of all objects owned by said model;
e. initializing all persistent type objects in said collection of objects by;
1) examining each persistent type object in said collection for features thereof;
2) sorting said features into operations, attributes and references;
3) creating an operation type object for all operations sortedby said step of sorting;
4) creating an attribute type object for all attributes sorted by said step of sorting;
5) creating a reference type object for all references sortedby said step of sorting; and,
6) adding all features created into a collection of features owned by said persistent types.
2. The method as in claim 1 wherein said step of creating an operation comprises the steps of:
a. examining a collection of parameters of said operation;
b. creating a parameter object for each parameter examined in said first step;
c. adding each of said parameters to a collection of parameters for an operation; and,
d. determining if said operation returns an operation type.
3. In a computer system having a user interface and a database, each being coupled to said system, a repository program operating in said computer system for accessing said database, said repository program executing a method for supporting object modeling, said method comprising the steps of:
a. creating a model object to represent a model in said repository;
b. for each type of said model determining if an individual one of said types is a data type, and if so;
c. creating a data type object and adding it to a collection of types owned by said model;
d. if said individual one of said types is not a data type, creating a persistent type object and adding it to said collection of types owned by said model;
e. after all types of said model have been processed in accordance with the preceding steps, determining if each type object is to be initialized, and if so;
f. getting next type object from said collection of types owned by said model;
g. determining if said next type object is a data type, and if not it must be a persistent type;
h. initializing each of said persistent type objects; and,
i. after all type objects have been processed in accordance with steps e through h hereof, stopping said program.
4. A method as in claim 3 wherein said step of initializing said persistent type objects further comprises:
a. determining if there are more features of said persistent type to create, and if yes;
b. determining if said feature of said persistent type is an operation object, and if so;
c. creating an operation object and adding it to a collection of features owned by said persistent type;
d. if said feature of said persistent type is not an operation type, determining if said feature is an attribute, and if so;
e. creating an attribute object and adding it to said collection of features owned by said persistent type;
f. if said feature of said persistent type is not an attribute, creating a reference object and adding it to said collection of features owned by said persistent type; and,
g. when there are no more features of said persistent type to create, stopping initialization of said persistent type and returning to step h of claim 3.
5. A method as in claim 4 wherein said step of creating an operation object further comprises:
a. for each parameter to be defined, creating a parameter object;
b. setting a value type reference of an individual parameter object to a reference type object;
c. adding said individual parameter object to a collection of parameters of said operation object;
d. when there are no more parameters to define, determining if said operation object returns a value, and if so;
e. setting a value type reference of said operation object to a type object;
f. if said operation object does not return a value, stopping creation of said operation object and returning to step c of claim 4.
6. A method as in claim 4 wherein said step of creating an attribute object further comprises:
a. setting a value type reference of said attribute object to a data type object; and,
b. stopping creation of said attribute object and returning to step e of claim 4.
7. A method as in claim 4 wherein said step of creating a reference object further comprises:
a. setting a value type reference of said reference object to a persistent type object;
b. determining if said reference has an inverse, and if so;
c. linking said reference object to an inverse reference; and,
d. if said reference does not have an inverse, stopping creation of said reference object and returning to step f of claim 4.
US08/382,303 1995-01-31 1995-01-31 Method for supporting object modeling in a repository Expired - Fee Related US5644764A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US08/382,303 US5644764A (en) 1995-01-31 1995-01-31 Method for supporting object modeling in a repository

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/382,303 US5644764A (en) 1995-01-31 1995-01-31 Method for supporting object modeling in a repository

Publications (1)

Publication Number Publication Date
US5644764A true US5644764A (en) 1997-07-01

Family

ID=23508374

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/382,303 Expired - Fee Related US5644764A (en) 1995-01-31 1995-01-31 Method for supporting object modeling in a repository

Country Status (1)

Country Link
US (1) US5644764A (en)

Cited By (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721911A (en) * 1996-06-25 1998-02-24 International Business Machines Corporation Mechanism for metadata for an information catalog system
US5848273A (en) * 1995-10-27 1998-12-08 Unisys Corp. Method for generating OLE automation and IDL interfaces from metadata information
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US5870742A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Method and apparatus for enabling persistent attributes in an object oriented environment
US5907847A (en) * 1996-09-26 1999-05-25 Sun Microsystems, Inc. Method and apparatus for coupling object state and behavior in a database management system
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6023578A (en) * 1997-05-09 2000-02-08 International Business Macines Corporation Systems, methods and computer program products for generating an object oriented application for an object oriented environment
US6023579A (en) * 1998-04-16 2000-02-08 Unisys Corp. Computer-implemented method for generating distributed object interfaces from metadata
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
WO2000023863A2 (en) * 1998-10-16 2000-04-27 Computer Associates Think, Inc. Determining differences between two or more metadata models
US6125388A (en) * 1994-05-31 2000-09-26 Reisman; Richard R. System for transporting information objects between a user station and multiple remote sources based upon user modifiable object manifest stored in the user station
US6138122A (en) * 1998-03-02 2000-10-24 Agilent Technologies Modeling of internet services
US6167563A (en) * 1998-09-17 2000-12-26 Unisys Corporation Method and system for building components in a framework useful in developing integrated business-centric applications
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US6327698B1 (en) * 1998-12-23 2001-12-04 Unisys Corp. Method for integrating models in a modelling tool into an object oriented repository
US6349404B1 (en) * 1999-06-08 2002-02-19 Unisys Corp. Object-oriented repository, a system and method for reusing existing host-based application assets for the development of business-centric applications
US20020055832A1 (en) * 2000-06-23 2002-05-09 Donelan Anne T. Structured system for the planning, integration, analysis and management of new product development on a real-time, enterprise-wide basis
US6401100B1 (en) * 1998-12-09 2002-06-04 Unisys Corp. Method for associating classes contained in the same or different models
US6430556B1 (en) 1999-11-01 2002-08-06 Sun Microsystems, Inc. System and method for providing a query object development environment
US20020165998A1 (en) * 2001-05-03 2002-11-07 Sun Microsystems, Inc., A Delaware Corporation Method and apparatus for meta object facility repository event notification
US6496833B1 (en) * 1999-11-01 2002-12-17 Sun Microsystems, Inc. System and method for generating code for query object interfacing
US6535868B1 (en) * 1998-08-27 2003-03-18 Debra A. Galeazzi Method and apparatus for managing metadata in a database management system
US20030079107A1 (en) * 2001-10-19 2003-04-24 International Business Machines Corporation System and method for providing an interface for a repository
US20030097363A1 (en) * 2000-07-17 2003-05-22 Dorsey Paul R. Method and computer system for storage of data structure business rules using UML class diagrams
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
US6571297B1 (en) * 1997-08-20 2003-05-27 Bea Systems, Inc. Service interface repository application programming models
US6587858B1 (en) * 1999-09-30 2003-07-01 Steven Paul Strazza Systems and methods for the control of dynamic data and request criteria in a data repository
US20030131018A1 (en) * 2002-01-09 2003-07-10 International Business Machines Corporation Common business data management
US20030149552A1 (en) * 2001-09-20 2003-08-07 International Business Machines Corporation Metamodel generation on the basis of examples of target models
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US20030195867A1 (en) * 1998-10-12 2003-10-16 Starwave Corporation Method and apparatus for event modeling
US20040068513A1 (en) * 2002-10-02 2004-04-08 Carroll David B. System and method for organizing information
EP1416401A2 (en) * 2002-10-30 2004-05-06 Siemens Aktiengesellschaft Extension of datasets
US6760019B1 (en) * 2000-06-01 2004-07-06 Sun Microsystems, Inc. Methods and apparatus for facilitating the sharing of computer graphics operations
US6775825B1 (en) * 2000-10-31 2004-08-10 Hewlett-Packard Development Company, L.P. Common software application definition for resource management
US20050022163A1 (en) * 2003-07-22 2005-01-27 Rainer Brendle Service management of a service oriented business framework
US20050021536A1 (en) * 2003-07-22 2005-01-27 Thomas Fiedler Extending service-oriented business frameworks
US20050021998A1 (en) * 2003-07-22 2005-01-27 Thomas Fiedler Declarative configuration of enterprises services
US20050021355A1 (en) * 2003-07-22 2005-01-27 Rainer Brendle Side-effect modeling of a service-oriented business framework
US20050034107A1 (en) * 2002-02-12 2005-02-10 Kendall Elisa Finnie Method and apparatus for frame-based knowledge representation in the unified modeling language (uml)
US6857123B1 (en) 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
WO2005015438A2 (en) * 2003-07-22 2005-02-17 Sap Aktiengesellschaft Meta model for an enterprise service architecture
US20050108684A1 (en) * 2003-11-14 2005-05-19 Sohn Matthias E. Method and system for generating an application object repository from application framework metadata
US6918106B1 (en) 2000-07-31 2005-07-12 Sun Microsystems, Inc. Method and apparatus for collocating dynamically loaded program files
US20050160401A1 (en) * 1999-10-16 2005-07-21 Computer Associates Think, Inc. System and method for adding user-defined objects to a modeling tool
US20060020588A1 (en) * 2004-07-22 2006-01-26 International Business Machines Corporation Constructing and maintaining a personalized category tree, displaying documents by category and personalized categorization system
US20060111895A1 (en) * 2004-11-24 2006-05-25 Blaedow Karen R Method and apparatus for determining the meaning of natural language
US7069540B1 (en) 2001-07-02 2006-06-27 Unisys Corporation COM persistence model
US20060225030A1 (en) * 1999-10-16 2006-10-05 Deffler Tad A Method and System for Generating Dynamic Comparison Models
US7133880B1 (en) * 1997-10-31 2006-11-07 Oracle International Corporation Object views for relational data
US20070038586A1 (en) * 2003-09-12 2007-02-15 Kankoon Data processing method based on simple element dynamic structures
US7349915B1 (en) * 2000-03-23 2008-03-25 General Atomics Persistent archives
US20080104122A1 (en) * 1997-05-21 2008-05-01 Hempleman James D List Building System
US20080114812A1 (en) * 2004-11-19 2008-05-15 Bea Systems, Inc. Data object identification, tracking, filtering and monitoring using data object fingerprints in a repository
US7533103B2 (en) 2003-07-22 2009-05-12 Sap Ag Self-describing business objects
US7590617B1 (en) * 1999-08-04 2009-09-15 American Management Systems, Incorporated System providing desktop integration of patient information and document management
US20100318500A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Backup and archival of selected items as a composite object

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412774A (en) * 1990-08-29 1995-05-02 At&T Corp. Apparatus for and method of displaying a data item of a database using the display function of a selected data item
US5432932A (en) * 1992-10-23 1995-07-11 International Business Machines Corporation System and method for dynamically controlling remote processes from a performance monitor
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5553282A (en) * 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5412774A (en) * 1990-08-29 1995-05-02 At&T Corp. Apparatus for and method of displaying a data item of a database using the display function of a selected data item
US5432932A (en) * 1992-10-23 1995-07-11 International Business Machines Corporation System and method for dynamically controlling remote processes from a performance monitor
US5497491A (en) * 1993-01-26 1996-03-05 International Business Machines Corporation System and method for importing and exporting data between an object oriented computing environment and an external computing environment
US5553282A (en) * 1994-12-09 1996-09-03 Taligent, Inc. Software project history database and method of operation

Cited By (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8069204B2 (en) 1994-05-31 2011-11-29 Twintech E.U., Limited Liability Company Providing and receiving content over a wireless communication system
US9111604B2 (en) 1994-05-31 2015-08-18 Intellectual Ventures I Llc Software and method that enables selection of on-line content from one of a plurality of network content service providers in a single action
US6125388A (en) * 1994-05-31 2000-09-26 Reisman; Richard R. System for transporting information objects between a user station and multiple remote sources based upon user modifiable object manifest stored in the user station
US9484078B2 (en) 1994-05-31 2016-11-01 Intellectual Ventures I Llc Providing services from a remote computer system to a user station over a communications network
US8407682B2 (en) 1994-05-31 2013-03-26 Intellectual Ventures I Llc Software and method that enables selection of one of a plurality of online service providers
US8321499B2 (en) 1994-05-31 2012-11-27 Intellectual Ventures I Llc Method for distributing content to a user station
US6594692B1 (en) 1994-05-31 2003-07-15 Richard R. Reisman Methods for transacting electronic commerce
US8719339B2 (en) 1994-05-31 2014-05-06 Intellectual Ventures I Llc Software and method that enables selection of one of a plurality of online service providers
US8812620B2 (en) 1994-05-31 2014-08-19 Intellectual Property I LLC Software and method that enables selection of one of a plurality of online service providers
US8131883B1 (en) 1994-05-31 2012-03-06 Intellectual Ventures I, Limited Liability Company Method for distributing content to a user station
US8024399B2 (en) 1994-05-31 2011-09-20 Twintech E.U., Limited Liability Company Software distribution over a network
US9484077B2 (en) 1994-05-31 2016-11-01 Intellectual Ventures I Llc Providing services from a remote computer system to a user station over a communications network
US7653687B2 (en) 1994-05-31 2010-01-26 Reisman Richard R Method for distributing content to a user station
US8635272B2 (en) 1994-05-31 2014-01-21 Intellectual Ventures I Llc Method for distributing a list of updated content to a user station from a distribution server wherein the user station may defer installing the update
US8825872B2 (en) 1994-05-31 2014-09-02 Intellectual Ventures I Llc Software and method for monitoring a data stream and for capturing desired data within the data stream
US8499030B1 (en) 1994-05-31 2013-07-30 Intellectual Ventures I Llc Software and method that enables selection of one of a plurality of network communications service providers
US5848273A (en) * 1995-10-27 1998-12-08 Unisys Corp. Method for generating OLE automation and IDL interfaces from metadata information
US6625617B2 (en) 1996-01-02 2003-09-23 Timeline, Inc. Modularized data retrieval method and apparatus with multiple source capability
US6044205A (en) * 1996-02-29 2000-03-28 Intermind Corporation Communications system for transferring information between memories according to processes transferred with the information
US5862325A (en) * 1996-02-29 1999-01-19 Intermind Corporation Computer-based communication system and method using metadata defining a control structure
US6088717A (en) * 1996-02-29 2000-07-11 Onename Corporation Computer-based communication system and method using metadata defining a control-structure
US5870742A (en) * 1996-03-20 1999-02-09 International Business Machines Corporation Method and apparatus for enabling persistent attributes in an object oriented environment
US5721911A (en) * 1996-06-25 1998-02-24 International Business Machines Corporation Mechanism for metadata for an information catalog system
US6173290B1 (en) 1996-09-26 2001-01-09 Sun Microsystems, Inc. Method and apparatus for coupling object state and behavior in a database management system
US5907847A (en) * 1996-09-26 1999-05-25 Sun Microsystems, Inc. Method and apparatus for coupling object state and behavior in a database management system
US5987247A (en) * 1997-05-09 1999-11-16 International Business Machines Corporation Systems, methods and computer program products for building frameworks in an object oriented environment
US6023578A (en) * 1997-05-09 2000-02-08 International Business Macines Corporation Systems, methods and computer program products for generating an object oriented application for an object oriented environment
US7814135B1 (en) 1997-05-21 2010-10-12 Premier International Associates, Llc Portable player and system and method for writing a playlist
US7680829B1 (en) 1997-05-21 2010-03-16 Premier International Associates, Llc List building system
US20080109488A1 (en) * 1997-05-21 2008-05-08 Hempleman James D List Building System
US20080133576A1 (en) * 1997-05-21 2008-06-05 Hempleman James D List Building System
US7805402B2 (en) 1997-05-21 2010-09-28 Premier International Associates, Llc List building system
US7814133B2 (en) 1997-05-21 2010-10-12 Premier International Associates, Llc List building system
US20080104122A1 (en) * 1997-05-21 2008-05-01 Hempleman James D List Building System
US6571297B1 (en) * 1997-08-20 2003-05-27 Bea Systems, Inc. Service interface repository application programming models
US6301584B1 (en) * 1997-08-21 2001-10-09 Home Information Services, Inc. System and method for retrieving entities and integrating data
US7133880B1 (en) * 1997-10-31 2006-11-07 Oracle International Corporation Object views for relational data
US6138122A (en) * 1998-03-02 2000-10-24 Agilent Technologies Modeling of internet services
SG82597A1 (en) * 1998-03-02 2001-08-21 Agilent Technologies Inc Modeling of internet services
US6023579A (en) * 1998-04-16 2000-02-08 Unisys Corp. Computer-implemented method for generating distributed object interfaces from metadata
US6535868B1 (en) * 1998-08-27 2003-03-18 Debra A. Galeazzi Method and apparatus for managing metadata in a database management system
US6167563A (en) * 1998-09-17 2000-12-26 Unisys Corporation Method and system for building components in a framework useful in developing integrated business-centric applications
US20030195867A1 (en) * 1998-10-12 2003-10-16 Starwave Corporation Method and apparatus for event modeling
US7373337B2 (en) * 1998-10-12 2008-05-13 Google Inc. Method and apparatus for event modeling
WO2000023863A3 (en) * 1998-10-16 2000-11-23 Computer Ass Think Inc Determining differences between two or more metadata models
US6385610B1 (en) 1998-10-16 2002-05-07 Computer Associates Think, Inc. Method and apparatus for identifying and visualizing differences in object model diagrams
WO2000023863A2 (en) * 1998-10-16 2000-04-27 Computer Associates Think, Inc. Determining differences between two or more metadata models
US7711685B1 (en) 1998-10-16 2010-05-04 Computer Associates Think, Inc. Method and system for an extensible macro language
US6401100B1 (en) * 1998-12-09 2002-06-04 Unisys Corp. Method for associating classes contained in the same or different models
US6857123B1 (en) 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
US6327698B1 (en) * 1998-12-23 2001-12-04 Unisys Corp. Method for integrating models in a modelling tool into an object oriented repository
US6349404B1 (en) * 1999-06-08 2002-02-19 Unisys Corp. Object-oriented repository, a system and method for reusing existing host-based application assets for the development of business-centric applications
US7590617B1 (en) * 1999-08-04 2009-09-15 American Management Systems, Incorporated System providing desktop integration of patient information and document management
US6587858B1 (en) * 1999-09-30 2003-07-01 Steven Paul Strazza Systems and methods for the control of dynamic data and request criteria in a data repository
US20050160401A1 (en) * 1999-10-16 2005-07-21 Computer Associates Think, Inc. System and method for adding user-defined objects to a modeling tool
US7734457B2 (en) 1999-10-16 2010-06-08 Computer Associates Think, Inc. Method and system for generating dynamic comparison models
US20060225030A1 (en) * 1999-10-16 2006-10-05 Deffler Tad A Method and System for Generating Dynamic Comparison Models
US6430556B1 (en) 1999-11-01 2002-08-06 Sun Microsystems, Inc. System and method for providing a query object development environment
US6496833B1 (en) * 1999-11-01 2002-12-17 Sun Microsystems, Inc. System and method for generating code for query object interfacing
US6571232B1 (en) * 1999-11-01 2003-05-27 Sun Microsystems, Inc. System and method for browsing database schema information
US7349915B1 (en) * 2000-03-23 2008-03-25 General Atomics Persistent archives
US7536425B2 (en) 2000-03-23 2009-05-19 General Atomics Persistent archives
US6760019B1 (en) * 2000-06-01 2004-07-06 Sun Microsystems, Inc. Methods and apparatus for facilitating the sharing of computer graphics operations
US20020055832A1 (en) * 2000-06-23 2002-05-09 Donelan Anne T. Structured system for the planning, integration, analysis and management of new product development on a real-time, enterprise-wide basis
US20030097363A1 (en) * 2000-07-17 2003-05-22 Dorsey Paul R. Method and computer system for storage of data structure business rules using UML class diagrams
US6918106B1 (en) 2000-07-31 2005-07-12 Sun Microsystems, Inc. Method and apparatus for collocating dynamically loaded program files
US6775825B1 (en) * 2000-10-31 2004-08-10 Hewlett-Packard Development Company, L.P. Common software application definition for resource management
US20020165998A1 (en) * 2001-05-03 2002-11-07 Sun Microsystems, Inc., A Delaware Corporation Method and apparatus for meta object facility repository event notification
US7069540B1 (en) 2001-07-02 2006-06-27 Unisys Corporation COM persistence model
US20030149552A1 (en) * 2001-09-20 2003-08-07 International Business Machines Corporation Metamodel generation on the basis of examples of target models
US6988062B2 (en) * 2001-09-20 2006-01-17 International Business Machines Corporation Metamodel generation on the basis of examples of target models
US20030079107A1 (en) * 2001-10-19 2003-04-24 International Business Machines Corporation System and method for providing an interface for a repository
US20030131018A1 (en) * 2002-01-09 2003-07-10 International Business Machines Corporation Common business data management
US20050034107A1 (en) * 2002-02-12 2005-02-10 Kendall Elisa Finnie Method and apparatus for frame-based knowledge representation in the unified modeling language (uml)
US7424701B2 (en) 2002-02-12 2008-09-09 Sandpiper Software, Inc. Method and apparatus for frame-based knowledge representation in the unified modeling language (UML)
US6873991B2 (en) * 2002-10-02 2005-03-29 Matter Associates, L.P. System and method for organizing information
US20040068513A1 (en) * 2002-10-02 2004-04-08 Carroll David B. System and method for organizing information
WO2004032395A3 (en) * 2002-10-02 2004-10-28 Matter Associates L P System and method for organizing information
WO2004032395A2 (en) * 2002-10-02 2004-04-15 Matter Associates, L.P. System and method for organizing information
EP1416401A2 (en) * 2002-10-30 2004-05-06 Siemens Aktiengesellschaft Extension of datasets
WO2005015438A2 (en) * 2003-07-22 2005-02-17 Sap Aktiengesellschaft Meta model for an enterprise service architecture
US8630986B2 (en) * 2003-07-22 2014-01-14 Sap Ag Extending the functionality of enterprise services
US20050022163A1 (en) * 2003-07-22 2005-01-27 Rainer Brendle Service management of a service oriented business framework
US7860902B2 (en) 2003-07-22 2010-12-28 Sap Ag Side-effect modeling
US20050021536A1 (en) * 2003-07-22 2005-01-27 Thomas Fiedler Extending service-oriented business frameworks
US7685568B2 (en) 2003-07-22 2010-03-23 Sap Ag Service management of a service oriented business framework
US7565684B2 (en) 2003-07-22 2009-07-21 Sap Ag Declarative configuration of enterprises services
US7533103B2 (en) 2003-07-22 2009-05-12 Sap Ag Self-describing business objects
US20050021998A1 (en) * 2003-07-22 2005-01-27 Thomas Fiedler Declarative configuration of enterprises services
US20050021355A1 (en) * 2003-07-22 2005-01-27 Rainer Brendle Side-effect modeling of a service-oriented business framework
WO2005015438A3 (en) * 2003-07-22 2005-05-12 Sap Ag Meta model for an enterprise service architecture
US20070038586A1 (en) * 2003-09-12 2007-02-15 Kankoon Data processing method based on simple element dynamic structures
US20050108684A1 (en) * 2003-11-14 2005-05-19 Sohn Matthias E. Method and system for generating an application object repository from application framework metadata
US20060020588A1 (en) * 2004-07-22 2006-01-26 International Business Machines Corporation Constructing and maintaining a personalized category tree, displaying documents by category and personalized categorization system
US7865530B2 (en) * 2004-07-22 2011-01-04 International Business Machines Corporation Constructing and maintaining a personalized category tree, displaying documents by category and personalized categorization system
US20080114812A1 (en) * 2004-11-19 2008-05-15 Bea Systems, Inc. Data object identification, tracking, filtering and monitoring using data object fingerprints in a repository
US20060111895A1 (en) * 2004-11-24 2006-05-25 Blaedow Karen R Method and apparatus for determining the meaning of natural language
US7702500B2 (en) * 2004-11-24 2010-04-20 Blaedow Karen R Method and apparatus for determining the meaning of natural language
US20100318500A1 (en) * 2009-06-16 2010-12-16 Microsoft Corporation Backup and archival of selected items as a composite object
US9594759B2 (en) * 2009-06-16 2017-03-14 Microsoft Technology Licensing, Llc Backup and archival of selected items as a composite object

Similar Documents

Publication Publication Date Title
US5644764A (en) Method for supporting object modeling in a repository
US5557793A (en) In an object oriented repository, a method for treating a group of objects as a single object during execution of an operation
US5701472A (en) Method for locating a versioned object within a version tree depicting a history of system data and processes for an enterprise
US5581755A (en) Method for maintaining a history of system data and processes for an enterprise
US5721925A (en) Method for generically invoking operation in an object oriented repository
US5671398A (en) Method for collapsing a version tree which depicts a history of system data and processes for an enterprise
US5758348A (en) Method for generically manipulating properties of objects in an object oriented repository
Zdonik et al. Readings in object-oriented database systems
US6308224B1 (en) Method of generating an implementation of a workflow process model in an object environment
US6016495A (en) Object-oriented framework mechanism for providing persistent storage
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
US6026408A (en) Method for synchronizing the schema of a database with its representation in an object-oriented repository
US6920456B2 (en) Method, system, and program for maintaining information in database tables and performing operations on data in the database tables
US7730446B2 (en) Software business process model
Nürnberg et al. Hypermedia operating systems: A new paradigm for computing
US6073111A (en) Container materialization/dematerialization for reduced dataload and improved data-coherency in workflow-management systems
Bernstein Repositories and object oriented databases
US7370335B1 (en) System and method for providing a public application program interface
US20100005074A1 (en) System and method for accessing data
US20030097345A1 (en) System and method for invoking business functionality for a workflow
AU1207100A (en) Apparatus and method for building modeling tools
Froese Integrated computer-aided project management through standard object-oriented models
US6266708B1 (en) Object oriented application program development framework mechanism
WO2003034182A2 (en) System and method for invoking business functionality for a workflow
US20070156653A1 (en) Automated knowledge management system

Legal Events

Date Code Title Description
AS Assignment

Owner name: UNISYS CORPORATION, PENNSYLVANIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:JOHNSON, P.;IYENGAR, S.;REEL/FRAME:007337/0738

Effective date: 19950131

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
LAPS Lapse for failure to pay maintenance fees

Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20090701