背景技術(shù):
計算機系統(tǒng)目前正在廣泛使用。一些這樣的計算機系統(tǒng)使得用戶能夠以字符串的形式提供數(shù)據(jù)鍵入。鍵入的一些數(shù)據(jù)可以是分段的數(shù)據(jù),這意味著數(shù)據(jù)包含根據(jù)結(jié)構(gòu)化格式提供的多個不同段。一個示例格式是一組離散值,每個離散值是一個串。
例如,一些計算機系統(tǒng)包括業(yè)務(wù)系統(tǒng)。業(yè)務(wù)系統(tǒng)可以包括顧客關(guān)系管理(crm)系統(tǒng),企業(yè)資源計劃(erp)系統(tǒng),業(yè)務(wù)線(lob)系統(tǒng)等。這些系統(tǒng)通常具有與業(yè)務(wù)系統(tǒng)中的項目相對應(yīng)的業(yè)務(wù)數(shù)據(jù)記錄。例如,記錄可以對應(yīng)于顧客賬戶,供應(yīng)商賬戶,產(chǎn)品,或各種各樣的其他事物。
每個項目可以由數(shù)字表示。例如,顧客賬戶可以通過賬號來標識。供應(yīng)商賬戶可以由供應(yīng)商賬號來標識。產(chǎn)品可以由產(chǎn)品號標識等等。
這些數(shù)字通常被段以指示不同的變形。例如,顧客賬號可以具有總體上標識顧客的主要賬戶段。它還可以具有標識顧客的特定劃分的劃分賬戶部分、標識特定業(yè)務(wù)單元的業(yè)務(wù)單元賬戶段、標識特定計劃(project)的計劃段等。對于可以鍵入的其他分段的信息也是如此。這種類型的信息被稱為分段的數(shù)據(jù)。
當業(yè)務(wù)系統(tǒng)接收到預期為分段的數(shù)據(jù)格式的傳入串時,它經(jīng)常解析傳入串以標識個體段和段值。一種這樣做的方法是基于串中包含的辨識的(recognized)分隔符來分隔串,并將分隔符之間的字符組視為離散段值。分隔符的一個示例是連字符。然而,這只是一個示例,計算機系統(tǒng)經(jīng)常將各種不同類型的字符標識為分隔符。
一些計算機系統(tǒng)還允許段值包括分隔符字符。例如,在計算機系統(tǒng)將連字符辨識為分隔符的情況下,計算機系統(tǒng)還可以允許用戶在段內(nèi)包括連字符作為段值的一部分。
上面的討論僅為了一般的背景信息而提供,并且不旨在用于幫助確定所要求保護的主題的范圍。
技術(shù)實現(xiàn)要素:
接收傳入串,并且基于傳入串中的分隔符來生成初始分段。初始分段中的段值通過確定在數(shù)據(jù)存儲中是否找到它們來驗證。在未找到初始分段中的段的情況下,后續(xù)段和對應(yīng)分隔符被迭代聯(lián)結(jié)(concatenate)以找到段值。在仍然沒有找到段的情況下,在迭代聯(lián)結(jié)之后,聯(lián)結(jié)中的初始段作為未找到的段而被輸出,并且進一步處理后續(xù)段。
提供本發(fā)明內(nèi)容以便以簡化的形式介紹概念的選擇,其在下面的具體實施方式中進一步描述。本發(fā)明內(nèi)容不旨在標識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。所要求保護的主題不限于解決背景技術(shù)中指出的任何或所有缺點的實現(xiàn)。
附圖說明
圖1是數(shù)據(jù)分段架構(gòu)的一個示例的框圖。
圖2a和圖2b(這里統(tǒng)稱為圖2)示出了在對輸入串進行分段時說明圖1所示的架構(gòu)的操作的一個示例的流程圖。
圖3示出了用戶接口顯示的一個示例。
圖4是部署在云計算架構(gòu)中的圖1所示的架構(gòu)的一個示例的框圖。
圖5-圖7示出了移動設(shè)備的各種示例。
圖8是可以在圖1和圖4的架構(gòu)中使用的計算環(huán)境的一個示例的框圖。
具體實施方式
本討論將繼續(xù)描述作為業(yè)務(wù)系統(tǒng)的計算機系統(tǒng)。然而,應(yīng)當理解,計算機系統(tǒng)也可以是各種各樣的其他計算機系統(tǒng)。例如,它可以是接收與分段的數(shù)據(jù)相對應(yīng)的輸入串的任何計算機系統(tǒng),并且對輸入串執(zhí)行數(shù)據(jù)分段以標識數(shù)據(jù)的段結(jié)構(gòu),并且標識在數(shù)據(jù)結(jié)構(gòu)中找到的段中的個體段值。這樣的系統(tǒng)可以是處理作為分段的數(shù)據(jù)提供的部件號或產(chǎn)品號的系統(tǒng)、處理作為分段的數(shù)據(jù)提供的銀行賬戶的銀行賬戶系統(tǒng)等。因此,將系統(tǒng)描述為業(yè)務(wù)系統(tǒng)僅僅是為了示例。
圖1是數(shù)據(jù)分段架構(gòu)100的一個示例的框圖。架構(gòu)100示意性地包括生成用戶接口顯示104的業(yè)務(wù)系統(tǒng)102,其具有用戶輸入機制106用于由用戶108的交互。用戶108示意性地與用戶輸入機制106交互,以便控制和操縱業(yè)務(wù)系統(tǒng)102。在一個示例中,用戶接口顯示104包括允許用戶108鍵入表示分段的數(shù)據(jù)的數(shù)據(jù)串的數(shù)據(jù)鍵入用戶輸入機制。這將在下面更詳細地描述。
業(yè)務(wù)系統(tǒng)102示意性地包括處理器或服務(wù)器110,用戶接口組件112,應(yīng)用組件114,分段系統(tǒng)116和數(shù)據(jù)存儲118。它還可以包括各種各樣的其他業(yè)務(wù)系統(tǒng)功能120。
數(shù)據(jù)存儲118本身示意性地包括分段的數(shù)據(jù)122(諸如賬號,部件號等),并且它可以包括各種各樣的其他業(yè)務(wù)數(shù)據(jù)124。分段系統(tǒng)116示意性地包括初始分段組件126,迭代聯(lián)結(jié)組件128,回溯組件130,查找組件132,并且它也可以包括其他項目134。
在描述架構(gòu)100在執(zhí)行數(shù)據(jù)分段中的總體操作之前,將首先提供架構(gòu)100中的一些項目及其對應(yīng)操作的簡要概述。用戶接口組件112示意性地生成(在其他項目的控制下,或者由它本身控制)用戶接口顯示104,并且處理通過用戶輸入機制106的輸入。應(yīng)用組件114示意性地運行對在數(shù)據(jù)存儲118中的業(yè)務(wù)數(shù)據(jù)進行操作的應(yīng)用,以執(zhí)行處理或允許用戶108執(zhí)行任務(wù)或活動,以便相對于使用業(yè)務(wù)系統(tǒng)102的組織來執(zhí)行他或她的工作職能。應(yīng)用可以包括總分類帳應(yīng)用或各種其他會計應(yīng)用,庫存處理或庫存控制應(yīng)用,機會跟蹤應(yīng)用,項目管理應(yīng)用等。業(yè)務(wù)系統(tǒng)功能120示意性地提供由用戶108使用以便運行應(yīng)用并執(zhí)行他或她的任務(wù)或活動的功能。
分段系統(tǒng)116通過用戶輸入機制106接收數(shù)據(jù)串,并且解析該信息以標識該信息中的分段結(jié)構(gòu),并且標識用于所標識分段結(jié)構(gòu)中的段的個體段值??梢詫⒍沃堤峁┙o在業(yè)務(wù)系統(tǒng)102中將被使用的應(yīng)用組件114、業(yè)務(wù)系統(tǒng)功能120或其他項目。
圖2a和圖2b(這里統(tǒng)稱為圖2)示出了分段系統(tǒng)116在對傳入數(shù)據(jù)串進行分段中的操作的一個示例的流程圖。圖3示出了可以由用戶108使用以便輸入數(shù)據(jù)串的用戶接口顯示的一個示例?,F(xiàn)在將相互結(jié)合圖1-圖3來描述。在本示例中,假設(shè)業(yè)務(wù)系統(tǒng)102將連字符字符辨識為段之間的分隔符。然而,還假設(shè)業(yè)務(wù)系統(tǒng)102允許用戶使用連字符作為任何給定段內(nèi)的離散段值的一部分。
首先假設(shè)用戶108提供指示用戶108希望訪問業(yè)務(wù)系統(tǒng)102的輸入。這由圖2中的塊140指示。例如,用戶108可以提供認證信息142或者提供指示這一點的各種其他用戶輸入144。
然后,用戶108提供指示用戶108希望執(zhí)行某種類型的數(shù)據(jù)鍵入的用戶輸入。這由塊146指示。作為響應(yīng),業(yè)務(wù)系統(tǒng)102生成用戶接口顯示104,其中用戶輸入機制106允許用戶108鍵入信息。顯示這樣的數(shù)據(jù)鍵入控制由圖2中的塊148指示。
圖3示出了在用戶接口顯示150上的這種數(shù)據(jù)鍵入控制的一個示例??梢钥闯觯脩舯惶崾緦①~號鍵入到文本塊152中。圖3示出了用戶已經(jīng)將字符串123-456-789-0鍵入到文本塊152中。在圖2的流程圖中,由塊156指示接收包括至少一個分隔符的字符串的數(shù)據(jù)鍵入輸入。作為概述,該信息將被示意性地提供給期望代表分段的數(shù)據(jù)的字符串的分段系統(tǒng)116。分段系統(tǒng)116示意性地從輸入串中標識包括分段結(jié)構(gòu)和個體段值的分段值。分段結(jié)構(gòu)將指示串中的多個個體段。個體段值將是分段結(jié)構(gòu)中每個段的段值。然后,它相對于數(shù)據(jù)存儲118的分段的數(shù)據(jù)122來驗證分段值。
可以看出,如圖3所示,字符串輸入有各種不同的可能分段?;谳斎胱址?,存在八種不同的可能分段(例如,輸入串可以以八種不同的方式被分段)。這八種不同的方式包括來自一到四個不同段的任何位置,如下所示(下面的列表中的逗號表示段之間的分隔):
123-456-789-0(即,它是全部一個段)
123-456-789,0(即,它是兩個段)
123-456,789-0(兩個段)
123-456,789,0(三個段)
123,456-789-0(兩個段)
123,456-789,0(三個段)
123,456,789-0(三個段)
123,456,789,0。(四個段)
在許多情況下,給定的段不包含分隔符。因此,在上面的示例中可能是這樣:最可能的分段是最后的分段123,456,789,0。因此,當嘗試對由用戶108輸入的串進行分段時,分段系統(tǒng)116中的初始分段組件126基于分隔符字符(在這種情況下,連字符),來將串分段成段結(jié)構(gòu)。因此,它獲取初始分段值為上面列表中的最后一個分段(即123,456,789,0)。該分段結(jié)構(gòu)是四個段,段值是每個段中的值。基于分隔符對輸入串進行分段以獲取初始分段值,由圖2的流程圖中的塊158表示。
然后,查找組件132通過按順序查找每個段值來開始驗證初始分段。因此,如塊160所指示,它選擇在初始分段中的第一段,然后它在數(shù)據(jù)存儲118中查找該段值,如塊162所指示。
如果在數(shù)據(jù)存儲118中找到段值,則將其作為找到的段進行輸出。然后從初始分段中移除之。這由圖2中的塊164和塊166指示。
然后,它確定初始分段中的更多段是否尚未被處理。這由塊168指示。如果是,則處理返回到塊160,其中選擇并查找下一段(在塊162)。下一段將被找到存在,將它作為找到的段進行輸出,并從初始分段中被移除。這一直繼續(xù)直到初始分段中的所有段已被處理。
然后,在塊170處繼續(xù)處理,其中最終分段列表被生成并輸出,如塊172所指示。如果在最終分段中存在錯誤(如下所述),則可以輸出最終分段以用于用戶校正,如塊174所指示。還可以將最終分段輸出到其他業(yè)務(wù)系統(tǒng)功能120以用于進一步處理。這由塊176指示。最終分段也可以以其他方式輸出,如塊178所指示。
現(xiàn)在考慮圖3所示的輸入串中的分隔符之一實際上是有效段值的一部分的場景。例如,考慮適當分段為123,456-789,0的場景??梢钥闯?,第二段中的連字符是段值的一部分,而不是段分隔符。在這種情況下,輸入串將再次基于分隔符字符首先被分割成初始分段。因此,初始分段將再次為123,446,789,0。然后,第一段(123)將在塊160處從初始分段中被選擇、在塊162處被查找、在塊164處被找到存在,并在塊166處作為找到的段被輸出,然后從初始分段中被移除。
該過程將返回到塊160,其中初始分段中的下一段(456)被選擇。已經(jīng)發(fā)現(xiàn),當段值包含分隔符字符時,由該字符分隔的段值的兩個部分本身不太可能是有效值。因此,當查找組件132查找段值456時,它在塊164處沒有找到該值。在這一點上,迭代聯(lián)結(jié)組件128確定在初始分段中是否還有任何要處理的段。這由塊180指示。使用正在討論的示例,存在將被處理的更多段(段789和段0)。因此,迭代聯(lián)結(jié)組件128將下一個分隔符字符和下一段附加到當前選擇的段。這由塊182指示。
也就是說,迭代聯(lián)結(jié)組件128將生成聯(lián)結(jié)段值“456-789”。處理返回到塊162,其中查找組件132在數(shù)據(jù)存儲118中的分段的數(shù)據(jù)122中查找聯(lián)結(jié)段值“456-789”以查看其是否存在。如果聯(lián)結(jié)值確實存在(在塊164處),那么該值(456-789)作為第二段被輸出,并且該整個串從初始分段中被移除。
迭代聯(lián)結(jié)組件128然后確定在初始分段中是否存在將被處理的更多段??梢钥闯?,在初始分段中有一個附加段(0)。因此,處理再次返回到塊160,其中該段被選擇和查找(在塊162處)。將在塊164處被找到存在,并且將其作為找到的段被輸出。在塊168處沒有找到存在更多的段,因此最終和正確的分段被輸出為123,456-789,0。
然而,分段系統(tǒng)116包括回溯組件130。組件130允許段是未被找到的——例如它們被錯誤鍵入或以其他方式錯誤地鍵入,但是其他段仍然被找到。
例如,假定用戶已經(jīng)鍵入“1x3-456-789-0”。進一步假設(shè)段值1x3不存在于分段的數(shù)據(jù)122中,因此無效。回溯組件130示意性地允許這一點,同時仍然找到其他有效段。使用上述處理,初始分段系統(tǒng)116生成初始分段為1x3,456,789,0。假設(shè)實際分段為123,456-789,0。再次,使用上述處理,初始分段組件126和迭代聯(lián)結(jié)組件128將按順序搜索以下分段值:
1x3
1x3-456
1x3-456-789
1x3-456-789-0。
在這一點處,由于不存在第一分段值(1x3)并且由于不存在具有值1x3的段聯(lián)結(jié)(它們不是有效的段值),所以將不會找到對于這些中的任一一個的匹配值。因此,處理將到達塊180,其中初始分段中不存在用于處理的更多段。因此,回溯組件130將示意性地僅將第一段作為未找到的段進行輸出,并且將僅從初始分段中移除第一段。這由圖2中的塊184指示。
然后,處理將在塊168處繼續(xù),其中分段系統(tǒng)116將確定初始分段中是否存在更多(未被移除的)段。當然存在,而這些段包括456,789,0。然后將如上所述進行執(zhí)行,其中分段系統(tǒng)116將首先搜索段456,并且將不會找到它。迭代聯(lián)結(jié)組件128然后將聯(lián)結(jié)后續(xù)段及其分隔符以獲取“456-789”,并且查找組件132將搜索并找到該值。最后,也將找到第三段“0”。
因此結(jié)果將具有1x3,456-789,0的正確分段結(jié)構(gòu),即使不是所有的段值都被找到也是如此。因此可以輸出分段值,同時將分段值中的第一段標記為未找到(例如,包含錯誤)。用戶108然后可以快速地標識包含錯誤的特定段、修復它并且重新提交該串以進行處理。
在一個示例中,因為初始分段中的一個初始段已經(jīng)改變,所以對于該段的右側(cè)的分段結(jié)構(gòu)可能改變。因此,在該示例中,當用戶校正段值時,校正的段的右側(cè)的所有段被重新處理。
因此可以看出,本描述提供了顯著的技術(shù)優(yōu)點。例如,它改善了業(yè)務(wù)系統(tǒng)102本身的處理。代替搜索所有可能的分段組合,本說明書通過基于分隔符字符進行初始分段來進行。這通常是正確的分段,因此分段過程變得更快、消耗更少的計算和存儲器開銷。
此外,在找到段值的情況下,將其作為找到的值進行輸出,并且系統(tǒng)搜索該段右側(cè)的段值。如果沒有找到任何段,迭代聯(lián)結(jié)僅在已經(jīng)找到的段的右側(cè)的段執(zhí)行,因此已經(jīng)找到的段不需要被重新處理。同樣,這導致顯著減少由分段系統(tǒng)使用的處理和存儲器開銷。
本描述還允許段值包括分隔符字符,但仍然有效地確定預期的分段。它仍然允許在給定的段被錯誤地鍵入或以其他方式被錯誤地鍵入并且找不到匹配的值的情形。這改善了系統(tǒng)102的靈活性,允許分隔符字符作為段值的一部分,它還改善了系統(tǒng)102的處理速度和效率,因為它不需要迭代地搜索所有可能的分段組合。此外,它大大改善了用戶體驗,因為它允許用戶快速并且容易地鍵入分段的數(shù)據(jù),并且易于認出和糾正分段的數(shù)據(jù)中的錯誤。在分隔符是段值的一部分的情況下,它不強制用戶進行某種形式的顯式分段。這在系統(tǒng)中自動標識和驗證。
本討論已經(jīng)提到了處理器和服務(wù)器。在一個實施例中,處理器和服務(wù)器包括沒有單獨示出的具有相關(guān)聯(lián)的存儲器和定時電路的計算機處理器。它們是它們所屬的系統(tǒng)或設(shè)備的功能部件,并且由這些系統(tǒng)中的其他組件或項目的功能來激活和促進。
此外,已經(jīng)討論了許多用戶接口顯示。它們可以采用各種不同的形式,并且可以具有部署在其上的各種不同的用戶可激勵的輸入機制。例如,用戶可激勵的輸入機制可以是文本塊,復選塊,圖標,鏈接,下拉菜單,搜索塊等。它們也可以以各種不同的方式來激勵。例如,可以使用點擊設(shè)備(如軌跡球或鼠標)來激勵它們。它們可以使用硬件按鈕、開關(guān)、操縱桿或鍵盤、拇指開關(guān)或拇指墊等來激勵。它們也可以使用虛擬鍵盤或其他虛擬激勵器來激勵。另外,顯示它們的屏幕是觸感屏幕,它們可以使用觸摸手勢來激勵。此外,顯示它們的設(shè)備具有語音辨識組件,可以使用語音命令來激勵它們。
還已經(jīng)討論了許多數(shù)據(jù)存儲。將會注意到它們每個可以分成多個數(shù)據(jù)存儲。對訪問它們的系統(tǒng)而言所有這些都可以是本地的,所有這些都可以是遠程的,或者一些可以是本地的而另一些則是遠程的。所有這些配置在本文中都被考慮。
此外,附圖示出了具有歸因于每個塊的功能的塊的數(shù)量。應(yīng)該注意,可以使用較少的塊,因此功能由更少的組件執(zhí)行。此外,可以使用更多的塊來實現(xiàn)分布在更多組件之間的功能。
圖4是圖1所示的架構(gòu)100的框圖,除了在圖4所示的示例中其元件被部署在云計算架構(gòu)500中之外。云計算提供不需要物理位置的最終用戶知識或遞送服務(wù)的系統(tǒng)的配置的計算、軟件、數(shù)據(jù)訪問和存儲服務(wù)。在各種實施例中,云計算使用適當?shù)膮f(xié)議在諸如因特網(wǎng)的廣域網(wǎng)上遞送服務(wù)。例如,云計算提供商通過廣域網(wǎng)遞送應(yīng)用,并且可以通過web瀏覽器或任何其他計算組件對其進行訪問。架構(gòu)100的軟件或組件以及對應(yīng)的數(shù)據(jù)可以存儲在遠程位置處的服務(wù)器上。云計算環(huán)境中的計算資源可以在遠程數(shù)據(jù)中心位置處進行整合,或者它們也可以被分散。云計算基礎(chǔ)設(shè)施可以通過共享數(shù)據(jù)中心來遞送服務(wù),即使它們表現(xiàn)為針對用戶的單一訪問點。因此,可以使用云計算架構(gòu)從遠程位置處的服務(wù)提供商提供本文描述的組件和功能??商娲?,它們可以從常規(guī)服務(wù)器提供,或者它們可以直接地或以其他方式被安裝在客戶端設(shè)備上。
該描述旨在包括公共云計算和私有云計算。云計算(公共和私有)提供了大體上無縫的資源池,并且降低了管理和配置底層硬件基礎(chǔ)設(shè)施的需求。
公共云由供應(yīng)商管理,并且通常支持使用相同基礎(chǔ)設(shè)施的多個顧客。此外,公共云,與私有云相反,可以將最終用戶從管理硬件中解放出來。私有云可能由組織本身管理,基礎(chǔ)架構(gòu)通常不與其他組織共享。組織仍然在某種程度上維護硬件,比如安裝和維修等。
在圖4所示的示例中,一些項目類似于圖1所示的項目,并且它們的編號類似。圖4具體示出了業(yè)務(wù)系統(tǒng)102可以位于云502(其可以是公共的,私有的或者組合的,在組合中部分是公共的而另一些是私有的)中。因此,用戶108使用用戶設(shè)備504(諸如包括客戶端系統(tǒng)的用戶設(shè)備)通過云502訪問這些系統(tǒng)。
圖4還描繪了云架構(gòu)的另一個示例。圖4示出了:還可以設(shè)想業(yè)務(wù)系統(tǒng)102的一些元件被部署在云502中,而其他元件未被部署在云502中。作為示例,數(shù)據(jù)存儲118可以被部署在云502之外,并且通過云502被訪問。在另一個示例中,分段系統(tǒng)116也在云502之外。無論它們位于何處,它們都可以由設(shè)備504通過網(wǎng)絡(luò)(廣域網(wǎng)或局域網(wǎng))直接訪問,它們可以由服務(wù)托管在遠程站點處,或者它們可以通過云而被提供為服務(wù),或者由駐留于云中的連接服務(wù)所訪問。所有這些架構(gòu)在本文中都被考慮。
還將注意到,架構(gòu)100或其一部分可以被部署在各種不同的設(shè)備上。這些設(shè)備中的一些設(shè)備包括服務(wù)器,臺式計算機,膝上型計算機,平板計算機或其他移動設(shè)備比如掌上電腦,手機,智能電話,多媒體播放器,個人數(shù)字助理等。
圖5是可以用作用戶的或客戶的手持設(shè)備16的手持或移動計算設(shè)備的一個示意性示例的簡化框圖,其中可以部署本系統(tǒng)(或其部分)。圖6-圖7是手持設(shè)備或移動設(shè)備的示例。
圖5提供可以運行架構(gòu)100的組件或者與架構(gòu)100進行交互、或兩者的客戶端設(shè)備16的組件的一般框圖。在設(shè)備16中,提供通信鏈路13,其允許手持設(shè)備與其他計算設(shè)備進行通信,并且在一些實施例中提供用于比如通過掃描來自動接收信息的信道。通信鏈路13的示例包括紅外端口,串行/usb端口,諸如以太網(wǎng)端口的有線網(wǎng)絡(luò)端口,以及無線網(wǎng)絡(luò)端口,所述無線網(wǎng)絡(luò)端口允許通過一個或多個通信協(xié)議進行通信,所述通信協(xié)議包括通用分組無線業(yè)務(wù)(gprs),lte,hspa,hspa+和其他3g和4g無線電協(xié)議,1xrtt和短消息服務(wù)——其是用于向網(wǎng)絡(luò)提供蜂窩訪問的無線服務(wù),以及提供到網(wǎng)絡(luò)的本地無線連接的wi-fi協(xié)議和藍牙協(xié)議。
在其他實施例下,應(yīng)用或系統(tǒng)在連接到sd卡接口15的可移除安全數(shù)字(sd)卡上被接收。沿著總線19(該總線19也連接到存儲器21和輸入/輸出(i/o)組件23以及時鐘25和定位系統(tǒng)27),sd卡接口15和通信鏈路13與處理器17通信(其也可以體現(xiàn)來自圖1的處理器110或在來自圖4的用戶設(shè)備504上的那些)。
在一個實施例中,提供i/o組件23以促進輸入和輸出操作。設(shè)備16的各種實施例的i/o組件23可以包括諸如按鈕,觸摸傳感器,多觸摸傳感器,光學或視頻傳感器,語音傳感器,觸摸屏,接近傳感器,麥克風,傾斜傳感器和重力開關(guān)之類的輸入組件以及諸如顯示設(shè)備,揚聲器和打印機端口之類的輸出組件。也可以使用其他i/o組件23。
時鐘25示意性地包括輸出時間和日期的實時時鐘組件。它也可以說明地為處理器17提供定時功能。
位置系統(tǒng)27示意性地包括輸出設(shè)備16的當前地理位置的組件。這可以包括例如全球定位系統(tǒng)(gps)接收機,loran系統(tǒng),航位推算系統(tǒng),蜂窩三角測量系統(tǒng),或其他定位系統(tǒng)。它還可以包括例如生成所需地圖、導航路線和其他地理功能的地圖軟件或?qū)Ш杰浖?/p>
存儲器21存儲操作系統(tǒng)29,網(wǎng)絡(luò)設(shè)置31,應(yīng)用33,應(yīng)用配置設(shè)置35,數(shù)據(jù)存儲37,通信驅(qū)動器39和通信配置設(shè)置41。存儲器21可以包括所有類型的有形易失性和非易失性計算機可讀存儲器設(shè)備。它還可以包括計算機存儲介質(zhì)(如下所述)。存儲器21存儲計算機可讀指令,所述計算機可讀指令當由處理器17執(zhí)行時使處理器根據(jù)指令執(zhí)行計算機實現(xiàn)的步驟或功能。類似地,設(shè)備16可以具有客戶端業(yè)務(wù)系統(tǒng)24,所述客戶端業(yè)務(wù)系統(tǒng)24可以運行各種業(yè)務(wù)應(yīng)用或體現(xiàn)系統(tǒng)102的部分或全部。處理器17可以被其他組件激活以促進它們的功能。
網(wǎng)絡(luò)設(shè)置31的示例包括諸如代理信息、因特網(wǎng)連接信息和映射之類。應(yīng)用配置設(shè)置35包括為特定企業(yè)或用戶定制應(yīng)用的設(shè)置。通信配置設(shè)置41提供用于與其他計算機通信的參數(shù),并且包括諸如gprs參數(shù)、sms參數(shù)、連接用戶名和密碼的項目。
應(yīng)用33可以是先前已經(jīng)存儲在設(shè)備16上的應(yīng)用或在使用期間安裝的應(yīng)用,盡管它們也可以是操作系統(tǒng)29的一部分,或者也可以被托管在設(shè)備16外部。
圖6示出了其中設(shè)備16是平板計算機600的一個實施例。在圖6中,計算機600被示出為具有用戶接口顯示屏幕602。屏幕602可以是觸摸屏(因此可以使用來自用戶手指的觸摸手勢來與應(yīng)用進行交互)或者支持筆的接口,其接收來自鋼筆或尖筆的輸入。它也可以使用屏幕上的虛擬鍵盤。當然,也可通過諸如無線鏈路或usb端口之類的合適的附接機制而將其附接到鍵盤或其他用戶輸入設(shè)備。計算機600也可以示意性地接收語音輸入。
設(shè)備16的附加示例也可以被使用。設(shè)備16可以是特征電話,智能電話或移動電話。該電話包括用于撥打電話號碼的一組鍵盤,能夠顯示包括應(yīng)用圖像、圖標、網(wǎng)頁、照片和視頻在內(nèi)的圖像的顯示器,以及用于選擇顯示器上顯示的項目的控制按鈕。電話可以包括用于接收蜂窩電話信號的天線,比如通用分組無線業(yè)務(wù)(gprs)和1xrtt以及短消息服務(wù)(sms)信號。在一些示例中,電話還包括可接受sd卡的安全數(shù)字(sd)卡插槽。
移動設(shè)備還可以是個人數(shù)字助理(pda)或多媒體播放器或平板計算設(shè)備等(以下稱為pda)。當尖筆位于屏幕上方時,pda可以包括感應(yīng)尖筆(或其他指針比如用戶的手指)的位置的感應(yīng)屏幕。這允許用戶選擇、突出顯示和移動屏幕上的項目以及繪圖和書寫。pda還可以包括許多用戶輸入鍵或按鈕,其允許用戶滾動顯示在顯示器上的菜單選項或其他顯示選項,并且允許用戶改變應(yīng)用或選擇用戶輸入功能,而不用聯(lián)系顯示器。pda可以包括內(nèi)部天線和允許與其他計算機進行無線通信的紅外發(fā)射器/接收器以及允許與其他計算設(shè)備進行硬件連接的連接端口。這樣的硬件連接通常通過支架進行,所述支架通過串行或usb端口連接到另一臺計算機。因此,這些連接是非網(wǎng)絡(luò)連接。
圖7示出電話可以是智能電話71。智能電話71具有顯示圖標或區(qū)塊(tile)的觸敏顯示器73或其他用戶輸入機制75。用戶可以使用機制75來運行應(yīng)用,進行呼叫,執(zhí)行數(shù)據(jù)傳送操作等。通常,智能電話71建立在移動操作系統(tǒng)上,并且提供比功能電話更高級的計算能力和連接性。
注意,其他形式的設(shè)備16是可能的。
圖8是在其中可以部署架構(gòu)100或其部分(例如)的計算環(huán)境的一個實施例。參考圖8,用于實現(xiàn)一些實施例的示例系統(tǒng)包括計算機810形式的通用計算設(shè)備。計算機810的組件可以包括但不限于處理單元820(其可以包括處理器110或用戶設(shè)備504中的那些),系統(tǒng)存儲器830和系統(tǒng)總線821,所述系統(tǒng)總線821將包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合到處理單元820。系統(tǒng)總線821可以是幾種類型的總線結(jié)構(gòu)中的任何一種,包括存儲器總線或存儲器控制器,外圍總線以及使用各種總線架構(gòu)中的任意總線架構(gòu)的本地總線。作為示例而非限制,這種架構(gòu)包括工業(yè)標準架構(gòu)(isa)總線,微通道架構(gòu)(mca)總線,增強型isa(eisa)總線,視頻電子標準協(xié)會(vesa)本地總線和外圍組件互連(pci)總線,也稱為夾層總線。關(guān)于圖1描述的存儲器和程序可以部署在圖8的對應(yīng)部分中。
計算機810通常包括各種計算機可讀介質(zhì)。計算機可讀介質(zhì)可以是可由計算機810訪問的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì),可移除和不可移除介質(zhì)。作為示例而非限制,計算機可讀介質(zhì)可以包括計算機存儲介質(zhì)和通信介質(zhì)。計算機存儲介質(zhì)與調(diào)制數(shù)據(jù)信號或載波不同,也不包括調(diào)制數(shù)據(jù)信號或載波。它包括硬件存儲介質(zhì),包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其他數(shù)據(jù)的信息的任何方法或技術(shù)所實現(xiàn)的易失性和非易失性、可移除和不可移除介質(zhì)。計算機存儲介質(zhì)包括但不限于ram,rom,eeprom,閃速存儲器或其他存儲器技術(shù),cd-rom,數(shù)字通用盤(dvd)或其他光盤存儲器,磁帶盒,磁帶,磁盤存儲器或其他磁存儲設(shè)備或可用于存儲所需信息并且可由計算機810訪問的任何其它介質(zhì)。通信介質(zhì)通常體現(xiàn)在傳輸機制中的計算機可讀指令,數(shù)據(jù)結(jié)構(gòu),程序模塊或其他數(shù)據(jù),并且包括任何信息遞送媒體。術(shù)語“調(diào)制數(shù)據(jù)信號”是指以對信號中的信息進行編碼的方式設(shè)置或改變其特征中的一個或多個的信號。作為示例而非限制,通信介質(zhì)包括諸如有線網(wǎng)絡(luò)或直接有線連接之類的有線介質(zhì)以及諸如聲學、rf、紅外和其他無線介質(zhì)之類的無線介質(zhì)。上述任何項的組合也應(yīng)包括在計算機可讀介質(zhì)的范圍內(nèi)。
系統(tǒng)存儲器830包括諸如只讀存儲器(rom)831和隨機存取存儲器(ram)832的易失性和/或非易失性存儲器形式的計算機存儲介質(zhì)。包含有助于在計算機810內(nèi)的元件之間比如在啟動期間傳送信息的基本例程的基本輸入/輸出系統(tǒng)833(bios)通常存儲在rom831中。ram832通常包含數(shù)據(jù)和/或程序模塊,這些數(shù)據(jù)和/或程序模塊可由處理單元820立即訪問和/或正在其上操作。作為示例而非限制,圖8示出了操作系統(tǒng)834,應(yīng)用程序835,其他程序模塊836和程序數(shù)據(jù)837。
計算機810還可以包括其他可移除/不可移除的易失性/非易失性計算機存儲介質(zhì)。僅作為示例,圖8示出了從不可移除、非易失性磁性介質(zhì)讀取或向其寫入的硬盤驅(qū)動器841以及從諸如cdrom或其它光學介質(zhì)的可移除、非易失性光盤856讀取或向其寫入的光盤驅(qū)動器855。可以在示例性操作環(huán)境中使用的其他可移除/不可移除、易失性/非易失性計算機存儲介質(zhì),包括但不限于磁帶盒,閃存卡,數(shù)字多功能盤,數(shù)字視頻帶,固態(tài)ram,固態(tài)rom等。硬盤驅(qū)動器841通常通過諸如接口840的不可移除存儲器接口連接到系統(tǒng)總線821,并且光盤驅(qū)動器855通常通過諸如接口850的可移除存儲器接口連接到系統(tǒng)總線821。
可替代地或另外,本文所描述的功能可以至少部分地由一個或多個硬件邏輯組件來執(zhí)行。例如而非限制,可以使用的示意性類型的硬件邏輯組件包括現(xiàn)場可編程門陣列(fpga),程序?qū)S眉呻娐?asic),程序特定標準產(chǎn)品(assp),系統(tǒng)級芯片系統(tǒng)(soc),復雜可編程邏輯設(shè)備(cpld)等。
上文和圖8所示的驅(qū)動器及其相關(guān)聯(lián)的計算機存儲介質(zhì)為計算機810提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊和其他數(shù)據(jù)的存儲。在圖8中,例如,硬盤驅(qū)動器841被示為存儲操作系統(tǒng)844,應(yīng)用程序845,其他程序模塊846和程序數(shù)據(jù)847。注意,這些組件可以與操作系統(tǒng)834、應(yīng)用程序835、其他程序模塊836和程序數(shù)據(jù)837相同或不同。操作系統(tǒng)844,應(yīng)用程序845,其他程序模塊846和程序數(shù)據(jù)847在這里給出不同的數(shù)字,以說明至少它們是不同的副本。
用戶可以通過諸如鍵盤862,麥克風863和諸如鼠標、軌跡球或觸摸板的指示設(shè)備861之類的輸入設(shè)備將命令和信息輸入到計算機810中。其他輸入設(shè)備(未示出)可以包括操縱桿,游戲板,衛(wèi)星天線,掃描儀等。這些和其他輸入設(shè)備通常通過耦合到系統(tǒng)總線的用戶輸入接口860連接到處理單元820,但是可以通過其他接口和總線結(jié)構(gòu)來連接,諸如并行端口、游戲端口或通用串行總線(usb)。視覺顯示器891或其他類型的顯示設(shè)備也經(jīng)由諸如視頻接口890的接口連接到系統(tǒng)總線821。除了監(jiān)視器之外,計算機還可以包括諸如揚聲器897和打印機896之類的其他外圍輸出設(shè)備,其可以通過輸出外圍接口895連接。
計算機810在使用與一個或多個遠程計算機比如遠程計算機880的邏輯連接的聯(lián)網(wǎng)環(huán)境中操作。遠程計算機880可以是個人計算機,手持設(shè)備,服務(wù)器,路由器,網(wǎng)絡(luò)pc,對等設(shè)備或其他公共網(wǎng)絡(luò)節(jié)點,并且通常包括相對于計算機810在上面所描述的許多或所有元件。在圖8中所描繪的邏輯連接包括局域網(wǎng)(lan)871和廣域網(wǎng)(wan)873,但也可以包括其他網(wǎng)絡(luò)。這樣的聯(lián)網(wǎng)環(huán)境在辦公室、企業(yè)范圍的計算機網(wǎng)絡(luò)、內(nèi)聯(lián)網(wǎng)和因特網(wǎng)中是常見的。
當在lan聯(lián)網(wǎng)環(huán)境中使用時,計算機810通過網(wǎng)絡(luò)接口或適配器870連接到lan871。當在wan聯(lián)網(wǎng)環(huán)境中使用時,計算機810通常包括調(diào)制解調(diào)器872或用于通過wan建立通信的其他手段873,比如因特網(wǎng)??梢允莾?nèi)部或外部的調(diào)制解調(diào)器872可以經(jīng)由用戶輸入接口860或其他適當?shù)臋C制而連接到系統(tǒng)總線821。在已聯(lián)網(wǎng)的環(huán)境中,相對于計算機810描繪的程序模塊或其部分可存儲在遠程存儲器存儲設(shè)備中。作為示例而非限制,圖8示出了駐留在遠程計算機880上的遠程應(yīng)用程序885。應(yīng)當理解,所示出的網(wǎng)絡(luò)連接是示例性的,并且可以使用其他手段在計算機之間建立通信鏈路。
還應(yīng)當注意,本文描述的不同實施例可以以不同的方式組合。也就是說,一個或多個示例的部分可以與一個或多個其他示例的部分組合。所有這一切都在本文中考慮。
示例1是一種方法,包括:
基于字符串中的一組分隔符字符,將字符串分段為具有對應(yīng)段值的段的初始分段;
驗證初始分段中的第一剩余段值以將該第一剩余段值標識為找到或未找到;
如果第一剩余段值被標識為未找到,則從第一剩余段值和后續(xù)的剩余段值重復地生成聯(lián)結(jié)的段值,并驗證聯(lián)結(jié)的段值;以及
如果第一剩余段值或聯(lián)結(jié)的段值被標識為找到,則將其從初始分段中移除;以及
重復驗證、生成聯(lián)結(jié)的段值以及移除的步驟,直到在初始分段中不再有剩余段值。
示例2是任何或所有先前示例的方法,其中重復生成聯(lián)結(jié)的段值包括:
將來自初始分段的下一個后續(xù)剩余段值和對應(yīng)分隔符字符聯(lián)結(jié)到第一剩余段值,以獲取聯(lián)結(jié)的段值;
驗證聯(lián)結(jié)的段值以將聯(lián)結(jié)的段值標識為找到或未找到;以及
重復聯(lián)結(jié)和驗證的步驟,直到聯(lián)結(jié)的段值被標識為找到,或者初始分段中的剩余段值全部已被聯(lián)結(jié)。
示例3是任何或所有先前示例的方法,并且還包括:
如果初始分段中的剩余段值全部已被聯(lián)結(jié)到聯(lián)結(jié)的段值,并且聯(lián)結(jié)的段值被標識為未找到,則僅將聯(lián)結(jié)的段值中的第一剩余段值標識為未找到,并且僅從初始分段中移除聯(lián)結(jié)的段值中的第一剩余段值。
示例4是任何或所有先前示例的方法,并且還包括:
生成指示輸出段的段結(jié)構(gòu)和對應(yīng)段值的輸出段;以及
指示輸出分段中的任何段值是否被標識為未找到。
示例5是任何或所有先前示例的方法,并且還包括:
接收經(jīng)修訂的分段,其中輸出分段中的段已被修改;以及
僅驗證在輸出分段中經(jīng)修改的段之后的經(jīng)修訂的分段中的段,以獲取最終分段。
示例6是任何或所有先前示例的方法,并且還包括:
在業(yè)務(wù)系統(tǒng)中生成數(shù)據(jù)鍵入用戶輸入機制;以及
通過數(shù)據(jù)鍵入用戶輸入機制接收字符串輸入。
示例7是任何或所有先前示例的方法,其中將字符串分段成初始分段包括:
在由字符串中的分隔符字符所標識的段邊界處將字符串劃分成多個段。
示例8是任何或所有先前示例的方法,其中驗證包括:
查找業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲中的段值,以標識在業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲中是否找到或未找到段值。
示例9是一種計算系統(tǒng),包括:
初始分段組件,初始分段組件被配置為基于串中的分隔符字符,接收字符串并生成具有對應(yīng)段值的段的初始分段值;
查找組件,查找組件被配置為驗證段值,并且基于驗證將對應(yīng)的段標識為有效或無效;以及
聯(lián)結(jié)組件,聯(lián)結(jié)組件被配置為針對無效段,將來自初始分段值的剩余段和分隔符迭代聯(lián)結(jié),以獲取聯(lián)結(jié)的段值,并將聯(lián)結(jié)的段值提供給查找組件以進行驗證,直到聯(lián)結(jié)的段值被標識為有效或初始分段值中的所有剩余段已經(jīng)被聯(lián)結(jié)。
示例10是任何或所有先前示例的計算系統(tǒng),其中查找組件被配置為從初始分段值移除有效段和有效聯(lián)結(jié)的段值,以將剩余段留在初始分段值中。
示例11是任何或所有先前示例的計算系統(tǒng),并且還包括:
回溯組件,回溯組件被配置為當聯(lián)結(jié)的段值被標識為無效時以及當剩余段全部已經(jīng)被聯(lián)結(jié)到聯(lián)結(jié)的段值時獲取聯(lián)結(jié)的段值,并且僅將聯(lián)結(jié)的段值中的第一段標識為無效,并僅從初始分段值中移除聯(lián)結(jié)的段值中的第一段。
示例12是任何或所有先前示例的計算系統(tǒng),其中初始分段組件被配置為通過在由字符串中的分隔符字符所標識的段邊界處將字符串劃分成多個段來生成初始分段值。
示例13是任何或所有先前示例的計算系統(tǒng),其中查找組件被配置為通過查找業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲中的段值來驗證段值,以標識在業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲中找到還是未找到段值。
示例14是任何或所有先前示例的計算系統(tǒng),其中查找組件被配置為生成指示輸出段的段結(jié)構(gòu)和對應(yīng)段值的輸出分段,并且指示輸出分段中的任何段值是否被標識為未找到。
示例15是一種存儲計算機可執(zhí)行指令的計算機可讀存儲介質(zhì),當由計算機執(zhí)行時,計算機可執(zhí)行指令使計算機執(zhí)行方法,方法包括:
驗證字符串中的字符的初始分段中的第一剩余段值,以將該第一剩余段值標識為找到或未找到;
如果第一剩余段值被標識為未找到,則通過以下方式生成聯(lián)結(jié)的段值:
將來自初始分段的下一個后續(xù)剩余段值和對應(yīng)的分隔符字符聯(lián)結(jié)到第一剩余段值,以獲取聯(lián)結(jié)的段值;
驗證聯(lián)結(jié)的段值以將聯(lián)結(jié)的段值標識為找到或未找到;以及
重復聯(lián)結(jié)和驗證的步驟,直到聯(lián)結(jié)的段值被標識為找到或者初始分段中的剩余段值全部已被聯(lián)結(jié);
如果將第一剩余段值或聯(lián)結(jié)的段值標識為找到,則將其從初始分段中移除;以及
重復驗證、生成聯(lián)結(jié)的段值以及移除的步驟,直到在初始分段中不再有剩余段值。
示例16是任何或所有先前示例的計算機可讀存儲介質(zhì),并且還包括:
基于字符串中的一組分隔符將字符串分段為包含具有對應(yīng)段值的段的初始分段。
示例17是任何或所有先前示例的計算機可讀存儲介質(zhì),并且還包括:
在業(yè)務(wù)系統(tǒng)中顯示數(shù)據(jù)鍵入用戶輸入機制;以及
通過數(shù)據(jù)鍵入用戶輸入機制接收具有分隔符組的字符串。
示例18是任何或所有先前示例的計算機系統(tǒng),其中將字符串分段為初始分段包括:
在由字符串中的分隔符字符所標識的段邊界處將字符串劃分成多個段。
示例19是任何或所有先前示例的計算機可讀存儲介質(zhì),其中驗證包括:
訪問業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲以標識在業(yè)務(wù)系統(tǒng)數(shù)據(jù)存儲中是否找到或未找到第一剩余段值或聯(lián)結(jié)的段值。
示例20是任何或所有先前示例的計算機可讀存儲介質(zhì),并且還包括:
當在初始分段中不再有剩余段值時,輸出具有包括和由驗證、生成聯(lián)結(jié)的段值以及移除的步驟所生成的聯(lián)結(jié)的段值和初始分段值中的段的任何組合的段的最終分段值,并且將最終分段值中的段標記為找到或未找到。
雖然已經(jīng)以結(jié)構(gòu)特征和/或方法動作特有的語言描述了主題,但是應(yīng)當理解,所附權(quán)利要求中限定的主題不一定限于上述具體特征或動作。相反,上述具體特征和動作被公開為實現(xiàn)權(quán)利要求的示例形式。