Systems and methods for distributing content using attributes

Methods and apparatus for distributing content between fixed and nomadic servers using attributes. Attributes may relate to, inter alia, the type of content, location of a fixed and/or nomadic content server, a vehicle that includes a nomadic server, an ability to use content, a need for content, vehicle owner information, and/or time.

FIELD OF THE INVENTION

Embodiments of the present invention relate to computers, communication equipment, networks, and distributing content (e.g., data, information, electronic files) to content servers (e.g., stationary, mobile, roaming).

BACKGROUND OF THE INVENTION

Many types of vehicles (e.g., plane, car, truck) carry some type of a computer (e.g., processing circuit, server, workstation) that provides content to the occupants of the vehicle. In some cases (e.g., aircraft, trail, bus, maintenance vehicles), continuous communication to provide content to or receive content from the vehicle is not possible; however, content may be provided to the vehicle or received from the vehicle at certain fixed physical locations (e.g., airports, maintenance yards, fueling stations, bus terminals, train stations). Because the physical locations may vary (e.g., different airports, different yards, different fueling stations, different terminals, different stations), content for delivery to the vehicle may need to be distributed to different locations depending on the route or schedule of the vehicle. Further, content may need to be delivered to a location prior to arrival of the vehicle, so that the content may be delivered to the vehicle during the limited time that the vehicle will be at the physical location.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

A computer (e.g., processing circuit, server, workstation) may store, provide (e.g., transmit, transfer), and/or receive content. A computer that stores, provides, and/or receives content is herein referred to as a content server. A content server may communicate (e.g., provide, transmit, receive) content via a conventional network (e.g., IEEE 802.3 Ethernet, IEEE 802.11 wireless LAN, IEEE 802.13 100Baxe-X, IEEE 802.16 WiMax, Bluetooth, optical). A computer may include any conventional device (e.g., base station, access point, router, hub, switch, application software) for communicating content. A communicating device may include any conventional transducer (e.g., pressure, altitude, fuel gauge, temperature, stress, strain gauge, rpm). A content server may receive content from storage media (e.g., disk drive, USB drive, CD ROM).

A vehicle may include a content server. A content server on (e.g., in, a part of, contained within, position on, located in) a vehicle is herein referred to as a nomadic content server or a nomadic server. A content server that does not move or moves infrequently is referred to herein as a fixed content server, fixed server, stationary content server, stationary server, infrastructure content server, and/or infrastructure server. The phrase content server without the modifiers fixed, stationary, infrastructure, and/or nomadic refer to both fixed and nomadic content servers.

A nomadic content server may provide content to occupants of the vehicle. A nomadic content server may receive content from occupants of the vehicle, people who provide services to a vehicle (e.g., maintenance, loading, crew, owner, operator), and/or the vehicle itself (e.g., operating information, vehicle performance, vehicle system operation). A vehicle may provide content to a nomadic content server via transducers.

Content may include binary data, analog data, numbers, signals, characters, or any convention data and/or information. Content may be stored, subdivided, and/or organized in any conventional manner including as raw data (e.g., as received without being processed or organized), media (e.g., JPG, MPEG), documents, files, filing systems (e.g., hierarchical, flat), packets, and/or databases. Content may be used for any purpose including to entertain ((e.g., movies, news, sports, documentaries, advertising, music), create a vehicle maintenance record, provide a record of vehicle operation, provide instructions to operators of the vehicle, and provide information about a destination of the vehicle.

In an implementation, content is organized as packages. A package contains a unit of content. A unit of content may include data for a movie, a musical number, a maintenance record, an equipment log, a crew training segment, a passenger manifest, and a baggage inventory. A package may be subdivided into one or more package items. A package item may include a document, a file, a packet, data, and/or content plus associated metadata organized in any conventional manner. A package item may include a file that contains all or a portion of the data for the unit of content. A package may include one or more package items. A package may further include metadata that describes the package. Package items of a package may be individually distributed through a network and reassembled at a content server to form the package. Package items may be numbered to show a sequence of a package item with respect to other package items. A package may include indicia of the total number of package items of the package. A content server may detect the arrival of each package item. A content server may detect the arrival of all package items.

Content may be distributed (e.g., sent, transmitted, provided, received, accepted transferred) via a network. Content may be distributed between content servers. For example, a content server may receive content from a content provider (e.g., movie studios, radio stations, content aggregators, vehicle owners, vehicle operators, destination operators, vehicle). One content server may provide content to another content server. One content server may provide content to multiple other content servers. A content server may provide content to a content consumer (e.g., vehicle occupant, vehicle owners, vehicle operators, destination operators, vehicle).

Content may be provided to a content server via a wired connection. A content server may receive content from storage media via a wired connection. A nomadic content server may receive content prior to installation in a vehicle. For example, a conventional personal computer (e.g., desk top, mobile) may function as a nomadic content server that receives content in one location, is transported to a vehicle, and operates as a nomadic content server once positioned in the vehicle. Prior to positioning the computer in a vehicle, the computer may receive content and attributes via a wired network, a wireless network, or a conventional bus (e.g., USB, 1394). Content and attributes may be stored on the computer hard disk drive. The computer may be physically transported to the vehicle thereby transporting the content stored on the computer hard drive. Such a nomadic content server is referred to as a “content mule.” A content mule may be used in areas where using a network connection (e.g., wired, wireless) between a fixed content server and a nomadic content server positioned in a vehicle is expensive. The mule may receive content in an environment where transfer is inexpensive, then physically transported to the vehicle where the mule performs the functions of a nomadic content server.

While in route, a nomadic server may be limited (e.g., physical location, duration) in the manner in which the nomadic server may distribute content. For example, while in route, a nomadic content server may be disconnected from the network of fixed content servers and may not send content to or receive content from fixed content servers. While in route, a nomadic content server may be distant from other nomadic content servers thereby precluding establishing communication with other nomadic servers to distribute content. While in route, a nomadic content server may provide information to content consumers (e.g., extraction) and receive content from content providers (e.g., insertion) that are in the vehicle that carries the nomadic server. A nomadic server may establish communication with a network of fixed content servers or other nomadic servers at locations (e.g., airports, maintenance yards, stations, rest stops, fueling stations, bus terminals, train stations) along a route. The time that a nomadic server stops at a location where it may communicate with other content servers may be brief, so even when a nomadic server can establish a connection with other content servers, the duration of the communication may be limited.

Other factors may limit distribution of content to and from a nomadic server. The length of a route traveled by a nomadic server may be long (e.g., worldwide) and the locations where a nomadic server may stop en route to establish communication with other content servers may be separated by large distances. The network between fixed servers at the various locations where the nomadic server may stop may be slow (e.g., low data transfer rate), intermittent (e.g., unreliable), and/or costly to use. Furthermore, the amount (e.g., bytes) of content for transfer to and/or from a nomadic content server may be large (e.g., gigabytes, megabytes) such that content may not transit the network to a content server at a location if sent just prior to the arrival of the nomadic content server at the location.

Considering the limitations of providing content to and receiving content from a nomadic server, content may need to propagate through a network of content servers so that content intended for a specific nomadic server arrives at a location where the nomadic server will stop before the arrival time of the nomadic server at the location. Distribution of content through a network and between content servers may be accomplished in accordance with a schedule of the movements of nomadic servers. Distribution of content to a location where a nomadic server may stop and may establish communication with other content server may be accomplished by distributing content in accordance with one or more attributes. An attribute may incorporate the schedule and/or locations of movement of a nomadic server. An attribute may include a characteristic (e.g., quality, description) of a vehicle that carries a nomadic server.

For example referring toFIG. 1, system100for distributing content between content servers may include AirSync Server110; fixed content servers140,142,144,146, and148; one or more content provider130; and one or more schedule provider120; network170; and nomadic server150.

An AirSync Server includes one or more servers and software applications deployed on content servers and communication equipment for provisioning the network, provisioning users, monitoring network performance, providing quality of service in accordance with provisioning, managing throughput, and measuring performance of system100and components of system100. An AirSync Server may detect whether a server is connected to the network. An AirSync Server may detect whether a content server is connected to the network.

Content servers140,142,144,146,148, and150may perform the functions of a content server as discussed above. Content server142,144, and146are positioned at distinct physical location nos. 1, 2, and N respectively. One or more contents servers may be positioned at each physical location.

Nomadic server150may travel a route that includes stops at locations 1, 2 and N. A nomadic server need not stop at each location where a fixed server of a network of servers is located. The locations where a nomadic server stops may correspond to a schedule of transit such as an airline, train, or bus schedule. Nomadic server150may establish communication with content servers142,144, and146via communication link160,162, and164respectively at locations 1, 2 and N respectively. A nomadic server may establish communication with a content server while the nomadic server is positioned at the physical location of the content server.

A medium of communication may determine the distance between a nomadic server and a fixed server for establishing communication. Communication over wired connection may require a wire to extend directly from the physical location to the nomadic server. A wireless connection may permit communication at a greater distance. For example, a wired connection may require an airplane to be positioned at a gate of an airport to establish the connection. A wireless connection may permit communication with the airplane after landing, but prior to arriving at a gate. While a nomadic server is in transit between physical locations, the nomadic server may be out of range of all fixed server such that the nomadic server cannot communicate with any fixed server.

A schedule provider provides a schedule. A schedule may include timetable of the movements of one or more vehicles with their nomadic content servers. A schedule may include a time, a date, and a corresponding predicted location of a nomadic server. A time and date may indicate a time and date of arrival and/or departure of a nomadic server to and/or from a location. A schedule may provide an estimated duration that a nomadic server may stop at a location. A duration of a stop of a nomadic server at a location may be an indication of a duration of communication between a nomadic server and a fixed server at the location. A schedule provider may provide a schedule to content server.

Attributes associated with a content server and/or content may be selected in accordance with a schedule (e.g., itinerary). A value of an attribute may be set in accordance with a schedule. Content may be distributed to a fixed content server at a location in advance of the arrive of a nomadic content server by using attributes and attribute values set in accordance with a schedule. Attributes and attribute values may be set so that content is distributed to a content server at a physical location in advance of the arrival of a nomadic server.

A content provider provides content for distribution between and/or to content servers. Content provided by a content provider may be distributed in accordance with one or more attributes as discussed herein. A content provider may develop content using a system that is external to the network. A content provider may provide content to the network and content servers of the network via a process referred to below as insertion. A content provider may insert content and/or attributes for content into a network for distribution. A content provider may cooperate with a manager of a network to configure attributes for routing content.

In an implementation, schedule provider120provides a schedule to content server148. The schedule provided by schedule provider120indicates date 1 and time 1 for arrival of nomadic server150at location no. 1, date 2 and time 2 for arrival of nomadic server150at location no. 2, and date N and time N for arrival of nomadic server150at location no. N. Duration 1, 2, and N, whether provided in the schedule or calculated from an arrival and departure time, provides a predicted duration of the stop of nomadic server at locations nos. 1, 2, and N respectively. A schedule may further provide information as to a predicted position (e.g., gate, bay) of nomadic server150at a location. Attributes associated with content may be configured in accordance with the schedule, predicted duration of a stop, and an amount (e.g., bytes) of content for delivery to progressively deliver content to nomadic server150as it arrives at location nos. 1, 2, and N. Attribute values of content may be configured to deliver an amount of data at each stop along the route of nomadic server150.

In this example, nomadic server150may arrives at location no. 1 at date 1 and time 1. Nomadic server150remains at location no. 1 for duration 1. During duration 1, nomadic server establishes communication using link160with content server142and sends and/or receives content. After leaving location no. 1 and while en route to location no. 2, nomadic server is disconnected from content servers140,142,144,146, and148. Nomadic server150arrives at location no. 2 on date 2 at time 2 and establishes communication with content server144via link162during duration 2 to send and receive content. Nomadic server continues along its route, stopping at various locations to send and receive content, until it arrives at location no. N. At location no. N, nomadic server150communicates with content server146to send and receive content via link164for duration N.

Content may be distributed to content servers142,144, and146for delivery to nomadic server150prior to the arrival of nomadic server150at a location. Because the amount of content for delivery to nomadic server150may be too much for transfer at a single location, content may be delivered to content servers along the route of nomadic content server150for incremental delivery to nomadic server150at each location. Content may further be distributed for timely delivery to a nomadic server. For example, while nomadic server150is in transit from location no. 1 to location no. 2, it does not receive content. A content provider may provide content (e.g., news) that occurred while nomadic content server150was travelling from location no. 1 to location no. 2. The timely content may be provided to content server144prior to arrival of nomadic server150at location no. 2. Upon arrival at location no. 2, nomadic server150receives the timely content for use in the vehicle that transports nomadic server150. In such a situation, a content provider and/or a manager of the network may set the attributes of content for delivery to a specific fixed content server (e.g.,144) prior to the predicted arrival time of nomadic server150.

In another example, all content that may need to be delivered to nomadic content server150is routed to content servers142,144, and146. Because content servers142,144, and146store all data for delivery to nomadic server150, a change in the duration that nomadic server150is at a physical location may be compensated for by the other fixed servers. For example, if duration 1 is larger than expected due to a delay, the content servers144or146do not need to deliver as much content. In another example, if duration 2 is short or zero due to an infrastructure issue such as equipment failure or excessive cost to establish link162, content servers142and146may make up for providing little or no content at location no. 2. Nomadic content server150may track the amount of content received and report to a fixed server the remaining package items that should be delivered.

As discussed above, distribution of content between content servers may be accomplished using one or more attributes. A fixed content server may include a set of attributes. A set of attributes may include one or more attributes. Each attribute may have one or more values. A nomadic server may include a set of attributes. Content, in particular a package item, may include a set of attributes. A vehicle may include a set of attributes. An attribute of a vehicle may include a characteristic of the vehicle and/or a descriptor associated with a use of the vehicle.

The attributes of a nomadic server may include one or more of the attributes of the vehicle that carries the nomadic server. The attributes of a fixed server may include one or more attributes of the vehicles that carry nomadic content servers that may communicate at some time with the fixed content server. The attributes of a package item may include one or more attributes of the vehicle that may consume the content of the package item. In one implementation, a package item that includes an attribute related to a vehicle may be routed through a network of fixed servers for delivery to a nomadic server that on a vehicle.

As discussed above, a nomadic content server may be positioned on a vehicle. A vehicle may include one or more attributes. An attribute for a vehicle may include a vehicle identification number, an operator identifier, a vehicle owner identifier, and/or a function of a vehicle.

For example, in the case of an airplane, a vehicle attribute may include a tail number, a type, a model, a vendor, an airline that operates the airplane, a flight number, a home airport, a present airport, and a gate number. In the case of a maintenance vehicle, a vehicle attribute may include maintenance specialty (e.g., electrical, plumbing, roofing), a vehicle number, a job number, a job description, job type, and a destination. In the case of a train, a vehicle attribute may include a train number, a track, a direction of travel, a destination, a haul identifier (e.g., local, long distance), and a station identifier.

A value for an attribute may be provided by network server (e.g., AirSync), a vendor of equipment (e.g., content server, vehicle), a content provider, a content server that receives content from a content provider (e.g., insertion server), a vehicle operator, a vehicle owner, a system user.

Attributes for a fixed server, a nomadic server, and content (e.g., package, package item) may include the same and/or different attributes. An attribute may provide information about a content server, communication equipment, a system external to the content server network, a location, a position at a location, a geographic coordinate, a vehicle, a vehicle owner, a vehicle operator, a purpose of a vehicle, an assignment of a vehicle, and a route.

An attribute of a package item may be related to the content of the package item. For example, an attribute of a package item may include a description of the content (e.g., video, music, data). An attribute of a package item may be unrelated to the content of the package item. For example, an attribute of a package item may be a vehicle attribute.

Attributes and/or values of attributes for content servers may be fixed, static, or dynamic. A fixed attribute is an attribute whose value does not change over the life of the equipment (e.g., content server, vehicle). A fixed attribute value may be set by an equipment manufacturer, a person who configures a system (e.g., network, content server), and/or a manager of the network.

A static attribute may include attributes whose values are set upon initialization of a content server. Static attributes include attributes values that are configured by a user and/or network manager while initializing a device.

Dynamic attributes may include attributes whose values change over time. The value of a dynamic attribute may change responsive to the operation (e.g., use) of a vehicle, a change in schedule, and/or a change in the network. Values for dynamic attributes may be provided by systems of the vehicle, the vehicle operator, and/or the system operator (e.g., manager). The value of dynamic attributes may be reported to the server (e.g., server110,210). Some attributes are required in a set of attributes while others are not.

The value of an attribute may be referred to as an attribute as opposed to an attribute name and a value for the attribute name.

In an implementation that distributes content to aircraft, a set of attributes for a fixed content server may include the attributes provided in Table 1. A fixed content server may include some or all of the attributes of Table 1 through Table 4.

In an implementation that distributes content to aircraft, a set of attribute for a nomadic content server may include some or all of the attributes of Table 2. A set of attributes for a fixed content server may further include any or all of the attributes of Table 2. A set of attributes for a nomadic content server may further include some or all of the attributes provided in Tables 3 and 4.

Attributes for a vehicle that carries (e.g., transports, moves) a nomadic content server may include some or all of the attributes provided in Table 2. For example, an aircraft may include attributes and the associated values for aircraft tail number, aircraft type, aircraft model, aircraft vendor, aircraft configuration, on-board system identifier, and on-board system software revision. A value of an attribute for a nomadic contents server may be the same as the value of the attribute for the vehicle that carries the content server.

A set of attribute for a package item may include the attributes provided in Table 3. Attributes for a package item may be mandatory (e.g., required) or not mandatory (e.g., not required). A set of attributes for a package item may further include some or all of the attributes provided in Tables 1 and 2. A set of attributes for a package item may include attributes of a vehicle that carries a nomadic content server.

TABLE 3Attributes for a Package ItemAttribute NameMandatoryDescriptionPackage identifierYesIdentifier for the package to which thepackage item belongs. A packageidentifier may be unique or may becombined with the package itemidentifier to form a unique identifier.Package itemYesIdentifier for the package item. Aidentifier (e.g.,package item identifier may be uniquepacket item ID)or may be combined with the packageidentifier to form a unique identifier.Package itemYesThe sequence number of the packagesequence numberitem in the package.Last package itemYesNotification of the last package item of anotificationpackage.SizeYesSize in bytes of the package item datafile.Activation dateYesThe date that the distribution of thepackage item to content servers shouldbegin. The activation date may bedefined as a duration (e.g., number ofdays) after the creation date.Delivery dateYesThe date by which delivery of thepackage item to all content servers thatshould receive the package item shouldbe complete. The delivery date may bedefined as a duration (e.g., number ofdays) after the creation date.Expiration dateYesThe date after which the package itemwill not longer be valid. The expirationdate may be defined as a duration (e.g.,number of days) after the creation date.Date lastYesTimestamp of last modification made tomodificationthe package item data and/or attribute.MD5 checksumYesMD5 (e.g., cryptographic hash)checksum of the package item data file.PriorityYesDelivery priority of the package. Eachpackage item of a package has the samepriority.Package item typeYesThe type of content in the package item.Package nameNoA name of the package.SourceNoThe external system ID of the externalsystem that originally provided thecontent.CreatorNoThe person responsible for creating thepackage.Creation dateNoDate and time of original creation.Package item nameNoName of package item.Package itemNoAn extended description of the packagedescriptionitem.GenreNoGenre of content in the package (e.g.,news, movie, music, firmware,maintenance data, flight information,crew information).Pre-distributionNoList of actions for execution prior toscripttransmitting the package item.Post-distributionNoList of actions for execution afterscripttransmitting the package item.

A set of attributes for a package item may further include attributes for distributing the package item between content servers. Attributes used for distributing a package item may include any attribute assigned to a content server (e.g., fixed, nomadic). In an implementation that distributes content to aircraft, additional attributes for a package item may include some or all of the attributes provided in Tables 1, 2, and 4.

TABLE 4Additional Attributes for a Package ItemAttribute NameMandatoryDescriptionAirlineNoName of airline or airlines that mayreceive the package item.Aircraft typeNoType of aircraft that may receive thepackage item.Aircraft modelNoModel of aircraft that may receive thepackage item.Industry allianceNoName of industry alliance whose aircraftmay receive the package item.AirportNoName of airport where content serversare located or may be located in thefuture that may receive the package item.Gate numberNoGate number at which package item maybe delivered. Used in conjunction withairport to uniquely identify the gatelocation.Flight numberNoFlight number of aircraft that mayreceive the package item.

Packages may be distributed throughout a network of content servers using attributes. A content server may assess the attributes of a package and/or package item to determine whether the content server should take an action. An action may include storing the package item, forwarding the package item, providing a notice regarding the package item, and deleting the package item.

A content server may take an action in accordance with a result of assessing an attribute. A content server may use a rule to assess the attributes of a package item. A rule may include any type of formula. A rule may include mathematical and/or Boolean formulas. A rule may be applied to the attributes of a content server and/or the attributes of a package item. A rule may provide a result in accordance with applying the rule. A rule may detect one or more attribute of a set of attributes. A rule may detect one or more values of one or more attributes. A rule may provide a result in accordance with detecting. A rule may compare all or a portion of the attributes and/or values of attributes of a content server and a package item. A rule may provide a result in accordance with comparing. A content server may take an action based on a match condition or a no match condition of applying a rule.

In an implementation referring toFIG. 2, network200, according to various aspects of the present invention, includes server210; fixed content servers220,222,224,226,228,230, and232; nomadic content servers250,252,254,256, and258; content insertion devices270and272; and content extraction device278.

Fixed content servers220,222,224,226,228,230, and232may perform the functions of a fixed content server described above. Fixed content servers220,222,224,226,228,230, and232include set of attributes234,236,238,240,242,244, and248and rules235,237,239,241,243,245, and249respectively. The acronym “FCS” may be used to indicate a fixed content server.

Nomadic content servers250,252,254,256, and258may perform the functions of a nomadic content server described above. Nomadic content servers250,252,254,256, and258include set of attributes260,262,264,266, and268and rules261,263,265,267, and269respectively. The acronym “NCS” may be used to indicate a nomadic content server.

Content insertion device270and272perform the functions of an insertion device discussed below. Content insertion device270and272in cooperation with content server232and230respectively may perform the functions of an insertion system (e.g.,600,700,800) shown inFIGS. 6-8and discussed below. Content extraction device278performs the functions of an extraction device discussed below. Content extraction device278in cooperation with content server220may perform the functions of an extraction system (e.g.,900) shown inFIG. 9and discussed below.

A content insertion device (e.g.,270,272) and a content extraction device (e.g.,278) may cooperate with any nomadic content server (e.g.,250,252,254,256,258) to insert content provided by a vehicle and extract content from a package item for use by the vehicle.

Server210may perform the functions of an AirSync Server discussed above. A server may communicate with one or more contents servers of network200. A server may communicate with a content server using any conventional communications protocols, network and/or channels. In an implementation, server210communicates with network214over link212. Content server220communicates with network214over link216. A link may be wired or wireless. A network may include a private network and/or the internet.

Each content server may communicate with one or more other content servers, insertion devices, and/or extraction devices. A content server may communicate using any conventional communications protocols, network, channels, and/or medium (e.g., wired, wireless). A content server may communicate using one or more channels to provide half-duplex or full-duplex communication. A content server may establish a dedicated link for communication or may share a link. A content server may communicate over a network. One or more content servers may communicate over the same network.

For example, communication connection218between content server220and content server226may be a direct wired and/or wireless connection or may include a network and links to the network, of which network214and links212and216are an example. Communication connections between other content servers may be similar to communication connection218. All links between contents servers may communicate through a network such as network214. A link depicted as a “lightning bolt” represents a wireless connection.

Content servers may be organized for distribution of content in any conventional manner. In an implementation, the content servers of network200are organized in a parent-child relationship with respect to each other. For example, content server220communicates with children contents servers222,224and226and extraction point278. Content server224communicates with children content servers228and230. Content server228communicates with child content server232. Content server232communicates with insertion device270. Content server230communicates with children content servers256and258and insertion point272. Content server222communicates with children content servers250,252, and254.

An insertion device may provide content to a network of content servers. An insertion device may originate content. An insertion device may provide content originated from a source external to the network. An insertion device may provide a set of attributes associated with content. An insertion device may provide content as one or more package items. Each package item may include a set of attributes. An insertion device may provide content without a set of attributes and a receiving content server may provide a set of attributes for the content.

For example, insertion device270and272may include content275and277respectively. Insertion device270and272assign set of attributes274and276to content275and277respectively. Content275and277may change. Attributes274and276may change in accordance with a change in content275and277. Insertion device270(272) provides content275(277) and attribute274(276) to fixed content server232(230). Fixed content server232(230) distributes content275(277) throughout network200in accordance with attribute274(276). Additional information regarding insertion devices and the insertion of content and attributes into a network is discussed below.

An extraction device may receive content from a network of content servers. An extraction device may include a set of attributes to identify content for receiving at the extraction device. An extraction device may include a rule for assessing the attributes of a package item to determine whether to receive the package item. A rule may include the functions and characteristics of a rule as discussed above. An extraction device may cooperate with a content server to extract content from a network.

In an implementation, extraction device278includes set of attributes280and rule281. Extraction device applies rule281to attribute280and to an attribute of a package item provided by fixed content server220to determine whether to receive the package item. Upon receipt of a package item, the content of the package item is transferred to content282. The content of282changes at each receipt of a package item. Attribute280and/or rule281may change to receive package items having different attributes. Another implementation of an extraction device and an extraction system is discussed below.

In a network in which contents servers and/or extraction devices are organized in parent-child relationships, the set of attributes of a parent content server may include the set of attributes of all child (e.g., children, grandchildren, so forth) content servers and/or extraction devices beneath the parent content server. An attribute set of a parent server may include each attribute and/or attribute value for each child content servers to enable the parent to detect and forward content that should be received by the children of the parent. An attribute set of a parent may include a subset of the child attributes that in conjunction with a rule that permits the parent to accept for forwarding content that should be received by the children of the parent.

A network manager may initialize and maintain the attribute sets and values for the content servers in a network. Some values of an attribute set for a content server may be deduced by operation of the network server or updated automatically by server210.

A parent content server may receive content in accordance with the attributes of the children content servers and/or extraction devices beneath the parent content server. A parent content server may forward content to a child content server and/or extraction device in accordance with the attributes of the child content server and/or extraction device. A parent content server may receive content in accordance with attributes of a child content server and/or extraction device and provide content responsive to a request from a child content server and/or extraction device.

For example, attribute234and rule235of content server220includes the set of attributes and rule from fixed content servers222,224,226,228,230,232, nomadic content servers250,252,254,256, and258and extraction device278. Content server220may receive content in accordance with attributes and rule of the children content servers and extraction devices. Content server220may provide content to children in accordance with the attribute and rule of each child because content server220receives content for the children. A content server need not receive content that does not accord (e.g., match) with its set of attributes and rule. Because a parent content server receives content for its children content servers, a parent content server may also not accept content that the parent content server and the children content server do not wish to receive in accordance with their attributes.

A content server may receive and forward content that does not match the attributes of the content server to a parent content server for possible distribution to a content server where a match may be found. For example, content server232receives all content provided by insertion device270regardless of attribute274of content275. Content server232applies rule249to attribute248and attribute274. In the event of a match, content server232retains (e.g., stores) a copy of content275. Content server232may further provide content275and attribute274to parent content server228in the event that a match may occur for another content server in the network. In the event that applying rule249to attribute248and attribute274does not result in a match, content server232provides content275and attribute274to parent content server228in the event that a match occurs for another content server that is higher in the parent-child hierarchy in the network. In a network organized in parent-child relationships, each content server that receives content that does not match its attributes in accordance with its rule, provides the content to its parent. Providing content with non-marching attributes to a parent may eventually distribute the content to a content server where a match does occur. Upon detecting a match, the content server may retain a copy of the content and distribute the content to the children of the content server where a match occurs.

Examples of how distribution of content in a network organized with parent-child relationships help provide an understanding of content distribution in accordance with attributes. The examples provided below do not limit the scope of the claims to the specific examples, but provide an example of one possible implementation of many possible implementations of a network that uses attributes to distribute content.

Referring toFIG. 3, system300for distributing content, according to various aspects of the present invention, includes fixed content servers310,320,324,330,334,340, and344. Content server310distributes content to a region. Its geographic position may be anywhere, but it communicates with content servers320and324. Content servers320and324are children of content server310. Communication between content servers310,320, and324may be accomplished using any conventional communication equipment and/or techniques.

Content server320distributes content to airport no. 1. It may be geographically positioned anywhere. Content server320communicates with content servers340and344. Content servers340and344are children of content server320. Communication between content servers320,340, and344may be accomplished using any conventional communication equipment and/or techniques.

Content server324distributes content to airport no. 2. It may be geographically positioned anywhere. Content server324communicates with content servers330and334. Content servers330and334are children of content server324. Communication between content servers324,330, and334may be accomplished using any conventional communication equipment and/or techniques.

Content servers330,334,340,344communicate with nomadic content servers on aircraft that arrive at gates of their respective concourses. Content server340and344are positioned at concourse no. 1 and concourse no. 2 respectively of airport no. 1. Content server330and334are positioned at concourse no. 1 and concourse no. 2 respectively of airport no. 2.

Each content server includes a set of attributes and a rule. A set of attributes for a fixed and/or nomadic content server may include any attribute discussed in Table 1 through Table 4. In this example, fixed content servers310,320,324,330,334,340, and344include attribute sets311,321,325,331,335,341, and345respectively. Nomadic content servers350and360include attribute sets352and362respectively. Insertion device370includes attribute set372. Extraction device390includes attribute set392. Although attribute sets discussed above may include any attribute from Table 1 through Table 4, the attributes discussed in this example are: airlines, aircraft, genre, and flight.

Each content server and extraction device390may further include a rule. A rule for each content server and extraction device390may include the properties and function of a rule as described above. A rule is applied to attributes of a content server and a package item to determine whether a content server should take an action with respect to a package item. An action may include accepting (e.g., receiving), storing, and/or forwarding a package item.

Rules312,322,326,332,336,342,346, and394for this example perform a comparison (e.g., logical, character, binary, Boolean) between each value of an attribute of a content server and each value of the attribute of a package item. A comparison that find a match (e.g., same, true, 1) indicates that the content server should receive the package item for forwarding to children content servers as discussed above. A comparison that does not find a match indicates that the content server should receive the package item for forwarding to the parent of the content server as discussed above.

For example, attribute set311includes the attribute “airline” having the values “A,” “B,” “X,” “Y,” and “Z.” Rule312specifies that each value for the attribute “airline” of content server310should be compared to each value for the attribute “airline” of a package item. A match between a value of the content server “airline” attribute and a value of the package item “airline” attribute indicates that the content server receive the package item for forwarding to children content servers. Applying rule312using attribute311means that content server310will take an action for any package item that should be received by an aircraft of airlines A, B, X, Y, or Z.

In another example, attribute set352of content server350includes the attribute “model” (e.g., aircraft model) having the value 747 and 737. Rule354for content server350has the operation “no match” for the attribute “model.” In this case, each value of the attribute “model” for content server350is compared with each value of the attribute “model” for a package item. In the event that the values of “model” for content server350do not match the values of “model” for a package item, content server350receives the package item. Because content server350does not have children content servers, content server350will receive the package item for its own use. Applying rule354using attribute352means that content server350will take an action on all package items that are not intended for aircraft model nos. 747 and 737.

As an example of distributing content, applying a rule, and taking an action, suppose that content server310receives a package item and/or a notice of a package item having the attributes and attribute values shown in Table 5. The package item may have other attributes and attribute values in addition to those shown in Table 5, but for this example, the attributes of Table 5 are discussed to illustrate distribution of a package item. The attributes of Table 5 are also attributes of an airplane. A package item having the attribute values of Table 5 is referred to herein as package item no. 1.

Upon receiving package item no. 1 or a notice that package item no. 1 is available for receipt, content server310receives and/or requests the attributes for package item no. 1. Attributes for a package item may be separate from or a part of the package item. In one implementation, the attributes of a package item are part (e.g., data field, meta data) of the package item, so the entire package item must be received to receive the attributes of the package item.

Content server310uses rule312to determine whether it should receive, or in this case retain and not delete, package item no. 1. In this example, as discussed above, attribute set311for content server310includes the attribute “airline” with the values A, B, X, Y, and Z. Content server310compares each value of attribute “airline” of attribute311to each value of the attribute “airline” of the attribute of package item no. 1. The comparison results in a match between the X value of attribute311and the X value of the attribute of package item no. 1. Because a match occurs as a result of applying rule312, content server310receives and stores, or retains and does not delete, package item no. 1.

Because attribute311of content server310includes the values for the “airline” attribute of its children content servers (320,324,330,334,340,344), at least one of its children will accept package item no. 1. As a result, content server310either sends package item no. 1 to content servers320and324or advises content servers320and324of package item no. 1, so servers320and324may request package item no. 1 or the attribute set of package item no. 1.

Content servers320and324perform a comparison between the values of attributes321and325respectively and the values of attributes of package item no. 1 as discussed above with respect to content server310. A match occurs for content server320, so content server320receives package item no. 1. A match does not occur for content server324, so content server324does not receive package item no. 1 or if already received, discards package item no. 1. Because attribute “airline” of attribute325includes the values of its children content servers (e.g.,330,333), if content server324does not detect a match when applying rule326, content server324knows that no child will detect a match.

Because content server320detects a match when applying rule322to attribute321and the attribute of package item no. 1, content server320receives package item no. 1 and forwards package item no. 1 or a notice of package item no. 1 to content servers340and344. Content server340applies rule342to attribute341and the attribute of package item no. 1 and detects a match, so content server340receives package item no. 1. Content server344applies rule346to attribute345and attribute of package item no. 1, but does not detect a match, so content server344does not receive or discards package item no. 1.

Content server340retains package item no. 1 for delivery to nomadic servers. Content server340may provide package item no. 1 to as many nomadic content servers that have matching attributes. Each nomadic server applies its rule to its own attribute and the attribute of package item no. 1 to determine if it should receive package item no. 1. In this case, nomadic server350detects a match while comparing the values of the “airline” attribute of attribute set352and the attribute set of package item no. 1. Nomadic server350also applies rule354to each value of the “model” attribute for attribute set352and the attribute set for package item no. 1. The “model” attribute for package item no. 1 does not include the value “747” or “737,” so no match is found between the nomadic content server attribute and package item no. 1 attribute. Because rule354specifies “no match,” nomadic content server350receives package item no. 1 because applying rule354to attribute set352and the attribute set for package item no. 1 indicates that nomadic content server350should receive package item no. 1 upon detecting a match for “airline” and no match for “model.”

The lightning bolt symbol between content server340(344) and nomadic content server350(360) represents communication between the content server and the nomadic content server via a wireless communication channel.

Each server that has received a copy of package item no. 1 may retain a copy of package item no. 1. The value of attribute “expiration date” (not shown in Table 5) may provide a content server a time frame for retaining package item no. 1. In an implementation, a content server retains package item no. 1 until the local time is greater than the value of the expiration date attribute. In another implementation, only fixed content servers that communicate with nomadic content servers retain package item 1 for delivery to nomadic content servers. Other fixed contents servers that do not communicate with nomadic content servers receive and forward package item no. 1, but do not retain package item no. 1 after it has successfully been forwarded.

In another example of distributing content, applying a rule, and taking an action, suppose that content server310receives a package item and/or a notice of a package item having the attributes and attribute values shown in Table 6. The package item may have other attributes and attribute values in addition to those shown in Table 6. A package item having the attribute values of Table 6 is referred to herein as package item no. 2.

Upon receiving package item no. 2 or a notice that package item no. 2 is available for receipt, content server310receives and/or requests the attributes for package item no. 2. Content server310uses rule312to determine whether it should receive package item no. 2. In this example, as discussed above, attribute set311for content server310includes the attribute “airline” with the values A, B, X, Y, and Z. Content server310compares each value of attribute “airline” of attribute311to each value of the attribute “airline” of package item no. 2. The comparison results in a match between the Z value of attribute311and the Z value of the attribute of package item no. 2. Because a match occurred as a result of applying rule312, content server receives package item no. 2.

Because attribute311of content server310includes the values for the “airline” attribute of its children content servers (320,324,330,334,340,344), at least one of its children will accept package item no. 2. As a result, content server310either sends package item no. 2 to content servers320and324or advises content servers320and324of package item no. 2, so servers320and324may request package item no. 2 or the attribute set of package item no. 2.

Content servers320and324perform a comparison between the values of attributes321and325respectively and the values of attributes of package item no. 2 as discussed above with respect to content server310. A match occurs for content server320and content server324, so content servers320and324receive package item no. 2.

Content server320forwards package item no. 2 or a notice of package item no. 2 to content servers340and344. Content server324forwards package item no. 2 or a notice of package item no. 2 to content servers330and334.

Content server340applies rule342to attribute341and the attribute of package item no. 2, but does not detect a match, so content server340does not receive package item no. 2.

Content server344applies rule346to attribute345and attribute of package item no. 2. Content server344detects a match for the attribute “airline” because attribute345includes attribute “airline” with a value of “Z” and package item no. 2 includes attribute “airline” with a value of “Z.” Attribute set345does not include the attribute “flight,” so no comparison is made for the “flight” attribute of package item no. 2. Content server344receives package item no. 2 based on the match for the “airline” attribute.

Content server330applies rule332to attribute331and the attribute of package item no. 2, but does not detect a match, so content server330does not receive package item no. 2.

Content server334applies rule336to attribute335and attribute of package item no. 2. Content server334detects a match for the attribute “airline.” Attribute set335does not include the attribute “flight,” so no comparison is made for the “flight” attribute of package item no. 2. Content server334receives package item no. 2 based on the match for the “airline” attribute.

Content servers344and334retain package item no. 2 for delivery to nomadic servers. Each nomadic server applies its rule to its own attribute and the attribute of package item no. 2 to determine if it should receive package item no. 2. In this case, nomadic server360detects a match while comparing the values of the “airline” attribute of attribute set362and the attribute set of package item no. 2. Nomadic server360also applies rule364to each value of the “flight” attribute for attribute set362and the attribute set for package item no. 2. The value of the “flight” attribute of attribute362matches the value of the “flight” attribute of package item no. 2, so nomadic server360receives package item no. 2.

A flight number may be included as an attribute of a package item to provide distribution of a package item to a nomadic content server of an airplane assigned the particular flight number. In this case, package item no. 2 appears to be intended for flight no. 263; however, package item no. 2 may be received by any content server that does not provide a value for the “flight” attribute of its attribute set or that does not require a match of the “flight” attribute in its rule. Delivery of a particular package item to a particular nomadic server to the exclusion of other nomadic servers may be accomplished by providing attribute values for each nomadic content server that uniquely identify each nomadic content server or the vehicle that carries the nomadic content server, such as airline, gate number, flight number, model number, and/or tail number. A rule may also be fashioned to detect package items for a particular flight or aircraft.

Insertion device370provides content to network300for distribution. In this example, insertion device370is in an aircraft. A system (e.g., electrical, hydraulic, oxygen, fuel, propulsion, navigation, flight controls, ice protection, emergency, in-flight entertainment, crew, credit card transaction data, frame stress transducers, black box, strut position transducers) of the aircraft produces data. The data may be used to track maintenance, detect failures, assess crew performance, and/or measure system efficiency. Insertion device370may receive data from the systems of the aircraft and prepare the data for distribution via network300.

Insertion device370may prepare data for distribution by organizing data into package items. Insertion device370may prepare a package item for distribution by preparing a set of attributes and assigning attribute values. A nomadic server of the aircraft may cooperate with the insertion device to prepare data for distribution. An owner or operator of the aircraft may be interested in receiving the data. The data may be provided by the aircraft and distributed through the network to an extraction device owned by the owner or operator of the aircraft. Attributes may be assigned to the package item that contains data, so that the package item is distributed to the extraction device.

In one implementation, insertion device370receives performance data from the aircraft engines. Insertion device370organizes the data into one or more package items. Insertion device370retains the package item until the aircraft arrives at a gate where insertion device370may establish communication (e.g., wireless) with fixed content server334. Insertion device370is on an aircraft operated by airline “X,” so insertion device370assigns the value “X” to the “airline” attribute of the attribute set372of the package item. Insertion device370also assigns the value “main” (e.g., maintenance) to the “genre” attribute to identify the package item as containing maintenance data. For this example, the package item formed by insertion device370is referred to as package item no. 3 and includes the attributes provided in Table 7. The package item may have other attributes and attribute values in addition to those shown in Table 7. In one implementation, all package items containing maintenance data are assigned at least the attributes shown in Table 7.

Upon establishing communication with content server334, insertion device370informs content server334that it has package item no. 3 for distribution. Content server334receives the package items or a notice of the package items and applies rule336to attribute set335and attribute set372of package item no. 3. In this case, content server334does not detect a match for the “airline” attribute.

In the previous examples of distributing a package item, a content server did not accept a package item when a match did not result from applying the rule. The previous examples showed distribution from parent to child. In each of the above examples, content server310received a package item (e.g., no. 1, no. 2). Because attribute set311includes the attribute and attribute values for distributing to the children content servers of content server310, a resultant match from applying rule312informs content server310that it or one of its children should receive the package item. The same logic applies to content servers320,324,330,334,340, and344. The attribute set of each included attributes for distributing content to children content servers, so a match indicates that the content server should receive the package item for distribution to children content servers.

When a child content server receives a package item, especially a child content server at a lower level of the parent-child hierarchy, the child content server does not know the attributes of its parent content server. Lacking knowledge of the attributes of its parent, a child content server forwards all package items that the child receives independent of its parent to its parent.

In this example, using rule336content server334does not detect a match between attribute set335and attribute set372. Lacking a matching result, content server334does not retain package item no. 3 for distribution to other nomadic content servers. However, content server334receives package item no. 3 and forwards it to content server324. Content server324applies rule326to attribute set325and attribute set372and does not detect a match. Content server324does not retain package item no. 3, but forwards package item no. 3 to content server310. Content server310applies rule312to attribute set311and attribute set372and detects a match.

Because content server310detects a match, content server310stores package item no. 3 for forwarding to its children servers. Because content server310did not receive package item no. 3 from its parent, content server310also forwards package item no. 3 to its parent.

When content server310provides package item no. 3 or a notice of package item no. 3 to extraction device390, extraction device390applies rule394to attribute set392and attribute set372of package item no. 3. Extraction device390finds a match for the “airline” attribute and for the “genre” attribute, so extraction device390accepts package item no. 3. Extraction device390is located at the headquarters for airlines “X,” “Y,” and “Z.” Headquarters desires to receive maintenance data for the aircraft of its fleet. Extraction device390may be located at any place in the network or at any level of the parent-child hierarchy.

As discussed above, upon detecting a match, content server310provides the package item or a notice of the package item to its children content servers. In the case of package item no. 3, content server310will provide package item no. 3 to content server320because it detected a match. Content servers320and340will detect a match between their respective attribute sets (i.e.,321,341) because the attributes sets and rules do not check for a match with the attribute “genre.” It is unlikely that any nomadic content server will use the data from package item no. 3; however, this example illustrates that the distribution of a package may be controlled by the attribute set of a content server, the attribute set of a package item, and the rule applied by the content server to compare the attribute sets. A content server may include attributes and rules that provide a no match result, so that the content server does not receive a package item. In this example, content server320may use a rule that excludes receiving maintenance data from its parent content server310.

As discussed in the above examples, an attribute of a package item may not be related to the type of content in a package item. The attributes for package item nos. 1 and 2 include airline, aircraft model, and flight numbers. The attributes for package item nos. 1 and 2 do not include an attribute (e.g., package item type, genre) that provides information as to the type of content (e.g., video, audio, data) carried by package item. Distribution in accordance with an attribute or a set of attributes may be accomplished without knowledge of the type of content being distributed. An attribute may provide information as to the purpose of the content, so distribution using an attribute may include distribution in accordance with the purpose of the content. Attributes (e.g., airport, gate number, flight number) may result in distribution of a package item to a particular physical location. A physical location may not correspond to a geographic coordinate. For example, when distributing content by flight number, the physical location of where the content should be distributed may change if the origin or destination of the flight number is change.

Depending on the attributes used to distribute content, content may be distributed in accordance with the type of content (e.g., package item type, genre, package identifier, package item identifier), location of a fixed and/or nomadic content server (e.g., content server area, airport, gate number, geographic coordinate, flight number), vehicle (e.g., aircraft tail number, aircraft type, aircraft model, on-board system identifier), use of a vehicle (e.g., flight number, gate number, flight segment/city pair), ability to use and/or need for content (e.g., aircraft configuration, aircraft model, aircraft vendor, flight number, flight segment/city pair), vehicle owner (e.g., airline name, home airport), package specific information (e.g., package identifier, package item identifier, package name), and/or time related information (e.g., activation date, delivery date, expiration date, date last modification).

A method for distributing content in a network may include method400ofFIG. 4. Distribution of content as discussed above may be accomplished via method400. Method400may distribute package items in a network including a network having a parent-child hierarchy. Method400may include receiving notice of package item410, detecting whether package item from child412, detecting whether parent exits414, sending notice of package item to parent416, marking to forward to parent418, detecting whether package item new420, receiving package item attribute set422, detecting attribute match424, sending notice of package item to children426, receiving package item428, and detecting whether marked for forwarding to parent430.

In distributing package items, content servers communicate (e.g., transmit, receive) information. Communication may occur between content servers including a parent content server and one or more children content servers. Information may include any data, signaling, control, and status communicated between content servers. For purposes of clarity while discussing distribution, a content server, whether a parent or a child, that receives a package item is referred to as the receiving content server. A server that provides the package item is referred to as the providing content server. Any content server may perform the role of a receiving or a providing content server. Process400may be performed by a receiving content server.

Receiving notice of a package item may include receiving a notice of all package items retained (e.g., stored, held) by the providing content server, receiving a notice of package items not yet reported by the providing content server, receiving a notice of package items receive since the last notice, and/or receiving notice of a single package item. A notice may include information (e.g., data) regarding a package item. A notice may include attributes of a package item. A notice may include the entire package item. A notice may identify each package item uniquely (e.g., package identifier). A notice may be communicate in any conventional (e.g., wired, wireless) manner using any conventional communication protocol. In one implementation, receiving a notice410includes receiving a list of package items retained by a providing content server, but not yet reported to a neighboring (e.g., parent, child) content server.

Detecting whether a notice of a package item has been received from a child includes receiving a communication via a channel dedicated to communication with a child server, receiving a identifier of the content server that sent the notice of a package item, and/or polling neighbor content servers to determine which content server sent notice of a package item. In one implementation, during initialization each child content server registers (e.g., checks-in) with the parent server and identifies itself with each communication. A parent content server may also identify itself to a child server at initialization and/or with each communication. In one implementation, detecting412is accomplished by the receiving content server receiving notice of the identity of the providing content server. A communications protocol may provide information as to the source of a communication (e.g., notice of package item) that may be used to detect whether a notice of a package item comes from a child content server.

Detecting whether a parent exits includes detecting whether the receiving content server has a parent or is a content server at the top of the parent-child hierarchy that has not parent. As discussed above, a child server may register with its parent server at initialization and/or upon establishing communication. A content server may record whether it registered as a child with another content server and/or whether other content servers registered with it as children. Detecting whether a parent exits may be accomplished by a content server checking its own records as to whether it has a parent content server. In an implementation, the receiving content server retains a record of its children and parent, so detecting414is accomplished by accessing the record to determine if a parent exits.

If the receiving content server does not have a parent, the process moves to detecting420. If the receiving content server has a parent, the process moves to sending notice416.

Sending a notice of a package item may include sending a notice of a package item to neighbor content servers. A notice may include all or part of the information provided in the notice received in receiving notice of package items410. Sending notice416is accomplished by sending a notice to the parent sever of a package item received from a child server.

Marking to forward to parent includes making an indication and/or record that a package item should be receive for forwarding to a parent. Marking may be a simple as setting a bit in a register and/or modifying a header of a packet.

Detecting whether a package item is new may include comparing package items identified in a notice to package items previously considered by a receiving content server. Comparing may include comparing any aspect of a package item to determine whether the receiving content server has previously received notice of the package item or the package item itself. In one implementation, detecting412includes receiving a unique package item identifier from the providing content server and comparing the unique package item identifier to a list of package items previously considered by the receiving content server. Detecting412may further include recording the package item identifiers of all new package items to be able to identify them as not new afterwards.

Receiving a package item attribute set may include communicating a request from the receiving content server to the providing content server. A receiving content server may request that a providing content server transfer one or more package item attribute sets to the receiving content server. The request may identify package items that the receiving content server has detected are new to the receiving content server. Receiving a package item attribute set may include receiving information that includes the attribute set of a package item. Receiving a package item attribute set may include receiving an entire package item including the package item attribute set. As discussed above, a package item and/or a package item attribute set may be communicated in any conventional manner. In one implementation of receiving package item attribute set422, the receiving content server sends a request to the providing content server that identifies the attribute sets the receiving content server would like to receive from the providing content server. A request to send an attribute set may identify the channel (e.g., frequency, encoding, unicast, multicast) that the providing content server may use to communicate the attribute set.

Upon receiving an attribute set, a receiving content server may detect (e.g., determine, compare) whether the attribute set matches (e.g., corresponds, relates) to a package item of interest to the receiving content server. Detecting an attribute match may be accomplished as discussed above. Detecting a match may include applying a rule to an attribute set of the receiving content server and the attribute set of the package item as discussed above.

In an implementation of detecting attribute match424, the attribute set of the receiving content server (“CS”) is compared to the attribute set of the package item (“PI”) in accordance with the Boolean expression provided below. In the Boolean expression, the symbol “==” means equal to, the symbol “!=” means does not equal, and the symbol “<” means less than. The result (e.g., output) of the Boolean expression, Match, is true (e.g., 1) upon detecting a match and is false (e.g., 0) upon detecting that no match exists.Match=(CS airline==PI airline) and(CS aircraft model==PI aircraft model) and(CS flight no.==PI flight no.) and[(CS unfinished package ID==PI ID) and(CS missing chunk no.==PI chunk no.)] and(today's date<PI delivery deadline)

In the case of the above formula, the output Match becomes true when all Boolean expressions are true. A Boolean expression, for example, CS airline==PI airline, is true when the value of the attribute for the content server and the value of the attribute for the package item produce a true result in accordance with the Boolean expression. For example, when the value of the attribute CS airline is the same as the value of the attribute PI airline, the Boolean expression CS airline==PI airline is true. When the value of the attribute “today's date” is less than the value of the attribute PI delivery deadline, the Boolean expression today's date<PI delivery deadline is true.

Sending a notice of a package item426may be accomplished in the same manner as sending notice416discussed above except that the notice is sent to content servers that are children of the receiving content server as opposed to the parent.

Receiving a package item may include a receiving content server receiving data using any conventional communication protocol via any conventional medium. Receiving a package item may include a receiving content server providing a request to a providing content server to send one or more package items to the receiving content server. A request may identify a channel that the providing content server may use to provide (e.g., transfer, communicate, transmit) the requested package items. In the event that the entire package item was sent with the attribute set, the receiving content server need not provide a notice of the package items for which a match was found because the receiving content server has already received the package items and may merely discard the package items for which there was no match. In one implementation, receiving a package item416includes providing a notice to the providing content server to send one or more package items.

Detecting whether a mark has been recorded to forward a package item to a parent includes detecting and/or interpreting the record created by marking418. When a parent does not exist, process418is not executed, so a record is not created to mark that a package item should be forwarded to a parent. The absence of a record indicates that a package item should not be received for forwarding to a parent. If a parent exists, a record is created, so existence of a record indicates that a package item should be received for forwarding to the parent. In an implementation, marking418is accomplished by setting a bit in a register and/or setting a variable to a value. Detecting430is accomplished by detecting the set bit in the register and/or detecting a value of a register.

If detecting430detects the mark, process428is executed to receive the package item. If a mark is detected, a notice has already been sent to the parent by sending416, so the receiving content server receives the package item to have possession of it when the parent responds to receiving the notice from process416.

Another method for distributing content in a network may include method500ofFIG. 5. Method500may include requesting notice of package items510, detecting whether package item from child512, detecting whether parent exits514, marking to receive for parent516, detecting whether package item new518, receiving package item attribute set520, detecting attribute match522, receiving package item524, and detecting whether marked to receive for parent526.

Processes detecting whether package item from child512, detecting whether parent exits514, marking to receive for parent516, detecting whether package item new518, receiving package item attribute set520, detecting attribute match522, receiving package item524, and detecting whether marked to receive for parent528may perform the functions and accomplish the results of detecting whether package item from child412, detecting whether parent exits414, marking to forward to parent418, detecting whether package item new420, receiving package item attribute set422, detecting attribute match424, receiving package item428, and detecting whether marked for forwarding to parent430respectively as discussed above. Process500may be performed by a receiving content server.

A receiving content server may send a request to a neighbor content server to request that the neighbor content server provide a notice of the package items in possession of the neighbor content server. A notice of package items sent responsive to a request may be the same or similar to the notice provided by process410. Requesting a notice may include receiving a notice responsive to the request. In an implementation, requesting510communicates a request to at least one neighbor content server for the neighbor content server to provide a notice of all of the package items stored by the neighbor content server. A notice may include an attribute set for each package item and/or an entire package item. A neighbor content server may include a parent and/or a child.

A request may identify a time of a previous request to enable the neighbor (e.g., providing) content server to provide information about package items received after any previous request. A request may include an attribute set and rule from the receiving content server so that the providing content server may provide a notice that identifies package items that may be of interest to the receiving content server.

A content server may retain a package item until it has responded to a request from each neighbor content server.

A comparison of method400and method500shows that a receiving content server performing method400respond to notices sent to it from other content servers. Neighbor content servers push (e.g., provide) notices, without prior solicitation, to a receiving content server regarding the package items held by the providing content server. Receiving content servers performing method500request information from neighboring content servers about package items held by neighbor content servers. A receiving content server that performs method500pulls (e.g., requests) information from neighboring content servers and acts on the information received responsive to its request.

A method of distributing information in a network may use method400, method500, or a combination of methods400and500to push and pull information about content throughout the network. The process of distributing package items throughout a network may be referred to as content inventory exchange.

In an implementation, content is routed through a network of fixed content servers. Each fixed content server retains content of interest to the nomadic content servers that that the fixed content server will at some time service. The attribute set of a fixed content server that services nomadic content servers is configured to receive the content for the nomadic content servers that will connect with the fixed content server. Knowledge of which nomadic content servers will at some time connect with a fixed content server may be provided by a schedule of the route of the nomadic content servers. A fixed content server may service nomadic content servers having common attributes and/or attribute values, so the attribute set of the fixed content server may be configured to receive content for the common attributes and/or attribute values.

A fixed content server may retain package items until the content expiration date is reached. After the content expiration date is past, the fixed server no longer stores the expired package items.

Upon arrival of a nomadic content server, the fixed content server, in the role of a providing content server, provides a notice to the nomadic content server of the content held by the fixed content server. The nomadic content server, in the role of a receiving content server, performs method400to determine whether the nomadic content server wishes to receive content from the fixed content server. In another implementation, the nomadic content server, in the role of receiving content server, performs method500and requests content from the fixed content server, which performs the role of the providing content server.

After the nomadic content server receives as much content as it can from the fixed content server during the duration of the connection between the fixed and nomadic content servers, the nomadic contents server leaves the communication range of the fixed content server and moves to repeat the process with a different fixed content server located at a different geographic location. A nomadic content server may also provide content to the fixed content server during the duration of a connection. For example, maintenance information as discussed above may be transferred from the nomadic content server to the fixed content server.

Distribution of content is not limited to transfers between fixed content servers or fixed content servers and nomadic content servers. A nomadic content server may establish a connection with another nomadic content server for transfer of package items in accordance with attributes. A nomadic content server may establish a connection with a fixed content server and another nomadic content server at the same time. A nomadic content server may receive content from a fixed content server and provide the content received to another nomadic content server. Nomadic content servers may communicate with each other when one or more of the nomadic content servers are outside the range of communication of a fixed content server (e.g., at airport, but out of range, in-flight).

Nomadic content servers may communicate content between each other using method400and/or method500as discussed above.

Content may be provided (e.g., inserted, injected) to a network for distribution in accordance with attributes of the content. Insertion of content into a network is discussed above with respect to insertion device270,272, and370. Content may be inserted into a network to any content server, whether fixed or nomadic, in the hierarchy of the network. A device (e.g., server, computer) that provides content to a network does not need to be a content server in the network. A device that inserts content may be external to the network. A device may provide content to a content server of the network.

A connection, whether wired or wireless, between a device that provides content and a content server of the network may be referred to as an insertion point. An insertion point may define an interface between a system that is external to the network and a system that is internal to a network. An insertion point may be established using any conventional communication and/or file transfer protocol. An insertion point may be established over any conventional medium including wired and/or wireless networks.

A device that provides content to a network and/or a content server of a network may be referred to as an external content server.

Attributes may be assigned to content by a system that is wholly external to the network, wholly internal to the network, or that is distributed between an external device and an internal device. Systems600,700, and800respectively show systems that are wholly external, wholly internal, and both internal and external for assigning attributes to content and forming package items.

System600includes insertion device610and content server690. Insertion device610includes content generator620, attribute generator630, package item generator640, package item queue650, and content server emulator660. Insertion device610communicates with content server690via connection670, so connection670represents the insertion point. Because content server690is part of the network, line680represents the line between the external system (610) and internal system (690).

A content generator provides content. Content may include video, music, data, and/or interactive content. Content may be saved in any conventional electronic file format. A content generator may include any conventional system that generates electronic content.

In an implementation, content generator generates video and audio content for use in-flight use on airplanes. Content provided by a content generator may include descriptors of the type of content for use by an attribute generator in generating a set of attributes or values for an attribute.

For example, content generator620may include a description as to whether the content is video, music, or data. Video may be further classified as feature length film, short film, commercials, news, sports, infomercial, television programming, weather, foreign programming, or any other classifier that describes the video. Music may be classified as to type, such as, classical, modern, country, jazz, contemporary, new age, or any other type of classifier that describes the music. Data may be classified as interactive shopping, computer game, news, books, magazines, short stories, interest stories, still images, or any other type of classifier that describes data. A content generator may further provide information about the content, such as presentation duration, file format, file size, creation date, content creator, and/or content requester.

An attribute generator provides an attribute set for content. A set of attributes generated by an attribute generator may include the attributes for a package item as discussed above. An attribute generator may cooperate with a content generator to provide an attribute set for content provided by the content generator. An attribute generator may receive information from any source to generate a suitable set of attributes and/or attribute values for content. An attribute generator may receive information from a manager of a network and/or a scheduler of vehicles (e.g., nomadic content servers) to aid in generating a set of attributes. Generation of an attribute set may include information provided by or selected by a human operator of an insertion device.

An attribute set may include a description of the content. For example, a value of the attribute package item description as discussed in Table 3 may be set to indicate whether the content is video, music, data, or any other conventional type of data. The value of the attribute genre as discussed in Table 3 may be set to classify the type of video, music, or data as discussed above.

In an implementation related to airlines, an external content provider receives requests from airlines for content. A request from an airline may be used to generate the content and the attributes of the content. For example, an airline request may include the type of content, a deadline for delivering the content, and an expiration date for the content. A request may further include information related to or a value for any attribute discussed above for a package item. An external content provide may further receive flight schedules, type of content needed per flight, departure airports, departure gates, gate information, delay information contents server geographic locations, information about communication capabilities between content servers, airports, gates or other physical locations from airlines, airport authorities, and/or network managers. An attribute generator receives the information provided by the various sources and information about the content and provides a set of attributes as discussed above.

A package item generator produces package items (or packages) for distribution in a network that distributes data in accordance with attributes. A package item generator may combine content provided by a content generator with an attribute set from an attribute generator that is associated with the content. A package item generator may provide a package item for distribution. A package item includes the attributes and characteristics of a package item as discussed above. A package item generator my split content into may package items having an attribute set that permits reassembly (e.g., package item sequence number) by a receiving content server. A package item generator may provide individual package items or a package of many package items.

In an implementation, package item generator640receive content from content generator620and attribute sets from attribute generator630to form package items for distribution by a network that distributes content using attributes as discussed above. A package item may be an electronic file having the format and information discussed above.

A package item queue stores package items prior to insertion into the network. A package item queue may receive and/or provide package items in any order. A package item queue may reorder (e.g., sort, arrange) package items in accordance with an attribute and/or a value of an attribute. A package item queue may provide package items as reordered. In an implementation, package item queue640is a first-in-first-out queue.

A content server emulator emulates the functions and operations of a content server as discussed above. A content server emulator may operate in accordance with the distribution protocol (e.g., method400, method500) used by content servers of the network. In the case of an external device that provides content to a network, the content server emulator provides package items to, but does not receive package items from, the network and/or a content server of the network. In an implementation, content server emulator660functions as a providing content server for providing content to a receiving content server as discussed above. Content server emulator660receives package items from package item queue650and provides the package items to content server690via insertion point670in accordance with the content distribution protocol used in the network.

Content server emulator660may perform the functions of content generator620, attribute generator630, package item generator640, and package item queue650.

System700includes insertion device710and insertion server720. Insertion device710includes content generator712, directory classifiers716, external server714, directory indicators718, and operator719. Insertion server720includes directory722, directory724, directory726, attribute set generator728, package item generator730, and content server emulator770. Insertion server720may further include a package item queue (not shown), as discussed above, to buffer package items provided by package item generator730and received by content server emulator770. Insertion device710communicates with insertion server720via connection750, so connection750represents the insertion point. Because insertion server720is part of the network, line760represents the line between the external system (710) and internal system (720,780).

Content generator712performs the functions discussed above with respect to a content generator. An external server may perform the functions of a content generator.

A directory classifier provides information about the type of content that each directory722-726may receive. For example, a directory classifier may specify that all content transferred to directory722be content that is for Delta Airlines for use in domestic in-flight entertainment. Another directory classifier may specify that all content transferred to directory724be for United Airlines for international flights. Another directory classifier may specify that all content transferred to directory726be flight information for the flight crew of a particular flight, a particular type of aircraft, and/or a particular airline.

A directory classifier may include information as to the insertion point that must be used to insert content into a directory. Each directory may have a unique address for accessing the directory. A directory classifier may include the information that an external server may need to access the directory. For example, information needed to access a directory may include a directory name, directory number, an IP address, a file transfer protocol (“FTP”) address, a channel address, and/or any conventional information for transferring information to a specific location and/or file system.

Information in a directory classifier may be provided to an insertion device by the entity (e.g., network manager, system operator) responsible for establishing directories in an insertion server.

A directory indicator indicates the directory to which a particular content must be provided. An operator may assist in forming a directory indicator. An operator may assess the type of content, determine the directory most appropriate for the content in accordance with the directory classifiers, and provide the information for accessing the selected directory as a directory indicator. A directory indicator may provide an insertion server with instructions for accessing and transferring content to a particular directory. An operator may include a human operator and/or a machine assisted by a human operator.

A directory indicator may be stored with the content or stored separate from the content (e.g., separate queue), but associated with the content for provision to the external server. In an implementation, a human operator assesses directory classifiers716and provides directory indicator718for each file of content generated by content generator712. Directory indicator718is stored as metadata to each file of content.

An external server receives content from a content generator and directory indicators. Using the directory indicator, the external server transfers the content associated with the directory indicator to the appropriate directory in the insertion server. A content server may perform any conventional communication and/or file transfer operation to transfer content to a directory. In an implementation, content server714does not establish or manage directories722-726. Content server714receives content from content generator712and instructions on how to transfer the content to a directory from directory indicators718. External server714transfers the content to a directory using the instructions. In an implementation, external server714transfers content to directories using FTP. Directory indicators718provide instructions for transferring content using FTP. External server714has write-only access to directories722-726.

A directory is a storage area that receives, stores, and provides content. A directory is created, managed, and/or deleted by a manager of the insertion server and/or a network. A manager of the insertion server creates directories and provides directory classifiers to external providers of content for use by an insertion device. A manager may further specify the insertion point for transferring content from insertion device710to directories722-726as discussed above.

An attribute generator provides attributes for distribution of package items in a network. An attribute generator provides an attribute that corresponds to the directory classifiers used by an insertion device to transfer content to a directory. An attribute generator has knowledge of directory classifiers and/or of the directory structure so that as content is received from a directory, the attribute generator provides an appropriate attribute set for the content from the directory. An attribute set provided by an attribute generator may include any of the attributes discussed above with respect to a package item.

Package item generator730may inform attribute generator728of the directory accessed to retrieve content to form a package item. Attribute generator728provides an attribute set associated with the directory accessed to retrieve content. For example, each time package item generator730accesses directory724to receive content to form a package item, package item generator730requests attribute generator728to provide the attribute set associated with directory724.

A manager of the insertion server and/or the network provides the attribute set that corresponds to each directory. Because the manager provides the directory classifiers, instructions for transferring to a directory, creates the directories, and provides the attribute set associated with each directory, the manager, for the most part, controls the process of inserting content into the network. An external content provider may improperly construe the directory classifiers and place inappropriate content into a directory; however, directory classifiers are generally so simple, as discussed above, that an external provide may construe them without error.

Package item generator730may perform some or all of the functions of a package item generator discussed above. Package item generator730may receive content from a directory, an attribute set from attribute generator728and provide package items for distribution in a network.

In an implementation, attribute generator728provides an attribute set for content stored in directory722that was transferred to directory722in accordance with the content classifier indicating that the content is for Delta Airlines for use for domestic in-flight entertainment. Each time package item generator730receives content from directory722, attribute generator728provides an attribute set appropriate for the content. In this example, the attribute set may include a package identifier, a package item sequence number, an airline name with the value Delta, an activation date, a delivery date, an expiration date, and airport having values that correspond to the airports that originate domestic flights for Delta Airlines.

Content server emulator770may perform the functions of a content server emulator discussed above. The functions of content server emulator770may be performed by a content server of a network.

All or a portion of the functions of insertion server720may be perform by a content server of a network (e.g., server780). For example, insertion server720may be part of a fixed content server or a nomadic content server. In an implementation, insertion server720is located on an airplane, so that maintenance information from the plane may be inserted into the network via the nomadic content server on the plane for distribution to the plane owner or airline operator.

System800includes insertion device810and insertion server820. Insertion device810includes content generator812, abbreviated attribute generator814, external server816, and operator818. Insertion server820includes directory824, directory840, attribute select860, content select862, complete attribute generator870, package item generator880, and content server emulator890. Insertion server820may further include a package item queue (not shown), as discussed above, to buffer package items provided by package item generator880and received by content server emulator890. Insertion device810communicates with insertion server820via connection850, so connection850represents the insertion point. Because insertion server820is part of the network, line852represents the line between the external system (810) and internal system (820,892).

Content generator812performs the functions discussed above with respect to a content generator.

An abbreviated attribute generator provides a set of attributes having a value for some or all of the attributes and/or some or all of the values for the attributes. The attribute set may be a subset or the entirety of the attribute set used to distribute content in a network. An abbreviated attribute generator provides an attribute set and values for attributes in accordance with the content provided by a content generator. An operator may provide information about the content to the abbreviated attribute generator, so that the abbreviated attribute generator may generate an appropriate set of attributes. Operator718may include an electronic device that receives a description of the content from content generator812, as discussed above, for use by abbreviated content generator814to produce a set of attributes. Operatory718may include a human operator that receives information regarding content from content generator812or another source and provides information to abbreviated attribute generator814for generation of an attribute set.

For example, content generator812may receive information, likely from a human operator, that the content being generated is for American Airlines eastbound domestic flights. Content generator812may include the information from the human operator into the content file as metadata. Because the information necessary to produce the abbreviated attribute has been embedded into the content file, operator818includes an electrode device for receiving the metadata and providing the metadata to abbreviated attribute generator814. Abbreviated attribute generator814uses the metadata to produce an abbreviated set of attributes and provides the set of attributes to external server816.

External server816receives content from content generator812and an abbreviated set of attributes from abbreviated attribute generator814. External server814transfers the content and the abbreviated attribute set to insertion server820. External server814transfers content and abbreviated attributes to directories in a storage system of insertion server820. In this example, external server816controls the creation, deletion, and maintenance of directories in insertion server820. External server816may use any criteria for creating a directory for transfer of content. For example, external server816may create one directory for each airline, one directory for all domestic flights regardless of airline, one directory for each airport, and/or one directory for each gate at each airport. External server816creates directories in accordance with its policy and transfers content and abbreviated attribute sets to the directories in accordance with the policy.

A manager of the insertion server or network may provide external server816with information for accessing and managing directories in insertion server820. For example, a manager may provide a directory naming policy, a maximum amount of storage space, an IP address, an FTP address, instructions for accessing (e.g., read, write, delete) the storage space, and/or any information for transferring information to a specific location and/or file system using a conventional protocol.

Because insertion device810provides content with an abbreviated attribute set, insertion server820does not need to have knowledge of the criteria for creating each directory822or840. An abbreviated attribute (e.g.,826,832) provides enough information for insertion server820to complete the attribute set if necessary.

An external server may perform the functions of a content generator and an abbreviated attribute generator. An external server may perform some or all of the functions performed by an electronic operator. An external server may include a user interface (e.g., keyboard, monitor, software) for receiving information from and providing information to a human operator.

In an implementation, external server816users FTP to create and manage directories and to transfer data into the directories in the storage system of insertion server820. External server816uses FTP operations to create directories822and840. Using an FTP write command, external server816transfers content828and abbreviated attribute set826into directory822as file824, and content834and abbreviated attribute set832into directory822as file830. External server816may also create and transfer files to directory840or any other directory external server816creates. In this example, external server816creates directory822to hold content for Alaskan Airlines flights. File824may hold a movie. File830may hold music. Directory840may be created to hold content using a different criteria.

An attribute selector receives abbreviated attributes from files stored in a directory in any conventional manner. A content selector receives content from files stored in a directory in any conventional manner.

A complete attribute generator receives an abbreviated attribute set and augments the attribute set to form a complete attribute set for distributing content in a network. A complete attribute generator may add attributes and/or provide values for attributes to a set of attributes provided by abbreviated attribute generator814. A complete attribute generator may receive information from a manager of a network for forming a complete attribute set in accordance with an abbreviated attribute set.

In the event that abbreviated attribute generator814provides a complete attribute set, complete attribute generator870may perform the function of verifying the structure and content of the attribute set and flagging any potential issues as opposed to providing additional attributes and/or values. An abbreviated attribute generator may provide a complete attribute set in the manner discussed above with respect to system600. In a system in which abbreviated attribute generator814provides a complete set of attributes and no verification is needed, complete attribute generator870may be eliminated from insertion server820.

Package item generator880may perform some or all of the functions of a package item generator discussed above. Package item generator880receives content from content select862and the complete attribute set associated with the content from complete attribute generator870to generate a package item.

Content emulator890may perform some or all of the functions of a content emulator discussed above. A content emulator receives package items from package item generator880for distribution in the network. Content emulator890may provide package items to content server892.

As discussed above, the functions of a content emulator may be performed by a content server of the network. As further discussed above, the functions of an insertion server may be performed by a content server. The memory of a content server may be used as a storage area for establishing directories. A content server may cooperate with an external server to create and manage directories as instructed by the content server. A content server may perform the functions of attribute select860, content select862, complete attribute generator870, and package item generator880.

Content may be received (e.g., extracted, removed) from a network in accordance with attributes of the content. Extraction of content is discussed above with respect to extraction device278and390. Content may be extracted from a network from any content server in the hierarchy of the network. A device (e.g., server, computer) that extracts content from a network does not need to be a content server in the network. A device that extracts content may be external to the network. A device may cooperate with a content server of the network to extract content from the network in accordance with a set of attributes.

A connection, whether wired or wireless, between a device that extracts content and a content server of the network may be referred to as an extraction point. An extract point may define an interface between a system that is external to the network and a system that is internal to a network. An extraction point may be established using any conventional communication and/or file transfer protocol. An extract point may be established over any conventional medium including wired and/or wireless networks.

System900extracts content from a network that distributes content in accordance with attributes. System900includes extraction server910and extraction device950. Extraction server910includes content server920and transfer device940. Content server920includes attributes922. Transfer device930includes directory generator932, directory queue934, content queue936, and transfer server938. Extraction device950includes directory952, directory954, directory956, and external server958. Extraction server910communicates with extraction device750via connection940, so connection940represents the extraction point. Because extraction server910is part of the network, line942represents the line between the internal system (910) and the external system (950).

An extraction server receives content from a network that distributes content in accordance with attributes. An extraction server provides content to an extraction device. An extraction server may communicate with an extraction device using any conventional communication and/or file transfer protocol. An extraction server may transfer content to an extraction device using any conventional medium (e.g., wired, wireless, network, direct connection).

An extraction device is a device (e.g., computer, server) that is external to the network. A manager of an extraction device may provide a manager of the network with a description of the data the extraction device would like to receive. A network manager may use the description to form an attribute set of a content server for receiving the desired content. Upon receipt of content, the extraction server may transfer the information to the extraction device. An extraction device may use content extracted from the network for any purpose.

An extraction server may transfer content to an extraction device via an extraction point. An extraction point includes any conventional connection for transferring information.

In an implementation, content server920performs the functions of a content server of a network that distributes content in accordance with attributes. Content server920may be a fixed content server or a nomadic content server. Content server920may perform the functions of a parent and/or a child content server. A fixed content server that performs the functions of an extraction server may extract content from a network for provision to a geographically fixed location. For example, a fixed content server may extract airplane maintenance information inserted into the network by airplanes at any location in the network. The maintenance information would be distributed via the network to the fixed content server that extracts the maintenance content for provision to the offices of the airline or airplane owner.

A nomadic content server that performs the functions of an extraction point may extract content from a network for use by the nomadic vehicle or the personnel of the nomadic vehicle. For example, a nomadic content server on an aircraft may receive content for the in-flight entertainment system of the aircraft. Upon receipt of the content, the nomadic server on the aircraft may transfer the entertainment content to the in-flight entertainment system for use by passengers in the plane.

Content server920includes at least one set of attributes for receiving the content desired by the extraction device. A manager of extraction device950provides a manager of content server920or the network with a description of the characteristics of the information to be transferred to extraction device950. The manager of content server920generates (e.g., develops, creates, configures) one or more sets of attributes922for use by contents server920. Using attributes920, content server920receives the information that extraction device950desires to receive.

For example, an airline (e.g., Southwest) may desire to receive information from each crew of its aircraft for each flight. Such information may include the name of the crew on the flight, the functions perform by each crew member, and reportable incidents (e.g., passenger illness, passenger unruliness, food shortages, food surpluses, directives from the captain, crew illness, technical difficulties with equipment) detected by crew members. A manager of content server920would develop an attribute set, as described above, that would permit content server920to receive all crew information for all Southwest flights. A set of attributes may be developed so that content server920receives content having other attributes (e.g., maintenance data, aircraft system data, fuel consumption data, take-off times, touch-down times, weight).

An extraction device may set aside storage for receipt of content from an extraction server. An extraction device may provide instructions for transferring content to the storage area of the extraction device. An extraction device may provide information (e.g., IP address, FTP address, conventional transfer protocol information) for establishing a extraction point.

In an implementation, extraction device950and/or a manager of extraction device950creates directories952,954, and956for receiving content from extraction server910. Extraction device950specifies the attributes of the content for each directory. Extraction device950, or a manager of extraction device950, provides the directory information to a manager of extraction server910. The manager of extraction server910associates the attributes specified for receiving content at content server910with the directories created by content server950. The association information is incorporated into directory generator932.

A directory generator translates a set of attributes used to receive content into information for transferring the content into a directory of extraction device950. The information used for transferring content may include a directory name, a directory location, an IP address, an FTP address, or any information for transferring data using a conventional communication and/or file transfer protocol. A transfer server uses the information provided by directory generator932to transfer content to an appropriate directory in extraction device950.

Content queue936performs the functions of a content queue discussed above. Directory queue934queues directory information provided by directory generator934. Content queue936and directory queue934cooperate to provide the directory information that is associated with the proper content.

A transfer server receives content and directory information. A transfer server transfers the content to the directory indicated by the directory information. A transfer server may use any conventional communication and/or file transfer protocol to transfer information to a directory of extraction device950. In an implementation, transfer system938receives content from content queue936and directory information from directory queue934. Transfer server938uses the directory information to transfer the associated content to a directory (e.g.,952,954,956) of extraction device950. The directory information from directory queue934enables transfer server938to transfer content to a directory established to receive content having the attributes of the content transferred.

For example, extraction device950may be operated by United airlines. United airlines may wish to receive maintenance information from each aircraft after each leg of a flight, crew information, usage of in-flight paid services, time of arrival information, departure time information, and food and beverage consumption information. A manager of the United extraction device provides a description of the content that United wishes to receive, a description of the directories established to receive the content, and instructions on how to access the directories. The manager of content server920develops one or more sets of attributes so that content server920will receive the content desired by United. The manager of the systems on each United aircraft configures the systems of the aircraft to provide the desired content to an insertion device on the aircraft. The insertion device will provide a set of attributes for the desired content so that the content may be distributed through the network in accordance with the attributes and received by content server920. The manger of the nomadic content server on each United aircraft configures the nomadic content server on each aircraft to receive the content inserted into the network by the aircraft insertion device.

As an aircraft operates, the systems on the aircraft provide information to the insertion device on the aircraft. The insertion device cooperates with the nomadic content server, which performs the functions of an insertion server discussed above, to provide a set of attributes for the content. The nomadic content server receives the content from the insertion device and forms package items. Upon touch-down at an airport, the nomadic contents server transfers the package items to a fixed content server at the airport where the aircraft is presently located. The package items are distributed through the network in accordance with the attributes of each package item. Content server920receives the package items in accordance with the one or more sets of attributes of content server920. Content server920transfers the content to an appropriate directory in extraction device950as discussed above.

External server958may access the directories952-956to retrieve the content. External server958may transfer content to any person and/or system using any conventional protocol. External server958may provide information (e.g., amount transferred, amount retrieved, errors, storage available, transfer rates, statistics therefor) regarding the content transferred to directories of extraction device950. External server958may further be used to manage the directories of extraction device950.

A content server may perform all of part of the functions of a transfer device.

The foregoing description discusses preferred embodiments of the present invention, which may be changed or modified without departing from the scope of the present invention as defined in the claims. Examples listed in parentheses may be used in the alternative or in any practical combination. As used in the specification and claims, the words ‘comprising’, ‘including’, and ‘having’ introduce an open ended statement of component structures and/or functions. In the specification and claims, the words ‘a’ and ‘an’ are used as indefinite articles meaning ‘one or more’. While for the sake of clarity of description, several specific embodiments of the invention have been described, the scope of the invention is intended to be measured by the claims as set forth below.