DETAILED ACTION
In a communication received on 8 May 2026, the applicants amended claims 1, 8, 15, and 25.
Claims 1, 2, 4, 6-9, 11, 13-16 and 19-26 are pending.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Response to Arguments
Applicant’s arguments with respect to claim(s) 1, 8, 15, and 25 have been considered but are moot because the new ground of rejection does not rely on any reference applied in the prior rejection of record for any teaching or matter specifically challenged in the argument.
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim(s) 1, 2, 4, 6-9, 11, 13-16 and 19-26 is/are rejected under 35 U.S.C. 103 as being unpatentable over Pyla (US 2015/0288638 A1) in view of Malladi et al. (US 2017/0060574 A1), and further in view of Meijer et al. (US 2011/0138403 A1).
With respect to claim 1, Pyla discloses: a system for parsing multi-part data content, for use with a microservices or other computing environment (i.e., an event-driven parser receives multipart MIME content in successive chunks and incrementally parses its constituent messages in Pyla, ¶0003; ¶0018) , comprising:
a computer including one or more processors, that provides access to a microservices or other computing environment, for use with software applications (i.e., a processor-based parsing server with memory, network interface, storage, and parser software provides an application-capable computing environment in Pyla, ¶0010); and
a multi-part publisher that operates to parse multi-part data content (i.e., an event-driven MIME parser integrated with an application receives chunked multipart content and parses it iteratively in Pyla, ¶0003; ¶0018);
a parser iterator that operates to hold a parser state and produce parsing events associated with the stream of data parts from the upstream publisher (i.e., a MIME context retains current-message, nesting-depth, and parser-state information across chunks and is updated as parsing events occur in Pyla, ¶0022; ¶0024); and
a body part publisher that processes the stream of data parts received from the upstream publisher via the outer subscriber, for use by an inner subscriber (i.e., the parser recognizes a content body within the MIME multipart, updates that body's position in the MIME context, and pushes intermediate results to an injectable process in Pyla, ¶0023);
the outer subscriber initially requests one or more data chunks comprising the data parts from the upstream publisher (i.e., a read API specifies the amount of bytebuffered MIME data requested, and the requested chunk is delivered on a callback in Pyla, ¶0016);
in response to the parser iterator producing an end headers event, a body part publisher instance is created for use with the one or more data parts (i.e., MIME headers identify the multipart boundary; after the boundary, the parser recognizes the content body, updates its context, and exposes intermediate body results to an injectable process in Pyla, ¶0019; ¶0023).
Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses:
wherein the system supports processing of streams involving one or more publishers and subscribers, wherein a publisher publishes a stream of data, and a subscriber consumes the data (i.e., clients publish and subscribe to stream topics, and a stream-processing graph defines producer-consumer relationships and directed information flow in Malladi, ¶0174; ¶0175),
wherein the multi-part publisher comprises: an outer subscriber that operates to control flow of a multi-part data item as a stream of data parts provided by an upstream publisher (i.e., downstream demand controls upstream pulling: zero demand stops further pulls without blocking, and the actor resumes from its remembered stream position when demand returns in Malladi, ¶0177);
wherein the inner subscriber operates on the stream of data parts via the multi-part publisher (i.e., sink nodes receive processed stream information, while downstream demand determines whether processing nodes pull more from their upstream sources in Malladi, ¶0175; ¶0177),
including that: the inner subscriber is associated with a request for the multi-part data item to be provided as the stream of data parts (i.e., a receiver initiates pull requests, clients subscribe to stream topics, and downstream demand governs continued upstream retrieval in Malladi, ¶0077; ¶0174; ¶0177);
wherein the body part publisher continues to receive additional data chunks comprising the data parts of the multi-part data item from the upstream publisher, controlled by subsequent requests from the inner subscriber, (i.e., downstream demand gates upstream pulling; when demand is zero the stream actor stops pulling and resumes from remembered stream position when demand returns in Malladi, ¶0177),
wherein until the inner subscriber invokes or requests a new data body part the parser iterator suspends production of new parsing events associated with the stream of data parts from the upstream publisher (i.e., zero downstream demand prevents further upstream pulls without blocking a thread, while the actor preserves its place for later resumption in Malladi, ¶0177).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses:
the inner subscriber is attached to the body part publisher instance by invoking subscribe on the body part publisher instance, wherein the inner subscriber attached to the body part publisher instance operates as a nested list on a stream of streams of the data chunks received from the upstream publisher (i.e., an observable associates an observer with the push collection, and nested event streams are processed through SelectMany or Flatten in Meijer, ¶0039; ¶0059; ¶0062)
, and wherein the body part publisher waits for a request from the inner subscriber to request more data chunks, until completion of the stream of data parts from the upstream publisher, whereupon the parser iterator produces an end part event, and the body part publisher notifies the inner subscriber that processing of the stream of data parts has completed (i.e., a pull protocol advances through available items and an observer receives OnCompleted when the end of the push-based collection is reached in Meijer, ¶0035; ¶0041; ¶0042).
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
With respect to claim 2, Pyla discloses: the system of claim 1, wherein the multi-part data item is a Multipurpose Internet Mail Extensions (MIME) data item (i.e., multipart content contains MIME headers, boundary delimiters, and multiple parts separated by the boundary specified in Content-Type in Pyla, ¶0019).
With respect to claim 4, Pyla discloses: the system of claim 1, the body part publisher operates as an instance that sends data chunks to the inner subscriber (i.e., the parser recognizes a content body within the MIME multipart, updates that body's position in the MIME context, and pushes intermediate results to an injectable process in Pyla, ¶0023).
Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses: wherein: the outer subscriber operates to control a flow of data chunks (i.e., downstream demand controls upstream pulling: zero demand stops further pulls without blocking, and the actor resumes from its remembered stream position when demand returns in Malladi, ¶0177).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses: the inner subscriber operates as an entity attached to the body part publisher, so that the inner subscriber can operate on a stream of streams of data chunks (i.e., nested observable event streams are associated with observers and can be processed through SelectMany or Flatten while preserving each inner stream in Meijer, ¶0039; ¶0059; ¶0062).
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
With respect to claim 6, Pyla discloses: the system of claim 1, wherein an outer subscriber can initially request one or more data parts from an upstream component (i.e., the parser’s input API controls the amount requested and retrieves multipart content iteratively as chunks become available in Pyla, ¶0016).
Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses: wherein the system can request one data part at a time, to reduce backpressure (i.e., receiver-initiated pull and zero-demand stopping permit upstream retrieval to be bounded to the next requested unit, including one part at a time in Malladi, ¶0077; ¶0177).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
With respect to claim 7, Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses: the system of claim 1, wherein the microservices or other computing environment is provided within a cloud computing environment that provides access to cloud, database, or other systems or services (i.e., a stream-processing software stack runs as services across edge and cloud, exposes applications through an SDK, and can publish data to cloud storage in Malladi, ¶0064; ¶0069).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
With respect to claim 8, the limitation(s) of claim 8 are similar to those of claim(s) 1. Therefore, claim 8 is rejected with the same reasoning as claim(s) 1.
With respect to claim 9, the limitation(s) of claim 9 are similar to those of claim(s) 2. Therefore, claim 9 is rejected with the same reasoning as claim(s) 2.
With respect to claim 11, the limitation(s) of claim 11 are similar to those of claim(s) 4. Therefore, claim 11 is rejected with the same reasoning as claim(s) 4.
With respect to claim 13, the limitation(s) of claim 13 are similar to those of claim(s) 6. Therefore, claim 13 is rejected with the same reasoning as claim(s) 6.
With respect to claim 14, the limitation(s) of claim 14 are similar to those of claim(s) 7. Therefore, claim 14 is rejected with the same reasoning as claim(s) 7.
With respect to claim 15, the limitation(s) of claim 15 are similar to those of claim(s) 1. Therefore, claim 15 is rejected with the same reasoning as claim(s) 1.
With respect to claim 16, the limitation(s) of claim 16 are similar to those of claim(s) 2. Therefore, claim 16 is rejected with the same reasoning as claim(s) 2.
With respect to claim 19, the limitation(s) of claim 19 are similar to those of claim(s) 6. Therefore, claim 19 is rejected with the same reasoning as claim(s) 6.
With respect to claim 20, the limitation(s) of claim 20 are similar to those of claim(s) 7. Therefore, claim 20 is rejected with the same reasoning as claim(s) 7.
With respect to claim 21, Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses: the system of claim 1,
wherein until the inner subscriber invokes or requests a new data part, the parser iterator is not required to produce new events from the upstream, and is suspended (i.e., zero downstream demand prevents further upstream pulls without blocking a thread, while the actor preserves its place for later resumption in Malladi, ¶0177)
; and wherein subsequently the parser iterator will observe data parts and attempt to invoke drain on the inner subscriber (i.e., when downstream demand returns, a message-driven stream actor resumes pulling from its remembered position to satisfy that demand in Malladi, ¶0177)
, wherein the body part publisher will wait for a request from the inner subscriber to request more data (i.e., the stream actor does not pull from upstream while downstream demand is zero and resumes only when downstream demand arrives in Malladi, ¶0177).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
With respect to claim 22, Pyla discloses: the system of claim 21, wherein when the body part publisher is drained, then the body part publisher operates to receive a next data part (i.e., after the current stored data is consumed, the next arriving chunk is appended to the retained MIME context and parsing continues in Pyla, ¶0025),
including if the parser iterator indicates there are no more events, then requesting further data parts from the upstream. (i.e., when another chunk becomes available the event-driven MIME parser retrieves it and continues from retained context in Pyla, ¶0018).
With respect to claim 23, Pyla discloses: the system of claim 21, and the outer subscriber waits for more data parts to be received from the upstream (i.e., after one chunk/part is processed, the parser remains able to append the next arriving chunk and continue dynamic multipart parsing in Pyla, ¶0025).
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses: wherein upon the parser producing an end part event, the body part publisher notifies the inner subscriber that processing has completed (i.e., an observer receives OnCompleted when the end of its push-based collection is reached and no further items remain in Meijer, ¶0041; ¶0042)
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
With respect to claim 24, Pyla discloses: the system of claim 1,
wherein the upstream publisher operates as a source to provide new data chunks as provided by a socket reader (i.e., a nonblocking I/O queue and bytebuffer deliver network-supplied data into the event-driven MIME parser in Pyla, ¶0016),
the body part publisher operates as an instance that sends data chunks that belong to a MIME data (i.e., the parser receives quantities of multipart MIME content, isolates each boundary-delimited content body, and pushes the parsed body results to an injectable process in Pyla, ¶0003; ¶0023).
Pyla discloses receiving multipart MIME content from a network layer, isolates content bodies, and iteratively parses the multipart as successive chunks arrive (¶0003; ¶0018). Pyla do(es) not explicitly disclose the following. Malladi, in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture (¶0064), discloses: the outer subscriber operates to control the flow of data chunks (i.e., downstream demand controls upstream pulling: zero demand stops further pulls without blocking, and the actor resumes from its remembered stream position when demand returns in Malladi, ¶0177).
Based on Pyla in view of Malladi, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Malladi to improve upon those of Pyla in order to improve scalability of real-time streams by utilizing the producer-consumer stream architecture.
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses: the inner Subscriber operates as an entity attached to the body part publisher, to operate in a manner of a nested list, on a stream of streams of data chunks (i.e., nested observable event streams are associated with observers and can be processed through SelectMany or Flatten while preserving each inner stream in Meijer, ¶0039; ¶0059; ¶0062).
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
With respect to claim 25, Pyla discloses: the system of claim 1, an order of events emitted by a multi-part MIME or other data content parser (i.e., MIME context preserves current-message, nesting-depth, and parser-state information, and recursive parsing continues in context as chunks arrive in Pyla, ¶0022; ¶0024).
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses:
wherein the system coordinates requirements imposed by an order of events issued by the upstream publisher (i.e., nested observable-stream operators preserve causality and the order of events from each source stream in the result stream in Meijer, ¶0060);
an order of events issued to downstream subscribers (i.e., each nested event stream’s order is preserved when mapped into the downstream result stream in Meijer, ¶0060).
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
With respect to claim 26, Pyla discloses: the system of claim 1,
wherein when the body part publisher is drained, then the body part publisher can receive a next chunk of data (i.e., after the current stored data is consumed, the next arriving chunk is appended to the retained MIME context and parsing continues in Pyla, ¶0025),
wherein if the parser iterator says there are no more events, then body part publisher can request further chunks from upstream (i.e., when another chunk becomes available the event-driven MIME parser retrieves it and continues from retained context in Pyla, ¶0018)
wherein the outer subscriber can wait for more data body parts (i.e., after one chunk/part is processed, the parser remains able to append the next arriving chunk and continue dynamic multipart parsing in Pyla, ¶0025); and
data can again be received from upstream (i.e., when further data arrives, the parser appends it to retained MIME context and resumes recursive dynamic parsing in Pyla, ¶0025).
Pyla discloses a content body, records its position in the MIME context, and pushes intermediate body results to an injectable process (¶0022; ¶0023). Pyla and Malladi do(es) not explicitly disclose the following. Meijer, in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators (¶0067), discloses:
wherein once the parser iterator produces an end part event, then the body part publisher can notify the inner subscriber that the processing has completed (i.e., an observer receives OnCompleted when the end of its push-based collection is reached and no further items remain in Meijer, ¶0041; ¶0042);
until receipt of an on complete event (i.e., OnCompleted is invoked when the end of a push-based collection is reached and no additional items will be supplied in Meijer, ¶0041; ¶0042).
Based on Pyla in view of Malladi, and further in view of Meijer, it would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to utilize the teachings of Meijer to improve upon those of Pyla in order to reduce difficulty of asynchronous push streams through standardized observable-sequence interfaces and operators.
Conclusion
Applicant's amendment necessitated the new ground(s) of rejection presented in this Office action. Accordingly, THIS ACTION IS MADE FINAL. See MPEP § 706.07(a). Applicant is reminded of the extension of time policy as set forth in 37 CFR 1.136(a).
A shortened statutory period for reply to this final action is set to expire THREE MONTHS from the mailing date of this action. In the event a first reply is filed within TWO MONTHS of the mailing date of this final action and the advisory action is not mailed until after the end of the THREE-MONTH shortened statutory period, then the shortened statutory period will expire on the date the advisory action is mailed, and any nonprovisional extension fee (37 CFR 1.17(a)) pursuant to 37 CFR 1.136(a) will be calculated from the mailing date of the advisory action. In no event, however, will the statutory period for reply expire later than SIX MONTHS from the mailing date of this final action.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to SHERMAN L LIN whose telephone number is (571)270-7446. The examiner can normally be reached Monday through Friday 9:00 AM - 5:00 PM (Eastern).
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Joon Hwang can be reached on 571-272-4036. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
Sherman Lin
7/26/2026
/S. L./Examiner, Art Unit 2447
/JOON H HWANG/Supervisory Patent Examiner, Art Unit 2447