throbber
(12) United States Patent
`Byrne et al.
`
`111111111111111111111111111111111111111111111111111111111111111111111111111
`US006490619Bl
`US 6,490,619 Bl
`Dec. 3, 2002
`
`(10) Patent No.:
`(45) Date of Patent:
`
`(54) METHOD AND SYSTEM FOR MANAGING
`MULTIPLE LIGHTWEIGHT DIRECTORY
`ACCESS PROTOCOL DIRECTORY SERVERS
`
`(75)
`
`Inventors: Debora Jean Byrne, Austin, TX (US);
`Mickella Ann Rosiles, Austin, TX
`(US); Shaw-Ben Shepherd Shi, Austin,
`TX (US)
`
`(73) Assignee: International Business Machines
`Corporation, Armonk, NY (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`(21) Appl. No.: 09/455,702
`
`(22) Filed:
`
`Dec. 7, 1999
`
`Int. Cl? .............................................. G06F 15/173
`(51)
`(52) U.S. Cl. ............................ 709/223; 707/3; 345/737
`(58) Field of Search ................................. 709/223, 203,
`709/230, 217, 219, 225; 345/737, 738,
`763, 781, 853; 707/3, 100, 513, 514, 520
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`6,014,666 A * 1!2000 Helland eta!. ............... 707/10
`
`6,101,539 A * 8/2000 Kennelly et a!.
`........... 709/223
`6,157,953 A * 12/2000 Chang et a!.
`............... 709/225
`6,208,986 B1 * 3/2001 Schneck et a!.
`. ... ... .. ... ... 707/1
`6,339,827 B1 * 1!2002 Stokes et a!. ............... 713/176
`6,366,913 B1 * 4/2002 Fitler et a!. ................... 707/10
`6,366,954 B1 * 4/2002 Traversat eta!. ........ 707/104.1
`* cited by examiner
`
`Primary Examiner---Mehmet B. Geckil
`(74) Attorney, Agent, or Firm-Duke W. Yee; Leslie Van
`Leeuwen
`
`(57)
`
`ABSTRACT
`
`An improved method, apparatus, and instructions for locat(cid:173)
`ing a server in a distributed network using the Lightweight
`Directory Access Protocol (LDAP), maintaining informa(cid:173)
`tion for the server, displaying a tree of servers, browsing the
`tree of servers, and searching the tree of servers for an entry
`with specific attributes is provided. The information main(cid:173)
`tained about the server includes its location, lists of
`attributes, and access control. The tree displayed can be for
`all servers combined or for an individual server. The search
`can be across the entire server or customized to a subset of
`servers. The search can be based on one of the following
`attributes: user, country, group, locality, access group, access
`role, organization, organization unit, domain, or can be
`based on user defined attributes.
`
`34 Claims, 11 Drawing Sheets
`
`STATUS AREA 402
`
`I I
`
`I I
`ldap:/ /local host )ldap:/ /djb:389
`\._ .!"
`~Introduction
`SERVER
`1;J ··1;1 server
`!···~Properties TABS
`!
`! '· ~Rebind 406
`EI····I:;J Schema
`! .... ~View Schema
`! ciJ ... ~ Objectclasses
`! m·~Attributes
`ffi ... ~Tree
`; .... ~Browse Tree
`
`, r: ~ ~:~r~shh T~~:e
`
`EJ· .. ~Objects
`i ... ~Add Object
`; ·-D Delete Object
`: ··[l Edit Object
`' .... ~List Objects
`; · ~ Edit Object RDN
`' .. ~Acls
`
`NAVIGATION
`PANEL
`400
`
`View Server Schema
`
`cn=schema
`! .... abjectclass:subschema
`; .. cn:schema
`! ... ·objectclass:IBMsubschema
`! .. ·Objectclass:top
`ciJ ... attributetypes
`ciJ .. ·objectclasses
`clJ .. syntaxes
`dJ ... matchingRules
`
`OPTIONS
`408
`
`I! Add Server Ill Delete Server !ICE[]
`
`CONTROL BUTIONS
`410
`
`WORK AREA
`404
`
`RingCentral Ex-1004, p. 1
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`U.S. Patent
`
`Dec. 3, 2002
`
`Sheet 1 of 11
`
`US 6,490,619 Bl
`
`RingCentral Ex-1004, p. 2
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`U.S. Patent
`
`Dec. 3, 2002
`
`Sheet 2 of 11
`
`US 6,490,619 Bl
`
`PROCESSOR I
`I PROCESSOR
`!
`! SYSTEM BUS
`I
`MEMORY
`CONTROLLER/
`CACHE
`f
`LOCAL
`MEMORY
`
`2 02
`
`....
`...
`<
`
`208-.,__
`
`209-.,__
`
`GRAPHICS
`230../ ADAPTER
`
`232../
`
`HARD
`DISK
`
`204
`
`...
`>
`266 ..
`
`1/0
`BRIDGE
`
`--210
`
`....
`...
`212../ ""'-- 1/0
`BUS
`
`...
`
`2)4
`
`PCI BUS
`BRIDGE
`
`218'-.
`222
`I
`PCI BUS
`BRIDGE
`
`~
`\J
`
`....
`...
`
`PCI BUS
`BRIDGE
`\
`224
`FIG. 2
`
`SERVER
`200
`~
`
`PCI BUS
`
`t
`
`MODEM
`
`2)6 ..
`..
`t
`NETWORK v-:
`220
`ADAPTER
`
`.>
`
`PCI BUS
`
`PCI BUS
`
`..
`
`.>
`
`...
`..
`.>
`
`2)6
`
`2)8
`
`RingCentral Ex-1004, p. 3
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`rJ'l
`
`e
`
`'"""'
`'"""'
`0 ......,
`~
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`...
`>
`..
`3i9
`
`{
`3)8
`
`AUDIO/VIDEO
`
`ADAPTER
`
`ADAPTER
`GRAPHICS
`
`...
`.. >
`
`JJ
`
`}
`
`~ ~
`
`MEMORY
`
`MODEM
`
`MOUSE ADAPTER
`KEYBOARD AND
`
`~ ~ 3)4
`INTERFACE
`
`EXPANSION
`
`BUS
`
`BUS
`
`~ ~
`
`......
`<
`...
`
`<::::::=~
`
`DVD
`
`...
`...
`
`... CD-ROM
`..
`...
`..
`
`TAPE
`
`DISK
`
`,....
`-"
`
`t~
`
`~
`
`RingCentral Ex-1004, p. 4
`RingCentral v. Estech
`IPR2021-00574
`
`I. ~
`
`3J6
`
`~ ~
`
`310_/ ADAPTER
`
`LAN
`
`--312
`
`BUS ADAPTER
`SCSI HOST
`
`~
`
`3~6
`
`--316
`
`ADAPTER
`AUDIO
`
`MEMORY
`
`MAIN
`
`-"
`
`...
`
`.....
`
`.A_
`
`CACHE BRIDGE
`
`HOSYsPCJ
`
`...
`-"
`
`.....
`
`.A_
`
`302---... PROCESSOR
`
`304
`
`308
`
`~
`
`300
`CLIENT
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`rJ'l
`
`e
`
`'"""'
`'"""'
`0 ......,
`~
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`WORK AREA
`
`404
`
`FIG. 4
`
`CONTROL BUTTONS
`
`410
`
`II Add Server Ill Delete Server III]![]
`
`OPTIONS
`
`408
`
`! .... Cl Acls
`!····Cl Edit Object RDN
`! ····Cl List Objects
`! ····Cl Edit Object
`! ····Cl Delete Object
`i····Cl Add Object
`
`I
`
`~1-lloii[RJ
`
`STATUS AREA 402
`
`m···matchingRules
`iil···syntaxes
`liJ···objectclasses
`$ ... attributetypes
`!····objectclass:top
`i .... objectclass:IBt.lsubschema
`! .... cn:schema
`!····Objectclass:subschema
`cn=schema
`
`I VIew Server Schema
`
`ldap:/ /localhost lldap:/ /djb:3B9l
`
`406
`! ····Cl Properties TABS
`SERVER
`,.
`
`B····Cl Objects
`i L.. ·Cl Search Tree
`l····Cl Refresh Tree
`l
`! i····Cl Browse Tree
`G····DTree
`! G···Cl Attributes
`! ciJ···Cl Objectclasses
`i····Cl View Schema
`!
`B····Cl Schema
`! L .. -ClRebind
`l
`a· .. ·D Server
`[)Introduction
`
`~~~ eNetwork Explorer
`
`RingCentral Ex-1004, p. 5
`RingCentral v. Estech
`IPR2021-00574
`
`NAVIGATION
`
`400
`PANEL
`
`

`

`U.S. Patent
`
`Dec. 3, 2002
`
`Sheet 5 of 11
`
`US 6,490,619 Bl
`
`500
`~
`LDAPServer
`HASH TABLE
`
`0
`
`HASH
`FUNCTION
`504
`
`djb:389 ~
`502
`
`?-3
`
`CONNECTION
`TO DIRECTORY
`
`2
`
`4
`
`5
`
`"
`~8
`
`512
`
`localhost:389
`
`6
`
`7
`
`514
`HASH
`FUNCTION
`
`CONNECTION
`TO DIRECTORY
`
`•
`•
`•
`•
`
`FIG. 5
`
`TCP/IP
`
`508 "
`
`~506
`
`LOCAL AREA NEnNORK
`
`518 "
`
`~516
`
`RingCentral Ex-1004, p. 6
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`\Jl
`
`e
`
`'"""'
`'"""'
`0 ......,
`0'1
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`lmJ Edit RDN
`
`WORK. AREA
`
`604
`
`!!J ... cn=Linda Carlesberg
`!!J ... cn=Wayne Nguyen
`!!J ... cn=Kyle Nguyen
`!!J ... cn=Henry Nguyen
`!!J ... cn=Ricardo Garcia
`!!J ... cn=Bob Garcia
`~ ... ou=Widget Division
`l m cn=Ben Garcia Jr
`! !!J cn=AI Garcia
`: IB···Cn=James G1ham
`i $···cn=Marshall .~iely
`i!J· .. cn-lt1arvm lt1cGee
`;
`I!
`
`....... I
`
`FIG. 6A
`
`II Add Server Ill Delete Server I[JEI
`
`L ... D Acls
`! .... DEdit entry RON
`!····D Delete entry
`:····D Ed1t entry
`:····DAd~ enlry ----.._606
`
`;
`
`"
`
`I
`
`" ......
`
`EJ .... ~.II
`
`_..r608
`
`61 O
`
`0 Organization 0 Other
`o Access role 0 Domain
`0 Access group 0 Locality
`o Country
`o Group
`0 Organizational unit
`t!> User
`Choose an entry type
`
`IB
`$
`i·
`
`B· .. ·D
`
`STATUS ~REA 602
`
`NAVIGATION PANEL 600
`
`RingCentral Ex-1004, p. 7
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`rJ'l
`
`e
`
`'"""
`'"""
`0 ......,
`-..J
`~ ......
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`[~
`
`626
`
`...
`r=
`I
`1-
`I
`I
`I
`I
`I
`1 .:,
`
`---. 618
`
`622
`
`}
`
`I
`I
`I
`I
`
`ll!J lmJ Edit RON
`
`?
`
`llol@
`
`II
`
`i. Parent DN: I ou=Austin,o=IBt.l,c mformahon for the user.
`!o creal~ a new user, type in a common name, last name, and any other
`OTCreate an LDAP User
`'ldap:/ /localhost:389 ( ldap:/ 1 djb:389)11 Browse directory tree
`~I IBM SecureWay Directory Management Tool
`
`-
`
`STATUS AREA 602
`
`NAVIGATION PANEL 600
`
`! · 0 Access role
`~ ?.
`i 8 o Grou;'\.614 o Country
`i ci:J
`1" Cho""' "'" typ• 612 C
`ommon name.
`:
`, .
`;
`DN:
`,
`,
`B· .. ·Cl
`i ! .
`!
`8 .... Cl
`lntrod .01 Create an LDAP Entry
`
`WORK AREA
`
`604
`
`I
`
`628--..ll Create Ill Cancel I
`
`(ff,
`
`'\prrPirv ·
`
`Pager number: 01
`Office phone: @I
`Office number: 01
`@I
`Manager:
`Employee type: 01
`I
`Employee number:
`@I
`(/) 1
`
`Department
`Business] Person all Other I ...,..-62 4
`initials:
`
`FIG. 6B
`
`I Add Server Ill Delete Server I[]![] ..
`
`i
`
`! .... D Acls
`l ··· ·Cl Edit entry RDN
`j ··· ·Cl Delete entry
`! ··· ·Cl Edit entry
`! ····Cl Add entry
`
`RingCentral Ex-1004, p. 8
`RingCentral v. Estech
`IPR2021-00574
`
`0 Organization 0 Other
`
`0 Domain
`0 Access group 0 Locality
`
`~····!;l 616~ E-mail:
`~ 8
`j
`
`(/) r
`(/) I
`1
`. (lJ
`cn=micki,ou=Austin,o=IBt.l,c=us
`I inetOrgPerson
`
`Last name:
`
`o Organizati
`
`@I User
`
`620 ~
`
`Object class:
`
`\
`Entry RDN: I cn=m1ck1~
`.
`
`.
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`rJ'l
`
`e
`
`""""
`""""
`0 ......,
`00
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`} 714
`
`710
`
`I
`I
`
`I
`I
`I
`I
`
`I
`
`?
`
`I! oil§
`
`II
`
`Ready
`IAdd directory server
`
`El····l;l Server
`Introduction
`ldap:l l1ocalhost:3B9 rldap:l 1 djb:3B9
`~!IBM SecureWay Directory Management Tool
`
`STATUS AREA 702
`
`NAVIGATION PANEL 700
`
`i. ... Cl r ull search
`j .... c:J Simple search
`
`:
`:
`t ~ ... Cl Search Tree
`i .... c:J Refresh Tree
`i
`: ! .... C:. Browse Tree
`r$J .... Cl Tree
`: B .. ·D Attributes
`i ~· .. C:. Object classes
`: ! ... -c:J Refresh schema
`! i .... c:J Browse schema
`I$J .... Cl Schema
`i .... C:.Rebind
`~ .... C:. Properties
`
`WORK AREA
`
`704
`
`I II Cancel I
`
`~
`
`716
`)
`OK
`
`I!
`
`708
`!
`
`I
`I
`L3B9
`
`Keyclass file password: I
`I
`Keyclass file name:
`DUse SSL....___ 712
`User password:
`
`User DN:
`
`Port:
`Server name: ldap:/ I I
`Connect to directory server
`
`706 FIG. 7
`!
`~::~~~:::~~:~~~Jill Delete Server I[E]
`
`RingCentral Ex-1004, p. 9
`RingCentral v. Estech
`IPR2021-00574
`
`i.. .. c:J Acls
`! .... D Edit entry RDN
`! .... C:. Delete entry
`! .... D Edit entry
`! .... c:J Add entry
`: .... C:. List entries
`
`a .... Cl Entries
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`\Jl
`
`e
`
`'"""'
`'"""'
`0 ......,
`'0
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`804
`
`WORK. AREA
`
`FIG. 8
`
`II Add Server Ill Delete Server 1[[]0
`
`RingCentral Ex-1004, p. 10
`RingCentral v. Estech
`IPR2021-00574
`
`808
`
`Server properties
`
`./806
`
`B····[) Entries
`!
`L .. ·[)Full search
`!
`!····[)Simple search
`i ~-··[)Search Tree
`! !-···[)Refresh Tree
`! ! ····[)Browse Tree
`B····D Tree
`! G···[) Attributes
`i $--·[)Object classes
`! !-···[)Refresh schema
`! ! ····[)Browse schema
`~····~Schema
`· ····[) Rebmd ~
`!
`i i ····[) Pro~ertfZ
`$····9 Server
`Introduction
`
`!.. .. [) Acls
`i ····[)Edit entry RON
`! ····[)Delete entry
`! ··· ·[) Edit entry
`!····[)Add entry
`! ··· ·[) List entries
`
`STATUS ~REA 802
`
`NAVIGATION. PANEL800
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`rJ'l
`
`e
`
`'"""'
`'"""'
`0 ......,
`'"""' c
`~ .....
`'JJ. =-~
`
`N c c
`
`N
`
`~~
`!"l
`~
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`j dl•
`
`II
`
`~910
`
`908
`\
`
`· ciJ ... cn=Jerry Chevy

`1 1 1 @ ... cn=Ron Edwards
`!!J ... cn=Jeffrey James
`j
`j
`j
`ciJ ... cn=Doug Edwards
`j
`j
`j
`! 8 ... cn=Cynthia Flowers
`i
`j
`i ~ ... ou=Home Entertainment
`j
`i 1 ffi ... ou=ln Flight Systems
`i !!J ... ou=Austin
`9 ... o=IBM
`
`EJ ... c.=us
`~ ... cn=localhost
`ldap:/ /djb:389
`
`$ ... cn=Wayne Nguyen
`!!J ... cn=Kyle Nguyen
`ciJ ... cn=Henry Nguyen
`~ ... cn=Ricardo Garcia
`@ ... cn=Bob Garcia
`liJ ... ou=Widget Division
`. ~ ... cn=Ben Garcia Jr
`~ ... cn=AI Garcia
`@ ... cn=James Giliam
`ciJ ... cn=Marshall Riely
`@ ... cn=Marvin McGee
`
`WORK AREA
`
`904
`
`1
`
`FIG. 9
`
`II Add ServeriiiDelete Serveri[IJ![]III:I
`
`RingCentral Ex-1004, p. 11
`RingCentral v. Estech
`IPR2021-00574
`
`L .. f!Full search
`j .. ·n Simple search
`
`! .... Cl Acls
`j· .. ·Cl Edit entry RDN
`j ... ·Cl Delete entry
`! ... ·D Edit entry
`! ... ·D Add entry
`! .... D List entries
`
`G .... Cl Entries
`.
`
`g ... [) Search Tree
`! .... D Refresh Tree
`! .... D Browse Tree
`
`II ~ ACL Jl m Edit RDN
`
`II ~Edit II ·oB Delete
`
`II[ ~ Search II ~ Expand II ~ Add
`Ready
`
`j .... D Properties
`
`?
`
`"'\}
`
`Browse directory tree
`
`ldap:/ /localhost:389 ldap:/ /djb:389
`
`STATUS AREA 902
`
`Directory
`
`[O[IBM "·
`
`NAVIGATION PANEL 900
`
`~
`906
`
`~ .... l;lTree
`. EJ· .. D Attributes
`
`ciJ ... D Object classes
`! .... D Refresh schema
`' i .... D Browse schema
`~J-.. ·l;l Schema
`j L .. DRebind
`j
`'?····~ Server
`Introduction
`
`

`

`1--"
`~
`\0
`1--"
`'0-,
`Q
`\0
`'l.
`0'1
`\Jl
`
`e
`
`'"""'
`'"""'
`'"""' 0 ......,
`'"""'
`~ .....
`'JJ. =(cid:173)~
`
`N c c
`
`N
`
`~~
`~ !"l
`~
`
`~ = ......
`~ ......
`~
`\Jl .
`d .
`
`...-/ 1 018
`
`?
`
`lfOIWX]
`
`WORK AREA
`
`1004
`
`FIG. 10
`
`II Add Server Ill Delete Server III]!]
`
`RingCentral Ex-1004, p. 12
`RingCentral v. Estech
`IPR2021-00574
`
`I II Cancel I
`
`OK
`
`II
`
`1008
`!
`
`Search for:
`
`1014
`(
`4
`
`1016
`
`10 ...-/
`
`I!> Show all 0 Search on: laccessH~nt
`Select which directory entries to include in the results
`
`0
`
`1 O 12
`
`10 ...,/
`
`101 O
`
`}
`
`0 Organizational unit
`o Orgamzat1on
`o Lacali~y
`o Country
`
`0
`
`0 Other
`o Domain
`o Access role
`0 Access group
`0 Group
`I!> User
`Select the type of directory entry to find
`
`laaa
`
`Ready
`
`Simple directory search
`
`L.. ·[)A cis
`1····1::1 Edit entry RDN
`!····[)Delete entry
`!····[)Edit entry
`!····[)Add entry
`!---·D List entries 1 006
`
`"\
`
`G····D Entries
`!
`j
`
`'····[)Full se~1\
`i····[) Simple~rch
`
`!
`~····[)Tree
`j G···[) Attributes
`j ~···[)Object classes
`l ! .... [)Refresh schema
`! ····[)Browse schema
`1
`$····[)Schema
`L.. ·[)Rebind
`j
`!···{~Properties
`1
`$····[)Server
`Introduction
`
`G···D Search Tree
`!····[)Refresh Tree
`!···-[)Browse Tree
`
`STATUS AREA 1 002
`
`NAVIGATION PANEL 1 000
`
`Tool
`
`lbiiBt.l SecureWay Directory
`
`

`

`US 6,490,619 Bl
`
`1
`METHOD AND SYSTEM FOR MANAGING
`MULTIPLE LIGHTWEIGHT DIRECTORY
`ACCESS PROTOCOL DIRECTORY SERVERS
`
`FIELD OF THE INVENTION
`
`The present invention relates generally to an improved
`distributed data processing system and in particular to an
`improved method and apparatus for accessing information in
`a distributed system. Still more particularly, the present
`invention relates to a method and apparatus for managing
`LDAP directory servers.
`
`BACKGROUND OF THE INVENTION
`
`A directory service is a central point where network
`services, security services and applications can form an
`integrated distributed computing environment. Typical uses
`of a directory services may be classified into several cat(cid:173)
`egories. A "naming service", such as Directory Naming
`Service (DNS) DNS or Cell Directory Service (CDS), uses
`the directory as a source to locate an Internet Host address
`or the location of a given server. A "user registry", such as
`Novel Directory Services (NDS), stores information about
`users is a system comprised of a number of interconnected 25
`machines. Still another directory service is a "white pages"
`lookup provided by some mail clients, such as Netscape
`Communicator or Lotus Notes.
`With more and more applications and system services
`demanding a central information repository, the next gen(cid:173)
`eration directory server will need to provide system admin(cid:173)
`istrators with a data repository that can significantly ease
`administrative burdens. In the Internet/intranet environment,
`it will be required to provide user access to such information
`in a secure manner. It will be equally important to provide 35
`robust, and simple administrative tools to manage the direc(cid:173)
`tory content.
`LDAP (Lightweight Directory Access Protocol) is a soft(cid:173)
`ware protocol for providing directory service enablement to
`a large number of applications. These applications range 40
`from e-mail to distributed system management tools. LDAP
`is an evolving protocol model based on the client-server
`model in which a client makes a TCP/IP connection to an
`LDAP server. LDAP is a "lightweight" version of DAP
`(Directory Access Protocol), which is part of X.SOO, a 45
`standard for directory services in a network.
`The LDAP information model in particular, is based on an
`"entry", which contains information about some object.
`Entries are typically organized in a specified tree structure,
`and each entry is composed of attributes. An example LDAP 50
`directory is organized in a simple "tree" hierarchy consisting
`of the following levels:
`The "root" directory (the starting place or the source of
`the tree), which branches out to
`Countries, each of which branches out to
`Organizations, which branch out to
`Organizational units (divisions, departments, and so
`forth), which branches out to (includes an entry for)
`Individuals (which includes people, files, and shared
`resources such as printers)
`LDAP provides a number of known functions for manipu(cid:173)
`lating the data in the information model. These include
`search, compare, add, delete, and edit. It provides a rich set
`of searching capability with which users can assemble 65
`complex queries to return desired information for later
`viewing and updating.
`
`2
`An LDAP directory can be distributed among many
`servers, with parts of data residing on a set of machines.
`Another scenario is where each server contains a replicated
`version of the total directory that is synchronized periodi(cid:173)
`cally. An LDAP server is called a Directory System Agent
`(DSA). An LDAP server that receives a request from a user
`takes responsibility for the request, passing it to other DSAs
`as necessary, either through server chaining or client refer(cid:173)
`rals. Both cases ensure a single coordinated response for the
`10 user. Although directory structures can reside on a single
`server, there are several reasons for splitting directories
`across multiple machines. First, the directory may be too
`large to make it practical to store on a single server. Second,
`network administrators may want to keep the physical
`15 location of the server close to the expected clients to
`minimize network traffic.
`A referral is used to show where a parent tree may be
`located. LDAP provides a mechanism for searching direc(cid:173)
`tories and for "chasing" referrals; however, the mechanism
`20 has several limitations. First, it is not possible to search the
`entire domain since a base domain name must be provided.
`The best that can be done is to search the main domain one
`suffix at a time.
`Second, a referral chase does not show where the final
`results were found. A query that dereferences referrals may
`attempt many servers before finding the right one. This
`could drastically affect performance on subsequent related
`queries. Although these subsequent queries eventually may
`succeed, they go through the same server search as the
`30 original query rather that proceed directly to the correct
`server.
`Third, where chasing referrals, the client must bind to
`each referred to server. This means the bind request will
`either be treated as an anonymous request or the client will
`be prompted for additional account information. This could
`be especially important if access control is set in a manner
`where a different authorization ID must be used in order for
`the operation to succeed.
`Fourth, the search process cannot be customized by the
`user. For example, the user may want the search to be
`restricted to only two servers in an enterprise, but the LDAP
`search software forces all servers to be searched.
`To overcome these limitations it would be advantageous
`to have an improved method and apparatus for searching and
`manipulating data within a set of servers in a distributed
`network.
`
`SUMMARY OF THE INVENTION
`
`The present invention provides an improved method,
`apparatus, and instructions for locating a server in a distrib(cid:173)
`uted network using the Lightweight Directory Access Pro(cid:173)
`tocol (LDAP), maintaining information for the server, dis(cid:173)
`playing a tree of servers, browsing the tree of servers, and
`searching the tree of servers for an entry with specific
`55 attributes. The information maintained about the server
`includes its location, lists of attributes, and access control.
`The tree displayed can be for all servers combined or for an
`individual server. The search can be across the entire server
`or customized to a subset of servers. The search can be based
`60 on one of the following attributes: user, country, group,
`locality, access group, access role, organization, organiza(cid:173)
`tion unit, domain, or can be based on user defined attributes.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The novel features believed characteristic of the invention
`are set forth in the appended claims. The invention itself,
`
`RingCentral Ex-1004, p. 13
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`US 6,490,619 Bl
`
`10
`
`15
`
`4
`application from another computer coupled to the network.
`In the depicted example, server 104 provides data, such as
`boot files, operating system images, and applications to
`clients 108-112. Clients 108, 110, and 112 are clients to
`server 104. Distributed data processing system 100 may
`include additional servers, clients, and other devices not
`shown. In the depicted example, distributed data processing
`system 100 is the Internet with network 102 representing a
`worldwide collection of networks and gateways that use the
`TCP liP suite of protocols to communicate with one another.
`At the heart of the Internet is a backbone of high-speed data
`communication lines between major nodes or host
`computers, consisting of thousands of commercial,
`government, educational and other computer systems that
`route data and messages. Of course, distributed data pro(cid:173)
`cessing system 100 also may be implemented as a number
`of different types of networks, such as for example, an
`intranet, a local area network (LAN), or a wide area network
`(WAN). FIG. 1 is intended as an example, and not as an
`20 architectural limitation for the present invention.
`Referring to FIG. 2, a block diagram depicts a data
`processing system that may be implemented as a server, such
`as server 104 in FIG. 1, in accordance with a preferred
`embodiment of the present invention. Data processing sys-
`25 tern 200 may be a symmetric multiprocessor (SMP) system
`including a plurality of processors 202 and 204 connected to
`system bus 206. Alternatively, a single processor system
`may be employed. Also connected to system bus 206 is
`memory controller/cache 208, which provides an interface
`30 to local memory 209. 1/0 bus bridge 210 is connected to
`system bus 206 and provides an interface to 1!0 bus 212.
`Memory controller/cache 208 and 1!0 bus bridge 210 may
`be integrated as depicted.
`Peripheral component interconnect (PCI) bus bridge 214
`35 connected to 1!0 bus 212 provides an interface to PCI local
`bus 216. A number of modems may be connected to PCI bus
`216. Typical PCI bus implementations will support four PCI
`expansion slots or add-in connectors. Communications links
`to network computers 108-112 in FIG. 1 may be provided
`40 through modem 218 and network adapter 220 connected to
`PCI local bus 216 through add-in boards.
`Additional PCI bus bridges 222 and 224 provide inter(cid:173)
`faces for additional PCI buses 226 and 228, from which
`additional modems or network adapters may be supported.
`In this manner, server 200 allows connections to multiple
`network computers. A memory-mapped graphics adapter
`230 and hard disk 232 may also be connected to 1!0 bus 212
`as depicted, either directly or indirectly.
`Those of ordinary skill in the art will appreciate that the
`hardware depicted in FIG. 2 may vary. For example, other
`peripheral devices, such as optical disk drives and the like,
`also may be used in addition to or in place of the hardware
`depicted. The depicted example is not meant to imply
`55 architectural limitations with respect to the present inven-
`tion.
`The data processing system depicted in FIG. 2 may be, for
`example, an IBM RISC/System 6000 system, a product of
`International Business Machines Corporation in Armonk,
`60 N.Y., running the Advanced Interactive Executive (AIX)
`operating system.
`With reference now to FIG. 3, a block diagram illustrates
`a data processing system in which the present invention may
`be implemented. Data processing system 300 is an example
`of a client computer. Data processing system 300 employs a
`peripheral component interconnect (PCI) local bus architec(cid:173)
`ture. Although the depicted example employs a PCI bus,
`
`3
`however, as well as a preferred mode of use, further objec(cid:173)
`tives and advantages thereof, will best be understood by
`reference to the following detailed description of an illus(cid:173)
`trative embodiment when read in conjunction with the
`accompanying drawings, wherein:
`FIG. 1 is a pictorial representation of a distributed data
`processing system in which the present invention may be
`implemented;
`FIG. 2 is a block diagram of a data processing system that
`may be implemented as a server in accordance with a
`preferred embodiment of the present invention;
`FIG. 3 is a block diagram of a data processing system in
`which the present invention may be implemented in accor(cid:173)
`dance with a preferred embodiment of the present invention;
`FIG. 4 is a screen image of the user interface in accor(cid:173)
`dance with a preferred embodiment of the present invention;
`FIG. 5 is a block diagram showing an LDAP server hash
`table in accordance with a preferred embodiment of the
`present invention;
`FIG. 6A and FIG. 6B are screen images showing creation
`of an LDAP entry in accordance with a preferred embodi(cid:173)
`ment of the present invention;
`FIG. 7 is a screen image showing the creation of an LDAP
`directory server in accordance with a preferred embodiment
`of the present invention;
`FIG. 8 is a screen image showing the display of server
`properties in accordance with a preferred embodiment of the
`present invention;
`FIG. 9 is a screen image of the browse tree option in
`accordance with a preferred embodiment of the present
`invention; and
`FIG. 10 is a screen image of a directory tree search in
`accordance with a preferred embodiment of the present
`invention.
`
`DETAILED DESCRIPTION OF 1HE
`PREFERRED EMBODIMENT
`
`45
`
`This invention is designed to overcome the limitations of
`chasing LDAP referrals and to provide a user-friendly
`environment that allows server information to be displayed
`and manipulated in an intuitive manner. To understand the
`functionality of the invention it is best to examine a
`sequence of screen images showing how the user interacts
`with the system. The screen images shown are for a search
`operation but those of ordinary skill in the art will appreciate
`that any other LDAP operation could be performed.
`With reference now to the figures, FIG. 1 depicts a
`pictorial representation of a distributed data processing 50
`system in which the present invention may be implemented.
`Distributed data processing system 100 is a network of
`computers in which the present invention may be imple(cid:173)
`mented. Distributed data processing system 100 contains a
`network 102, which is the medium used to provide commu(cid:173)
`nications links between various devices and computers
`connected together within distributed data processing sys(cid:173)
`tem 100. Network 102 may include permanent connections,
`such as wire or fiber optic cables, or temporary connections
`made through telephone connections.
`In the depicted example, a server 104 is connected to
`network 102 along with storage unit 106. In addition, clients
`108, 110, and 112 also are connected to a network 102.
`These clients 108, 110, and 112 may be, for example,
`personal computers or network computers. For purposes of 65
`this application, a network computer is any computer,
`coupled to a network, which receives a program or other
`
`RingCentral Ex-1004, p. 14
`RingCentral v. Estech
`IPR2021-00574
`
`

`

`US 6,490,619 Bl
`
`5
`other bus architectures such as Micro Channel and Industry
`Standard Architecture may be used. Processor 302 and main
`memory 304 are connected to PCI local bus 306 through PCI
`bridge 308. PCI bridge 308 also may include an integrated
`memory controller and cache memory for processor 302.
`Additional connections to PCI local bus 306 may be made
`through direct component interconnection or through add-in
`boards. In the depicted example, local area network (LAN)
`adapter 310, Small Computer System Interface host bus
`adapter 312, and expansion bus interface 314 are connected 10
`to PCI local bus 306 by direct component connection. In
`contrast, audio adapter 316, graphics adapter 318, and
`audio/video adapter 319 are connected to PCI local bus 306
`by add-in boards inserted into expansion slots. Expansion
`bus interface 314 provides a connection for a keyboard and 15
`mouse adapter 320, modem 322, and additional memory
`324. SCSI host bus adapter 312 provides a connection for
`hard disk drive 326, tape drive 328, and CD-ROM drive 330.
`Typical PCI local bus implementations will support three or
`four PCI expansion slots or add-in connectors.
`An operating system runs on processor 302 and is used to
`coordinate and provide control of various components
`within data processing system 300 in FIG. 3. The operating
`system may be a commercially available operating system
`such as OS/2, which is available from International Business 25
`Machines Corporation. "OS/2" is a trademark of Interna(cid:173)
`tional Business Machines Corporation. An object oriented
`programming system such as Java may run in conjunction
`with the operating system and provides calls to the operating
`system from Java programs or applications executing on
`data processing system 300. "Java" is a trademark of Sun
`Microsystems, Inc. Instructions for the operating system, the
`object-oriented operating system, and applications or pro(cid:173)
`grams are located on storage devices, such as hard disk drive
`326, and may be loaded into main memory 304 for execution
`by processor 302.
`Those of ordinary skill in the art will appreciate that the
`hardware in FIG. 3 may vary depending on the implemen(cid:173)
`tation. Other internal hardware or peripheral devices, such as
`flash ROM (or equivalent nonvolatile memory) or optical
`disk drives and the like, may be used in addition to or in 40
`place of the hardware depicted in FIG. 3. Also, the processes
`of the present invention may be applied to a multiprocessor
`data processing system.
`For example, data processing system 300, if optionally
`configured as a network computer, may not include SCSI 45
`host bus adapter 312, hard disk drive 326, tape drive 328,
`and CD-ROM 330, as noted by dotted line 332 in FIG. 3
`denoting optional inclusion. In that case, the computer, to be
`properly called a client computer, must include some type of
`network communication interface, such as LAN adapter 50
`310, modem 322, or the like. As another example, data
`processing system 300 may be a stand-alone system con(cid:173)
`figured to be boatable without relying on some type of
`network communication interface, whether or not data pro(cid:173)
`cessing system 300 comprises some type of network com(cid:173)
`munication interface. As a further example, data processing 55
`system 300 may be a Personal Digital Assistant (PDA)
`device which is configured with ROM and/or flash ROM in
`order to provide nonvolatile memory for storing operating
`system files and/or user-generated data.
`The depicted example in FIG. 3 and above-described 60
`examples are not meant to imply architectural limitations.
`For example, data processing system 300 also may be a
`notebook computer or hand held computer in addition to
`taking the form of a PDA. Data processing system 300 also
`may be a kiosk or a Web appliance.
`FIG. 4 shows the basic layout of the screen. There are
`three major areas: Navigation Panel400 appears on the left,
`
`6
`Status Area 402 appears on the top right, Work Area 404
`appears on the middle/lower right. Navigation Panel 400 is
`where the user controls the search operation. Each server is
`associated with a tab 406 at the top of the navigation panel.
`Clicking on the tab brings the panel for the associated server
`to the front of the view area. Each server has a list of options
`408. Most options are self-explanatory; a few wil

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