`
`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