ylbtech-Miscellaneos:ISV
ISV英文全称是Independent Software Vendors ,意为“独立软件开发商”,特指专门从事软件的开发、生产、销售和服务的企业,如微软(Microsoft)、甲骨文(Oracle)等。
1. ISV辨析返回顶部
 以下内容译自维基百科对于ISV的说明。
ISV独立软件厂商是专门生产和销售软件的公司,主要针对大规模或细分市场。这样的市场可能非常广泛,包括房地产中介软件,医疗,条形码扫描,股票软件,甚至儿童保健管理软件
和常规的电子表格和数据库软件相比,这类专业产品通常为用户提供了更高的生产率
许多大型软件公司,包括微软和IBM,都和ISV有特殊的合作关系。
ISV生产和销售的软件产品要运行在一个或多个计算机软硬件平台之上。因此,生产制造这些平台的公司,比如微软,IBM,等都鼓励和支持ISV,通常是特殊的“业务伙伴”的合作关系。
一般说来,平台开发商比如微软和IBM也生产应用程序,但是在很多情况下,他们不具备生产某些行业软件的特定专业知识。
================
由此可以看出,ISV是一类利用已有的软硬件平台开发特定应用程序的厂商。
 
2. 发展历史返回顶部
但是,为什么不干脆称作“软件开发商”;“独立”又由何而来?
回首20世纪中叶,当时的计算机十分昂贵,仅仅应用于少数的几个特殊领域,如国防、科研等。计算机软件则基本由计算机硬件厂商开发并打包在其硬件产品内免费赠送,或者由计算机用户自行编制应用软件。时至20世纪60年代,随着COBOL(Common Business-Oriented Language)和FORTRAN(Formula Translator)等高级编程语言的面世,计算机编程变得更为容易。一些新兴职业,如程序员、分析员和计算机系统专家等应运而生。1964年,一个名叫戈兹的人就创建了世界上第一家专门围绕软件产品开发和营销运行的公司-ADR
与此同时,计算机应用的范围和复杂度不断增加。这使计算机硬件生产厂商免费提供软件的成本加大,软件编制的任务也不堪重负。终于,IBM在1969年宣布停止发送免费随机软件,并从1979年1月1日开始分别为硬件和软件定价。这个具有里程碑意义的决定加速了软件产业的蓬勃发展。从此,一大批独立于计算机生产厂商的专门从事软件开发、生产、销售和服务的独立软件开发商崛起。其中不乏我们所熟知的主要软件企业,包括:创建于1975年的微软公司,目前是世界个人和商用计算机软件行业的领袖;以及创建于1977年的Oracle公司,目前是世界第二大独立软件开发商创建于1972年的SAP公司,目前是全球第三大独立软件开发商;这就是ISV“独立”的由来。
 
3. 十大开发商返回顶部
全球十大独立软件公司/独立软件供应商(ISV)
1.Microsoft
2.Oracle
3.SAP
4.Compuware
5 NAI(美国网络联盟公司):McAfee
6 BMC
7 BEA
8 Infor
9 Sybase
10 SAS
 
4. 返回顶部
 
5.返回顶部
1、
2、
6. 返回顶部
 
7. 返回顶部
 
8.返回顶部
 
9. 返回顶部
 
10.返回顶部
 
11. 返回顶部
 
12. 返回顶部
 
14.返回顶部
 
15. 返回顶部
 
16. 返回顶部
 
17.返回顶部
 
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Miscellaneos:ISV的更多相关文章

  1. Miscellaneos:版本控制、SVN、VSS

    ylbtech-Miscellaneos:版本控制.SVN.VSS 版本控制.SVN.VSS 1.A,版本控制返回顶部 1, 版本控制(Revision control)是一种软体工程技巧,籍以在开发 ...

  2. zzz

    开放平台(TOP)的API是基于HTTP协议来调用的,开发者(ISV)可以直接使用TOP提供的官方SDK(支持多种语言,包含了请求的封装,签名加密,响应解释,性能优化等)来调用,也可以根据TOP的协议 ...

  3. Dynamic CRM 2013学习笔记(二十五)JS调用web service 实现多条记录复制(克隆)功能

    前面介绍过如何克隆一条当前的记录: Dynamic CRM 2013学习笔记(十四)复制/克隆记录 , 主要是通过界面上加一个字段,单击form上的clone 按钮时,改变这个字段的值以触发插件来实现 ...

  4. 怎样重建一个损坏的调用堆栈(callstack)

    原文作者:Aaron Ballman原文时间:2011年07月04日原文地址:http://blog.aaronballman.com/2011/07/reconstructing-a-corrupt ...

  5. 如何重建一个损坏的调用堆栈(callstack)

    原文作者:Aaron Ballman原文时间:2011年07月04日原文地址:http://blog.aaronballman.com/2011/07/reconstructing-a-corrupt ...

  6. 菜鸟电子面单对接技术方案(link)

    一.背景 快递业务日新月异,收发快递是生活中不可缺少的一部分了,特别是做微商的商家,每天发送大量的快递.填写快递单已经成为过去式,快递小哥上门收件的时候,都使用手持的中端设备,再也不用客户填写快递单了 ...

  7. SpringBoot整合阿里短信服务

    导读 由于最近手头上需要做个Message Gateway,涉及到:邮件(点我直达).短信.公众号(点我直达)等推送功能,网上学习下,整理下来以备以后使用. 步骤 点我直达 登录短信服务控制台 点我直 ...

  8. 钉钉提供的内网穿透之HTTP穿透

    此方法无需自行提供服务器和域名 官方地址:https://developers.dingtalk.com/document/resourcedownload/http-intranet-penetra ...

  9. java web 开发三剑客 -------电子书

    Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知In ...

随机推荐

  1. java多线程快速入门(五)

    常用线程api方法 多线程运行状态 1.新建状态 用new创建一个线程 2.就绪状态 当调用线程的start()方法 3.运行状态 当线程获得cpu,开始执行run方法 4.阻塞状态 线程通过调用sl ...

  2. 目标检测-yolo

    论文下载:http://arxiv.org/abs/1506.02640 代码下载:https://github.com/pjreddie/darknet 1.创新点 端到端训练及推断 + 改革区域建 ...

  3. hdu4052矩形面积并

    建模需要注意下细节,,这是做扫描线的惯例,就是最好把模型建立在笛卡尔坐标系上 剩下的看链接和注释https://blog.csdn.net/shiqi_614/article/details/7983 ...

  4. 【C++ Primer | 19】控制内存分配

    重载new和delete 1. 测试代码: #include<iostream> #include<new> using namespace std; class A { pu ...

  5. [转] 插件兼容CommonJS, AMD, CMD 和 原生 JS

    模块标准 CommonJS CommonJS 有三个全局变量 module.exports 和 require.但是由于 AMD 也有 require 这个全局变量,故不使用这个变量来进行检测. 如果 ...

  6. Android Studio代码调试大全

    http://blog.csdn.net/dd864140130/article/details/51560664 Android Studio目前已经成为开发android的主要工具,用熟了可谓相当 ...

  7. [ZJOI2006]书架

    链接:https://www.luogu.org/problemnew/show/P2596 题解: 写了两天的平衡树终于大概弄好了所有模板(模板不熟写错debug真是要死) 对于放在头尾,只需要删除 ...

  8. 大数据在教育中的应用 part2笔记

    什么是交叉检验(K-fold cross-validation)   K层交叉检验就是把原始的数据随机分成K个部分.在这K个部分中,选择一个作为测试数据,剩下的K-1个作为训练数据. 交叉检验的过程实 ...

  9. rsync增量备份脚本

    shell脚本: #!/bin/bash export PATH=/usr/local/bin:/usr/bin:/bin dir=/mnt/ DAY=`date "+%Y-%m-%d&qu ...

  10. tarjan 算法求强连通分量

    #include<bits/stdc++.h> #define ll long long using namespace std; const int P=1e6; ; ; const i ...