CN100593780C - 为与无线设备进行通信而压缩/解压数据的方法和*** - Google Patents
为与无线设备进行通信而压缩/解压数据的方法和*** Download PDFInfo
- Publication number
- CN100593780C CN100593780C CN200680046282A CN200680046282A CN100593780C CN 100593780 C CN100593780 C CN 100593780C CN 200680046282 A CN200680046282 A CN 200680046282A CN 200680046282 A CN200680046282 A CN 200680046282A CN 100593780 C CN100593780 C CN 100593780C
- Authority
- CN
- China
- Prior art keywords
- data
- server
- soap
- access protocol
- equipment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/107—Computer-aided management of electronic mailing [e-mailing]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/04—Protocols specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Operations Research (AREA)
- General Business, Economics & Management (AREA)
- Signal Processing (AREA)
- Economics (AREA)
- Marketing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
公开了一种***。该***包括在网络上与设备通信的服务器。服务器具有压缩器/解压器以通过网络服务描述来识别简单对象访问协议(SOAP)消息。服务器处的压缩器/解压器还根据网络服务描述来压缩SOAP消息以便被压缩的SOAP消息能够被传送到所述设备。服务器具有数据同步器以传送被压缩的SOAP消息到所述设备。
Description
技术领域
本发明通常涉及网络数据服务领域。更具体地,本发明涉及一种用于为与无线设备通信而压缩和解压数据的方法及***。
背景技术
在过去的几年里多种无线数据处理设备被引入。这些设备包括具备数据处理能力(例如那些包括无线应用协议(“WAP”)支持)的诸如手持Treo650、蜂窝电话之类的无线个人数字助理(“PDA”),以及最近地无线消息传递设备。
随着无线设备使用的增加,传送数据到无线设备或从无线设备传出数据变得越来越重要,但是它也很麻烦。例如,无线/移动设备被公知具有低的带宽、长的等待时间、慢的处理器、小的内存以及小的屏幕。没有一个用于为传送到无线设备以及从无线设备传送的压缩/解压数据的常规方法被设计来考虑移动设备的这些局限性。因此,高度压缩的数据传送到无线设备以及从无线设备传送是必要的。当使用基于可扩展标记语言(XML)协议时,该问题将更加严重。例如,XML解析用诸如桌面***之类的较大型***可以相对轻松的完成,但由于这些设备的局限性,使用传统的压缩/解压方法时用无线/移动设备工作比较差。
发明内容
在一个实施方式中,公开了一种用于无线设备保持当前数据的***。该***包括在网络中与设备通信的服务器。该服务器具有压缩器/解压器(编解解码器)以通过网络服务描述来识别简单对象访问协议(SOAP)消息。服务器处的编解码器还根据网络服务描述来压缩SOAP消息以便被压缩的SOAP消息能够被传送到所述设备。服务器具有数据同步器来传送压缩的SOAP消息到所述设备。服务器还解压缩被压缩的SOAP消息。
在另一个实施方式中,公开了一种方法。该方法包括通过网络服务描述识别SOAP消息。该方法还包括根据网络服务描述来压缩SOAP消息以便被压缩的SOAP消息能够被传送到所述设备。然后被压缩的消息被传送到设备。该方法还包括解压被压缩的SOAP消息。
附图说明
通过下面的结合附图的详细描述,本发明将被更好地理解,其中:
图1显示了实现本发明的单元的网络的一个实施方式;
图2显示了在服务器和设备之间传送的用于压缩和解压数据的架构的一个实施方式;
图3显示了在服务器中简单对象访问协议组件的上下文的一个实施方式;
图4显示了使用网络服务描述语言和简单对象访问协议压缩/解压字典进行数据压缩和解压的过程的一个实施方式;
图5显示了用于字典生成的过程的一个实施方式;
图6显示了用于执行基于有限状态机压缩数据的过程的一个实施方式;
图7显示了用于执行基于有限状态机解压缩数据的过程的一个实施方式;以及
图8显示了可以被实施的设备和或服务器的计算机***。
具体实施方式
根据用于为与无线设备通信的压缩和解压数据的机制的一种实施方式。在下面的描述中为了便于解释,许多特定的细节被列出以提供对本发明的完全理解。然而,对于本领域的的技术人员来说,本发明可以没有这些特定细节而实施是显而易见的。在其它实例中,已知的结构和设备以框图的形式显示以避免模糊本发明潜在的原理。
在说明书中提到的“一个实施方式”或“实施方式”指描述的与实施方式有关的特定的特征、结构或特性被包括在本发明的至少一个实施方式中。在说明书中许多地方都出现短语“在一个实施方式中”没有必要都指相同的实施方式。
图1显示了网络架构的一个实施方式。“用户位置”120在图1中示出并且可以是任何的局域或广域网络,许多服务器103通过该局域或广域网络和客户端110通信。例如,用户位置120可以包括由单个企业维护的所有服务器和客户端。
服务器103可以为网络使用者提供许多的不同消息和群组软件服务102(如:电子邮件,即时信息,日历等等)。然而,本发明的潜在原则不局限于任何特定的消息/群组软件平台。
在一个实施方式中,通过外部数据网络170和/或无线服务提供方网络171,接口100转发由服务器102维护的数据对象(如:电子邮件,即时消息,日历等等)到多个无线数据处理设备(在图1中由设备130表示)。例如,服务器103作为用于网络服务的传递无线网络数据到许多移动设备130的代理。
在一个实施方式中,接口100是适于与特定服务102一起工作的软件模块。然而,需要指出,接口100可以在硬件或任何硬件与软件的结合中实施而同时仍然遵从本发明的潜在原则。
在一个实施方式中,外部数据网络170包括多个数据库,服务器/客户端(没有示出)以及用于在接口100和设备130之间传输数据的其它网络硬件(如:路由器、网络集线器等等)。在一个实施方式中,接口100在具有识别所述设备130地址的一个或多个分组中(如:像32-比特Mobitex访问号码(“MAN#”))压缩数据。
外部数据网络170传送分组到无线服务提供方网络171,继而通过无线通信链路传送分组(或在那里包含的数据)到设备130。在一个实施方式中,无线服务提供方网络是CDMA 2000网络。然而,可以使用许多其他网络类型(如,Mobitex,GPRS,PCS等等),而同时仍然遵从本发明的潜在原则。
需要指出,网络服务提供方网络171和外部数据网络170(以及关联的接口100)可以被相同的组织拥有/操作,或可选择地,外部数据网络170的所有者/操作者可以从无线服务提供方网络租用无线服务。本发明的潜在原则不局限于任何特定服务安排。
图2显示了用于压缩和解压将在服务器204和设备202之间传送的数据的架构的一个实施方式。在显示的实施方式中,客户端侧206和企业端侧220。客户端侧206包括与服务器204连接并通信的无线处理客户端或设备(设备)202。设备202包括任何具有移动计算机***或设备的设备,如膝上电脑、移动电话(如:移动蜂窝电话、智能手机等等)、个人数字助理(PDA)、掌上电脑等等。服务器204还与提供网络服务和基于网络服务的企业应用程序234的网络服务企业服务器(企业服务器)通信。服务器204和企业服务器220通过网络互相通信是可以预期的。设备202和服务器204通过外露的网络服务以及网络服务应用234与后端企业服务器通信。网络实例可以包括局域网(LAN)、广域网(WAN)、城域网(MAN)、互联网、内联网等等。此外,网络与无线网络连接并通信。服务器204可以包括由加利福尼亚,圣克拉拉(Santa Clara)的卓越技术(Good Technology)公司提供的GoodLinkTM服务器、卓越访问网络服务器(Good Access Web Service,GAWS)服务器等。网络服务企业服务器的实例包括由德国Walldorf的SAP AG研发的网络应用服务器以及由NY的Armonk的国际商用机器公司研发的全球网络应用服务器。
在一个实施方式中,在设备202和服务器204之间的数据通信通过新SOAP 218执行。新SOAP 218表示用于传送到移动设备202以及从移动设备202传送的被压缩的数据。新SOAP 218也可以包括压缩的XML。这种数据的压缩采用使用网络服务描述语言(WSDL)238的服务器204处的SOAP压缩器/解压器222执行。WSDL 238被用来获得关于作为WSDL 238数据相关的信息,该信息是使用标准XML时描述哪种SOAP消息可能会出现的元数据文档。换句话说,有WSDL 238意味着由网络服务提供的多种操作并且知道怎样使用它们。在一个实施方式中,在SOAP编解码器222的SOAP编码器可以从WSDL 238中得到SOAP消息和一些信息,并通过新SOAP 218使用服务器数据同步器(同步服务器数据)224、设备数据同步器(同步设备数据)210、以及服务器和设备可靠性消息226、212产生将要通过空气发送到设备202的比特串。然后,在SOAP编解码器222的SOAP解码器或解压器用从WADL 238获得比特串和一些信息以产生初始SOAP消息232。
在一个实施方式中,处理器204包括SOAP编解码器222、处理器数据同步224、新SOAP压缩或SOAP编解码器字典(字典)228、新SOAP压缩生成器或SOAP编解码器字典生成器(字典生成器)230以及服务器可靠消息传递218。服务器204与应用描述文档(ADF)存储240连接以与ADF242通信。客户端202包括通过服务器204通信的ADF 214、服务器形成呈现器216、设备数据同步210以及设备可靠消息传递212。SOAP 232允许服务器204和企业应用234(通过网络服务以及网络服务企业服务器)以支持用于高效网络通信的公共数据传输协议。客户端202也包括在服务器204中与SOAP编解码器222通信的名称值-SOAP编解码器208。服务器204和企业服务器是XML文档的发送方和接收方。
SOAP指用于XML应用编程接口(API)的标准的基于XML的协议。XML被看作是高度规则、人类可读、灵活并且详细的。SOAP通常使用超文本传输协议(HTTP)来帮助XML消息传递。例如:代替使用HTTP来请求被下载的超文本消息传递语言(HTML)记录并在浏览器中显示,SOAP通过HTTP请求发送XML消息并接受回复,如果有,可以通过HTTP响应。典型地,SOAP交互作用在SOAP消息发送方、接收方或两者的SOAP节点之间发生。此外,SOAP消息包括三个主要模块,比如:封装、报头和主体。封装被看作是一个通信的单元。报头包括通信的特征和质量,同时主体包括具有消息名称的变元或文档的消息。
在显示的实施方式中,SOAP 232通过在服务器204的SOAP编解码器222以及在企业应用网络服务的SOAP终端点236被使用。新SOAP 218在设备可靠消息传递212和服务器可靠消息传递226之间传送,两者分别在设备202和服务器204中。WSDL 238提供在使用标准XML时描述SOAP消息218、232是什么的元数据文档。WSDL 238也包含其它元数据是可以预期的。在WSDL 238中使用元数据,由网络服务提供的多种操作是已知的,并且它们怎样被使用也是已知的。
在编解码器222中的SOAP编码器或压缩器接收到SOAP消息232和SOAP编解码器字典228(例如,通过来自WSDL(例如,WSDL描述238)的一些受损的信息),来产生意图通过无线传输的字节流。然后,字节流通过数据同步224和服务器204上的服务器可靠消息传递226,作为到设备可靠消息传递212的新的SOAP 218被传送到设备20。在一个实施方式中,SOAP编解码器222由字典228帮助,该字典228在服务器204处的字典生成器230使用WSDL 238产生。字典228规定XML消息中的预期单元、它们的数据类型和其它有用的信息具体化。只有当不经常发生的WSDL 238中的内容发生改变时字典228才改变。一旦字典228以独立的覆盖从被压缩的消息发送。然后用于压缩消息的相同字典228被用来随后不压缩或解压消息。在一个实施方式中,使用产生高压缩率的有限状态机(FSM)SOAP方法来执行压缩。在另一个实施方式中,使用同样可以产生高压缩率也可以容易处理任何不能预料的数据的封装SOAP方法来执行压缩。
在一个实施方式中,使用封装的SOAP方法,单元和属性的编码被执行。使用WSDL,我们可以确定哪个单元名称将在消息中。在编解码器222中,那些单元名称被收集并指定一个预期的频率。例如:已知“多用户”单元将要出现一次,而“用户”单元是一个重复的单元,则“多用户”有频率1,而“用户”被指定为平均阵列大小(AVERAGE_ARRAY_SIZE)(如:8)的频率。用户的孩子(如:“名称”)继承它们父母的频率,所以“名称”也有AVERAGE_ARRAY_SIZE的频率。如果单元是可选的,那么只被赋予所需值的一半。统计预期值基于最大和最小出现值被计算出来。
因为在解码时,SOAP编解码器222可以记住下一终端单元将是什么,所以最后单元被合并计算为一个单独的终端单元(END_ELEMENT)记号。对于未预测到的XML,如未知单元(UNKNOWN_ELEMENT)和未知属性(UNKNOWN_ATTRIBUTE),则添加一些其它的特定记号。所以当单元在不在表格中的原始XML中被遇到,那么UNKNOWN_ELEMENT被发送以在解码时用足够信息来重构XML。尽管遇到未知单元或属性时压缩率会有一点损失,但数据被保留。通过包含在WSDL238中的各种消息和操作来计算频率。然后霍夫曼比特编码被计算并设定。这样,被经常使用的记号可能占用最少的比特数。霍夫曼比特编码是霍夫曼编码表示算法的一部分,该霍夫曼编码表示算法用于基于将被压缩的文档中的符号的出现频率而对文档的无耗压缩。
此外,如定义名称空间(DEFINE_NAMESPACE)和改变默认名称空间(CHANGE_DEFAULT_NAMESPACE)的两个附加记号也被添加,每当XML定义一个命名空间(如:xmlns:prefix=‘urn:ws’)或改变默认的命名空间(如:xmlns=‘urn:foo’)时,这些记号被使用。由于它们也不经常发生,所以指定频率为0。另外,SOAP差错可以从服务器204中返回,即使不确定在WSDL 238中。因此,一个或多个下面的单元也被添加为一个低的频率(0.1):评语:差错、差错编码、差错字符串等等。这些是SOAP差错中的标准单元。
关于数据内容编码,在WADL 238中的XML模式的一个特性允许知道与单元相关联的数据的类型。例如:已知“名称(Name)”是一个字符串,“年龄(Age)”是一个32比特的整数,“保活(Alive)”是一个布尔变量,“用户(Customer)”是一个单元容器等等。通过知道类型,不同的方法可以被用来压缩不同的数据。例如:由于一个布尔变量占用一个单独的比特,其中0表示伪,1表示真,8个之间互相邻近的布尔变量可以占用一个单独的8-比特字节,这样原始数据占用从32到40字节(从“真”长度*8到“伪误”长度*8)。此外,对于一个或多个下面的编码也被提供:(1)xsd:布尔变量;(2)非负整数类型;(3)标记的整数类型(如:xsd:整型(int);xsd:长整型(long);xsd:短整型(short)等等);(4)xsd:浮点数(float)以及xsd:双精度型(double);(5)xsd:字节;(6)xsd:基数64二进制;(7)xsd:混合二进制;(8)xsd:日期;(9)xsd:时间;(10)xsd:日期时间;(11)xsd:持续时间;xsd:字符串或任何没有另外特指的;(12)xsd:Q名称(QName)。
此外,XML模式可以指定来自列举的单元的数据内容。例如:名称为“颜色”的单元只有3个可能的值;红色、绿色或蓝色。代替发送作为长度前缀和3、4或5字节字符串的颜色长度的数据内容,而仅仅需要使用2个比特,比如00用于红色;01用于绿色;10用于蓝色。这些比特存储在字典228中。仅假设一个值在列举之外的情况下被使用,则比特编码被用来存储未预测到的值。这样,如果发现黄色,11被发送并经常用于这种类型的编码跟随。实际的比特编码可以使用霍夫曼编码来计算,其中简化具有较低的霍夫曼频率的意料之外的值。
一些XML数据有重复字符串。应用描述(如:AAC文档)就是这的一个好的实例。压缩器可以被用来在XML中建立类型字符串数据的字符串表。然后,频率被计数并且霍夫曼编码被计算。例如:字符串“帐户(Account)”可以被设定为一些比特(如0101)并且字符串“Xyzzy”可以被分配一些比特。在输出流的第一部分,字符串表被发送。然后,每当遇到字符串则只使用比特编码。XML模式也可以有提供关于附加信息形式或数值类型的附加的元数据,这些叫做分段(facet)。例如:可以指定最小值为1000且最大值为1015的整数。一般来说,值越接近0,则占有越少的比特数。这样,最小值被减去,从0到15移动范围,仅仅需要4个比特来表示。
在一个实施方式中,当使用FSM SOAP方法时,FSM编码被用于传送到设备202以及从设备202传出的数据的压缩和解压缩。使用根据FSM编码的WSDL 238,输入数据的重要形式可以被观察并已知。例如:形式不仅提供内容数据的类型而且还提供数据的结构,如单元是怎样被排列的等等。例如:首先出现SOAP的封装,然后是SOAP主体,并且然后或是用户查询(QueryForCustomers)或是实例单元。如果用户查询被确定,随后是单元名称。对于实例单元,随后是用户单元。在被压缩的输出流中任何信息的编码选择被执行。
在一个实施方式中,然后,由数据的结构形式决定的输入数据的多个单元被绘制在SOAP消息中来形成FSM。自动机通过转换(箭头)从一种状态到另一种状态(例如:FSM图中的圆到圆)。然后FSM图与数据类型信息一起被存储到字典228的FSM字典中。SOAP报头和SOAP差错被自动添加,因为在没有该WSDL 238指示时,SOAP报头和SOAP差错可以是消息的一部分。当在SOAP编解码器222的编码器遇到SOAP封装时,因为可以预期,编码器不传送到输出流。当编码器遇到SOAP主体,该编码器发送1比特。如果下一个是实例单元,发送0比特。从实例单元,下一个遇到用户单元。因为该处没有选择所以不发送比特。从多用户单元,下一个发现的是用户单元,因为可以预期所以也不发送比特。从用户到名称也不发送比特。在该处,名称是类型字符串,所以字符串内容被发送。当使用封装的SOAP方法时,可以用相同的规则发送对于在SOAP编解码器222中封装的编解码器来说所保持的内容数据。
在FSM图中,保活(Alive)和孩子(Child)单元是可选的。所以,例如在年龄之后,可以在保活、孩子以及用户终端单元中任选一个。也可以有循环。孩子单元可以重复,所以有两个选择:发现另一个孩子单元或发现用户终端单元。相似地,从用户终端单元,可以发现另一个用户单元或用户终端单元。当在两种东西之间选择时,一方被设置为0并且另一方被设置为1。比特编码的设置可以使用霍夫曼编码。然后,用一个或多个下面的参数来计算频率:具有较少权重的可选单元(因为它们可能很少在该处出现)、具有较多权重的重复单元(因为它们的预期值较高,例如:当知道一个单元会重复0到5次时,在这种情况下,平均被看到3次。同样,在远离的地方,下一个发现的单元很有可能是定义中的下一个单元)。
在一个实施方式中,由于在XML中的多数结构数据不再被需要所以被高度压缩。然而,在SOAP编解码器222中的FSM编解码器可能不处理意料之外的单元,因为没有用于添加到未预测到的单元的转换的空间。在这种情况下,在一个实施方式中,如果发现未预测到的单元,FSM编解码器可能放弃并且允许在SOAP编解码器222中的FSM编解码器来处理未预测到的单元。
在一个实施方式中,在XML模式中通过跟踪每个路径FSM被产生。在许多情况中,多种的和完全不同的路径包括共享结构。例如:在销售网络服务中,有在XML模式中表示的帐户商业对象,作为具有帐户id、名称、主要接触、地址、URL、电话号码等子单元的帐户单元。该帐户对象可能相当大。网络服务可以有多种处理帐户对象的操作。该多种操作的实例包括更新帐户、建立帐户、查询所有帐户以及通过名称查询帐户等等。接着销售网络服务实例,如果帐户对象有m个状态并且通过WSDL 238被使用n次,那么认为有m*n个状态被在字典中占用大量空间的单独的帐户类型占用。子FSM是自身健全的FSM,但它是从父亲FSM中命名的。这样,帐户类型占用n个状态并且被访问m次。不是模式中的每个类型被拉出到子FSM中。简化那些被访问多于一次并且其m*n(它们可能被占用的状态数)超过预定义的门限的类型。
在字典228中使用预先计算的FSM字典不同于基于压缩算法的传统内容,如可以在压缩程序中发现的LZW。LZW仅仅寻找在比特(如:32k)的滑动窗口中比特的形式。在一个实施方式中,通过产生的FSM,SOAP FSM利用来自WSDL 238的已知的结构和内容形式,并且将它存储到将被用于压缩和解压两者的字典228中。
图3显示了在服务器204中的SOAP的组件302-328的上下文的一个实施例。配置时间组件包括应用描述(AppDef)Webswell代理(WebswellBroker,WB)(AppDefWB)302、AppDef控制台用户界面(AppDef控制台UI)304、AppDef管理器306以及SOAP编解码器字典生成器308。运行时间组件包括重新查询控制台UI 316、网络服务(WS)执行器318、预订管理器320、WS请求/响应消息处理器322、SOAP编码器/解码器或压缩器/解压器324、访问消息处理器326以及可靠消息传递(对话)328。配置时间以及运行时间组件两者的其它组件包括SOAP编解码器字典管理器310、数据同步器312以及数据库314。
图4显示了使用网络服务描述语言和简单对象访问协议压缩/解压字典的数据压缩和解压过程的一个实施方式。在处理块402中,从WSDL中产生SOAP编解码器字典。在一个实施方式中,为了压缩数据或SOAP消息,新产生的字典和引入的XML消息在处理块404中遍历。结果,然后输出比特流在处理块404中产生。随后字典被重新用于如WSDL描述的来自于网络服务的每个XML消息。在一个实施方式中,在处理块406中,为了不压缩或解压数据或SOAP消息,字典和输入或引入的比特流被遍历。作为结果,随后产生输出XML消息。
图5是显示字典产生过程的一个实施方式。在处理块502中,WSDL被读入。在一个实施方式中,在处理块504中WSDL的操作随后被分析。在决定块506中,按照在WSDL中是否有附加操作做出决定。如果不再有操作,过程在终端块504中结束。如果有附加的操作,在处理块508中用于SOAP封装和SOAP主体的FSM字典的状态被产生。
在一个实施方式中,在处理块510中产生用于SOAP主体的操作的单元名称的状态。此外,随后输入参数,并且然后产生每个单元以及它们子单元的状态。在处理块512中,产生来自SOAP主体的操作响应的单元名称的状态。然后,随后输出参数,并且产生每个单元以及它们子单元的状态。如果有,差错参数也随后,并且产生每个单元以及它们子单元的状态。在决定块506中,按照是否还有任何操作来做出决定。如果有则过程继续到处理块508。如果没有,过程在终端块514中终止。
图6显示了用于执行基于有限状态机数据压缩的过程的实施方式。在一个实施方式中,在处理块602中,决定以前产生的FSM起始状态(如图4和图5中提及所描述的)。起始状态被看作当前状态。在处理块604中,压缩比特流被打开用于读取。
在决定块606中,按照是否当前状态是终端单元来做出决定。在一个实施方式中,当前状态是终端单元,在处理块608中XML终端单元的输出过程继续。在决定块610中,按照是否只有一个下面的步骤来做出另一个决定。如果只有一个下面的步骤,则推动当前步骤到在处理块616中的下一个状态。如果当前状态是如决定块618所称的最终状态,过程在终端块624终止。如果当前状态不是最终状态,过程继续到决定块606来决定是否当前状态是终端单元。
返回参考决定块610,如果存在多个下一个状态,在处理块612中到下一个可能状态的每个转换有与它们相关联的比特编码。这些比特才被读入直到发现匹配转换。当前状态被推动到在处理块614中具有匹配转换的下一个状态。如果当前状态是在决定块618中的终端状态,过程在转换块624中终止。否则,过程继续到决定块606。
返回参考决定块606,在一个实施方式中,如果当前状态不是终端单元,,过程继续来自处理块620中当前状态名称的XML状态单元的输出。如果当前状态是在决定块622中的叶状态(如:有内容数据),在处理块624中,过程继续读取来自在XML中的比特流和输出数据的内容数据。在处理块608中,过程继续XML终端单元的输出。另一方面,如果当前状态不是叶状态,按照是否只有一个下一个状态过程来继续决定块610。
图7显示了用于执行基于有限状态机数据解压缩过程的实施方式。对于执行基于FSM的数据解压或不压缩,FSM的起始状态在处理块702中被确定。在处理块704中,XML被解析。在处理块706中,下一个单元从解析后的XML中重新获得。然后,在决定块708中确定从当前状态到具有匹配单元名称的下一个状态的转换。如果没有发现那种转换,过程在终端块720终止(如:误差被丢弃)。如果发现那种转换,该转换是否有比特编码在决定块710中被确定。
如果与转换相关联的比特编码被发现,则在处理块716中比特编码被发出。如果没有发现这种比特编码或一旦比特编码被发出,过程按照当前状态在决定块712中是否有内容数据的决定来继续。如果有内容数据,该内容数据从处理块718的XML发出。如果没有发现该种内容或一旦内容数据从XML中发出,过程按照是否很多XML在决定块714中被解析来继续。如果没有很多XML被解析,过程在终端块722中被解析。如果有很多XML将被解析,过程继续从在处理块706中解析的XML的网络单元重新获得。
图8显示了可以实施的设备130和或服务器103中的计算机***800。计算机***800包括用于传送信息的***总线820以及用于处理信息的与总线820连接的处理器810。根据一个实施方式,处理器810使用微型处理器的处理器的摩托罗拉(Motorola)ARM家族中的一个来实施。然而,本领域的普通的技术人员将意识到可以使用其它的处理器。
计算机***800还包括连接到总线820的用于存储将要被处理器810执行的信息和指令的随机访问存储器(RAM)或其它动态存储设备825(在这里指主存)。主存825也可以被用于存储临时变量或在由处理器810执行指令期间的其它中间信息。计算机***800也可以包括只读存储器(ROM)和/或与总线820连接的用于存储状态信息和处理器810使用的指令的其它状态存储设备826。
如磁盘或光盘以及它们相应驱动之类的数据存储设备825也可以连接到计算机***800来用于存储信息和指令。计算机***800也可以通过I/O接口830连接到第二I/O总线850。许多I/O设备可以连接到包括显示设备824、输入设备(如字母数字输入设备823和/或指针控制设备822)的I/O总线850。
通信设备821用于通过网络170访问其它的计算机(服务器或客户端)。通信设备821可以包括调制解调器、网络接口卡或其它如那些用于连接到以太网、令牌网或其它类型网络之类的接口设备的已知的接口设备。
本发明的实施方式可以包括上面例举的许多步骤。这些步骤可以被包含在机器可执行指令中。所述指令可以被用来使用通用目的或专用目的处理器来执行某个步骤。可替换地,这些步骤可以通过包括用于执行步骤的硬接线逻辑或通过编程的计算机组件和用户硬件组件的任何结合的特定硬件组件来执行。
本发明的单元也可以提供用于存储机器可执行的指令的机器可读介质。机器可读介质可以包括但不局限于软盘、光盘、CD-ROM以及磁性光盘、ROM、RAM、EPROM、EEPROM、磁性或光学插件、传播媒介或适合于存储电子指令的其它类型的媒介/机器可读介质。例如,本发明可以下载做为计算机程序,该程序可以经由通信链路(如:调制解调器或网络连接)以包含在载波或其它传播媒介中的数字信号的方式从远程的计算机(如:服务器)传送到请求计算机(如:客户端)。
为了说明,通过前面的描述许多特定的细节被列出以提供对本发明的完全理解。然而,没有这些特定的细节本发明可以被实施,对本领域的技术人员来说是显而易见的。例如:当说明了在服务器103执行的到服务102的接口100(见图1)时,则显而易见的是本发明的潜在原则可以在传送数据到网络的单一客户端中被实施。因此,本发明的范围和实质可以根据所附的权利要求来确定。
Claims (9)
1、一种为与无线设备进行通信而压缩和解压数据的***,该***包括:
设备,该设备与服务器连接,用于通过网络在所述服务器与所述设备之间进行数据通信;以及
所述服务器,该服务器包括:
压缩器/解压器模块,用于通过网络服务描述来识别简单对象访问协议消息,以使得被压缩的简单对象访问协议消息能够被传送到所述设备;以及
数据同步器,用于传送所述被压缩的简单对象访问协议消息到所述设备,所述数据同步器与所述压缩器/解压器模块进行通信,
其中,所述网络服务描述包括与所述数据相关的特性信息,该特性信息包括所述数据的部分的使用频率、所述数据的部分的结构安排以及与所述数据的部分相关的内容类型,所述压缩器/解压器模块还被修改为分析所述特性信息并基于有限状态机字典来压缩所述简单对象访问协议消息。
2、根据权利要求1所述的***,其中所述网络服务描述是网络服务描述语言文档,所述网络服务描述语言文档包括具有与所述网络服务描述相关的元数据的元数据文档。
3、根据权利要求1所述的***,其中所述服务器还包括字典生成器以产生所述有限状态机字典。
4、根据权利要求3所述的***,其中所述被压缩的简单对象访问协议消息包括与所述数据相关的被压缩的可扩展标记语言消息。
5、根据权利要求1所述的***,其中所述服务器包括应用网络服务服务器。
6、一种为与无线设备进行通信而压缩和解压数据的方法,该方法包括:
通过压缩器/解压器模块并进一步通过与数据相关的网络服务描述来识别简单对象访问协议消息,分析特性信息,其中,所述数据通过网络在服务器与连接到所述服务器的设备之间传递,所述网络服务描述包括与所述数据相关的特性信息,所述特性信息包括所述数据的部分的使用频率、所述数据的部分的结构安排以及与所述数据的部分相关的内容类型;
基于有限状态机字典来压缩所述简单对象访问协议消息以使得被压缩的简单对象访问协议消息能够从所述服务器传送到所述设备;以及
传送所述被压缩的简单对象访问协议消息到所述设备。
7、根据权利要求6所述的方法,该方法还包括从网络服务描述语言文档中提取所述网络服务描述,所述网络服务描述语言文档包括具有与所述网络服务描述相关的元数据的元数据文档。
8、根据权利要求6所述的方法,该方法还包括通过字典生成器来产生所述有限状态机字典。
9、根据权利要求8所述的方法,该方法还包括用与所述数据相关的可扩展标记语言消息来构成所述简单对象访问协议消息,以使得所述被压缩的简单对象访问协议消息包括被压缩的可扩展标记语言消息。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/297,974 US20070136492A1 (en) | 2005-12-08 | 2005-12-08 | Method and system for compressing/decompressing data for communication with wireless devices |
US11/297,974 | 2005-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101326509A CN101326509A (zh) | 2008-12-17 |
CN100593780C true CN100593780C (zh) | 2010-03-10 |
Family
ID=38123529
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200680046282A Expired - Fee Related CN100593780C (zh) | 2005-12-08 | 2006-12-06 | 为与无线设备进行通信而压缩/解压数据的方法和*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US20070136492A1 (zh) |
EP (1) | EP1960894A2 (zh) |
JP (1) | JP4982501B2 (zh) |
CN (1) | CN100593780C (zh) |
WO (1) | WO2007067745A2 (zh) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8224980B2 (en) * | 2007-05-07 | 2012-07-17 | International Business Machines Corporation | Adaptive parsing and compression of SOAP messages |
US20090037386A1 (en) * | 2007-08-03 | 2009-02-05 | Dietmar Theobald | Computer file processing |
FI123499B (fi) * | 2008-05-05 | 2013-06-14 | Sensinode Oy | Menetelmä ja laite viestien prosessoimiseksi |
US8090394B2 (en) * | 2009-07-01 | 2012-01-03 | Xg Technology, Inc. | Dynamic pattern elimination based compression method for text-based signaling protocols |
KR101756704B1 (ko) * | 2010-10-27 | 2017-07-11 | 삼성전자주식회사 | 이동통신 시스템에서 soap 메시지 전송 방법 및 장치 |
JP5868138B2 (ja) * | 2011-11-18 | 2016-02-24 | キヤノン株式会社 | 情報処理装置、情報処理装置の制御方法、プログラム |
US8713646B2 (en) | 2011-12-09 | 2014-04-29 | Erich Stuntebeck | Controlling access to resources on a network |
US9680763B2 (en) | 2012-02-14 | 2017-06-13 | Airwatch, Llc | Controlling distribution of resources in a network |
US10257194B2 (en) | 2012-02-14 | 2019-04-09 | Airwatch Llc | Distribution of variably secure resources in a networked environment |
US10404615B2 (en) | 2012-02-14 | 2019-09-03 | Airwatch, Llc | Controlling distribution of resources on a network |
US9705813B2 (en) | 2012-02-14 | 2017-07-11 | Airwatch, Llc | Controlling distribution of resources on a network |
CN102710768A (zh) * | 2012-05-31 | 2012-10-03 | 深圳市远行科技有限公司 | 一种基于面向服务架构的大批量数据传输***及方法 |
US20130346274A1 (en) * | 2012-06-25 | 2013-12-26 | Liquid Holdings Group, Inc. | Electronic financial trading platform with real-time data analysis and reporting |
US9247432B2 (en) | 2012-10-19 | 2016-01-26 | Airwatch Llc | Systems and methods for controlling network access |
US9021037B2 (en) | 2012-12-06 | 2015-04-28 | Airwatch Llc | Systems and methods for controlling email access |
US8832785B2 (en) | 2012-12-06 | 2014-09-09 | Airwatch, Llc | Systems and methods for controlling email access |
US8826432B2 (en) | 2012-12-06 | 2014-09-02 | Airwatch, Llc | Systems and methods for controlling email access |
US8862868B2 (en) | 2012-12-06 | 2014-10-14 | Airwatch, Llc | Systems and methods for controlling email access |
US8978110B2 (en) | 2012-12-06 | 2015-03-10 | Airwatch Llc | Systems and methods for controlling email access |
US9473417B2 (en) | 2013-03-14 | 2016-10-18 | Airwatch Llc | Controlling resources used by computing devices |
US20140280955A1 (en) | 2013-03-14 | 2014-09-18 | Sky Socket, Llc | Controlling Electronically Communicated Resources |
US9275245B2 (en) | 2013-03-15 | 2016-03-01 | Airwatch Llc | Data access sharing |
US9203820B2 (en) | 2013-03-15 | 2015-12-01 | Airwatch Llc | Application program as key for authorizing access to resources |
US10652242B2 (en) | 2013-03-15 | 2020-05-12 | Airwatch, Llc | Incremental compliance remediation |
US9148416B2 (en) | 2013-03-15 | 2015-09-29 | Airwatch Llc | Controlling physical access to secure areas via client devices in a networked environment |
US9401915B2 (en) | 2013-03-15 | 2016-07-26 | Airwatch Llc | Secondary device as key for authorizing access to resources |
US9819682B2 (en) | 2013-03-15 | 2017-11-14 | Airwatch Llc | Certificate based profile confirmation |
US8997187B2 (en) | 2013-03-15 | 2015-03-31 | Airwatch Llc | Delegating authorization to applications on a client device in a networked environment |
US9378350B2 (en) | 2013-03-15 | 2016-06-28 | Airwatch Llc | Facial capture managing access to resources by a device |
US9787686B2 (en) | 2013-04-12 | 2017-10-10 | Airwatch Llc | On-demand security policy activation |
US10754966B2 (en) | 2013-04-13 | 2020-08-25 | Airwatch Llc | Time-based functionality restrictions |
US8914013B2 (en) | 2013-04-25 | 2014-12-16 | Airwatch Llc | Device management macros |
US9123031B2 (en) | 2013-04-26 | 2015-09-01 | Airwatch Llc | Attendance tracking via device presence |
US9426162B2 (en) | 2013-05-02 | 2016-08-23 | Airwatch Llc | Location-based configuration policy toggling |
US9246918B2 (en) | 2013-05-10 | 2016-01-26 | Airwatch Llc | Secure application leveraging of web filter proxy services |
US9058495B2 (en) | 2013-05-16 | 2015-06-16 | Airwatch Llc | Rights management services integration with mobile device management |
US9584437B2 (en) | 2013-06-02 | 2017-02-28 | Airwatch Llc | Resource watermarking and management |
US9900261B2 (en) | 2013-06-02 | 2018-02-20 | Airwatch Llc | Shared resource watermarking and management |
US20140358703A1 (en) | 2013-06-04 | 2014-12-04 | SkySocket, LLC | Item Delivery Optimization |
US9270777B2 (en) | 2013-06-06 | 2016-02-23 | Airwatch Llc | Social media and data sharing controls for data security purposes |
US8924608B2 (en) | 2013-06-25 | 2014-12-30 | Airwatch Llc | Peripheral device management |
US9535857B2 (en) | 2013-06-25 | 2017-01-03 | Airwatch Llc | Autonomous device interaction |
US8756426B2 (en) | 2013-07-03 | 2014-06-17 | Sky Socket, Llc | Functionality watermarking and management |
US8806217B2 (en) | 2013-07-03 | 2014-08-12 | Sky Socket, Llc | Functionality watermarking and management |
US8775815B2 (en) | 2013-07-03 | 2014-07-08 | Sky Socket, Llc | Enterprise-specific functionality watermarking and management |
US9226155B2 (en) | 2013-07-25 | 2015-12-29 | Airwatch Llc | Data communications management |
US9112749B2 (en) | 2013-07-25 | 2015-08-18 | Airwatch Llc | Functionality management via application modification |
US9665723B2 (en) | 2013-08-15 | 2017-05-30 | Airwatch, Llc | Watermarking detection and management |
US9516005B2 (en) | 2013-08-20 | 2016-12-06 | Airwatch Llc | Individual-specific content management |
US10129242B2 (en) | 2013-09-16 | 2018-11-13 | Airwatch Llc | Multi-persona devices and management |
US9185099B2 (en) | 2013-09-23 | 2015-11-10 | Airwatch Llc | Securely authorizing access to remote resources |
US9258301B2 (en) | 2013-10-29 | 2016-02-09 | Airwatch Llc | Advanced authentication techniques |
US9544306B2 (en) | 2013-10-29 | 2017-01-10 | Airwatch Llc | Attempted security breach remediation |
CN103744351A (zh) * | 2014-01-09 | 2014-04-23 | 广州数控设备有限公司 | 一种绝对式编码器的通信方法 |
US9961157B2 (en) * | 2014-11-11 | 2018-05-01 | Dell Products L.P. | Adaptive compression management for web services |
US9584964B2 (en) | 2014-12-22 | 2017-02-28 | Airwatch Llc | Enforcement of proximity based policies |
US9413754B2 (en) | 2014-12-23 | 2016-08-09 | Airwatch Llc | Authenticator device facilitating file security |
US9916446B2 (en) | 2016-04-14 | 2018-03-13 | Airwatch Llc | Anonymized application scanning for mobile devices |
US9917862B2 (en) | 2016-04-14 | 2018-03-13 | Airwatch Llc | Integrated application scanning and mobile enterprise computing management system |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001067348A (ja) * | 1999-06-21 | 2001-03-16 | Fujitsu Ltd | 構造化文書の圧縮方法および圧縮装置並びに構造化文書圧縮プログラムを記録したコンピュータ読取可能な記録媒体 |
JP3368883B2 (ja) * | 2000-02-04 | 2003-01-20 | インターナショナル・ビジネス・マシーンズ・コーポレーション | データ圧縮装置、データベースシステム、データ通信システム、データ圧縮方法、記憶媒体及びプログラム伝送装置 |
JPWO2002061974A1 (ja) * | 2001-01-31 | 2004-08-19 | 株式会社ネット・タイム | データ通信システム、データ通信方法、データ転送装置、携帯端末および携帯デバイス |
US20050027731A1 (en) * | 2003-07-30 | 2005-02-03 | Daniel Revel | Compression dictionaries |
US20050060431A1 (en) * | 2003-09-12 | 2005-03-17 | Lewontin Stephen Paul | System, apparatus, and method for using reduced web service messages |
US20060117307A1 (en) * | 2004-11-24 | 2006-06-01 | Ramot At Tel-Aviv University Ltd. | XML parser |
US7280052B2 (en) * | 2005-09-30 | 2007-10-09 | Intel Corporation | Apparatus, system, and method of data compression |
-
2005
- 2005-12-08 US US11/297,974 patent/US20070136492A1/en not_active Abandoned
-
2006
- 2006-12-06 JP JP2008544538A patent/JP4982501B2/ja not_active Expired - Fee Related
- 2006-12-06 WO PCT/US2006/046897 patent/WO2007067745A2/en active Application Filing
- 2006-12-06 CN CN200680046282A patent/CN100593780C/zh not_active Expired - Fee Related
- 2006-12-06 EP EP06839217A patent/EP1960894A2/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
WO2007067745A3 (en) | 2007-11-08 |
JP2009518755A (ja) | 2009-05-07 |
CN101326509A (zh) | 2008-12-17 |
JP4982501B2 (ja) | 2012-07-25 |
US20070136492A1 (en) | 2007-06-14 |
WO2007067745A2 (en) | 2007-06-14 |
EP1960894A2 (en) | 2008-08-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100593780C (zh) | 为与无线设备进行通信而压缩/解压数据的方法和*** | |
EP1609285B1 (en) | System and method of compact messaging in network communications | |
US6892206B2 (en) | Reduction of meta data in a network | |
JP3987396B2 (ja) | モバイルデバイスを同期化するシステム | |
US6523062B1 (en) | Facilitating memory constrained client devices by employing deck reduction techniques | |
CN101246486B (zh) | 用于改进的表达式处理的方法和装置 | |
AU772598B2 (en) | Selecting a cache | |
CN102209076B (zh) | 服务端与客户端之间的交互方法和交互*** | |
Sundaresan et al. | Algorithms and programming models for efficient representation of XML for Internet applications | |
EP0928070A2 (en) | Compression of documents with markup language that preserves syntactical structure | |
US20050027731A1 (en) | Compression dictionaries | |
CN1194413A (zh) | 在服务器上预先高速缓存数据的方法和设备 | |
KR20080084974A (ko) | 웹 서비스 통신의 히스토리 구동 최적화를 위한 시스템 및방법 | |
CN101557399A (zh) | 一种xmpp协议传输数据压缩与解压缩方法 | |
JP4548184B2 (ja) | 圧縮規則生成方法、圧縮通信装置及びプログラム | |
US7117252B1 (en) | Data transmission method, computer-readable medium, and data transmission apparatus | |
CN100372282C (zh) | 一种信息交互***及其方法 | |
EP1332560A1 (en) | Method and apparatus for sending and receiving a data structure in a constituting element occurence frequency based compressed form | |
EP1297451B1 (en) | Service provision in a communications network | |
Müldner et al. | Using XML compression for WWW communication | |
DE69935848T2 (de) | System zur lieferung von daten über einen übertragungskanal mit niedrigen bitraten | |
CN1997965A (zh) | 用于在消息代理器中动态创建分析器的方法和*** | |
Haverty | MSDTP-Message Services Data Transmission Protocol | |
US20020129120A1 (en) | Method and apparatus of gateway aggregate | |
KR20150031752A (ko) | Xml과 json 데이터의 압축 및 분할 전송시스템 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100310 Termination date: 20151206 |
|
EXPY | Termination of patent right or utility model |