`
`a2) United States Patent
`US 7,356,771 B2
`(10) Patent No.:
`
` Paulet al. (45) Date of Patent: Apr.8, 2008
`
`
`(54) ADAPTIVE CONTENT PLATFORM AND
`METHOD OF USING SAME
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`seccceccessee 707/10
`6/2002 Stempet al.
`6,401,094 B1*
`Inventors: GaryZakonLecingtonMA(US)
`(75)
`6,816,904 B1* 11/2004 Ludwig et al... 709/226
`43) Assionce: O
`Ww: hth
`MA ,
`2002/0083124 AL*
`6/2002 Knox et al. vccsccccsscees 709/203
`(73)
`Assignee:
`Openpages, Waltham,
`(US)
`
`(*) Notice:—Subjectto any disclaimer, the term ofthis 2002/0152286 Al* 10/2002 Peddu et al. «0... 709/219
`patent is extended or adjusted under 35
`2003/0023953 AL*
`1/2003 Lucassen et al. sess 717/106
`USC. 154(b) by 602 days.
`2003/0046201 AL*
`3/2003 Cheyer veces 705/35
`(21) Appl. No.: 10/256,613
`2003/0105644 AL*
`6/2003 Alii et al. cesses 705/1
`°
`2003/0222906 AL* 12/2003 Fishet al. ccccccsees 345/744
`Sep. 26, 2002
`2006/0074727 AL*
`4/2006 Briere osc 705/8
`
`Filed:
`
`(22)
`
`(65)
`
`Prior Publication Data
`
`US 2004/0010796 Al
`
`.
`Po
`cited by examiner
`Primary Examiner—William Thomson
`Related U.S. Application Data
`(60) Provisional application No. 60/394,441, filed on Jul.—488is¢ant Examiner—Charles E Anya oo,
`
`9, 2002.
`(74) Attorney, Agent, or Firm—Wilmer Cutler Pickering
`Hale & Dorr LLP
`
`Jan. 15, 2004
`
`(51)
`
`Int. Cl.
`(2006.01)
`GO6F 3/00
`(2006.01)
`GO06F 7/00
`(2006.01)
`GO6F 9/44
`(52) US. Che vecccsscesseeeeeeeeee 715/744: 707/3; 715/762;
`;
`; 717/100
`719/311
`(58) Field of Classification Search
`719/328-332, 318; 709/201-207, 217-219;
`707/110, 102, 201-206; 715/501.1, 733,
`715/734, 738, 740-753, 513, 762, 763; 726/1-21,
`726/27-30; 705/19; 717/100-105
`See application file for complete search history.
`
`(57)
`
`ABSTRACT
`
`Anadaptive content platform includes one or more content-
`enabled, dependent applications, each of which includes a
`user interface and business logic. A services layer, which is
`interfaced with the dependent applications and a software
`infrastructure, provides one or moreservices that are usable
`by the dependent applications.
`
`146 Claims, 8 Drawing Sheets
`
`00
`
`providing one or more content-enabled,
`dependantapplications, each of which includes
`a user interface and business logic
`
`providing a services layer, which is interfaced
`with the one or more content-enabkd
`dependant applications and provides one or
`more services that are usable by the content-
`enabled, dependant applications.
`
`interfacing the services layer with a software
`infrastructure
`
`one ot more databases
`
`interfacing a data layer with the sofware
`infrastructure, wherein the data layer mcludes
`
`Google Exhibit 1040
`Google v. VirtaMove
`
`Google Exhibit 1040
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 1 of 8
`
`US 7,356,771 B2
`
`8e
`
`Ov
`
`sJEMIJOS Jahe|
`
`+P
`
`yuepuscdepul
`
`uojeaydde
`
`
`
`eoeUeyulJesn
`
`
`
`olBo]sssuisng
`
`|sovues
`
`Z8dlAles
`
`or
`
`J@SMOlgGem
`
`
`
`JAP]JOAIBSGoM
`
`uoyeodde
`
`uoneoldde
`
`juepuedap
`
`Otvbch
`
`quepuedsp
`
`juepuedep
`
`uojeojdde
`
`
`
`SoeVoyurJesn
`
`
`
`alboyssaulsng
`
`gl
`
`0z
`
`ve
`
`Zeoe8%|sa1nes
`
`€BOIAIOS
`
`SedlAles
`
`
`
`Jae]eyep
`
`1aA2e|SO
`
`|“Bld
`
`SINJONMYSCILU!
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 2 of 8
`
`US 7,356,771 B2
`
`
`
`Alousoda suonesidde
`BolasUdJeasaolas
`
`
`
`dnoi6juswebeuew}Ue}U00
`
`
`yuepuedep0}
`
`Z‘bd
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 3 of 8
`
`US 7,356,771 B2
`
`Jasn suoneoydde
`QdlAJesUOeoyjOUBDIAIaSBdIAIOSMOUYYIOM
`
`
`
`
`
`juepuadapo}
`
`jusweBbeuew
`
`
`
`pues}usAeuoeojusyNepue
`
`
`
`dnoi6uonesogeljoopueMOYOM
`
`€‘Bly
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 4 of 8
`
`US 7,356,771 B2
`
`
`
`suoneoiddejuepusdep0}
`
`
`
`
`
`uones6ajuldopsepBurjpueyjus}Uu09
`
`
`BlaseovuesWodu!BOIAIOS
`
`
`
`dnoJ6uonedsojU9]U09Jepow-njnw
`
`pueuolewojsue.y
`
`p‘Big
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 5 of 8
`
`US 7,356,771 B2
`
`oe}s suoneaydde
`
`
`aolesBurysigndSOIAIaS
`
`dnoi6juswAo|dapjauueyo-)jnuw
`
`
`aiueuApBuiysijqnd
`
`juepuedapo}
`
`g‘bid
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 6 of 8
`
`US 7,356,771 B2
`
`‘zoe
`
`POE
`
`OLe
`
`9“bid
`
`/
`
`
`
`sake]Sed|AJOsS
`
`juepuadap
`
`uojeojdde
`
`uoneondde|<yuepuedep
`
`oO
`
`o
`oy
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 7 of 8
`
`US 7,356,771 B2
`
`
`
`eSursnsuonestddeyuepusdapwiaisya
`
`
`
`
`
`
`
`ay)Ysnompayeaolaresaytoadssisenbor
`
`
`
`
`
`
`
`0}pawissesovpiojurSunuuvsBoiduoyeoydde
`
`
`
`
`
`
`
`QOIAIOSIBY)
`
`
`
`ZBly
`
`
`
`yom®WIMsadtaapSurNdur0opuodaspueisIT]al]SurjIaUMOIIJUI
`
`
`
`
`
`ase
`
`SAaSEQEIEPSIOJO90
`
`
`
`
`
`
`
`dorunueisoidvoteatyddeanbrunesuusisse
`
`
`
`‘SQOTAIASOIOUIIO9UOSY}JOYoRs0}odeIAWUT
`
`
`
`SOPHOI9AR]IEPsy]Waray‘aImONseIU
`
`
`
`
`
`9SE
`
`
`
`
`
`BIUMFOSIY}TIMISAL]eyepwBuroepiayu
`
`
`
`
`
`-juaquosayyAqatqesnareIVY}sad1Atas
`
`
`
`
`
`suotjeorddeyuepusdap‘payqeua
`
`
`
`SIOULIOsuoseptaoldDARTSadTAIASat]WloJeyM
`
`
`
`
`
`
`
`‘SINPTUISEITMaIVMypos&puesucyeordde
`
`
`
`OIZO]ssoutsng
`
`SE
`
`ALOSUUIAPOOKJIOIUTSTYTJaAv]soolAIase‘soraap
`
`
`SuyndiossjOurd1eWO“SimjnoaxKa
`
`
`
`‘suoneatiddeyuepuodap“payqeus-jusyu0ss10ur
`
`
`
`Ioduo‘aolAapBuyndiuospeso]eUO“sUyNDaxa
`
`yuepuadappayqeis-juayWO09sIOTWJO
`
`
`
`
`pleJ0RpJayUIJosn&sapNjouryoryMJoyoes
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 8, 2008
`
`Sheet 8 of 8
`
`US 7,356,771 B2
`
`
`
`P2IdBpIOPSTYOM“IOAT]SAdTAIaseBSuIpLaoid
`
`
`
`PAQeUd-JUI]U0dSIOU!JOSUOY}TIA
`
`
`
`
`
`Iouosapraoidpuesuoneoyddeyuepuadap
`
`
`
`-JU9}U09ayyAQa|qESNareyLY]SITAIAsSaIOUL
`
`
`
`
`
`
`
`
`
`‘suoneortddeyuepuadap‘payqeua
`
`
`
`
`
`STEMIOS&UNAIAP]SOOTAIASBU}BuTOepIIIUI
`
`dINjONLseIyUT
`
`
`
`SIEMJOSayyTIMJsAey]VyepevSuyepIoNN
`
`
`
`sopnyout1aAe]eLEpay}Waray‘oanjonyseryut
`
`
`
`
`
`SASEQEIEPS1010uO
`
`gBig
`
`
`
`
`
`d1BO]SsauisnqpuredoejJayUIIssnB
`
`
`
`
`
`
`
`
`
`SapnypoulYornJoyova‘suoyeorddeyuepusdep
`
`
`
`‘parqeua-jua}uoOsalow!JoauSurpraoid
`
`°o
`
`Ot
`
`
`
`
`US 7,356,771 B2
`
`1
`ADAPTIVE CONTENT PLATFORM AND
`METHOD OF USING SAME
`
`RELATED APPLICATIONS
`
`This application claims the priority of: U.S. Provisional
`Patent Application No. 60/394,441, entitled “Adaptive Con-
`tent Platform”, and filed on Jul. 9, 2002.
`
`BACKGROUND
`
`This invention relates to software development, and more
`particularly to software developmentplatforms.
`For a suite of applications developed for a common
`software platform (e.g., an application server platform), each
`application within the suite typically includes a group of
`services (e.g., content management services, workflowser-
`vices, publishing services, search and query services) that
`are common amongst the applications in the suite.
`Asthe software platform does not allow the services of
`one application to be shared by another, these services must
`be coded for and included in each application written for the
`software platform, even though multiple applications use
`commonservices.
`
`SUMMARY
`
`According to an aspect of this invention, an adaptive
`content platform includes one or more content-enabled,
`dependent applications (thus forming an application layer),
`each of which includes a user interface and business logic.
`A services layer, which is interfaced with the content-
`enabled dependentapplications and a software infrastructure
`(e.g., an application server), provides one or more services
`that are usable by the content-enabled, dependent applica-
`tions.
`
`One or more of the following features may be included.
`The services layer includes a unique application program-
`ming interface for each of the one or moreservices, such that
`dependent applications using a specific service make
`requests through the application programming interface
`assigned to that service.
`The services include a content managementservice (for
`storing and managing files), which includes: a repository
`service for storing files; and a search service for allowing
`users to search files stored by the repository service, for
`example.
`The services also include a workflow and collaboration
`
`service (for managing projects and users), which includes: a
`workflow service for managing the workflow of files; a user
`management and authentication service for managing the
`users and user groups; and an events and notification service
`for managing and broadcasting notifications to the users that
`were generated by the services, for example.
`Additionally, the services include a multi-modal content
`creation service (for manual creation and automated impor-
`tation and conversion offiles), which includes: a transfor-
`mation and content handling service for converting the
`formats of files; a desktop integration service for manual
`contribution of content; and an import servicefor facilitating
`file importation from external systems, for example.
`The services further include a multi-channel deployment
`service (for publishing files to one or more publishing
`channels), which includes: a publishing service for publish-
`ing files to one or more publishing channels (such as a web
`site, an email broadcast, a wireless broadcast, a syndication
`
`10
`
`15
`
`20
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`stream, or a printed publication, for example); a dynamic
`publishing service; and a static publishing service,
`for
`example.
`A data layer is interfaced with the software infrastructure,
`such that the data layer includes one or more databases.
`The above-described adaptive content platform may be
`implemented in a distributed computing system, in that a
`first
`(or local) computing device executes the content-
`enabled, dependent applications, and a second (or remote)
`computing device executes the services layer. This second
`computer may be a web server.
`In a distributed computing system, the first and second
`computing devices are interconnected by a network, such as
`a local area network,
`the Internet, or an intranet,
`for
`example.
`The above-described adaptive content platform and dis-
`tributed computing system may be implemented as a method
`or a sequence of instructions executed by a processor.
`One or more advantages can be provided from the above.
`By providing the programmer with a commonset of reus-
`able services, applications are no longer required to include
`stand-alone services. Since these applications are not
`required to include services, application development
`is
`significantly accelerated and deploymentis simplified. Addi-
`tionally, by using a commonset of services, compatibility
`issues are minimized. Further, as applications share a com-
`monset of services, application size is reduced. In addition,
`by separating an application’s services from the applica-
`tion’s business logic/user interface, distributed computingis
`possible, leading to superior scalability and availability.
`The details of one or more embodiments of the invention
`are set forth in the accompanying drawings and the descrip-
`tion below. Other features, objects, and advantages of the
`invention will be apparent from the description and draw-
`ings, and from the claims.
`
`DESCRIPTION OF DRAWINGS
`
`FIG. 1 is a block diagram of an adaptive content platform;
`FIG. 2 is a block diagram of a content management group
`of the adaptive content platform;
`FIG. 3 is a block diagram of a workflow and collaboration
`group of the adaptive content platform;
`FIG. 4 is a block diagram of a multi-modal content
`creation group of the adaptive content platform;
`FIG. 5 is a block diagram of a multi-channel deployment
`group of the adaptive content platform;
`FIG. 6 is a block diagram the adaptive content platform
`incorporated into a distributed computing system;
`FIG.7 is a flow chart of a distributed computing method;
`and
`
`FIG.8 is a flow chart of a multi-tier software development
`method.
`
`DETAILED DESCRIPTION
`
`Referring to FIG. 1, an adaptive content platform 10
`includes one or more dependent applications 12, 14, 16, each
`of which includes a user interface (e.g., user interface 18)
`and business logic (e.g., business logic 20). This group of
`dependent applications may be referred to as an application
`layer 22. Each user interface 18 allows a user of the
`dependent application to access and use the functionality of
`the dependent application. Business logic 20 performs the
`functions native to the dependent application. Note that
`while dependentapplications typically include some form of
`user interface, this is not required.
`
`
`
`US 7,356,771 B2
`
`3
`the dependent applications 12, 14, 16, are
`Typically,
`content-cnabled dependent applications, in that they manage
`and process content (e.g., documents, images, audio clips,
`video clips). Examples of content-enabled applications are
`web content management systems, shareholder and regula-
`tory reporting applications, corporate marketing and com-
`munications systems, newspaper publishing systems, and so
`forth. Content-enabled applications typically include a com-
`bination of content management, workflow management,
`and publishing capabilities.
`Adaptive content platform 10 is a multi-tiered software
`architecture that includes a services layer 24 for interfacing
`the application layer 22 and a software infrastructure 26
`(e.g., an application server). Examples of an application
`server are BEA Weblogic™, and IBM Websphere™, both of
`which implement the Java™ 2 Enterprise Edition standard
`(J2EE).
`Services layer 24 provides a group of services 28, 30, 32,
`which are available for use by dependent applications 12,
`14, 16. Examples of these services include content manage-
`mentservices, search services, and file conversion services,
`for example. These services, which will be discussed below
`in greater detail, are shared services common to the depen-
`dent applications; as opposed to each dependent applica-
`tion’s native functions, which are handled by the dependent
`application’s business logic.
`Dependent applications 12, 14, 16 maybe J2EE (“Java™
`2 Enterprise Edition”) compliant dependentapplications that
`adhere to v1.3 standards and are compatible with and run on
`a Java™ 2 Enterprise Edition application server.
`A data layer 34 is interfaced to the software infrastructure
`26, and provides data services for platform 10. Data layer 34
`may provide access to database servers 36, such as Oracle™,
`IBM DB2™, and Microsoft SQL Server™. Further, data
`layer 34 may provide access to file servers 38, such as
`Microsoft Windows 2000 Servers™, Microsoft Windows
`NT Servers™, and Unix Servers™. Additionally, data layer
`34 may allow access to legacy systems 40 (1.e., applications
`and data that have been inherited from languages, platforms,
`and techniques earlier than current technology).
`Data layer 34 is typically interfaced with an operating
`system (OS) layer 42, which includes the operating system
`that manages the above-described layers,
`infrastructures,
`and dependent applications. Examples of compatible oper-
`ating systems are Windows™,Solaris™, and Linux™.
`Typically, a web server layer 44 is interfaced with the
`application layer (i.e., dependent applications 12, 14, 16)
`and allows a user (not shown) to use and access the
`functionality of the individual dependent applications from
`with a web browser46 (e.g., Microsoft Internet Explorer™,
`Netscape Navigator™). Examples of web server layer 44 are
`Microsoft Internet Information Server™, and Apache web
`server™,
`
`By combining the user interface 18 and business logic 20
`of a dependent application 12 with one or more of the
`services 28, 30, 32 offered by the services layer 24, the
`functionality of a “stand-alone” independent application 48
`can be emulated without the application having to include
`dedicated services 50, 52, 54.
`Concerning the services 28, 30, 32, offered by services
`layer 24, these services can typically be loosely described as
`four groups of services, namely: content management;
`workflow and collaboration; multi-modal content creation;
`and multi-channel deployment, each of which will be dis-
`cussed below in greater detail.
`Referring to FIG. 2, the content management group 100,
`which stores and manages files and content used by the
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`adaptive content platform, may include a repository service
`102 and a search service 104.
`
`Repository service 102 works in conjunction with the data
`layer (generally), and the database servers, the file servers,
`and the legacy systems(specifically) to store, organize, and
`managefiles and content (hereinafter “files”).
`Repository service 102 allows for the production, orga-
`nization, and management of numerous content types that
`definethe specific type offiles being produced and managed.
`Additionally, repository service 102 allows users/adminis-
`trators to define numerousproperty fields or meta-datafields
`(e.g., release date, revision number, production date, revi-
`sion date, and approval date, for example) that define and
`refine the files stored by the data layer. Access to thefiles
`managed by repository service 102 can be controlled by
`regulating the users who can view, check out, edit, print, and
`save a particular file, for example. Additionally, the data
`structure in whichthefiles are stored (e.g., the directory tree
`structure) is defined and controlled using repository service
`102. Typically, repository service 102 works in conjunction
`with a relational database, e.g., database 36 (FIG. 1), that is
`accessed through data layer 34 (FIG.1).
`The search service 104 allows a user to search thefiles
`
`stored by the repository service 102. Searches may be
`performedoneither file properties or content. If the files are
`stored in a structured database (as described above), search
`service 104 may be an SQL (“structured query language”)
`database query engine. Alternatively, if the files are stored as
`HTML or XML (“Extensible Markup Language”) based
`documents, search service 104 may use search engine tech-
`nology to generate a list of relevant documents.
`The dependent applications 12, 14, 16 (FIG. 1) described
`above may access each service offered by content manage-
`ment group 100 (e.g., repository service 102 and search
`service 104) by making the appropriate request of and
`establishing a connection through the API (“application
`programming interface’’) assignedto that particular service.
`For example, API 106 is assigned to repository service 102,
`and API 108 is assigned to search service 104. Therefore, if
`a user of a dependent application (e.g., dependent applica-
`tion 12, FIG. 1) wanted to execute a search for a particular
`file, dependent application 12 would make the appropriate
`request from API 108.
`Referring to FIG.3, the workflow and collaboration group
`150, which manages projects and users of the adaptive
`content platform, may include a workflow service 152, a
`user management and authentication service 154, and an
`events and notification service 156.
`The workflow service 152 allows the administrator or user
`
`to control the workflow offiles through the adaptive content
`platform. For example, if a file is produced for publishing
`purposes, that file might need to be approved by a midlevel
`manager prior to it being sent to an upper level manager.
`Further, the upper level manager might have to approve the
`file prior to it being published or otherwise disseminated.
`Therefore, workflow service 152 could mandate thatthe file
`be approved by a midlevel managerprior to it being sent to
`the higher level manager, who approvesit prior to publica-
`tion. Further, workflow service 152 may assign time limits
`for the completion of certain tasks, such as the midlevel or
`upper level review and approval process.
`The user management and authentication service 154
`provides a set of tools to the user/administrator that allows
`them to manage users and user groups. Individual users can
`be produced and deleted using user managementand authen-
`tication service 154. Further, the rights and privileges of
`these individual users also can be controlled and regulated.
`
`
`
`US 7,356,771 B2
`
`5
`these users can be assigned to, moved
`Additionally,
`between, and deleted from various users groups, which are
`also maintained using user management and authentication
`service 154. Further, as rights and privileges can be assigned
`to auser group, by adding an individualuserto a user group,
`the rights or privileges of an individual user can be effi-
`ciently defined.
`The events and notification service 156 allows for the
`delivery of notification events generated by the services
`offered by the applet service layer 24 (FIG. 1). These
`message can be delivered to individual users of the system,
`broadcast to entire user groups, or delivered to the various
`services offered by the applet service layer 24 (FIG.1).
`As above, the dependent applications 12, 14, 16 (FIG. 1)
`described above may access each service offered by work-
`flow and collaboration group 150 (e.g., workflow service
`152, user management and authentication service 154, and
`the events and notification service 156) by making the
`appropriate request of and establishing a connection through
`the API assignedto that particular service. Forthis particular
`group, API 158is assigned to the workflow service 152, API
`160 is assigned to the user management and authentication
`service 154, and API 162 is assigned to the events and
`notification service 156.
`
`the multi-modal content creation
`Referring to FIG. 4,
`group 200, which imports and convertsfiles for the adaptive
`content platform, may include a transformation and content
`handling service 202, an import service 204, and a desktop
`integration service 210.
`The transformation and content handling service 202
`provides file format conversion services, thus allowing the
`user to import files of various types and convert them over
`into a common format (e.g., XML and HTML). Converter
`templates are available for popular applications, such as
`Microsoft Word™, Microsoft Excel™, Adobe PDF™, and
`Microsoft PowerPoint™, for example.
`The import service 204 allows for automated import of
`files from external systems. Import service 204 is configured
`to monitor, on a periodic basis, the files located on a network
`drive, an FTP (“file transfer protocol”) site, and an HTTP
`site. When newfiles are detected on one of these sources, the
`files are automatically imported into the system. Further, if
`a format conversion is required, import service 204 will
`work in conjunction with transformation service 202 to
`import and convert the file.
`The desktop integration service 210 allows content to be
`contributed by users via standard desktop creation tools.
`These tools include the Microsoft Office™ suite, as well as
`Adobe™and Macromedia™ applications. The service uses
`the WEBDAVprotocol (WEB-basedDistributed Authoring
`and Versioning), which is an extension of the HTTPproto-
`col, to communicate with the desktop tools.
`As above, the dependent applications 12, 14, 16 (FIG. 1)
`described above may access each service offered by multi-
`modal content creation group 200 (e.g.,
`transformation
`service 202,
`import service 204, and desktop integration
`service 210) by making the appropriate request of and
`establishing a connection through the API assigned to that
`particular service. For this particular group, API 206 is
`assigned to the transformation service 202, API 208 is
`assigned to the import service 204, and API 212 is assigned
`to the desktop integration service 210.
`Referring to FIG. 5, the multi-channel deployment group
`250, which publishesfiles to one or more publishing chan-
`nels, may include a static publishing service 252, and a
`dynamic publishing service 254.
`
`30
`
`45
`
`6
`The static publishing service 252 allows for proactive
`publishing offiles based on predefined templates. Therefore,
`the structure and format of the file published (and the
`document produced) is defined ahead of time and is not
`varied depending on the content of the document. Addition-
`ally, the content itself is semi-dynamic, in that it changes
`periodically (e.g. a few times a week). An example ofstatic
`documents generated using a static publishing service is a
`newsroom home page of a corporate web site in which one
`hundred press releases are currently being displayed. The
`home page is a collection of one hundred summary links,
`and eachlink leadsto a press release detail page. A corporate
`communications officer can publish the homepage and the
`one hundred detail pages by invoking the static publishing
`service, which merges the appropriate press release content
`with the detail page template to generate HTML. By gen-
`erating the pages using static publishing, the communica-
`tions officer ensures that web site visitors have fast page
`retrieval, since the content is already in HTML format and
`does not need to be regenerated for every website visitor.
`The dynamic publishing service 254 allows for reactive
`publishing of files that are dynamically altered based on
`current conditions, user preferences, and query results, for
`example. In an online auction house that has one-hundred
`items for sale, a dynamic document may be created in
`response to a user query. For example, while one-hundred
`items may be offered, the user (an avid World War II buff)
`may only be interested in those items that relate to World
`WarII. Therefore, the user would enter their search criteria
`and a dynamic document would be generated that includes
`fourteen items, each of whichis related to World War II. This
`dynamically generated list, which itemizes the fourteen
`items, mayalso specify the starting bid, the current bid, and
`the auction ending time for each item. By generating this
`document with dynamic publishing services 254, documents
`can be generated that more accurately reflect current con-
`ditions.
`Regardless of whetherthe static publishing service 252 or
`dynamic publishing service 254 producethefile, the file can
`be published over various channels, such as: a web site; an
`email broadcast; a wireless broadcast; a syndication stream;
`and a printed publication, for example. The file can also be
`published in various formats, such as HTML, XML, and
`PDF, for example.
`For web site publishing, the file being published may be
`posted to a website so that the file is accessible by various
`users and guests. If security or access is a concern, thefile
`may be published on an intranet (which is not remotely
`accessible), or within a restricted access user section of a
`website.
`
`the file can be published as an
`For email broadcasts,
`attachment to an email that is sent out to a distributionlist
`
`of individual users. Alternatively, the file may be converted
`into a format (e.g., ASCII text, and HTML)that is easily
`incorporated into the body of an email.
`For wireless broadcasts, the file can be transmitted to
`users over a wireless network. This file may be text-based
`(such as an email attachmentsent to a wireless email device)
`or multimedia-based (such as a soundfile sent to a cellular
`telephone).
`For syndication streams, the file may be published on data
`streams that are text-based (such as streaming messages),
`audio-based (such as streaming audio), video-based (such as
`streaming video), or multimedia-based (such as streaming
`audio/video), for example.
`For printed publications, the file being published may be
`printed on traditional printing systems (laser printers) and
`
`
`
`US 7,356,771 B2
`
`7
`distributed using traditional distribution paths(e.g., interof-
`fice mail, courier, or the postal service, for example).
`As above, the dependent applications 12, 14, 16 (FIG. 1)
`described above access each service offered by multi-chan-
`nel deployment group 250 (e.g., static publishing service
`252, and dynamic publishing service 254) by making the
`appropriate request of and establishing a connection through
`the API assignedto that particular service. For this particular
`group, API 256 is assigned to the static publishing service
`252, and API 258 is assigned to the dynamic publishing
`service 254.
`
`Referring to FIG. 6, a distributed computing system 300
`is shown which incorporates the adaptive content platform
`described above. Distributed computing
`system 300
`includesa local(orfirst) computing device 302 that executes
`one or more content-enabled dependent applications 12, 14.
`As described above, each of the dependent applications
`includes business logic and a user interface (FIG. 1).
`A storage device 304 stores the individual instruction sets
`and subroutines of dependent applications 12, 14. Storage
`devices 304 may be a hard disk drive, a tape drive, an optical
`drive, a RAID array, a random access memory (RAM), or a
`read-only memory (ROM), for example. Local computing
`device 302 includesat least one processing unit (not shown)
`and main memory system (not shown).
`A remote (or second) computing device 306 (e.g., a web
`server) executes the services layer 24, as described above.
`Typically, services layer 24 is interfaced with a software
`infrastructure (not shown), which is interfaced with a data
`layer (not shown), which is interfaced with an OSlayer (not
`shown).
`A storage device 308 stores the individual instruction sets
`and subroutines of services layer 24 (and any additional
`required layers or infrastructure). Storage device 308 may be
`a hard disk drive, a tape drive, an optical drive, a RAID
`array, a random access memory (RAM), or a read-only
`memory (ROM), for example. Remote computing device
`306 includes at least one processing unit (not shown) and
`main memory system (not shown).
`Local computing device 302 and remote computing
`device 306 are interconnected with a network 310, such as
`a LAN (local area network), WAN (wide area network), the
`Internet, or an intranet, for example.
`While the above-described embodiment discusses the
`
`deployment of the services layer on a single second com-
`puter, other configurations are possible, such as those in
`whicheachservice, or a group of services, is deployed onits
`own dedicated computer.
`While the above-described embodimentdescribes a local
`and a remote computing device,this is not intendedto define
`the physical
`location of either computing device and is
`merely intended to indicate that
`the second computing
`device is remote (1.e., separate) from the first computing
`device.
`While the above-described embodiment discusses the use
`
`of content-cnabled dependent applications, other configura-
`tions are possible, such as data-enabled dependent applica-
`tions (i.e., those designed to manage data, as opposed to
`content).
`While the above-described embodiment specifies a soft-
`ware infrastructure 24 that is an application server, other
`configurations are possible, such as a general-purpose oper-
`ating system (e.g. UNIX, Windows 2000) or a special-
`purpose operating system (e.g. embedded OS,real time OS).
`While the above-described embodiment
`illustrates the
`
`availability of three services and three dependent applica-
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`8
`tions, the actual numberof services and dependent applica-
`tions can be adjusted based on system requirements.
`Referring to FIG. 7, a distributed computing method 350
`is shown. One or more content-enabled, dependent applica-
`tions are executed 352 on a local computing device. Each
`dependent application includesa user interface and business
`logic. A services layer, which is interfaced with the depen-
`dent applications and a software infrastructure, is executed
`354 on a remote computing device. The services layer
`provides one or moreservices that are usable by the content-
`enabled, dependent applications.
`A data layer, which includes one or more databases, is
`interfaced 356 with the software infrastructure. A unique
`application programming interface is assigned 358 to each
`of the services. Dependent applications using a specific
`service make requests through the application programming
`interface assigned to that service.
`The first and second computing devices are intercon-
`nected 360 with a network.
`
`Referring to FIG. 8, a multi-tier software development
`method 400 is shown. One or more content-enabled, depen-
`dent applications are provided 402, each of which includes
`a user interface and business logic. A services layer is
`provided 404, which is interfaced with the one or more
`content-enabled dependent applications and provides one or
`more services that are usable by the content-enabled, depen-
`dent applications. The services layer is interfaced 406 with
`a software infrastructure interfaced 408 with a data layer.
`The data layer includes one or more databases.
`The embodiments described herein are not limited to the
`
`embodiments described above; it may find applicability in
`any computing or processing environment. The embodi-
`ments may be implemented in hardware, software, or a
`combination of the two. For example, the embodiments may
`be implemented using circuitry, such as one or more of
`programmablelogic (e.g., an ASIC), logic gates, a processor,
`and a memory.
`The embodiments may be implemented in computer pro-
`grams executing on programmable computers that each
`includes a processor and a storage medium readable by the
`processor (including volatile and non-volatile memory and/
`or storage elements). Each such program may be imple-
`mented in a high-level procedural or object-oriented pro-
`gramming language to communicate with a computer
`system. However,
`the programs can be implemented in
`assembly or machine language. The language may be a
`compiled or an interpreted lan