US 20150261625A1 (19) United States (2) Patent Application Publication (10) Pub. No.: US 2015/0261625A1 Cape et al. (43) Pub. Date: Sep. 17, 2015

(54) TECHNIQUES FOR MESSAGE Publication Classification RETRANSMISSION MECHANISM (51) Int. Cl. (71) Applicant: IEX Group, Inc, New York, NY (US) G{}6F II/14 (2006.01) (52) U.S. CI. (72) Inventors: James Michael Cape, New York, NY CPC ...... G06F II/I469 (2013.01) (US); Robert Park, New York, NY (US); Allen Zhang, Princeton, NJ (US); Zoran Perkov, Brooklyn, NY (US); (57) ABSTRACT Lieting Yu, Warren, NJ (US); Prerak Pukhraj Sanghvi, Jersey City, NJ (US); Beau Tateyama, New York, NY (US); Embodiments of the Message Retransmission Mechanism Constantine Sokoloff, Jersey City, NJ Apparatuses, Methods and Systems (“MRM”) transform (US); Eric Quinlan, Norwalk, CT (US) application requests for message journals via MRM compo ments into expedited access to segmented message streams. In (21) Appl. No.: 14/644,606 one implementation, the MRM may obtain message journal (22) Filed: Mar. 11, 2015 of written by applications during system operations and divide up the message obtained from the complete mes Related U.S. Application Data sage journal into message segments. In some implementa (60) Provisional application No. 61/951,364, filed on Mar. tions, the MRM may provide recovering applications access 11, 2014, provisional application No. 61/951,390, to said message segments for expedited message consump filed on Mar. 11, 2014. tion.

Application Afailed earlier. So it is trying MRM provides message retransmission 1.01 to catch upon a? the activities the other through segmentedjournals, andlor through apps have been up to. That Wi?increase multiple duplicate copies of the complete PLEASE our recovery time since other journal so that applications receive expedited TAKE A applications are continually writing into aCCéSS to journals. 106 NUMBER the journal. 104

MRM 105

How long does it take to write a message into the journal? 103

Example Embodiment. Application Message Journaling Management Patent Application Publication Sep. 17, 2015 Sheet 1 of 5 US 2015/0261625 A1

Patent Application Publication Sep. 17, 2015 Sheet 2 of 5 US 2015/0261625 A1

Patent Application Publication Sep. 17, 2015 Sheet 3 of 5 US 2015/0261625 A1

|0

eugnop Patent Application Publication Sep. 17, 2015 Sheet 4 of 5 US 2015/0261625 A1

Patent Application Publication Sep. 17, 2015 Sheet 5 of 5 US 2015/0261625 A1

g User Input Device : 4 11 : Input Output Peripheral Device(s) g Interface (IO)408 || Interface 407 i

Storage Device 4 14

: MRM component 435

MRM Dalabase 4 19

Users 4 193 Clients 4 195 AppS4 19C Messages 4 19q Journals 4 198

;|TCrypto Smr120 Mail Client 422 n Mail Server 421 Web Browser 4, 18 Info, Server 4 16 Use? Interface 4 17 : s (OS) 4 15

MRM Controller 401 US 2015/0261625 A1 Sep. 17, 2015

TECHNIQUES FOR MESSAGE failovers; generating, based on said estimated demand, one or RETRANSMISSION MECHANISM more journal copies and/or one or more journal segments by duplicating content of said master journal, each said journal CROSS-REFERENCE TO RELATED copy or journal segment being independently accessible by a APPLICATIONS single application or process at any given moment; and allo [0001] The present application claims priority to: (a) U.S. cating said one or more journal copies and/or said one or more Provisional Application No. 61/951,364, filed Mar 11, 2014; journal segments, upon demand, to some of said at least one and (b) U.S. Provisional Application No. 61/951,390, filed subset of said applications or processes that have experienced Mar. 11, 2014. The subject matter of the present application is failovers or a gap in said sequenced messages, such that related to the co-pending U.S. Utility Application Ser. No. multiple applications or processes can simultaneously access , filed , 2015, which claims priority to U.S. the content of said master journal, thereby expediting access Provisional Application No. 61/951,374, filed Mar. 11, 2014. to said sequenced messages in said master journal by said The subject matter of the present application is also related to some applications or processes in their recovery from said PCT International Application No. PCT/US2013/059558, failovers or said gap in said sequenced messages. filed Sep. 12, 2013. Each of the above-referenced related [0007] According to another particular embodiment of the applications is incorporated herein by reference in its entirety. present invention, a computer system implementing expe [0002] This application for letters patent discloses and dited message retransmission may comprise at least one com describes various novel innovations and inventive aspects of puter processor and at least one storage medium disposed in message retransmission mechanism and memory address communication with the at least one computer processor. The space management technologies (hereinafter “disclosure”) at least one storage medium may store computer instructions and contains material that is subject to copyright, mask work, to cause the at least one computer processor to: maintain, in and/or other intellectual property protection. The respective said at least one storage medium of the computer system, a owners of such intellectual property have no objection to the master journal of sequenced messages generated from a plu facsimile reproduction of the disclosure by anyone as it rality of messages written by applications or processes during appears in published Patent Office file/records, but otherwise operations of the computer system, at least one subset of said reserve all rights. applications or processes requiring access to said sequenced messages to function properly; determine an estimated FIELD demand for access to said sequenced messages by said at least one subset of applications or processes that may experience [0003] The present innovations generally address tech failovers; generate, based on said estimated demand, one or niques for application message journaling management, and more journal copies and/or one or more journal segments by more particularly, include Message Retransmission Mecha duplicating content of said master journal, each said journal nism Apparatuses, Methods and Systems (“MRM”). copy or journal segment being independently accessible by a BACKGROUND single application or process at any given moment; and allo cate said one or more journal copies and/or said one or more [0004] In one aspect of a computer system, during its opera journal segments, upon demand, to some of said at least one tions, software applications may write messages to a journal subset of said applications or processes that have experienced as they perform actions or react to external events. Apart from failovers or a gap in said sequenced messages, such that writing their own messages, software applications sometimes multiple applications or processes can simultaneously access access messages written by other applications. the content of said master journal, thereby expediting access to said sequenced messages in said master journal by said SUMMARY OF THE INVENTION some applications or processes in their recovery from said [0005] Embodiments of the Message Retransmission failovers or said gap in said sequenced messages. Mechanism Apparatuses, Methods and Systems (“MRM”) [0008] According to yet another particular embodiment of transform application requests for message journals via the present invention, a non-transitory computer readable MRM components into expedited access to segmented mes medium may have computer instructions which, when sage streams. In one implementation, the MRM may obtain executed, causes a computer system to implement expedited message journal of messages written by applications during message retransmission. The non-transitory computer read system operations and divide up the message obtained from able medium may comprise code for: maintaining, in a stor the complete message journal into message segments. In age medium of the computer system, a master journal of some implementations, the MRM may provide recovering sequenced messages generated from a plurality of messages applications access to said message segments for expedited written by applications or processes during operations of the message consumption. computer system, at least one subset of said applications or [0006] According to one particular embodiment of the processes requiring access to said sequenced messages to present invention, an expedited message retransmission function properly; determining an estimated demand for method for a computer system may comprise the steps of: access to said sequenced messages by said at least one subset maintaining, in a storage medium of the computer system, a of applications or processes that may experience failovers; master journal of sequenced messages generated from a plu generating, based on said estimated demand, one or more rality of messages written by applications or processes during journal copies and/or one or more journal segments by dupli operations of the computer system, at least one subset of said cating content of said master journal, each said journal copy applications or processes requiring access to said sequenced orjournal segment being independently accessible by a single messages to function properly; determining an estimated application or process at any given moment; and allocating demand for access to said sequenced messages by said at least said one or more journal copies and/or said one or more one subset of applications or processes that may experience journal segments, upon demand, to some of said at least one US 2015/0261625 A1 Sep. 17, 2015

subset of said applications or processes that have experienced (FIX) formatted messages such as, but not limited to order failovers or a gap in said sequenced messages, such that entry, modify, cancel, etc., trading messages, order confirma multiple applications or processes can simultaneously access tion reports, market data messages and/or the like. In some the content of said master journal, thereby expediting access embodiments, the applications may write into a journal to to said sequenced messages in said master journal by said record their activities as they exchange messages with other some applications or processes in their recovery from said applications and/or external third parties and process the mes failovers or said gap in said sequenced messages. sages and act upon them. In some embodiments, the applica [0009] One technical effect of the present invention is to tions may need to be apprised of the activities of some or all speed up the access to and consumption of a journal of of the other applications executing during system operation, sequenced messages by applications or processes which in and in some embodiments may need to access the message turn significantly speeds up the recovery of failed applica journal that may contain the messages written by all applica tions or processes. tions. For example, an application 101 may have a gap in its [0010] Another technical effect of the present invention is consumption of journal messages and may need to access the the dynamic adjustment or control of journal access by mul journal to fill the gap. For instance, the application may have tiple applications or processes including load-balancing crashed and/or dropped messages as a result of transmission among journal copies/segments based on an estimated issues (e.g., at the network layer, etc), and it may need to demand for journal access. recover the missing messages from the journal. In some [0011| Other benefits, advantages, or technical effects may embodiments, it may also need to write messages of its own be appreciated by those of ordinary skill in the art reading the into the journal. disclosure herein and/or by practicing one or more embodi [0020] In some implementations, an application 101 may ments of the present invention. need to access the journal regularly to re-access missed mes sages and fill any gaps in its journal message consumption. In BRIEF DESCRIPTION OF THE DRAWINGS some implementations, an application’s repeated requests to [0012] The accompanying appendices, drawings, figures, the messages of a journal may interfere with other applica images, etc. illustrate various exemplary, non-limiting, inven tions’ 102 requests for access to the same journal. For tive aspects, embodiments, and features (“e.g.,” or “example example, a request by an application 101 may compete with (s)”) in accordance with the present disclosure: the requests of other applications 102 and result in a queue of [0013] FIG. 1 shows block diagrams illustrating examples applications waiting for their turn to access the journal, e.g., of the MRM providing application message journaling man 103. In some implementations, the waiting applications may agement according to an embodiment of the present inven themselves be trying to recovermissing messages, and as they tion; wait for the journal to become available, they may end up [0014] FIG. 1A shows a flow chart illustrating one exem falling further behind in their recovery. For example, other plary process for message journaling management according applications may be writing into the journal while an appli to an embodiment of the present invention; cation is waiting, resulting in an increased recovery time for [0015] FIG. 2 shows a diagram illustrating examples of the waiting application as it may need to access the messages providing applications via an MRM component duplicates of written into the journal when the application was in a queue, complete message journals for recovery according to e.g., 104. In some implementations, this may create a chain embodiments of the present invention; reaction of increasing wait and recovery time for subsequent [0016] FIG. 3 shows a datagraph diagram illustrating waiting applications and may result in degraded performance examples of providing applications via an MRM component for the waiting applications and/or the system as a whole. stream segmented message journals for recovery according to [0021] In some implementations, the MRM may provide embodiments of the present invention; the applications an expedited access to journals via the gen [0017|| FIG. 4 shows a block diagram illustrating examples eration of multiple duplicate copies and segmentation of the of an MRM controller according to embodiments of the complete message journal, e.g., 106. For example, the MRM present invention; may avail to the applications a series of journals giving the applications more than one source to recover from. In these DETAILED DESCRIPTION OF THE INVENTION embodiments, the process of accessing journals may be more [0018] Embodiments of the Message Retransmission load-balanced in that there may be more queues but shorter Mechanism Apparatuses, Methods And Systems (hereinafter OIlêS. “MRM”) may transform application requests for message [0022] In some embodiments, even the shorter queues may journals, via MRM components, into expedited access to have a long wait time though. For example, a recovering segmented message streams. application may have a large amount of messages to catch up [0019] FIG. 1 shows block diagrams illustrating examples with, and as such may take a long time at a journal, causing a of the MRM providing application message journaling man long delay for other applications in the queue, however short agement to applications needing access to message journals. the queue is. Accordingly, the MRM may further provide for In some implementations, applications write messages to a an expedited turnaround at a journal access point by splitting journal as they perform actions and/or react to external events up the complete message journal into several segments and during normal system operations. For example, applications availing the segments to several applications simultaneously. may need to receive and process messages that come from For example, applications may proceed from one segmented external parties, such as but not limited to messages related to journal to another obtaining the relevant messages they need securities transactions and markets. For example, the soft for recovery but without spending extended amount of time at ware applications of an electronic trading system may be one journal and causing delay to other applications that need exchanging and processing Financial Information eXchange access to the journals for recovery. US 2015/0261625 A1 Sep. 17, 2015

[0023] With reference to FIG. 2, in some implementations, embodiments, if the disconnected application still has a mes applications 207 may write messages to a journal 201 as they sage gap, it may proceed to other journals that contain the perform actions or react to external events. In some imple relevant message segments and access those messages from mentations, the applications 208-209 may be reading the these journals. In some embodiments, the time each applica messages of other applications and keeping abreast of all the tion spends at a given journal may be limited, allowing for activities during system operations. For example, application shorter and faster queues of applications waiting for access to A may write messages in the first three rows of journal 201, messages stored in journals. For example, with segmented and a subsequent application B may read these messages as it message journals, the time each application spends on any is also writing its own messages on the batch of available given journal may be less than it would have spent on a journal rows in the journal (e.g., the next three rows). In some imple mentations, an application 210 may have experienced a gap in with a complete message, and as such may lead to a faster its consumption of the journalled messages. For example, the message gap filling for applications trying to receiver missed application may have dropped messages as a result of trans messages, e.g., 312. mission issues at the network layer and now may need a [0027] FIG. 1A shows a flow chart illustrating one exem means to recover the lost messages, e.g., 211. In some imple plary process for message journaling management according mentations, there may be other applications that may seek to an embodiment of the present invention. The exemplary access to the journal for their own recovery needs and a queue process orits variations may be implemented in any computer may form if there is only one journal, or the number of journal system where the order or sequence by which events occur is copies available is not sufficient to meet the demands of the important. For example, the computer system may be an applications in queue. In some implementations, the MRM electronic trading system, an auction-based sale system, or a may provide duplicate copies 202-204 of the complete mes gaming system. For illustration, the preferred embodiments sage journal to allow applications expedited access to missed are described in the context of an electronic trading system messages, e.g., 213. For example, if one journal is occupied such as one implemented by a securities exchange. by a given application, otherapplications may recovermissed messages from one of the other available journals that may be [0028] In Step 110, the computer system may maintain a duplicates of the first journal, e.g., 212. master journal of sequenced messages in its storage medium. For example, in an electronic trading system for financial [0024] In some implementations, even with multiple dupli such as stocks and bonds, the core software appli cate journals, a queue may form if one application occupies a cations, such as FIX order entry/trading gateways, matching journal for an extended period of time. For example, an appli engine, market data applications, reference data applications, cation may be starting up fresh and/or may have missed a and post-trade integration applications may be running on large amount of messages. For example, the application may one or more computer servers simultaneously, and the appli have started later in the day and may need to catch up to all of cations all communicate via a central messaging bus and the messages that may have already been processed. In some thereby generate a large number of messages at any given implementations, it may take the application a long time to moment. These messages may include but are not limited to recover and process all missed messages, occupying a single orders, trades, quotes, inter-application communication, and journal and causing a queue and delayed recovery for other so on. The un-sequenced messages are all routed through a applications that may need access to the journal. sequencer which arranges them into a sequenced stream [0025] With reference to FIG. 3, in some embodiments, according to the order in which they were processed/se applications 307-309 may write messages to a journal 301 as quenced. As a result, the sequencer continues to generate a they perform actions or react to external events, and may also high fidelity deterministic record (a.k.a. the “journal”) of all need to keep up with messages written by other applications messages in their right order. to the journal, as described in detail above with reference to FIG. 2. In some embodiments, an application recovering [0029] The journal is then republished or made available to missed messages may occupy the journal for an extended the components of the trading system which, to perform their time, and compete with the requests of other applications for respective functions, need access to the sequenced messages. access to same journal. In some embodiments, the MRM may If one of the components (e.g., an application or process, provide the applications an expedited access to journals via referred to hereinafter simply as “application”) has to recover the segmentation of the complete message journal and/or its from a failover, it must catch up with the ever-growing multiple duplicate copies, e.g., 311. For example, the MRM sequence of messages, by accessing the message journal, in may divide up the complete message journal into segments order to return to its intended functioning state. For instance, 302-304 and assign specific segments to specific journals to a crash of just 10 seconds could cause an application to miss avail the message segments to several applications simulta multiple millions of messages—it has to catch up with those neously, e.g., 313. millions of messages before it could function again. The [0026] In some embodiments, a disconnected application message journal is therefore critical to system recovery and 310 seeking to recover missed messages may obtain a seg redundancy. The message journal also helps an exchange to ment of the complete journal message from one segment, meet its books and records requirements. before moving on to the next journal to obtain another seg [0030] However, if a significant number of applications ment of the original complete message. In such embodiments, have failed, for example, during hardware failure of a server the time the application spends at each journal may be less supporting several applications, the demand for access to the than what it would have spent obtaining the complete mes message journal would spike, especially during busy trading sage from only one journal. For example, once the discon hours. With so many applications wanting to catch up on the nected application obtains the message segment from one message stream, they have to wait in a queue: if one applica journal, it may move on to another journal allowing other tion is “at the well” reading from the journal, another has to applications quicker access to said one journal. In some wait in line behind it. While they are waiting to catch up, the US 2015/0261625 A1 Sep. 17, 2015 number of journalled messages keeps growing, causing those [0035) A number of options may be available to configure applications (which are attempting to quickly recover) to fall the number of journal copies or journal segments. For further behind. instance, instead of having a single queue with 10 applica [0031] Accordingly, it is desirable to estimate (in Step 112) tions where only the first application could access the journal, the demand for access to the message journal by failed appli the journal content may be replicated to a journal copy so that cations. It may be predicted or forecasted, based on current 2 copies of the same journal may be allocated to the 10 and/or past performance of the computer system, which hard applications—2 queues with 5 applications per queue. Better ware and/or software component(s) might experience a fail yet, 5 copies of the same journal could be made available to ure and which or how many applications might be impacted the 10 applications—5 queues with 2 applications per queue, by the failure. A number of factors may be considered to allowing 5 applications to access the journals. As a result, the determine the estimated demand for journal access, including recovery time for the 10 applications may be significantly but not limited to known or potential software failures, known shortened. or potential hardware failures, the number of applications or [0036) Alternatively, to the extent the 10 applications need processes affected by a software or hardware failure, the to access different portions of the message journal, one or speed at which an application or process accesses messages in more journal copies may be further divided into journal seg the journal, a journal copy, or a journal segment, a desired ments where each segment contains a subset of the message recovery time for a failed application or process (e.g., how journal having a shorter stream of sequenced messages. For fast or the maximum amount of time it takes to fully recover), instance, with the 10 failed applications, 3 journal copies may and expected workload of the computer system (which may be created and one of the journal copies may be further split vary depending the time of day or day of the week, for into three journal segments. Accordingly, 5 queues may be example). formed with 2 applications in each queue, where two queues [0032) Based on the estimated demand, the computer sys of applications access two of the whole journal copies while tem may be configured to generate one or more journal copies three queues access the three journal segments. In either (in Step 114) by duplicating content of the master journal approach (with or without journal segments), further load and/or generate one or more journal segments (in Step 116) balancing may be applied to the queues of applications, for by duplicating content of the master journal. According to example, to adjust their respective assignments of the journal embodiments of the present invention, the journal segments copies and/or journal segments. may be generated either directly from the master copy (or [0037] After the journal copies and/or journal segments “golden copy”) of the message journal or from one of the have been generated and allocated to the applications (e.g., journal copies created in Step 114. The generation of the either pre-assigned to the applications or allocated upon journal copies and/or journal segments may be accomplished demand), the computer system continues to accumulate more with a dedicated software or hardware module such as a messages in the journalled sequence. Thus, while the “golden repeater. copy” of the message journal is constantly updated with the [0033] Next, in Step 118, the journal copies and/or journal latest sequenced messages. segments may be allocated to failed applications to expedite [0038] However, content of the previously created journal their recovery. The allocation could be achieved in a number copies/segments may become outdated and incomplete. of ways. For example, the journal copies or segments may be [0039] In the case of multiple complete journal copies, each pre-assigned to the failed applications or the applications to journal copy may continue to read the sequenced stream, the journal copies/segments. Alternatively (and more prefer adding to its own journal, and it can do this without concern ably), an application may simply request access to a specified for becoming out of sync with other journal copies because portion of the journal content and waits until it finds an the stream is sequenced and hence deterministic—all journals unoccupied journal copy/segment—much like some grocery have all messages in the same order according to their store checkout lines where customers form a single queue sequence . If any messages are missed, then a journal served collectively by multiple cashiers and the first person in copy will re-request from another journal copy to back-fill line goes to the cashier who becomes available next. Prefer missing messages. Once messages are filled, it recommences ably, the number of journal copies/segments is sufficiently reading from the stream in real-time. large to accommodate the total number of failed applications [0040] In the case of segmented journals, each journal seg such that none of the applications has to wait in a long queue ment, once complete, will become static and only the next for its turn. According to one embodiment, the journal copies/ actively building segment will be active. For example, if each segments may be enough to allow immediate access by each segment holds 10 messages, and 35 messages have been of the failed applications or to be allocated to queues with no written to the stream you will have 3 complete and static more than 2-3 applications in each queue. segments, and one actively building segment with 5 of its 10 [0034] For a more specific example, if one microsecond message capacity filled. If it successfully reads the remaining (i.e., 1000 nanoseconds) is chosen as the maximum recovery 5 messages it becomes static and a fifth segment begins. If it time and it is estimated 10 failed applications have to recover misses any messages, let’s say it dropped message #8, it will by catching up with the journal, then on average it should take re-request message #8, and once it gets it, proceed to mes no longer than 100 nanoseconds for each application to com sages #9 and #10. There may be race conditions where while plete its access to the journal. The amount of time taken by an it is re-requesting #8, #9 gets sequenced and it misses #9 too application to access a message may be calculated or esti so has to re-request #9. Eventually it races to catch up and mated based on (a) the size of the messages in terms of X bits re-transitions back to the real-time stream. and/or bytes and (b) the number of nanoseconds it would take [0041] Thus, the only way in which a full journal copy or to process X bits or bytes. The maximum number of messages journal segment becomes incomplete is typically when it that could be processed in 100 nanoseconds may be calcu misses a message, which it must re-request. In the case of lated as a limitation on the size of journal segments. journal segments the complete aggregate journal record may

US 2015/0261625 A1 Sep. 17, 2015 most frequently, although not necessarily, are all intercon decode allowing it to access a circuit path to a specific nected and/or communicating through a 404 on memory address space having a memory state/value. The one or more (mother)board(s) 402 having conductive and/or CPU may be a microprocessor such as: AMD's Athlon, otherwise transportive circuit pathways through which Duron and/or Opteron; ARM’s classic (e.g., ARM7/9/11), instructions (e.g., binary encoded signals) may travel to effec embedded (Cortex-M/R), application (Cortex-A), and secure tuate communications, operations, storage, etc. The computer processors; IBM and/or ’s DragonBall and Pow systemization may be connected to a power source 486; e.g., erPC; IBM’s and Sony’s Cell processor; Intel’s Atom, Cel optionally the power source may be internal. Optionally, a eron (Mobile), Core (2/Duo/i9/15/i7), Itanium, Pentium, cryptographic processor 426 and/or transceivers (e.g., ICs) Xeon, and/or XScale; and/or the like processor(s). The CPU 474 may be connected to the system bus. In another embodi interacts with memory through instruction passing through ment, the cryptographic processor and/or transceivers may be conductive and/or transportive conduits (e.g., (printed) elec connected as either internal and/or external peripheral tronic and/or optic circuits) to execute stored instructions devices 412 via the input/output (I/O) interface bus. In turn, (i.e., program code). Such instruction passing facilitates com the transceivers may be connected to antenna(s) 475, thereby munication within the MRM controller and beyond through effectuating wireless transmission and reception of various various interfaces. Should processing requirements dictate a communication and/or sensor protocols; for example the greater amount speed and/or capacity, distributed processors antenna(s) may connect to: a Texas Instruments Willink (e.g., Distributed MRM), mainframe, multi-core, parallel, WL1283 transceiver chip (e.g., providing 802.11n, Bluetooth and/or super-computer architectures may similarly be 3.0, FM, global positioning system (GPS) (thereby allowing employed. Alternatively, should deployment requirements MRM controller to determine its location); Broadcom dictate greater portability, smaller mobile devices (e.g., BCM4329FKUBG transceiver chip (e.g., providing 802.11n, smartphones, Personal Digital Assistants (PDAs), etc.) may Bluetooth 2.1+EDR, FM, etc.), BCM28150 (HSPA+) and be employed. BCM2076 (Bluetooth 4.0, GPS, etc.); a Broadcom [0052] Depending on the particular implementation, fea BCM4750IUB8 receiver chip (e.g., GPS); an Infineon Tech tures of the MRM may be achieved by implementing a micro nologies X-Gold 618-PMB9800 (e.g., providing 2G/3G controller such as CAST’s R8051XC2 microcontroller; HSDPA/HSUPA communications); Intel’s XMM 7160 (LTE Intel’s MCS 51 (i.e., 8051 microcontroller); and/or the like. & DC-HSPA), Qualcom’s CDMA(2000), Mobile Data/Sta Also, to implement certain features of the MRM, some fea tion Modem, Snapdragon; and/or the like. The system clock ture implementations may rely on embedded components, may have a crystal oscillator and generates a base signal such as: Application-Specific Integrated Circuit (“ASIC”), through the computer systemization’s circuit pathways. The Digital Signal Processing (“DSP”), Field Programmable clock may be coupled to the system bus and various clock Gate Array (“FPGA’’), and/or the like embedded technology. multipliers that will increase or decrease the base operating For example, any of the MRM component collection (distrib frequency for other components interconnected in the com uted or otherwise, e.g. IMAS 341, etc) and/or features may be puter systemization. The clock and various components in a implemented via the microprocessor and/or via embedded computer systemization drive signals embodying informa components; e.g., via ASIC, coprocessor, DSP FPGA, and/or tion throughout the system. Such transmission and reception the like. Alternately, some implementations of the MRM may of instructions embodying information throughout a com be implemented with embedded components that are config puter systemization may be referred to as communications. ured and used to achieve a variety of features or signal pro These communicative instructions may further be transmit cessing. ted, received, and may comprise return and/or reply commu [0053] Depending on the particular implementation, the nications beyond the instant computer systemization to: com embedded components may include software solutions, hard munications networks, input devices, other computer ware solutions, and/or some combination of both hardware/ systemizations, peripheral devices, and/or the like. It should software solutions. For example, MRM features discussed be understood that in alternative embodiments, any of the herein may be achieved through implementing FPGAs, above components may be connected directly to one another, which are a semiconductor devices containing programmable connected to the CPU, and/or organized in numerous varia logic components called “logic blocks”, and programmable tions employed as exemplified by various computer systems. interconnects, such as the high performance FPGA Virtex [0051] The CPU comprises at least one high-speed data series and/or the low cost Spartan series manufactured by processor adequate to execute program components for Xilinx. Logic blocks and interconnects can be programmed executing user and/or system-generated requests. Often, the by the customer or designer, after the FPGA is manufactured, processors themselves will incorporate various specialized to implement any of the MRM features. A hierarchy of pro processing units, such as, but not limited to: floating point grammable interconnects allow logic blocks to be intercon units, integer processing units, integrated system (bus) con nected as needed by the MRM system designer/administrator, trollers, logic operating units, memory management control somewhat like a one-chip programmable breadboard. An units, etc., and even specialized processing sub-units like FPGA's logic blocks can be programmed to perform the graphics processing units, digital signal processing units, operation of basic logic gates such as AND, and XOR, or and/or the like. Additionally, processors may include internal more complex combinational operators such as decoders or fast access addressable memory, and be capable of mapping simple mathematical operations. In most FPGAs, the logic and addressing memory 429 beyond the processor itself, blocks also include memory elements, which may be circuit internal memory may include, but is not limited to: fast reg flip-flops or more complete blocks of memory. In some cir isters, various levels of cache memory (e.g., level 1, 2, 3, etc.), cumstances, the MRM may be developed on regular FPGAs RAM, etc. The processor may access this memory through and then migrated into a fixed version that more resembles the use of a memory address space that is accessible via ASIC implementations. Alternate or coordinating implemen instruction address, which the processor can construct and tations may migrate MRM controller features to a final ASIC US 2015/0261625 A1 Sep. 17, 2015 instead of or in addition to FPGAs. Depending on the imple IEEE 802.11a-x, and/or the like. Should processing require mentation all of the aforementioned embedded components ments dictate a greater amount speed and/or capacity, distrib and microprocessors may be considered the “CPU” and/or uted network controller (e.g., Distributed 4) architectures “processor” for the MRM. may similarly be employed to pool, load balance, and/or otherwise increase the communicative bandwidth required by Power Source the MRM controller. A communications network may be any one and/or the combination of the following: a direct inter [0054] The power source 486 may be of any standard form connection; the Internet; a Local Area Network (LAN); a for powering small electronic circuit board devices such as Metropolitan Area Network (MAN); an Operating Missions the following power cells: alkaline, lithium hydride, lithium as Nodes on the Internet (OMNI); a secured custom connec ion, lithium polymer, nickel cadmium, solar cells, and/or the tion; a Wide Area Network (WAN); a wireless network (e.g., like. Other types of AC or DC power sources may be used as employing protocols such as, but not limited to a Wireless well. In the case of solar cells, in one embodiment, the case Application Protocol (WAP), I-mode, and/or the like); and/or provides an through which the solar cell may capture the like. A network interface may be regarded as a specialized photonic energy. The power cell 486 is connected to at least form of an input output interface. Further, multiple network one of the interconnected subsequent components of the interfaces 410 may be used to engage with various commu MRM thereby providing an electric current to all their inter nications network types 413. For example, multiple network connected components. In one example, the power source interfaces may be employed to allow for the communication 486 is connected to the system bus component 404. In an over broadcast, multicast, and/or unicast networks. alternative embodiment, an outside power source 486 is pro [0058] Input Output interfaces (I/Os)408 may accept, com vided through a connection across the I/O 408 interface. For municate, and/or connect to user input devices 411, periph example, a USB and/or IEEE 1394 connection carries both eral devices 412, cryptographic processor devices 428, and/or data and power across the connection and is therefore a suit the like. I/Os may employ connection protocols such as, but able source of power. not limited to: audio: analog, digital, monaural, RCA, stereo, Interface Adapters and/or the like; data: Apple Desktop Bus (ADB), Bluetooth, IEEE 1394a–b, serial, universal serial bus (USB): infrared; [0055] Interface bus(ses) 407 may accept, connect, and/or ; keyboard; , optical; PC AT, PS/2; parallel; communicate to a number of interface adapters, frequently, radio; video interface: Apple Desktop Connector (ADC), although not necessarily in the form of adapter cards, such as BNC, coaxial, component, composite, digital, DisplayPort, but not limited to: input output interfaces (I/O) 408, storage Digital Visual Interface (DVI), high-definition multimedia interfaces 409, network interfaces 410, and/or the like. interface (HDMI), RCA, RF antennae, S-Video, VGA, and/or Optionally, cryptographic processor interfaces 427 similarly the like; wireless transceivers: 802.11a/b/g/n/x; Bluetooth; may be connected to the interface bus. The interface bus cellular (e.g., code division multiple access (CDMA), high provides for the communications of interface adapters with speed packet access (HSPA(+)), high-speed downlink packet one another as well as with other components of the computer access (HSDPA), global system for mobile communications systemization. Interface adapters are adapted for a compat (GSM), long term evolution (LTE), WiMax, etc.); and/or the ible interface bus. Interface adapters may connect to the inter like. One output device may be a video display, which may face bus via an expansion and/or slot architecture. Various take the form of a Cathode Ray Tube (CRT), Liquid Crystal expansion and/or slot architectures may be employed, such Display (LCD), Light Emitting Diode (LED), Organic Light as, but not limited to: Accelerated Graphics Port (AGP), Card Emitting Diode (OLED), Plasma, and/or the like based moni Bus, ExpressCard, (Extended) Industry Standard Architec tor with an interface (e.g., VGA, DVI circuitry and cable) that ture ((E)ISA), Micro Channel Architecture (MCA), NuBus, accepts signals from a video interface. The video interface Peripheral Component Interconnect (Extended) (PCI(X)), composites information generated by a computer systemiza PCI Express, Personal Computer Memory Card International tion and generates video signals based on the composited Association (PCMCIA), , and/or the like. information in a video memory frame. Another output device [0056] Storage interfaces 409 may accept, communicate, is a television set, which accepts signals from a video inter and/or connect to a number of storage devices such as, but not face. Often, the video interface provides the composited limited to: storage devices 414, removable disc devices, and/ video information through a video connection interface that or the like. Storage interfaces may employ connection proto accepts a video display interface (e.g., an RCA composite cols such as, but not limited to: (Ultra) (Serial) Advanced video connector accepting an RCA composite video cable; a Technology Attachment (Packet Interface) ((Ultra) (Serial) DVI connector accepting a DVI display cable, HDMI, etc.). ATA(PI)), (Enhanced) Integrated Drive Electronics ((E)IDE), [0059] User input devices 411 often are a type of peripheral Institute of Electrical and Electronics Engineers (IEEE) device 412 (see below) and may include: card readers, 1394, , fiberchannel, Small Computer Systems Inter dongles, finger print readers, gloves, graphics tablets, joy face (SCSI), Thunderbolt, Universal Serial Bus (USB), and/ sticks, keyboards, microphones, mouse (mice), remote con or the like. trols, retina readers, touch screens (e.g., capacitive, resistive, [0057] Network interfaces 410 may accept, communicate, etc.), , trackpads, sensors (e.g., accelerometers, and/or connect to a communications network 413. Through a ambient light, GPS, gyroscopes, proximity, etc.), styluses, communications network 413, the MRM controller is acces and/or the like. sible through remote clients 433b (e.g., computers with web [0060] Peripheral devices 412 may be connected and/or browsers) by users 433a. Network interfaces may employ communicate to I/Os and/or other facilities of the like such as connection protocols such as, but not limited to: direct con network interfaces, storage interfaces, directly to the interface nect, Ethernet (thick, thin, twisted pair 10/100/1000 Base T. bus, system bus, the CPU, and/or the like. Peripheral devices and/or the like), Token Ring, wireless connection such as may be external, internal and/or part of the MRM controller. US 2015/0261625 A1 Sep. 17, 2015

Peripheral devices may include: antennae, audio devices memory devices (USB memory, solid state drives (SSD), (e.g., line-in, line-out, microphone input, speakers, etc.), etc.); other processor-readable storage mediums; and/orother cameras (e.g., still, video, webcam, etc.), dongles (e.g., for devices of the like. Thus, a computer systemization generally copy protection, ensuring secure transactions with a digital requires and makes use of memory. signature, and/or the like), external processors (for added capabilities; e.g., crypto devices 428), force-feedback Component Collection devices (e.g., vibrating motors), near field communication [0064] The memory 429 may contain a collection of pro (NFC) devices, network interfaces, printers, radio frequency gram and/or components and/or data such as, but not identifiers (RFIDs), scanners, storage devices, transceivers limited to: operating system component(s) 415 (operating (e.g., cellular, GPS, etc.), video devices (e.g., goggles, moni system); information server component(s) 416 (information tors, etc.), video sources, visors, and/or the like. Peripheral server); component(s) 417 (user interface); devices often include types of input devices (e.g., micro Web browser component(s) 418 (Web browser); database(s) phones, cameras, etc.). 419; mail server component(s) 421; mail client component(s) [0061] It should be noted that although user input devices 422; cryptographic server component(s) 420 (cryptographic and peripheral devices may be employed, the MRM control server); the MRM component(s) 435; and/or the like (i.e., ler may be embodied as an embedded, dedicated, and/or collectively a component collection). These components may monitor-less (i.e., headless) device, wherein access would be be stored and accessed from the storage devices and/or from provided over a network interface connection. storage devices accessible through an interface bus. Although [0062] Cryptographic units such as, but not limited to, non-conventional program components such as those in the microcontrollers, processors 426, interfaces 427, and/or component collection, may be stored in a local storage device devices 428 may be attached, and/or communicate with the 414, they may also be loaded and/or stored in memory such MRM controller. A MC68HC16 microcontroller, manufac as: peripheral devices, RAM, remote storage facilities tured by Motorola Inc., may be used for and/or within cryp through a communications network, ROM, various forms of tographic units. The MC68HC16 microcontroller utilizes a memory, and/or the like. 16-bit multiply-and-accumulate instruction in the 16 MHz configuration and requires less than one second to perform a Operating System 512-bit RSA private key operation. Cryptographic units sup [0065] The operating system component 415 is an execut port the authentication of communications from interacting able program component facilitating the operation of the agents, as well as allow for anonymous transactions. Crypto MRM controller. The operating system may facilitate access graphic units may also be configured as part of the CPU. of I/Os, network interfaces, peripheral devices, storage Equivalent microcontrollers and/or processors may also be devices, and/or the like. The operating system may be a highly used. Other commercially available specialized crypto fault tolerant, scalable, and secure system such as: Apple graphic processors include: the Broadcom's Cryptonet X and OS X (Server); AT&T Plan 9; Be OS; Unix and other Security Processors; nGipher’s nShield (e.g., Solo, Unix-like system distributions (such as AT&T’s UNIX; Berk Connect, etc.), SafeNet’s Luna PCI (e.g., 7100) series; Sema ley Software Distribution (BSD) variations such as FreeBSD, phore Communications' 40 MHz Roadrunner 184; sy?IP’s NetBSD, OpenBSD, and/or the like; distributions such (e.g., 208956); Sun’s Cryptographic Accelerators (e.g., as Red Hat, Ubuntu, and/or the like); and/or the like operating Accelerator 6000 PCIe Board, Accelerator 500 Daughter systems. However, more limited and/or less secure operating card);/(e.g., L2100, L2200, U2400) line, which is capable of systems also may be employed such as Apple Macintosh OS, performing 500+MB/s of cryptographic instructions: VLSI IBM OS/2, DOS, 2000/2003/ Technology’s 33 MHz 6868; and/or the like. 3.1/95/98/CE/Millenium/NTNista/XP (Server), Palm OS, Memory and/or the like. In addition, emobile operating systems such as Apple’s iOS, Google’s Android, Hewlett Packard’s [0063] Generally, any mechanization and/or embodiment WebOS, Microsofts Windows Mobile, and/or the like may be allowing a processor to affect the storage and/or retrieval of employed. Any of these operating systems may be embedded information is regarded as memory 429. However, memory is within the hardware of the MRM controller, and/or stored/ a fungible technology and resource, thus, any number of loaded into memory/storage. An operating system may com memory embodiments may be employed in lieu of or in municate to and/or with other components in a component concert with one another. It is to be understood that the MRM collection, including itself, and/or the like. Most frequently, controller and/or a computer systemization may employ vari the operating system communicates with other program com ous forms of memory 429. For example, a computer system ponents, user interfaces, and/or the like. For example, the ization may be configured wherein the operation of on-chip operating system may contain, communicate, generate, CPU memory (e.g., registers), RAM, ROM, and any other obtain, and/or provide program component, system, user, storage devices are provided by a paper punch tape or paper and/or data communications, requests, and/or responses. The punch card mechanism; however, such an embodiment would operating system, once executed by the CPU, may enable the result in an extremely slow rate of operation. In one configu interaction with communications networks, data, I/O, periph ration, memory 429 will include ROM 406, RAM 405, and a eral devices, program components, memory, user input storage device 414. A storage device 414 may employ any devices, and/or the like. The operating system may provide number of computer storage devices/systems. Storage communications protocols that allow the MRM controller to devices may include a drum; a (fixed and/or removable) mag communicate with other entities through a communications netic disk drive; a magneto-optical drive; an optical drive (i.e., network 413. Various communication protocols may be used Blueray, CD ROM/RAM/Recordable (R)/ReVritable (RW), by the MRM controller as a subcarrier transport mechanism DVD R/RW, HD DVD R/RW etc.); an array of devices (e.g., for interaction, such as, but not limited to: multicast, TCP/IP. Redundant Array of Independent Disks (RAID)); solid state UDP unicast, and/or the like. US 2015/0261625 A1 Sep. 17, 2015

Information Server tags, which act to instruct the parser to generate queries directed to appropriate tables and/or fields. In one embodi [0066] An information server component 416 is a stored ment, the parser may generate queries in standard SQL by program component that is executed by a CPU. The informa instantiating a search string with the proper join/select com tion server may be an Internet information server such as, but mands based on the tagged text entries, wherein the resulting not limited to Apache Software Foundation’s Apache, command is provided over the bridge mechanism to the Microsoft’s Internet Information Server, and/or the like. The MRM as a query. Upon generating query results from the information server may allow for the execution of program query, the results are passed over the bridge mechanism, and components through facilities such as Active Server Page may be parsed for formatting and generation of a new results (ASP), ActiveX, (ANSI) (Objective—) C (++), C# and/or .NET, Common Gateway Interface (CGI) scripts, dynamic Web page by the bridge mechanism. Such a new results Web () hypertext markup language (HTML), FLASH, , page is then provided to the information server, which may JavaScript, Practical Extraction Report Language (), supply it to the requesting Web browser. Hypertext Pre-Processor (PHP), pipes, Python, wireless [0068| Also, an information server may contain, commu application protocol (WAP), WebObjects, and/or the like. The nicate, generate, obtain, and/or provide program component, information server may support secure communications pro system, user, and/or data communications, requests, and/or tocols such as, but not limited to, File Transfer Protocol responses. (FTP): HyperText Transfer Protocol (HTTP); Secure Hyper User Interface text Transfer Protocol (HTTPS), Secure Socket Layer (SSL), messaging protocols (e.g., America Online (AOL) Instant [0069] Computer interfaces in some respects are similar to Messenger (AIM), Apple's iMessage, Application Exchange automobile operation interfaces. Automobile operation inter (APEX), ICQ, Internet Relay Chat (IRC), MicrosoftNetwork face elements such as steering wheels, gearshifts, and speed (MSN) Messenger Service, Presence and Instant Messaging ometers facilitate the access, operation, and display of auto Protocol (PRIM), Internet Engineering Task Force’s (IETF’s) mobile resources, and status. Computer interaction interface Session Initiation Protocol (SIP), SIP for Instant Messaging elements such as check boxes, cursors, menus, scrollers, and and Presence Leveraging Extensions (SIMPLE), open XML windows (collectively and commonly referred to as widgets) based Extensible Messaging and Presence Protocol (XMPP) similarly facilitate the access, capabilities, operation, and (i.e., Jabber or Open Mobile Alliance’s (OMA’s.) Instant display of data and computer hardware and operating system Messaging and Presence Service (IMPS)), Yahoo! Instant resources, and status. Operation interfaces are commonly Messenger Service, and/or the like. The information server called user interfaces. Graphical user interfaces (GUIs) such provides results in the form of Web to Web browsers, as the Apple Macintosh Operating System’s Aqua and iOS’s and allows for the manipulated generation of the Web pages Cocoa Touch, IBM's OS/2, Google’s Android Mobile UI, through interaction with other program components. After a Microsoft’s Windows 2000/2003/3.1/95/98/CE/Millenium/ Domain Name System (DNS) resolution portion of an HTTP Mobile/NT/XP/Vista/7/8 (i.e., Aero, Metro), Unix’s X-Win request is resolved to a particular information server, the dows (e.g., which may include additional Unix graphic inter information server resolves requests for information at speci face libraries and layers such as K Desktop Environment fied locations on the MRM controller based on the remainder (KDE), mythTV and GNU Network Object Model Environ of the HTTP request. For example, a request such as http:// ment (GNOME)), web interface libraries (e.g., ActiveX, 123.124.125.126/myInformation. might have the IP por AJAX, (D)HTML, FLASH, Java, JavaScript, etc. interface tion of the request “123.124.125.126” resolved by a DNS libraries such as, but not limited to, Dojo, jQuery(UI), server to an information server at that IP address; that infor Moo'Tools, Prototype, script.aculo.us, SWFObject, Yahoo! mation server might in turn further parse the http request for User Interface, any of which may be used and) provide a the “/myInformation.html” portion of the request and resolve baseline and means of accessing and displaying information it to a location in memory containing the information “myln graphically to users. formation.html.” Additionally, otherinformation serving pro [0070] A user interface component 417 is a stored program tocols may be employed across various ports, e.g., FTP com component that is executed by a CPU. The user interface may munications across port 21, and/or the like. An information be a graphic user interface as provided by, with, and/or atop server may communicate to and/or with other components in operating systems and/or operating environments such as a component collection, including itself, and/or facilities of already discussed. The user interface may allow for the dis the like. Most frequently, the information server communi play, execution, interaction, manipulation, and/or operation cates with the MRM database 419, operating systems, other of program components and/or system facilities through tex program components, user interfaces, Web browsers, and/or tual and/or graphical facilities. The user interface provides a the like. facility through which users may affect, interact, and/or oper [0067] Access to the MRM database may be achieved ate a computer system. A user interface may communicate to through a number of database bridge mechanisms such as and/or with other components in a component collection, through scripting languages as enumerated below (e.g., CGI) including itself, and/or facilities of the like. Most frequently, and through inter-application communication channels as the user interface communicates with operating systems, enumerated below (e.g., CORBA, WebObjects, etc.). Any other program components, and/or the like. The user interface data requests through a Web browser are parsed through the may contain, communicate, generate, obtain, and/or provide bridge mechanism into appropriate grammars as required by program component, system, user, and/or data communica the MRM. In one embodiment, the information server would tions, requests, and/or responses. provide a Web form accessible by a Web browser. Entries made into supplied fields in the Web form are tagged as Web Browser having been entered into the particular fields, and parsed as [0071] A Web browser component 418 is a stored program such. The entered terms are then passed along with the field component that is executed by a CPU. The Web browser may US 2015/0261625 A1 Sep. 17, 2015

be a hypertext viewing application such as Google’s (Mobile) mail client may communicate to and/or with other compo Chrome, Microsoft Internet Explorer, Netscape Navigator, ments in a component collection, including itself, and/or Apple’s (Mobile) , embedded web browser objects facilities of the like. Most frequently, the mail client commu such as through Apple’s Cocoa (Touch) object class, and/or nicates with mail servers, operating systems, other mail cli the like. Secure Web browsing may be supplied with 128 bit ents, and/or the like; e.g., it may contain, communicate, gen (or greater) encryption by way of HTTPS, SSL, and/or the erate, obtain, and/or provide program component, system, like. Web browsers allowing for the execution of program user, and/or data communications, requests, information, components through facilities such as ActiveX, AJAX, and/orresponses. Generally, the mail client provides a facility (D)HTML, FLASH, Java, JavaScript, web browser plug-in to compose and transmit electronic mail messages. APIs (e.g., Chrome, FireFox, Internet Explorer, Safari Plug in, and/or the like APIs), and/or the like. Web browsers and Cryptographic Server like information access tools may be integrated into PDAs, cellular telephones, smartphones, and/or other mobile [0076] A cryptographic server component 420 is a stored devices. A Web browser may communicate to and/or with program component that is executed by a CPU 403, crypto other components in a component collection, including itself, graphic processor 426, cryptographic processor interface and/or facilities of the like. Most frequently, the Web browser 427, cryptographic processor device 428, and/or the like. communicates with information servers, operating systems, Cryptographic processor interfaces will allow for expedition integrated program components (e.g., plug-ins), and/or the of encryption and/or decryption requests by the crypto like; e.g., it may contain, communicate, generate, obtain, graphic component; however, the cryptographic component, and/or provide program component, system, user, and/or data alternatively, may run on a CPU. The cryptographic compo communications, requests, and/orresponses. Also, in place of ment allows for the encryption and/or decryption of provided a Web browser and information server, a combined applica data. The cryptographic component allows for both symmet tion may be developed to perform similar operations of both. ric and asymmetric (e.g., Pretty Good Protection (PGP)) The combined application would similarly effect the obtain encryption and/or decryption. The cryptographic component ing and the provision of information to users, user agents, may employ cryptographic techniques such as, but not lim ited to: digital certificates (e.g., X.509 authentication frame and/or the like from the MRM equipped nodes. The combined work), digital signatures, dual signatures, enveloping, pass application may be nugatory on systems employing standard word access protection, public key management, and/or the Web browsers. like. The cryptographic component will facilitate numerous Mail Server (encryption and/or decryption) security protocols such as, but not limited to: checksum, Data Encryption Standard (DES), [0072] A mail server component 421 is a stored program Elliptical Curve Encryption (ECC), International Data component that is executed by a CPU 403. The mail server Encryption Algorithm (IDEA), Message Digest 5 (MD5, may be an Internet mail server such as, but not limited to which is a one way hash operation), passwords, Rivest Cipher Apple’s Mail Server (3), dovecot, sendmail, Microsoft (RC5), Rijndael, RSA (which is an Internet encryption and Exchange, and/or the like. The mail server may allow for the authentication system that uses an algorithm developed in execution of program components through facilities such as 1977 by Ron Rivest, Adi Shamir, and Leonard Adleman), ASP. ActiveX, (ANSI) (Objective—) C (++), C# and/or .NET, Secure Hash Algorithm (SHA), Secure Socket Layer (SSL), CGI scripts, Java, JavaScript, PERL, PHP, pipes, Python, Secure Hypertext Transfer Protocol (HTTPS), and/or the like. WebObjects, and/or the like. The mail server may support Employing such encryption security protocols, the MRM communications protocols such as, but not limited to: Internet may encrypt all incoming and/or outgoing communications message access protocol (IMAP), Messaging Application and may serve as a node within a virtual private network Programming Interface (MAPI)/Microsoft Exchange, post (VPN) with a wider communications network. The crypto office protocol (POP3), simple mail transfer protocol graphic component facilitates the process of “security autho (SMTP), and/or the like. The mail server can route, forward, rization” whereby access to a resource is inhibited by a secu and process incoming and outgoing mail messages that have rity protocol wherein the cryptographic component effects been sent, relayed and/or otherwise traversing through and/or authorized access to the secured resource. In addition, the to the MRM. cryptographic component may provide unique identifiers of [0073] Access to the MRM mail may be achieved through content, e.g., employing and MD5 hash to obtain a unique a number of APIs offered by the individual Web server com signature for a digital audio file. A cryptographic component ponents and/or the operating system. may communicate to and/or with other components in a com [0074] Also, a mail server may contain, communicate, gen ponent collection, including itself, and/or facilities of the like. erate, obtain, and/or provide program component, system, The cryptographic component supports encryption schemes user, and/or data communications, requests, information, allowing for the secure transmission of information across a and/or responses. communications network to enable the MRM component to engage in secure transactions if so desired. The cryptographic Mail Client component facilitates the secure accessing of resources on the MRM and facilitates the access of secured resources on [0075] A mail client component 422 is a stored program remote systems; i.e., it may act as a client and/or server of component that is executed by a CPU 403. The mail client secured resources. Most frequently, the cryptographic com may be a mail viewing application such as Apple (Mobile) ponent communicates with information servers, operating Mail, Microsoft Entourage, Microsoft Outlook, Microsoft systems, other program components, and/or the like. The Outlook Express, Mozilla, Thunderbird, and/or the like. Mail cryptographic component may contain, communicate, gener clients may support a number of transfer protocols, such as: ate, obtain, and/or provide program component, system, user, IMAP Microsoft Exchange, POP3, SMTP, and/or the like. A and/or data communications, requests, and/or responses. US 2015/0261625 A1 Sep. 17, 2015

The MRM Database distributed database system, queries and data access by [0077] The MRM database component 419 may be embod search MRM component may treat the combination of the ied in a database and its stored data. The database is a stored MRM database, an integrated data security layer database as program component, which is executed by the CPU; the a single database entity. stored program component portion configuring the CPU to [0081] In one embodiment, user programs may contain process the stored data. The database may be any of a number various user interface primitives, which may serve to update of fault tolerant, relational, scalable, secure database such as the MRM. Also, various accounts may require custom data DB2, MySQL, Oracle, Sybase, and/or the like. Relational base tables depending upon the environments and the types of are an extension of a flat file. Relational databases clients the MRM may need to serve. It should be noted that consist of a series of related tables. The tables are intercon any uniquefields may be designated as a key field throughout. nected via a key field. Use of the key field allows the combi In an alternative embodiment, these tables have been decen nation of the tables by indexing against the key field; i.e., the tralized into their own databases and their respective database key fields act as dimensional pivot points for combining infor controllers (i.e., individual database controllers for each of mation from various tables. Relationships generally identify the above tables). Employing standard data processing tech links maintained between tables by matching primary keys. niques, one may further distribute the databases over several Primary keys represent fields that uniquely identify the rows computer systemizations and/or storage devices. Similarly, of a table in a relational database. More precisely, they configurations of the decentralized database controllers may uniquely identify rows of a table on the “one” side of a be varied by consolidating and/or distributing the various “one-to-many” relationship. database components 419a-e. The MRM may be configured [0078] Alternatively, the MRM database may be imple to keep track of various settings, inputs, and parameters via mented using various standard data-structures, such as an database controllers. array, hash, (linked) list, struct, structured text file (e.g., [0082] The MRM database may communicate to and/or XML), table, and/or the like. Such data-structures may be with other components in a component collection, including stored in memory and/or in (structured) files. In another alter itself, and/or facilities of the like. Most frequently, the MRM native, an object-oriented database may be used, such as database communicates with the MRM component, other Frontier, ObjectStore, Poet, , and/or the like. Object program components, and/or the like. The database may con databases can include a number of object collections that are tain, retain, and provide information regarding other nodes grouped and/or linked together by common attributes; they and data. may be related to other object collections by some common attributes. Object-oriented databases perform similarly to The MRMs relational databases with the exception that objects are not [0083] The MRM component 435 is a stored program com just pieces of data but may have other types of capabilities ponent that is executed by a CPU. In one embodiment, the encapsulated within a given object. If the MRM database is MRM component incorporates any and/or all combinations implemented as a data-structure, the use of the MRM data of the aspects of the MRM discussed in the previous figures. base 419 may be integrated into another component such as As such, the MRM affects accessing, obtaining and the pro the MRM component 435. Also, the database may be imple vision of information, services, transactions, and/or the like mented as a mix of data structures, objects, and relational across various communications networks. structures. Databases may be consolidated and/or distributed [0084] The MRM component may transform Error! Refer in countless variations through standard data processing tech ence source not found. via MRM components into Error! niques. Portions of databases, e.g., tables, may be exported Reference source not found., and/or the like and use of the and/or imported and thus decentralized and/or integrated. MRM. In one embodiment, the MRM component 435 takes [0079] In one embodiment, the database component 419 inputs (e.g., complete message journals 201 and 301; and/or includes several tables 419a-e. A Users table 419a may the like) etc., and transforms the inputs via various MRM include fields such as, but not limited to: user_id, ssn., dob, components into outputs (e.g., duplicate copies of the com first_name, last_name, age, state, address firstline, address_ plete message journals 202-204; journals containing seg secondline, zipcode, devices list, contact info, contact ments of complete message 302–304; and/or the like). type, alt contact info, alt contact type, and/or the like. The [0085] The MRM component enabling access of informa Users table may support and/or track multiple entity accounts tion between nodes may be developed by employing standard on an MRM. A. Clients table 419b may include fields such as, development tools and languages such as, but not limited to: but not limited to: device_ID, device_name, device_IP. Apache components, Assembly, ActiveX, binary executables, device MAC, device type, device model, device version, (ANSI) (Objective—) C (++), C# and/or .NET, database adapt device OS, device apps_list, device_securekey, and/or the ers, CGI scripts, Java, JavaScript, mapping tools, procedural like. An Apps table 419e may include fields such as, but not and object oriented development tools, PERL, PHP, Python, limited to: application ID, application_name, application_ shell scripts, SQL commands, web exten type, application backup list, application sync, and/or the sions, web development environments and libraries (e.g., like. A Messages table 419d may include fields such as, but Microsoft’s ActiveX: Adobe AIR, FLEX & FLASH: AJAX; not limited to: msg_id, msg_application, timestamp, msg_ (D)HTML; Dojo, Java; JavaScript; jQuery(UI); Moo'Tools; details list, message_size, message origin, msg_journal, Prototype; script.aculo.us; Simple Object Access Protocol msg_read detail, and/or the like. A Journals table 419e may (SOAP); SWFObject;Yahoo! User Interface; and/or the like), include fields such as, but not limited to: journal ID, journal_ WebObjects, and/or the like. In one embodiment, the MRM timestamp, msg_source, journal access_apps, segmented server employs a cryptographic server to encrypt and decrypt msg_list, and/or the like. communications. The MRM component may communicate [0080] In one embodiment, the MRM database may inter to and/or with other components in a component collection, act with other database systems. For example, employing a including itself, and/or facilities of the like. Most frequently, US 2015/0261625 A1 Sep. 17, 2015

the MRM component communicates with the MRM data or the like), Common Object Request Broker Architecture base, operating systems, other program components, and/or (CORBA), Jini local and remote application program inter the like. The MRM may contain, communicate, generate, faces, JavaScript Object Notation (JSON), Remote Method obtain, and/or provide program component, system, user, Invocation (RMI), SOAP process pipes, shared files, and/or and/or data communications, requests, and/or responses. the like. Messages sent between discrete components for inter-application communication or within memory spaces of Distributed MRMs a singular component for intra-application communication may be facilitated through the creation and parsing of a gram [0086] The structure and/or operation of any of the MRM mar. A grammar may be developed by using development node controller components may be combined, consolidated, tools such as lex, yacc, XML, and/or the like, which allow for and/or distributed in any number of ways to facilitate devel grammar generation and parsing capabilities, which in turn opment and/or deployment. Similarly, the component collec may form the basis of communication messages within and tion may be combined in any number of ways to facilitate between components. deployment and/or development. To accomplish this, one [0090] For example, a grammar may be arranged to recog may integrate the components into a common code base or in nize the tokens of an HTTP post command, e.g.: a facility that can dynamically load the components on [0091) w8c-post http://. . . Value1 demand in an integrated fashion. [0092] where Value1 is discerned as being a parameter [0087] The component collection may be consolidated and/ because “http://’ is part of the grammar syntax, and what or distributed in countless variations through standard data follows is considered part of the post value. Similarly, with processing and/or development techniques. Multiple such a grammar, a variable “Value1" may be inserted into an instances of any one of the program components in the pro “http://’ post command and then sent. The grammar syntax gram component collection may be instantiated on a single itself may be presented as structured data that is interpreted node, and/or across numerous nodes to improve performance and/or otherwise used to generate the parsing mechanism through load-balancing and/or data-processing techniques. (e.g., a syntax description text file as processed by lex, yacc, Furthermore, single instances may also be distributed across etc.). Also, once the parsing mechanism is generated and/or multiple controllers and/or storage devices; e.g., databases. instantiated, parsing mechanism itself may process and/or All program component instances and controllers working in parse structured data such as, but not limited to: character concert may do so through standard data processing commu (e.g., tab) delineated text, HTML, structured text streams, nication techniques. XML, and/or the like structured data. In another embodiment, [0088] The configuration of the MRM controller will inter-application data processing protocols themselves may depend on the context of system deployment. Factors such as, have integrated and/or readily available parsers (e.g., JSON, but not limited to, the budget, capacity, location, and/or use of SOAP and/or like parsers) that may be employed to parse the underlying hardware resources may affect deployment (e.g., communications) data. Further, the parsing grammar requirements and configuration. Regardless of whether the may be used beyond message parsing, but may also be used to configuration results (i) in more consolidated and/or inte parse: databases, data collections, data stores, structured data, grated program components, (ii) in a more distributed series and/or the like. Again, the desired configuration will depend of program components, and/or (iii) in some combination upon the context, environment, and requirements of system between a consolidated and distributed configuration, data deployment. may be communicated, obtained, and/or provided. Instances [0093] For example, in some implementations, the MRM of components consolidated into a common code base from controller may be executing a PHP script implementing a the program component collection may communicate, Secure Sockets Layer (“SSL”) socket server via the informa obtain, and/or provide data. This may be accomplished tion server, which listens to incoming communications on a through intra-application data processing communication server port to which a client may send data, e.g., data encoded techniques such as, but not limited to: data referencing (e.g., in JSON format. Upon identifying an incoming communica pointers), internal messaging, object instance variable com tion, the PHP script may read the incoming message from the munication, shared memory space, variable passing, and/or client device, parse the received JSON-encoded text data to the like. extract information from the JSON-encoded text data into [0089] If component collection components are discrete, PHP script variables, and store the data (e.g., client identify separate, and/or external to one another, then communicating, ing information, etc.) and/or extracted information in a rela obtaining, and/or providing data with and/or to other compo tional database accessible using the Structured Query Lan ments may be accomplished through inter-application data guage (“SQL’’). An exemplary listing, written substantially in processing communication techniques such as, but not lim the form of PHP/SQL commands, to accept JSON-encoded ited to: Application Program Interfaces (API) information input data from a client device via a SSL connection, parse the passage; (distributed) Component Object Model ((D)COM), data to extract variables, and store the data to a database, is (Distributed) Object Linking and Embedding ((D)OLE), and/ provided below:

header(“Content-Type: text/plain’): // set ip address and port to listen to for incoming data $address = 192.168.0.100”; $port = 255; // create a server-side SSL socket, listen for accept incoming communication $sock = socket create(AF INET, SOCK STREAM, 0); socket bind($sock, Saddress, $port) or die(‘Could not bind to address'); socket listen($sock); US 2015/0261625 A1 Sep. 17, 2015

-continued $client = socket accept($sock); // read input data from client device in 1024 byte blocks until end of message do ( $input = “” $input = socket read($client, 1024); $data = $input; } while($input = “”); // parse data to extract variables $obj=json decode($data, true); //store input data in a database mysql connect(“201.408.185.132”,SDBserver,Spassword); // access database server mysql select(“CLIENT DB.SQL*); //select database to append mysql_query(“INSERT INTO UserTable (transmission) VALUES ($data)”); // add data to UserTable table in a CLIENT database mysql_close(“CLIENT DB.SQL*); // close connection to database 9

[0094] Also, the following resources may be used to pro any present feature sets as described in the figures and/or vide example embodiments regarding SOAP parser imple throughout are not limited to a fixed operating order and/or mentation: arrangement, but rather, any disclosed order is exemplary and http://www.xav.com/perl/site/lib/SOAP/Parser.html http://publib.boulder.ibm.com/infocenter?tivihelp/v2r1/index.jsp?topic=/com.ibm.IBMDI.doc/referenceguide295.htm

[0095 and other parser implementations: all equivalents, regardless of order, are contemplated by the http://publib.boulder.ibm.com/infocenter/tivihelp/v2r1/in disclosure. Furthermore, it is to be understood that such fea dex.jsp?topic=/com.ibm.IBMDI.doc/referenceguide259. tures are not limited to serial execution, but rather, any num htm ber of threads, processes, processors, services, servers, and/or the like that may execute asynchronously, concurrently, in [0096] all of which are hereby expressly incorporated by parallel, simultaneously, synchronously, and/or the like also reference herein. are contemplated by the disclosure. As such, some of these [0097. In order to address various issues and advance the features may be mutually contradictory, in that they cannot be art, the entirety of this application (including the Cover Page, simultaneously present in a single embodiment. Similarly, Title, Headings, Field, Background, Summary, Brief some features are applicable to one aspect of the innovations, Description of the Drawings, Detailed Description, Claims, and inapplicable to others. In addition, the disclosure includes Abstract, Figures, Appendices and/or otherwise) shows, by other innovations not presently claimed. Applicant reserves way of illustration, various example embodiments in which all rights in those presently unclaimed innovations, including the claimed innovations may be practiced. The advantages the right to claim such innovations, file additional applica and features of the application are of a representative sample tions, continuations, continuations-in-part, divisions, and/or of embodiments only, and are not exhaustive and/or exclu the like thereof. As such, it should be understood that advan sive. They are presented only to assist in understanding and tages, embodiments, examples, functional, features, logical, teach the claimed principles. It should be understood that they operational, organizational, structural, topological, and/or are not representative of all claimed innovations. As such, other aspects of the disclosure are not to be considered limi certain aspects of the disclosure have not been discussed tations on the disclosure as defined by the claims or limita herein. That alternate embodiments may not have been pre tions on equivalents to the claims. It is to be understood that, sented for a specific portion of the innovations or that further depending on the particular needs and/or characteristics of an undescribed alternate embodiments may be available for a MRM individual and/or enterprise user, database configura portion is not to be considered a disclaimer of those alternate tion and/or relational model, data type, data transmission embodiments. It will be appreciated that many of those unde and/or network framework, syntax structure, and/or the like, scribed embodiments incorporate the same principles of the various embodiments of the MRM may be implemented that innovations and others are equivalent. Thus, it is to be under allow a great deal of flexibility and customization. While stood that other embodiments may be utilized and functional, various embodiments and discussions of the MRM have been logical, operational, organizational, structural and/or topo directed to application message journaling management, logical modifications may be made without departing from however, it is to be understood that the embodiments the scope and/or spirit of the disclosure. As such, all examples described herein may be readily configured and/or custom and/or embodiments are deemed to be non-limiting through ized for a wide variety ofcther applications and/or implemen out this disclosure. Also, no inference should be drawn tations. regarding those embodiments discussed herein relative to those not discussed herein other than it is as such for purposes What is claimed is: of reducing space and repetition. For instance, it is to be 1. An expedited message retransmission method for a com understood that the logical and/or topological structure of any puter system, comprising: combination of any data flow sequence(s), program compo maintaining, in a storage medium of the computer system, ments (a component collection), other components, and/or a master journal of sequenced messages generated from US 2015/0261625 A1 Sep. 17, 2015

a plurality of messages written by applications or pro 10. A computer system implementing expedited message cesses during operations of the computer system, at least retransmission, comprising: one subset of said applications or processes requiring at least one computer processor; and access to said sequenced messages to function properly; at least one storage medium disposed in communication determining an estimated demand for access to said with the at least one computer processor and storing sequenced messages by said at least one subset of appli computer instructions to cause the at least one computer cations or processes that may experience failovers; processor to: generating, based on said estimated demand, one or more maintain, in said at least one storage medium of the journal copies and/or one or more journal segments by computer system, a masterjournal of sequenced mes duplicating content of said master journal, each said sages generated from a plurality of messages written journal copy or journal segment being independently by applications or processes during operations of the accessible by a single application or process at any given computer system, at least one subset of said applica moment; and tions or processes requiring access to said sequenced allocating said one or more journal copies and/or said one messages to function properly; or more journal segments, upon demand, to some of said at least one subset of said applications or processes that determine an estimated demand for access to said have experienced failovers or a gap in said sequenced sequenced messages by said at least one subset of messages, such that multiple applications or processes applications or processes that may experience can simultaneously access the content of said master failovers; journal, thereby expediting access to said sequenced generate, based on said estimated demand, one or more messages in said master journal by said some applica journal copies and/or one or more journal segments tions or processes in their recovery from said failovers or by duplicating content of said master journal, each said gap in said sequenced messages. said journal copy or journal segment being indepen 2. The method of claim 1, wherein said plurality of mes dently accessible by a single application or process at sages written by said applications or processes during opera any given moment; and tions of the computer system are transformed to said allocate said one or more journal copies and/or said one sequenced messages by a sequencer. or more journal segments, upon demand, to some of 3. The method of claim 2, wherein said sequencer re said at least one subset of said applications or pro publishes said plurality of sequenced messages to said appli cesses that have experienced failovers or a gap in said cations or processes. sequenced messages, such that multiple applications 4. The method of claim 1, wherein said one or more journal or processes can simultaneously access the content of copies and/or said one or more journal segments are gener said master journal, thereby expediting access to said ated by a dedicated software or hardware module. sequenced messages in said master journal by said 5. The method of claim 1, further comprising: some applications or processes in their recovery from updating content of said one or more journal copies and/or said failovers or said gap in said sequenced messages. said one or more journal segments with updated content 11. The computer system of claim 10, wherein said plural of said master journal. ity of messages written by said applications or processes 6. The method of claim 1, further comprising: during operations of the computer system are transformed to updating or recovering content of a first of said one or more said sequenced messages by a sequencer. journal copies and/or said one or more journal segments 12. The computer system of claim 11, wherein said based on content of a second of said one or more journal sequencer re-publishes said plurality of sequenced messages copies and/or said one or more journal segments. to said applications or processes. 7. The method of claim 1, further comprising: 13. The computer system of claim 10, wherein said one or dividing said one or more journal copies and/or said one or more journal copies and/or said one or more journal segments more journal segments into at least a first tier and a are generated by a dedicated software or hardware module. second tier; and restricting updating of or recovering of content by a sec 14. The computer system of claim 10, further configured ond-tier journal copy/segment to be based on content of to: either another second-tier journal copy/segment or a update content of said one or more journal copies and/or first-tier journal copy/segment. said one or more journal segments with updated content 8. The method of claim 1, wherein said computer system is of said master journal. selected from a group consisting of an electronic trading 15. The computer system of claim 10, further configured system; an auction-based sale system; and a gaming system. to: 9. The method of claim 1, wherein the estimated demandis update or recover content of a first of said one or more determined based on one or more factors selected from a journal copies and/or said one or more journal segments group consisting of: based on content of a second of said one or more journal known or potential software failures; copies and/or said one or more journal segments. known or potential hardware failures; 16. The computer system of claim 1 further configured to: a number of applications or processes affected by a soft divide said one or more journal copies and/or said one or ware or hardware failure; more journal segments into at least a first tier and a a speed at which an application or process accesses a mes second tier; and sage in said journal, a journal copy, or a journal segment; restrict updating of or recovering of content by a second a desired recovery time for a failed application or process; tier journal copy/segment to be based on content of and either another second-tier journal copy/segment or a expected workload of the computer system. first-tier journal copy/segment. US 2015/0261625 A1 Sep. 17, 2015

17. The computer system of claim 10, wherein said com cesses during operations of the computer system, at least puter system is selected from a group consisting of an elec one subset of said applications or processes requiring tronic trading system; an auction-based sale system; and a access to said sequenced messages to function properly; gaming system. determining an estimated demand for access to said 18. The computer system of claim 10, wherein the esti sequenced messages by said at least one subset of appli mated demand is determined based on one or more factors cations or processes that may experience failovers; selected from a group consisting of: generating, based on said estimated demand, one or more known or potential software failures; journal copies and/or one or more journal segments by known or potential hardware failures; duplicating content of said master journal, each said a number of applications or processes affected by a soft journal copy or journal segment being independently ware or hardware failure; accessible by a single application or process at any given a speed at which an application or process accesses a mes sage in said journal, a journal copy, or a journal segment; moment; and a desired recovery time for a failed application or process; allocating said one or more journal copies and/or said one and or more journal segments, upon demand, to some of said expected workload of the computer system. at least one subset of said applications or processes that 19. A non-transitory computer readable medium having have experienced failovers or a gap in said sequenced computer instructions which, when executed, causes a com messages, such that multiple applications or processes puter system to implement expedited message retransmis can simultaneously access the content of said master sion, the non-transitory computer readable medium compris journal, thereby expediting access to said sequenced ing code for: messages in said master journal by said some applica maintaining, in a storage medium of the computer system, tions or processes in their recovery from said failovers or a master journal of sequenced messages generated from said gap in said sequenced messages. a plurality of messages written by applications or pro