智能客户机内插附件体系结构的制作方法

文档序号:6647147阅读:191来源:国知局

专利名称::智能客户机内插附件体系结构的制作方法
技术领域
:本发明涉及使用智能客户机与另一应用程序接口。
背景技术
:客户关系管理(“CRM”)是一种标识、获取和保留客户的综合方法。通过使组织能够管理和协调跨多个渠道、部门、业务线和地理的客户交互,CRM帮助组织最大化客户交互的价值,并且推动出众的公司业绩。当今的组织必须管理跨多个信道—包括web、呼叫中心、区域销售、经销商和合作伙伴网络—的客户交互。许多组织还具有拥有许多重叠客户的多条业务线。难题是让客户能够容易地以他们希望的任何方式与组织贸易—在任何时间、通过任何渠道、以任何语言或货币—并且让客户感到他们正在与在每一接触点识别他们的单个、统一的组织进行交易。通过使过程流水线化并且为销售、营销和服务人员提供更好的、更完整的客户信息,CRM使组织能够建立更有利润的客户关系,并且减少操作成本。销售组织能缩短销售周期,并且提高关键的销售业绩度量,诸如每个销售代表的收入、每个客户的平均订货大小和收入。营销组织能提高活动回报率和市场驱动的收入,而同时减少客户开发和客户获取成本。客户服务组织能提高服务代理生产力和客户保持力,而减少服务成本、响应时间和请求解决时间。产生令人满意的忠诚客户的公司很有可能具有重复的业务、较低的客户获取成本并且建立更强的品牌价值,所有这些将转换成更好的业绩。为实现CRM方法,组织使用了CRM软件。例如,一个组织可能建立了关于其客户的数据库,该数据库以不够充分的细节来描述关系,因此管理、销售人员、服务人员和合作伙伴能直接访问信息、将客户需求与产生计划和供应进行匹配、提醒客户的服务要求、了解客户已经购买过的其它产品、理解不同客户的服务历史以及协调销售和营销工作。因而,CRM软件系统可包括(但不限于)数据结构,它存储客户的联系信息、销售历史、服务历史、销售客户信息、代表客户执行的各种活动、销售时机和/或其它数据。尽管CRM软件系统可以在组织的投资上提供实质回报,但不是所有实现CRM系统的组织都已经适当地从CRM系统中获利。例如,许多职员通常不登录到CRM系统。当开发一个特定的销售客户或者计划或执行其它活动时,通常没有便利的方式来寻求对CRM系统的访问以记录数据。在某些情况下,组织的职员没有受到适当的培训来使用CRM软件系统。有些职员可能根本不知道如何来访问CRM系统。许多CRM系统是自定义的解决方案,它要求对个人进行大量的培训。因而,许多CRM系统不足以用来最大化对投资的回报。另外,CRM数据和过程可驻留在多个没有组合起来的数据存储或系统中。这给CRM用户产生组合所有这种事务、契约和概况概况信息以完整地理解客户的完整关系的障碍。
发明内容对上述有关CRM问题的一个建议的解决方案是使用众所周知和常规使用的软件应用程序,诸如CRM系统的智能客户机(SmartClient)。由于应用程序是众所周知的,因此组织将招致较少的培训职员的负担。如果应用程序是经常使用的应用程序,诸如执行时间安排和消息通信的正常运行的桌面应用程序,则职员能够更方便地访问CRM系统(例如,通过智能客户机),并且因此,职员将更多地通过使用智能客户机来使用系统。在一个例子中,来自微软公司的Outlook和内插式软件一起,可以用作CRM系统的智能客户机。然而,在此描述的技术也可以更一般地使用。即,除了CRM系统之外,在此描述的技术也可以用作各种类型企业应用程序的智能客户机解决方案。类似地,在此描述的技术还应用于基于除Outlook之外的应用程序的智能客户机。在一个实施例中,一种企业应用程序(例如,CRM系统)的智能客户机解决方案包括基本应用程序(例如,MicrosoftOutlook)和与基本应用程序接口的内插式软件。内插式软件允许使用基本应用程序来访问企业应用程序的数据和功能。内插式软件包括用于访问基本应用程序数据存储中的项(对应于企业应用程序中的数据)的接口管理器、与企业应用程序通信(通过web服务)的通信代理、以及与接口管理器和通信代理两者通信、用于同步基本应用程序与企业应用程序的数据存储之间数据的同步管理器。除了同步之外,智能客户机数据也可以被转换成基本应用程序的数据,反之亦然。图1描述了智能客户机的图形用户界面的一个例子。图2描述了智能客户机的图形用户界面的一部分。图3是描述使用智能客户机来查看、编辑和/或创建帐号的过程的一个实施例的流程图。图4是描述使用智能客户机来查看、编辑和/或创建各种数据项的过程的一个实施例的流程图。图5是描述用于从智能客户机访问应用程序的过程的一个实施例的流程图。图6是描述用于从智能客户机访问CRM应用程序的一个实施例的流程图。图7是描述将智能客户机用于如CRM软件系统等外部应用程序的体系结构的一个实施例的框图。图8是描述智能客户机的体系结构的一个实施例的框图。图8A是描述应用程序接口的体系结构的一个实施例的框图。图9是描述类分层结构的一个例子的框图。图10是描述用于转换数据项的过程的一个实施例的流程图。图11是描述用于转换数据项的过程的一个实施例的流程图。图12是描述用于同步数据的过程的一个实施例的流程图。图13是描述在同步域数据时使用的过程的一个实施例的流程图。图14是描述在同步域数据时使用的过程的一个实施例的流程图。图15是描述在同步帐号数据时使用的过程的一个实施例的流程图。图16是描述用于删除不再需要的帐号文件夹的过程的一个实施例的流程图。图17是描述用于从其它应用程序获得数据的过程的一个实施例的流程图。图18是描述用于同步事务数据的过程的一个实施例的流程图。图19是描述用于同步事务数据的过程的一个实施例的流程图。图20是描述在服务器端执行并且用于同步事务数据的过程的一个实施例的流程图。图21是描述在同步活动数据时使用的过程的一个实施例的流程图。图22是描述当正在访问的帐号列表被改变时执行的过程的一个实施例的流程图。详细说明I.用户界面为使CRM系统能够更被接受和使用,建议使用智能客户机来与CRM系统交互。可以通过将用户已经感到适合和熟悉的现有应用程序与该应用程序的内插附件相组合,来创建智能客户机的一个例子。用户感到适应和熟悉的应用程序的一个例子是合作、收发通信和/或时间安排应用程序。合作、消息通信和/或时间安排应用程序一个例子是来自微软公司的Outlook。然而,在此描述的各个方面可以使用其它合作、消息通信和/或时间安排应用程序以及其它应用程序来实现。Outlook可以与智能客户机内插附件相组合,以创建能访问CRM系统中数据的智能客户机。智能客户机内插附件包括能通过各种方法与如Outlook等基本应用程序接口的软件。例如,内插附件可使用库、应用程序接口、软件开发工具包或其它接口。在一个实施例中,智能客户机是帮助处理用户工作流内丰富的应用程序数据的一种应用程序(或应用程序集合),它在本地机器上,具有丰富的胖客户机用户界面经验,并且具有与基于web的计算相关联的瘦客户机的灵活性。在某些实施例中,智能客户机可以“消费(consume)”基于可扩展标记语言(XML)的web服务或与其交互,XML是一种广泛接受的计算机行业标准,它允许在全异的计算机系统、编程语言和软件应用程序之间交换数据。智能客户机能利用客户机设备的本地处理能力,从而提供在纯基于Web的计算(例如,诸如Web浏览器等瘦客户机)中经常缺少的额外的性能度量,它高度依赖于特定网络带宽的性能。许多智能客户机(包括在此描述的智能客户机)可以在线或离线使用,从而保证生产力即使在没有连接时也不受到损害。智能客户机还提供经由因特网、本地客户机或任何移动设备的宽广的可访问性和可用性。在此描述的技术可以用于许多不同的智能客户机和许多不同的目标应用程序。为了示例的目的,下面的讨论将使用一个包括结合内插式软件的Outlook的智能客户机的实现。在这个例子中的目标应用程序是来自SiebelSystems公司的CRM系统。智能客户机内插附件将使用户能够使用Outlook来访问SiebelCRM系统中的CRM数据。由智能客户机内插附件提供的大多数功能将被Siebel数据和功能环绕。并非CRM系统的每一个功能都将由智能客户机内插附件来实现。相反,智能客户机试图使那些专业人员天天要执行的最普通的功能可用,然而更深层的CRM功能可通过瘦在线客户机获得。CRM数据也将在处于离线模式的Outlook中可用。图1提供由Outlook内的智能客户机内插附件提供的图形用户界面(GUI)的例子。该GUI包括顶层菜单10、工具栏12、导航窗格14、列表窗格16和细节窗格18。顶层菜单10包括标题,如File(文件)、Edit(编辑)、View(视图)、Go(去往)、Tools(工具)、Actions(动作)、MyCRM(我的CRM)和Help(帮助)。菜单项File、Edit、View、Go、Tools、Actions和Help是Outlook菜单项。菜单MyCRM是由智能客户机内插附件添加到Outlook的新菜单。在其它实施例中,可使用不同于“MyCRM”的其它标签用于顶层菜单(例如,“CustomerExplorer(客户资源管理器)”)。点击菜单项MyCRM展现下列选项CreateNewOpportunity(创建新机会)、CreateNewActivity(创建新活动)、CreateNewContact(创建新联系人)、SyncManager(同步管理器)、About(关于)和Help(帮助)。工具栏12提供智能客户机内各种功能的快捷方式。导航窗格14示出通过智能客户机可用的数据项的各种文件夹。某些文件夹,包括Calendar(日历)、Contacts(联系人)、DeletedItems(移删除的项)、Drafts(草稿)、Inbox(收件箱)、Journal(期刊)、JunkE-mail(垃圾电子邮件)和Notes(笔记)是核心Outlook功能的一部分。其它文件夹,诸如MyCRM(我的CRM),是由智能客户机内插附件提供的智能客户机功能的一部分。当用户在一个文件夹上单击时,列表窗格16将用与该文件夹相关联的项列表填充。下面将提供更多的细节。如果用户单击列表窗格16中列出的一项,则在细节窗格18中提供关于该特定数据项的更多细节。如果用户在列表窗格16中的一项上双击时,则一个包括关于该项的详细信息的新窗口弹出。图2提供一个响应于在列表窗格16中一项上双击时弹出的新窗口的例子。弹出窗口中的信息与细节窗格18中所示的信息相似。然而,图2的弹出窗口使用户能够编辑信息。智能客户机内插附件具有它自己的文件夹分层结构,表示在导航窗格14的文件夹结构中的CRM数据。当用户在CRM数据分层结构的顶部处的文件夹(标签为MyCRM的文件夹)上双击时,或者当用户点击紧邻于该文件夹的“+”符号时,将显示该文件夹的子文件夹。在一个实施例中,子文件夹包括包括Links(链接)、MyAccounts(我的帐号)、MyActivities(我的活动)、MyOpportunities(我的机会)、MyContacts(我的联系人)、Siebel和System(系统)。文件夹MyAccounts(我的帐号)包括用于每个帐号的一个子文件夹,对于每个帐号,CRM数据可用于该特定用户。每个帐号文件夹(例如,BechtelCorporation,BechtelNevadaCorp.,BechtelPlantMachinery,LeviStrauss&Co.)具有Activities(活动)、Contacts(联系人)和Opportunities(机会)的子文件夹。CRM应用程序包括许多不同类型的数据项。在CRM应用程序中三个可用的数据项包括活动、联系人和机会。活动是数据记录,它存储关于正在执行的与客户有关的某个正在进行的活动的信息。这可以是销售活动、营销活动、服务活动等。联系人项包括联系人数据,诸如名字、地址等。机会项包括关于与客户有关的各种机会的数据。这可以包括营销机会、销售机会等。对于在此描述的技术,不要求这些数据项的特定格式。各种机会数据项,活动数据项和联系人数据项存在于CRM应用程序中。另外,其它类型的数据项也存在于CRM应用程序中。如上所述,在一个实施例中,智能客户机没有被设计成访问每一类型的数据项。因而,在一个实施例中,选择这三个数据项来访问。在每个帐号下的Activity文件夹存储与该帐号相关联的活动数据项。每个帐号的Contacts文件夹存储与该帐号相关联的所有联系人数据项。每个账号的Opportunities文件夹存储与该帐号相关联的所有机会数据项。文件夹MyActivities存储与用户相关联的所有活动数据项。文件夹MyOpportunities存储与用户相关联的所有机会数据项。MyContacts文件夹(或者MySeibelContacts(我的Siebel联系人))存储与特定用户相关联的所有联系人数据项。在许多情况下,一个特定的数据项既可以在一个帐号之下的文件夹中显示,也可以在My[Activities/Contacts/Opportunities]文件夹中显示。通过鼠标单击选择MyOpportunities文件夹引起在列表窗格中列出机会清单,其中用户是该活动团队的一部分。在任何机会项上双击弹出自定义的机会表单。这个表单包含选项卡,使用户能够在机会细节信息之间切换。选择MyActivities文件夹在列表窗格中显示一个活动列表。这些活动或者为用户所拥有,或者用户是这些活动的职员组的成员。用户将能够通过在列表窗格中的任何活动上双击来启动客户活动编辑表单。MySeibelContacts文件夹包含具有与CRM系统中相同可见性规则的联系人。这些联系人与其团队是用户所在或者用户是该联系人团队的成员的帐号相关联。在联系人项上双击引起具有更多细节的弹出窗口。在图1的Siebel4.0文件夹上点击会在在Outlook上下文中打开SiebelCRM系统的一个实例,并导航到机会管理视图。在Links文件夹上双击(或者在紧邻于Links文件夹的“+”符号上单击),展现预定义的可定制链接。在任何这些链接上点击,在Outlook的上下文内打开一浏览器实例,并且导航到由该链接定义的相关网站。为系统管理功能提供System文件夹。该文件夹包含标题为SyncErrors(同步错误)的子文件夹。SyncErrors子文件夹包含下列子文件夹OpportunitySyncErrors(机会同步错误)、ActivitySyncErrors(活动同步错误)和ContactSyncErrors(联系人同步错误)。这些文件夹将包含已经涉及同步过程中的冲突的记录。用户将能够读取这些文件夹的每一个内的记录。这些记录是只读的。然而,允许用户删除SyncErrors文件夹内的这些记录。在Outlook中的列表窗格可以为CRM文件夹定制。Outlook提供一种为列表窗格关联基于XML的视图定义的方法。该定义允许指定要显示的列和列表中的行的格式化。下面是一个示例XML定义<?xmlversion=″1.0″?><viewtype=″table″><viewname>AccountListView</viewname><viewstyle>table-layoutfixed;width100%;font-familyTahoma;font-stylenormal;font-weightnormal;font-size8pt;colorBlack;font-charset0</viewstyle><viewtime>0</viewtime><linecolor>8421504</linecolor><linestyle>3</linestyle><usequickflags>0</usequickflags><rowstyle>background-color#FFFFFF</rowstyle><headerstyle>background-color#D3D3D3</headerstyle><previewstyle>colorBlue</previewstyle><arrangement><autogroup>1</autogroup><collapsethreads>1</collapsethreads><collapseclient></collapseclient></arrangement><column><heading>Subject</heading><prop>urnschemashttpmailsubject</prop><type>string</type><width>344</width><style>padding-left3px;;text-alignleft</style></column><multiline><width>0</width></multiline><groupbydefault>2</groupbydefault><previewpane><visible>1</visible><markasread>0</markasread></previewpane></view>II.工作流图3是流程图,描述使用智能客户机来查看、编辑和创建帐号的一个实施例。在步骤102,用户将双击导航窗格14的“MyAccounts”文件夹。这将引起所有单独帐号的子文件夹在步骤104中被展现。例如,图1的GUI示出四个独立的帐号(BechtelCorporation,BechtelNevadaCorp.,BechtelPlantMachinery,andLeviStrauss&Co.)的各个文件夹。在另一个实施例中,用户可以在紧邻于文件夹的“+”上单击。在步骤106,选择这些子文件夹之一。即,用户选择一个特定的帐号。如果用户在该文件夹上双击(或者在紧邻于该文件夹的“+”上单击),则该帐号文件夹的子文件夹在步骤108被展现。在一个实施例中,一组子文件夹可以包括该帐号的活动、联系人和机会的文件夹。例如,图1示出LeviStrauss&Co.的子文件夹。在其它实施例中,也可以使用其它子文件夹。在步骤110中,显示特定帐号的列表窗格16。例如,图1示出具有以下三个项的列表窗格帐号概况、PSS事件和MS销售历史。注意,如果在步骤106通过在一个文件夹上单击来选择它,则系统将显示该列表窗格(步骤110),而不必展现子文件夹。显示在列表窗格中的帐号概况项存储帐号信息。列表窗格中的PSS事件项存储与关联于该帐号的客户的服务事件相关的信息。销售历史项提供关于该特定帐号的销售历史的信息。在其它实施例中,在列表窗格中可以有其它的不同项。在步骤112,选择列表窗格中的一项。如果用单击选择该项(步骤114),则与列表窗格中的该项相关联的信息在细节窗格18中揭示。(例如,见图1。)通常,在细节窗格18中显示的信息是只读的。尽管有可能编辑该信息,但在细节窗格18中该信息是不可编辑的。如果用户想要编辑它,则用户可在列表窗格中双击该项(步骤112),它将引起系统提供一个弹出表单116。图2是弹出表单的一个例子。在弹出表单中可以编辑部分或全部信息。在步骤118,系统可以从用户接收数据,在弹出表单中编辑部分或全部信息。在步骤120存储该信息。通常,用户可通过点击保存按钮来存储信息。注意,图2的窗口包括一个关闭按钮和一个“ViewinSiebel(在Siebel中查看)”按钮。如果用户点击“close(关闭)”按钮,则图2的窗口将在不保存信息的情况下被关闭。如果用户点击“ViewinSiebel”按钮,则将显示一个弹出浏览器窗口,并且做出与SiebelCRM系统的连接(在该浏览器窗口内),以便显示直接来自SiebelCRM系统的信息。在与图1的GUI交互的任何时候,用户可以选择“MyCRM”菜单。从该菜单,选择之一是“createanaccount(创建一个帐号)”。如果用户选择“createanaccount”选项(步骤140),则将在步骤116向用户提供弹出表单。可以将数据插入到该弹出表单中(步骤118)并且保存数据(步骤120)。如可以看到的,在图2中显示的弹出表单,它是响应于用户双击列表窗格中的“accountprofile(帐号概况)”而显示的,包括下列字段site(地点)、address1(地址1)、address2(地址2)、address3(地址3)、city(城市)、state(州)、ZIPcode(邮政编码)、country(国家)、mainphonenumber(主要电话号码)、mainfaxnumber(主要传真号码)、website(网站)、parentorganization(父组织)、marketsub-segment(市场子段)、parentinglevel(起源层)、industry(工业)、subsidiary(子公司)、salesregion(销售区域)、salesdistrict(销售地区)、subdistrict(子地区)、ID、parentsite(父地点)、verticalposition(垂直位置)、category(类别)、accountowner(帐号所有者)、annualrevenue(年收入)和ITbudget(IT预算)。图2的表单具有多个选项卡。上述字段全部都在帐号概况选项卡中。该选项卡可以提供所有其它选项卡的概要。“address(地址)”选项卡存储特定的地址是否为主要地址的指示,并且存储下列字段site、address1、address2、address3、city、state、ZIPcode和country。“team(团队)”选项卡列出该帐号的特定团队中的所有人员。对于每个人,该选项卡列出firstname(名)、lastname(姓)和alias(别名)。当用户点击“hierarchy(分层结构)”选项卡时,他们将看见所选择帐号的分层描述,以及与该帐号相关的其它帐号。那些属于用户的帐号可通过双击该帐号名字来访问。当用户在分层窗口中的可访问帐号上执行鼠标单击时,导航窗格的“MyAccounts”文件夹中的活动焦点应转移到该帐号,并且弹出屏幕将刷新以显示该帐号(这是用户用单击选择的)的数据,默认到information(信息)选项卡。通过点击“ITbudget(IT预算)”选项卡,系统将按会计年度显示IT预算,包括预算总量、与CRM系统所有者相关联的所花费的数量以及货币。在列表窗格中而不是帐号概况中选择一项将使系统访问外部系统来获得与列表窗格中该特定项相关的数据。该外部系统有可能在远程机器上。因而,可以有独立的系统来存储关于服务事件的信息。通过选择列表窗格中的“PSSincidents(PSS事件)”,系统将访问该外部系统,并且在弹出菜单中或者在细节窗格18中提供数据。在某些实施例中,所提供的信息总是只读的。在其它实施例中,弹出表单是可读写访问的。同样,外部系统可存储销售历史信息,该信息可通过选择列表窗格16中的销售历史项来访问。图4是流程图,描述查看、编辑和创建机会、联系人、活动和/或其它项的过程的一个实施例。在步骤160,选择MyAccounts文件夹,使各个帐号的子文件夹在步骤162展现。在步骤164,通过点击特定文件夹或者单击紧邻于该文件夹的“+”来选择特定帐号之一。在步骤166,展现帐号的每个特征的子文件夹,包括机会、活动和联系人的子文件夹。在其它实施例,可以有CRM系统的其它特征的子文件夹。在步骤168中,选择特征的子文件夹之一。响应于选择该子文件夹,在列表窗格16中显示适当的信息(步骤170)。例如,如果选择Opportunity子文件夹,则列表窗格将显示机会项的列表。如果选择Contacts子文件夹,则列表窗格将显示联系人项的列表。如果选择Activities子文件夹,则列表窗格将显示活动的列表。上面参考选择一个帐号且随后选择该帐号的一个子文件夹的过程描述了步骤160至170。可替换地,在步骤192用户可以选择MyActivities文件夹,MyOpportunities文件夹,MyCRM文件夹。响应于该选择,系统将在列表窗格中显示与当前正在使用系统的用户的别名相关联的所有适当的活动、联系人或者机会。在步骤172,选择列表窗格中的一项。如果通过单击列表窗格中的该项来执行选择,则细节窗格18将在步骤174显示该特定项的细节。如果在步骤172通过双击该项来选择该项,则将在步骤176显示一弹出表单。用户将有机会在步骤178编辑部分或全部数据。在步骤180,在步骤178接收的数据将被存储。另外,在操作图1的GUI时,用户可以选择“MyCRM”菜单并且请求创建一个新的项(活动,联系人,机会等)。响应于步骤190中的该选择,系统将在步骤176提供弹出表单。用户随后将被允许提供数据,该数据将在步骤178中被接收并且在步骤180中被存储。当创建一个新的项时,系统将本地标识(LocalID))分配给这个新的项。该LocalID(本地ID)将由系统用于标识该项,直到将该项与CRM系统同步并且CRM系统提供一个CRM标识(ServerID)。在接收ServerID(服务器ID)之后,该项就由ServerID来标识。在一个实施例中,Opportunities的弹出表单将包括一个“Save”按钮、一个“Close”按钮、一个“ViewinSiebel”按钮和各种选项卡。在一个实施例中,选项卡包括下列OpportunityInformation(机会信息)、Team(团队)、Activities(活动)、Contacts(联系人)、Notes(笔记)、Products(产品),Services(服务)和Partners(合作伙伴)。“OpportunityInformation”选项卡包括下列字段opportunityname(机会名字)、companyname(公司名称)、createddate(创建日期)、salesstage(销售阶段)、duedate(到期日)、opportunitytype(机会类型)、opportunityowner(机会所有者)、status(状态)、currencycode(货币代码)、licensingprogram(许可程序)、licensingsubtype(许多子类型)、表示是否有该客户机的预告的标志、表示这是否是关键交易的标志、closingdate(截止日期)和description(描述)。“Team”选项卡将包括在与该机会相关联的帐号的团队中的人员。“Activities”选项卡将具有与该机会相关联的所有活动的列表。“Contacts”选项卡将具有与该机会相关联的所有联系人的列表。“Notes”可以包括由与该机会相关联的任何用户编写的笔记。“Services”表示与该机会相关联的服务。以及“Partners”表示与涉及该特定机会的CRM的所有者相关联的任何业务合作伙伴。当双击列表窗格中的“Acitivity”时(图4的步骤172),所显示的弹出表单将包括下列字段(除了“Save”按钮,“Close”按钮和“ViewinSiebel”按钮之外)description(描述)、owner(所有者)、type(类型)、category(类别)、purpose(目的)、companyname(公司名称)、contactname(联系人名称)、opportunity(机会)、duedate(到期日)、status(状态)和comments(注释)。在某些实施例中,活动可以与联系人和机会相关联。在这种情况下,在Activities表单中可以有表示所关联的Contacts或者Opportunities的ServerID的字段。当双击列表窗格中的“Contact”项时(步骤172),在步骤176中所显示的弹出表单将包括五个选项卡General(常规)、Details(细节)、Activities(活动)、Certificates(证书)、AllFields(全部字段)。General选项卡将包括下列字段firstname(名)、lastname(姓)、jobtitle(职别)、company(公司)、fileas(文件为)、phonenumbers(电话号码)、address(地址)、e-mailaddress(电子邮件地址)、displayas(显示为)、webpageaddress(网页地址)、instantmessagingaddress(即时消息通信地址)和description(描述)。“Details”选项卡将包括下列字段department(部门)、office(办公室)、profession(职业)、manager′sname(经理名字)、assistant′sname(助理名字)、nickname(绰号)、title(头衔)、suffix(后缀)、spouse′sname(配偶名字)、birthday(生日)、anniversary(周年纪念日)、directoryserver(目录服务器)、e-mailalias(电子邮件别名)和address(地址)。“Activities”选项卡将包括与该联系人相关联的所有活动的列表。“Certificates”选项卡将包括与该联系人相关联的所有证书的列表。“AllFields”选项卡包括用户定义字段的列表。在一个实施例中,这可以包括与CRM系统中数据相关联的用户定义字段,包括department(部门)、用于访问CRM系统中关于该特定人员的URL、以及表示各种属性的各种标志。这些标志中的一些的例子包括该人员是否为关键联系人、填了满意调查表的人员、允许发送电子邮件给该人员、允许给该人员发送定期邮件、允许打电话、允许发传真和其它适当数据的指示。图1还示出名为“Links(链接)”的文件夹。该文件夹包括一组子文件夹。每个子文件夹与一个独立的链接相关联。在这些子文件夹(具有嵌入的URL)的任何一个上单击鼠标将打开一个单独的浏览器窗口并且导航到所嵌入的URL中指定的站点。在一个实施例中,这些链接可以在初始设置过程期间建立。一旦建立了这些链接,用户就可以对所嵌入的URL作出改变。用户也可以对URL列表作出添加。由用户创建的附加链接在同步期间不被更新。在一个实施例中,只预先配置的链接将在同步过程期间被刷新。图5是描述使用这些链接的过程的流程图。在步骤200,用户通过双击“Links”文件夹或者点击紧邻于该文件夹的“+”来选择这个文件夹。在步骤202,响应于在步骤200中选择“Links”文件夹,展现子文件夹。在步骤204,通过单击这些子文件夹之一来选择它。在步骤206,打开一个浏览器窗口。在步骤208,与所选择的文件夹相关联地存储的URL被用于访问该URL的目标。在步骤210,运行目标站点处的应用程序,或者与其交互。例如,目标站点可以包括关于用户、活动、机会、联系人、帐号、CRM系统(例如,Help(帮助))和有关客户关系管理的其它数据的各种信息。图6是描述使用智能客户机内的链接来直接访问CRM系统的过程的一个实施例的流程图。例如,图1示出名为“Seibel4.0”的文件夹。在其它实施例中,可以使用其它名称用于该文件夹。在图6的步骤260,选择该特定的CRM应用程序文件夹(例如,“Siebel4.0”)。在步骤262,打开一个浏览器窗口。在步骤264,与该特定文件夹相关联的URL被用于直接访问CRM系统。通常为用户提供一个登录页面来登录,并且用户可以访问CRM系统的任何可用功能。在某些实施例中,登录信息可以存储在智能客户机中,因此,使用户能够绕过登录页面并且可以自动地登录到CRM系统中。III.组件图7是描述用于实现在此描述的系统的体系结构的一个实施例的框图。图7示出智能客户机300,它实现图1和2的GUI和由图3-6描述的过程。智能客户机300可以用于创建、编辑和删除CRM系统的活动对象、机会对象和联系人对象。这些对象存储在智能客户机上并且与CRM系统同步。关于智能客户机300的更多信息将在下面提供。智能客户机300与网络服务302通信。web服务是离散的代码单元,其每一处理一组不同的任务。通常(但并不总是),web服务基于XML,并且可以跨平台和操作系统调用,无论使用什么编程语言。web服务让应用程序共享数据,并且调用其它应用程序的能力,而不管那些应用程序是如何构建的、它们在什么操作系统或平台上运行、以及使用什么设备来访问它们。尽管web服务可以保持彼此独立,但它们可以将它们自己松散地链接到一个执行特定任务的合作组中。web服务还使开发者有可能在构建其应用程序的所有部分或者消费(使用)由其它人创建的web服务之间进行选择。这意味着一个单独的公司不必提供一个完整的解决方案的每一部分。展示(宣布和提供)web服务的能力为一个特定的实体创建新的收入流。在某些实施例中,在因特网上通过工业标准协议来调用web服务,这些协议包括SOAP;XML;以及通用描述、发现和集成(UDDI)。它们通常可以通过如环球网协会(W3C)等公共标准组织来定义。SOAP是基于XML的、由W3C标准化的消息通信技术,它指定了用于定位web服务、将它们集成到应用程序中以及在它们之间通信的必要规则。UDDI是免费提供的公共注册中心,在这里可以发布和查询web服务。在一个实施例中,web服务302是构建和管理可升级的web服务的魔力公共平台(AlchemyCommonPlatform)(ACP)。在智能客户机300的环境内,ACP提供各种CRMweb服务,它们展示来自后端CRM系统的CRM数据操作。在一个实施例中,当CRM系统是Siebel系统时,Siebel数据和操作通过两组服务来揭示。一组用于检索Siebel对象,而另一组用于创建和修改Siebel对象。它们是读服务310和写服务312。由于性能原因,Siebelweb服务被设计为两个独立的服务。读web服务310直接(通过因特网)与SiebelOLTP数据库320(或者其它数据存储)通信,以保证检索数据的最佳性能。写服务312与Siebel应用程序服务器322通信,以便利用在创建和修改Siebel对象期间调用的所有商业规则。Siebel应用程序服务器322与数据存储320通信。另外,取决于实施例,其它服务314可以用于与其它后端中间件324通信,以从各种数据库(或者其它类型的数据存储)326读写。例如,存在上述各种链接,可以用于访问其它第三方系统。在一个实施例中,智能客户机300通过因特网或者其它类型的网络与web服务302通信。web服务302通过因特网或其它网络解决方案与数据存储、应用程序服务器322和中间件324通信。通信可以通过陆线、无线或者其它合适的技术。另外,通信可以使用TCP/IP或适合于特定应用程序的其它协议来实现。在一个实施例中,包括数据存储320和应用程序服务器322的CRM系统是预先存在的软件系统。在此描述的技术是用于实现与预先存在的web服务302和预先存在的CRM系统交互的智能客户机300。智能客户机300还包括通过与其它后端中间件324和数据库326通信的其它服务314,将来自CRM系统和其它系统的数据集合起来的能力。CRM系统只是可以与智能客户机一起使用的业务线应用程序的一个例子。在此描述的智能客户机可以与CRM系统以外的应用程序一起使用。在一个实施例中,智能客户机300正在本地机器上操作,而CRM系统(包括应用程序服务器322和数据存储320)在远离本地机器的一个或多个不同的机器上。web服务302可以在除智能客户机和CRM系统之外的一个或多个不同机器上运行。在其它实施例中,部分或者全部web服务302可以在与智能客户机或者CRM系统相同的机器上运行。某些实施例将不使用web服务;相反,代理372将直接联系CRM系统(或者其它应用程序)。图8是描述智能客户机300的体系结构的一个实施例的框图。图8描述了与应用程序接口362、web服务302和配置数据存储384通信的智能客户机内插附件360。应用程序接口362与应用程序364(基本应用程序)通信,后者包括应用程序存储366。智能客户机可以用许多不同类型的基本应用程序来实现。在一个实施例中,图8的智能客户机是用合作、消息通信和/或时间应用程序来实现的。这一合作、消息通信和/或时间安排应用程序的一个例子是来自微软公司的Outlook。在这个例子中,存储366是Outlook对象存储。智能客户机也可以用其它合作、消息通信和时间安排系统或者其它类型的系统来实现。另外,执行仅合作、仅消息通信、仅时间安排或者这三者的某种其它组合的应用程序也可以与智能客户机一起使用。智能客户机插件用作软件的最后路程,使用户能够更有效地使用CRM系统。智能客户机内插附件允许Outlook能够用作CRM系统的入口。应用程序接口362提供到应用程序364的接口。例如,应用程序接口可以是软件开发工具包、库、应用程序编程接口(API)或者其它接口。应用程序接口362应该提供对由应用程序364使用的对象和对应用程序364内发生的事件的访问。因而,响应于应用程序364内的事件,应该将这个事件通知给使用应用程序接口362的实体,并且该实体应该能够取得或者设置如数据对象和用户界面对象等对象。在一个实施例中,应用程序接口362是软件开发工具包,它是在Outlook对象模型之上的.NET包装器。应用程序接口362向内插附件360展示对象和事件。智能客户机内插附件360使用应用程序接口362与Outlook通信/接口。应用程序接口362提供创建表单和将表单与数据相关联的能力。使用应用程序接口362的实体可以设置和检索Outlook内的标准和自定义属性、创建/删除/编辑对象、被通知(或俘获)Outlook内的事件、创建/改变/管理用户界面(例如,大小、颜色、字体、标题、按钮、字段等)、创建和改变菜单、创建和改变工具栏、创建和管理文件夹、以及执行Outlook内的其它活动。另外,为提供线程安全性,事件是从主UI线程调用的,并且集合类展示一个同步根(syncroot)。智能客户机内插附件360包括三个主要组件同步管理器370、服务代理372和用户界面(UI)管理器374。服务代理372与web服务302一起工作,以与在服务器端的企业应用程序(例如,CRM系统)通信来设置和取得数据。UI管理器374与应用程序接口362通信,它利用Windows编程模型的标准来定制必要的用户界面对象。在内插附件商业逻辑的上下文中,在适当的时候,UI管理器372还用作导管来俘获通过应用程序接口362展示的所有必要事件来与Outlook对象一起工作。同步管理器370提供如何将由Outlook存储的CRM数据与在CRM系统处的数据同步的逻辑。同步管理器370可以被配置为用于优先级(例如,后台/前台)和时序。同步管理器370与服务代理372、数据类380和配置类382通信。服务代理372和UI管理器374两者也都与配置类382通信。同步管理器370使用服务代理372来访问在CRM系统处(数据存储320)的活动、机会和联系人记录。同步管理器370使用接口管理器374(通过数据类380)来访问存储在数据存储366处并且对应于CRM系统处的数据(例如,活动、机会和联系人记录)的活动、机会和联系人对象。配置类382是一组面向对象的软件类,用于与配置数据存储384通信以管理智能客户机内插附件360的配置数据。同步管理器370、服务代理372和UI管理器374将通过配置类382来读取配置数据384,以便执行在此描述的各种功能。数据类380与UI管理器374、同步管理器370和应用程序接口362通信。在一个实施例中,数据类380用于与在此描述的各种数据项一起工作。在一个实施例中,同步管理器370、服务代理372、数据类380和配置类382都是在一或多个计算设备上操作的软件组件。图8A是描述应用程序接口362的一个示例性实施例的体系结构的框图。图8A示出应用程序364,它包括Outlook应用程序386、命令栏模块387、名字模块388、地址簿模块389和表单模块390。Outlook应用程序386是核心合作、消息通信和时间安排软件应用程序。命令栏模块387是实现工具栏和菜单的代码。名字模块388提供用于访问Outlook应用程序386中的代码的名字列表。全局地址簿389提供用于访问全局地址簿的API。表单模块390包括用于Outlook应用程序386的各种表单的定义。应用程序接口362包括COMAddInShim(COM内插附件填补)模块、加载器模块393、核心模块394和诊断模块395。COMAddInShimf模块392与Outlook应用程序386和加载器模块393通信。在一个实施例中,通信是双向的。在其它实施例中,COMAddInShim模块392从Outlook应用程序386接收信息,并且为加载器模块393提供Outlook应用程序的实例。COMAddInShim模块392通过Outlook应用程序286的API将智能客户机内插附件360加载到存储器中。加载器模块393初始化智能客户机内插附件360、在智能客户机内插附件360的主入口点开始执行、并且向智能客户机内插附件360提供Outlook应用程序的实例。加载器模块393还与核心模块394通信(到核心模块394的通信或者是双向的通信)。核心模块提供与Outlook交互的功能。核心394提供具有方法重载、标准事件和诊断处理的Outlook对象的类;实现具有公共接口(邮件、联系人、任务等)的对象继承链;实现Outlook集合的可绑定数据集合;提供对全局地址簿的访问;以及允许为任何项创建自定义.NET表单和Outlook表单的定制。核心模块394与命令栏模块387、名字模块388、地址簿模块389和表单模块390通信(到它们的通信或者是双向的通信)。应用程序接口对象将所有变化传给本机对象,因而(在某些实施例中)消除了同步需求。自定义枚举器允许通过如MAPIFolder(MAPI文件夹)项等本机集合的枚举。系统被设计成当本机对象不再由应用程序接口对象使用时释放本机对象。本机对象用作散列关键字来保持所有引用应用程序接口对象的引用计数。应用程序接口对象通知高速缓存,它们已经被最终化(或者被处置),来减少计数,并且一旦不再有引用,全局注册表调用一个对象来释放本机对象。本机对象的直接释放,释放了存储器资源并且提高了性能。应用程序接口包装器用可任选的参数实现Outlook对象方法的方法重载,并且用标准样式事件来包装Outlook引发的事件。诊断模块395与核心模块394通信,它提供诊断服务,包括出错报告和异常处理。在一个实施例中,智能客户机(包括智能客户机内插附件360、应用程序接口362和应用程序364)可以使用硬件、软件或者软硬件两者的组合来实现。例如,智能客户机可以在诸如台式计算机、膝上型计算机、移动计算设备或者其它计算设备等计算设备中实现。智能客户机技术不限于任何特定类型的计算设备。用于实现智能客户机内插附件360、应用程序接口362和应用程序364的数据和软件存储在一个或多个处理器可读存储设备上,包括硬盘驱动器、CD-ROM、DVD、光盘、软盘、磁带驱动器、RAM、ROM、闪存或者其它合适的存储设备。在另一实施例中,部分或者全部软件可以由专用硬件来代替,包括自定义集成电路、门阵列、FPGA、PLD和专用处理器。在一个实施例中,实现上述组件的软件用于对一个或多个处理器编程,以实现在此描述的功能/过程。一个或多个处理器可以与一个或多个存储设备(硬盘驱动器、CD-ROM、DVD、光盘、软盘、磁带驱动器、RAM、ROM、闪存或者其它合适的存储设备)、外设(打印机、监示器、键盘、定点设备)和/或通信接口(例如、网卡、无线发射器/接收器等)通信。智能客户机将通过通信接口与CRM系统通信。图9描述用于智能客户机的各种数据类380的类分层结构。BaseCRMObject(基本CRM对象)400是封装跨所有事务对象的公共功能的基类。该公共功能是使用下列字段/属性来实现的CurrentState(当前状态)、IsDirty(是否为脏)、IsShadowed(是否有阴影)、LocalID(本地ID)、ServerID(服务器ID)和ServerTimeStamp(服务器时间标记)。字段CurrentState(当前状态)存储对象的当前状态。该字段/属性将由同步管理器370使用来确定是否需要将对象与服务器同步。该属性可具有四个可能值New(新)、InSync(正在同步)、Updated(已更新)和InEdit(正在编辑)。如果CurrentState值为New,则刚才创建的记录需要与服务器同步。对该记录的后续编辑将不改变该记录的状态。一旦在客户机上创建了记录,它就保持在New状态中,直到将它与服务器同步。当该记录的CurrentState是InSync时,则当前正在将当前记录与服务器同步。当处在这个状态中时,该记录应该是只读的。如果当前的状态是Updated,则记录是最新的并且不需要执行同步。如果当前状态是“InEdit”,则该记录当前正在被编辑,并且此时不应该同步它。字段/属性IsDirty是布尔值,它确定自上次同步起客户机上的记录是否已经被改变。同步管理器370将使用该字段/属性来确定记录是否需要与服务器同步。如果字段/属性IsDirty被置位,则忽略CurrentState字段,并且在下一个同步周期内同步该记录。字段/属性IsShadowed确定记录是否具有阴影副本。智能客户机中的许多项将在Outlook中具有重复的存储。例如,活动可以既出现在一个帐号之下的Acitivity文件夹中,也能出现在“MyActivities”文件夹中,这取决于该活动的所有权。这些项将具有需要在同步和用户编辑期间以特殊方式处理的多个副本。该标志向系统告警要更新该数据的全部副本。或者,系统可以维护数据的一个副本,并且存储指向该数据的多个指针。因而,正在被处理(例如,同步或编辑)的数据项的IsShadowed(是否有阴影)被置位,它将需要确认所有副本被更新。LocalID字段/属性保存由客户机为在客户机上创建的新记录生成的临时本地标识。ServerID是保存由CRM系统使用的记录的标识的串。ServerID是由CRM系统创建的,并且用于唯一地标识每个对象日期。ServerTimeStamp字段/属性保存记录的服务器时间标记。该ServerTimeStamp表示在服务器更新记录的最后日期/时间。BaseCRMObject类400使用下列方法来封装公共功能Edit(编辑)、Update(更新)、Save(保存)和Reset(复位)。Edit方法设置用于在客户机上编辑的对象。如果记录此时不能被编辑,则该方法返回假。这将是记录的同步正由同步管理器370进行时的情况。Update方法适当地更新记录状态,因此将记录标记为用于同步(例如,IsDirty字段置位)。Save方法修改在客户机上创建的新记录的记录状态。Reset方法用于将记录的状态复位到前一日期。这是在用户取消更新或者创建新记录时使用的。BaseCRMPostItem(基本CRM发送项)类410、BaseCRMTaskItem(基本CRM任务项)类412和BaseCRMContactItem(基本CRM联系人项)类414从BaseCRMObject类400继承,并且通过适当地重写基类来实现专用于对象的必要功能。这三个类的主要目的是为从它们导出的实际数据类提供必要的框架。例如,Activity(活动)类424被实现为Outlook任务项,它将从BaseCRMTaskItem类412继承。Account(帐号)类420和Opportunities(机会)类422从BaseCRMPostItem类410继承,因为机会和帐号都被映射到Outlook发送项。最后,Contact(联系人)类426是从BaseCRMContactItem414导出的。在类分层结构中引入这一层,允许在将来创建在适当位置具有必要的框架的其它事务类。这些类在内部聚合对应的Outlook项,并且提供在运行时将Outlook项粘附和解除粘附到数据类对象的方法。BaseCRMObject400、BaseCRMPostItem410、BaseCRMTaskItem412、BaseCRMContactItem414、Account420、Opportunity422、Acitivity424和Contact类426都在智能客户机内插附件名字空间450中。Account类420和Opportunity类422聚合Post(发送)类430。Acitivity类424聚合Task(任务)类432。Contacts类426聚合Contact(联系人)类434。Post类430、Task类和Contact类434都在Outlook名字空间452中。Post类430用于创建将帐号和机会记录存储在Outlook对象数据存储366中的对象。Task类432用于创建将活动记录存储在Outlook数据存储366中的对象。Contact类434用于创建将联系人信息存储在Outlook对象数据存储中的对象。这些对象的主要数据字段是使用Outlook数据对象中的自定义属性来实现的。即,对于CRM系统对象(例如,Account、Opportunity、Acitivity和Contact)中的每个字段,在Outlook对象中创建自定义属性(例如,Post430,Task432和Contacts434)。与这些项相关联的数据集也被存储为自定义属性;然而,在这种情况下,所有数据被序列化为XML串,并且随后存储在自定义属性中。例如,IT预算信息被序列化为XML串。在一个实施例中,可用于Account对象的一组字段(例如,Post对象430中的自定义字段)包括地址1(address1)、地址2(address2)、地址3(address3)、城市(city)、州(state)、邮政编码(ZIPcode)、国家(country)、站点(site)、名字(name)、子地区(subdistrict)、子段(sub-segment)、起源层(parentinglevel)、父组织(parentorganization)、父站点(parentsite)、子公司(subsidiary)、销售区域(salesregion)、销售地区(salesdistrict)、垂直工业(verticalindustry)、类别(category)、电话(phone)、传真(fax)、网站(website)、帐号团队(accountteam)、销售ID(salesID)、年收入(annualrevenue)和IT预算(ITbudget)。也可包括其它字段,包括上面相对于用户界面以及创建/编辑/查看帐号数据所讨论的任何字段。在一个实施例中,Opportunity对象的字段(例如,Post对象430中的自定义字段)包括机会名字(opportunityname)、公司名字(companyname)、描述(description)、销售阶段(salesstage)、到期日(duedate)、状态(status)、货币代码(currencycode)、许可程序(licensingprogram)、许可子类型(licensingsubtype)、团队领导(teamleader)、预报标志(forecastflag)、关键交易标志(criticaldealflag)、关闭日期(closingdate)以及创建日期(createdate)。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看机会数据所讨论的任何字段。在一个实施例中,Acitivity对象的字段(例如,Task对象432中的自定义字段)包括描述(description)、所有者(owner)、类型(type)、类别(category)、目的(purpose)、到期日(duedate)、联系人名字(contactname)、公司名字(companyname)、帐号所有者(accountowner)、状态(status)和注释(comments)。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看活动数据所讨论的任何字段。Contact对象(例如,Contact对象434中的自定义对象)可以包括前缀(prefix)、名(firstname)、姓(lastname)、头衔(title)、职位角色(jobrole)、部门(department)、电子邮件(e-mail)、电话号码(telephonenumber)、移动电话号码(mobilephonenumber)、传真(fax)、关键联系人(keycontact)、公司名字(companyname)、客户满意调查标志(customersatisfactionsurveyflag)、工作地址(workaddress)以及表示是否允许邮件、电子邮件、传真和电话呼叫的指示。也可以包括其它字段,包括上面相对于用户界面以及创建/编辑/查看联系人数据所讨论的任何字段。本发明不限于任何特定的字段集合。各种实施例可以使用不同的字段集合,只要适合于特定的实现。还有一个Domain(域)类442,它在智能客户机内插附件名字空间内。该Domain类用于存储域信息。在一个实施例中,域信息可以包括配置信息和用户不能改变的系统信息。系统信息的例子可以包括关于链接的信息、关于不能改变的帐号的信息、关于用户界面的信息和关于各种菜单的信息等等。Domain类442扩展了Object(对象)类444,后者在.NET框架内的名字空间454中。IV.转换数据提高生产力的一个特征是允许CRM(或者其它应用程序)平台与智能客户机平台(例如,合作、消息通信和时间安排应用程序平台—Outlook平台)之间的转换。例如,能够将CRM数据项转换成Outlook数据项和/或将Outlook数据项转换成CRM数据项是有用的。图10是描述将数据项从Outlook转换成CRM系统(例如SiebelCRM系统)的过程的一个实施例的流程图。在步骤502,用户请求将一个特定的数据项从Outlook数据项转换成CRM数据项。在一个实施例中,用户将从顶层菜单10的“MyCRM”下拉菜单中选择“converttoCRM(转换成CRM)”。这个请求将用于列表窗格中选中的当前数据对象。或者,当用户打开一个对象(例如,通过双击列表窗格16中的对象),可以有下拉菜单项、按钮、语音识别工具或者其它用户界面项,以选择让特定的Outlook对象转换成特定的CRM应用程序对象。用户界面项将提供按照系统允许的可能性来选择要创建的CRM对象类型的能力。在选择了应该要转换成CRM数据项的Outlook项之后,提供选取列表菜单来将该项与帐号相关联。将提供可能帐号的列表。用户可以选择帐号来与新CRM数据项相关联。在步骤504,创建Outlook名字空间452中的CRM对象。因而,如果CRM对象是联系人,则创建Contact对象434。如果要创建的CRM对象是活动对象,则创建Task对象432。如果CRM对象是帐号对象或者机会对象,则创建Post对象430。在步骤506,从Outlook对象访问Outlook对象中的相关数据。在某些实施例中,不是所有的数据将被转换成CRM对象。一组规则将定义哪些数据应该或者不应该被转换,如下面将讨论的。在步骤508,将在步骤506中访问的数据自动地填充到在步骤504中创建的新CRM对象中的各种字段中。在步骤510,附加的默认数据被自动添加到新CRM对象。注意,在某些实施例中,步骤510可以在步骤508和/或在步骤506之前执行。默认数据可以基于用户别名来选择。即,当用户通过提供凭证(用户名/别名和密码)登录到计算机时,系统知道用户是谁。基于用户的身份,系统可以确定某个默认数据。在步骤512,将呈现具有来自新创建的CRM对象的数据的弹出表单(与上面针对行动、机会和联系人所述的弹出表单相似)。在步骤514,用户将有一个编辑该数据的机会。在步骤516,响应于用户请求保存该数据,在步骤516中将新对象保存在Outlook数据存储中。在步骤518中,将Outlook数据存储与CRM数据存储同步,因此新创建的对象(基于从Outlook对象的转换)被存储在CRM系统中。注意,同步可立即发生,或者在以后的时间发生(例如,在一个已调度的同步时间)。图11是描述将CRM对象转换成Outlook对象的过程的一个实施例的流程图。例如,用户想将CRM系统中的联系人添加到用户的Outlook联系人中。要这么做,将执行图11的过程。在图11的步骤542,用户请求将当前的CRM对象转换成Outlook项。例如,用户可选择列表窗格16中的CRM对象。用户可以从“MyCRM”顶层菜单510中的下拉菜单选择转换成Outlook的选项。另外,如果用户正在访问弹出表单,则该弹出表单可包括转换成Outlook的下拉菜单、按钮或其它用户界面项。该用户界面项将按照所允许的可能性,提供关于要转换成哪种类型的Outlook项的选择。在步骤544,响应于步骤542中的请求,将创建一个新的Outlook对象。所创建的Outlook对象将是用于Outlook软件应用程序的标准Outlook对象,并且存储在Outlook数据存储366中。在步骤546,将访问要转换的相关数据。注意,并非所有来自CRM系统对象的数据将被转换成Outlook。将预先定义要转换哪些特定的字段,如下面所解释的。在步骤546,访问那些预先定义的字段。在步骤548,在步骤546中访问的那些字段被自动地填充到Outlook对象的适当字段中。在步骤550,将默认的数据自动地添加到Outlook对象。在某些实施例中,部分或全部默认数据可以基于用户别名、CRM中的对象所相关的帐号、或者其它准则。在步骤552,新创建的Outlook的日期在可编辑表单中显示。在步骤554,向用户提供编辑新创建的Outlook对象中的数据的能力。在步骤556,用户可以保存新的Outlook项,它将使GUI更新。在一个实施例中,CRM机会可以被转换成Outlook日历约会。Outlook电子邮件和Outlook日历约会都可以被转换成CRM机会。CRM活动可以被转换成Outlook日历约会或Outlook任务。Outlook日历约会和Outlook任务都可以被转换成CRM活动。CRM联系人可以被转换成Outlook联系人。Outlook联系人、Outlook电子邮件消息和Outlook日历约会可以被转换成CRM联系人。这些转换的每一个将在下面更详细地讨论。注意,执行比上面所列的转换更少的转换或者执行附加/不同的转换的系统也在本发明的范围内。当将Outlook日历约会转换成CRM机会时,下面的字段基于从Outlook对象读取(步骤506)被自动地填充到新的CRM机会对象(步骤508)。首先,约会的主题行被存储在机会对象的机会名字字段中。其次,Outlook约会的文本或者描述字段被存储在机会对象的机会描述字段中。第三,将操作Outlook系统的用户的用户别名添加到CRM机会对象的机会所有者字段。另外,下面的字段接收默认的数据(步骤510)类型、状态、销售阶段、货币代码、机会团队主记录和机会团队“活动”标志。用串“standard(标准)”来加载类型字段。状态字段被加载为活动的。销售阶段被选择为“期望(prospect)0%”。货币代码被设置为美元。机会团队主记录包括用户别名。机会团队活动标记设置为True(真)。另外,在某些实施例中,向用户提供一个对话框,其中将新创建的机会与该用户的现有帐号相关联。当Outlook中的电子邮件项被转换成CRM系统中的机会对象时,电子邮件主题行变成机会名字,电子邮件文本变成机会描述,而Outlook别名变成机会所有者。另外,类型、销售阶段、货币代码、机会团队主记录和机会团队“活动”标志被设置为如上相对于日历约会所述的默认数据。当CRM机会项被转换成Outlook日历约会时,机会名字被加载到约会的主题字段中,将机会描述加载到约会的描述或者文本字段中,并且将机会到期日加载到日历约会的开始时间日期和结束时间日期。另外,将Outlook对象中的整天事件(all-day-event)标志置位,来表示一个整天事件。当将CRM活动转换成Outlook日历约会时,活动描述字段被映射到Outlook主题字段,活动到期日被映射到日历约会日期,以及活动注释被映射到日历约会文本。当将CRM活动转换成Outlook任务时,活动描述被映射到Outlook任务主题字段,活动到期日被映射到任务到期日,以及活动注释字段被映射到任务文本。当将Outlook日历约会转换成新的CRM活动时,日历约会的主题行被映射到活动描述,日历约会日期被映射到活动到期日,日历约会文本被映射到活动注释字段,且操作Outlook的用户的别名被映射到活动所有者字段。另外,活动类型字段默认为“会议(meeting)”。当Outlook电子邮件项被转换成CRM活动时,电子邮件主题行被映射到活动描述字段,电子邮件文本被映射到活动注释字段,且电子邮件用户的Outlook别名被映射到活动所有者。当将Outlook任务转换成CRM活动时,任务主题字段被映射到活动描述字段,任务到期日字段被映射到活动到期日字段,文本被映射到活动注释,且Outlook别名被映射到活动所有者。当从Outlook日历约会转换到CRM联系人时,日历约会的标题被映射到CRM联系人的前缀,Outlook约会的发自(姓)字段被映射到CRM联系人的姓,Outlook约会的发自(名)字段被映射到CRM联系人的名,发送者的电子邮件地址被映射到CRM联系人的主要电子邮件,且Outlook别名被映射到CRM联系人对象的联系人团队主字段。另外,CRM联系人的关键联系人字段默认为“是(Yes)”。当从Outlook电子邮件转换到CRM联系人时,电子邮件的标题被映射到联系人的前缀,发自字段(姓)被映射到联系人的姓,发自字段(名)被映射到联系人的名,发送者的电子邮件地址被映射到联系人的主要电子邮件地址,且Outlook别名被映射到联系人团队主名字。另外,关键联系人字段被设置为“是(Yes)”值。当在Outlook联系人与CRM联系人之间转换时,应用下列映射Outlook联系人中的标题被映射到CRM联系人的前缀,Outlook联系人的姓被映射到CRM联系人的姓,Outlook联系人中的名被映射到CRM联系人对象中的名,Outlook联系人的电子邮件地址被映射到CRM联系人的主要电子邮件地址,Outlook联系人的业务电话被映射到CRM联系人的电话号码字段,Outlook用户的用户别名被映射到CRM联系人的联系人团队主字段,Outlook联系人的移动电话字段被映射到CRM联系人的移动电话字段,且Outlook联系人的传真字段被映射到CRM联系人的传真字段。当创建CRM联系人时,关键联系人字段默认为“是(Yes)”。另外,如果子公司为空(基于用户的帐号选择),则该数据默认地可以被自动填充。注意,在一个实施例中,所有被转换成CRM对象的Outlook对象是智能地加标签的。即,当Outlook电子邮件、日历约会、联系人和任务已经被转换成带有表示“该Outlook项按照下列别名被转换成在下列日期的Siebel记录”的消息的Siebel记录之后,智能客户机内插附件将一个智能标签(例如,描述字段中的自定义字段或文本)添加到它们之上。在一个实施例中,智能标签将标识Siebel记录的ServerID。类似地,智能标签可被添加到从Siebel记录创建的Outlook项。智能标签可以包括Siebel记录的ServerID。V.同步智能客户机可以与多个系统同步,以便将来自各种系统的数据集合起来并更新它们。同步管理器370负责Outlook存储366与CRM系统(以及其它系统)之间使用代理372(通过web服务302通信)的该同步过程。同步管理器370将作为已定义时间表上一个独立的工作者线程运行。时间表将在智能客户机内插附件360启动时从配置文件(存储在配置数据存储384中)中检索。对于不同类型的数据可以有不同的时间表。例如,事务CRM数据的时间表可以要求比域数据的时间表更频繁的同步。同步管理器370也将支持按需同步,这意味着用户通过用户界面可以请求同步周期立即执行。例如,用户可以从下拉菜单10选择“MyCRM”,以选择立即执行同步过程。用户也可以使用下拉菜单来改变配置数据并且强迫新的配置数据与一个不同的同步时间表一起加载。在一个实施例中,同步配置信息包括至少三个数据项domainfrequency(域频率)、transactionfrequency(事务频率)、和syncofflinefrequency(同步离线频率)。domainfrequency是以分钟为单位的时间,在上次同步之后经过这个时间需要同步域数据。transactionfrequency是以分钟为单位的时间,在上次同步之后经过这个时间需要同步事务数据。syncofflinefrequency是以分钟为单位的时间,在经过这个时间之后同步线程唤醒以确定Outlook的在线/离线状态。在一个实施例中,智能客户机内插附件的配置将使用XML文件来注入。下面是一个示例配置文件<?xmlversion=″1.0″encoding=″utf-8″?><CEConfig><Agent><SWSServerName>ju24nm</SWSServerName><SecureHttp>0</SecureHttp><AccountReadUrl>/SiebelRead/Account.asmx</AccountReadUrl><AccountWriteUrl>/SiebelWrite/Account/AccountWrite.asmx</AccountWriteUrl><DomainReadUrl>/siebelread/Domain.asmx</DomainReadUrl></Agent><!--频率值将以分钟为单位,例如10分钟、120分钟、2小时--><SyncFrequency><DomainFrequency>120</DomainFrequency><TransactionFrequency>5</TransactionFrequency><SyncOfflineFrequency>1</SyncOfflineFrequency><LastServerSyncSchedule>2004-01-14T11:45:39.0000000-08:00</LastServerSyncSchedule></SyncFrequency><LocalData><DomainData><Products>Domain/Products.xml</Products><Services>Domain/Services.xml</Services>…</DomainData></LocalData></CEConfig>在上面的XML代码中,<Agent>(代理)部分将包含代理组件所要求的配置项。这包括Siebelweb服务的服务器名字和到各种Siebelweb服务的相对URL端点。<SyncFrequency>(同步频率)部分将包含与配置信息有关的同步时间表。<localdata>(本地数据)部分将联系与客户机器中本地存储有关的配置项,如通道(pass-through)域文件。在某些实施例中,帐号数据的同步是预设的(例如30天)。在其它实施例中,配置文件将包括用于设置帐号数据的同步周期的条目。同步管理器将检查上述文件来确定执行同步的各种时间。鉴于该配置信息,同步管理器370将执行同步循环。在一个实施例中,同步循环被定义为执行一个向上同步操作,随后是向下同步操作。向上同步操作是将对智能客户机上的CRM数据所做的改变和/或添加与服务器同步的过程。向下同步操作是从服务器检索经更新和新的记录并且更新这些记录的智能客户机副本的过程。图12是描述用于执行同步循环的过程的一个实施例的流程图。在步骤580,同步线程启动/唤醒。在步骤582,同步线程确定Outlook是否在线。如果Outlook没有在线,则同步线程在步骤584回到睡眠。如果Outlook在线,则同步线程确定web服务302是否可用。这是使用代理372来完成的。如果web服务不可用,则同步线程在步骤584回到睡眠。如果web服务可用,则在步骤588确定域数据是否需要同步。域数据是用户一般不会改变的系统数据。在一个实施例中,域数据每30天同步一次。在其它实施例中,可以使用其它时间周期。如果域数据要同步,则在步骤590同步该域数据。在步骤592,同步帐号数据。帐号数据是关于各种帐号的每一个的信息,并且用户一般不会改变帐号数据。如果在步骤588确定不需要同步域数据,则过程在步骤592继续同步需要同步的的帐号数据(如果这是同步帐号数据的时间)而不同步域数据。在同步帐号数据之后,在步骤594同步需要同步的事务数据(如果这是同步事务数据的时间)。事务数据是关于联系人、机会和活动的可变数据,它们一般可以由用户改变。在步骤596,确定同步线程应该睡眠多少时间。这基于上述配置信息。在步骤598,系统存储为事务数据、帐号数据和/或域数据进行最后一次同步的时间。随后,在步骤584,同步线程进入睡眠。某些帐号数据可能是只读的。图13和14是描述同步域数据(图12的步骤590)的更多细节的流程图。图13和14的过程是独立的线程,它们可以串行地或者并发地运行。在图13的步骤620,确定是否存在更多域数据要处理。当首次运行该步骤时,有可能有域数据。当处理了所有域数据时,图13的方法完成。如果还有更多的域数据要处理,则在步骤622访问下一个域数据文件。在一个实施例中,域数据存储在域数据文件中。通常,系统将具有一个域数据文件列表以供查找。在步骤624,如果系统查找的特定文件存在,则确定域数据是否需要同步。如果域数据不要同步,则过程循环回到步骤620。如果域数据需要同步,则在步骤628将特定文件标记为用于同步,并且过程随后循环回到步骤620。如果在步骤624确定文件不存在,则将文件标记为用于同步。通常,通过域数据同步,存储在CRM服务器上的域数据被写到智能客户机。没有从智能客户机到服务器的向上同步。因而,如果文件不存在,则文件必须从服务器中检索。如果文件太旧并且需要同步,则该文件由仍在服务器上的当前文件覆写。图14的过程包括从服务器检索数据的步骤。系统循环通过需要同步的所有域数据文件。在步骤650中访问一个数据文件。在步骤652从服务器检索该数据文件的新域数据。在步骤654将检索到的域数据存储在所访问的文件中。如果没有更多文件要考虑,则图14的过程完成。如果有更多的文件要考虑,则过程循环返回到650,使得其它数据可以被检索。图15,16和17提供同步帐号数据过程(图12的步骤592)的更多细节。图15提供同步帐号数据的整个过程。图16描述删除旧帐号文件夹的过程。图17提供关于从其它应用程序访问数据过程的细节。在一个实施例中,图15,16和17的每个过程是并发或者顺序地运行的独立线程。在某些实施例中,这些线程可以彼此相互依赖。在图15的步骤670,同步管理器370向代理372作出从CRM应用程序获得帐号数据的请求。同步管理器370具有一个帐号列表。这称为帐号列表。对于帐号列表上的每个帐号,对web服务302作出获得该帐号的帐号数据的请求。在步骤672,从web服务302检索帐号数据。另外,自从上次同步起在服务器上创建的任何新帐号被发送回同步管理器370。在步骤674,将呈现一个对话框(也称为选取列表),它带有其中有数据的所有帐号的列表。这将包括先前由用户选取的帐号、新帐号以及过去用户没有选择过的帐号。用户随后可以选择从帐号列表中添加或者减去智能客户机将对其跟踪记录的帐号。在用户选择要处理的帐号之后,相应地更新帐号列表。在后面的步骤中将更新这些帐号每一个的数据,并且将更新图1的GUI上的文件夹。在步骤676,确定是否还有更多的帐号需要处理。如果这是第一次执行步骤676,则会有帐号要处理。如果没有更多的帐号要处理,则图15的方法完成。如果有更多的帐号要处理,则在步骤678访问下一个帐号。在步骤680,系统确定在“MyAccounts”文件夹之下是否存在子文件夹。如果存在,则在步骤684将新帐号数据存储在适当的文件夹中。如果不存在,则在步骤682创建适当的文件夹并且在步骤684存储帐号数据。在一个实施例中,在步骤682中创建的适当文件夹包括帐号文件夹,以及活动、机会和联系人的子文件夹。在步骤684中,过程循环返回到步骤676,以确定是否还有更多的帐号(即用户在步骤674所选择的帐号)还没有被处理过。如果有,则过程继续步骤678。否则,图15的方法完成。考虑图16的过程,在步骤690,线程确定是否有更多的帐号文件夹需要用该方法来处理。即,线程查看“MyAccounts”文件夹下的每个帐号文件夹。如果所有帐号文件夹都已被处理了,则图16的方法完成。如果还有要处理的帐号文件夹,则在步骤692访问下一个要处理的帐号文件夹。线程确定该帐号文件夹是否对应于在帐号列表中存在的帐号。记住,用户能够在步骤674调整帐号列表。如果帐号文件夹存在于帐号列表中,则系统循环回到步骤690。如果在帐号列表中没有帐号,则帐号文件夹(例如,帐号文件夹和联系人、机会和活动的子文件夹)在步骤696中被删除。在步骤696之后,方法循环回到步骤690。图17描述从除CRM软件系统以外的应用程序获得数据的过程的流程图。例如,在一个实施例中,如果用户选择帐号列表窗格中除AccountProfile(帐号概况)之外的项,则系统将显示来自除CRM系统以外的另一个外部系统的信息。图17的过程描述如何同步该数据。在一个实施例中,通过从外部应用程序获得最新的数据并且使用该数据来覆写存储在客户机端的任何数据来同步该数据。在步骤706,对于每个帐号,同步管理器370将发送向web服务302发送从特定的应用程序获得数据的请求。在步骤708,将从web服务302检索回数据。在步骤710,将该数据存储在智能客户机上。其它应用程序的例子包括服务事件应用程序,它存储和跟踪公司以及跟踪销售历史的应用程序的服务事件。在一个实施例中,作为使用web服务的替代,同步管理器(通过代理372)可以直接联系外部应用程序。图18-21提供同步事务数据的过程(图12的步骤594)的更多细节。图18描述向上同步过程。图19描述向下同步过程。图20描述在CRM应用程序的服务器上执行的过程。图21提供为活动执行的特殊步骤的细节。在图18的步骤750,系统确定是否有更多的数据项要处理。数据项可以是任何帐号的任何事务项。例如,数据项可以是活动、机会或联系人。当没有更多的项要处理(所有要同步的项已经被同步)时,图18的过程随后完成。如果有更多的项要处理,则在步骤752,系统访问下一个数据项。在步骤754,系统将查看所访问对象的IsDirty字段来确定数据是否为脏。如果数据不为脏并且不是新的,则它不需要同步并且过程循环到750。如果数据为脏或者它是新的(CurrentState=New),则该数据项需要同步。在步骤756,锁定数据项,不能编辑它。在步骤758,将数据项更新到服务器。即,将数据项通过代理372和web服务302发送到服务器。在步骤760,线程从代理(通过web服务302)接收回是否有冲突的指示。是否有冲突的判定是由服务器(CRM软件系统)执行的,并且从服务器送回到web服务302。如果没有冲突,则智能客户机将向服务器请求该同步的时间标记。服务器将发送一个时间标记,并且它将由智能客户机在步骤762接收。如果要同步的数据项是新的数据项,则在步骤704向服务器请求ServerID并且接收它。该ServerID将被存储在对象中。在接收ServerID之前,智能客户机将通过LocalID来引用对象。在接收ServerID之后,智能客户机将用ServerID来引用对象。在步骤766,解锁数据项并且过程循环回到步骤750,使得下一个数据项可以被处理。如果在步骤760确定有冲突,则在步骤770将数据项移动到错误文件夹。回头看图1,在导航窗格中有一个标记为“System(系统)”的文件夹。在该系统文件夹之下是一组错误文件夹。数据项的副本将被存储在错误文件夹之一中以供用户查看。在步骤772,线程将向服务器请求和从服务器接收该数据项。该数据项将与数据项中的ServerID和时间标记一起来到。在步骤774,从服务器接收的数据项通过替换客户机上的数据项而被更新。在步骤776,解锁数据项。在步骤778,通知用户,数据已被改变并且存在冲突。在一个例子中,向用户发送电子邮件。在步骤778之后,过程循环回到步骤750,使得下一个数据项可以被访问。图19提供向下同步过程的更多细节。在图19的步骤800,同步管理器将请求和接收自从上次同步起在服务器上已经更新过或者创建的事务项的列表。如果在列表中有更多的项要考虑,则在步骤804,将访问下一个数据项。在步骤806,智能客户机中的数据项将被锁定。在步骤808,同步管理器将在服务器检索该项的数据并且用该新数据更新智能客户机上的项。如果这是新的数据项,则在步骤808,在智能客户机上创建该项。在步骤810,解锁数据项并且过程循环回到步骤802,以确定是否还有更多的数据项要处理。当所有数据项都被处理时,图19的方法完成。在一个实施例中,先执行向上同步过程,再执行向下同步过程。在其它实施例中,这两个过程可以重叠或者以其它时序来执行。图20是描述在服务器端执行的过程的一个实施例的流程图。在步骤830,要更新的记录由CRM应用程序服务器接收。在步骤832,确定记录是新记录还是现有的记录。如果是新记录,则服务器将步骤834生成一个新ServerID,并且在步骤836生成一个时间标记。在步骤838存储该新记录以及时间标记和ServerID。在稍后的时间(如由虚线表示的),响应于步骤762和764,在步骤840,服务器将发送新的ServerID和时间标记。如果在步骤830接收的记录是现有记录,则在步骤852,比较所接收记录与现有记录的时间标记。如果时间标记相匹配(例如,它们相同),则在步骤854基于从智能客户机接收的数据更新服务器上的记录。在步骤856,在服务器上更新该记录的时间标记。在稍后的时间(如由虚线表示的),响应于步骤762,服务器将在步骤858将更新的时间标记发送给智能客户机。如果时间标记不相匹配(步骤852),则在步骤860拒绝更新,并且从智能客户机接收的记录将不用于更新服务器上相应记录。稍后(如由虚线表示的),在步骤862,响应于来自客户机的请求(例如,图18的步骤772),服务器将它的记录的副本发送到客户机。如可以看到的,智能客户机不改变时间标记。时间标记表示服务器更新其记录的最后时间。因而,如果服务器上的时间标记比智能客户机上的时间标记晚,则服务器具有比客户机更新近的数据。如果服务器上的时间标记与客户机上的时间标记相匹配,则客户机上的数据与服务器上的相同,或者客户机上数据比服务器上的更新。如果客户机上的数据与服务器相同,则数据不是脏的,并且不用被发送以供同步。因而,从客户机接收的具有与服务器相同的时间标记的任何数据被假定为是需要在服务器上更新的已更新数据。如果从客户机发送的用于同步的记录对应于服务器上也已经被更新过的记录,则存在冲突,并且不更新服务器上的记录。相反,服务器上的记录用于覆写智能客户机上的记录。图21包括描述对有关活动与联系人之间的关联和/或活动与机会之间的关联的活动所执行的附加步骤。在一个实施例中,图21的过程可以作为图18的步骤758的一部分来执行。在某些(但非全部)情况下,在图21的过程开始之前,创建(并存储)一个新活动,并且创建(并存储)一个新机会或者联系人。通过将新机会或者联系人的LocalID存储在新活动的对象中,将新机会或联系人与新活动相关联。在图21的步骤900,确定活动数据项是否为新的。如果否,则在步骤902如上所述地更新活动项。如果是新的,则在更新该活动之前可执行各种步骤906-926。在步骤906,确定活动是否与一个机会相关联。如果否,则确定活动是否与任何联系人相关联。如果不与活动或者联系人相关联,则如上所述地更新该活动。如果活动与机会相关联(步骤906),则在步骤908确定该机会是否是新的。如果该机会是新的,则在步骤910同步该机会。作为同步过程的一部分,将接收和存储该机会的ServerID。在活动对象中,用在机会对象的同步期间接收的机会对象的ServerID来更新用于标识机会的ServerID字段(步骤912)。在步骤912之后,过程在步骤920继续,其中确定特定的活动是否与联系人相关联。如果它与联系人相关联,则在步骤922确定联系人是否为新的。如果联系人不是新的,则在步骤902更新活动。如果联系人是新的,则在步骤924同步该联系人。作为同步过程的一部分,将接收和存储该联系人的ServerID。在活动对象中,用在联系人对象的同步期间接收的联系人对象的ServerID来更新的用于标识联系人的ServerID(步骤926)。在步骤926之后,随后在步骤902更新活动(使用机会和联系人的ServerID)。图22示出描述用于安装智能客户机内插附件360的过程的流程图。在步骤950,在客户机器上安装软件。在步骤952,启动Outlook应用程序。在步骤954,同步管理器370(通过代理372和web服务302)通过实时查询从CRM软件的MyAccounts视图取来所有帐号,来获得与特定别名相关联的帐号列表。在步骤956,在帐号选择表单(例如,选取列表)中显示帐号列表。用户随后可以从该选择表单中选择或者取消选择各种帐号。接收那些选择并储存为帐号列表(步骤958)。在步骤960,执行同步过程。由于这是第一次执行同步,因此有可能在智能客户机上没有事务数据;因此,数据是从客户机向下同步的。在安装和初始同步之后,用户随后可以执行上述任何功能。如果用户从顶层菜单10选择“MyCRM”并且用户选择改变帐号选择表单(步骤970),则在步骤956将向用户提供帐号选择表单。在用户作出选择或者取消选择各种帐号之后,在步骤958将更新新的帐号列表。系统随后将在步骤916中在存储新的帐号列表之后立即同步,或者可以按照基于配置数据的时间表稍后执行同步。已经为了说明和描述的目的提供了本发明的上述详细描述。其目的不是要穷举本发明或者将本发明限制在所揭示的精确形式中。鉴于上面的教导,许多修改和变体是可能的。选择所描述的实施例以便最佳地解释本发明的原理及其实践应用程序,从而使本领域的其它技术人员能够最好地使用各种实施例中的本发明,并且在适合于构想的特定用途时可以使用本发明的各种修改方案。本发明的范围是由所附的权利要求书定义的。权利要求1.一个或多个处理器可读存储设备,所述设备具有包含在所述一个或多个处理器可读存储设备上的处理器可读代码,所述处理器可读代码用于对一个或多个处理器编程,所述处理器可读代码包括一接口管理器,所述接口管理器访问一数据存储中的项;一与远程应用程序通信的通信代理;以及一与所述接口管理器和所述通信代理通信的同步管理器,所述同步管理器通过与所述接口管理器通信来访问所述数据存储中的数据,并与所述通信代理通信以访问所述应用程序处的对应数据,将所述数据存储中的所述数据与所述应用程序处的所述对应数据同步。2.根据权利要求1所述的一个或多个处理器可读存储设备,其特征在于,所述处理器可读代码还包括与配置数据存储、所述接口管理器、所述通信代理和所述同步管理器通信的配置代码。3.根据权利要求1所述的一个或多个处理器可读存储设备,其特征在于,所述通信代理使用web服务与所述远程应用程序通信。4.根据权利要求1所述的一个或多个处理器可读存储设备,其特征在于,所述接口管理器与一消息通信和时间安排系统通信;所述数据存储中的所述数据包括对象;所述数据存储是所述消息通信和时间安排系统的一部分;以及所述应用程序处的所述对应数据包括一CRM系统的对应对象。5.根据权利要求4所述的一个或多个处理器可读存储设备,其特征在于,包括所述数据存储的所述消息通信和时间安排系统在主存所述接口管理器的本地机上。6.根据权利要求4所述的一个或多个处理器可读存储设备,其特征在于,包括所述数据存储、系统的所述消息通信和时间安排系统在不同于主存所述接口管理器的本地机器的服务器上。7.根据权利要求1所述的一个或多个处理器可读存储设备,其特征在于所述接口管理器与一消息通信和时间安排系统通信;以及所述数据存储与所述消息通信和时间安排系统相关联。8.根据权利要求1所述的一个或多个处理器可读存储设备,其特征在于所述接口管理器与一消息通信和时间安排系统通信;所述数据存储中的所述数据包括对象;所述数据存储是所述消息通信和时间安排系统的一部分;存储在所述数据存储中的所述对象是从所述消息通信和时间安排系统的名字空间内的类实例化的;以及所述消息通信和时间安排系统的所述名字空间内的所述类从所述接口管理器的名字空间内的类继承。9.一种智能客户机,包括一基本应用程序;一接口管理器,所述接口管理器访问所述基本应用程序的项;一与远程应用程序通信的通信代理;以及一与所述接口管理器和所述通信代理通信的同步管理器,所述同步管理器通过与所述接口管理器通信以访问所述基本应用程序的数据,并与所述通信代理通信以访问所述远程应用程序上的对应数据,将所述基本应用程序的所述数据与所述远程应用程序处的所述对应数据同步。10.根据权利要求9所述的智能客户机,其特征在于所述通信代理使用web服务与所述远程应用程序通信。11.根据权利要求9所述的智能客户机,其特征在于所述基本应用程序是消息通信和时间安排系统;以及所述远程应用程序是CRM系统。12.根据权利要求11所述的智能客户机,其特征在于所述基本应用程序的所述数据包括存储在所述消息通信和时间安排系统的数据存储中的对象;存储在所述消息通信和时间安排系统的所述数据存储中的所述对象是从所述消息通信和时间安排系统的名字空间内的类实例化的;以及所述消息通信和时间安排系统的名字空间内的所述类从所述接口管理器的名字空间内的类继承。13.根据权利要求11所述的智能客户机,其特征在于所述远程应用程序包括活动和联系人项;所述消息通信和时间安排系统包括对应于所述活动和联系入项的项;以及所述消息通信和时间安排系统包括具有用于对应于所述活动和联系任项的项的文件夹的图形用户界面。14.根据权利要求9所述的智能客户机,其特征在于所述通信代理使用web服务与所述远程应用程序通信;所述基本应用程序、所述接口管理器、所述通信代理和所述同步管理器在本地机器上;所述远程应用程序在远程机器上;以及所述web服务的至少一部分在不同于所述本地机器和所述远程机器的机器上。15.一种用于使用智能客户机与应用程序交互的方法,包括使用代理与所述应用程序通信;使用接口管理器与智能客户机数据存储通信;以及使用同步管理器在所述智能客户机数据存储与所述应用程序之间同步数据,所述同步管理器使用所述接口管理器访问来自所述智能客户机数据存储的所述数据,并且所述同步管理器使用所述代理访问所述应用程序。16.根据权利要求15所述的方法,其特征在于使用代理与所述应用程序通信的所述步骤包括使用在所述代理外部的web服务以与所述代理通信。17.根据权利要求15所述的方法,其特征在于所述智能客户机数据存储是消息通信和时间安排系统的一部分;以及使用接口管理器与智能客户机数据存储通信的所述步骤包括与所述消息通信和时间安排系统通信。18.根据权利要求17所述的方法,其特征在于所述应用程序是CRM系统。19.根据权利要求18所述的方法,其特征在于所述CRM系统包括活动和联系人项;所述消息通信和时间安排系统包括对应于所述活动和联系人项的项;所述消息通信和时间安排系统包括具有用于对应于所述活动和联系人项的项的文件夹的图形用户界面;使用所述接口管理器的所述步骤包括用所述接口管理器访问用于对应于所述活动和联系人项的项的所述文件夹。20.一个或多个处理器可读存储设备,所述设备具有包含在所述一个或多个处理器可读存储设备上的处理器可读代码,所述处理器可读代码用于对一个或多个处理器编程,所述处理器可读代码包括一接口管理器,所述接口管理器通过编辑一消息通信和时间安排应用程序的数据存储中的数据,来响应于所述消息通信和时间安排应用程序中的事件;一与远程CRM应用程序通信的通信代理,所述CRM应用程序包括活动和联系人记录,所述接口管理器编辑所述消息通信和时间安排应用程序的所述数据存储中对应的活动和联系人项;以及一与所述接口管理器和所述通信代理通信的同步管理器,所述同步管理器使用所述接口管理器和所述通信代理将所述消息通信和时间安排应用程序的所述数据存储中的所述对应的活动和联系人项与所述CRM应用程序的所述活动和联系人记录同步。21.根据权利要求20所述的一个或多个处理器可读存储设备,其特征在于所述CRM应用程序的所述活动和联系人记录是对象;以及所述消息通信和时间安排应用程序的所述数据存储中的所述对应的活动和联系人项是对象。22.根据权利要求20所述的一个或多个处理器可读存储设备,其特征在于所述消息通信和时间安排应用程序的所述数据存储中的所述对应的活动和联系人项是从所述消息通信和时间安排系统的名字空间内的类实例化的;以及所述消息通信和时间安排系统的名字空间内的所述类从所述接口管理器的名字空间内的类继承。23.根据权利要求20所述的一个或多个处理器可读存储设备,其特征在于,所述结构管理器响应于所述消息通信和时间安排应用程序内的事件包括响应于用户选择一菜单项创建一新的活动对象。24.根据权利要求20所述的一个或多个处理器可读存储设备,其特征在于所述同步管理器使用所述通信代理来访问所述CRM应用程序的所述活动和联系人记录;以及所述同步管理器使用所述接口管理器来访问所述消息通信和时间安排应用程序的所述数据存储中的所述对应的活动和联系人项。全文摘要企业应用程序(例如客户关系管理系统)的智能客户机解决方案包括一基本应用程序(例如,MicrosoftOutlook)和与该基本应用程序交互的内插式软件。内插式软件允许基本应用程序用于访问企业应用程序的数据和功能。内插式软件包括用于访问基本应用程序的数据存储中项(对应于企业应用程序的数据)的接口管理器、与企业应用程序通信(通过web服务)的通信代理、以及与接口管理器和通信代理通信的同步管理器,用于在基本应用程序与企业应用程序的数据存储之间同步数据。除了同步之外,智能客户机数据还可以与基本应用程序的数据相互转换。文档编号G06F9/44GK1744121SQ200510103668公开日2006年3月8日申请日期2005年9月5日优先权日2004年9月3日发明者M·M·赛拉特,V·瓦德拉马尼申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1