精华内容
下载资源
问答
  • 电信设备-一种可以快速在网上发布商品信息和所在位置的整套装置.zip
  • 佳木斯市技工学校 项目二 电子商务网站设计 任务三 网上信息发布 ...掌握一种在搜索引擎上注册(登记)网站的方法 教学目标 教学重点难点 教学重点难点 教学重点难点 能够使用BBS在网上发布商务信息 教学方法 教学方法 1.
  • 分类网站管理系统商业版,建立行业级分类信息网站的史上最强大分类信息建站系统,应用本网站系统注册商家可开店铺,可发布分类信息,供求信息,建立企业网站,黄页功能,可展示产品,并可对商品下订单,并直接在线支付,帐户...
  • 互联网产品灰度发布

    万次阅读 2016-05-30 14:37:39
    互联网产品灰度发布   关于2016年5月15日,DevOps成都站|架构与运维峰会活动总结 1. 前言 2 2. 灰度发布定义 5 3. 灰度发布作用 5 4. 灰度发布步骤 5 5. 灰度发布测试方法 6 6. 灰度发布引擎 6 7. 灰度...

    互联网产品灰度发布

     

    关于2016年5月15日,DevOps成都站|架构与运维峰会活动总结

    1. 前言 2

    2. 灰度发布定义 5

    3. 灰度发布作用 5

    4. 灰度发布步骤 5

    5. 灰度发布测试方法 6

    6. 灰度发布引擎 6

    7. 灰度发布常见问题 8

    7.1. 以偏概全 8

    7.1.1. 问题特征: 8

    7.1.2. 解决方案: 8

    7.2. 知识的诅咒 9

    7.2.1. 问题特征: 9

    7.2.2. 解决方案: 9

    7.3. 发布没有回头路可走 9

    7.3.1. 问题特征: 9

    7.3.2. 解决方案: 9

    7.4. 用户参与度不够 10

    7.4.1. 问题特征: 10

    7.4.2. 解决方案: 10

    8. 让产品具备灰度发布能力 10

    8.1. 灰度机制的七个维度 10

    8.1.1. 需求度 10

    8.1.2. 速度 10

    8.1.3. 灵活度 10

    8.1.4. 冗余度 11

    8.1.5. 开放协作度 11

    8.1.6. 进化度 11

    8.1.7. 创新度 11

    8.2. 灰度发布的策略要素 11

    8.2.1. 易于发布到云平台 11

    8.2.2. 设置用户标识策略 12

    8.2.3. 目标用户选取策略 12

    8.2.4. 提供数据反馈入口 12

    8.2.5. 新版本回滚策略 12

    8.2.6. 新版本公关运营支持 13

    8.3. 灰度发布的方案 13

    8.3.1. 方案一:代码逻辑控制 13

    8.3.2. 方案二:Alibaba预发机制 14

    8.3.3. 方案三:SET部署 14

    8.3.3.1. 按照业务隔离部署 14

    8.3.3.2. 按照用户隔离部署 15

    8.3.4. 方案四:动态路由 16

    9. 采用灰度发布的案例 16

    9.1. 谷歌Gmail Labs 16

    9.2. 腾讯QZone 17

    9.3. 微信wechat 17

    9.4. Ucloud高可用架构实践 20

    10. 参考资料 26

     

     

    1. 前言

     互联网产品有一个特点,就是不停的升级,升级,再升级。一般采用敏捷开发的团队,基本上保持每周一次的发布频率,系统升级总是伴随着风险,新旧版本兼容的风险,用户使用习惯突然改变而造成用户流失的风险,系统down机的风险.....为了避免这些风险,很多产品都采用了灰度发布的策略,其主要思想就是把影响集中到一个点,然后再发散到一个面,出现意外情况后很容易就回退。

    很长时间,我们都一直在改进搜索引擎的排序算法,尽量让最好的商品出现在 搜索结果的第一屏。我们尝试了很多种算法,不断调整各个排序因子所占的比重。但是我们无法确信我们的排序结果能满足所有用户的需求。所以我们采用了灰度发 布,选取几个一级商品类目,在其中应用不同的排序算法,比如在女装类目中,我们把卖家信用所占的比率调整到60%,在珠宝类目中,我们把销售量所占的比率 调整到60%.. 然后发布出去,收集用户反馈,最终选择一种大部分人认为好的算法。

         在传统软件产品发布过程中(例如微软的Windows 7的发布过程中),一般都会经历Pre-Alpha、Alpha、Beta、Release candidate(RC)、RTM、General availability or General Acceptance (GA)等几个阶段(参考Software release life cycle)。可以看出传统软件的发布阶段是从公司内部->外部小范围测试>外部大范围测试->正式发布,涉及的用户数也是逐步放量的过程。

       在互联网产品的发布过程中也较多采用此种发布方式:产品的发布过程不是一蹴而就,而是逐步扩大使用用户的范围,从公司内部用户->忠诚度较高的种子 用户->更大范围的活跃用户->所有用户。在此过程中,产品团队根据用户的反馈及时完善产品相关功能。此种发布方式,按照中国特色的叫法被冠 以”灰度发布“、”灰度放量“、”分流发布“。

      关于“灰度发布”叫法的来源无从考察。只不过按照中国传统哲学的说法来看,很符合中国人中庸的思维模式:自然界所有的事物总是以对称、互补、和谐的形式存 在,例如黑与白、阴与阳、正与负、福与祸。在二元对立的元素间存在相互过渡的阶段,所谓”祸兮福所倚,福兮祸所伏“。具体到黑与白,在非黑即白中间还有中 间色——灰色。于是出现了很多关于灰色的说法:灰盒测试,灰色管理(极力推荐 任正非:管理的灰度),灰色收入,灰色地带等等。因此对于灰度发布实际上就是从不发布,然后逐渐过渡到正式发布的一个过程。

    2. 灰度发布定义

    灰度发布是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部分用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。

    3. 灰度发布作用

    a.及早获得用户的意见反馈,完善产品功能,提升产品质量

    b.让用户参与产品测试,加强与用户互动

    c.降低产品升级所影响的用户范围

    d.规避一定的发布风险

    e.避免停服发布给用户带来不便

    f.具有容灾能力

    4. 灰度发布步骤

      1)、定义目标

      2)、选定策略:包括用户规模、发布频率、功能覆盖度、回滚策略、运营策略、新旧系统部署策略等

      3)、筛选用户:包括用户特征、用户数量、用户常用功能、用户范围等

      4)、部署系统:部署新系统、部署用户行为分析系统(web analytics)、设定分流规则、运营数据分析、分流规则微调

      5)、发布总结:用户行为分析报告、用户问卷调查、社会化媒体意见收集、形成产品功能改进列表

      6)、产品完善

      7)、新一轮灰度发布或完整发布

     

    5. 灰度发布测试方法

         灰度发布于互联网公司常用A/B测试似乎比较类似,老外似乎并没有所谓的灰度发布的概念。按照wikipedia中对A/B测试的定义,A/B测试又叫:A/B/N Testing、Multivariate Testing,因此本质上灰度测试可以算作A/B测试的一种特例。只不过为了术语上不至于等同搞混淆,谈谈自己理解的两者的差异。

        灰度发布是对某一产品的发布逐步扩大使用群体范围,也叫灰度放量

        A/B测试重点是在几种方案中选择最优方案

       关于A/B测试可以参考这篇文章:A/B测试终极指南

     

    6. 灰度发布引擎

         对于一般的小系统并不需要单独的灰度发布引擎,可以参考A/B测试中做法,在页面javascript或服务器端实现分流的规则即可。但对于大型的互联网应用而言,单独的用于管理用户分流的发布引擎就很有必要了。“钱掌柜”分流发布模式 提到了原来阿里软件所使用的灰度发布引擎,设计思路具有普遍性,可以供参考


    下面是一个灰度发布的架构示意图:

     

    7. 灰度发布常见问题

    7.1. 以偏概全

    7.1.1. 问题特征:

    a选择的样本不具有代表性;

    b样本具有代表性,但选择样本用户使用习惯并没有涵盖所有核心功能

    7.1.2. 解决方案:

    样本选择要多样化,样本的组合涵盖大部分核心功能

    7.2. 知识的诅咒

    “知识的诅咒”的说法来自《粘住》中实验,具体可以自己搜索一下。我们自己对于自己开发的产品极为熟悉,于是乎想当然认为用户也应当能够理解产品的设计思路、产品的功能使用。

    7.2.1. 问题特征:

    a结果没有量化手段;

    b只依赖于用户问卷调查;

    c没有web analytics系统;

    d运营数据不全面,只有核心业务指标(例如交易量),没有用户体验指标

    e对结果分析,只选择对发布有利的信息,对其他视而不见

    7.2.2. 解决方案:

    a产品设计考虑产品量化指标

    b结果分析依据量化指标而不是感觉

    7.3. 发布没有回头路可走

    7.3.1. 问题特征:

    a新旧系统用户使用习惯差异太大,没有兼容原有功能

    b新旧系统由于功能差异太大,无法并行运行,只能强制升级

    c新系统只是实现了旧系统部分功能,用户要完整使用所有功能,要在 在新旧系统切换

    d新旧系统数据库数据结构差异太大,无法并行运行

    7.3.2. 解决方案:

        前期产品策划重点考虑这些问题,包括:回滚方案、 新旧系统兼容方案、用户体验的一致性、用户使用习惯的延续性、新旧系统数据模型兼容性

    7.4. 用户参与度不够

    7.4.1. 问题特征:

    a指望用户自己去挖掘所有功能。对于一个产品,大部分用户经常只使用部分功能,用户大部分也很懒惰,不会主动去挖掘产品功能

    b互动渠道单一

    c陷入“知识的诅咒”,不尊重参与用户意见

    7.4.2. 解决方案:

    a善待吃螃蟹的样本用户,包括给予参与测试的用户小奖励(例如MS给参与Win7测试用户正版License)、给用户冠以title

    b通过邮件、论坛、社区、Blog、Twitter等新媒体与用户形成互动

    c提供产品功能向导。在hotmail最近的升级后的功能tip,gmail的tip都有类似的产品功能导向。在产品中会提示类似于:你知道吗,xx还提供xx功能,通过它你可以xx 。

    8. 让产品具备灰度发布能力

    8.1. 灰度机制的七个维度

    8.1.1. 需求度

    用户需求是产品核心,产品对需求的体现程度,就是企业被生态所需要的程度;

    8.1.2. 速度

    快速实现单点突破,角度、锐度尤其是速度,是产品在生态中存在发展的根本;

    8.1.3. 灵活度

    敏捷企业、快速迭代产品的关键是主动变化,主动变化比应变能力更重要;

    8.1.4. 冗余度

    容忍失败,允许适度浪费,鼓励内部竞争内部试错,不尝试失败就没有成功;

    8.1.5. 开放协作度

    最大程度地扩展协作,互联网很多恶性竞争都可以转向协作型创新;

    8.1.6. 进化度

    构建生物型组织,让企业组织本身在无控过程中拥有自进化、自组织能力;

    8.1.7. 创新度

    创新并非刻意为之,而是充满可能性、多样性的生物型组织的必然产物。

     

    8.2. 灰度发布的策略要素

    8.2.1. 易于发布到云平台

        一般采用灰度发布都是具有自主产品的平台模式发布,而不是在客户服务器端进行发布,具备自主研发产品和有一定硬件部署能力的企业可以考虑灰度发布。

    灰度发布一般是基于云的需要,如负载均衡,用户隔离等机制。如大型的电商网站等都是采用的分布式部署方式,利用负载均衡实现服务器分发,将用户访问分配到不同的地区服务器访问,确保用户访问效率,提升用户体验。

    之所以强调易于发布,就是公司要具备自己可操作的服务器设备(云服务设备),这样可以实现在用户不知情的情况下实现灰度发布。即,在用户无感知的情况下实现最优配置的测试部署,提升产品质量,实现产品快速迭代——频繁发布,实现具有意义的‘实时发布’策略。

    注:需要开通云服务模式(有一定硬件和经济实力的公司可以考虑)。

     

    8.2.2. 设置用户标识策略

    用于区分用户,辅助数据统计,保证灰度发布过程中用户体验的连贯性(避免用户在新旧版本中跳变,匿名Web应用比较容易有这个问题)。匿名Web应用可采用IP、Cookie等,需登录的应用可直接采用应用的帐号体系。

    8.2.3. 目标用户选取策略

    即选取哪些用户先行体验新版本,是强制升级还是让用户自主选择等。可考虑的因素很多,包括但不限于地理位置、用户终端特性(如分辨率、性能)、用户自身特点(性别、年龄、忠诚度等)。对于细微修改(如文案、少量控件位置调整)可直接强制升级,对于类似新浪微博改版这样的大型升级,应让用户自主选择,最好能够提供让用户自主回滚至旧版本的渠道。

    对于客户端应用,可以考虑类似Chrome的多channel升级策略,让用户自主选择采用stable、beta、unstable channel的版本。在用户有明确预期的情况下自行承担试用风险。

    8.2.4. 提供数据反馈入口

         用户数据反馈:在得到用户允许的前提下,收集用户的使用新版本应用的情况。如客户端性能、客户端稳定性、使用次数、使用频率等。用于与旧版本进行对比,决策后续是继续扩大新版本投放范围还是回滚。
         服务端数据反馈:新版本服务端性能、服务端稳定性等,作用与用户数据反馈类似。

    8.2.5. 新版本回滚策略

    当新版本灰度发布表现不佳时,应回滚至旧版本。对于纯粹的Web应用而言,回滚相对简单。主要难点在于用户数据的无缝切换。对于客户端应用,如果期待用户自行卸载新版本另行安装旧版本,成本和流失率都太高。可以考虑通过快速另行发布新版本,利用升级来“回滚”,覆盖上次灰度发布的修改。

    对于移动客户端,新版本发布成本较高,需要Appstore、Market审核。本人没有移动客户端产品的经验,不太确定移动客户端产品如何处理灰度发布及回滚。但尽量将客户端打造成Web App,会更有利于升级和回滚。(不过苹果对纯Web App类的App有较强的限制,好像已经不允许在Appstore上发布这类应用了?)

    8.2.6. 新版本公关运营支持

    对于改版级别的大型升级,需要配合公关运营支持,用于及时处理用户在微博、博客等渠道给出的“显式反馈”。对比通过隐式数据反馈得到的结论后,综合考虑应对策略。

    8.3. 灰度发布的方案

    灰度发布一般有三种方式 nginx+lua,nginx根据cookie分流,nginx 根据权重来分配:
         nginx+lua根据来访者ip地址区分,由于公司出口是一个ip地址,会出现访问网站要么都是老版,要么都是新版,采用这种方式并不适合nginx 根据权重来分配,实现很简单,也可以尝试nginx根据cookie分流,灰度发布基于用户才更合理

     

    Nginx+lua配置可以参考如下文章进行实践:

    利用nginx+lua+memcache实现灰度发布

     

    Nginx+Lua+Redis实例

     

    nginx灰度方案---基于ip或者基于cookies

     

    8.3.1. 方案一:代码逻辑控制

    实现:

    在代码中埋开关,做if-else判断,对于需要灰度的机器,设置开关为on,否则为off。每次版本发布都是有两个版本。

    优点

    · 快速回滚,不需要重新发布和重启系统。

    缺点

    · 对代码有倾入性。

    · 分支逻辑,带来复杂性。

    这种方式笔者曾经应用过,就是在阿里的时候把商品的数据库从Oracle切换到MySql,使用了一个状态变量进行控制。从而打到平滑迁移的效果。

     

    8.3.2. 方案二:Alibaba预发机制

        其实这个不是真正意义上的灰度。因为这个预先发布机器是内部IP,没有对外服务的。需要绑定域名进行验证。但是数据是完全的线上。所以本质上是灰度 某些特定用户(可以访问灰度机器的用户,内部测试用户)的一种简单做法。其实API这边也有类似的做法,就是我们的Gamma环境,而且我们还提供了 Gamma机器的域名,方便外部合作用户配合测试。

    优点

    · 简单

    缺点

    · 浪费一台机器(这个可以预先发布完成之后投入正式环境,预发布的时候从nginx摘除,不过需要运维支持。)

    · 不够灵活

    · 只能针对接入层机器,IDL服务灰度需要另外考虑。

    8.3.3. 方案三:SET部署

    8.3.3.1. 按照业务隔离部署

        比如现在API Container的做法,部署的粒度可以到API级别,前端根据nginx进行转发。比如:

    · 微购物 API Container: api.weigou.qq.com

    · 拍拍 API Container:api.paipai.com

    · 易迅 API Container: api.yixun.com

    · 网购 API Container:api.buy.qq.com

        上面是大业务级别的隔离部署。还可以进一步细化到模块级别,比如虚拟服务电商的API,是挂在拍拍下面的一个子业务模块,但是由于他们接入微信之 后,访问量大增,为了避免影响拍拍其他业务,也为了避免受其他业务影响,API这里是给他们单独部署了两台机器,nginx配置一下就可以将针对虚拟的 API访问引流过来了:

    虚拟API Container:http://api.paipai.com/v2/virbiz

    这样,我们在发布一个版本的时候,可以先选择业务量最小的易迅进行发布,观察没有问题再全量其他平台。

    8.3.3.2. 按照用户隔离部署

        这个对于开放平台来说不是很适合,不过对于SNS这种应用场景就很合适了。比如QQ系统,按照用户号码段分为若干个set,每个set包含连续1亿 个号码的用户。假设现在最新的QQ号码接近10亿,则总共有10个set(Set 1到Set 10)。这样每次可以选择其中一个SET进行发布,而且高位QQ往往是不是很重要的用户,所以会先发布SET10。

    优点

    · 隔离部署,各个业务线影响最小。自动支持灰度发布。

    缺点

    · 灰度的粒度取决于隔离部署的粒度,一般会偏大。

    · 相对于集中部署比较浪费机器。

    · 各个业务线版本可能不一致,不利于统一管理。

    · 有一定的实现和部署成本

     

     

    8.3.4. 方案四:动态路由

       采用一个可以灵活配置的灰度策略,影响Load Balance的行为,让其根据灰度策略,返回灰度服务的IP和端口。

    适合与后台IDL的服务灰度。

    优点

    · 灵活,可控。

    缺点

    · 现在的配置中心和L5本身没有考虑指定路由策略,且不具有扩展性,需要在其外边开发。

    · API的元数据来源比较分散,目前 API和IDL元数据,API等级和频率限制 分布在不同的数据源,现在需要增加一个 灰度路由 数据源。

     

     

    9. 采用灰度发布的案例

    9.1. 谷歌Gmail Labs

    Gmail Labs是一个新特性橱窗,用户可以自己选择一些未正式发布的新特性进行体验,不喜欢可以关闭,在这个过程中,吃了螃蟹,也当了Google的小白鼠。

    这个做法比传统的灰度要高明很多,更加尊重用户:

    1、它没有强加用户,用户是否愿意当小白鼠完全自愿

    2、新特性不是打包在一起的一个大版本,可以选择某几个喜欢的螃蟹尝尝

    3、螃蟹不好吃可以扔掉,不用硬吃进肚子里引发肠胃炎

    当然这些好处也是有代价的:

    1、要开发一个labs平台实现新特性上架、独立尝试的功能,这可能要改动Gmail的前后台架构

    2、新特性要按照一定规范来写,才能发布到这个平台上,可能会增加一些工作量

    3、小白鼠用户增多之后,对系统的压力可能会有一定提升,因为每一位用户调用的界面都不一样了

    既然Gmail Labs能够顺利发布,那么说明对Google来说,以上这些问题都不算问题。另外,现在展示的新特性,都注明了开发者的名字,那么,Gmail Labs可能会开放这个平台让外部开发者也能提交特性?这倒是很open的一种开发模式,非常适合Google的web app产品线。

    9.2. 腾讯QZone

    QZone是另外一个采用灰度发布的例子。大家都知道,QZone的改进是巨大的,从以前慢悠悠的老爷爷变成了一个充满青春活力的小伙子。其中经历了大小无数次的发布,他们的发布也都是采用了灰度发布的策略,用户数据的升级并不是大 面积的一次性升级,而是通过一个用户升级标志服务器,如果用户数据没有升级,后台会把此用户的数据逐步迁移到新版本上,然后将升级标志位置1,升级过程 中,用户仍然可以访问旧的数据,升级完成后的访问都将转发给新的版本。

    QQ的很多产品发布都采用灰度发布,有些是抽取部分QQ号段升级成新系统,然后根据用户反馈再大范围升级。

    9.3. 微信wechat

    灰度、灰度、再灰度

        在变更后的部署方式上,微信在一些规则会限定不能一次把所有的逻辑变更上去,每一次变更一小点观察到每一个环节没有问题的时候,才能布局到全网上去。微信后台每一天可以支撑超过20个后台变更,在业界来说,通常做到5个已经是比较快了,但是微信可以做到快4倍。


    腾讯内部的上线系统

    而所谓灰度发布,是指在黑与白之间,能够平滑过渡的一种发布方式。AB test就是一种灰度发布方式,让一部用户继续用A,一部分用户开始用B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面 来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。(在腾讯,灰度发布是最常采用的发布方式之一)

    孙子兵法:古之所谓善战者,胜于易胜者也

    常识上,解决一个复杂问题的时候,会用高明的技巧解决复杂的问题,这个不是微信团队的目标,他们追求的要做到让所有问题很自然和简单的方式解决掉。在周颢看来,微信架构的技术复杂点在四个要点:协议、容灾、轻重、监控。

    微信架构

    · 协议。手机终端跟后台服务器之间的交互协议,这个协议的设计是整个系统的骨架,在这一点做好设计可以使得系统的复杂度大大降低。

    · 容灾。当系统出现了若干服务器或若干支架(宕机的时候),仍然需要让系统尽可能的提供正常的服务。

    · 轻重。如何在系统架构中分布功能,在哪一个点实现哪一个功能,代表系统中间的功能配置。

    · 监控。为系统提供一个智能仪表盘。

    在协议设计上,移动互联网和常规互联网有很大的区别。首先有CMWAP和CMNET的不同,在中国现在有相当多的手机用户使用WMWAP连接,还有 就是在线和离线的概念,当QQ下线的时候叫离线,当你登录的时候叫在线。但是在移动互联网这两个概念比较模糊。从微信的设计中,不管在线还是离线系统表现 都应该是一致的。还有一个是连接不稳定的问题,由于手机信号强弱的变化,当时信号很好,5秒钟走到信号不好的地区,连接就必须断掉。这个中间带来不稳定的 因素为协议设计带来较大困难。此外就是资费敏感的问题,因为移动互联网是按照流量计费的,这个计费会使得在协议设计中如何最小化传输的问题。最后就是高延 迟的问题。

    对此,业界标准的解决方案:Messaging And Presence Protocol:1)XMPP;2)SIP/SIMPLE。它的优点是简单,大量开源实现。而缺点同样明显:1)流量大:状态初始化;2)消息不可靠。

    微信在系统中做了特殊设计,叫SYNC协议,是参考Activesyec来实现的。特点首先是基于状态同步的协 议,假定说收发消息本身是状态同步的过程,假定终端和服务器状态已经被迟了,在服务器端收到最新的消息,当客户端、终端向服务器对接的时候,收取消息的过 程实际上可以简单的归纳为状态同步的过程,收消息以及收取你好友状态更新都是相同的。在这样的模式之下,我们会也许会把交互的模式统一化,只需要推送一个 消息到达的通知就可以了,终端收到这个通知就来做消息的同步。在这样的简化模式之下,安卓和塞班都可以得到统一。这样的系统本身的实现是更为复杂的,但是 获得很多额外的好处。

    让剩下系统实现的部分更加简单,简化了交互模式,状态同步可以通过状态同步的差值获得最小的数据变更,通过增量的传输得到最小的数据传输量。通过这 样的协议设计,微信可以确保消息是稳定到达的,而且是按序到达。引用一句俗话:比它炫的没它简单,比它简单的没它快,没谁比他更快,哪怕在GPRS下,微 信也能把进度条轻易推到底。

    9.4. Ucloud高可用架构实践

    DevOps成都站|架构与运维峰会活动总结地址:

    http://mp.weixin.qq.com/s?__biz=MjM5NDE0MjI4MA==&mid=2656298704&idx=2&sn=68d5d42a9c26640a21eebd3253ca81c3&scene=1&srcid=0519IBq6Q2k77kYAQmXuofuV&from=groupmessage&isappinstalled=0#wechat_redirect

    此处主要截取账户计费系统架构演进过程的六个阶段进行整理。

    服务架构的演进过程


    UCloud服务架构的演进主要经历了以下六个阶段:

    a.单体模式;

    b.具有灰度发布能力;

    c.前后端分离;

    d.服务化改造;

    e.按SET部署;

    f.分机房按SET部署,按SET进行跨机房热备容灾。

     

    1. 单体模式架构上线业务系统

    UCloud服务初期上线时的架构主要分三部分:

    · 

    PHP Web Conosle,负责所有前端展现交互、后台服务间逻辑组装;

    · 

    · 

    平台类服务,账户、计费、监控、名字服务等公共服务;

    · 

    · 

    各业务系统分数据中心后台服务的接入层。

    · 

    PHP Web Console、业务系统分数据中心的服务、平台类服务组合上线,Web Console 通过Protobuf与所有后端服务进行通信。

     

    2. 具备灰度发布能力

    要解决前面面临的问题,我们首先需要支持Web层灰度发布包含以下的灰度方式:

    · 

    无用户态特性按照 单IP -> IP段(地区) -> 到IP取模逐步灰度控制影响范围;

    · 

    · 

    有用户态特性按照 单内部用户(开发账号) -> 内部测试账号 -> 用户分级逐步灰度发布控制影响范围。

    · 

     

    3. 前后端分离

    · 

    开发API Gateway 层用来管理后端 API 注册和管理、权限验证管理、流量控制;

    · 

    · 

    开发API层,解决前台交互层,需要整合跨系统逻辑调用问题,前端只专注产品交互和用户体验;

    · 

    · 

    开发统一的单点登陆Token,系统方便前端实现跨域API调用让前端代码可以完全静态化。

    · 

    在此阶段,完成前端展现可以独立控制发布,彻底实现了前后端解耦,API协议保证向前兼容,Web端可以随意重构交互优化前端架构,实现了跨域独立部署,独立的灰度策略互相之间不受影响,极大的提高了前端团队开发效率和稳定性。

     

    4. 服务化改造

     对业务端API开发效率优化:

    · 

    按照业务模块化,所有业务API由后台产品研发部门独立部署发布上线;

    · 

    · 

    抽象通用平台类特性例如:子账号特性,权限体系,计费等特性抽象公共能力让业务端在API中组装。

    · 

    总体目标:让业务API开发效率提升并单独部署维护,提高产品特性的研发迭代效率并提高稳定性。

     

    5. 按SET部署


    基础架构优化完毕,各个业务系统单独部署发布,开始对系统进行容量和容灾方面的考虑,从部分平台类系统开始考虑按SET部署架构测底解决容量和容灾问题,每个SET只服务一部分用户,保证遇到物理服务器宕机等故障情况下只影响部分用户或业务。

    例如图上所示, SET 1 服务1 ~ 服务50000000 用户,SET 2 服务50000001 ~ 100000000 的用户,一个SET 出现问题只影响一个部分用户,不同的业务根据自身情况进行SET切分,规模大小也视情况而定,按SET部署后合理的划分方式下不同SET之间数据还可以互相迁移,来平衡搞负载或高容量的SET,极大的提高了可运维性。

     

    6. 分机房部署SET


    按SET部署架构改造完毕后还没有达到最理想的状态,如果所有服务部署在单机房还是可能会出现问题,机房整体出现断电、断网等故障还是会出现大面积影响。

    · 

    对SET架构进行分机房部署,让不同的用户运行在不同的机房中,这依赖一些基础设施比如跨机房光线专线。

    · 

    · 

    跨地域SET在相邻节点部署热备,以便出现机房故障时能具备异地快速恢复服务的能力。

    · 

    总体介绍了UCloud在不同的阶段架构演进的一些过程和经验,架构没有最好的,只有最合适当前业务发展的架构。

     

     

    10. 参考资料

    什么是灰度发布

     

    从腾讯的“灰度机制”到产品的“灰度上线”,你了解多少?

     

    “钱掌柜”分流发布模式

    百度百科:灰度发布

    A/B testing

    A/B测试终极指南

    互联网产品的灰度发布

    聊聊灰度发布

    一亿用户增长背后的架构秘密-腾讯微信技术总监周颢

     

    马化腾谈互联网产品:灰度法则的七个维度

     

     

     

     

    展开全文
  • (1)菜品信息发布 ① 菜品价格的发布; ② 菜品推荐; ③ 网上订餐 (2)用户管理 ① 用户注册; ② 用户登录; ③ 找回密码。 (3)菜品菜单信息的检索 菜品菜单的搜索。 (4)菜品交易 ① 购物车; ② 订单的...

    网上订餐系统的功能

    根据系统需求的分析,可以通过以下功能来实现网上订餐系统的总体设计。
    (1)菜品信息的发布
    ① 菜品价格的发布;
    ② 菜品推荐;
    ③ 网上订餐
    (2)用户管理
    ① 用户注册;
    ② 用户登录;
    ③ 找回密码。
    (3)菜品菜单信息的检索
    菜品菜单的搜索。
    (4)菜品交易
    ① 购物车;
    ② 订单的操作管理。
    (5)后台管理
    ① 菜品菜单信息的录入;
    ② 用户管理;
    ③ 菜品信息的管理;
    ④ 数据库的建立、管理与维护。

    管理员 商家登录

    http://localhost:8080/ca4/adminLogin/login.html

    用户登录

    http://localhost:8080/ca4/front/register.html

    商家界面 可以上菜谱 处理订单信息 修改个人资料

    在这里插入图片描述

    展开全文
  • 全部模块包括:首页公告;计数器;自助友情链接;会员管理;留言本,首页,文章管理;网上销售;供求信息;投票调查;网上招聘;商品展示user:gz35pass:19780508
  • 系统性地提高网上银行系统安全水平,在总结前期工作经验及金融信息安全新形势的基础上,中国人民银行组织编制了《网上银行系统信息安全通用规范》(JR/T 0068-2012)行业标准,并于近日发布。 本标准明确了网上...
  • 网上信息抽取技术纵览

    千次阅读 2014-06-18 22:11:03
    网上信息抽取技术纵览 (Information Extraction from World Wide Web-A Survey) Line Eikvil 原著 (1999.7) 陈鸿标 译 (2003.3) 第一章 导论    信息抽取(Information Extraction: IE)是把文本里...

    网上信息抽取技术纵览 (Information Extraction from World Wide Web-A Survey)

    Line Eikvil 原著 (1999.7) 陈鸿标 译 (2003.3)


    第一章         导论 
      
    信息抽取(Information Extraction: IE)是把文本里包含的信息进行结构化处理,变成 
    表格一样的组织形式。输入信息抽取系统的是原始文本,输出的是固定格式的信息点。信 
    息点从各种各样的文档中被抽取出来,然后以统一的形式集成在一起。这就是信息抽取的 
    主要任务。 
    信息以统一的形式集成在一起的好处是方便检查和比较。例如比较不同的招聘和商品信息 
    。还有一个好处是能对数据作自动化处理。例如用数据挖掘方法发现和解释数据模型。 
    信息抽取技术并不试图全面理解整篇文档,只是对文档中包含相关信息的部分进行分析。 
    至于哪些信息是相关的,那将由系统设计时定下的领域范围而定。 
    信息抽取技术对于从大量的文档中抽取需要的特定事实来说是非常有用的。互联网上就存 
    在着这么一个文档库。在网上,同一主题的信息通常分散存放在不同网站上,表现的形式 
    也各不相同。若能将这些信息收集在一起,用结构化形式储存,那将是有益的。 
    由于网上的信息载体主要是文本,所以,信息抽取技术对于那些把因特网当成是知识来源 
    的人来说是至关重要的。信息抽取系统可以看作是把信息从不同文档中转换成数据库记录 
    的系统。因此,成功的信息抽取系统将把互联网变成巨大的数据库! 
    信息抽取技术是近十年来发展起来的新领域,遇到许多新的挑战。 
    本文首先在第二章简要介绍信息抽取技术,第三章介绍网页分装器(wrapper)的开发,第四 
    章介绍已经开发出来的网站信息抽取系统,第五章介绍信息抽取技术的应用范围以及首批 
    已经进入商业运作的商用系统。 
     
     
    第二章          信息抽取技术概述 
    信息抽取原来的目标是从自然语言文档中找到特定的信息,是自然语言处理领域特别有用 
    的一个子领域。所开发的信息抽取系统既能处理含有表格信息的结构化文本,又能处理自 
    由式文本(如新闻报道)。IE系统中的关键组成部分是一系列的抽取规则或模式,其作用 
    是确定需要抽取的信息[52]。网上文本信息的大量增加导致这方面的研究得到高度重视。 
     
    本章首先介绍信息抽取领域的发展。第2.1.节比较了信息抽取和信息检索的区别;第2.2. 
    节介绍IE的历史。接下来两节解释评价IE系统的指标和常用的两派技术方法。信息抽取技 
    术所处理的文本类型将在第2.5.节中说明。第2.6.节描述信息抽取技术可利用的网页特征 
    。 
    第2.1.节          IR和IE 
    IR的目的是根用户的查询请求从文档库中找出相关的文档。用户必须从找到的文档中翻阅 
    自己所要的信息。 
    就其目的而言,IR和IE的不同可表达如下:IR从文档库中检索相关的文档,而IE是从文档 
    中取出相关信息点。这两种技术因此是互补的。若结合起来可以为文本处理提供强大的工 
    具[24]。 
    IR和IE不单在目的上不同,而且使用的技术路线也不同。部分原因是因为其目的差异,另 
    外还因为它们的发展历史不同。多数IE的研究是从以规则为基础的计算语言学和自然语言 
    处理技术发源的。而IR则更多地受到信息理论、概率理论和统计学的影响[24]。 
    第2.2.节          IE的历史 
    自动信息检索已是一个成熟的学科,其历史与文档数据库的历史一样长。但自动信息抽取 
    技术则是近十年来发展起来的。有两个因素对其发展有重要的影响:一是在线和离线文本 
    数量的几何级增加,另一是“消息理解研讨会”(MUC)近十几年来对该领域的关注和推动 
    。 
    IE的前身是文本理解。人工智能研究者一直致力于建造能把握整篇文档的精确内容的系统 
    。这些系统通常只在很窄的知识领域范围内运行良好,向其他新领域移植的性能却很差[5 
    3]。 
    八十年代以来,美国政府一直支持MUC对信息抽取技术进行评测。各届MUC吸引了许多来自 
    不同学术机构和业界实验室的研究者参加信息抽取系统竞赛。每个参加单位根据预定的知 
    识领域,开发一个信息抽取系统,然后用该系统处理相同的文档库。最后用一个官方的评 
    分系统对结果进行打分。 
    研讨会的目的是探求IE系统的量化评价体系。在此之前,评价这些系统的方法没有章法可 
    循,测试也通常在训练集上进行。MUC首次进行了大规模的自然语言处理系统的评测。如何 
    评价信息抽取系统由此变成重要的问题,评分标准也随之制定出来。各届研讨会的测试主 
    题各式各样,包括拉丁美洲恐怖主义活动、合资企业、微电子技术和公司管理层的人事更 
    迭。 
    过去五、六年,IE研究成果丰硕。英语和日语姓名识别的成功率达到了人类专家的水平。 
    通过MUC用现有的技术水平,我们已有能力建造全自动的 IE系统。在有些任务方面的性能 
    达到人类专家的水平[53]。不过自1993年以来,每届最高组别的有些任务,其成绩一直没 
    有提高(但要记住MUC的任务一届比一届复杂)。一个显著的进步是,越来越多的机构可以 
    完成最高组别的任务。这要归公于技术的普及和整合。目前,建造能达到如此高水平的系 
    统需要大量的时间和专业人员。另外,目前大部分的研究都是围绕书面文本,而且只有英 
    语和其他几种主要的语言。 
    第2.3.节          评价指标在 
    信息抽取技术的评测起先采用经典的信息检索(IR)评价指标,即回召率(Recall)和查准率 
    (Precision),但稍稍改变了其定义。经修订后的评价指标可以反映IE可能产生的过度概括 
    现象(Over-generation),即数据在输入中不存在,但却可能被系统错误地产生出来(Pro 
    duced)[24]。 
    就IE而言,回召率可粗略地被看成是测量被正确抽取的信息的比例(fraction),而抽准率 
    用来测量抽出的信息中有多少是正确的。计算公式如下: 
    P=抽出的正确信息点数/所有抽出的信息点数 
    R=抽出的正确信息点数/所有正确的信息点数 
    两者取值在0和1之间,通常存在反比的关系,即P增大会导致R减小,反之亦然。 
    评价一个系统时,应同时考虑P和R,但同时要比较两个数值,毕竟不能做到一目了然。许 
    多人提出合并两个值的办法。其中包括F值评价方法: 
     F = (b2 + 1)PR / (b2P + R)
    其中 b 是一个预设值,决定对P侧重还是对R侧重。通常设定为1。 
    这样用F一个数值就可很看出系统的好坏。 
    第2.4.节          IE系统设计的两大方法 
    IE系统设计主要有两大方法:一是知识工程方法(Knowledge Engineering Approach), 
    二是自动训练方法(Automatic Training Approach)。 
    知识工程方法主要靠手工编制规则使系统能处理特定知识领域的信息抽取问题。这种方法 
    要求编制规则的知识工程师对该知识领域有深入的了解。这样的人才有时找不到,且开发 
    的过程可能非常耗时耗力。 
    自动训练方法不一定需要如此专业的知识工程师。系统主要通过学习已经标记好的语料库 
    获取规则。任何对该知识领域比较熟悉的人都可以根据事先约定的规范标记语料库。经训 
    练后的系统能处理没有见过的新文本。这种方法要比知识工程方法快,但需要足够数量的 
    训练数据,才能保证其处理质量。 
    第2.5.节          自由式、结构化和半结构化文本 
    自由式文本:信息抽取最初的目的是开发实用系统,从自由文本中析取有限的主要信息。 
    例如,从报道恐怖袭击活动的新闻中析取袭击者、所属组织、地点、受害者等信息;又如 
    ,从医药研究报告的摘要中提取新产品、制造商、专利等主要信息点。  
    处理自由文本的IE系统通常使用自然语言处理技巧,其抽取规则主要建立在词或词类间句 
    法关系的基础上。需要经过的处理步骤包括:句法分析、语义标注、专有对象的识别(如 
    人物、公司)和抽取规则。规则可由人工编制,也可从人工标注的语料库中自动学习获得 
    。 
    自由文本信息点抽取技术的现有水平不可与人的能力同日而语,但还是有用的,不管其抽 
    取规则是人工编制的还是通过机器学习的[52]。虽然自然语言理解是漫长的期待,但是, 
    信息抽取技术确实可行,因为这项技术对其需要搜索的模式类型有很强的限定,而这种限 
    定是有根有据的。 
    结构化文本:此种文本是一种数据库里的文本信息,或者是根据事先规定的严格格式生成 
    的文本。从这样的文本中抽取信息是非常容易的,准确度也高,通过描述其格式即可达到 
    目的。所用的技巧因而相对简单。 
    半结构化文本:这是一种界于自由文本和结构化文本之间的数据,通常缺少语法,象电报 
    报文,也没有严格的格式。用自然语言处理技巧对这样的文本并不一定有效,因为这种文 
    本通常连完整的句子都没有。因此,对于半结构化文本不能使用传统的IE技巧,同时,用 
    来处理结构化文本的简单的规则处理方法也不能奏效。 
    在半结构化文本中确实存在一些结构化的信息,但是,抽取模式通常依赖字符和象html标 
    记那样的分隔标志。句法和语义信息的作用则非常有限。 
    第2.6.节          网页 
    因特网提供了一个巨大的信息源。这种信息源往往是半结构化的,虽然中间夹杂着结构化 
    和自由文本。网上的信息还是动态的,包含超链接,以不同的形式出现,而且跨网站和平 
    台,全网共享。因此,因特网是一个特殊的挑战,一直推动着从结构化和半结构化文本中 
    抽取信息的研究向前迈进。 
    有些研究者把所有网页都归入半结构化文本,但Hsu[31]对网页类型做了颇有用的定义:若 
    能通过识别分隔符或信息点顺序等固定的格式信息即可把“属性-值”正确抽取出来,那么 
    ,该网页是结构化的。半结构化的网页则可能包含缺失的属性,或一个属性有多个值,或 
    一个属性有多个变体等例外的情况。若需要用语言学知识才能正确抽取属性,则该网页是 
    非结构化的。 
    网页的结构化程度总是取决于用户想要抽取的属性是什么。通常,机器产生的网页是非常 
    结构化的,手工编写的则结构化程度差些,当然有很多例外。 
    传统的NLP技巧对抽取半结构化文本的信息并不是很有用,因其缺少规范的语法结构,而且 
    ,NLP方法的处理速度通常比较慢,这对于网上海量信息来说是一个大问题。 
    网上大部分内容都以属性列表的形式呈现,例如很多可搜索的网页索引。这种外观上的规 
    律性可被利用来抽取信息,避免使用复杂的语言学知识。 
    网页上的组织结构和超链接特性是需要认真考虑的重要因素。例如,可能需要打开链接的 
    内容才能找到你想要的信息。网页的组织结构不同,抽取规则也不同。 
    网上数据库查询的结果通常是一系列的包含超级链接的网页。文献[14]把这类网页分成三 
    类:一层一页,即一个页面即包含了所有的查询结果;一层多页,即需要调出多个链接才 
    能获得所有的结果;两层页面,即第一层是列表式条目链接,点击链接后才能看到详细资 
    料。 
    第2.7.节          小结 
    IE领域是近十年来新发展起来的研究领域,一是由于“消息理解研讨会”(MUC)的推动,二 
    是由于网上内容的大量增加。 
    IE对自由文本和结构化文本都能处理。NLP技巧通常用于自由文本,对结构化和半结构化文 
    本并不是太适合。相反,基于分隔符和字符的方法更能奏效。 
    因特网是包含大量半结构化文本的信息源。网页与传统的文本相比,有许多特点:量大, 
    常更新,变化多,页面的一大半包含结构化的文字块,还可能有超链接。因此,网页为信 
    息抽取研究带来新的挑战。 
     
    第三章  分装器生成 
    第3.1.节                分装器 
    第3.2.节                从IE发展成WG  
    第3.3.节                分装器生成 
    第3.4.节                分装器的归纳学习 
    第3.5.节                小结  
      
    各网站的信息内容互相独立,要收集起来有困难。信息抽取技术就是冲着解决此困难而来 
    的。 
    因特网上还存在一个被称为“暗藏网”(the hidden web),即那些网上数据库系统。文 
    献[37]估计因特网上80%的内容存在于这种看不见的因特网中。搜索引擎的“网络爬虫”抓 
    不到这些网页。这就意味着需要一种独立的工具从这些网页中收集数据。 
    从网站中抽取信息的工作通常由一种叫做“分装器”(Wrapper,也译“包装器”)的程序 
    完成。以下3.1.和3.2.节将介绍分装器的概念及分其生成(Wrapper Generation, WG)研 
    究的历史。第3.3.节总结了构造分装器的不同方法。手工制造分装器的工作繁重,因此, 
    自动生成的研究变得非常重要。机器学习的方法非常诱人,第3.4.节介绍了归纳式学习的 
    相关技巧。 
    第3.1.节                分装器 
    分装器是一个程序,用于从特定的信息源中抽取相关内容,并以特定形式加以表示。在数 
    据库环境下,分装器是软件的组成部分,负责把数据和查询请求从一种模式转换成另外一 
    种模式。在因特网环境下,分装器的目的是把网页中储存的信息用结构化的形式储存起来 
    ,以方便进一步的处理。 
    因特网分装器可接受针对特定信息源的查询请求,并从该信息源中找出相关的网页,然后 
    把需要的信息提取出来返回给用户。它由一系列的抽取规则以及应用这些规则的计算机程 
    序代码组成。通常,一个分装器只能处理一种特定的信息源。从几个不同信息源中抽取信 
    息,需要一系列的分装器程序库。分装器的运行速度应该很快,因为它们要在线处理用户 
    的提问。它还要能应付网络经常变化、运行欠稳定的特点。比如,网络连接失败、文档格 
    式混乱、格式变化等。 
    建造针对网页的分装器主要有两个好处:一是提高了从某一特定信息源获取相关信息的能 
    力,二是能把不同信息源的信息整合到数据库中,用通用查询语言即可查找信息。 
    第3.2.节                从IE发展成WG 
    人们需要能从不同网页资源抽取并整合数据的工具。这种需求造就了分装器生成研究领域 
    的发展。分装器生成(WG)领域独立于传统的IE领域。典型的WG应用系统能从网上数据库 
    返回的查询结果网页中抽取数据。这些网页构成一个被WG业内人称之为“半结构化”的信 
    息源。为了能把这些网页的数据整合在一起,必须把相关的信息从这些网页中抽取出来。 
    因此,分装器实质上是针对某一特定信息源的IE应用系统。 
    传统的IE系统采用基于句法和语义条件相结合的抽取模式。如前所述,对于半结构化信息 
    源,基于语言知识的模式并不是很管用。典型的WG系统生成的是基于分隔符的抽取模式。 
    由于这类网页均是在一个统一的模板上即时生成的,因此,只要学习了几个样本网页后, 
    系统即能识别分隔符特征串,构成不同的模板区域。 
    从网页中抽取信息并不容易,要考虑许多问题,例如信息量膨胀的问题、系统灵活性的问 
    题等。 
    第3.3.节                分装器生成 
    可用人工或半自动的办法生成分装器。手工生成分装器通常需要编写专用的代码,要花很 
    多时间理解文档的结构并将其转换成程序代码。虽然处理半结构化的网页要容易一些,但 
    并仍然还是比较烦琐而且容易出错。 
    有一些工具可帮助手工生成分装器。使用的方法之一是利用描述性语法对网页结构进行描 
    述,并且提供工具生成代码。不过,编写语法本身就是一项很艰巨和耗时的工作,而且需 
    要高水平的专家。 
    手工构造的IE系统不能适应处理对象所属领域的变化。每个领域都要有相应的分装器,维 
    护成本很高。对于网上信息源来说,这些缺点尤为明显,因为网页数量庞大,内容和结构 
    繁杂,而且新的信息源不断增加,旧的信息还会改变,因此,帮助生成自动抽取网页信息 
    的分装器的技术变得非常重要。 
    半自动化生成分装器的技术得益于上述分装器生成的支持工具。一种方法是使用向导让用 
    户告诉系统那些信息是需要抽取的。通过图形界面,用户即可以通过演示编写程序,标示 
    出需要抽取的区域。这意味着在分装器编码过程中不需要专业知识,而且比手工编码少产 
    生错误。但是,用这种方法也需要对新的站点进行重新的学习,因为这种系统不能自己学 
    习新的网站结构,也不能处理旧网站的结构变化。 
    全自动分装器的生成利用机器学习的技巧,开发学习算法,设计出从非常简单到相对复杂 
    的分装器。即使是全自动的方法也需要人工专家的少量参与。系统必须通过学习阶段,从 
    例子中归纳出规则。通常,这个过程是由人工指导的。 
    分装器归纳法是一种自动构造分装器的技术。主要思想是用归纳式学习方法生成抽取规则 
    。用户在一系列的网页中标记出需要抽取的数据,系统在这些例子的基础上归纳出规则。 
    这些规则的精确度如何取决于例子的质量如何。如果能代表那些需要处理的网页,那么, 
    这些例子就是高质量的。 
    第3.4.节                分装器的归纳学习 
    用于IE的机器学习方法有很多,如符号化学习法,ILP(归纳逻辑设计法),分装器归纳法 
    ,统计法和语法归纳法。在分装器归纳法中,分装器的生成被描述成一种归纳学习问题。 
     
    在最高层次,归纳学习法是从一些实例中完成未知目标概念的计算任务,是对现象的一种 
    概括。主要思路是,如果归纳出来的规则能解释观察到的实例,或者在新事例出现时能做 
    出准确的预测,那么,这种归纳是成功的。在分类、知识获取、知识发现等任务中被证明 
    是有用的。 
    归纳学习法是通过推论来完成的。推论是一种从部分到整体、从个别到一般、从个体到普 
    遍的推理过程。老师提供几个实例给学生,学生则从中归纳出普遍适用的规则。人类的学 
    习是基于实验性的观察过程中的,对于我们来说,提供好的观察事例要比提供明确的完整 
    的规则要容易。总的说来,归纳式学习法是一种建立在假设的基础上的研究方法。 
    有指导的归纳式学习法可以分为两类:零阶(zero-order)和一阶(first-order)学习法。两 
    者的区别在于其训练数据和所形成的理论的表达方式的不同。 
    零阶学习法所采用的事例是事先分好类的。每个事例都由对应于固定属性集合的特定值描 
    述。这类系统发展的理论以决策树(Decision Tree)或生成规则(Production Rules)的 
    形式出现,把事例的类和它的属性值联系起来。不幸的是,决策树的学习系统缺少表达能 
    力,因为它们建立在命题逻辑的基础上,不能学习到对象之间的关系(如家族成员的关系 
    )之类的概念。从数据库角度看,他们只能处理“属性-值”这种关系。  
    关系型一阶学习法可在带有结构信息的例子中进行归纳,例如一阶逻辑谓词和函数,无界 
    限结构体(Unbounded Structures,如列表,树)等。尤其是ILP方法,专门研究从例子中 
    归纳一阶逻辑形式的规则,逻辑编程的学习以及其他关系型知识。 
    ILP的研究介于机器学习和逻辑编程两种传统研究领域之间。许多其他的机器学习算法均限 
    定于处理有限的基于特征表达的例子和概念,而不能处理复杂的关系型和递归型知识。但 
    ILP借助一阶逻辑的表达能力,可以学习关系和递归概念。ILP还可以学习更丰富的表达式 
    和比决策树更复杂的概念,因此,已应用于解决从包含复杂结构和关系的文档中抽取信息 
    的学习中。 
    ILP算法采用两种不同的归纳方法:一是自下而上(概括),另一是自上而下(具体化)。 
    自下而上的方法是数据驱动的。先选择几个例子,在此基础上提出一个假设,使之能处理 
    这些例子。然后把这个假设推而广之,使之能处理其余例子。自上而下的方法则先从最普 
    遍的假设开始,通过引入反例,把假设规则不断具体化。总的说来,自上而下算法可以归 
    纳出一大类的逻辑程序,但需要相对多的样例。而自下而上算法有为数不多的例子就行了 
    ,但只能归纳出一小类的程序。 
    目前已经有了几个实验ILP系统,包括有名的FOIL[47]和GOLEM[39]。FOIL由Quinlan于19 
    89年开发,采用自上而下的算法。在一个既有正又有反的事实的训练集中,先找出一个 
    只覆盖正例而不涉及反例的逻辑子句(clause),然后把这个子句覆盖的事实从训练集中删 
    除。如此直到训练集中没有正例为止。GOLEM(Muggleton and Feng 1990)采用贪婪覆盖 
    算法(Greedy Covering Algorithm)。子句的生成是自下而上的,建立在更多具体子句的 
    “最少概括”(least-general)的概括生成上。概括一直进行直到所有的正例都被覆盖而 
    无一个反例被涉及。 
    第3.5.节                小结 
    可以预计,网上结构化信息将不断增加。通过查询网上数据库所获得的网页也将不断增加 
    。这些网页是无法让搜索引擎获取的。因此,越来越需要可以把相关信息从这些网页中抽 
    取出来的工具。 
    分装器是专门从特定信息源中抽取需要的信息并返回结果的程序。对于从不同信息源中整 
    合信息资料是非常有用的。由于这种需求不断增加,分装器生成的研究领域从传统的IE领 
    域中脱颖而出。相比之下,生成分装器所采用的技术比较少依赖句子的全面语法分析和NL 
    P技术。 
    分装器可由程序员直接编写,或手工指定网站结构再由程序自动生成规则和代码。无论是 
    哪种情况,这个过程都是费时费力的,而且网页的结构经常变化,新网页层出不穷。这样 
    ,必须建造新的分装器。为此,网上信息抽取的研究转向了半自动和自动生成分装器的工 
    作上。 
    分装器归纳法是用机器学习方法自动生成分装器的方法。在归纳法中,分装器的生成被看 
    成是归纳学习的问题,其任务是从一组例子中计算出一般规则,以解释观察到的事实。教 
    师提供例子,学生在例子的基础上作出归纳,推导出规则。 
    归纳逻辑编程方法处于传统的机器学习领域和逻辑编程之间,使用一阶逻辑规则。得益于 
    一阶逻辑丰富的表达能力,ILP方法可以学习关系型和嵌套概念。这是大多数基于“属性- 
    值”表达方式的机器学习算法所无法达到的。ILP方法为此被应用到学习如何从复杂结构和 
    关系的文档中抽取信息。  
     
     
    第四章         分装器生成系统简介 
    第4.1.节        处理结构化和半结构化网页的系统...  
    第4.1.1.节     ShopBot  
    第4.1.2.节     WIEN..  
    第4.1.3.节     SoftMealy.  
    第4.1.4.节     STALKER.  
    第4.2.节        处理半结构化和非结构化网页的系统...  
    第4.2.1.节     RAPIER.  
    第4.2.2.节     SRV.  
    第4.2.3.节     WHISK.  
    第4.3.节        小结...  
    早期从网站上抽取信息的方法基本上是基于手工操作的。程序员认真研究网站的结构后手 
    工编写代码,开发一个分装器程序,把网页的逻辑特征抽取出来并把他们存入到数据库。 
    TSIMMIS[13,25,28,29]系统和“斯坦福-IBM多信息源管理系统(1995)”是比较早的帮 
    助建造分装器程序的框架系统。TSIMMIS的目标是以一体化的方式获取不同信息源的信息并 
    且保证所获取信息一致性。其重点是开发支持这种包装过程的语言和工具。 
    对于数据量大,结构动态变化的网站而言,需要一种更为有效的分装器建造方法。一般说 
    来,数据库领域的人把注意力放在错综复杂的信息如何进行整合,分装器则用手工建造。 
    另一方面,AI领域的人则把重点放在机器学习的方法如何能用在网站结构的自动学习上。 
    本章将重点介绍分装器的自动或半自动的生成系统。 
    分装器及其自动生成的复杂度和难易度将取决于网站结构的层次。第4 .1.节介绍的系统主 
    要是针对结构化程度相对好的网站。这类系统多数是源自分装器生成领域的研究者。第4. 
    2.节介绍了能处理结构缺少规范化的网页。这类系统较多地受到传统的IE领域的影响。 
    第4.1.节                处理结构化和半结构化网页的系统 
    本节介绍ShopBot, WIEN, SoftMealy 和STALKER系统。这类系统可以说是属于分装器生成 
    系统,专门用来从网站数据库系统生成的网页。采用分隔符为主的抽取规则,无需用到句 
    法和语义知识,局限于处理比较结构化的数据。 
    第4.1.1.节         ShopBot 
    开发者:R. B. Doorenbos, O. Etzioni, D. S. Weld (1996/1997)[17,18]。 
    ShopBot是比价代理系统,专门从网上卖家的网站上抽取信息,因此,比其他系统的局限性 
    要大。其算法主要针对以表单形式提供查询的页面,而且返回的搜索结果是以表格形式显 
    示的产品信息页面。从结果页面中抽取信息的技巧结合了启发式搜索、模式匹配和归纳式 
    学习。 
    ShopBot的运行分两个阶段:离线学习阶段和在线比价阶段。在学习阶段,系统分析每个购 
    物网站,获得其符号化描述,然后在比价阶段,利用获得的符号化描述,从网站上抽取信 
    息,找到用户指定的产品的最低价格。 
    在学习阶段,系统利用简单的启发式方法找到正确的检索表单,学习如何向该表单发送查 
    询请求。学习程序还必须判定查询结果页面的格式。一般包括头部、主体和尾部等三部分 
    。头尾两部分在所有的结果页面中都是一致的,而主体则包含了想要的产品信息。结果页 
    面的格式是通过三个步骤判定的: 
    第1步:获取“找不到产品”的失败页面。用不存在的词(如“xldccxx-no-product”)作 
    为关键字查询数据库,然后分析返回的页面。 
    第2步:找到头尾部分。用可能存在的产品名称去查询数据库,通过分析返回的页面找到头 
    尾部分。 
    第3步:判定包含产品信息的主体格式。首先用HTML标记和字串对可能的产品信息摘要进行 
    定义和表示。网页主体被切分成“逻辑行”,代表“垂直空格分隔”(vertical-space-de 
    limited)的文本。学习程序用逻辑行比较不同的摘要形式,找到最佳匹配。这样可以找到 
    产品的描述格式,但是不能归纳出信息栏的名称。最关键的价格信息是用手工编码的方法 
    获取的。 
    第4.1.2.节         WIEN 
    开发者:N. Kushmerick (1997) [33,34]。 
    “分装器归纳生成环境”(WIEN-Wrapper Induction Environment)是辅助分装器生成的 
    工具,为网页的自动分析而设计,受到ShopBot的影响。不过,Kushmerick 是第一个提出 
    分装器归纳生成这一术语的。其方法不只局限于某一领域,适用于所有包含表格信息的结 
    构化文本,也不只是用于HTML文本。 
    这种方法可以处理被他们称之为具有HLRT结构的网页:头分隔符、左右分隔符(在每个待 
    抽取的事实的左右)和尾分隔符。系统寻找标记信息点开始和结尾的统一的分隔符,以及 
    那些把表格信息与其他周围信息分开的分隔符。符合这一规则的页面几乎都是搜索数据库 
    所得的结果页面。 
    Kushmerick力图尽量自动化,避免用人工标记样例,因此开发了一系列自动标记样例的方 
    法。标记算法需要输入特定领域(domain-specific)的启发学习规则,目标是找到待抽取 
    属性的值。系统虽然需要输入学习规则,但却不管这些规则是如何获得的,可以手工编制 
    。即使是这样,比起标记整个网站来,其工作量要小。 
    系统采用归纳学习法,从查询结果样例中生成分装器。归纳算法是:把标记好的网页作为 
    输入,然后搜索由“HLRT分装器模型”定义的分装器空间(space of wrappers),反复尝 
    试所有可能的分隔符,直到找到与标记网页相一致的HLRT分装器。系统还采用基于机器学 
    习理论的模型来预测需要学习多少个例子,以保证所生成的分装器的出错几率控制在一特 
    定的范围内。 
    由于WIEN只考虑与待抽取数据紧相邻的分隔符,因此不能包装那些数据不全或信息项次序 
    不固定的网页。系统采用的是多栏(Multi-slot)规则,这就意味着能把相关的信息联在 
    一起,而单栏规则只能抽取孤立数据(例如,若一篇文档包含多个姓名和地址,使用单栏 
    规则不能辨认出哪个地址是属于某人的)。 
    第4.1.3.节        SoftMealy 
    开发者:C-H. Hsu (1998)[30,31]。 
    Kushmerick之后,有好几个别的系统研发出来,力图改进WIEN的分装器归纳算法。SoftMe 
    aly是一个通过学习分装器学习从半结构化网页中抽取信息的系统。其分装器被称为“非确 
    定有限自动机”(non-deterministic finite automata)。这种表达模式和学习算法据说 
    可以处理缺失值、一栏多值和变量改变(permutations)的情况。  
    系统从训练样例中归纳上下文规则。训练样例提供一个有顺序的事实列表以及事实间的分 
    隔符。归纳生成分装器时,把一系列带标记元组(labeled tuples)作为输入。这些元组 
    提供了分隔符的位置和事实次序变化的信息。这些信息被归纳为上下文规则作为结果输出 
    。 
    归纳生成的分装器是一个“非确定有限自动机”。其状态代表待抽取的事实,状态的转换 
    代表定义分隔符的上下文规则。状态的转换由上下文规则的匹配结果来确定。分装器通过 
    识别事实周围的分隔符来抽取事实。 
    SoftMealy的规则允许使用通配符,而且能处理信息缺失和次序变化。然而,为了能处理不 
    同次序的事实,系统需要学习其各种可能的次序。总的说来,SoftMealy的抽取模式比WIE 
    N规定的要更有表达能力。 
    第4.1.4.节        STALKER 
    开发者:I. Muslea, S. Minton, C. Knoblock. (1998) [42,43,44]。 
    STALKER采用指导学习的算法归纳抽取规则。训练例子由用户提供。用户需选择若干样例页 
    面并把有用的数据(即所谓“EC树”的叶子)标记出来。页面被标记好后,系统可生成一 
    符号序列(the sequence of tokens),用来表示页面的内容,还生成代表信息点开始的 
    符号索引。符号系列(字、HTML标记)和通配符被作为定位标志,用于找到页面上的数据 
    。分装器归纳算法产生抽取规则并表示为简单的标志语法(landmark-grammars)。此法可 
    处理文本,但不能处理链接信息。 
    网页文档用所谓的“内嵌目录”( Embedded Catalog)表示。那是一个树形结构,其内部 
    节点或是同构的(homogeneous)信息点列表,或是异构信息点元组(tuples)。根节点是 
    整篇文档,任一节点的内容代表其父节点内容的一个接续(subsequence)。末节点即是用 
    户需要抽取的数据。   
    STALKER采用线性覆盖算法(sequential covering algorithm)。首先生成线性标志自动 
    机(landmark automata)。这些自动机能产生尽可能多的训练正例(positive training 
     examples)。该自动机实际上是一个“非确定有限自动机”。其状态的变化只有在字符串 
    输入为了目前状态与下一状态间的转换而被接受时才发生。然后系统试图生成新的自动机 
    以覆盖剩余的例子,一直到所有的训练例子都被覆盖为止。这时,STALKER返回一个被称之 
    为SLG(简单标记语法)的解决方法。其每个分支都对应一个学习获得的标记自动机。 
    STALKER可以包装有任意层结构的信息源。每个节点的抽取与其子节点独立,因此,文档中 
    信息点的次序是没有关系的。对于信息点缺失或次序多变的文档一样能处理。这就比只能 
    处理固定次序的WIEN等系统更灵活。与同样能处理信息点缺失或次序多变文档的SoftMeal 
    y不同,STALKER无需把各种可能的次序变化都学习到。 
    STALKER采用的规则与WIEN的不同,是单栏的。不过由于STALKER利用EC树把从多栏模板中 
    取出的单个信息点集在一起,因此没有什么缺陷。 
    第4.2.节                处理半结构化和非结构化网页的系统 
    本节介绍RAPIER,SRV和WHISK系统。这些系统比上节介绍的要复杂一些,能处理的文本类 
    型要多一些。虽然如此,它们并不依赖语义和句法信息,只是在可能的情况下利用这些知 
    识,而且能发挥混合抽取模式的作用。 
    这些系统更接近传统的信息抽取方法,可以说处于IE和WG中间,因为它们的重点是开发用 
    机器学习方法来解决IE问题。所用的方法以归纳逻辑编程(inductive logic programmin 
    g)或关系学习(relational learning)为基础,而且与归纳算法有关,比如FOIL算法( 
    SRV, WHISK采用)和GOLEM算法(RAPIER采用)。 
    第4.2.1.节              RAPIER 
    开发者:E. Califf (1997) [11,12]。 
    RAPIER(Robust Automated Production of Information Extraction Rules,健壮的信息 
    抽取规则自动生成系统)以半结构化文本为处理对象,学习抽取规则,为整个IE过程服务 
    。系统需要输入指明待抽取信息的“文档-充实模板”(filled template)组对作为训练 
    内容,从中获得模式匹配规则,抽取“填充子”(filler)填充模板中的空槽。 
    学习算法结合了多个归纳逻辑编程系统所采用的技巧,能学习无界限模式。这些模式包含 
    了对词的限制条件和填充子周围的词性。学习算法由一个从具体到一般(即自下而上)的 
    搜索,从训练中与目标槽匹配的最具体的规则开始。随机从规则库中抽取一对对规则,然 
    后横向搜索(beam search),以图找到这两条规则的最佳概括,采用最少概括的概括方法 
    (a least general generalization),增加限制条件,不断重复后直到不再有进展为止 
    。 
    RAPIER的抽取规则是建立在分隔符和内容描述的基础上的,即使用了能利用句法和语义信 
    息的模式所表达的规则。系统使用了一个词性标注程序获取句法信息,使用了一个语义类 
    别词典获取语义信息。标注程序以句子为输入单位,把词标注为名词、动词、形容词等, 
    速度和健壮性都比完全句法分析器快和优,但给出的信息有限。 
    信息抽取规则用模板名和格栏(slot)名索引,由三部分组成:前填充子(pre-filler) 
    :一个应匹配目标文本之前的文本的模式(pattern);填充子:一个应匹配目标文本的模 
    式;后填充子:一个应匹配紧接目标文本之后的文本的模式。 
    一个模式是一串模式信息点(pattern items),要求一个一个词匹配,或者是模式列表( 
    pattern lists),可匹配N个词。文本必须满足模式规定的条件才算匹配成功。可能的条 
    件包括文本必须是(I)一组词,其中一个必须与文档文本匹配;(II)一组句法标记,其 
    中一个标记必须与文档文本的标记匹配;或者(iii)一组语义类别,文档文本必须属于其 
    中一类。 
    这种以目标词组为中心设定抽取区域的方法意味着系统只能进行单格抽取。但是,若把文 
    本分成超过三个区域,系统或许能进行多格抽取。 
    第4.2.2.节              SRV 
    开发者:D. Freitag (1998) [21,22,23]。 
    SRV(Sequence Rules with Validation,带确认功能的次序规则)是一种自上而下、关系型 
    的信息抽取算法。其输入是一系列的网页,上面标记了待抽取区域的实例(instance), 
    以及一系列基于字串(token)的特征。输出是一系列的抽取规则。 
    SRV把信息抽取问题看成是一种分类问题。文本中所有可能的短语(取最长者)都是实例。 
    文档中的候选实例被提交到分类器。系统会给每个短语赋一个测量值,用于反映该短语作 
    为目标格填充子的信度。最初版本的SRV采用的分类器是一个关系型规则的学习器,使用的 
    归纳方法类似于FOIL的自上而下的办法。在文献[23] 中,他们采用了另外两个分类器,机 
    械背诵学习器(rote learner)和简单贝叶斯分类器( naive Bayes classifier),并 
    与原来的分类器作了比较。 
    SRV利用的特征分两种:简单特征和关系特征。字词的长度、类型、拼写、词性等属于简单 
    特征。关系特征反映字词的相邻度。正是这一特征使SRV具有关系型的特点。 
    SRV的学习素材包括训练集文档中与最短实例区(field instance)一样长(以词的个数计 
    算)的字串,但不能长过最长的实例。抽取过程即是检验长度适合的字串是否与规则匹配 
    的过程。 
    SRV与FOIL一样,从学习所有正反例子开始。所谓反例是没有被标记为实例区的字串。归纳 
    过程也是用正排除法,即当一条规则覆盖的例子全部是正例,或该规则已无法继续具体化 
    时,所有与之匹配的正例将被从训练集中删除。然后重复以上过程。 
    SRV的规则具有较强的表达能力,且无需先进行句法分析。SRV与STALKER和RAPIER有类似之 
    处,能把与其他相关信息点独立的特定信息点抽取出来。关系型学习器也与RAPIER的一样 
    用于抽取单格信息点。这与WIEN等抽取多格信息的系统不一样。 
    第4.2.3.节              WHISK 
    开发者:S. Soderland (1998) [52]。 
    WHISK系统能处理的文本对象很全面,从结构化程度很强的文本到网页等半结构化文本,还 
    能处理新闻等纯文本。处理结构化或半结构化文本时,WHISK无须事先经过句法分析,但处 
    理自由文本时,最好能先对文本作句法和语义标注。 
    系统采用指导学习算法,而且需要输入一系列手工标注的训练实例。标注和学习过程是交 
    织在一起的。每次循环,系统将提交一批实例让用户标注,系统则从标注的实例中归纳出 
    规则。 
    开始时,输入的文本是未标注的,训练集也是一个空集。系统会从文本中挑选一批实例( 
    即小于整个文档的文字单位),让用户把需抽取的部分加上标记。怎样的字串会被选为实 
    例呢?这取决于文档的类型。对于结构化和半结构化文档来说,系统根据HTML标记或其他 
    字符串表达式把文本切成多个实例。对自由文本,实例的切分将由一个句子分析器完成。 
    在这种情况下,一个实例可能是一个句子或者句子的一部分。 
    训练实例上的标记将指导抽取规则的生成,并且检验规则的效果。如果规则被成功应用到 
    一个实例上,那么该实例则被认为被规则“覆盖”了。如果抽取出来的词组与实例上的标 
    记相吻合,则认为该词组的抽取是正确的。 
    WHISK属于机器学习算法家族中的覆盖学习法,与自上而下的学习分类归纳法相关。首先, 
    找到一个最宽泛(general)的能覆盖规则种子的规则,然后一次加一个条件,直到错误率 
    为零,或者满足一个事先设定的标准为止。用来衡量新条件增加的标准是规则的Laplacia 
    n期望错误值。计算公式如下:(e+1)/(n+1)  。n是训练集中抽取出来的字串数,e是这些字串中应用规 
    则所产生的错误数。学习过程一直进行,直到能覆盖所有该被覆盖的抽取字串都被覆盖为 
    止。最后把那些过适(overfitting)规则删除掉。 
    WHISK与SRV、RAPIER等一样可以处理结构化和非结构化文本,但没有“单格”抽取法的缺 
    陷。象WIEN一样,WHISK通过多格“格框架”(Case Frame),把有关的信息联系在一起。 
    WHISK与SRV和RAPIER也不同,操作的对象不是整个文档,而是象句子或类似长度的文本。 
      
    WHISK象SoftMealy一样可以处理信息点顺序变化的情况,但需要输入各种例子,以便学习 
    所有可能的排序。由于其特征集的表达能力不强,因此不能表达否定特征(negated feat 
    ures),比SRV的性能要差一些。 
    第4.3.节                小结 
    本章比较了几个分装器的自动学习系统。表 4. 1 总结了这些系统的特点。

    表 4. 1. 七个系统的功能特征比较

    系统            结构化    半结构化    自由式    多槽    缺失信息    次序变化
    ShopBot        X                              
    WIEN             X                                     X            
    SoftMealy      X           X                                     X             X*
    STALKER        X           X                        *           X             X 
    RAPIER          X           X                                     X             X
    SRV               X           X                                     X             X
    WHISK          X           X             X         X           X             X*

     

    第五章         商用系统简介 
    第5.1.节        应用范围...  
    第5.2.节        商用系统...  
    第5.2.1.节     Junglee.  
    第5.2.2.节     Jango.  
    第5.2.3.节     MySimon.  
    第5.3.节        小结...  
    因特网上的海量信息是世界各地的用户都能获得的,因此,能帮助完成信息自动收集和分 
    析的代理程序是非常有用的。具有如此技术的应用程序有很多。 
    本章第1节介绍了信息抽取应用系统已被试用的几个领域。第2节介绍了首批商用系统。 
    第5.1.节          应用范围 
    网上有很多有用的信息,例如电话黄页、产品目录、股票行情、天气预报等。这些信息可 
    能不是由一个网上数据库提供,而是分散在多个数据库中。这些数据库可供用户输入关键 
    字等查询条件进行搜索,然后自动生成网页,把结果显示出来。 
    一般说来,把来源分散的数据集中在一起是非常有用的。但是,以浏览器为界面的浏览方 
    式不直接支持把不同网站的数据集成起来,因此,信息抽取工具便有了用武之地。 
    前一章节介绍的系统对几种不同的网页信息进行了处理。下面重温一下其中几类: 
    * 产品描述 
    ShopBot专为此设计[17,18],用于比价购物。所抽取的产品信息按价格排序。 
    * 餐厅指引 
    STALKER被用来抽取不同网站上的餐厅信息,如餐厅名称、菜肴种类、价格、烹调方法、地 
    址、电话和评价。[42,43]  
    * 讲座通知 
    SRV试用在讲座信息的抽取任务上,把讲者、地点、时间等信息抽取出来。 
    * 招聘广告 
    RAPIER和WHISK被用于招聘广告的信息抽取。需抽取的信息点包括职位名称、工资、地点等 
    。 
    * 人事更迭公告 
    这项任务需要处理自由式文本,属于传统的信息抽取任务。WHISK曾被实验从一堆华尔街金 
    融杂志的文章中分析出公司管理层的人事更迭事件[52]。目标是抽取出公司名称、职位、 
    新任人员的姓名、卸任人的姓名。 
    以上只是这种技术可发挥作用的许多应用领域中的很小的一部分。其他还有很多例子,例 
    如,租赁广告、地理信息、假日旅游信息、天气预报、参考书目信息等。 
    总的说来,具有信息抽取和收集功能的代理程序可以用于处理任何列表式的、分散在一堆 
    网页上的数据。 
    第5.2.节          商用系统 
    在上节提到的应用中,比价购物是主要的商用领域之一。其原因之一是近来对电子商务的 
    普遍关注以及因特网上与此相关的应用在不断增长。 
    另一原因是这类网上商店网站专门为用户快速找到商品而设计,具有统一的外观和风格。 
    这就为比价系统自动处理商品信息带来了便利。 
    由于不同商家经常经营同一商品,因此,从不同商家网站中收集并比较同一产品的价格的 
    服务受到网上购物用户的欢迎。通常,网上商店提供的商品信息是存在数据库系统中的。 
    用户需要这些信息时,系统将根据用户的请求从数据库中提取数据,当即显示给用户。这 
    部分的信息成为了“暗藏网”(hidden web),因为搜索引擎查不到这些数据。比价系统 
    成为除手工收集以外的这类信息获取的唯一途径。 
    下面将介绍三种商用比价系统:Junglee,Jango和MySimon。它们是市面上最引人注目的系 
    统,实现方法各有千秋。Jango和mySimon用的是在线模式,即当用户发出请求时马上到各 
    网站查找信息。Junglee则先把数据收集下来,在必要的时候进行更新。 
    每个系统都是在用户的请求下返回产品清单,用户可对清单上的价格作出比较并决定从哪 
    个商家中购买。下面对以上系统作一简要介绍。 
    第5.2.1.节        Junglee 
    1996年斯坦福大学的研究生们创建了Junglee。1998年Amazon以大约1亿8千万美圆的价格收 
    购了该系统。Junglee使用的是一种被成为虚拟数据库(Virtual Database, VDB)的技术 
    ,并利用HTML和XML的混合形式表示从多个网站中获取的信息 [46,48] 。 
    VDB把分散的数据收集下来,规范化并整合起来,为程序员提供一个单一数据库的界面。分 
    装器负责与数据源对接,把数据转换成数据库。 
    VDB有两个主要组成部分:数据整合系统和数据发布系统。前者完成数据的抽取,后者定期 
    完成数据库更新。 
    数据整合系统有三个组成部分:一组分装器、一个影射器和一个抽取器。分装器提供对不 
    同网站的统一接口,用描述性编程语言建造,特别针对网站结构和链接网站间的特点而设 
    计。 
    影射器用预定义的影射规则,把抽取出来的数据转换成统一的格式。抽取器用字典和语言 
    学规则从非结构化的文本中归纳出其组织结构。两者都采用了特殊设计的语言来编写规则 
    。针对每个网站都有一个单独的分装器,而抽取器则针对所有类似网站。 
    第5.2.2.节        Jango 
    Jango的前身是ShopBot,是NETbot的产品。发源于华盛顿大学的研究者Oren Etzioni 和  
    Dan Weld的研究成果[17,18]。1997年10月Excite用3500万美圆收购了NetBot,把Jango整 
    合进其购物频道。 
    Jango由四部分组成[8]:(I)一个自然语言前端,能将用户请求转换成产品描述的逻辑表 
    示;(ii)一个查询路由器(query router),能判定产品类别,找出相关的一系列网站 
    ;(iii)一个集成引擎,能平行向选定的网站提交查询;(iv)一个过滤器,能用类似于 
    ShopBot 的方法,把信息抽取出来。 
    在学习阶段,Jango根据网上商店首页的URL和产品领域知识,学习如何在网站购物,能学 
    得每个商店的产品描述的格式,获取价格等产品属性。在购物阶段,这些学得的描述将被 
    用于抽取用户指定的产品信息。信息抽取是在线平行进行。结果以价格排序显示给用户。 
     
    第5.2.3.节        MySimon 
    MySimon是Michael Yang和Yeogirl Yun在1998年4月一起创建的。一种被称为虚拟学 
    习代理(Virtual Learning Agent-VLA)的技术由Yeogirl Yun开发并用于网站的学习中 
    。 
    VLA生成若干智能代理,能模仿人的采购行为,经过训练可从任何一个购物网站上抽取信息 
    。 
    代理的训练过程是通过一个图形界面进行的。训练者无须是编程人员。在浏览网上商店的 
    同时,系统会复制其获得的信息。根据训练者的操作行为和复制的信息,系统会生成能使 
    代理运行的编码。 
    第5.3.节          小结 
    信息抽取技术可以发挥作用的地方有许多。不过,最成功的要数比价购物。最近两年来, 
    比价购物系统已经投入商用。其中比较出色的是Jango, MySimon和Junglee。 
    Jango在线进行抽取,用机器学习方法学得网站结构。MySimon也以在线方式抽取信息,但 
    使用的学习方法不同。非程序员通过实际上网购物,教会智能代理学习如何从网站上抽取 
    相关的信息。 
    Junglee把数据抽取出来并储存在数据库中,然后用数据库作为比价系统的信息源。一种专 
    用的语言被用来描述网站结构并生成抽取过程所需的代码。 
     
     
    第六章         总结和讨论 
      
    第6.1.节        总结...  
    第6.2.节        讨论...  
    第6.1.节               总结 
    信息抽取是近十年来新发展起来的领域。MUC等国际研讨会给予高度关注,并提出了评价这 
    类系统的方法,定义了评价指标体系。 
    信息抽取技术的研究对象包括结构化、半结构化和自由式文档。对于自由式文档,多数采 
    用了自然语言处理的方法,而其他两类文档的处理则多数是基于分隔符的。 
    网页是信息抽取技术研究的重点之一。通常用分装器从一特定网站上抽取信息。用一系列 
    能处理不同网站的分装器就能将数据统一表示,并获得它们之间的关系。 
    分装器的建造通常是费事费力的,而且需要专门知识。加上网页动态变化,维护分装器的 
    成本将很高。因此,如何自动构建分装器便成为主要的问题。通常采用的方法包括基于归 
    纳学习的机器学习方法。 
    有若干研究系统被开发出来。这些系统使用机器学习算法针对网上信息源生成抽取规则。 
    ShopBot,WIEN ,SoftMealy和STALKER生成的分装器以分隔符为基础,能处理结构化程度 
    高的网站。RAPIER,WHISK和SRV能处理结构化程度稍差的信息源。所采用的抽取方法与传 
    统的IE方法一脉相承,而学习算法多用关系学习法。 
    网站信息抽取和分装器生成技术可在一系列的应用领域内发挥作用。目前只有比价购物方 
    面的商业应用比较成功,而最出色的系统包括Jango,Junglee和MySimon。 
    第6.2.节                讨论 
    目前的搜索引擎并不能收集到网上数据库内的信息。根据用户的查询请求,搜索引擎能找 
    到相关的网页,但不能把上面的信息抽取出来。“暗藏网”不断增加,因此有必要开发一 
    些工具把相关信息从网页上抽取并收集起来。 
    由于网上信息整合越来越重要,虽然网站信息抽取的研究比较新,但将不断发展。机器学 
    习方法的使用仍将成为主流方法,因为处理动态的海量信息需要自动化程度高的技术。在 
    文献[52]中提出,结合不同类型的方法,以开发出适应性强的系统,这应是一个有前途的 
    方向。在文献[36]中,一种混合语言知识和句法特征的方法也被提出来。 
    本文介绍的系统多数是针对HTML文档的。以后几年XML的使用将被普及。HTML描述的是文档 
    的表现方式,是文档的格式语言。XML则可以告诉你文档的意义,即定义内容而不只是形式 
    。这虽然使分装器的生成工作变得简单,但不能排除其存在的必要性。 
    将来的挑战是建造灵活和可升级的分装器自动归纳系统,以适应不断增长的动态网络的需 
    要。

     

     

    参考文献
     
    [1]  S. Abiteboul. 
    Querying Semistructured Data. 
    Proceedings of the International Conference on Database Theory (ICDT), Greece, 
    January 1997. 
    [2] B. Adelberg. 
    NoDoSE - A tool for Semi-Automatically Extracting Semistructured Data from Text 
    Documents. 
    Proceedings ACM SIGMOD International Conference on Management of Data, Seat- 
    tle, June 1998. 
    [3] D. E. Appelt, D. J. Israel. 
    Introduction to Information Extraction Technology. 
    Tutorial for IJCAI-99, Stockholm, August 1999. 
    [4] N. Ashish, C. A. Knoblock. 
    Semi-automatic Wrapper Generation for Internet Information Sources. 
    Second IFCIS Conference on Cooperative Information Systems (CoopIS), South Car- 
    olina, June 1997. 
    [5] N. Ashish, C. A. Knoblock. 
    Wrapper Generation for semistructured Internet Sources. 
    SIGMOD Record, Vol. 26, No. 4, pp. 8--15, December 1997. 
    [6] P. Atzeni, G. Mecca. 
    Cut & Paste. 
    Proceedings of the 16'th ACM SIGACT-SIGMOD-SIGART Symposium on Principles 
    of Database Systems (PODS'97), Tucson, Arizona, May 1997. 
    [7] M. Bauer, D. Dengler. 
    TrIAs - An Architecture for Trainable Information Assistants. 
    Workshop on AI and Information Integration, in conjunction with the 15'th National 
    Conference on Artificial Intelligence (AAAI-98), Madison, Wisconsin, July 1998. 
    [8] P. Berka. 
    Intelligent Systems on the Internet.
    http://lisp.vse.cz/ berka/ai-inet.htm, Laboratory of Intelligent Systems, University 
    of Economics, Prague. 
    [9] L. Bright, J. R. Gruser, L. Raschid, M. E. Vidal. 
    A Wrapper Generation Toolkit to Specify and Construct Wrappers for Web Accessible 
    Data Sources (WebSources). 
    Computer Systems Special Issue on Semantics on the WWW, Vol. 14 No. 2, March 
    1999. 
    [10] S. Brin. 
    Extracting Patterns and Relations from the World Wide Web. 
    International Workshop on the Web and Databases (WebDB'98), Spain, March 1998. 
    [11] M. E. Califf, R. J. Mooney. 
    Relational Learning of Pattern-Match Rules for Information Extraction. 
    Proceedings of the ACL Workshop on Natural Language Learning, Spain, July 1997. 
    [12] M. E. Califf. 
    Relational Learning Techniques for Natural Language Information Extraction. 
    Ph.D. thesis, Department of Computer Sciences, University of Texas, Austin, August 
    1998. Technical Report AI98-276. 
    [13] S. Chawathe, H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J. 
    Ullman, J. Widom. 
    The TSIMMIS Project: Integration of Heterogeneous Information Sources. 
    In Proceedings of IPSJ Conference, pp. 7--18, Tokyo, Japan, October 1994. 
    [14] B. Chidlovskii, U. M. Borghoff, P-Y. Chevalier. 
    Towards Sophisticated Wrapping of Web-based Information Repositories. 
    Proceedings of the 5'th International RIAO Conference, Montreal, Quebec, June 1997. 
    [15] M. Craven, D. DiPasquo, D. Freitag, A. McCallum, T. Mitchell, K. Nigam, S. Slattery. 
    Learning to Extract Symbolic Knowledge from the World Wide Web. 
    Proceedings of the 15'th National Conference on Artificial Intelligence (AAAI-98), 
    Madison, Wisconsin, July 1998. 
    [16] M. Craven, S. Slattery, K. Nigam. 
    First-Order Learning for Web Mining. 
    Proceedings of the 10'th European Conference on Machine Learning, Germany, April 
    1998. 
    [17] R. B. Doorenbos, O. Etzioni, D. S. Weld. 
    A Scalable Comparison-Shopping Agent for the World Wide Web. 
    Technical report UW-CSE-96-01-03, University of Washington, 1996. 
    [18] R. B. Doorenbos, O. Etzioni, D. S. Weld. 
    A Scalable Comparison-Shopping Agent for the World-Wide-Web.
    Proceedings of the first International Conference on Autonomous Agents, California, 
    February 1997. 
    [19] O. Etzioni 
    Moving up the Information Food Chain: Deploying Softbots on the World Wide Web. 
    AI Magazine, 18(2):11-18, 1997. 
    [20] D. Florescu, A. Levy, A. Mendelzon. 
    Database Techniques for the World Wide Web: A Survey. 
    ACM SIGMOD Record, Vol. 27, No. 3, September 1998. 
    [21] D. Freitag. 
    Information Extraction from HTML: Application of a General Machine Learning Ap- 
    proach. 
    Proceedings of the 15'th National Conference on Artificial Intelligence (AAAI-98), 
    Madison, Wisconsin, July 1998. 
    [22] D. Freitag. 
    Machine Learning for Information Extraction in Informal Domains. 
    Ph.D. dissertation, Carnegie Mellon University, November 1998. 
    [23] D. Freitag. 
    Multistrategy Learning for Information Extraction. 
    Proceedings of the 15'th International Conference on Machine Learning (ICML-98), 
    Madison, Wisconsin, July 1998. 
    [24] R. Gaizauskas, Y. Wilks. 
    Information Extraction: Beyond Document Retrieval. 
    Computational Linguistics and Chinese Language Processing, vol. 3, no. 2, pp. 17--60, 
    August 1998, 
    [25] H. Garcia-Molina, J. Hammer, K. Ireland, Y. Papakonstantinou, J. Ullman, J. 
    Widom. 
    Integrating and Accessing Heterogeneous Information Sources in TSIMMIS. 
    In Proceedings of the AAAI Symposium on Information Gathering, pp. 61--64, Stan- 
    ford, California, March 1995. 
    [26] S. Grumbach and G. Mecca. 
    In Search of the Lost Schema. 
    Proceedings of the International Conference on Database Theory (ICDT'99), 
    Jerusalem, January 1999. 
    [27] J-R. Gruser, L. Raschid, M. E. Vidal, L. Bright. 
    Wrapper Generation for Web Accessible Data Source. 
    Proceedings of the 3'rd IFCIS International Conference on Cooperative Information 
    Systems (CoopIS-98), New York, August 1998.
    [28] J. Hammer, H. Garcia-Molina, J. Cho, R. Aranha, A. Crespo. 
    Extracting Semistructured Information from Web. 
    Proceedings of the Workshop on Management of Semistructured Data, Tucson, Ari- 
    zona, May 1997. 
    [29] J. Hammer, H. Garcia-Molina, S. Nestorov, R. Yerneni, M. Breunig, V. Vassalos. 
    Template-Based Wrappers in the TSIMMIS System. 
    Proceedings of the 26'th SIGMOD International Conference on Management of Data, 
    Tucson, Arizona, May 1997. 
    [30] C-H. Hsu. 
    Initial Results on Wrapping Semistructured Web Pages with Finite-State Transducers 
    and Contextual Rules. 
    Workshop on AI and Information Integration, in conjunction with the 15'th National 
    Conference on Artificial Intelligence (AAAI-98), Madison, Wisconsin, July 1998. 
    [31] C-H. Hsu and M-T Dung. 
    Generating Finite-Sate Transducers for semistructured Data Extraction From the 
    Web. 
    Information systems, Vol 23. No. 8, pp. 521--538, 1998. 
    [32] C. A. Knoblock, S. Minton, J. L. Ambite, N. Ashish, P. J. Modi, I. Muslea, A. G. 
    Philpot, S. Tejada. 
    Modeling Web Sources for Information Integration. 
    Proceedings of the 15'th National Conference on Artificial Intelligence (AAAI-98), 
    Madison, Wisconsin, July 1998. 
    [33] N. Kushmerick, D. S. Weld, R. Doorenbos. 
    Wrapper Induction for Information Extraction. 
    15'th International Joint Conference on Artificial Intelligence (IJCAI-97), Nagoya, 
    August 1997. 
    [34] N. Kushmerick. 
    Wrapper Induction for Information Extraction. 
    Ph.D. Dissertation, University of Washington. Technical Report UW-CSE-97-11-04, 
    1997. 
    [35] N. Kushmerick. 
    Wrapper induction: Efficiency and expressiveness. 
    Workshop on AI and Information Integration, in conjunction with the 15'th National 
    Conference on Artificial Intelligence (AAAI-98), Madison, Wisconsin, July 1998. 
    [36] Kushmerick, N. 
    Gleaning the Web. 
    IEEE Intelligent Systems, 14(2), March/April 1999.
    [37] S. Lawrence, C.l. Giles. 
    Searching the World Wide Web. 
    Science magazine, v. 280, pp. 98--100, April 1998. 
    [38] A. Y. Levy, A. Rajaraman, J. J. Ordille. 
    Querying Hetereogeneous Information Sources Using Source Descriptions. 
    Proceedings 22'nd VLDB Conference, Bombay, September 1996. 
    [39] S. Muggleton, C. Feng. 
    Efficient Induction of Logic Programs. 
    Proceedings of the First Conference on Algorithmic Learning Theory, New York, 
    1990. 
    [40] I. Muslea. 
    Extraction Patterns: From Information Extraction to Wrapper Induction. 
    Information Sciences Institute, University of Southern California, 1998. 
    [41] I. Muslea. 
    Extraction Patterns for Information Extraction Tasks: A Survey. 
    Workshop on Machine Learning for Information Extraction, Orlando, July 1999. 
    [42] I. Muslea, S. Minton, C. Knoblock. 
    STALKER: Learning Extraction Rules for Semistructured, Web-based Information 
    Sources. 
    Workshop on AI and Information Integration, in conjunction with the 15'th National 
    Conference on Artificial Intelligence (AAAI-98), Madison, Wisconsin, July 1998. 
    [43] I. Muslea, S. Minton, C. Knoblock. 
    Wrapper Induction for Semistructured Web-based Information Sources. 
    Proceedings of the Conference on Automatic Learning and Discovery CONALD-98, 
    Pittsburgh, June 1998. 
    [44] I. Muslea, S. Minton, C. Knoblock. 
    A Hierarchical Approach to Wrapper Induction. 
    Third International Conference on Autonomous Agents, (Agents'99), Seattle, May 
    1999. 
    [45] S. Nestorov, S. Aboteboul, R. Motwani. 
    Inferring Structure in Semistructured Data. 
    Proceedings of the 13'th International Conference on Data Engineering (ICDE'97), 
    Birmingham, England, April 1997. 
    [46] STS Prasad, A. Rajaraman. 
    Virtual Database Technology, XML, and the Evolution of the Web. 
    Data Engineering, Vol. 21, No. 2, June 1998.
    [47] J.R. Quinlan, R. M. Cameron-Jones. 
    FOIL: A Midterm Report. 
    European Conference on Machine Learning, Vienna, Austria, 1993. 
    [48] A. Rajaraman. 
    Transforming the Internet into a Database. 
    Workshop on Reuse of Web information, in conjunction with WWW7, Brisbane, April 
    1998. 
    [49] A. Sahuguet, F. Azavant. 
    WysiWyg Web Wrapper Factory (W4f). 
    http://cheops.cis.upenn.edu/ sahuguet/WAPI/wapi.ps.gz, University of Pennsylva- 
    nia, August 1998. 
    [50] D. Smith, M. Lopez. 
    Information Extraction for Semistructured Documents. 
    Proceedings of the Workshop on Management of Semistructured Data, in conjunction 
    with PODS/SIGMOD, Tucson, Arizona, May 1997. 
    [51] S. Soderland. 
    Learning to Extract Text-based Information from the World Wide Web. 
    Proceedings of the 3'rd International Conference on Knowledge Discovery and Data 
    Mining (KDD), California, August 1997. 
    [52] S. Soderland. 
    Learning Information Extraction Rules for Semistructured and Free Text. 
    Machine Learning, 1999. 
    [53] K. Zechner. 
    A Literature Survey on Information Extraction and Text Summarization. 
    Term paper, Carnegie Mellon University, 1997. 
    [54] About mySimon. 
    http://www.mysimon.com/about mysimon/company/backgrounder.anml

    http://blog.csdn.net/ictextr9/article/details/3732559


    展开全文
  • 网上商品交易网站

    2012-04-21 22:58:51
    4.5.1 信息发布-浏览信息 8 4.5.2 信息发布-添加信息 9 4.5.3 信息发布-搜索信息 10 4.5.4 信息管理-管理员身份验证 12 4.5.5 信息管理-交易信息管理 12 4.5.6 信息管理-项目管理 13 4.5.7 信息管理-公告管理 13 ...
  • 北京市建委表示,今后,北京将通过“可售商品房统计”栏目,全面公示商品房房源销售信息。 北京市建委日前下发通知称,从即日起,市建委将在北京市房地产交易信息网上(www.bjfdc.gov.cn)全面公
    本报讯(记者 蒋彦鑫)来自北京
    市建委的统计显示,截至4月30日,北京可售的期房项目共计1512个,其中待售面积1541.39万平方米;待售现房289.14万平方米,二者相加已经达1830万平方米。北京市建委表示,今后,北京将通过“可售商品房统计”栏目,全面公示商品房房源销售信息。 
    

      北京市建委日前下发通知称,从即日起,市建委将在北京市房地产交易信息网上(www.bjfdc.gov.cn)全面公示商品房房源销售信息,今后任意一个区县可售商品房项目名称、套数、面积等,市民都可以在网上查到。此举意在给购房者提供真实准确的信息。据了解,在目前的商品房销售市场上,部分开发商发布虚假信息,售楼时制造一些“虚假繁荣”,利用市民买房的急迫心理,故意称房子不多,骗取买房者赶紧购买。同时,一些开发商又故意囤积房屋,明明项目还有很多房子,但却不愿意卖,等时间长了酝酿涨价等。

     

      在北京市房地产交易管理网上,购房者可通过该网站“可售商品房统计”栏目,查询任何一个合法房地产项目还有多少套房子可卖。据介绍,该网站公示的项目信息、房屋销售状态信息将与“网上签约”系统连接,以保障每日定时更新。

    北京市房地产交易信息网最新统计显示,截止到今年4月30日,全市可售的期房项目共计1512个,其中未售住宅109106套、面积为1541.39万平方米;已取得房屋所有权证的正进行现房销售的项目855个,其中未签约住宅17815套,面积为289.14万平方米。

    展开全文
  • 全国范围的分类信息网站,大多获得了各种投资,擅长网络技术,对国外的成功经验有一定理解,仿照国外已经成功的运营模式而建立,是目前中国网上分类信息广告的主流。其优势专注在网络分类市场,富有初创的热情和动力...
  • 前面陆陆续续的完成了网上商城的一些基本功能,虽然还有很多地方有待完善,但是不影响项目的部署和发布,我们可以先来玩一把,这一节主要介绍下域名空间的申请以及项目的部署和发布流程。1. 域名空间的申请 作为一...
  • 记得去年外网上报道了一则新闻,Facebook上的一名用户发布了一个拍卖帖,表示愿意将自己的10年个人信息以拍卖的形式出售,其中包括自己在facebook上的所有好友信息、浏览记录等等,出价最高者得。 结果不到一天,就...
  • 国内免费发布信息平台哪个好?

    千次阅读 2017-12-07 11:50:54
    有效的推广办法 现在大家都急着帮自己的产品找客户 但是不知道怎么样 才能做到有效的推广几年前的时候 我家里人是买 电器配件的 开始做推广的时候都是发宣传单的 现在不一样了 这种方式很浪费人力物力 而且很...
  • 本网站的目标是打造一个大型的宠物产品网上消费社区,将给顾客提供信息阅读,产品选购,互动娱乐,交流讨论等服务。
  • 产品用途:对餐馆提供发布菜肴的信息,得到顾客订购的信息.对顾客提供订购菜肴的服务。 用户可通过访问我网站电子订餐,进行登录或者注册,获得你想要的各种食物,管理员可以查看用户菜品,可以对菜单进行增删改查 各...
  • 中华人民共和国金融行业标准JR/T 0068—2020 网上银行系统信息安全通用规范是2019年10月份推出代替 JR/T 0068—2012,在2020年2月5日开展实施执行,作为一部通用规范合规要求,很有研读意义。 本标准通过收集、...
  • 这是我在网上找到的一篇写的很不错的关于在填写Itunes connect上面的英文信息时的指导文章,值得推荐给大家! 我是如何提交我的app到itunesConnect? 具体步骤如下: 1) 用你的苹果开发者账号登录到...
  • 电子商务网站,值得借鉴 可以在线浏览选择商品,对购物车的实现代码比较简洁,容易看懂 同时实现了对农产品信息发布与删除
  • 哪时还不理解网上贸易为何物,以为就是在网上发布产品信息,然后留个电话和姓名这么简单。所庆幸的是第一次发布产品信息偶选择了阿里巴巴,而来自阿里的第一笔200元的订单,从此坚定了偶的网上贸易信心。 对于初次...
  • **********《网上商品交易系统》********** 开发及测试环境 操作系统:Windows 2000 Server 后台数据库:SQL Server 2000 Web服务器:IIS 5.0  《网上商品交易系统》系统在该环境下测试通过运行。 创建数据库的...
  • 因为笔者所负责的产品还没有达到他们产品用户的量级上(最低的都在1千万+),也就谈不上灰度发布这一环节,所以只有听的份。 虽然笔者暂时没有涉及到,但在工作中也听过关于灰度发布的一些信息,只不过这一次听他们...
  • 该系统由PHP和数据库实现,注册用户通过WEB页面可将商品发布网上,也可以购买他人的商品并对商品作出评价,对于不公平的可以向管理员投诉;管理员可以在客户端软件上查看交易情况,处理投诉事件,并推荐商品; 未...
  • asp.net 新闻发布论文

    2009-12-27 14:03:40
    网站新闻发布系统,又称为信息发布系统,主要用于处理网页上那些需要经常变动的信息(类似新闻、新产品发布和业界动态等)。包括:将变更信息集中管理,按其共性分类,进行系统化和标准化处理,并将其发布网上。 ...
  • 发布产品并了解用户行为(1)

    千次阅读 2014-09-28 10:50:17
    本章主要介绍了产品发布上线前的一些注意事项,还包括为了达成重塑用户行为这一目标,后期的版本迭代更新和用户反馈测试中需要做哪些研究,交互文档的整理留存和微细节处理等内容。 在项目初期,我们从习惯商业...
  • 小型网上购物系统

    2015-11-27 21:56:52
    1. 用户管理功能,包括:用户注册,登录认证,注册用户修改个人信息; 2. 商品发布:管理员可发布商品信息,修改/删除商品信息; 3. 商品购买:注册用户登录后可查询商品信息并购买商品; 4. 简易论坛或聊天室

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 70,273
精华内容 28,109
关键字:

如何网上发布产品信息