CN101385015A - 外壳会话 - Google Patents

外壳会话 Download PDF

Info

Publication number
CN101385015A
CN101385015A CNA2007800055854A CN200780005585A CN101385015A CN 101385015 A CN101385015 A CN 101385015A CN A2007800055854 A CNA2007800055854 A CN A2007800055854A CN 200780005585 A CN200780005585 A CN 200780005585A CN 101385015 A CN101385015 A CN 101385015A
Authority
CN
China
Prior art keywords
shell
command
order
message
execution
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.)
Granted
Application number
CNA2007800055854A
Other languages
English (en)
Other versions
CN101385015B (zh
Inventor
R·W·麦科勒姆
A·诺索夫
B·瑞斯泰德
V·库巴利姆特
S·曼吉斯
S·李
J·海伦德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US11/469,411 external-priority patent/US7933964B2/en
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101385015A publication Critical patent/CN101385015A/zh
Application granted granted Critical
Publication of CN101385015B publication Critical patent/CN101385015B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45508Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
    • G06F9/45512Command shells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/08Protocols specially adapted for terminal emulation, e.g. Telnet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本文描述的实施例基于外壳作为在消息内发送的字符单元执行命令这一原则。因此,通过使用消息而非二进制数据流将一系列命令与远程外壳绑定的绑定机制来建立用于命令的远程处理会话。更具体地,本文的实施例提供将命令和绑定机制两者密封入单个消息的机制。因此,绑定机制可贯穿会话生存期始终使用并允许将外壳处理器会话建模为一系列命令而非一系列字符。此外,注意到因为用于外壳会话的绑定机制在消息内发送,所以与当前外壳会话的二进制或逐字符建立相关联的问题就得以克服。

Description

外壳会话
背景
命令行解释器或外壳处理器是与计算机系统交互的常用方式。命令输入为从键盘键入一序列字符(例如,文本和控制字符),于是便接收作为文本串的输出。这些序列通常采用“做某事(do something)”、“如何(how)”和“对什么(to what)”的形式。实际上,做某事是动词,如何是副词(例如,该命令应被“冗长地”或是“静静地”执行),而对什么通常指的是命令作用于的一个或多个文件。包括在命令序列内的可以是其他字符,诸如对命令的输入,指示何处路由输出的重定向字符,以及其他控制字符。
命令行界面是最先使用的交互界面。无论用户图形界面(GUI)有多先进,命令行外壳仍然是至关重要的管理工具,因为用户命令能够被轻易批处理以自动执行更为复杂的任务而无需用户交互。现代的操作系统支持多个命令行解释器,这些解释器或是直接地或是在外壳中内建的实体帮助下或被设计成与之交互的程序帮助下允许用户通过从键盘输入命令并检查文本输出来与系统交互。它们还允许代表用户在批处理模式下执行命令序列。
如上所述,历史上这些外壳命令处理器是面向字符的。这意味着外壳命令处理器接受来自用户的逐字符输入,等待指定字符(例如,“Carriage return”或“Enter”(回车))来信令外壳应该检查该输入并尝试执行。当提供这一字符时,处理器解析输入,确定是否为合法命令并开始执行。如果不是合法命令,则通常返回错误。如果是合法命令,则命令执行并可生成其自身的字符输出,而这些输出可由操作员检查。
用户使用的范例于是通常“open(打开)”外壳,把字符经由键盘提供给外壳,并且只要外壳接收回车键(或者取决于所用的语法的其他合适字符)作为输入,它就尝试处理其至今为止作为一个单元接收到的所有字符。一旦外壳处理器执行作为命令的每个单元,它随后就报告输出。如果遇到错误输入,处理器可以将包括出错消息的一组字符返回给用户。于是重复该循环直到用户通过终止外壳处理器或退出程序来“close(关闭)”该外壳处理器。
随着计算机开始连接至网络,它就需要具有远程执行这类命令的能力。因此开发出多个周知的远程外壳协议(例如,Telnet、Secure Telnet、Secure Shell等),这些协议仍然在逐字符的基础上起作用,好像键盘是远程而非命令处理器是远程的一样。一旦打开外壳,字符就来回流动并且外壳协议实质上不知晓命令何时被执行甚至是否有任何命令曾被执行。换句话说,协议简单地将输入和输出字符来回传递。虽然这允许操作者在一处而依靠另一处的计算机执行命令,但是这类技术存在多个效率、互操作性和其他问题。
例如,虽然一些命令要求输入流处理,但是存在这一逐字符方法导致不正确行为的情况。举例来说,失败场景中精确的字符序列会被命令或外壳处理器忽略。在此情况下,输入流会被误认为下一命令,或者下一命令会被误认为是前一命令的输入。例如,假设一条其中的输入是文件的命令。如果在来自文件的输入字符之前没有接收到用于执行该命令的返回字符(例如,“Enter(回车)”),那么该文件内的一个输入字符(即,返回字符)会被误认为是执行命令。
类似的,即使没有错误状态(例如,在上述示例中在输入字符之前接收到返回字符),也存在输入字符被错认为其他命令和/或当前执行命令的控制的情况。换句话说,因为逐字符输入没有必要与逐字符命令和控制流分开,所以带有与命令或控制串相类似的字符串的输入可能会被误认为是这类函数。例如,如果正对其中一个字符串与终止命令序列(例如,Ctrl^X、Ctrl^C等)相同的输入执行命令,则处理可能会错误地停止。当然,取决于错误输入的字符串,其他命令或控制操作可能会引起更有问题的响应,诸如文件的重定位或重命名、文件的删除或移除、整个系统的关机或者其他有害操作。
此外,有关当前逐字符协议远程操作外壳过程的其他问题包括:(1)无法在命令处理过程早期识别错误;以及(2)这些系统通常不是平台或语言不可知的。更具体地,因为客户机简单地作为键盘的扩展,所以这些客户机通常不知道命令是否合法、命令是否和何时被执行、和/或外壳过程使用什么类型的操作系统或句法。因而,错误的命令或输入就被发送到网络线路上,并且无法在处理周期早期被认出。此外,用户需要基于在远程外壳处利用的特定协议类型(例如,UNIX外壳、SSH等)知晓并调整字符使用。因此,当前命令行外壳协议的上述和其他缺点和不足引起了效率、互操作性和其他各种问题。
简要概述
上述标识的当前远程命令行机制的缺陷和不足通过本发明的示例性实施例得以克服。例如,本文描述的实施例通过提供消息内的绑定机制而非二进制或面向字符的数据流来建立命令行外壳处理会话。注意到提供本概述以便用简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
在用于执行命令行的远程计算系统处并且根据一个示例性实施例,接收请求消息以打开远程命令行处理器处的外壳。随后提供绑定机制用以将命令传送至外壳以供执行。其后,接收执行请求消息以执行命令,其中该执行请求消息包括单元形式的命令以及绑定机制。
在网络计算环境中客户机设备处的类似示例性实施例通过使用将一系列命令绑定至远程外壳的绑定机制用消息而非二进制数据流来建立针对各命令的远程处理会话。在一个实施例中,发送请求消息以打开远程命令行处理器处的外壳。其后,接收绑定机制用以将命令传送至外壳以供执行。此外,发送执行请求消息以执行命令,其中该执行请求消息包括单元形式的命令以及绑定机制。
本发明的附加特征和优点将在以下描述中叙述,且其部分根据本描述将是显而易见的,或可通过对本发明的实践领会。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加完全明显,或可通过对下文中所述的本发明的实践来领会。
附图简述
为了描述可获取本发明的上述和其他优点和特征的方式,将通过引用附图中示出的本发明的特定实施例来呈现以上简要描述的本发明的更具体描述。可以理解这些附图仅描述本发明的典型实施例,从而不被认为是对其范围的限制,本发明将通过使用附图用附加特征和细节来描述和说明,附图中:
图1示出了根据本发明示例性实施例的利用消息协议处理程序进行远程命令行外壳处理的网络;
图1B示出了根据本发明示例性实施例的用以建立命令会话的打开消息和返回外壳标识符的使用。
图1C示出了根据本发明示例性实施例使用消息发送命令单元给外壳处理器以供执行。
图1D示出了根据本发明示例性实施例流传送针对执行命令的输出。
图1E示出了根据本发明示例性实施例的输入流消息与命令消息的分隔。
图1F示出了根据本发明示例性实施例的用于发送针对外壳会话的控制操作的消息的使用。
图1G示出了根据本发明示例性实施例用于终止命令会话的关闭消息的使用;以及
图2示出了根据示例性实施例用于在远程外壳处执行命令行的协议的流程图。
详细描述
本发明涉及方法、系统和计算机程序产品用于:(1)将命令作为结构化的原子单元进行递送而非面向字符的传输;(2)将外壳生存期建模为一系列命令;(3)将改变外壳操作流的异步控制信号建模为特定类型的消息而非字符;以及(4)将客户机和远程外壳之间的数据交换建模为专用的输入和输出消息流,也就是不将命令和输入/输出流加以混合。本发明的实施例可以包括含有各种计算机硬件或模块的专用或通用计算机,这将在以下做出进一步讨论。
本文描述的实施例基于外壳按字符单元执行命令这一原则。因此,本文描述的各实施例为发送方提供足够的智能,用以隔离每个命令,执行每个命令,进行一些级别的确认,并在进行任何网络操作之前将命令的结构化表示递送给远程处理器。更具体地,本文描述的实施例提供一种标识命令并将命令密封入单个消息(例如,SOAP、HTTPS或其他类型消息)的机制,该消息随后就被发送至远程外壳以便作为整个单元得到处理。因此,本文描述的实施例将命令看作是单个单元而非面向字符的传输。
其它实施例还考虑用户输入(如果有的话)是用于运行命令的附加信息,但是这些输入具有不同于命令本身的语义。因此,本文描述的实施例将这些用户提供的数据看作是一个或多个输入流。类似地,各实施例还考虑命令发出正常输出和状态或者出错代码这两种情况。因此,各实施例可将这些数据看作是输出流。因为一条命令的输出可能连锁式地成为下一条命令的输入,所以在这里描述用于设计输入和输出流两者并保持它们与命令本身分开的正式机制。
描述将命令与流分开并去除面向字符传输的这一两部分模型的上述和其他实施例具有若干优点。首先,网络使用更为有效。由于网括传输的最小单位通常是512八位位组或以上,因此在面向字符的协议中,汇编命令中涉及的每个字符可以要求一个完整的网络分组。在本文描述的模型中,在执行命令时实际上只有一条消息被递送。
命令的安全性和正确性也得到改善,因为命令是隔离的单元于是可以在尝试执行它之前检查其完整性并针对访问和有效性控制列表进行检验。换句话说,可以在网络的发送方执行某一级别的安全性和有效性,这就能在处理循环早期认出差错。
此外,按单元隔离命令去除了命令是如何递送至处理器的区别;于是就使得系统平台和语言不可知。例如,命令可以使用SOAP或在HTTP请求中编码以将其与不同操作系统中外壳处理器的下层差异分开。另一方面,面向字符的协议直接反映了操作系统的行为;因此要求用户理解远程外壳使用的语言或句法。
再一些实施例提供改变外壳操作流程的异步控制信号的某些指定情况。例如,在用户希望进行中的命令早期终止的情况下,一些类型的“控制-断开”或其他字符串通常在命令外壳内呈现。因此,本文描述的实施例将这一和其他控制信号建模成专用消息,而非输入流中的特定字符。
虽然如下将参考附图对有利特征的更特定引用进行更为详尽的描述,但是本发明范围内的各实施例还包括用于载有或具有计算机可执行指令或数据结构存储其上的计算机可读介质。这样的机器可读介质可以是可由通用或专用计算机访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或可用于承载或存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。当信息在网络或另一通信连接(硬连线、无线或硬连线或无线的组合)上传输或提供给计算机时,计算机将连接完全视为计算机可读介质。因此,任何这样的连接被适当地称为计算机可读介质。以上的组合也应包括在计算机可读介质的范围之内。
计算机可执行指令例如包括,使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作作为实现权利要求的示例形式公开的。
如此处所使用的,术语“模块”或“组件”可指的是在计算系统上执行的软件对象或例程。此处描述的不同的组件、模块、引擎和服务可被实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。尽管此处描述的系统和方法可用软件较佳地实现,但用硬件或软件和硬件的组合的实现也是可能的且已被想到。在此描述中,“计算实体”可以是如上文定义的任何计算系统,或者在计算系统上运行的任何模块或模块的组合。
图1示出了根据本发明示例性实施例被配置为利用处理远程命令行的消息协议处理程序的网络。如图所示,客户机105包括命令行界面115,以允许用户使用键盘或其他类似接口输入命令。根据本发明的示例性实施例,这类命令随后可由消息协议处理程序125进行评估和处理。换句话说,消息协议处理程序125定义一种能够隔离命令、检查命令、并进行各种级别的有效性和其他操作的解释机制,如下将对其进行更为详尽的描述。这些命令随后被密封到消息内(例如,SOAP、HTTP等)并跨网络100传递至远程110方,其中消息协议处理程序130处理该消息并将命令传递给命令行外壳处理器120以供进一步处理。
注意消息协议处理程序125的使用允许以平台和语言不可知的方式来处理命令。更具体地,在客户机105方上的消息协议处理程序125被配置为独立于命令使用的特定语法类型而将命令密封入消息。类似地,远程110方上的消息协议处理程序130能够独立于外壳处理器120的语法对命令写入进行评估,但允许外壳处理器120处理命令,无论使用的操作系统或实现的特定语言是何类型。换句话说,消息协议处理程序125、130将命令变换成并将命令从消息本身内定义的独立形式进行转换。
换句话说,这些实施例的一个方面是远程处理器120的平台指定性质被隐藏在消息模型之下,这些性质是跨平台边界统一的。通过建模外壳生存期(如下详述)以及消息(例如,SOAP)下的命令执行,外壳120处理器中的实质且恼人的差别就被隐藏。
注意到虽然如下各实施例可被描述为利用上述处理程序125、130用来以平台和语言不可知的方式提供命令,但是这些转换对利用这些实施例不是必须的。此外还应注意到,虽然本文描述的实施例通常在网络环境中的客户机和远程外壳处理器之间实现,但是某些实施例也可应用于本地机器。同时还应注意本文描述的用于执行并建模实施例的任何数量的模块和配置也被记及。因此,用于实现本文描述实施例的任何特定编码格式、语言语法或操作系统、设计布局的任何具体使用,或者远程或其他特定外壳模块的使用仅出于示例性目的,并且除非另行指出,不是旨在限制或以其他方式缩小本文描述的各实施例的范围。
除了使用的图1B所示计算系统类型之外,当客户机105想要打开外壳120以处理命令时,各实施例允许发出结构化的打开外壳消息135,该消息直接建模打开命令外壳处理器这一概念。因此,这一实施例模仿在操作系统环境中本地打开“命令窗口”的动作。消息135随后可被递送至远程机器110,于是机器110本地打开“真实的”外壳120并将其输入和输出附至远程会话。这一初始消息135通常是针对外壳120环境变量、默认目录(未示出)和其他的初始化(例如,覆盖默认变量、添加新变量以控制命令行为等)可被执行的地方。
注意到在本文描述的这一和其他实施例中,由外壳处理器120执行的处理可以是模仿这类处理的实际实现的虚拟处理。换句话说,发生的各操作可以看上去发生在特定外壳处理器120处,然而其他模块或组件模仿处理命令或实现信号控制的这类行为,这将在如下详述。因此,如本文描述并要求保护的对外壳处理器120或其行为的任何引用应该被广义地解释为包括代表着或类似于实际外壳处理器进行动作的虚拟机。
在外壳处理器120方上(例如,在服务器方实现上),打开外壳响应消息140可以被发送回客户机105以确认外壳120的打开。注意到在一个实施例中,标识符142或令牌可以被附至消息140,用以标识外壳120(例如,在本例中示出的外壳ID=123)。因此,绑定机制142(即,标识符142或外壳令牌)的使用可以如下将详述的那样贯穿用于会话生存期始终。注意到这将允许将外壳处理器120会话(其生存期)建模为一系列命令而非一系列字符。此外还应注意到,这一机制还允许打开若干外壳120会话,藉此允许同时处理多个命令系列。此外,注意到因为用于外壳会话的绑定机制(即,标识符142或外壳令牌)在消息内发送,所以与当前外壳会话的二进制或逐字符建立相关联的问题就得以克服。
然而,应该注意到本文描述的一些实施例并不一定需要本文描述的会话绑定142机制或建模。例如,如果仅建立的单个会话或外壳处理器120,就可以不需要使用外壳ID 142或令牌。因此,本文中使用外壳标识符或令牌来建立会话仅出于示例性目的,并且除非另行指出,不是旨在限制本文描述的各实施例的范围。
无论外壳标识符142是否用于创建或建立会话,如提供何时发出命令至命令外壳处理器120的图1C实施例所示,客户机105应用程序可以在发送方上组成完整的命令行单元147,该单元包括例如命令名、其开关、以及其他成功执行必须的信息。换句话说,如前所述,本文的实施例标识命令147、检查命令147、对其执行一定的有效性和其他高级处理(例如,与访问或有效性控制列表相比较),并将命令147单元密封入执行命令消息145以将命令147发送至外壳处理器120以供处理。因此,本文的实施例使用面向消息的协议将命令147作为结构化的原子单元递送,这与现有的依赖于面向字符的传输模型的命令外壳协议实现相反。
注意到在此示出的命令是单个“copy(复制)”命令;因此,其他类型的命令甚至是命令组合也可包括在该消息内。例如,执行命令消息145可以包括一个命令的输出输送到其他命令输入的多个命令147。但通常在单个消息内仅包括一条命令。无论消息145内是包括一条还是多条命令,命令都应被表达为一整个单元,即不应该仅包括命令147的部分表达式。因此,本文描述的消息145内的任何特定类型或数量的命令147仅出于示例性的目的并且不应该限制或以其他方式缩小各实施例的范围,除非另行指出。
此外,还应注意执行命令消息145(以及本文描述的其他消息)可以是任何类型的已知格式,例如HTML(超文本标示语言)、XML(可扩展标示语言)等。此外,命令147(或本文描述的其他元素)可以位于消息的任何位置,例如首部、正文或其他字段。还应注意到在使用标识符或令牌142建立会话或外壳生存期的情况下,执行命令消息145还应该包括令牌142用以标识哪个外壳120应该执行这一操作。
响应于执行命令消息145,通常外壳处理器120将发出一个执行响应消息150。注意到执行响应消息150可以是消息输出的一部分,这将在如下详述。例如,执行响应消息150可以简单地是状态码、出错或者指示命令147是否已被执行的其他确认消息。还应注意到执行响应150可以包括可用于诸如标识或绑定特定输入和输出至命令147等的命令标识符或令牌152(在本例中示出为命令ID=456),这将在如下详述。
然而注意到,类似于外壳标识符,命令令牌152在本文描述的一些实施例中不是必须的。例如,如果多个命令147没有在会话中执行和/或如果没有输入/输出生成,就不需要这一命令标识符152。还应注意到,执行响应150可以按需并如前所述包括或不包括外壳标识符142。
此外,如图1D所示,客户机105应该开始提取由执行命令147生成的任何输出160,因为大部分命令将发出输出并在最后发出某种最终状态(例如,状态码、出错码或者其他在前提及的确认消息)。根据一个实施例,这一过程如图所示以循环出现,其中一个或多个输出流160(例如,标准输出流、标准出错流或其他输出流)由客户机105接收并且使用读输出消息155确认。
典型地,客户机105继续重复上述循环直到命令147执行发出的任何流(例如,流“A”、“B”、“C”)不再有输出160。在一个实施例中,由命令147发出的每个流(例如,流“A”、“B”、“C”)的输出160可以在消息块160中隔开。在某些地方会存在有诸如流“C”中所示的流结尾标记,这意味着客户机105不再为该流输出((注意流结尾标记可用来指示输出内所有流的结尾和/或这些流或可任选项使得在命令终止,例如在响应中返回退出代码的情况下可以暗示流的结束)。最终,命令147处理涉及的所有流都将发出流结尾标记,并且流结尾标记将出现在响应消息160中。还应注意到,那些实施例允许配置可输出至客户机105的流类型,例如将流“A”设置为真,同时将流“B”设置为假。
一旦命令147随着其所有输出160的发出而终止,客户机105就可如上所述发出另一条命令147。然而,如前所述,某些实施例还允许一条以上的命令147同时依靠同一外壳120例示执行,或者在某些情况下依靠多个外壳120会话执行。
注意到代替发送每个输出字符的多次往返,输出160是以字符组块而被检索的。因此,给定响应160针对一个或多个流可以具有大量数据,这与典型的命令外壳协议的面向字符传输相反。于是,输出160就被更有效地接收并处理以供显示和其他使用。还应注意到如前所述,通常在需要时,输出消息160应该包括外壳和/或命令标识符142、152。在这类示例中,客户机105可以正接收,而外壳处理器120可以正生成多个外壳120会话中多个命令147执行的多个输出。此外,正如以下将更详细描述的,这类输出160流可以基于各种考虑和相关接收到的输入而被动态调整其生成和发送速率。
如前所述,一些命令147也可要求输入。在这一示例中,如图1E所示,本文的实施例允许在将命令执行消息145(因而和命令147)发送至外壳处理器120之后将输入流165“馈送给”命令147(然而应注意,一些实施例在命令和输入仍然保持分开而可标识的情况下,例如命令在首部而输入在正文中的SOAP消息的情况下,允许也将输入包括在命令执行消息147内)。在使用命令标识符或令牌152的情况下,输入通常将在命令ID 152已知之后被发送。同样地,在使用外壳标识符142的情况下,这一标识符142应该被包括在输入165内以标识合适的外壳120会话。类似于上述输出流160,输入流165以循环类型的方式出现,直到在任何流(例如,流“A”、“B”、“C”)上都没有输入数据馈送给命令147。换句话说,客户机105接收到针对那些写输入消息165内的输入数据流被成功递送给外壳处理器120的确认消息170,并且客户机105继续将输入165流传送至外壳处理器120,直到所有的输入被确认170为已接收。还应注意到,那些实施例允许配置可被输入的流类型,例如将流“A”设置为真,同时将流“B设置为假。”
注意到类似于输出流160,并非以逐字符的基础传送各输入,输入是按字符组块发送的。因此,给定写输入消息165针对一个或多个流可以具有大量数据,这与典型的命令外壳协议的面向字符传输相反。于是,输入被更有效地接收并处理。还应注意到如前所述,在需要时,输入消息165应该包括外壳和/或命令标识符142、152。在这一情况下,外壳处理器120可以正处理多个外壳120会话中多个命令147的多个输入。
其他实施例允许处理异步和同步出现的输入165以如上关于读输出消息155所述提取输出160。因此,因为一些命令147可以按比它们生成输出160更快/更慢的速率来要求输入165,所以本文中的实施例可以由此静态地或动态地调整输入/输出速率。换句话说,输入165和输出160消息流程之间可能存在阻抗失配。此外,流程可以基于任何数量的问题,诸如超时问题、带宽问题、优选流等而被静态或动态调整。此外,或输入165或输出160的流可以基于提示消息、配置设置或者任何其他周知机制而被调节。
其他又一些实施例允许使用特定消息来异步控制或改变外壳120操作流程的流程。例如,如图1F所示,信号消息175可用于终止、暂停、恢复或以其他方式修改命令的执行。换句话说,如果用户希望改变命令147的执行状态,客户机105能够创建信号消息175并将这一消息发送给外壳处理器120,于是外壳处理器120就可以按需采取合适动作。注意到通过将控制或信号命令建模为离散消息175(以及本文中其他建模和描述的实施例),这些命令就不会像先前描述的使用逐字符传输的协议那样被错误地执行。
类似于本文描述的其他过程,信号响应消息180可以返回客户机以指示命令147的状态。注意到这类响应消息180可以是基于诸如命令147的状态、期望的修改或改变类型(例如,这些修改是否合法)等的出错或其他类型的确认消息180。还应注意到在使用命令和/或会话标识符142、152的情况下,信号消息175和响应152通常应该包括用于正确处理的合适令牌。还应注意到,信号标识符(以及本文描述的其他标识符)可以包括在消息的任何部分内,可以作为代码出现,可以是特定字段内的标志,或者可以按其他类似的周知方式标识。
当客户机105不再需要外壳120时,实施例还允许通过发送如图1G所示的关闭外壳消息185来关闭外壳。如果会话被如前所述那样建立,则关闭外壳消息185应该包括外壳标识符142(示出为外壳ID=123)。无论如何,当外壳处理器120接收到关闭外壳的请求185时,外壳会话120将终止并且当然在假定没有错误出现的情况下,将合适的状态或关闭外壳响应190返回给客户机105。
注意到在上述实施例中,标识的消息各部分可以使用任何周知的统一资源标识符(uri)表示。例如,命令147、打开/关闭会话、外壳标识符142、命令令牌152、信号标识符(例如,终止、暂停、恢复等)和消息的其他部分可以使用任何周知uri进行标识。因此,这一实施例允许从在外壳过程中执行命令行使用的任何指定平台或语法中的另一层提取。
本发明还被描述成包括功能性步骤和/或非功能性动作的方法。下文是可被执行以实践本发明的步骤和/或动作的描述。通常,功能性步骤描述本发明可以实现的结果,而非功能性动作描述实现特定结果的更为专用的动作。虽然功能性步骤和/或非功能性动作可以按特定次序描述或声明,但是本发明没有必须受限于任何特定的次序或者是步骤和/或动作的组合。此外,在权利要求的陈述中使用步骤和/或动作以指示这些术语的期望的特定使用。
图2示出了用于本发明各示例性实施例的流程图。以下对图2的描述将不时参考图1A-G中的对应元素。虽然可以做出对这些附图中特定元素的参考,但是这些参考只用于示例性目的而非旨在限制或以其他方式缩小所述实施例的范围,除非明确声明。
图2示出了根据示例性实施例用于在远程外壳处执行命令行的协议的流程图。注意到图2的流程图包括对依赖于诸如流程图中深度以及流程图的哪一方,即客户机210或命令行外壳处理器220正被描述的多种方法(例如,200、205)。因此,以下对流程图的描述并非意味着指向任何特定方法,而是用于大致描述执行如下一项或多项的实施例:(1)将命令作为结构化的原子单元进行递送而非面向字符的传输;(2)将外壳生存期建模为一系列命令;(3)将改变外壳操作流的异步控制信号建模为指定类型的消息而非字符;以及(4)将客户机和远程外壳之间的数据交换建模为专用的输入和输出消息流,也就是不将命令和输入/输出流加以混合。
实施例用于发送/接收215/225请求以打开外壳。例如,客户机105可以发送打开外壳请求消息135至外壳处理器120。在如上所述会话应被建立的情况下,实施例也可用于发送/接收235/230外壳标识符。更具体地,一旦接收到打开外壳消息135,外壳处理器将如前所述发送包括外壳令牌或标识符142的打开外壳响应140。其后,客户机方210标识240要由命令行外壳处理器220远程执行的命令,并将该命令附至245一消息。例如,客户机105可以标识命令147并将其包括在执行命令消息145中以发送至通常远离客户机105的外壳处理器120。注意到在其中建立外壳会话的情况下,执行命令消息145还应该包括外壳标识符142。
命令行处理器方220接收225消息145,并在随后标识260命令147以供执行。其后,在使用命令标识符的情况下,外壳处理器120可以将这一标识符142发送265至客户机105,客户机105接收270标识符142用于如上所述发送输入或以其他方式控制命令147的执行。如上所述根据示例性实施例可以需要也可以不需要命令标识符152,而这取决于诸如是否允许在单个会话中的多个命令147、是否需要输入/输出等。例如,如果用于执行命令165的写输入165是必须的,则命令标识符152(可能甚至是外壳标识符142)可以包括在由外壳处理器120发送/接收275/280的流传送输入165中。针对接收输入的确认285(例如,出错代码等170)也应被发送275,这样处理循环直到所有的输入流165已被正确发送275至外壳处理器120或由其接收280。
一旦命令147和流输入165(如果有的话)已被适当接收,命令行外壳处理器方220就能够适当执行290命令147。同样地,输出165可被发送295至客户机105或被其接收202,而适当的确认则发送214至命令行外壳处理器220方。类似于输入流165,输出循环应该继续,直到所有输出160都被客户机105接收或发送至客户机105。
注意到如上所述,输入265和输出260流可以在客户机105和外壳处理器120之间被异步和同步发送/接收。此外,这一流程可以基于多种因素并按各种方式进行静态或动态调整。例如,该流程可以基于为特定命令147生成一定量输出160所需的输入165的量,和/或基于带宽或其他限制。此外,该流程可以通过提示消息、控制设置或其他周知机制来控制。
一旦用户完成会话,用以关闭外壳185的请求就可以被发送204给命令行外壳处理器方220或由其接收208,并且确认190被发送212给客户机方210以通知客户机105该外壳120会话已经结束。还应注意到其他实施例允许分布信号消息175(例如,终止、暂停、恢复等)来改变命令147的状态或处理。如同本文描述的大多数其他消息一样,这类控制消息175可以使用单个响应180来确认(或提出出错)。
本发明可具体化为其他具体形式而不背离其精神或本质特征。所述实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方式的含义和范围内的所有改变应被权利要求书的范围涵盖。

Claims (20)

1.在网络计算环境中的远程设备处,一种通过在消息内而非以二进制数据流提供绑定机制从而将外壳与一系列命令绑定的建立命令行外壳处理会话的方法,所述方法包括:
接收请求消息以打开远程命令行处理器处的外壳;
提供绑定机制用以将命令传送至所述外壳以供执行;以及
接收执行请求消息以执行命令,其中所述执行请求消息包括作为单元的命令以及所述绑定机制。
2.如权利要求1所述的方法,其特征在于,所述绑定机制是外壳标识符、外壳令牌或两者。
3.如权利要求1所述的方法,其特征在于,响应于所述接收到的执行请求消息,所述方法还包括:
发送响应消息,所述响应消息包括用于标识输入、输出或有关所述命令执行的其他信号消息的命令标识符。
4.如权利要求1所述的方法,其特征在于,所述响应消息包括所述命令执行的状态报告。
5.如权利要求1所述的方法,其特征在于,所述命令要求输入以供在所述命令行外壳处理器处执行,其中所述输入作为与所述执行消息分开的一个或多个数据流接收,并且其中所述输入包括所述外壳和所述命令标识符两者。
6.如权利要求1所述的方法,其特征在于,所述命令执行生成输出,并且其中所述输出作为包括所述外壳和所述命令标识符两者的一个或多个数据流被发送给客户机。
7.如权利要求1所述的方法,还包括:
接收包括所述外壳和所述命令标识符的用以改变所述外壳操作流程的一个或多个异步信号消息,使得所述命令执行被终止、暂停、恢复、退出或延迟。
8.如权利要求1所述的方法,其特征在于,所述命令请求输入流并且所述命令执行生成输出流,并且其中所述输入流的流程速率相对于所述输出流的流程速率被动态调整。
9.在网络计算环境中的客户机设备处,一种通过使用消息而非二进制数据流将一系列命令与远程外壳绑定的绑定机制来建立用于命令的远程处理会话的方法,所述方法包括:
发送请求消息以打开远程命令行处理器处的外壳;
接收绑定机制用以将命令传送至所述外壳以供执行;
发送执行请求消息以执行命令,其中所述执行请求消息包括作为单元的命令以及所述绑定机制。
10.如权利要求9所述的方法,其特征在于,所述绑定机制是外壳标识符、外壳令牌或两者。
11.如权利要求9所述的方法,其特征在于,响应于所述接收到的执行请求消息,所述方法还包括:
发送响应消息,所述响应消息包括用于标识输入、输出或有关所述命令执行的其他信号消息的命令标识符。
12.如权利要求9所述的方法,其特征在于,所述响应消息包括所述命令执行的状态报告。
13.如权利要求9所述的方法,其特征在于,所述命令要求输入以供在所述外壳处执行,其中所述输入作为与所述执行消息分开的一个或多个数据流发送,并且其中所述输入包括所述外壳和所述命令标识符两者。
14.如权利要求9所述的方法,其特征在于,所述命令执行生成输出,并且其中所述输出作为包括所述外壳和所述命令标识符两者的一个或多个数据流而在客户机处被接收。
15.如权利要求9所述的方法,还包括:
发送包括所述外壳和所述命令标识符的用以改变所述外壳操作流程的一个或多个异步信号消息,使得所述命令执行被终止、暂停、恢复、退出或延迟。
16.如权利要求9所述的方法,其特征在于,所述命令请求输入流并且所述命令执行生成输出流,并且其中所述输入流的流程速率相对于所述输出流的流程速率被动态调整。
17.在网络计算环境中的远程设备处,一种计算机程序产品,用于实现一种通过在消息内而非以二进制数据流提供绑定机制从而将外壳与一系列命令绑定的建立命令行外壳处理会话的方法,所述计算机程序产品包括其上存储有计算机可执行指令的一种或多个计算机可读介质,当所述计算机可执行指令被处理器执行时,能够使得所述远程设备执行如下动作:
接收请求消息以打开远程命令行处理器处的外壳;
提供绑定机制用以将命令传送至所述外壳以供执行;以及
接收执行请求消息以执行命令,其中所述执行请求消息包括作为单元的命令以及所述绑定机制。
18.如权利要求17所述的计算机程序产品,其特征在于,所述绑定机制是外壳标识符、外壳令牌或两者。
19.如权利要求17所述的计算机程序产品,其特征在于,响应于所述接收到的执行请求消息,所述计算机程序产品还包括可执行指令用以使得所述命令行处理器执行如下动作:
发送响应消息,所述响应消息包括用于标识输入、输出或有关所述命令执行的其他信号消息的命令标识符。
20.如权利要求17所述的计算机程序产品,其特征在于,所述命令要求输入以供在所述命令行外壳处理器处执行,其中所述输入作为与所述执行消息分开的一个或多个数据流接收,并且其中所述输入包括所述外壳和所述命令标识符两者。
CN2007800055854A 2006-02-16 2007-01-19 外壳会话 Active CN101385015B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77395406P 2006-02-16 2006-02-16
US60/773,954 2006-02-16
US11/469,411 US7933964B2 (en) 2006-02-16 2006-08-31 Shell sessions
US11/469,411 2006-08-31
PCT/US2007/001363 WO2007094915A1 (en) 2006-02-16 2007-01-19 Shell sessions

Publications (2)

Publication Number Publication Date
CN101385015A true CN101385015A (zh) 2009-03-11
CN101385015B CN101385015B (zh) 2013-05-01

Family

ID=40463801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800055854A Active CN101385015B (zh) 2006-02-16 2007-01-19 外壳会话

Country Status (2)

Country Link
US (3) US8090838B2 (zh)
CN (1) CN101385015B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933964B2 (en) 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US8090838B2 (en) * 2006-02-16 2012-01-03 Microsoft Corporation Shell operation flow change
US8171475B2 (en) 2007-08-29 2012-05-01 International Business Machines Corporation Intelligent retry method using remote shell
US9516128B2 (en) * 2007-12-13 2016-12-06 International Business Machines Corporation Generic remote connection to a command line interface application
US8161455B2 (en) * 2008-01-31 2012-04-17 International Business Machines Corporation Concurrent execution of multiple primitive commands in command line interface
US8745706B2 (en) * 2012-05-14 2014-06-03 Business Objects Software Limited Secure communication of distributed ruby requests
US9323621B2 (en) 2014-03-06 2016-04-26 International Business Machines Corporation Dynamic monitoring of command line queries
US11029802B2 (en) * 2018-02-27 2021-06-08 International Business Machines Corporation Automated command-line interface
US11281480B2 (en) * 2020-05-28 2022-03-22 Sap Se Enhancing parameter-less exit-calls from a command line interface

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4124889A (en) 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
US5471564A (en) 1992-07-10 1995-11-28 Microsoft Corporation System and method for dynamic printer timeout
US5528503A (en) 1993-04-30 1996-06-18 Texas Instruments Incoporated Integrated automation development system and method
US5712978A (en) * 1994-12-30 1998-01-27 Lucent Technologies Inc. System for control of remote processors
US5764228A (en) 1995-03-24 1998-06-09 3Dlabs Inc., Ltd. Graphics pre-processing and rendering system
WO1996031074A1 (en) 1995-03-29 1996-10-03 Ericsson Inc. Console dispatch in an extended multisite radio communications network
JPH09231156A (ja) 1996-02-28 1997-09-05 Nec Corp プログラム受信機能付遠隔実行装置
GB2313524A (en) 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US7062500B1 (en) 1997-02-25 2006-06-13 Intertrust Technologies Corp. Techniques for defining, using and manipulating rights management data structures
US7290288B2 (en) * 1997-06-11 2007-10-30 Prism Technologies, L.L.C. Method and system for controlling access, by an authentication server, to protected computer resources provided via an internet protocol network
US5991814A (en) 1997-07-10 1999-11-23 Alcatel Method and apparatus for controlling command line transfer to a network element
US6732191B1 (en) * 1997-09-10 2004-05-04 Schneider Automation Inc. Web interface to an input/output device
US8782199B2 (en) * 1997-10-14 2014-07-15 A-Tech Llc Parsing a packet header
US6493447B1 (en) 1997-11-21 2002-12-10 Mci Communications Corporation Contact server for call center for syncronizing simultaneous telephone calls and TCP/IP communications
US6438612B1 (en) * 1998-09-11 2002-08-20 Ssh Communications Security, Ltd. Method and arrangement for secure tunneling of data between virtual routers
US6470346B2 (en) * 1998-10-07 2002-10-22 Millennium Pharmaceuticals, Inc. Remote computation framework
US6351777B1 (en) * 1999-04-23 2002-02-26 The United States Of America As Represented By The Secretary Of The Navy Computer software for converting a general purpose computer network into an interactive communications system
US6286035B1 (en) * 1999-02-01 2001-09-04 Lucent Technologies Inc. Validating and parsing engine for system configuration and support command messages
US6449251B1 (en) * 1999-04-02 2002-09-10 Nortel Networks Limited Packet mapper for dynamic data packet prioritization
US6675387B1 (en) 1999-04-06 2004-01-06 Liberate Technologies System and methods for preparing multimedia data using digital video data compression
US6405365B1 (en) * 1999-07-02 2002-06-11 Cisco Technology, Inc. Computer program command generator and parser
JP3738624B2 (ja) 1999-10-26 2006-01-25 日本電気株式会社 分散アプリケーション制御システム及び制御方法並びにプログラムを記録した記録媒体
US20020186255A1 (en) 1999-10-28 2002-12-12 Shafron Thomas Joshua Method and system of facilitating on-line shopping using an internet browser
US6922721B1 (en) * 2000-10-17 2005-07-26 The Phonepages Of Sweden Ab Exchange of information in a communication system
US6862708B1 (en) * 2000-01-31 2005-03-01 Harris-Exigent, Inc. Extensible device command commutation engine for formatting device commands for the controls of devices
JP3535795B2 (ja) * 2000-02-21 2004-06-07 博 和泉 コンピュータ、並びに、コンピュータ読み取り可能な記録媒体
US7039724B1 (en) * 2000-03-09 2006-05-02 Nortel Networks Limited Programmable command-line interface API for managing operation of a network device
US7051032B2 (en) * 2000-03-17 2006-05-23 International Business Machines Corporation System and method for providing post HOC access to legacy applications and data
US7222147B1 (en) 2000-05-20 2007-05-22 Ciena Corporation Processing network management data in accordance with metadata files
US7047526B1 (en) * 2000-06-28 2006-05-16 Cisco Technology, Inc. Generic command interface for multiple executable routines
US20020107951A1 (en) 2000-09-11 2002-08-08 William Teague Report group management
US6721808B1 (en) * 2000-09-13 2004-04-13 Cisco Technology, Inc. Real-time creation of distributed object shell commands
US7293255B2 (en) 2000-09-25 2007-11-06 Sun Microsystems, Inc. Apparatus and method for automated creation of resource types
US7069507B1 (en) * 2000-09-29 2006-06-27 Microsoft Corporation Event routing model for an extensible editor
AU2002230777A1 (en) 2000-11-01 2002-05-27 Aeroflex Altair Cybernetics Corporation Information transformation software engine
US6981031B2 (en) * 2000-12-15 2005-12-27 International Business Machines Corporation Language independent message management for multi-node application systems
US7596791B2 (en) 2000-12-19 2009-09-29 Emc Corporation Methods and techniques for delivering rich Java applications over thin-wire connections with high performance and scalability
GB0031206D0 (en) 2000-12-21 2001-01-31 Ibm Multi-platform command line interpretation
US7546527B2 (en) * 2001-03-06 2009-06-09 International Business Machines Corporation Method and apparatus for repurposing formatted content
US7072908B2 (en) 2001-03-26 2006-07-04 Microsoft Corporation Methods and systems for synchronizing visualizations with audio streams
US7516208B1 (en) * 2001-07-20 2009-04-07 International Business Machines Corporation Event database management method and system for network event reporting system
US7266616B1 (en) 2001-08-08 2007-09-04 Pasternak Solutions Llc Method and system for digital rendering over a network
US20030037132A1 (en) * 2001-08-20 2003-02-20 Abdollahi Mahshid Ellie Controlling multiple nodes using SNMP
US20030120762A1 (en) 2001-08-28 2003-06-26 Clickmarks, Inc. System, method and computer program product for pattern replay using state recognition
US20030156132A1 (en) 2002-02-21 2003-08-21 Nandakumar Gn Method and apparatus for generating a graphical interface to enable local or remote access to an application having a command line interface
US20030163570A1 (en) 2002-02-26 2003-08-28 Sun Microsystems, Inc. Command line interface session tool
DE10211080A1 (de) 2002-03-13 2003-10-09 Oce Printing Systems Gmbh Verfahren, Gerätesysteme und Computerprogramme zum Erzeugen gedruckter Dokumente mit einer eindeutigen Kennung
US7490167B2 (en) * 2002-05-22 2009-02-10 Sony Corporation System and method for platform and language-independent development and delivery of page-based content
US7051230B2 (en) 2002-07-18 2006-05-23 International Business Machines Corporation Method and system for allowing customization of remote data collection in the event of a system error
US7243124B1 (en) 2002-09-06 2007-07-10 Oracle International Corporation Architecture for general purpose near real-time business intelligence system with client devices and methods therefor
US7290263B1 (en) * 2002-12-19 2007-10-30 Extreme, Networks, Inc. Method and system for a scriptable command line interface
US7454785B2 (en) * 2002-12-19 2008-11-18 Avocent Huntsville Corporation Proxy method and system for secure wireless administration of managed entities
US7386786B2 (en) 2003-01-24 2008-06-10 The Cobalt Group, Inc. Method and apparatus for processing a dynamic webpage
US7533141B2 (en) * 2003-01-24 2009-05-12 Sun Microsystems, Inc. System and method for unique naming of resources in networked environments
US7290249B2 (en) 2003-01-27 2007-10-30 Bea Systems, Inc. System and method for java message service mark-up language
US20040158638A1 (en) * 2003-02-06 2004-08-12 Peters Jay R. St. Providing static and dynamic event data
US20040163090A1 (en) * 2003-02-19 2004-08-19 Sun Microsystems, Inc, Method, system, and article of manufacture for a command line interface
US7483947B2 (en) 2003-05-02 2009-01-27 Microsoft Corporation Message rendering for identification of content features
US7246156B2 (en) * 2003-06-09 2007-07-17 Industrial Defender, Inc. Method and computer program product for monitoring an industrial network
US7624375B2 (en) * 2003-06-12 2009-11-24 National Instruments Corporation Automatically configuring a graphical user interface element to bind to a graphical program
US20050021652A1 (en) 2003-07-25 2005-01-27 Sun Microsystems, Inc. Synchronous collaborative shell integrated instant messaging
US7421658B1 (en) * 2003-07-30 2008-09-02 Oracle International Corporation Method and system for providing a graphical user interface for a script session
US7266734B2 (en) * 2003-08-14 2007-09-04 International Business Machines Corporation Generation of problem tickets for a computer system
US6897870B1 (en) 2003-08-15 2005-05-24 Apple Computer Inc. Glyph rendering quantization for subpixel positioning
US20050060693A1 (en) * 2003-08-27 2005-03-17 Terry Robison Command string parsing
US7734690B2 (en) 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US7418472B2 (en) 2003-09-30 2008-08-26 Microsoft Corporation Systems and methods for determining remote device media capabilities
US7457872B2 (en) 2003-10-15 2008-11-25 Microsoft Corporation On-line service/application monitoring and reporting system
US7770181B2 (en) * 2004-01-16 2010-08-03 Microsoft Corporation System and method for transferring computer-readable objects across a remote boundary
US20050182966A1 (en) 2004-02-17 2005-08-18 Duc Pham Secure interprocess communications binding system and methods
US7505946B2 (en) 2004-03-31 2009-03-17 Microsoft Corporation High performance content alteration architecture and techniques
KR100565328B1 (ko) * 2004-06-02 2006-03-30 엘지전자 주식회사 Rtsp 프로토콜을 이용한 원격 제어 시스템 및 방법
US20060026601A1 (en) * 2004-07-29 2006-02-02 Solt David G Jr Executing commands on a plurality of processes
US7526773B2 (en) 2004-08-31 2009-04-28 Sap Ag Parsing and handling events from .NET objects
US7478380B2 (en) * 2004-11-15 2009-01-13 Dell Products L.P. Dynamically updatable and easily scalable command line parser using a centralized data schema
GB0426846D0 (en) * 2004-12-08 2005-01-12 Ibm Method and system for administration of a broker-based publish/subscribe messaging system
US8566806B2 (en) 2005-03-04 2013-10-22 Microsoft Corporation Command-line data-type discovery and conversion
US20070006153A1 (en) 2005-05-25 2007-01-04 Microsoft Corporation Extensible testing framework
ATE417440T1 (de) 2005-08-05 2008-12-15 Telecom Italia Spa Verfahren zum herstellen einer verbindung in einem kommunikationsnetz
US7707269B2 (en) * 2005-11-02 2010-04-27 Nortel Networks Limited Interfacing between a command line interface-based application program and a remote network device
US8150960B2 (en) 2005-11-23 2012-04-03 Microsoft Corporation Event forwarding
US8090838B2 (en) 2006-02-16 2012-01-03 Microsoft Corporation Shell operation flow change
US7933964B2 (en) 2006-02-16 2011-04-26 Microsoft Corporation Shell sessions
US20080148261A1 (en) * 2006-12-18 2008-06-19 Andrew Rodney Ferlitsch Batch handling for background file processing
US7934027B2 (en) * 2007-01-19 2011-04-26 Hewlett-Packard Development Company, L.P. Critical resource management

Also Published As

Publication number Publication date
US8090838B2 (en) 2012-01-03
US20070192773A1 (en) 2007-08-16
CN101385015B (zh) 2013-05-01
US8745489B2 (en) 2014-06-03
US20070192503A1 (en) 2007-08-16
US20070192496A1 (en) 2007-08-16
US7933986B2 (en) 2011-04-26

Similar Documents

Publication Publication Date Title
CN101385015B (zh) 外壳会话
CN106254423B (zh) 基于微服务架构实现Restful服务快速发布的方法
CN103336705A (zh) 脚本处理和工作流系统间的自动转码和语义自适应
CN101351771B (zh) 用于获取并应用交互式环境内对构造的约束的方法和系统
CN107168702A (zh) 一种App、小程序和Web接口定义和代码生成方法
CN109753492A (zh) 一种基于元数据配置的系统构建方法及装置
CN106713357A (zh) 一种通用的网络协议解析方法
CN109753532A (zh) 用于浏览器端访问数据库的接口服务系统及其实施方法
CN102187314A (zh) 可视地建模、调试和执行面向资源的程序的交互式设计环境
US20080059436A1 (en) Providing a visual representation of a sub-set of a visual program
CN102043665A (zh) 知晓系统全景的应用间通信基础架构
CN109995643A (zh) 业务邮件推送方法及装置
Autili et al. Synthesis of correct adaptors for protocol enhancement in component-based systems
CN101295246B (zh) 一种从UML模型转换至SmartC模型的转换方法
Medvidovic et al. Stemming Architectural Erosion by Coupling Architectural Discovery and Recovery.
CN107608672A (zh) 一种ui模块管理器、ui模块管理方法和系统
JP5022382B2 (ja) シェル・セッション
Akehurst et al. Design Support for Distributed Systems: DSE4DS
Kaliappan et al. An approach to synchronize UML-based design components for model-driven protocol development
Dong et al. A feedback-based adaptive service-oriented paradigm for the internet of things
Schneider Protocol Engineering
Slåtten et al. Towards a model-driven method for reliable applications: from ideal to realistic transmission semantics
Wagstaff et al. From protocol specification to statechart to implementation
Börger et al. Modeling for change via component-based decomposition and ASM refinement
Lee et al. Representation and simulation of stochastic petrinet models using XPNML

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.