The present invention is directed to the field of data distribution.
As the security of governments, businesses, other organizations, and individuals is increasingly threatened by various individuals and groups, including terrorists, it has become increasingly important to be able to timely and effectively deliver information useful in preventing future threats, responding to unfolding threats, and investigating those who may have contributed to past threats or may contribute to future threats.
Unfortunately, conventional procedures for delivering such critical information are highly reliant on relatively ineffective, labor-intensive manual processes, such as in-person meetings, person-to-person telephone calls, and paper memoranda. Such manual procedures are highly subject to failure, especially in time-critical situations where particular information must be delivered to particular groups of people.
While some of these processes have been automated to a limited extent, the automated versions are typically embodied in limited and out-of-date custom software running on legacy hardware. In order to obtain useful information from such an automated system, users may have to take the initiative to generate and submit one or more arcane queries, and interpret cryptic query results. Often such action must be taken at computer terminals whose location is fixed in an investigative or law enforcement facility, making such systems difficult or impossible to use by someone currently in a different location.
Accordingly, techniques for timely and effectively distributing information useful in contending with security threats would have significant utility.
I. Introduction
A software facility for timely and effectively distributing information useful in contending with security threats such as acts of terrorism (“the facility”) is described. For example, in some embodiments, the facility delivers information useful in preventing future threats, responding to unfolding threats, and investigating those who may have contributed to past threats or may contribute to future threats. Embodiments of the facility can provide essential, targeted information for dealing with terrorist activities and other security threats to the right individuals and groups, without having to rely on ineffective, labor-intensive legacy manual processes for conveying such information. Embodiments of the facility allow such information to be shared based upon business rules, in some cases between a variety of off-the-shelf and custom software and/or hardware systems.
In some embodiments, the facility enables individuals to receive important, up-to-the-minute security threat information via portable communication devices in locations outside the office, such as locations in which investigations or incident response are taking place. Such information may be provided both synchronously—in response to specific requests from the individual, and asynchronously—based upon a determination by the facility that the information should be provided. This aspect of the facility significantly expands the set of places in and times at which individuals can receive new security threat information, helping these individuals to be better-informed on the whole, and more effective in dealing with security threats. Embodiments of the facility also provide such information to users in their offices or in other fixed locations. The facility allows a number of different agents or other users to share information and jointly work on resolving cases simultaneously, and in real-time. In some embodiments, the facility provides differential levels of access to information by users based upon their identity. In some embodiments, the facility automatically routes and assigns investigative leads and tasks using business rules and workflow processes.
In some embodiments, the facility provides a number of different web-based information access points, or “portals,” for each of a number of different security threat information constituencies. These portals convey different subsets of the available security threat information, based upon the particular needs and trust levels of each constituency. For example, a portal for investigative agents may provide specific sensitive information about ongoing investigations into security threats, while a portal for members of the public may provide information about how to deal with particular health risks. This aspect of the facility helps to provide a rich set of information to each of a number of different constituencies without having to manage the sources of such information separately for each constituency.
In some embodiments, the facility provides a web-based, off-the-shelf application for use by security-tasked government agencies, providing such services as collecting, analyzing, synthesizing, and distributing security threat information. This aspect of the facility helps security agencies to take advantage of the latest commercial software technologies quickly, and at a reasonable cost.
In some embodiments, the application is usable by multiple such agencies to communicate and share information, providing a vehicle for quickly moving important information to the appropriate individuals, even if they are in different organizations.
In some embodiments, the facility provides support for the biometric screening of individuals designated as terrorism suspects. Agents having appropriate authorization may use the facility to select certain individuals identified within the facility for particular treatment when they are identified using biometric screening. For example, biometric screening may be performed by a contractor at airport boarding gates. For each of a number of individuals, authorized agents can use the facility to designate particular treatment of the individual to be undertaken when biometric screening at a boarding gate identifies a passenger as the individual. For example, the facility may be used to designate that certain individuals are to be denied boarding, others are to be detained, and still others are to be unobtrusively reported to have boarded. The facility makes these designations available to the biometric screening contractor, who associates them with biometric profiles usable to identify the individuals during biometric screening. This aspect of the facility assists security agencies in making more effective use of biometric screening operations.
II. System Overview and Overall Architecture
In one embodiment, a computing system with which the facility is integrated can be logically structured as a multi-layered architecture as shown in
The user interface layer 110 may provide a variety of high-level GUI elements such as applets, views, charts and reports that are associated with one or more applications. In one embodiment, various types of clients can be supported via the user interface layer 110. These various types of clients may include traditional connected clients, remote clients, thin clients over an intranet, Java thin clients, ActiveX clients, HTML clients over the Internet, etc.
The object manager layer 120 may be designed to manage one or more sets of business rules or business concepts associated with one or more applications and to provide the interface between the user interface layer 110 and the data manager layer 130. In one embodiment, the business rules or concepts can be represented as business (or “business process”) objects. The business objects may also be designed as configurable software representations of various business rules or concepts, such as accounts, contacts, opportunities, service requests, solutions, suspects, terrorist groups, diseases, medications, and cases, etc.
The data manager layer 130 may be designed to maintain logical views of the underlying data and to allow the object manager to function independently of underlying data structures or tables in which data are stored. In one embodiment, the data manager 130 may also provide certain database query functions such as generation of structure query language (SQL) in real-time to access the data. In one embodiment, the data manager 130 is designed to operate on object definitions in a repository file 160 that define the database schema. The data storage services 170 provide the data storage for the data model associated with one or more applications.
The data exchange layer 140 may be designed to handle the interactions with one or more specific target databases and to provide the interface between the data manager layer 130 and the underlying data sources.
In one embodiment, the system environment illustrated in
In one embodiment, the database 290 is designed to store various types of data including predefined data schema (e.g., table objects, index objects, etc.), repository objects (e.g., business objects and components, view definitions and visibility rules, etc.), and users' and customers' data. Dedicated Web clients and server components, including those that operate in conjunction with the other types of clients, may connect directly to the database 290 and make changes in real-time. In addition, mobile Web clients may download a subset of the server's data to use locally, and periodically synchronize with the server database through the system server to update both the local and the server database.
In some embodiments, various tables included in the database 290 may be logically organized into the following types: data tables, interface tables, and repository tables, etc. In addition, data tables may be used to store user business data, administrative data, seed data, and transaction data, etc. In one embodiment, these data tables may be populated and updated through the various applications and processes. Data tables may also include the base tables and the intersection tables, etc. In one embodiment, base tables may contain columns that are defined and used by the various applications. In one embodiment, the base tables are designed to provide the columns for a business component specified in the table property of that business component. In one embodiment, intersection tables are tables that are used to implement a many-to-many relationship between two business components. They may also hold intersection data columns, which store information pertaining to each association. In one embodiment, intersection tables provide the data structures for association applets.
In one embodiment, interface tables are used to denormalize a group of base tables into a single table that external programs can interface to. In one embodiment, they may be used as a staging area for exporting and importing of data.
In one embodiment, repository tables contain the object definitions that specify one or more applications regarding:
In one embodiment, the file system 295 is a network-accessible directory that can be located on an application server. In one embodiment, the file system 295 stores the physical files created by various applications, such as files created by third-party text editors, and other data that is not stored in the database 290. In one embodiment, physical files stored in the file system 295 can be compressed and stored under various naming conventions. In one embodiment, dedicated Web clients can read and write files directly to and from the file system 295. In one embodiment, mobile Web clients can have a local file system, which they synchronize with the server-based file system 290 periodically. In one embodiment, other types of client such as the wireless clients and the Web clients can access the file system 290 via the system server.
In one embodiment, the enterprise server 250 is a logical grouping of the system servers 255 that share a common table owner or a database, point to a common gateway server, and can be administered as a group using server manager 260. In one embodiment, the connection to the gateway server can be established via TCP/IP. In one embodiment, the enterprise server 250 can be scaled effectively by deploying multiple system servers 255 in the enterprise server 250, thus providing a high degree of scalability in the middle tier of applications.
In one embodiment, the server 255 runs one or multiple server programs. It handles the incoming processing requests and monitors the state of all processes on the server. In one embodiment, server programs are designed and configured to perform one or more specific functions or jobs including importing and exporting data, configuring the database, executing workflow and process automation, processing to support mobile Web clients for data synchronization and replication, and enforcing business rules, etc. In one embodiment, the server 255 can be an NT Service (under Windows NT operating system) or a daemon (e.g., a background shell process) under UNIX operating system. In one embodiment, the server 255 supports both multi-process and multi-threaded components and can operate components in batch, service, and interactive modes.
In one embodiment, the server manager 260 is configured as a utility that allows common control, administration and monitoring across disparate programs for the servers 255 and the enterprise server 250. In one embodiment, the server manager 260 can be used to perform the following tasks: start, stop, pause, and resume servers 255, components, and tasks; monitor status and collect statistics for multiple tasks, components, and servers within an enterprise server; and configure the enterprise server, individual servers, individual components, and tasks, etc.
In one embodiment, the gateway server can be configured as a logical entity that serves as a single entry point for accessing servers. In one embodiment, it can be used to provide enhanced scalability, load balancing and high availability across the enterprise server. In one embodiment, the gateway server may include a name server and a connection brokering component. In one embodiment, the name server is configured to keep track of the parameters associated with the servers. For example, the availability and connectivity information associated with the servers can be stored in the name server. The various components in the system can query the name server for various information regarding the servers' availability and connectivity. In a Windows NT environment, the name server can be run as a NT service. In a UNIX environment, the name server can run as a daemon process. In one embodiment, the connection brokering component is used to perform load balancing functions such as directing client connection requests to an appropriate server (e.g., the least-busy server).
In one embodiment, as illustrated in
In one embodiment, dedicated Web clients (also called connected clients) are connected directly to a database server for data access via a LAN or WAN connection. In one embodiment, these connected or dedicated Web clients do not store data locally. These dedicated Web clients can also access the file system directly. In one embodiment, the user interface, the object manager, and the data manager layers of the multi-layered architecture reside on the dedicated Web client.
In one embodiment, the mobile Web clients are designed and configured for local data access and thus can have their own local database and/or local file system. In one embodiment, mobile Web clients can interact with other components within the system via the gateway server. Through synchronization, the modifications from the local database and the server database can be exchanged.
In one embodiment, a Web client runs in a standard browser format from the client's machine. In one embodiment, the Web client can connect to a system server 255 through a Web server. In one embodiment, the system server 255 is designed and configured to execute business logic and access data from the database 290 and file system 295. In one embodiment, the Web client described herein is designed and configured to operate in an interactive mode. In one embodiment, the interactive Web client framework as described herein utilizes dynamically created objects implemented in JavaScript on the browser side that correspond to objects on the server side. In one embodiment, these dynamically created objects on the browser side may include the current view and its corresponding applets, the current business object and the corresponding business components, etc.
In one embodiment, wireless clients are essentially thin clients enabled on wireless devices. The wireless clients can use a wireless application protocol (WAP)-based user interface to communicate and exchange information/data with the system server.
In one embodiment, the presentation services may be designed and configured to support various types of clients and may provide them with user interface applets, views, charts, and reports, etc. As described above, a large variety of clients may be supported including wireless clients, handheld clients, Web clients, mobile Web clients, and dedicated (connected) clients, etc.
In one embodiment, the application services may include business logic services and database interaction services. In one embodiment, business logic services provide the class and behaviors of business objects and business components. In one embodiment, database interaction services may be designed and configured to take the user interface (UI) request for data from a business component and generate the database commands (e.g., SQL queries) necessary to satisfy the request. For example, the data interaction services may be used to translate a call for data into DBMS-specific SQL statements.
In one embodiment, data storage services may be designed and configured to provide the data storage for the underlying data model which serves as the basis of the various applications. For example, the data model may be designed and configured to support various software products and applications including call center, sales, services, and marketing, etc., as well as various industry vertical products and applications such as eFinance, eInsurance, eCommunications, and eHealthcare, etc.
In one embodiment, the core services are designed and configured to provide the framework in which the applications execute. In one embodiment, the core services may include the following:
In one embodiment, application integration services may be designed and configured to allow the various applications built in accordance with this framework to communicate with the external world. In one embodiment, the various types of services in this logical grouping may be designed and configured to provide for real-time, near-real-time, and batch integration with external applications. For example, these integration services may be used to enable communications between external applications and the internal applications using available methods, technologies, and software products. In one embodiment, application integration services allow the systems or applications to share and replicate data with other external enterprise applications. Accordingly, these services allow a particular application or system to be both a client requesting information and a server having information requested from it.
In one embodiment, business processes services are designed and configured to allow the client to automate business processes through the application. In one embodiment, these various business process services may include the following:
In one embodiment, creation of these business processes can be done through Run-Time tools such as Personalization Designer, Workflow Designer, SmartScript Designer, Assignment Administration Views, the Model Builder, etc.
In one embodiment, integration services may be designed and configured to provide the client with user interface and thin client support. In one embodiment, these may include capabilities for building and maintaining Web-based applications, providing Web support facilities such as user Profile Management, Collaboration Services and Email and Fax services, as well as advanced Smart Scripting, etc.
In one embodiment, design time tools may be designed and configured to provide the services to customize, design, provide integration points, and maintain the application. These various tools provide one common place to define the application.
In one embodiment, admin services are designed and configured to provide one place to monitor and administer the application environment. In one embodiment, these services allow the user to administer the application either through a graphic user interface (GUI) or from a command line.
III. Examples And Additional Details
For illustrative purposes, some embodiments of the software facility are described below in which specific types of security-related information are provided to various specific types of users in various specific ways. However, those skilled in the art will appreciate that the techniques of the invention can be used in a wide variety of other situations, and that the invention is not limited to use with the illustrated types of notification techniques or with the illustrated types of security-related information or users.
The network 520 may use a variety of different networking technologies, including wired, guided or line-of-sight optical, or radio frequency networking. Such networking technologies may be used either homogeneously or heterogeneously. In some embodiments, the network includes the public switched telephone network and/or various wireless voice and/or data networks. Network connections between a client and a server or a pair of clients may be fully-persistent, session-based, or intermittent, such as packet-based.
The server 500 typically includes a processor 501 for executing computer programs and a memory 510 for storing programs and data, including data structures. The memory 510 typically contains synchronization data 512 to be synchronized with corresponding synchronization data on various clients using a synchronization program 511. Memory 510 may also, or alternatively, include messaging data 514 to be exchanged with messaging data on the client devices using a messaging program 513. The client devices typically have analogous, though sometimes differently-implemented versions of the components described in conjunction with the server 500. In addition, they typically have a display device 542 on which they can display information to their users, such as security threat information received on behalf of their users.
While computer systems and other devices configured as described above are typically used to support the operation of the facility, those skilled in the art will appreciate that the facility may be implemented using devices of various types and configurations, and having various components.
Security threat information may be delivered to client devices in a variety of ways, including, but not limited to, client-initiated synchronization with a server, and asynchronous messaging from a server or another client. For client-initiated synchronization, client 540 sends server 500 a synchronization request 531 via the network 520. The synchronization request 531 requests that new synchronization data 512 on the server designated for receipt on the client be delivered to the client. The synchronization request may also include new synchronization data 532 on the client designated for receipt on the server. The server replies to the synchronization request with a synchronization response 532 containing new synchronization data 512 on the server designated for the client, including security threat information. When security threat information contained in a synchronization response is received at client 540, the client displays the security threat information on display device 542.
Additional details about implementing client-initiated synchronization is provided in the following patent applications, each of which is hereby incorporated by reference in its entirety: U.S. patent application Ser. No. 09/820,516, entitled “METHOD AND SYSTEM FOR SERVER SYNCHRONIZATION WITH A COMPUTING DEVICE VIA A COMPANION DEVICE,” filed Mar. 28, 2001; U.S. patent application Ser. No. 09/820,509, entitled “METHOD AND SYSTEM FOR DIRECT SERVER SYNCHRONIZATION WITH A COMPUTING DEVICE,” filed Mar. 28, 2001; U.S. patent application Ser. No. 09/976,400, entitled “METHOD AND SYSTEM FOR TRANSFERRING INFORMATION DURING SERVER SYNCHRONIZATION WITH A COMPUTING DEVICE,” filed Oct. 11, 2001; and U.S. patent application Ser. No. 09/992,511, entitled “METHOD AND SYSTEM FOR CLIENT-BASED OPERATIONS IN SERVER SYNCHRONIZATION WITH A COMPUTING DEVICE,” filed on Nov. 5, 2001.
Security threat information may also be delivered to a client via asynchronous messaging, either from a server or from another client. For example, server 500 may send an asynchronous message 533 containing security threat information to client device 540 on its own initiative. The asynchronous message may be an electronic mail message, an instant message, or any of a number of other types of messages or alerts. Similarly, client 560 may send an asynchronous message 534 containing security threat information to client device 540 on its own initiative. In some embodiments, the facility uses one or more other information delivery technologies besides client-initiated synchronization asynchronous messaging to deliver security threat information to client devices such as mobile client devices. In some embodiments, authentication information is provided by the user to the client device and/or by the client device to the server in order to establish the user's authorization to receive the security threat information, and/or to use as a basis for selecting the security threat information to be provided to the client device.
Embodiments of the facility provide different portals for each of a number of different security threat information constituencies. These constituencies, also called “user classes,” “user roles,” or “responsibilities,” can vary greatly depending upon the needs of the organizations adopting the facility.
In some embodiments, users in the System Administrators constituency work for one of the other constituencies discussed above, and use the portal provided for that other constituency. For example, system administrators working for the Health Professional constituency (i.e., health professional organizations such as the National Institute of Health) use the portal provided by the facility for the Health Professional constituency. In alternative embodiments, the facility provides a separate portal for members of the System Administrators constituency.
In some embodiments, the information displayed by the facility in the constituency-based portals that it provides is provided from a central data store. In various embodiments, this central data store comprises a single database table; multiple related database tables stored in a single database; information periodically retrieved and/or aggregated from multiple computer systems, including different computer systems owned or operated by various organizations and other entities; and/or a virtual data store that facilitates the retrieval of data from outside sources only when the data is needed for display or processing.
In some embodiments, the facility provides a web-based, off-the-shelf application for use by security-tasked government agencies, providing such services as collecting, analyzing, synthesizing, and distributing security threat information. In some, embodiments, the application is usable by multiple such agencies to communicate and share information, providing a vehicle for quickly moving important information to the appropriate individuals, even if they are in different organizations.
Applications provided by the facility may execute on Enterprise Servers 250 shown in
Additional details of providing such an application are contained in the following patent applications, each of which is hereby incorporated by reference in its entirety: U.S. patent application Ser. No. 09/969,856, entitled “METHOD, APPARATUS, AND SYSTEM FOR IMPLEMENTING A FRAMEWORK TO SUPPORT A WEB-BASED APPLICATION,” filed Sep. 29, 2001; and U.S. patent application Ser. No. 09/967,760, entitled “COMPUTING SYSTEM AND METHOD TO PERFORM RUN-TIME EXTENSION FOR WORLD WIDE WEB APPLICATION,” filed Sep. 28, 2001.
In some embodiments, the facility provides support for the biometric screening of individuals designated as terrorism suspects. Agents having appropriate authorization may use the facility to select certain individuals identified within the facility for particular treatment when they are identified using biometric screening. For example, biometric screening may be performed by a contractor at airport boarding gates. For each of a number of individuals, authorized agents can use the facility to designate particular treatment of the individual to be undertaken when biometric screening at a boarding gate identifies a passenger as the individual. For example, the facility may be used to designate that certain individuals are to be denied boarding, others are to be detained, and still others are to be unobtrusively reported to have boarded. The facility makes these designations available to the biometric screening contractor, who associates them with biometric profiles usable to identify the individuals during biometric screening.
The biometric screening server 1130 maintains identity profiles 1131 that indicate, for each of a number of individuals of interest, data comprising a biometric profile of that individual. Each biometric profile contains data that may be used to identify the corresponding individual based upon one or more different kinds of biometric traits, such as retinal structure, fingerprints, voiceprints, gross structural dimension ratios, etc.
Based upon the information received in identity-based action list update 1121, the biometric screening server 1130 uses its identity profiles 1131 to generate a biometric profile-based action list update 1141 in which the action specified in identity-based action list update 1121 is designating for the biometric profile of each individual specified in the identity-based action list update. The biometric screening server 1130 distributes the biometric profile-based action list update 1141 to each of a number of biometric screening stations 1150. These biometric screening stations may be located in a wide variety of locations where there is an opportunity to subject people to biometric screening, such as airports, national borders, places of business, the sites of large gatherings such as sporting events, etc. The biometric screening stations 1150 use the biometric profile-based action list update 1141 to update their biometric profile-based action lists, 1151, which designates for each of a number of biometric profiles the action to be taken if an individual matching that biometric profile is screened at the biometric screening station.
IV. Conclusion
From the foregoing it will be appreciated that, although specific embodiments have been described herein for purposes of illustration, various modifications may be made without deviating from the spirit and scope of the invention. Accordingly, the invention is not limited except as by the appended claims and the elements recited therein. In addition, while certain aspects of the invention are presented below in certain claim forms, the inventors contemplate the various aspects of the invention in any available claim form. For example, while only some aspects of the invention may currently be recited as being embodied in a computer-readable medium, other aspects may likewise be so embodied.
This application claims the benefit of provisional U.S. Patent Application No. 60/392,719, filed Jun. 27, 2002, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60392719 | Jun 2002 | US |