throbber
United States Patent [19J
`Chang et al.
`
`[54] SYSTEM AND METHOD FOR PROVIDING A
`HIGH LEVEL LANGUAGE FOR MAPPING
`AND ACCESSING OBJECTS IN DATA
`STORES
`
`[75]
`
`Inventors: Daniel T. Chang, San Jose, Calif.;
`Christina Lau, Don Mills, Canada;
`Taejae Lee, Cupertino, Calif.
`
`[73] Assignee: International Business Machines
`Corporation, Armonk, N.Y.
`
`[ *] Notice:
`
`This patent issued on a continued pros(cid:173)
`ecution application filed under 37 CFR
`1.53( d), and is subject to the twenty year
`patent term provisions of 35 U.S.C.
`154(a)(2).
`
`[21] Appl. No.: 08/866,374
`
`[22] Filed:
`
`May 30, 1997
`
`Related U.S. Application Data
`
`[63] Continuation of application No. 08/276,747, Jul. 18, 1994,
`abandoned.
`Int. Cl? ........................................................ G06F 9/44
`[51]
`[52] U.S. Cl. .......................... 395/702; 395/701; 707/100;
`707/103
`[58] Field of Search ..................................... 395!702, 600,
`395/701; 707/100, 103
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,315,709
`5,426,780
`5,448,727
`5,627,979
`
`5/1994 Alston, Jr. et a!. ... ... .... ... ... ... ... ... 707/6
`6/1995 Gerull et a!. ................................ 707/3
`9/1995 Annevelink ............................. 395/600
`5/1997 Chang et a!.
`.. ... ... ... ... .... ... ... ... 395/335
`
`01HER PUBLICATIONS
`
`The Common Object Requester Broker Architecture and
`Specification, OMG TC Document 91.12.1, 1991.
`IBM/Joss Object Services Persistence Service Specification,
`OMG TC Document 93.11.3 (OMG TC Document 93.5.7),
`Nov. 15, 1993.
`
`111111
`
`1111111111111111111111111111111111111111111111111111111111111
`US006061515A
`[11] Patent Number:
`[45] Date of Patent:
`
`6,061,515
`*May 9, 2000
`
`SOM Toolkit Users Guide, Version 2.0, Jun. 1993. (SOMob(cid:173)
`jects Developer Toolkit Users Guide, Version 2.0, Jun. 1993.
`ODMG-93, Standard R.G.G. Cattell (Ed), The Object Data(cid:173)
`base Standard: A ODMG-93, Morgan Kaufmann Publish(cid:173)
`ers, San Mateo, CA 1994.
`IBM SQL Reference Version 1, First Edition, Aug. 1993.
`Rumbaugh et al., "Object-Oriented Modeling and Design"
`pp. 1-3, 375-386, 1991.
`Aho et al. "Compilers Principles Techniques and Tools", p.
`56, 1988.
`Su-Yin et al., "Capturing the Object-Oriented Database
`model in Relational Form", 1993.
`
`(List continued on next page.)
`
`Primary Examiner-Tariq R. Hafiz
`Assistant Examiner-Todd Ingberg
`Attorney, Agent, or Firm-Prentiss W. Johnson
`
`[57]
`
`ABSTRACT
`
`A user may define a mapping between object schema and
`data store schema by use of a high level language, Schema
`Mapping Definition Language (SMDL), which is data store
`independent, object oriented language independent, and
`extensible. The user may either write SMDL directly or
`generate SMDL through the use of a graphical user interface
`Smart Schema whose graphical semantics support the
`SMDL semantics. A Schema Mapping Internal Representa(cid:173)
`tion (SMIR) containing representations of the object
`schema, the data store schema, and the mapping of the object
`schema and the data store schema is generated by an SMDL
`Parser from the SMDL. The SMIR is represented such that
`it may be accessible by both development interfaces and
`run-time environments. It supports the accessing of the
`mapping information given either the object schema or data
`store schema such that the data store schema may be
`accessed from the object schema, and the object schema may
`be accessed from the data store schema. An SMDL Genera(cid:173)
`tor may be used to generate the SMDL from the SMIR. The
`SMIR, SMDL Generator, SMDL Parser, and SMDL may be
`registered in a Data Store Manager (DSM) having a single,
`uniform, object oriented application programming interface
`for accessing one or more data stores, regardless of the type
`of data store.
`
`15 Claims, 17 Drawing Sheets
`
`0
`
`Smar\Schema
`
`0
`
`Relational
`
`Ob jec\
`
`Mapper
`
`700
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 1
`
`

`
`6,061,515
`Page 2
`
`01HER PUBLICATIONS
`
`Ying Ying et al, "Translating Relational Schema with Con(cid:173)
`straints in OODB Schema", 1993.
`Yan et al, "Translating Relation! Schema With Constraints
`Into OODB Schema", IFIP Transactions A: Computer Sci(cid:173)
`ence and Technology, pp. 69-85, Nov. 1992.
`Hsieh et al, "Capturing the Object-Oriented Database
`Model in Relational Form", Proceedings-IEEE Computer
`Society's International Computer Sofware and Applications
`Conference, p. 202-208, Nov. 1993.
`Rafii, A et al, "Integration Strategies in Pegasus Object
`Oriented Multidatabase System", Proceedings of the Twen(cid:173)
`ty-Fifth Hawaii International Conference on System Sci(cid:173)
`ences, p. 323-34, Jan. 7, 1992.
`Bertino, E., "Integration of Heterogeneous Data Reposito(cid:173)
`ries by Using Object-Oriented Views", IMS '91 Proceed(cid:173)
`ings. First International Workshop on Interoperability m
`Multidatabase Systems, p. 22-9, Apr. 7, 1991.
`
`Markowitz, V. et al, "Object Queries Over Relational Data(cid:173)
`bases: Language, Implementation, and Applications", Pro(cid:173)
`ceedings. Ninth International Conference on Data Engineer(cid:173)
`ing, p. 71-80, Apr. 19, 1993.
`Soutou, C., "Towards a Methodology for Developing a
`Federated Database System", Proceedings ICC '93. Fifth
`International Conference on Computing and Information, p.
`560-4, May 27, 1993.
`Sull, W. et al, "A Self-Organizing Knowledge Representa(cid:173)
`tion Scheme for Extensible Heterogeneous Information
`Environment", IEEE Transactions on Knowledge and Data
`Engineering, p. 185-91, Apr. 1992.
`Urban, S., "A Semantic Framework for Heterogeneous
`Database Environments", IMS '91 Proceedings. First Inter(cid:173)
`national Workshop on Interoperability in Multidatabase Sys(cid:173)
`tems, p. 156-63, Apr. 7, 1991.
`Rafii, A. et al, "Multidatabase Management in Pegasus",
`IMS '91 Proceedings. First International Workshop on
`Interoperability in Multidatabase Systems, p. 166-73, Apr.
`7, 1991.
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 2
`
`

`
`OBJECT
`SCHEMA ACCESS
`
`DATASTORE
`SCHEMA ACCESS
`
`120
`
`140
`
`SMDL PARSER
`
`230
`
`240
`
`220
`
`210
`
`,------
`
`1
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`150
`
`r - - - - - - - - - - -
`1 I ~-------
`1 I
`I I
`I I
`I I
`I I
`I I
`I I
`I I
`I I
`/ /(
`I I
`I I
`I I I
`I
`I I
`I
`I I
`I
`I I
`I
`I I
`I
`I I
`I
`I I
`I I I
`I
`I
`I L_
`L
`
`SMDL
`
`-, ,------
`
`110
`
`1 I
`I I
`I I
`: :
`I
`I
`I
`I
`
`310
`
`330
`
`320
`(
`- -L - - - - , OCLI
`
`------,
`I
`-...
`',
`)
`' , I
`'!,
`I
`'
`
`I
`
`'..._
`
`I
`
`I
`
`I
`
`Server DSM
`' ' ' ' ---~,---
`' ' ' '
`
`' ' ' ' ...,
`410 /
`I
`I
`
`-,
`
`I
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~
`~
`'-<
`~~
`N c
`8
`
`'JJ. =(cid:173)~
`~ .....
`'"""' 0 ......,
`'"""'
`-..J
`
`Client
`................
`Server
`320
`I
`OCLI
`
`340
`
`I
`
`C++ & SQL
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`I
`
`420
`
`I
`
`I
`- - - '
`
`~100
`FIG. 1
`
`0\
`
`.... = 0\
`
`~ ....
`Ul
`~
`Ul
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 3
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 2 of 17
`
`6,061,515
`
`110
`
`SMART SCHEMA
`
`~200
`
`130
`
`150
`
`OBJ
`SCHE
`REPO
`
`OS
`SCHE
`REPO
`
`230
`
`OBJECT
`SCHEMA ACCESS
`
`DATASTORE
`SCHEMA ACCESS
`
`120
`
`140
`
`240
`
`SMDL PARSER
`
`210
`
`SMDL GENERATOR
`
`220
`
`FIG. 2
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 4
`
`

`
`Smart Access
`
`310
`
`.----____L_------, OCLI
`Client DSM
`
`330
`
`Client
`................. 'I' .................... .
`Server
`
`340
`r - ' - - - - - - ' - - - - . OCLI
`Server DSM
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~
`~
`'-<
`~~
`N c
`8
`
`'JJ. =(cid:173)~
`~ ......
`~
`0 ......,
`'"""'
`-..J
`
`,300
`
`FIG. 3
`
`0\
`
`.... = 0\
`
`~ ....
`Ul
`~
`Ul
`
`230
`
`240
`
`SMDL PARSER
`
`220
`
`SMDL GENERATOR
`
`210
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 5
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 4 of 17
`
`6,061,515
`
`500
`
`I
`
`Client DSM
`
`330
`
`Client
`Server
`
`550
`
`\
`
`Staging
`
`350
`
`360
`
`370
`
`380
`(
`
`DSM_CSDM
`
`DSM_SQL
`
`DSM_CLI
`
`DSM_IMS
`
`DB2
`
`IMS/DB
`
`450
`
`460
`
`IMS/DB
`
`490
`
`Middlewore
`
`RDB
`
`4so
`
`FIG. 4
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 6
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 5 of 17
`
`6,061,515
`
`0
`-.;::1-
`C'.J
`
`0:::::
`LLJ
`(f)
`0:::::
`<(
`D....
`
`___J
`0
`::::::!:
`(f)
`
`0:::::
`0
`1--
`<(
`0:::::
`LLJ
`:z:
`LLJ
`C)
`
`_.J
`0
`:::2:
`(f)
`
`0
`N
`N
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 7
`
`

`
`l-------1
`
`OBJ
`SCHE
`130 ---i REPO
`-----'
`
`150-----1
`
`120
`
`OBJECT r) SMART SCHEMA
`
`~
`
`SCHEMA ACCESS
`
`~110
`
`DATASTORE
`SCHEMA ACCESS
`
`140
`
`240
`
`SMDL PARSER~
`
`I
`I
`
`230---{
`
`~MUL
`
`)
`
`SMIR
`
`220
`
`SMDL GENERA TOR
`
`FIG. 6
`
`IDL
`Ctt & SOL
`
`"'
`
`410
`
`l
`
`420
`
`C++ & SOL
`
`---
`
`d •
`\Jl
`•
`~
`~ ......
`~ = ......
`
`~
`~
`'-<
`~~
`
`N c c c
`
`'JJ. =-~
`~ .....
`0'1
`0 ......,
`'"""'
`-..J
`
`0\
`
`.... = 0\
`
`~ ....
`Ul
`~
`Ul
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 8
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 7 of 17
`
`6,061,515
`
`0
`
`SmartSchema
`
`0
`
`r-710
`
`Relational
`
`Object
`
`f-. 720 ~ c--]30
`
`Mapper
`
`FIG. 7
`
`700
`
`0
`
`Object Schema
`
`0
`
`820
`
`830
`
`840
`
`850
`
`810
`
`860
`
`870
`
`880
`
`FIG. 8
`
`800
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 9
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 8 of 17
`
`6,061,515
`
`Relational Schema
`
`I
`
`Config
`
`I
`
`I Help
`(
`950
`
`(
`940
`
`D
`
`l
`910
`
`D
`
`File
`l
`920
`
`I
`
`Schema
`
`l
`930
`
`m960
`
`Employee
`
`[f+J
`
`Person
`
`FIG. 9
`
`D
`
`I
`
`File
`l
`1020
`
`Schema I
`l
`1030
`
`Map
`
`Schema Mapper
`I
`
`I Help
`I
`1050
`
`I
`1040
`
`900
`
`D
`
`(
`1010
`
`FIG. 10
`
`1000
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 10
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 9 of 17
`
`6,061,515
`
`1020 -~--
`
`D
`
`1030~
`
`File
`
`Schema
`
`I
`Select classes
`1120- 1-- Select tables
`
`(
`1110
`
`D
`
`File 1
`7
`1020
`
`I
`
`Schema
`
`I
`1030
`
`E[B-1060
`
`Employee
`
`Map
`
`Schema Mapper
`I
`
`I Help
`7
`1050
`
`Employee ------f-1140
`Address
`RegularEmp
`SalaryEmp
`
`r--1130
`
`FIG. 11
`
`Schema Mapper
`
`Map 1 Help I
`7
`(
`1040
`1050
`
`D
`
`I
`1010
`
`I
`1000
`
`D
`
`I
`1010
`
`FIG. 12
`
`1000
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 11
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 10 of 17
`
`6,061,515
`
`1020
`
`~ -
`
`D
`
`1030~
`
`File
`
`Schema
`
`I
`1310 ~ 1- Select classes
`Select tables
`
`I
`1110
`
`D
`
`Map
`
`Schema Mapper
`I Help
`I
`I
`1050
`
`Person ---f--1330
`Manager
`
`I
`1320
`
`FIG. 13
`
`Map
`
`Schema Mapper
`I Help
`I
`I
`1050
`
`I
`1040
`
`D
`
`I
`1010
`
`I
`1000
`
`D
`
`I
`1010
`
`Person
`
`~1070
`
`FIG. 14
`
`1000
`
`File
`I
`1020
`
`I Schema
`
`I
`I
`1030
`
`ml060
`
`Employee
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 12
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 11 of 17
`
`6,061,515
`
`1020 ~ -
`
`File
`
`D
`
`1030~
`
`Map
`[ Schema
`1520-..--Link
`Generate SMDL
`
`1040 ~ Schema Mapper
`[ Help I
`\..._ 1050
`r-1510
`
`E[±j-1060
`
`Employee
`
`Person
`
`I
`
`~1070
`
`D
`
`(
`1010
`
`I
`1000
`
`D
`
`(
`1010
`
`FIG. 15
`
`Map
`
`Schema Mapper
`I Help I
`I
`1050
`
`I
`1040
`
`D
`
`I Schema
`
`File
`l
`1020
`
`I
`
`l
`1030
`~1060
`
`I I I
`Employee
`
`(
`1080
`
`--I
`
`Person
`
`~1070
`
`FIG. 16
`
`1000
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 13
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 12 of 17
`
`6,061,515
`
`0
`
`Define Mapping Info
`
`0
`
`Table: Employee
`
`1705~ empNum (k)
`1710 ~ firstName
`1715 ~ lastName
`1720~ hireD ate
`
`1725
`
`1740
`
`I OK
`
`I
`
`I
`
`Cancel
`
`Class: Person
`
`serialNumber
`
`) 735 ~1730
`fJ ~
`
`serialNumber
`
`r-----1745
`
`name
`
`day
`
`month
`
`year
`
`t--1750
`
`r-----1755
`
`r-1760
`
`--1765
`
`FIG. 17
`
`0
`
`Define Mapping Info
`
`1700
`
`0
`
`Table: Employee
`
`Class: Person
`
`serialNumber
`
`\1 I
`
`serialNumber
`name
`
`name
`
`1--
`r-
`r-
`
`1805
`1810
`1815
`
`1705
`
`1710
`
`1715
`1720
`
`~
`
`empNum (k)
`
`~
`
`firstName
`
`~
`
`lastName
`
`~
`
`hireD ate
`
`OK
`
`j
`
`I Cancel
`
`day, month, year
`\
`1
`1830
`1820
`
`\
`
`~ l
`
`1875
`
`1825
`
`FIG. 18
`
`1800
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 14
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 13 of 17
`
`6,061,515
`
`Schema Mapper
`
`D
`
`D
`
`File
`
`1910
`
`Schema
`
`Map
`
`1940
`
`Sal ary[mp
`
`1920
`
`Employee
`
`RegularEmp
`
`1930
`
`D
`
`D
`
`File
`
`I Schema
`
`2010~
`
`Employee
`
`FIG. 19
`
`Schema Mapper
`I Help
`I
`
`Map
`
`2040
`l
`
`Address
`
`Person
`
`2030
`
`2050
`
`FIG. 20
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 15
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 14 of 17
`
`6,061,515
`
`0
`
`Schema Mapper
`
`0
`
`File
`
`I Schema
`
`I
`
`Map
`
`I Help
`
`I
`
`2110
`l
`I Person
`
`l
`I
`
`2130
`l
`
`(" 2120
`
`Employee
`
`FIG. 21
`
`0
`
`Define Mapping Info
`
`0
`
`Class: Person
`
`~
`
`seriaiNumber
`
`2205
`2210
`
`~
`
`name
`
`~
`
`day
`
`2215
`2220
`
`~
`
`month
`
`2225
`
`~
`
`year
`
`Table: Employee
`2230~ empNum (k)
`empNum (k)
`
`2235
`
`~
`il
`~
`2245
`
`1---
`
`2240
`
`first Name
`
`lastName
`
`hireDate
`
`1---
`
`2250
`
`1---
`
`2255
`
`I--
`
`2260
`
`OK
`
`Cancel
`
`FIG. 22
`
`2200
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 16
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 15 of 17
`
`6,061,515
`
`0
`
`Define Mapping Info
`
`0
`
`Class: Person
`
`~
`
`seriaiNumber
`
`2305
`2310
`2315
`
`~
`
`name
`
`~
`
`day
`
`~
`
`month
`
`~
`
`year
`
`2320
`2325
`
`Table: Employee ~
`I empNum (k)
`V ~
`2345
`r-
`2355
`empNum
`235
`0
`)
`\... r-- firstName, lastName
`hireDate
`
`I userFd1
`r- 2360
`
`l2375
`
`hireDate
`
`hireDate
`
`r- 2365
`
`r- 2370
`
`OK
`
`Cancel
`
`FIG. 23
`
`0
`
`Schema Mapper
`
`0
`
`File
`
`Schema
`
`Map
`
`2440
`
`2410
`
`2450
`
`2420
`
`RegularEmp
`
`2430
`
`SalaryEmp
`
`FIG. 24
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 17
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 16 of 17
`
`6,061,515
`
`D
`
`Schema Mapper
`
`D
`
`File
`
`Schema
`
`Map
`
`2520
`
`Employee
`
`2530
`
`FIG. 25
`
`Schema Mapper
`I Help
`I
`
`D
`
`·j I I l2640
`
`Employee
`
`D
`
`File
`
`I Schema
`
`I
`
`Map
`
`2610
`"-.
`Person
`
`I
`
`I
`
`2650
`I
`
`I
`2620~
`
`Add Class
`Add Table- r- 2630
`
`FIG. 26
`
`2600
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 18
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 17 of 17
`
`6,061,515
`
`D
`
`File
`
`I Schema 1 Map
`
`Schema Mapper
`I Help I
`
`D
`
`2720~ Add Class-~ 2730
`Add Table
`
`2710~ I I I
`
`Employee
`
`~I
`
`2750
`
`2740
`;
`
`Person
`
`FIG. 27
`
`2700
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 19
`
`

`
`6,061,515
`
`1
`SYSTEM AND METHOD FOR PROVIDING A
`HIGH LEVEL LANGUAGE FOR MAPPING
`AND ACCESSING OBJECTS IN DATA
`STORES
`
`This application is a continuation of application Ser. No.
`08/276,747 filed Jul. 18, 1994, now abandoned.
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`Application Ser. No. 08/276,382, filed concurrently here(cid:173)
`with on Jul. 18, 1994 for A SYSTEM AND METHOD FOR
`MAPPING AND ACCESSING OBJECTS IN DATA
`STORES (IBM Docket ST9-94-016), currently co-pending,
`and assigned to the same assignee as the present invention. 15
`Application Ser. No. 08/276,389, filed concurrently here(cid:173)
`with on Jul. 18, 1994 for A SYSTEM AND METHOD FOR
`PROVIDING A GRAPHICAL USER INTERFACE FOR
`MAPPING AND ACCESSING OBJECTS IN DATA
`STORES (IBM Docket ST9-94-017), currently co-pending,
`and assigned to the same assignee as the present invention.
`The foregoing copending applications are incorporated
`herein by reference.
`A portion of the Disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure, as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright 30
`rights whatsoever.
`1. Field the Invention
`This invention relates to object oriented systems and data
`store systems, and more particularly to mapping between
`object schema and data store schema.
`2. Description of the Related Art
`The data processing industry and its customers have made
`considerable investments in conventional data store
`technology, including relational databases, hierarchial
`databases, fiat file databases, and network databases.
`Presently, the relational or entity-relationship model under(cid:173)
`lying relational databases is the predominant conventional
`method of storing data in databases.
`Object oriented technology has also gained wide accep(cid:173)
`tance due to its strengths in real world modeling, modularity,
`reuse, distributed computing, client/server computing, and
`graphical user interfaces.
`However, the object model underlying object oriented
`technology and the data model underlying conventional data
`stores are different, and a way is needed to provide the
`advantages of object oriented technology while preserving
`the substantial investment in conventional data store tech(cid:173)
`nology.
`An object model captures the structure of a system by
`representing the objects in the system, the relationships
`between those objects, and the attributes and operations that
`characterize each class of objects. The purpose of object
`modeling is to describe objects, and an object is simply
`something that has a meaningful behavior in an application
`context. An object has data, the value of which represent the
`object's state. The behavior that an object exhibits is pro(cid:173)
`vided by operations on that data, and this behavior may be
`invoked by other objects sending messages. These opera(cid:173)
`tions are implemented as procedures called methods. All 65
`objects have identity and are distinguishable. The term
`identity means that an object is distinguishable by its inher-
`
`20
`
`2
`ent existence and not by descriptive properties that it may
`have. A unique object may be referred to as an object
`instance or an instance.
`An object class describes a group of objects with similar
`5 properties (attributes), common behavior (operations), com(cid:173)
`mon relationships to other objects, and common semantics.
`Objects in a class have the same attributes and behavior
`patterns. The objects derive their individuality from differ(cid:173)
`ences in the attribute values and relationship to other objects.
`10 The class defines the object's data structure and methods to
`access that data structure. Methods and data structure are
`shared among objects of the same class. An object knows its
`class and the methods it possesses as a member of the class.
`Common definitions such as class name and attribute names
`are stored once per class, rather than once per object
`instance. Operations may be written once for a class so that
`all objects in the class benefit from code reuse.
`An attribute is a data value, not an object, held by the
`objects in a class. Each attribute has a value for each object
`instance. Different object instances may have the same or
`different values for a given attribute. Each attribute name is
`unique within a class, as opposed to being unique across all
`classes.
`A link is a relationship between object instances, a tuple
`25 or ordered list of object instances. A link is also an instance
`of an association. An association is a group of links with
`common structure and common semantics. All the links in
`an association connect objects from the same classes. An
`association describes a set of potential links in the sane way
`that a class describes a set of potential objects. Associations
`are inherently bidirectional and can be traversed in either
`direction. Associations are often implemented in various
`object oriented programming languages as pointers from one
`object to another. A pointer is an attribute in one object that
`35 contains an explicit reference to another object.
`As an attribute is a property of objects in a class, a link
`attribute is a property of the links in an association. Each link
`attribute has a value for each link. Many-to-many associa(cid:173)
`tions are the rationale for link attributes.
`Generalization and inheritance are powerful abstractions
`for sharing similarities among classes while preserving their
`differences. Generalization is the relationship between a
`class and one or more refined versions of it. The class being
`refined is called the superclass, and each refined version is
`45 called a subclass. Attributes and operations common to a
`group of subclasses are attached to the superclass and shared
`by each subclass. Each subclass is said to inherit the features
`of its superclass. Generalization and inheritance are transi(cid:173)
`tive across an arbitrary number of levels. The terms ancestor
`50 and descendent refer to generalization of classes across
`multiple levels. An instance of a subclass is simultaneously
`an instance of all of its ancestor classes. The state of an
`instance includes a value for every attribute of every ances(cid:173)
`tor class. Any operation on any ancestor class can be applied
`55 to an instance.
`Generalization and inheritance are fundamental concepts
`in object-oriented languages, and these concepts do not exist
`in conventional languages and databases. During conceptual
`modeling, generalization enables a developer to organize
`60 classes into a hierarchial structure based on their similarities
`and differences. During implementation, inheritance facili(cid:173)
`tates code reuse. Generalization refers to the relationship
`among classes; inheritance refers to the mechanism of
`obtaining attributes and operations using the generalization
`structure.
`The object schema may be viewed as consisting of a set
`of object classes, wherein each object class consists of a set
`
`40
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 20
`
`

`
`6,061,515
`
`5
`
`3
`of object instances, wherein each object instance contains a
`set of attributes, and wherein object classes and object
`instances may be linked in relationships.
`Instead of the above object model, conventional data store
`technology uses a data model in which a data model (also
`known as an information model or conceptual model) is
`designed by modeling the world that the application is to
`support. Then the data model is transformed into a particular
`database design by applying one or more standard
`transforms, for example, normalization which requires that 10
`data of an entity belong to that entity only.
`The data models offered by conventional database tech(cid:173)
`nology include fiat files, indexed file systems, network data
`model, hierarchial data model, and the relational model.
`The fiat file model provides a simple means of storing data 15
`in records which may be accessed according to the data
`therein; however, it provides no independence between the
`data and applications thus requiring the applications to be
`modified if the fiat file design is changed. A fiat file data store
`schema consists of records composed of fields.
`Indexed file systems provide fixed-length records com(cid:173)
`posed of data fields of various types, and indexes to more
`quickly locate records satisfying constraints on field values.
`An indexed file system data store schema consists of records
`composed of fields wherein certain fields may be keys
`(indexes).
`A network data model provides fixed-length records com(cid:173)
`posed of data fields of various types and indexes similar to
`the indexed file systems. In addition, the network data model 30
`provides record identifiers and link fields which may be used
`to connect records together for fast direct access. The
`network data model also uses pointer structures to encode a
`network structure or relationship of records. A network data
`store schema consists a set of network structures of records, 35
`wherein each record is composed of fields, wherein certain
`fields may be keys (indexes) and certain fields may be links
`to other records (link fields).
`The hierarchial data model, similar to the network data
`model, provides fixed-length records composed of data 40
`fields of various types, indexes, record identifiers and link
`fields, and pointer structures. However, the hierarchial data
`model limits the structure used to represent the relationship
`of records to tree structures. A hierarchial data store schema
`consists of a set of tree structures of segments (each tree 45
`structure defined by a pointer structure known as a Program
`Communication Block or PCB), wherein each segment
`consists of fields, and wherein certain fields may be keys
`(indexes), and wherein certain segments may be links or
`pointers to other segments (pointer segment).
`In the relational data model, the fundamental structure is
`the relation, which is a two-dimensional matrix consisting of
`columns and rows of data elements. A table is an instance of
`a relation in the relational data base. Each table has a name.
`A table must consist only of atomic fields of data, i.e., each
`field is a simple, indivisible type of data. A field is the basic
`unit of data representing one data fact.
`Each column has a label and contains atomic values of the
`same data type, wherein each atomic value is an attribute
`drawn from a set of possible values that is that column's
`domain. The order of columns is not significant and may be
`changed without changing the meaning of a tuple. Each
`column may be referred to by a unique pairing of the table
`name with the column label.
`Each table consists of zero or more tuples, which are rows 65
`of attribute values. Each row represents one relationship,
`and a row's identity is determined by its unique content, not
`
`4
`by its location. The order of rows is not significant. There are
`no duplicate rows. The domain for every attribute must
`consist of atomic value; there are no repeating groups. If the
`value for a particular field is unknown or does not apply,
`then the relational model assigns a null value.
`Tables contain information about entities or the relation(cid:173)
`ship between entities. Each tuple refers to a different entity,
`and each attribute value in the tuple supplies information
`about one characteristic of that entity. Each table must have
`a column or group of columns that serve to uniquely identify
`the tuple.
`Each set of attributes that uniquely identifies each tuple is
`referred to as a candidate key. There may be multiple
`candidate keys in a relation, but one must be designated as
`the primary key. Foreign keys are used to define a link to
`another table. A foreign key is a key taken from another table
`to create a linking value to serve as a means of navigation
`from one table to the other table. A table may contain as
`many foreign keys as links it requires to relate it to other
`tables with which it has relationships.
`The process of determining the correct location and
`function for each attribute to correctly formulate the rela(cid:173)
`tional schema is called normalization. Normalization
`decomposes incorrectly constructed relations into multiple
`correctly normalized relations.
`The relational model requires that all tables must be in at
`least first normal form. To be in first normal form, a relation
`must have domains consisting only of atomic values for each
`attribute. Repeating sets of attributes and multi-valued
`attributes are not allowed. Optionally, the relational model
`may be subject to additional higher forms of normalization
`based on functional dependency, i.e., the reliance of an
`attribute or group of attributes on another attribute or group
`of attributes for its value.
`The relational schema may be viewed as consisting of a
`set of tables, wherein each table consists of columns and
`rows, and wherein relations between table are specified by
`primary keys and foreign keys.
`In view of the above differences between object oriented
`technology and data store technology, there is a reed for a
`method of, and apparatus for, allowing a user to access a
`conventional data store from an object oriented application.
`In view of the above differences between object schema
`and data store schema, there is a need for a method of, and
`apparatus for, allowing a user to map between conventional
`data store schema and object schema.
`In view of the above, there is a need for a method of, and
`apparatus for, allowing a user to define a mapping between
`50 conventional data store schema and object schema.
`In view of the above, there is a need for a method of, and
`apparatus for, allowing a user to represent such a definition
`of a mapping between conventional data store schema and
`object schema.
`In view of the above differences between conventional
`data store schema, there is a need for a data store indepen(cid:173)
`dent method of, and apparatus for, meeting the above needs.
`In view of the above, there is a need for an object oriented
`60 language independent method of, and apparatus for, meeting
`the above needs.
`In view of the above, there is a need for a distributed
`client/server method of, and apparatus for, meeting the
`above needs.
`In view of the above, there is a need for a method of, and
`apparatus for, providing a user an improved user interface to
`meet the above needs.
`
`20
`
`25
`
`55
`
`BLUE COAT SYSTEMS - Exhibit 1086 Page 21
`
`

`
`5
`SUMMARY OF THE INVENTION
`
`6,061,515
`
`6
`Language, the data store independent Schema Mapping
`Internal Representation, and the single, uniform, data store
`independent interface to a Data Store Manager.
`In accordance with another aspect of the present
`invention, object oriented language independence is pro(cid:173)
`vided by the use of the object oriented language independent
`Schema Mapping Definition Language, the object oriented
`language independent Schema Mapping Internal
`Representation, and Code Generators which generate code
`10 in various object oriented languages from the Schema Map(cid:173)
`ping Internal Representation for accessing objects from data
`stores. These Code Generators may be used to generate
`access methods based on the Schema Mapping Internal
`Representation for accessing objects from a data store. To
`15 provide such access to a data store, a Code Generator may
`generate a combination of object oriented programming
`language and data store access language. The system then
`generates a make file describing the dependency of files,
`invokes the proper compilers, links the appropriate run-time
`20 libraries, and creates executable code for accessing a data
`store.
`In accordance with another aspect of the present
`invention, distributed client/server access of objects from
`conventional data stores is provided by use of one or more
`25 Client Data Store Managers and one or more Server Data
`Store Managers.
`In accordance with another aspect of the present
`invention, a graphical user interface, Smart Schema, is
`30 provided for mapping object schema to data store schema
`wherein the graphical semantics support the Schema Map(cid:173)
`ping Definition Language semantics. Another graphical user
`interface, Smart Access, allows an end user to access objects
`in a data store without the end user having to do any write
`35 application programming. The Smart Access user interface
`allows the user to test mapping and access methods regis(cid:173)
`tered with the Data Store Manager without having to write
`an application to access the objects from the data store in a
`run-time environment.
`
`5
`
`The invention disclosed herein comprises a method of,
`and system for, mapping and accessing objects from a
`conventional data store. The invention disclosed herein also
`comprises a method of, and system for, providing a high
`level language for mapping and accessing objects from a
`conventional data store. The invention disclosed herein also
`comprises a method of, and system for, providing a user
`interface for mapping and accessing objects from a conven(cid:173)
`tional data store. In accordance with one aspect of this
`invention, an object oriented application programming inter(cid:173)
`face to a data store manager provides a uniform and single
`interface for accessing one or more conventional data stores,
`regardless of the type of conventional data store.
`In accordance with another aspect of the present
`invention, a Smart Schema allows a user to map between
`object schema and conventional data store schema, regard(cid:173)
`less of the type of conventional data store.
`In accordance with another aspect of the present
`invention, a user may define a mapping between object
`schema and data store schema by use of a high level
`language, Schema Mapping Definition Language. The user
`may either write SMDL directly or generate SMDL through
`the use of the Smart Schema. The Schema Mapping Defi(cid:173)
`nition Language is data store independent, object oriented
`language independent, and extensible.
`In accordance with another aspect of the present
`invention, a definition of a mapping between object schema
`and conventional data store schema is represented by a
`Schema Mapping Internal Representation. The Schema
`Mapping Internal Representation contains representations of
`the object schema, the data store schema, and the mapping
`of the object schema and the data store schema. These
`representations are such that the Schema Mapping Internal
`Representation may be accessible by both development
`interfaces (Smart Schema and Smart Access) and run-time
`environments, or it may by used to generate an object
`oriented programming language for providing dire

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


Or .

Accessing this document will incur an additional charge of $.

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

Accept $ Charge
throbber

Still Working On It

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

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

throbber

A few More Minutes ... Still Working

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

Thank you for your continued patience.

This document could not be displayed.

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

Your account does not support viewing this document.

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

Your account does not support viewing this document.

Set your membership status to view this document.

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

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

Become a Member

One Moment Please

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

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

Your document is on its way!

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

Sealed Document

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

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


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket