throbber
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
`
`US006061692A
`
`United States Patent
`
`[19]
`
`[11] Patent Number:
`
`6,061,692
`
`Thomas et al.
`
`[45] Date of Patent:
`
`May 9, 2000
`
`[S4]
`
`SYSTENI AND MICTHOD FOR
`
`AN INTEGRAL COMPONENT OF AN
`INFORMATION SERVER
`
`[75]
`
`Inventors: Michael W. Thomas, Bellevue; James
`E, Allard, Seattle; Michael Howard;
`Sophia Chung, both of Redrnondg
`Cnmemn Fe.-rmni, Seattle; Dtruglas C.
`Hcrthcnthztl. Redmond; John
`Ludemun, Redmond; Kim Slebhcns,
`Redmond; Henry L. Sztndcr.-5,11,
`Kirkland; David R. .n_cadwe"’ HI,
`Woodinville, all of Wash.
`
`I-Bl Aqsignccz Microsoft Corporation‘ Rcdmmlda
`wash
`
`[211 App}. No; 08/963,394
`
`[221
`[51]
`
`[58]
`
`i55l
`
`Nnv.4,1997
`
`Filed:
`I
`C] 7
`.................................................... ..
`nt.
`.
`...............................................
`U.S. Ci.
`Field of Search
`
`G06]: 172,30
`
`7{J7_t’1—2, 10, 102,
`'i"(J7.r'103, 200-204; 345E356
`"
`R"~‘f'~‘l'*3"C'3-‘5 Uwd
`U_S_ l,M_l_;N.I. DOCUMENTS
`
`5,745,752
`5.?:'s8,154
`
`........................ .. vtrurznn
`Ilurvig etal.
`4,.-'t9t.J8
`:‘-£1998 Qurcshi
`................................. ..
`’.tttw.3tJ2
`
`"""""x 17!
`Q__ t__,f
`"'1'
`
`5,878,415 M1999 Olds .......................................... .. 70'.-',r'6
`li.I"lq99 Momoh Cl Eli.
`....................... ..
`'t'0‘?i’20S
`
`OTHER 1.UB,_,CA-HONS
`
`the new way of
`“Exploring the Windows ‘)5 Registry:
`storing system and application pt't:ft.:t‘t.:r1t:t:.‘s,” Jeff Prosise, PC
`Magazine, V14, n20, pp. 277-280, Nov. 1995.
`
`Primr1r_i-' ExaHtirter—l insain T. Alan‘:
`Arrorrtey, Agent, or Ft‘m:—Workman, Nydcgger & Seeley
`
`ABSTRACT
`i57l
`l.
`.
`V _1.
`‘
`,d
`_
`_
`.
`‘
`I-.
`An .
`11
`H ._
`tn 0l‘lT]d.ll0l'l server a aptc to service requests or in or-
`i
`aie
`(2i.C')ii
`«ai
`mat on has
`n nt gral dwtab -3
`(.(1‘tla 11 ng configur ten
`infrtrmation, application inl'orn'tation, andior content infor-
`rnalton. '1i‘lt:.ll1i"(3fITl£lI‘lUl't
`tn the database is stored 1n a
`hterarclucal iashlon with elements that corrcsponcl, In some
`degree, with physical storage structure or individual infor-
`mation objects on the information server. Path names
`received in information requests are broken into constituent
`components and are userl
`to retrieve configuration
`information, application information, atndior content infor-
`m.l‘0n from [h\ databas. and "n1-‘0].ma1‘01 obucls fmm
`Slgragg: In [he
`properlligi
`at 011g
`hierarchical
`level may he inherited by lower hierarchical
`levels. The database is preferably provided with a program-
`rnatic interface that allows concurrent access to and admin-
`istration of the database. Mechanisms to notify registered
`users of changes or events that occur WI[i'| respect to the
`database are implemented.
`
`38 Claims, 15 Drawing Sheets
`
`/
`|JEFMILT.HTI
`
`\
`|}EFltiJl.T.HTl
`
`S212
`
`1
`
`SAMSUNG 1006
`
`SAMSUNG 1006
`
`1
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 101-"15
`
`6,061,692
`
`2.
`
`~55:
`
`$52.8
`
`._§E._$5:39.
`
`<323;
`
`._§Ez
`
`
`
`82>ES._o.:zoagangs...
`
`_.o_”_a2.32:
`
`.3§__§.
`
`3.3;:2.25.5
`
`.s_=a:__._._
`
`m35.3..
`
`_§_§._Es
`
`£._<$2___
`
`.s_=.,__E¢
`
`SE.52..._:_§..$_._.5.s=3=___:
`
`
`
`
`3a:3m$._=8_._§._§2_._
`
`5.3
`
`m.5;
`
`2__E__.a
`
`
`
`2.5”:a=.s.m_:_=.a..§.:_.2_.3:52..:22......5.3:2._§E..
`
`
`
`
`
`
`
`
`
`
`
`§$_E__§_E=._§§E__§£E___.52..
`
`2
`
`
`
`
`
`

`
`U
`
`m3
`
`H.m
`
`1160.,
`
`295,
`
`P2CM:2;
`
`_,n,3T..\3.tl2.3
`5..II.....\%
`.7...55m§_=._§,__
`
`:32.
`$.23_.\.I.
`
`
`§___m_,__[m._:§3.3._2
`
`6.
`
`N2.
`
`3
`
`

`
`SU
`
`um
`
`LlpnCLl
`
`May 9, 2000
`
`Sheet 3 of 15
`
`._=._e.2.
`
`2:
`
`m...=E._
`
`.28..E0
`
`33$....55..
`
`
`
`5...”...3.3..
`
`m.9”.
`
`Y.
`
`2__.§=_;.=_..__
`
`22z
`
`__=_2.Ez
`
`2s_E_==_..8
`‘E1E3
`
`4
`
`
`
`

`
`m
`
`S _
`
`:a_.__3s
`
`L,V.o_u_M,Fl3Fl%62..2.2I§§2,__I559%.._U9VI%2;I%_r-6_U%N:mEIaEI.=._=.§_lI§%M2I9IgEgmE2;
`_._§s2__ugEF2;an.I—_E233I:E§m.25mEFbf__IIIEMFr.9.2
`__IIIE.W.EI%EFI5333I52393rfl32.
`__u.I0.IgrI%
`
`U
`
`t
`
`CM3__IIIE
`
`
`
`mI3Ima,_...Eg4....:2.E—nm2.EE
`
`5
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 5 of 15
`
`6,061,692
`
` 150
`
`
`152
`
`154
`
`
`
`156
`
`158
`
`—K
`
`
`
`
`
`
`
`
`
`'""‘“" mueansn mu
`
`PARTIAL
`
`IS
`
`“"E"'5"°‘ V°”‘"*5 mu
`
`mam
`
`no
`
`ATTRIBUTES
`
`
`
`152
`
`154
`
`me
`
`153
`
`no
`
`112
`
`114
`
`we
`
`FIG.
`
`5
`
`6
`
`

`
`U.
`
`t
`
`May 9, 2000
`
`‘sheet 6 of 15
`
`ME umS2_.\;....w..\..
`
`i
`
`
`r.
`
`Ii
`
`2
`
`2
`
`___:v:_.§_~mu:igM,EM2.;:2:2EasI6<\
`9.M,.:...E..mg
`
`2.3‘:
`S232VI9:8Na/\2:.Km.__
`...........--N2an\.
`
`7
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 7 of 15
`
`,.._._.,__§a_$.._x.
`
`8
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 3 of 15
`
`6,061,692
`
`274
`
`FIG.8
`
`9
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 9 M15
`
`6,061,692
`
`9“
`
`290
`
`292
`
`unease
`
`Request
`‘
`m A39
`cmumsu RL
`
`RELEA E
`
`RELEASE
`PARENT
`PRL
`
`10
`
`
` REQUEST
`
`28
`
`
`
`273
`
`RL
`
`‘
`00
`"9 WI. on PWL
`AOLIVE
`
`
`
`
`
`282
`
`284
`
`286
`
`ASSIGN RL
`T0 KEY AND
`CHILDREN
`
`
`
`ASSIGH
`PRL T0
`PAREHT5
`
`10
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 10 of 15
`
`6,061,692
`
`304
`
`306
`
`
`
` WL
`
`
`
`
`
`308
`
`
`
`RELEASE
`REQUEST
`I
`
`
`
`RELEASE
`KEY AND
`CHILDREN WL
`
`
`
`
`I
`
`RELEASE
`ANGESTOR
`PIIIL
`I
`SEND
`NOTIFICATION
`OF CHANGES
`TO REGISTERED
`CLIENTS
`
`310
`
`
`
`PIIL, Ill on
`
`PIIIL gchve
`
` FOR NO
`RL, PRL, WL
`AND PIVL
`
`298
`
`
`
`
`
`
`
`
`
`FIG. 108
`
`300
`
`302
`
`11
`
`
`ASSIGN VIL
`TO KEY AND
`CHILDREN
`1
`ASSIGII
`PWI. TO
`ANGESTORS
`
`
`
`
`
`
`
`
`1E F
`
`IG.
`
`IDA
`
`
`
`
`
`
`11
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 11 of 15
`
`6,061,692
`
`312
`
`EVENT
`
`314
`
`REGISTER
` 324
`
`
`NOTIFICATION6
`
`IIETABASE
`SYSTEII
`
`318
`
`322
`
` 315
`
`ca
`
`
`
`320
`
`FIG. 11
`
`12
`
`12
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 12 of 15
`
`6,061,692
`
`
`
`REGISTRATION
`RECEIVED
`
`13
`
`
`
`
`
`PERIISSIOIIS
`TO REGISTER FOR
`
`330
`
`13
`
`

`
`U.S. Patent
`
`May 9, 2000
`
`Sheet 13 of 15
`
`6,061,692
`
`344
`
`345
`
`346
`
`338
`
`i“!
`
`the
`‘li-
`
`a’ I ff
`"
`
`..
`
`:0
`-r
`
`at
`
`3
`cr:
`
`¢..-,
`wu-
`
`.
`"?
`I
`
`FIG.13
`
`IT‘
`-i
`
`an
`
`14
`
`14
`
`

`
`M.5,2E
`
`U
`
`M
`
` /
`
`5
`
`/0
`
`{O0.,
`
`11
`
`M._..2::¢ma;
`
`53:...N3:..._wasm2»mEEan
`
`P:2:=2::34'
`cmE
`
`m_mas.masmEasamg.»m
`
`15
`
`
`

`
`..lH84|.3PSU
`
`May 9, 2000
`
`Sheet 15 of 15
`
`6,061,692
`
`0E53...
`
`_s_:o_§<
`
`
`
`3......_s_E_:.:
`
`ll
`
`an
`
`3»
`
`2;
`
`2.3
`
`_s_=a__._:
`
`3.552.=§._o
`
`16
`
`16
`
`
`
`

`
`6,061 ,692
`
`1
`SYSTEM AND METHOD FOR
`ADM INISTERING A META I)ATABASE AS
`AN IN'l'l*IGRAI. COM l’()Nl*IN'l‘ 01*‘ AN
`INFORMATION SERVER
`
`BACKGROUND OF THE INVENTION
`
`1. The Field of the Invention
`This invention relates to information servers, and, more
`specifically, this invention relates to a mechanism for admin-
`istering and configuring an information server that dramati-
`cally reduces the administrative burden.
`2. The Prior State of the Art
`
`Today, business and technology trends are changing the
`way we use computers and information. The personal com-
`puter of PC has become the standard business information
`tool as prices have decreased and computing power has
`increased. In record numbers, business are re-engineering
`their organizational structure and processes to become faster
`and more competitive, in addition to being better able to use
`the wealth of information resources available today. Never
`before has there been so much information so readily
`available nor such high expectations for how much the
`individual will be able to accomplish by utilizing this
`information. The result is that people today need access to
`information everywhere, anytime.
`The need for access to information and the widespread
`availability of information has been aided and encouraged
`by the growth of large-scale computer networks such as the
`Internet. Through the Internet, users can access a wide
`variety of information and have the information delivered
`and displayed to their screens almost immediately. With the
`proliferation ofthe Internet and Internet related and inspired
`technologies, many businesses and corporations are model-
`ing in-house information networks, called intranets, after the
`model used by the Internet. The result is that users today
`have more access to more different types of information than
`ever before.
`
`To supply information over these networks, various types
`of information servers have been developed. These infor-
`mation servers are designed to receive a request for infor-
`mation from a client, retrieve the desired information, and
`pass the information back to the requesting cl ient. In the case
`if the Internet andlor intranets.
`information is generally
`stored in a variety of standard formats that may be retrieved
`and provided to the requesting client. The type of format
`used to store the data depends in large measure upon the type
`of information server and the purpose of the infonrtation
`server. For example, information servers designed to provide
`information to various web browsers over the Internet often
`store and provide information in a Hypertext Markup Lan-
`guage (HTML). On the other hand, a server providing
`information via the Internet File Transfer Protocol (l'-’I'P)
`may store information in a wide variety of formats suitable
`for downloading by a requesting client. Other types of
`information servers such as mail servers, news servers, and
`so forth, also abound.
`Although each of these various types of information
`servers has unique requirements, at some level all such
`information servers require the ability to retrieve informa-
`tion in a desired format and provide the information to a
`requesting client. In order to achieve this goal, many infor-
`mation servers must store a wide variety of configuration
`and other data. For example, many information servers are
`customizable in a wide variety of ways. The various cus-
`tomization infon'nation must be stored for each particular
`installation. Such configuration information may range from
`
`I0
`
`15
`
`30
`
`35
`
`40
`
`50
`
`55
`
`60
`
`65
`
`2
`configuration information regarding the specific hardware
`environment, protocols used to communicate with clients
`and service client requests, configuration information relat-
`ing to the specific information stored on the information
`server, and many other types of configuration information.
`Trad itionally. such configuration information was stored
`in text-based files referred to on various systems as “INI"
`files, “CONF” files, or "RE" files. These INI files were
`typically formatted according to some identified format, for
`example, a parameter identifier followed by the value of the
`parameter. When the information server was initialized, the
`in formation server would go to the appropriate INI file, read
`the text-based information contained therein, parse the text-
`based information to extract the appropriate configuration
`information. and apply the configuration information. As
`explained below, dynamic configuration was rare and the
`system often had to be restarted as changes were made.
`Such an approach worked relatively well for information
`servers that provided a small amount of information or that
`were customizable in a limited number of ways. Ilowever, as
`the amount of information available from a particular infor-
`mation server has increased and as the contexts in which an
`information server must operate has diversified, the amount
`and type of configuration information has dramatically
`increased. This dramatic increase has created several prob-
`lems for traditional configuration mechanisms.
`One problem with using text-based INI files to configure
`and administer an information server is highlighted by the
`amount of information that must be stored when the amount
`of information serviced by the server increases. As one
`example, web servers may provide ratings for each of the
`web pages accessible from the server. These ratings rate the
`information content of a web page or other information
`object so that
`individuals may screen out objectionable
`material. An information server that supports ratings must,
`therefore, maintain rating information on each and every
`information object that can be accessed via the information
`server. Such rating information may be compiled into a
`single large INI file or may be stored in separate INI files,
`each associated with an appropriate infonriation object.
`When an administrator wishes to update rating information,
`the administrator must change the information in the appro-
`priate INI file. For a large number of information objects,
`this task can be tedious and is fraught with error. For
`example, if the entire rating of one particular subtree of an
`information server is changed, then the rating for each and
`every information object in that subtree must be identified
`and updated.
`It would,
`therefore, be highly desirable to
`provide a mechanism that reduces the administrative burden
`in updating configuration information that applies to large
`groups of information objects.
`It would also be highly
`desirable to reduce or eliminate the probability of errors
`associated with such changes.
`Another problem with text—based INI files can be illus-
`trated by the following scenario. Suppose configuration
`information is stored in a single, large INI file. Now suppose
`that the administrator wishes to make a modification to a
`
`portion of the information in the INI file. After the admin-
`istrator has completed the desired changes, a mechanism
`must exist for making the information server aware of the
`changes that have been made. In some systems, this neces-
`sitates stopping the information server and reinitializing the
`information server. Such a reinitialization may be as simple
`as stopping and restarting a program or as complicated as
`shutting down an entire system and rebooting the entire
`system, causing service outages. Such a mechanism is
`highly undesirable if configuration information is changed
`
`17
`
`17
`
`

`
`6,061 ,692
`
`I0
`
`15
`
`3
`therelhre. be an
`on a relatively frequent basis. It would,
`advancement in the art
`to eliminate the necessity of reini-
`tializing an information server when configuration changes
`are made.
`In order to eliminate the need to reinitialize an informa-
`tion server, mechanisms may be put in place that cause the
`information server to return to the text file and reread all the
`configuration parameters. The server can reparse the text file
`and extract the appropriate configuration information. Such
`an approach may work for certain types of configuration
`changes. However, such an approach still requires the infor-
`mation server to reread and reparse all entries in the text file
`in order to identify which information in the file has
`changed. This still represents a rather cumbersome process.
`It would be an advancement
`in the art
`to obviate the
`necessity of rereading and reparsing configuration tiles to
`determine which configuration parameters have been modi-
`fied. It would be a further advancement in the art to allow all
`such configuration changes to be made without reparsirrg an
`entire INI
`tile and without
`requiring any stopping and
`starting of the information server.
`In order to eliminate the need to reread and reparse
`tex1—based INI files whenever configuration parameters are
`needed, most existing information servers keep as much of
`the configuration information in memory as pmaible. For
`example, if rating information is utilized, it is desirable to
`maintain the rating information for the associated informa-
`tion objects in memory so as to eliminate the necessity of
`retrieving text from an INI file and parsing the retrieved
`information to extract the configuration information. As the
`number of information objects provided by an information
`server increases and as the variety and type of configuration
`information proliferates, keeping all such information in
`memory becomes a difficult task. Furthermore, the amount
`of non—volatile storage space and the initialization time also ‘
`increases. It would, therefore, be highly desirable to reduce
`the amount of information that needs to remain in memory
`in order
`to configure an information server while,
`simultaneously, reducing the necessity of retrieving infor-
`mation from [NI tiles that must be parsed to extract
`the
`desired configuration information. It would also be highly
`desirable to reduce the amount of non-volatile storage
`required to store such information and to reduce the time
`required to initialize an information server.
`
`“
`
`30
`
`40
`
`SUMMARY AND Ol3.|]:LCI'S OF THE
`INVENTION
`
`Glossary of Terms
`
`In order to assist in understanding the terminology used in
`the summary of the invention and detailed description, the
`following definitions for key terms are provided:
`Application Metadata
`Properties stored by an application or extension config-
`ured as part of the information server. Examples of such
`applications or extensions may be a content indexing com-
`ponent which indexes the content of various objects admin-
`istered and served by the information server, a component
`that issues stock quotes, or other active content provider.
`Application metadata is generally used at initialization time
`or at run time to affect
`the behavior of the associated
`application. Examples of application metadata include a
`property that identifies a directory as requiring indexing and
`the server name to connect to in order to retrieve stock quote
`data. Application metadata is sornetirne referred to applica-
`tion information.
`
`50
`
`55
`
`60
`
`65
`
`18
`
`Children
`
`4
`
`In a hierarchy, progeny below the identified level.
`Includes not only direct children but also progeny of greater
`degree (e.g. grandchildren, great grandchildren, etc.).
`Client
`
`A general term used to refer to a requesting entity or an
`entity that is served by another entity. Clients can include
`both entities making requests of the information server and
`entities accessing the metabase of the present invention.
`Configuration Metadata
`Properties and settings which apply to information server
`operating system services such as HTTP, FTP, etc. Examples
`include http port and enabling of certain features for the type
`of service. Configuration metadata is sometimes referred to
`as configuration information.
`Content Metadata
`
`Properties which apply to the objects served and managed
`by an information server. Examples include ratings on files,
`and execute access for an object or location. Content Meta-
`data is sometimes referred to as content information.
`
`Information Object
`types of
`incorporates any and all
`A broad term that
`information served by an information server. Information
`objects may include, but are not
`limited to, documents,
`software components or objects that provide a result or
`information, files, data, and so forth.
`Key Location
`A storage location in a metabase where one or more
`properties containing metadata are stored. Key locations are
`also sometime referred to as keys. A key location is some-
`what analogous to a directory on a storage device.
`Mctabase
`
`A database used for the storing of metadata including, but
`not limited to, configuration metadata, content metadata, and
`application metadata.
`Metadata
`
`Configuration of other information that is helpful to or
`required by a system in managing and administering infor-
`mation objects. Examples include configuration metadata,
`content metadata, and application metadata.
`Parent
`
`the levels above the identified level.
`In a hierarchy,
`Parents include not only the immediate progenitor but all
`other progenitors as well (e.g. grandparents, great
`grandparents, etc).
`Programmatic Interface
`An interface through which something is accessed typi-
`cally consisting of series of functions, interfaces, or entry
`points that are called by an entity in order to achieve a
`certain result. A programmatic interface implies a software
`component on each side of the interface, one to perform the
`calling and another to perform the called function.
`Software Component
`A general term to refer to any type of software entity
`including software objects, DLLs, application programs,
`executable units, services, and so forth.
`Virtual Directory
`A 'directory' that corresponds to one or more keys in a
`metabase but has no direct counterpart on physical storage
`media.
`Virtual Server
`
`An information server that appears to the outside world as
`a totally separate physical information server but which, in
`reality may share a physical machine with other information
`servers.
`
`18
`
`

`
`6,061 ,692
`
`5
`Brief Summary and Objects of the Invention
`
`The foregoing problems in the prior state of the art have
`been successfully overcome by the present invention, which
`is directed to configuration, administration, and operation of
`an information server. Various aspects of the present inven-
`tion dramatically reduce the administrative burden and asso-
`ciated overhead. The present invention reduces the amount
`of information that must be maintained in memory and on
`disk while, simultaneously, eliminating the need to parse
`text-based INT files. The invention reduces the burden of
`administering and maintaining an information server and
`eliminates maintenance errors by reducing the amount of
`data that needs to be stored to configure and maintain an
`information server. The present invention implements a full
`complement of security mechanisms that allow wide [lex-
`ibility in granting and controlling access to both the infor-
`mation objects provided by the information server and to the
`configuration information. Mechanisms are also imple-
`mented that allow simultaneous administration by multiple
`administrators. The invention also implements mechanisms
`to allow for true remote administration such that the infor-
`mation server may be administered from any desired loca-
`tion.
`
`I0
`
`15
`
`6
`chical database containing configuration information. Thus,
`configuration information relating to the portion of the
`information server that provides http services may be stored
`in a hierarchical location that corresponds to the http con-
`stituent name. In addition, configuration information relat-
`ing to any of the other constituent names may be stored in
`an associated hierarchical level. Thus, configuration infor-
`mation relating to subpathl or information objects stored
`along subpathl may be placed in the database at a hierar-
`chical level associated with the subpathl constituent name.
`Information relating to document.htm may be stored in a
`hierarchical level corresponding to the document.htm con-
`stituent name. Using this mechanism, configuration infor-
`mation may be accessed in parallel with the access to the
`information object itself. In other words, in the example just
`given the constituent names may map both to a physical
`location on a storage medium and a location in the database.
`Because the database provides inheritance of properties
`from one level to another, it may not be necessary to have
`a hierarchica} level in the database that corresponds to each
`and every constituent name of a path name. For example, if
`all documents along subpathl had a particular rating, then
`the rating for all documents may be stored at
`a
`level
`corresponding to subpathl and inherited by the subsequent
`levels. If no other properties need to be stored for the
`subsequent
`levels,
`then there is no need for subsequent
`levels in the database. To facilitate such a functionality, the
`present invention allows part of a path to be resolved in the
`database and part of the path to be resolved in other
`locations. In other words, the resolution process picks up
`only those properties from the database that are needed.
`The database may be provided with a programmatic
`interface that provides entry points and functions to manipu-
`late data in the database. Software components wishing to
`access the database may do so through the appropriate
`programmatic function. Functions may be provided to per-
`form any desired manipulations on the data in the database.
`Such functions may include, for example, functions to get
`and set properties at various hierarchical levels, functions to
`determine whether properties reside at a particular level or
`whether they are inherited from other levels, and so forth. If
`care is taken to implement the programmatic interface in a
`manner that is accessible from remote locations, then admin-
`istration of configuration information for the information
`server may be accomplished from any location.
`Furthermore, mechanisms may be put
`in place to allow
`concurrent administration of the database.
`
`The programmatic interface may also be provided with
`functions and mechanisms that allow the database to be
`written to a storage medium, restored from the storage
`medium, synchronized with a copy of the database in
`another location. and so forth. Such functions may allow a
`rich set of administrative tools to be developed that dramati-
`cally reduce the burden and administrative overhead asso-
`ciated with maintaining and configuring the information
`SCIVCI.
`
`In order to reduce the overhead necessary to discover
`changes that are made to the database, the present invention
`may implement a notification mechanism. Software compo-
`nents or other clients may register to be notified when certain
`events occur. For example, a component may register to be
`notified when a change is made to properties in the database.
`Because access to the database is implemented via a pro-
`grammatic interface, when changes are made to the database
`the database may initiate and send notification to Compo-
`nents registered for that event. In addition, the notification
`may identify which properties or locations in the database
`
`An information server constructed according to the
`present invention incorporates a database of configuration
`and other information. This database is separate and distinct
`from the various information objects that can be accessed
`through the information server. The database is used to store
`so called "metadata.“ Metadata, as used herein.
`includes
`configuration metadata (properties and settings which apply
`to the information server), content metadata (properties
`which apply to the information objects served and managed
`by the information server), and application metadata
`(properties stored by the information server application or ‘
`extensions thereto which are used at initialization time or
`run time to affect the application’s behavior). The database
`is preferably arranged in a hierarchical fashion with various
`properties being stored at each of the hierarchical levels.
`One mechanism provided by the present
`invention to
`reduce the amount of data that must be stored and managed
`in order to conligure and administer an information server is
`the use in inheritance for various properties. The present
`invention allows properties at one level to inherit properties
`from a parent or progenitor level. Thus, a property stored at
`a particular level may effectively extend to any and all
`sub-levels. This allows properties to be stored and admin-
`istered from a single iocation. The use of inheritance is one
`mechanism which the present invention utilizes to reduce
`the overall amount of information that must be stored and
`administered for an inforrnation server.
`Inheritance also
`reduces the administrative burden and administrative errors.
`
`30
`
`40
`
`50
`
`Requests received from clients desiring to access infor-
`mation objects managed and administered by the informa-
`tion server typically include a path name having a series of
`individual constituent names. One example of such a path
`name is the familiar Uniform Resonance Locators {URI..s)
`used to access web pages over the Internet. For example, one
`such path name may be written as http:;‘f
`www.mycompanycomfsubpathlidocument.htrn.
`in this
`example. the path has various constituent names such as
`http, www.mycompany.com, subpathl, and document.htm.
`The path name is typically interpreted by an information
`server as a hierarchical path to locate an information object
`on physical storage that should be retrieved and provided to
`the requestor. The present invention extends this concept by
`also mapping all or part of the path name into the hierar-
`
`55
`
`60
`
`65
`
`19
`
`19
`
`

`
`6,061 ,692
`
`7
`have been changed. In this way, a components receiving
`such notification can decide whether it needs to retrieve the
`updated information from the database. Such a mechanism
`eliminates the necessity of parsing a text file to determine
`what information has been changed. Furthermore. such :1
`mechanism eliminates the need to reinitialize an information
`server to cause it to pick up changes that are made.
`Accordingly, it is a primary object ofthe present invention
`to provide a system and method for administration of an
`information server that dramatically reduces the administra-
`tive burden. Another object of the present
`invention is to
`provide an information server that reduces the amount of
`information that needs to be stored to administer an infor-
`mation server. Yet another object of the present invention is
`to provide an information server with an integral database
`that stores configuration information and that can access
`such configuration information while resolving a path name
`from a request received by the information server.
`Additional objects and advantages of the invention will be
`set forth in the description which follows, and in part will be
`obvious from the description, or may be learned by the
`practice of the invention. The objects and advantages of the
`invention may be realized and obtained by means of the
`instruments and combinations particularly pointed ottt in the
`appended claims. These and other objects and features of the “
`present invention will become more fully apparent from the
`following description and appended claims, or may be
`learned by the practice of the invention as set forth herein-
`after.
`
`I0
`
`15
`
`30
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`In order that the manner in which the above-recited and
`other advantages and objects of the invention are obtained,
`a more particular description of the invention brielly
`described above will be rendered by reference to specific ‘
`embodiments thereof which are illustrated in the appended
`drawings. Understanding that
`these drawings depict only
`typical embodiments of the invention and are not therefore
`to be considered limiting of its scope, the invention will be
`described and explained with additional specificity and
`detail
`through the use of the accompanying drawings in
`which:
`
`40
`
`is an example system that provides a suitable
`1
`FIG.
`operating environment for the present invention;
`FIG. 2 is a diagram of an example network with an
`information server;
`FIG. 3 is a high-level architectural diagram of one
`embodiment of the present invention;
`FIG. 4 is a representative example of the hierarchical
`structure of one metabase according to the present invention;
`FIG. 5 illustrates one embodiment of a property suitable
`for use with the present invention;
`FIG. 6 is a high-level diagram illustrating path name
`resolution according to the present invention;
`FIG. 7 is a high-level diagram illustrating inheritance of
`properties according to the present invention;
`FIG. 8 is a diagram illustrating the read and write locking
`mechanisms according to one embodiment of the present
`invention;
`FIGS. 9A and 9B illustrate the processes of granting and
`releasing read locks according to one embodiment of the
`present invention;
`FIGS. 10/\ and 10B illustrate the processes of granting
`and releasing write locks according to one embodiment of
`the present invention;
`
`50
`
`55
`
`60
`
`65
`
`20
`
`8
`FIG. 11 represents the notification mechanism of one
`embodiment of the present invention;
`FIGS. 12A and 12B illustrate the process of registering
`and sending notifications according to one embodiment of
`the present invention;
`FIG. 13 illustrates the storing of security information in
`the metabase of one embodiment of the present invention;
`FIG. 14 illustrates one mechanism for
`reducing the
`amount of information stored in memory; and
`FIG. 15 illustrates the general component object model
`(COM) technology from Microsoft.
`DETAILED DESCRIPTION OF THE
`PREFERIQED EMBODIMEN'l‘S
`
`The invention is described below by using diagrams to
`illustrate either the structure or processing of embodiments
`used to implement the system and method of the present
`invention. Using the diagrams in this manner to present the
`invention should not be construed as limiting of its scope.
`The present invention contemplates both methods and sys-
`tems for the configuration, management, and operation of an
`information server. The embodiments of the present inven-
`tion may comprise a special purpose or general purpose
`computer comprising various computer hardware, as dis-
`cussed in greater detail below.
`Embodiments within the scope of the present invention
`also include computer readable media having executable
`instructions or data fields stored thereon. Such computer
`readable media can be any available media which can be
`accessed by a general purpose or special purpose computer.
`By way of example, and not
`limitation, such computer
`readable media can comprise RAM, ROM, EEPROM,
`CD-ROM or other optical disk storage, magnetic disk stor-
`age or other magnetic storage devices, or any other medium
`which can be used to store the desired executable instruc-
`tions or data fields and which can accessed by a general
`purpose or special purpose computer. Combinations of the
`above should also be included within the scope of computer
`readable media. Executable i

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