技术_技术方案 - CSDN
精华内容
参与话题
  • java web技术开发大全(最全最新)

    千次下载 热门讨论 2020-07-25 23:33:35
    提供典型应用案例,剖析JSP/Servret技术与Struts 2技术在Web开发中的不同 提供完整的应用案例,使读者可以深入体会SSH开发模式的精髓 所有开发工具和框架均使用目前的最新版本,紧跟技术发展的趋势 提供230个实例和4...
  • 每个产品经理都应该懂点技术。当技术人员认为你提出的需求不能实现而怼你的时候,你可以从技术的角度将他正面击倒。而且熟悉一定的技术后,产品经理提出的需求将会更加合理,技术人员实现起来更容易。达到产品和技术...

    每个产品经理都应该懂点技术。当技术人员认为你提出的需求不能实现而怼你的时候,你可以从技术的角度将他正面击倒。而且熟悉一定的技术后,产品经理提出的需求将会更加合理,技术人员实现起来更容易。达到产品和技术和谐共处的美好社会。此篇文章是该系列的第一篇。


    产品经理每天需要跟技术人员打交道。有时候我们想知道,我提出的需求技术人员究竟能不能实现?要搞清楚这个问题,我们需要知道技术人员是怎么工作的,他们不同的分工又分别做了什么工作。我们假定团队中只有两类技术人员:前端和后端。虽然测试和运维也同样重要。为了简化思考,我们暂时不考虑他们的工作内容,而只看前后端的工作。

    在Web开发中,前端去做界面模板,后端负责数据。这样可以把后端的数据放到前端的模板里。此称为前后端分离。

    在前后端分离的开发模式中,前端和后端可以同时进行工作。具体的方式是通过前后端在事先约定好的文档规范。前端人员依据文档写页面模板,后端人员根据文档写API接口。前端可以调用后端的API接口为界面模板填充数据。

    如果是纯技术人员,我们大概到这里就介绍完毕了。不过,考虑到这篇文章是为非技术人员写的,所以我有必要更透彻的展开一下。

    通过刚才介绍我们发现前后端的依赖关系只在API上。如果API的概念不容易理解,我们可以看看API的定义。

    API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    以上内容来自百度百科

    如果觉得难以理解我们可以划下关键词,函数、提供访问程序的能力、无需理解内部工作。API可以简单的理解为一个URL地址。具体来说是前端页面向API发送了一个请求的数据A,后端接收到A,根据业务的需求将A变成处理后的数据B,并把B返回给前端页面上。这个过程中前端不知道也不必知道API内部是如何工作的,前端只需要根据发送的数据获取到需要的数据。后端的工作就是接收前端发来的数据,处理后返回给前端使用。

    我们以登陆返回用户数据的一个操作为例进行详细说明。

    1240

    上述图片是一个前端页面。当我们输入完用户名和密码,就意味着前端的数据已经获取完了。我们点击登陆的按钮后,其实就将数据发送给了后端的API,此处我们假设API地址是 api.com/login 。一般使用JSON这种数据格式,如下图(其实省略了很多数据,以下数据仅供参考)

    {
    "email":"gaoyakang@outlook.com",
    "password":123456789
    }

    后端拿到上述数据后开始判断并返回

    1. 该条数据格式对不对?
    2. 账号密码对不对?
    3. 如果都对则返回用户信息,如果不对返回错误信息。

    假设我们在数据库中有以下的数据:

    email  password RealName   NickName birth age
    gaoyakang@outlook.com 123456789 mark Rever4433 1995-04 22

    验证成功后,我们开始返回用户信息,根据我们数据库中的数据,我们将要返回RealName、NickName、birth、age等信息给到前端去填充数据。

    还是用上述JSON数据格式表示:

    {
    "RealName":"mark",
    "NickName":"Rever4433",
    "birth":"1995-04",
    "age":"22"
    }

    前端拿到该数据后把数据渲染到界面上:

    1240

    这样一条数据从前端发送到后台接收处理,处理完后发送到前端,前端向用户展示这一过程就完成了。


    一些说明

    为了尽可能简化理解一些难于理解的数据我没有写出来,不过对于非技术人员应该已经足够理解了。另外,实际开发中有的公司可能没有采用接口化的方式,而是前端做界面模板,做完后让后端去填充数据的方式。这种方式虽然前后端结合的实现方式上有区别,但思想上是差不多的。
    看完本文,你可能对前后端具体做的事情有了一些理解。也许你还会想知道,前后端开发人员是怎样一起进行工作的呢?前端和后端工作有先后顺序吗?这些疑问我们将会放在下一篇。在下一篇文章中我将描述前后端人员是通过文档来开展工作的。

    转载于:https://www.cnblogs.com/rever/p/7792980.html

    展开全文
  • 五种主流的虚拟化技术

    万次阅读 多人点赞 2017-07-11 17:24:12
    随着虚拟化技术的窜红,打着它的旗号的“衍生品”层出不穷。然而尽管到现在各种虚拟化技术还没能泾渭分明,但随着时间的发展,五种主流的虚拟化技术逐步展露。这五种虚拟化技术分别是:CPU虚拟化、网络虚拟化、...
    随着虚拟化技术的窜红,打着它的旗号的“衍生品”层出不穷。然而尽管到现在各种虚拟化技术还没能泾渭分明,但随着时间的发展,五种主流的虚拟化技术逐步展露。这五种虚拟化技术分别是:CPU虚拟化、网络虚拟化、服务器虚拟化、存储虚拟化和应用虚拟化。
    

      虚拟化,曾经是一个技术人员最不喜欢的词,因为对于一个搞工程科学的人来说,实在、量化、数据逻辑才是工作进行的根本。

      但是现在,最前沿的IT技术工程师们狂热的爱上了这个词,因为它代表着一系列先进的技术和产品,掀起信息科学界又一轮技术的高潮。究竟什么是虚拟化?人们往往既清晰又模糊,仿佛看到它就在面前,可是又变幻着这样或那样的模样。

      通俗的定义来说,虚拟化就是把物理资源转变为逻辑上可以管理的资源,以打破物理结构之间的壁垒。未来,所有的资源都透明地运行在各种各样的物理平台上,资源的管理都将按逻辑方式进行,完全实现资源的自动化分配,而虚拟化技术就是实现它的理想工具。用一比喻来说,虚拟化技术的绝妙之处在于,终端用户在信息化应用中,感觉不到物理设备的差异、物理距离的远近以及物理数量的多少,按照自己正常习惯操作,进行需要的信息资源调用和交互。

      随着虚拟化技术的窜红,打着它的旗号的“衍生品”层出不穷,各色人等都想将自己的脑袋安装在虚拟化的屁股上,然后就能跟随这股热潮大火一把。然而尽管到现在各种虚拟化技术还没能泾渭分明,但毕竟大浪淘沙,随着时间的发展,五种主流的虚拟化技术逐步展露,它们就像如来佛祖那座著名的“五指山”一样,在天边等待人们“到此一游”。

      这五种虚拟化技术分别是:CPU虚拟化、网络虚拟化、服务器虚拟化、存储虚拟化和应用虚拟化。让我们逐步揭开它们的面纱,看看它们各自的美丽。

      CPU虚拟化

      虚拟化在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。简单说来,CPU的虚拟化技术就是单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。

      纯软件虚拟化解决方案存在很多限制。“客户”操作系统很多情况下是通过VMM(Virtual Machine Monitor,虚拟机监视器)来与硬件进行通信,由VMM来决定其对系统上所有虚拟机的访问。(注意,大多数处理器和内存访问独立于VMM,只在发生特定事件时才会涉及VMM,如页面错误。)在纯软件虚拟化解决方案中,VMM在软件套件中的位置是传统意义上操作系统所处的位茫。如处理器、内存、存储、显卡和网卡等)的接口,模拟硬件环境。这种转换必然会增加系统的复杂性。

      CPU的虚拟化技术是一种硬件方案,支持虚拟技术的CPU带有特别优化过的指令集来控制虚拟过程,通过这些指令集,VMM会很容易提高性能,相比软件的虚拟实现方式会很大程度上提高性能。虚拟化技术可提供基于芯片的功能,借助兼容VMM软件能够改进纯软件解决方案。由于虚拟化硬件可提供全新的架构,支持操作系统直接在上面运行,从而无需进行二进制转换,减少了相关的性能开销,极大简化了VMM设计,进而使VMM能够按通用标准进行编写,性能更加强大。另外,在纯软件VMM中,目前缺少对64位客户操作系统的支持,而随着64位处理器的不断普及,这一严重缺点也日益突出。而CPU的虚拟化技术除支持广泛的传统操作系统之外,还支持64位客户操作系统。

      虚拟化技术是一套解决方案。完整的情况需要CPU、主板芯片组、BIOS和软件的支持,例如VMM软件或者某些操作系统本身。即使只是CPU支持虚拟化技术,在配合VMM的软件情况下,也会比完全不支持虚拟化技术的系统有更好的性能。

      两大CPU巨头英特尔和AMD都想方设法在虚拟化领域中占得先机,但是AMD的虚拟化技术在时间上要比英特尔落后几个月。英特尔自2005年末开始便在其处理器产品线中推广应用英特尔Virtualization Technology(Intel VT)虚拟化技术。目前,英特尔已经发布了具有Intel VT虚拟化技术的一系列处理器产品,包括桌面平台的Pentium 4 6X2系列、Pentium D 9X0系列和Pentium EE 9XX系列,还有Core Duo系列和Core Solo系列中的部分产品,以及服务器/工作站平台上的Xeon LV系列、Xeon 5000系列、Xeon 5100系列、Xeon MP 7000系列以及Itanium 2 9000系列;同时绝大多数的Intel下一代主流处理器,包括Merom核心移动处理器,Conroe核心桌面处理器,Woodcrest核心服务器处理器,以及基于Montecito核心的Itanium 2高端服务器处理器都将支持Intel VT虚拟化技术。

      而AMD方面也已经发布了支持AMD Virtualization Technology(AMD VT)虚拟化技术的一系列处理器产品,包括Socket S1接口的Turion 64 X2系列以及Socket AM2接口的Athlon 64 X2系列和Athlon 64 FX系列等等,并且绝大多数的AMD下一代主流处理器,包括即将发布的Socket F接口的Opteron都将支持AMD VT虚拟化技术。

      网络虚拟化

      网络虚拟化是目前业界关于虚拟化细分领域界定最不明确,存在争议较多的一个概念。微软眼中的“网络虚拟化”,是指虚拟专用网络 (VPN)。VPN 对网络连接的概念进行了抽象,允许远程用户访问组织的内部网络,就像物理上连接到该网络一样。网络虚拟化可以帮助保护 IT环境,防止来自 Internet 的威胁,同时使用户能够快速安全的访问应用程序和数据。

      但是网络巨头思科(Cisco)不那么认为。出身、成名且目前称霸于网络的思科公司,当然在对IT未来的考虑上以网络为核心。它认为在理论上,网络虚拟化能将任何基于服务的传统客户端/服务器安置到“网络上”。那么,这意味着可以让路由器和交换机执行更多的服务,自然,思科在业界的重要性和生意额都将大幅增加。思科表示网络虚拟化由三个部分组成: 访问控制、路径提取,以及服务优势。从思科的产品规划图上看,该公司的路由器和交换机将拥有诸如安全、存储、VoIP、移动和应用等功能。 对思科而言,他们的战略是通过扩大网络基础设备的销售来持续产生盈利。 而对用户来讲,这能帮助他们提高网络设备的价值,并调整原有的网络基础设备。

      对于网络阵营的另一巨头,3Com公司在网络虚拟化方面的动作比思科更大。3Com的路由器中可以插入一张工作卡。 该卡上带有一套全功能的Linux服务器,可以和路由器中枢相连。在这个Linux服务器中,你可以安装诸如sniffer、VoIP、安全应用等等。此外,该公司还计划未来在Linux卡上运行VMware,以让用户运行Windows Server。 3Com的这个开源网络虚拟化活动名为3Com ON(又名开放式网络)。

      当然,王婆卖瓜自卖自夸,思科与3Com自己的一厢情愿决不能作为网络虚拟化大旗真正升起的标志,现在,网络虚拟化依然处于初期的萌芽阶段,但在人类网络信息化飞速需求的现在,我们有理由相信它的突破和成长将是飞速的。

      服务器虚拟化

      与网络虚拟化不同,服务器虚拟化却是虚拟化技术最早细分出来的子领域。根据2006年2月Forrester Research的调查,全球范围的企业对服务器虚拟化的认知率达到了75%。三分之一的企业已经在使用或者准备部署服务器虚拟化。这个产生于20世纪60年代的技术日益显示出其重要价值。由于服务器虚拟化发展时间长,应用广泛,所以很多时候人们几乎把服务器虚拟化等同于虚拟化。

      关于服务器虚拟化的概念,各个厂商有自己不同的定义,然而其核心思想是一致的,即它是一种方法,能够通过区分资源的优先次序并随时随地能将服务器资源分配给最需要它们的工作负载来简化管理和提高效率,从而减少为单个工作负载峰值而储备的资源。

      似乎与所有颠覆性技术一样,服务器虚拟化技术先是悄然出现,然后突然迸发,最终因为节省能源的合并计划而得到了认可。如今,许多公司使用虚拟技术来提高硬件资源的利用率,进行灾难恢复、提高办公自动化水平。本组文章分别从服务器、存储、应用程序和桌面虚拟化技术三个角度介绍了如何消除物理硬件的限制。

      有了虚拟化技术,用户可以动态启用虚拟服务器(又叫虚拟机),每个服务器实际上可以让操作系统(以及在上面运行的任何应用程序)误以为虚拟机就是实际硬件。运行多个虚拟机还可以充分发挥物理服务器的计算潜能,迅速应对数据中心不断变化的需求。

      虚拟化概念并不是新概念。早在20世纪70年代,大型计算机就一直在同时运行多个操作系统实例,每个实例也彼此独立。不过直到最近,软硬件方面的进步才使得虚拟化技术有可能出现在基于行业标准的大众化x86服务器上。

      微软于2004年底宣布了其Virtual Server 2005计划。与其他服务器虚拟化技术一样,Virtual Server 2005允许用户对服务器进行分区,以使这些服务器能够支持多个操作系统和应用。计划于2005年面市的Virtual Server建立在去年年初时通过购买Connectix而获得的技术基础之上,该软件可以在Windows、Linux和Mac OS服务器及工作站上运行。

      微软宣布Windows Server 2008发行版将包括虚拟化服务器 (WSV)的测试版在内,Windows Server 2008是微软最新的服务器操作系统,可在一个服务器上虚拟化多种操作系统,如Windows、Linux 等等。服务器操作系统内置的虚拟化技术和更加简单灵活的授权策略,获得前所未有的易用性优势并降低成本。借助Terminal Services Gateway 和 Terminal Services RemoteApp ,可轻松进行远程访问并与本地桌面应用程序进行集成,还可实现在无需 VPN 的情况下,安全无缝地部署应用程序。

      另外,在服务器虚拟化技术方面走得比较靠前的应该是IBM和HP等服务器厂商。今年以来,这两家公司在虚拟化领域也非常积极,在最新的RISC架构服务器及最新版的操作系统中,都嵌入了虚拟化技术。

      先说说IBM,早在p690服务器和AIX 5L操作系统首次公布的时候,IBM就宣布在其动态逻辑分区(LPAR)技术的支持下,一个系统内可独立的运行多个分区,每个分区运行独立的操作系统。这时候的分区,是以CPU为“颗粒”的。

      到去年发布p5服务器时,IBM大张旗鼓地扯出了虚拟技术的大旗。不过,与以前相比,在虚拟化技术的帮助下, IBM最新的微分区技术打破了分区上以CPU为“颗粒”的限制,可以将单个CPU划分为10个微分区,从而创建和运行比物理处理器数量更多的分区。IBM 同时宣布,新版操作系统AIX 5.3可以支持1/10 CPU颗粒的微分区。

      今年,IBM进一步拓展了其服务器虚拟技术的范畴,推出了由操作系统、系统技术和系统服务三部分组成的服务器虚拟引擎。其中,操作系统涉及AIX、 i5/OS、z/OS和Linux,其技术宗旨是单台服务器内运行多种操作系统、在异构IT基础架构中以统一的方式实现资源的共享和管理以及管理非IBM 操作系统平台;系统技术包括微分区、vLan、虚拟I/O、Hypervisor等;而系统服务则包括一个服务器系统服务套件和一个存储系统服务套间。在服务器系统服务套间中,包括硬件监督模块VE console虚拟引擎控制台,可以利用两个主要的功能模块Launchpad和Health Center,监控资源的健康状态、进行问题诊断和系统管理;另外还包括硬件管理模块IBM Direction Multiplatform(DCM)整合系统管理。

      同时,IBM还推出了应用虚拟工具套件,包括应用监督模块Enterprise Workload Management企业负载管理器(EWLM),可以在异构环境下自动管理分布式企业级系统,根据业务优先级将IT服务分类,并设立相应的性能目标,并根据这些性能目标,提供端到端的性能分析和评估,通过分析,EWLM自动按照应用拓扑调整网络路由。与EWLM相配合的是一个应用管理模块Tivoli Provisioning Manger(TPM),该模块与EWLM配合,可以实现系统部署和配置步骤的自动化,为IT系统的自动部署、资源分配和启用提供解决方案。

      对于HP,我们最熟悉的就是HP提供三个层次的虚拟化解决方案。其中,部件虚拟化可以优化不同类型IT资源的利用,如服务器、存储和网络资源,包括分区、集群、工作负载管理和应用虚拟化;集成虚拟化可以把优化多个部件的虚拟化方法结合在一起,自动调度资源满足服务水平协议(SLO),包括虚拟服务器环境、连续访问存储专用服务器等;而完全虚拟化可以优化所有异构资源、使得资源供应能够实时满足业务需求。

      HP-UX 下的分区连续技术能够把服务器划分成物理或逻辑独立的分区,为优化资源利用、提高服务器的可用性提供坚实的基础。

      硬件分区 (nPars)--HP nPars 是单个服务器中的硬件分区。nPars 根据服务器类型最多提供 16 个硬件分区、完全的硬件和软件隔离能力以及在一个服务器上运行多个OS实例。

      虚拟分区 (vPars)--HP vPars 具有在一个系统或硬件分区内实现执行多个OS实例的独特特性。每个 vPar 能够拥有规定的内存量、一个或多个物理内存区域、一个规定的CPU池、服务器内一个或多个I/O 卡。vPars 能够使用软件命令动态地创立和修改。因此,每个应用能够在性能最大、OS配置要求得到满足的环境中运行。

      资源分区--进程资源管理软件 (PRM) 能够动态地以多种方式把系统资源 (CPU, 内存和磁盘 I/O)分配给客户的应用,分配的方式可以是根据份额、百分比和处理器组 (pSets)。 pSets 允许在服务器上创立处理器组,而应用或用户可以被分配到在规定的pSet 上运行。

      存储虚拟化

      随着信息业务的不断运行和发展,存储系统网络平台已经成为一个核心平台,大量高价值数据积淀下来,围绕这些数据的应用对平台的要求也越来越高,不光是在存储容量上,还包括数据访问性能、数据传输性能、数据管理能力、存储扩展能力等等多个方面。可以说,存储网络平台的综合性能的优劣,将直接影响到整个系统的正常运行。因为这个原因,虚拟化技术又一子领域——虚拟存储技术,应运而生。

      其实虚拟化技术并不是一件很新的技术,它的发展,应该说是随着计算机技术的发展而发展起来的,最早是始于70年代。由于当时的存储容量,特别是内存容量成本非常高、容量也很小,对于大型应用程序或多程序应用就受到了很大的限制。为了克服这样的限制,人们就采用了虚拟存储的技术,最典型的应用就是虚拟内存技术。

      随着计算机技术以及相关信息处理技术的不断发展,人们对存储的需求越来越大。这样的需求刺激了各种新技术的出现,比如磁盘性能越来越好、容量越来越大。但是在大量的大中型信息处理系统中,单个磁盘是不能满足需要,这样的情况下存储虚拟化技术就发展起来了。在这个发展过程中也由几个阶段和几种应用。首先是磁盘条带集(RAID,可带容错)技术,将多个物理磁盘通过一定的逻辑关系集合起来,成为一个大容量的虚拟磁盘。而随着数据量不断增加和对数据可用性要求的不断提高,又一种新的存储技术应运而生,那就是存储区域网络(SAN)技术。

      SAN的广域化则旨在将存储设备实现成为一种公用设施,任何人员、任何主机都可以随时随地获取各自想要的数据。目前讨论比较多的包括iSCSI、 FC Over IP 等技术,由于一些相关的标准还没有最终确定,但是存储设备公用化、存储网络广域化是一个不可逆转的潮流。

      所谓虚拟存储,就是把多个存储介质模块(如硬盘、RAID)通过一定的手段集中管理起来,所有的存储模块在一个存储池(Storage Pool)中得到统一管理,从主机和工作站的角度,看到就不是多个硬盘,而是一个分区或者卷,就好象是一个超大容量(如1T以上)的硬盘。这种可以将多种、多个存储设备统一管理起来,为使用者提供大容量、高数据传输性能的存储系统,就称之为虚拟存储。

      应用虚拟化

      前面几种虚拟化技术,主要还专注于对硬件平台资源的虚拟优化分配,随着IT应用的日益广泛,应用虚拟化作为虚拟化家族的明日之星登上了历史舞台。2006年7月由Forrester咨询公司在美国对各种不同行业的高层IT管理人员所做的一项研究显示,当今的机构现在将应用虚拟化当作是业务上的一个必由之路,而不是一个IT决策。据统计,全世界目前至少有超过18万个机构在利用应用虚拟化技术进行集中IT管理、加强安全性和减少总体成本。

      尽管在过去十年间虚拟技术有了迅速的发展,但现实情况是,当需要使用应用系统的时候,我们仍然把自己的思维局限在电脑机箱之内。从键盘、鼠标、麦克风或扫描仪接收用户输入的设备,通常也是处理和存储数据、通过对显示器、打印机和扬声器的输出来进行响应的同一设备。然而,随着虚拟化概念的发展和变化,“应用虚拟化”成为一个正在迅速发展的市场。

      何为应用虚拟化?

      简单来讲,应用虚拟化技术使机构能够用更少的投入做更多的事情,并最终节省经费。这样,企业决策者就能够在IT开销与业务需求之间达成更好的平衡——由运营成本降低所节省的经费可以重新投入到能够推动增长的业务领域中。

      从技术角度来讲,应用虚拟化可以简单描述为“以IT应用客户端集中部署平台为核心,以对最终用户透明的方式完全使用户的应用和数据在平台上统一计算和运行,并最终让用户获得与本地访问应用同样的应用感受和计算结果。”

      虚拟化背后的主要推动力是基础设施各方面的猛烈增长,同时伴随着IT硬件和应用的大量增加。而且,IT系统正在变得越来越大,分布越来越广,并且更加复杂,因而难以管理,但要求加强IT控制的业务和监管压力却在继续增大。这听起来可能很专业,但对业务决策者来说却很中听,因为应用虚拟化正在帮助解决当今机构所面临的很多推动力方面的问题——提高业务效率、增强员工移动性、遵守安全与监管规定、向新兴市场拓展、业务外包、以及业务连续性等等。

      在可能实现的一系列利益当中,应用虚拟化技术能帮助企业解决三个关键方面的问题——安全性、性能和成本。从安全角度来讲,应用虚拟化从其设计本身来看是安全的。采用客户-服务器端应用,数据安全面临风险。IT人员不仅必须应对数据的存放、打印和操控环境,而且还必须考虑数据在网络内和网络外如何迁移,并保证知识产权不会泄露,电脑病毒也不会潜入。启动应用虚拟化项目后,一个公司的所有系统和数据都被整合到了一起,从而几乎消除了在设备层面上数据被盗或数据丢失的风险。性能改善对很多公司来说是另一个吸引人的因素。因为客户-服务器端应用依靠网络来传输流量,所以它们会为网络增添带宽消耗问题。这种问题困扰着很多企业,反过来又会降低应用系统的性能。应用虚拟化技术可以将各种应用系统集中起来,只有一个通过网络传送的虚拟界面。这样可以保证在极低的带宽上实现高性能,而不管设备、网络和地点如何。所以在业务扩张或合并的情况下,企业能够在几分钟或几小时时间内让新用户上网,而不像过去那样需要几个星期或几个月。因此,容易理解为什么应用虚拟化是很多所谓的“业务流程外包”公司所欢迎的一种方式。

      个人计算设备和操作系统的繁多使得客户-服务器端应用的测试、调试和客户定制开发成本高昂且耗费时间。采用应用虚拟化技术之后,将不需要在每个用户的桌面上部署和管理多个软件客户端系统,所有应用客户端系统都将一次性地部署在数据中心的一台专用服务器上,这台服务器就放在应用服务器的前面。客户也将不需要通过网络向每个用户发送实际的数据,只有虚拟的客户端界面(屏幕图像更新、按键、鼠标移动等等)被实际传送并显示在用户的电脑上。这个过程对最终用户是一目了然的,最终用户的感觉好像是实际的客户端软件正在他的桌面上运行一样。

      客户-服务器端应用要求在每个用户的电脑上安装客户端软件,从而导致更高的成本,因为需要在分布式网络上管理这些软件的部署、补丁和升级。这个问题随着用户登录到每个新应用系统的需求量呈增长趋势,因为IT部门需要在每个用户的桌面上部署另一个独特的客户端设备。即便在最讲究战术的接入服务场景中,应用虚拟化可以带来的成本效益也是相当诱人的。通过将IT系统的管理集中起来,企业能够同时实现各种不同的效益——从带宽成本节约到提高IT效率和员工生产力以及延长陈旧的或当前的系统的寿命等等。

      目前,应用虚拟化能够展现给用户最直接的功能还是远程应用交付,或者叫远程接入,应用虚拟化领域,从全球看,走在最前沿的厂商还是Citrix(思杰),其推出的应用虚拟化平台Citrix交付中心(Citrix Delivery Center),即Citrix应用交付基础架构解决方案正在逐步进行中国全面本地化的进程。国内最具实力的应用虚拟化领导厂商极通科技,也在2008年7月向全球推出极通EWEBS 2008应用虚拟化系统,该产品在EWEBS 2008中采用了极通科技独创的AIP(Application Integration Protocol)技术,把应用程序的输入输出逻辑(应用程序界面)与计算逻辑指令隔离开来,在用户访问EWEBS服务器发布的应用时,在EWEBS 服务器上会为用户开设独立的会话,占用独立的内存空间,应用程序的计算逻辑指令在这个会话空间中运行,应用程序的界面会通过AIP协议传送到用户计算机上,用户计算机只需要通过网络把键盘、鼠标及其他外设的操作传送到服务器端,从服务器端接收变化的应用程序界面,并且在用户端显示出来就可以获得在本地运行应用一样的访问感受,最终实现用户客户端使用人员不受终端设备和网络带宽的限制,在任何时间、任何地点、使用任何设备、采用任何网络连接,都能够高效、安全地访问EWEBS服务器(集群)上的各种应用软件。

    展开全文
  • 中国十大技术社区你都知道哪些?

    万次阅读 多人点赞 2019-07-05 10:16:15
    社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起...
        

    640?wx_fmt=jpeg

    社区是聚集一类具有相同爱好或者相同行业的群体,IT技术社区就是聚集了IT行业内的技术人,在技术社区可以了解到行业的最新进展,学习最前沿的技术,认识有相同爱好的朋友,在一起学习和交流。

    技术社区一般有三类人:第一类技术人,就是遇到问题搜索一下,绝大部分程序员都是通过这种方式来了解技术社区的,或者遇到问题的时候在社区去提问;第二类的技术人,有意识的常去技术社区查看博客,学习新知识;第三类人,就是写文章的人,喜欢分享某一类技术,或者他们的实战经历。往往写文章的人,也喜欢看文章。

    总的来说,技术社区就是聚集技术人的地方,也是技术人学习交流的最佳场所。个人利用业务时间,按照访问量等信息整理出了中国十大IT技术社区,帮助大家找到自己的家园。

    CSDN

    640?wx_fmt=png

    CSDN (Chinese Software Developer Network) 是蒋涛创立于1999年,是中国专业的 IT 社区,为中国的软件开发者提供知识传播、在线学习、职业发展等全生命周期服务。 截止2018年6月,CSDN 拥有超过2500+万技术会员,论坛发帖数1000万+,技术资源700万+,Blog 文章1300万+,新媒体矩阵粉丝数量430万+。

    我与 CSDN 结缘大学,09年大学参加数学建模的时候经常去 CSDN 下载资料,10年毕业后在博客记录一些软件的使用命令,Oracle 常用语法,后来就把博客给忘了,11年的时候经常活跃在 CSDN 灌水区,和天下的程序员闲聊,后来因为 CSDN 广告实在太多就转战博客园,直到去年成为 CSDN 博客专家,重新回来同步一些文章。

    CSDN 是国内IT行业覆盖最全的一个社区,有很多的高手和大神隐藏于此,到现在还有很多学者、研究生等高层次人才在 CSDN 发表博客,同样海量的 IT 同行们也都活跃于 CSDN ,不过令人诟病的是 CSDN 的广告是最多的,用户体验非常差。不过今年博客系统进行了改版后比以前好了一些,并且博客专家不用显示广告,这点值得点赞。

    网站链接:http://www.csdn.net/

    从 Alexa 的排名来看目前排在全球第 41 位,当之无愧的为国内技术社区老大。

    640?wx_fmt=png

    博客园

    640?wx_fmt=png

    博客园创立于2004年1月,是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区,推动并帮助开发者通过互联网分享知识,从而让更多开发者从中受益。博客园的使命是帮助开发者用代码改变世界。

    博客园的发展历程特别能体现IT从业者的执着精神:2004年,博客园诞生于江苏扬州这样一个IT非常落后的小城市,有近四年,博客园仅靠一个人几年工作的积蓄在维持,博客园一步一个脚印地走着自己的路,傻傻地对每个用户注册进行人工审批、对首页内容宁缺毋滥、对不合适的广告拒之门外,傻傻地对用户体验关怀备至,对盈利模式冷若冰霜。

    可以看到,博客园的页面十分干净清爽,干货都放在首要位置,没有时下流行的大图轮播,没有任何广告,只为这样的情怀也应为博客园点赞。博客园最大的特点是足够的开放,首页的文章由读者来决定,每个人的博客也可以自定义显示,因此博客现在有最丰富的个人博客皮肤界面,我在博客园看到了程序员们的想象力。

    第一份工作在华为做外包,在华为内部办公不能访问外网,但一些主流的技术网站都可以访问,其中就有博客园 。那时候中午休息的时候总是要逛一逛技术社区,博客园的IT行业新闻吸引了我,就一直养成了在博客园看业内新闻的习惯。但直到2016年才开始在博客园写博客,17年成为博客园的推荐博客,到了现在我的博客是博客园推荐博客的 top 30,可以说我写博客的起点就来自博客园。

    网站链接:http://www.cnblogs.com/

    博客园全球 alexa 排名在 210,仅次于 CSDN。

    640?wx_fmt=png

    SegmentFault

    640?wx_fmt=png

    SegmentFault 创立于 2012 年,是中文领域最大的技术问答交流社区平台,在这里你可以检索,交流和分享任何技术编程相关的问题及知识。其目标是覆盖和服务 1,000 万以上中国软件开发者和 IT 信息从业者,其实现方法是充分利用在各个平台上所能获得的各种技术创新机会为他们开发产品应用和服务。

    网站链接:https://segmentfault.com/

    这个平台在17年的时候才了解到,网站的整体风格比较简洁,在所有的技术社区中用户体验算比较好的。网上查了 SegmentFault 的 alexa 排名才发现这个网站的访问量比我预想中要高很多。

    SegmentFault 全球访问量排名在 768

    640?wx_fmt=png

    V2EX

    640?wx_fmt=png

    V2EX is a community of start-ups, designers, developers and creative people.

    V2EX 是创意工作者们的社区。这里目前汇聚了超过 250,000 名主要来自互联网行业、游戏行业和媒体行业的创意工作者。V2EX 希望能够成为创意工作者们的生活和事业的一部分。

    V2EX 严格意义上不算是纯粹的技术社区,它定位是创意工作者的社区,但其实里面全是 IT 行业内的人。大家会喜欢像发帖一样在里面讨论创意、新的技术、吐槽等活动,人气很高,这个平台的风控机制也比较严格,页面刷新太快也会被限制,网友常常说,V2EX 是一个神奇的网站。

    网站链接:https://www.v2ex.com/

    V2EX 全球访问量排名在 931

    640?wx_fmt=png

    开源中国

    640?wx_fmt=png

    开源中国 成立于2008年8月,是目前国内最大的开源技术社区,拥有超过200万会员,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。

    开源中国也是一个只关注IT内特定领域的技术社区,开源中国主要关注的是开源技术,适合对该领域感兴趣的人士。2013年,开源中国被恒拓开源收购。

    开源中国也是国内唯一一个专业报道开源事件的社区,网站会实时报道开源界的所有资讯,同时也有中国版的github:gitee。

    网站链接:http://www.oschina.net/

    开源中国 全球访问量排名在 969

    640?wx_fmt=png

    W3School

    640?wx_fmt=png

    W3School 是因特网上最大的 WEB 开发者资源,其中包括全面的教程、完善的参考手册以及庞大的代码库。

    下面是关于 W3School 的简要描述:

    • W3School 是因特网上最大的 WEB 开发者资源

    • W3School 是完全免费的

    • W3School 是非盈利性的

    • W3School 一直在升级和更新

    • W3School 是 W3C 中国社区成员,致力于推广 W3C 标准技术

    前端程序员的最爱,W3School 最开始分享很多浅显易懂的前端教程,后来也有一些后端的教程在里面。

    网站链接:http://www.w3school.com.cn

    W3School 全球访问量排名在 989

    640?wx_fmt=png

    51CTO

    640?wx_fmt=png

    51CTO 成立于2005年,目前已建成为专注于IT人职业成长平台;拥有1500万注册用户,覆盖了中国主流城市大多数IT从业人群,是国内排名第一的服务IT技术人员的专业性服务平台。

    网站链接:http://www.51cto.com

    51CTO 全球访问量排名在 1145

    640?wx_fmt=png

    51CTO 最开始专注于运维这个领域,也是国内聚集运维技术人才最多的一个技术社区,到了后来逐渐的转为覆盖全领域的技术社区。

    特别需要提到的是 51CTO 博客平台,也是在今年进行了 2.0 的改版,改版之后的用户体验提升非常明显,添加了 md 、赞赏和微信系统打通等新的功能,目前为止是所有技术社区对作者考虑最为全面的一个,也是体验最好的一个。我是在17年在 51CTO 开通了博客,目前在博客的粉丝排名中,位于前十。

    51CTO 博客

    640?wx_fmt=png

    博客链接:http://blog.51cto.com/

    ChinaUnix

    640?wx_fmt=png

    ChinaUnix.net(简称CU)是一个以讨论 Linux/Unix 类操作系统技术、软件开发技术、数据库技术和网络应用技术等为主的开源技术社区网站。创办于2001年,经过多年的努力和发展,如今CU已经成为全球最大、人气最旺的Linux/Unix技术中文网站。

    CU的宗旨是给所有爱好Linux/Unix技术、开源技术的朋友提供一个自由、开放、免费的交流空间。只专注一个领域,小而精是CU的特色,如果你刚好对Linux/Unix技术等领域感兴趣,CU是不错的选择,如果你关注其他领域,CU上可能并没有相关讨论和资料。

    网站链接:http://www.chinaunix.net/

    ChinaUnix 全球访问量排名在 3835

    640?wx_fmt=png

    伯乐在线

    640?wx_fmt=png

    伯乐在线成立于 2010 年,由黄余粮和黄利民联合发起,做专业的IT互联网职业社区。

    网站链接:http://www.jobbole.com/

    伯乐在线主要是由专业编辑挑选文章,所以文章质量都不错,也正是因为如此,人气不足。

    伯乐在线 全球访问量排名在 6004

    640?wx_fmt=png

    ITEye

    640?wx_fmt=png

    ITEye (曾名为JavaEye)是在2003年9月创办的,创始人范凯在学习和研究 java 的开源框架却发现没有一个讨论的地方,于是自己就建立了这个关于 Java 的网站。如今 ITEye 网站已经发展成为了一个内容齐全,功能丰富的中文IT技术门户和社区网站,涵盖整个软件开发领域的综合性网站。

    ITEye以专业性著称,据说网站创建初期新用户注册时需要强制做题,做13道有关论坛规则的选择题,做不对就不予审核通过。自从 ITEye 被 CSDN 收购后,网站就再也没有更新过,人气大降,目前已经沦落为二线阵营。

    网站链接:http://www.iteye.com/

    ITEye 全球访问量排名在 8473

    640?wx_fmt=png

    最近几年随着行业不断发展,又诞生了一些新的社区,其中有三个比较有代表性,一并分享给大家。

    掘金

    640?wx_fmt=png

    创建于2015年8月,掘金最初来自于稀土,是稀土的一个子版块,没想到稀土没有火起来,反而做为技术分享网站的掘金火爆了起来,于是创始人明明随即调整了方向,大力发展掘金。去年的时候掘金也开通了自己的专栏、小册,慢慢从一个技术文章分享网站向全面技术社区转型,期待后续的发展。

    网站链接:https://juejin.im

    掘金 全球访问量排名在 6306

    640?wx_fmt=png

    开发者头条

    640?wx_fmt=png

    开发者头条也是近两年才突然活跃起来的一个技术分享平台,由一帮程序员所创建,我对它的最初印象是码农周刊,码农周刊是一份专为程序员打造的IT技术周刊。平台每周会精选一周IT技术干货,进行推送。曾经有一段时间发现我的独立博客有一些流量来源于这个网站,才发现它。目前开发者头条已经聚集了一帮技术爱好者。

    网站链接:https://toutiao.io/

    开发者头条 全球访问量排名在 26398

    640?wx_fmt=png

    GitChat

    640?wx_fmt=png

    GitChat 是一款基于微信平台的知识分享产品,通过这款产品我们希望改变IT知识的学习方式。GitChat 算是技术付费的先驱了,在技术知识付费领域在国内做的比较早。

    17年的时候,发现有人在我的公号内留言,邀请我在 GitChat 做一场分享,那时候我还不知道 GitChat 分享是干什么的。抱着试试看态度做了一场分享:从架构演进的角度聊聊 Spring Cloud 都做了些什么? ,后面感觉还不错又做了一个课程:快速学习 Spring Boot 技术栈,没想到一年后这个课程的销量已经到达了平台畅销前三,还是挺受鼓舞的。GitChat 后来被 CSDN 所收购,所以大家也会在 CSDN 看到 GitChat 的推荐内容。

    网站链接:http://gitbook.cn/

    GitChat 全球访问量排名在 31341

    640?wx_fmt=png

    总结

    中国IT技术社区整体的技术氛围还是很不错的,近年来也诞生了很多新的技术社区,有的做垂直方向,有的面向所有IT人员,最终都促进了 IT 行业的技术发展。但同时大部分技术社区的用户体验,社区开放度还有很大的提升空间,没有一个理想中很开放、全面的技术社区,也许这就是下一个机会呢?

    最后,作为 IT 技术社区的受益者,还是感谢所有的技术社区工作人员,为同行们创建了一个学习交流的场所。大家也可以聊聊平时都活跃在哪些技术社区,欢迎留言交流。

    END


    640?wx_fmt=png

    展开全文
  • 而“联邦学习”将成为解决这一行业性难题的关键技术。 今天和大家分享下咱们微众银行AI团队主导的新一代联邦学习技术及应用,并详细介绍联邦学习落地的全球首个工业级开源平台—— Federated...

    随着大数据的进一步发展,重视数据隐私和安全已经成为了世界性的趋势,同时,大多数行业数据呈现数据孤岛现象,如何在满足用户隐私保护、数据安全和政府法规的前提下,进行跨组织的数据合作是困扰人工智能从业者的一大难题。而“联邦学习”将成为解决这一行业性难题的关键技术。

    今天和大家分享下咱们微众银行AI团队主导的新一代联邦学习技术及应用,并详细介绍联邦学习落地的全球首个工业级开源平台—— Federated AI Technology Enabler(FATE)。

    我们在Github也发布了这一项目,地址:FederatedAI/FATE​github.com

    想要进一步了解联邦学习及FATE,还可以前往官网:www.fedai.org.cn/cn/

    主要内容目录:

    • 联邦学习背景介绍
    • 纵向联邦学习
    • 横向联邦学习
    • 应用案例
    • FATE:联邦学习开源平台

    联邦学习背景介绍

    首先和大家分享下联邦学习的背景。

    1.AI落地的理想与现实

    AI 落地的时候,其实并不容易,会遇到很多现实的问题,比如:

    • 现实中,我们的数据质量是非常差的,例如聊天数据中有很多噪音;
    • 数据标签,收集是比较困难的,很多场景中的数据是没有标签的;
    • 数据是分散的,(这也是最重要的一点)每家应用的数据不一样,比如腾讯用的是社交属性数据,阿里用的是电商交易数据,微众用的是信用数据,都是分散来应用的。现实中,如何进行跨组织间的数据合作,会有很大的挑战。

    2.国内数据监管法律体系研究

     

    从09年到现在的10年时间内,国家关于数据的法律条例是趋向于严格化的,同时趋向于全面化,每个细分领域都纷纷出台了相应的条例和条款。相对来讲,让之前可行的一些数据合作方案变得不太可行。

    3.基于联邦学习的技术生态

     

    针对上述问题,微众银行AI团队提出了基于联邦学习的技术生态,特点如下:

    • 数据隔离:联邦学习的整套机制在合作过程中,数据不会传递到外部。
    • 无损:通过联邦学习分散建模的效果和把数据合在一起建模的效果对比,几乎是无损的。
    • 对等:合作过程中,合作双方是对等的,不存在一方主导另外一方。
    • 共同获益:无论数据源方,还是数据应用方,都能获取相应的价值。

    4.联邦学习的分类体系

     

    联邦学习的分类体系,包括:

    • 纵向联邦学习,两个数据集的用户 ( U1, U2, … ) 重叠部分较大,而用户特征 ( X1, X2, … ) 重叠部分较小;
    • 横向联邦学习,两个数据集的用户特征 ( X1, X2, … ) 重叠部分较大,而用户 ( U1, U2, … ) 重叠部分较小;
    • 联邦迁移学习,通过联邦学习和迁移学习,解决两个数据集的用户 ( U1, U2, … ) 与用户特征重叠 ( X1, X2, … ) 部分都比较小的问题。

    下面,重点分享下纵向联邦学习和横向联邦学习

    纵向联邦学习

    1.联合建模需求场景

     

    举个例子:微众与合作企业进行联合建模,比如做信贷逾期模型,微众有 Y 数据,包括标签数据,逾期记录,用这样的数据可能会建一个很好的模型,但我们希望用更多的数据,比如合作方的标签数据和画像数据来更大的提升风控模型的效果和稳定性。

    传统模式的问题是:

    合作企业缺乏 Y 无法独立建立模型,需要微众把 Y 数据,带入到合作方的生产环境建模,但是由于国家的数据保护条款和各企业自身对数据的严格规定,得到的 X 数据不能全量的传输到微众。

    针对这个问题,可以通过纵向联邦学习来解决。如上图右边部分展示,两边的数据都有共同的ID,特征是完全不一样的,可以通过一方特征来弥补另一方特征的不足。

    2.同态加密技术保护隐私

     

    纵向联邦学习的技术实现,首先应做好两点,来保护数据隐私:

    • 建模样本 ID 差集不向对方泄露,在合作之初需要进行用户匹配,需要找出用户的交集,但是不能泄露差集,因为这是企业最核心的资产。
    • 任何底层 ( X,Y ) 数据不向对方泄露,建模过程中如何保证数据不被泄露。

    解决方案:

    • 通过 RSA 和 Hash 的机制,保证双方最终只用到交集部分,且差集部分不向对方泄露。
    • 采用同态加密技术,这个过程中,各方的原始数据,以及数据加密态都没有被传输。交互部分,双方通过损失中间结果,用同态加密的机制进行交互,模型训练完之后,会各自得到一个模型,各自的模型会部署在各自的一方,就是如果我只提供了3个特征,那么我只有3个特征的模型,只提供2个特征,就只有2个特征的模型,任何一方的模型都没法单独去应用,只有共同应用的时候,才能进行决策。

    3.基于隐私保护的样本 id 匹配

     

    刚才提到基于隐私保护的样本id 匹配,和大家分享下具体的技术方案。比如,A 方有 [u1,u2,u3,u4] 四个用户,B 方有 [u1,u2,u3,u5],那么整个过程中,如何保证双方知道 [u1,u2,u3],而 A 方不知道 B 方有 [u5],B 方不知道 A 有 [u4]?

     

     

    这里是通过RSA 和 Hash 的机制做到的,B 方会作为公钥的生成方,会把公钥给到 A 方,A 方基于 Hash 引用一个随机数,再交互传给 B 方,B 方同时做 Hash 然后传给 A 方,A 方会最后做一个结果的交集。整个过程中,你可以看到没有任何一个明文数据传递过来,即使采用暴力或者碰撞的方式,依然解析不出原始的 id。通过这套机制,我们很好的保护了双方的差集部分。

    4.同态加密

     

    分享了匹配过程中隐私保护的问题,接下来分享一个通用的技术,同态加密。

    刚才提到建模过程中,引用了同态加密技术,比如对两个数字进行加密,加密后两个数字的密文可以进行数学运算,比如加法,其结果依然是密文,对密文解密后得到的结果和它们明文的加法结果是一样的。

     

    通过这样的同态加密技术,我们把它应用到机器学习,包括特征工程中。接下来会重点介绍,联邦机制下特征工程和机器学习建模的一些细节。

    我们知道特征工程是机器学习建模中非常重要的一环,在联邦机制下,如何完成联邦特征工程?尤其 A 方只有 X 没有 Y,如果想做一个 WOE 或者 IV 值的计算是非常困难的。那么如何在联邦学习的机制下,A 方利用 B 方有 Y 的数据计算 WOE 和 IV 值,且在这个过程中 B 方没有泄漏任何数据?

     

    首先,B 方对 y 以及 1-y 进行同态加密,然后给到 A 方,A 方会对自己的特征进行分箱处理,进而 A 方在分箱中进行密文求和的操作,再把结果给到 B 方进行解密,然后算出 A 方每个特征分箱的 WOE 值和 IV 值。在这个过程中,没有明文数据传输,A 方不知道 B 方的 y 值,同时 B 方也不知道 A 方每个特征的值是什么,从而在安全隐私保护的情况下,完成了特征工程的计算。

     

    说完特征工程,再讲下最核心的机器学习,比如常见的逻辑回归,这是经典的 loss function 和梯度,刚才说的同态加密的特性,目前用到的是半同态的技术。所以,需要对 loss function 和梯度进行多项式展开,来满足加法操作。这样就可以把同态加密的技术应用在 loss function 和梯度中。

    5.SecureBoost

     

    在很多现实的业务应用中,树模型是非常重要的,尤其是 XGBoost,对很多应用来说,提升非常明显,因而被业界广泛使用。在联邦机制下,如何构建这样的树?这里我们提出了 SecureBoost 技术方案,双方协同共建一个 boosting 树,我们证明了整个过程中是无损的。图中为一些 paper 和链接,感兴趣的小伙伴可以查找下。

     

    SecureBoost 的核心技术点。上图为基于 SecureBoost 构建的树,A 和 B 代表不同数据的 owner,L0,L1,L2,L3,L4 代表不同 feature 的分割点编码,整颗树由 A 和 B 共同维护,每一方只维护自己的树节点,对另外一方的树节点信息不可见(只知道编码,不知道编码具体含义),保证整个训练和预测过程都是安全的。

    构建 SecureBoost 核心的关注点是如何构建分裂节点,尤其一方只有 X,另一方有 ( X,Y ) 的情况。

     

    基于同态加密的机制,B 方会把1阶梯度和2阶梯度传递给 A 方,A 方基于分箱之后的结果算出每个分箱中的1阶梯度和2阶梯度的求和值,然后传递给 B 方,B 方会解密这个求和值,算出信息增益,然后给到 A 方。求分裂节点的核心就是如何算信息增益,通过这样的机制,就可以算出每个分裂节点,同时没有泄露任何隐私信息。

    横向联邦学习

     

    举个例子:微众和合作行共建反洗钱模型,期望优化反洗钱模型。因为,各自利用自家样本建立的反洗钱模型的效果和稳定性都不能满足现实需求。我们可以利用联邦学习的机制,充分利用多家的反洗钱样本,同时在不泄露样本的条件下,构建一个非常大的模型,可以看到横向联邦学习中,微众银行和合作行,都是有( X,Y ) 的。

     

    技术层面上,采用了同态加密、Secret-Sharing 技术,整个过程中,双方交互的是模型和梯度,同时引入了 SecureAggregation 机制,让交互过程中的梯度也是很难被反解的。最终,大家都会得到一个相同的模型。横向联邦学习,综合多家样本,可以让模型更加稳健,效果更好。

     

    下面分享下横向联邦学习的核心技术点,这是Google 的两篇 paper ,第一个是每个端自己训练模型,然后发给云端进行综合各个模型的效果,但是这里面会有个问题,就是模型本身也可能会泄露隐私信息,所以引入了 SecureAggregation,各方在传输模型的时候会加一些噪音,通过云端来消除这些噪音,使数据和模型得到保护。


    应用案例

     

    联邦学习目前已经赋能众多关键领域,取得了不错的效果:

    • 银行+监管,联合反洗钱建模
    • 互联网+银行,联合信贷风控建模
    • 互联网+保险,联合权益定价建模
    • 互联网+零售,联合客户价值建模

    以其中的两个场景以及在视觉领域的应用来说明:

    1.保险业个性化定价

     

    对于保险公司如果想做个性化的定价,是一件非常困难的事情,保险公司只有一些业务数据、承保数据和理赔数据,通过这样的数据,对用户做千人千面的定价是非常难的。通过联邦学习机制,可以融合多个数据源,来构建这样一个千人千面的定价。

     

    这是我们目前在做的案例,当你购买权益产品之后,如果违章了,可以帮你免赔,在这里每个人看到的价格是不一样的,这就是我们通过联邦学习帮它们做的。我们综合了出险数据和互联网数据,如标签、用户画像,构建了一个基于保险定价的联邦学习产品。

    2.小微企业信贷风险管理

     

    很多时候对小微企业我们只有央行的征信报告,想要更精准的刻画企业的信用状况,需要更多的数据,比如发票、工商、税务的数据。

     

    这是我们的一个案例,我们利用了开票金额和央行的征信数据共建了一个联邦学习模型,来预估每个企业的风险。

    3.联邦学习在视觉领域的应用

     

    与 AI 公司探索重塑机器视觉市场,利用联邦学习的机制,相对于本地建模,进一步提升算法准确率,并且形成网络效应,降低长尾应用成本,提升视觉业务总体利润率。

     

    这是联邦视觉在城市管理上的应用。


    联邦学习开源平台:FATE

    通过刚刚的介绍,相信大家对联邦学习能够做什么,有了大体的认识。而联邦学习想要落地,不可避免的就是开源,接下来为大家介绍下微众银行AI团队开源的联邦学习平台——FATE:

     

    FATE 定位于工业级联邦学习系统,能够有效帮助多个机构在符合数据安全和政府法规前提下,进行数据使用和联合建模。

    设计原则:

    • 支持多种主流算法:为机器学习、深度学习、迁移学习提供高性能联邦学习机制。
    • 支持多种多方安全计算协议:同态加密、秘密共享、哈希散列等。
    • 友好的跨域交互信息管理方案,解决了联邦学习信息安全审计难的问题。

    FATE 的 Github 地址:

    FederatedAI/FATE​github.com

    1.里程碑

     

    介绍下 FATE 的里程碑,FATE 在今年2月份首发了0.1版本,3月份的时候有了第一位外部 Contributor,同时 GitHubStar 突破100,5月份发布了0.2版本,支持了联邦特征工程和在线推理,6月份发布了0.3版本,把主要的合作伙伴迁移到了 FATE,并把 FATE 捐献给了 Linux Fundation,8月份发布了1.0版本,支持 FATE-Flow 和 FATE-Board,还有些后续的计划,大家可以了解下。

    2.挑战

     

    联邦学习从一项技术真正成为一个关键系统和产品方案时,我们遇到了下述挑战:

    • 一站式建模过程的联邦化
    • MPC 协议下分布式算法 ( on WAN ) 易理解和易维护
    • 跨站点数据传输安全性和可管理性,如何让交互部分是可以被管理和被审计的。
    • 异构基础架构自适应,联邦学习可能会运行在 CPU、GPU 和端上,如何让上层不受底层的变化而变化。

    3.技术架构

     

    接下讲下 FATE 的整体架构:

    • EggRoll:分布式计算和存储的抽象;
    • Federated Network:跨域跨站点通信的抽象;
    • FATE FederatedML:联邦学习算法模块,包含了目前联邦学习所有的算法功能;
    • FATE-Flow | FATE-Board:完成一站式联邦建模的管理和调度以及整个过程的可视化;
    • FATE-Serving:联邦学习在线推理模块。

     

    一站式联合建模Pipeline,其流程:在开发环境下,其流程是从联邦统计->联邦特征工程->联邦模型训练,当上线部署的时候会有联邦在线推理模块,底层则会采用多方安全计算协议去支持上层各种联邦算法。

     

    FATE 的五大核心功能

    ① FATE FederatedML

    • EggRoll & Federation API:底层是 EggRoll 的算子,比如 Map 和 MapValues,Remote 和 Get 可以完成整个分布式计算的抽象;
    • MPC Protocol:包括同态加密、秘密共享等多种多方安全协议,
    • Numeric Operator:会抽象出数学算子,比如加法或者乘法;
    • ML Operator:用建好的数学算子构建机器学习算子,而不用管底层的安全协议是什么;
    • Algorithms:有了 ML 算子之后就构建各种算法模型。

    ② EggRoll

     

    EggRoll,是整个分布式计算和存储的抽象。面向算法开发者,通过 API 实现分布式计算和存储。上面为 EggRoll 的整体架构图。

    ③ Federated Network

     

    Federated Network:联邦学习不仅需要分布式计算,还需要跨站点通信和交互,上层会提供一个 API 给到开发者,通过 Remote 和 Get 就可以完成数据点的收发。具体模块,如上图。

    ④ FATE-Flow

     

    整个一站式联合建模 Pipeline 需要统一的调度管理。右边为 A、B 双方的建模流程,某些步骤是 A、B 双方共有的,某些步骤可能只有一方有,所以 FATE-Flow 完成了下述管理:

    • 联邦机制下多方非对称 DAG 图 Paser
    • 联邦建模生命周期管理
    • 联邦建模实验管理
    • 联邦建模模型管理
    • 联邦多方任务调度

    ⑤ FATE-Board

     

    FATE-Board 的目的是实现整个联合建模 Pipeline 可视化追踪,记录联邦学习的全过程,可以监控建模进行到哪个步骤,以及模型效果如何。

    4.FATE 部署架构

     

    这是FATE 的部署架构,每一方都是差不多的,是一个对称的结构,通过 EggRoll实现分布式计算和存储,通过 Federation Service 和外部交互。

    5.FATE 应用

     

    现实中,FATE 是如何应用的呢?这里和大家分享一个示意图,会在每一方部署一套 FATE 系统,双方都是在各自部署的 FATE 系统中进行交互。

    6.开发流程

     

    如果对 FATE 感兴趣,作为开发者利用联邦学习框架实现算法,只需要四步:

    1. 选择一个机器学习算法,设计多方安全计算协议
    2. 定义多方交互的数据变量
    3. 构建算法执行工作流
    4. 基于 EggRoll & Federation Api 实现算法工作流中各个功能组件

    7.目前 FATE 项目中的算法和案例

     

    如上图,这是目前FATE 项目中的算法和案例,会根据需求,不断增加各种各样的算法。

    最后,如果想进一步了解联邦学习的话,还可以添加小助手微信号:

    展开全文
  • 了解web技术

    千次阅读 2018-03-20 21:13:15
    web开发:做网站的,web开发技术是互联网应用中最为关键技术之一,互联网应用中包括网络技术,数据库技术,web开发技术等。web服务器:又称www服务器,网站服务器,站点服务器,是将本地信息用超文本组织,为用户在...
  • 互联网构架技术全景图

    千次阅读 2019-03-01 17:28:26
    最近在极客时间上学习了阿里技术专家李云华老师的课程《从0开始学架构》,觉得受益匪浅。 按照李老师的说法: 抛开 BAT 各自差异很大的业务,站在技术的角度来看,其实 BAT 的技术架构基本是一样的。再将视角放大...
  • IT中文技术站十大网站收藏

    千次阅读 多人点赞 2019-09-29 10:47:52
    是中国的IT社区和服务平台,为中国的软件开发者和IT从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性...
  • Java面试中常被问到的几大技术难题

    万次阅读 2018-04-03 11:52:44
    还有一些即将去面试java的童鞋们,你们想知道技术面试中会涉及到哪些点吗?达妹为你整理Java面试中会被问到的几个技术难题。1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但...
  • 为什么要使用信道复用技术?常用的信道复用技术有哪些? 通过共享信道、最大限度提高信道利用率。常用的信道复用技术有:频分、时分、码分、波分。
  • 如果您喜欢这些文章,欢迎点击此处订阅本Blog<!-- google_ad_client = "pub-7343546549496470";/* 728x90, 大横幅正文上方 */google_ad_slot = "4725362798";google_ad_width = 728;google_ad_height =
  • Java核心技术卷一基础知识第10版 PDF文件

    万次阅读 多人点赞 2018-08-31 13:37:11
    下载链接: https://pan.baidu.com/s/1qJEav4jgYoAVEy-Ne0OeDQ 密码:4mka
  • 技术栈是什么鬼?

    万次阅读 多人点赞 2020-04-08 18:09:14
    技术栈是什么鬼? 栈的英文是stack 首先,我们使用金山词霸来查一下stack的中文解释 stack有堆起来的意思,其实就是堆叠,顾名思义,技术栈就是你掌握了一堆的技术(掌握多种技术) 一般来说是指将N种技术互相...
  • 技术方案模板

    万次阅读 2017-09-18 14:24:35
  • 常用的大数据技术有哪些?

    万次阅读 2018-03-13 16:45:12
    大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国家,如中国、美国以及欧盟等都已将大数据列入国家发展战略,微软、谷歌、百度以及...
  • 虚拟现实技术启蒙_艾孜尔江撰

    万次阅读 2020-02-29 20:24:21
    核心技术是建模与仿真,关键技术是环境建模技术,人机交互技术,立体显示和传感器技术,应用胸痛开发工具,系统集成技术。 2答案: 虚拟现实技术的发展进程大致可以氛围三个阶段——第一阶段是虚拟现实技术的探索...
  • 高职高专排名-2012中国最新

    万次阅读 2012-06-22 15:13:44
    2邢台职业技术学院 3山西财政税务专科学校 4辽宁省交通高等专科学校 5长春汽车工业高等专科学校 6黑龙江建筑职业技术学院 7上海医药高等专科学校 8南京工业职业技术学院 9无锡职业技术学院 10宁波...
  • Java核心技术 卷1 卷2原书第10版.pdf,包括:Java核心技术 卷1 基础知识 原书第10版.pdf,Java核心技术 卷2 高级特性原书第10版.pdf。 资源保存在腾讯微云上,下载不需要微云客户端,有需要这个资源的同学,请帅气...
  • 技术架构组工作职责

    万次阅读 2016-03-14 00:01:14
    技术架构组工作目标 落地本部门的技术规划,负责本部门IT整体规划技术部分,指导重要项目的设计实现 规范本部门的所有技术应用和开发内容,保障系统开发的有序、标准、一致性 发展基础技术平台和完善通用组件,...
  • 详解5G的六大关键技术

    万次阅读 多人点赞 2017-12-19 08:06:37
    概要:在5G研发刚起步的情况下,如何建立一套全面的5G关键技术评估指标体系和评估方法,实现客观有效的第三方评估,服务技术与资源管理的发展需要,同样是当前5G技术发展所面临的重要问题。 2013年12月,我国...
1 2 3 4 5 ... 20
收藏数 4,317,252
精华内容 1,726,900
关键字:

技术