企业级应用是为了满足企业日常运营所产生的IT应用,其目的是满足企业自己,对交付厂家而言,俗称2B业务;互联网应用则是面向个人用户,俗称2C业务。
就个人经验,企业应用主要关注业务服务的能力,针对该企业的业务流程进行信息化、规范化、日志化,以提高企业业务及管理的效率。;互联网比较关注体验,用户粘性。技术上看,很多企业级应用的业务复杂性比互联网要大的多;而互联网应用主要是海量用户,高并发,海量数据,同样一个简单的东西,放在大并发的场景下,需要考虑很多额外的要素。
企业应用: 1、行业领域:区分行业,各自领域业务背景不一样,并形成了一定的门槛。 2、业务逻辑:业务逻辑复杂,涉及大量的数据和多人协同处理。 3、数据一致性:强调数据一致性,需要通过事务,交易中间件,数据库锁,java同步机制来保证数据的一致性。 4、数据复杂度:数据复杂,有大量的表,表之间有复杂的牵涉关系,在某些行业维护这些表之间的关系和数据就需要一个团队。 5、并发量:不是特别大,比如通用应用为100~200并发,重度并发500的系统就能满足国内大部分的系统要求。 6、系统集成:关键系统需要和很多外部系统集成,集成的方式可能采取esb,jms,web service,socket。 7、用户交互:强调界面交互和数据表达,需要支持多种数据展现方式,需要众多数据在页面上的展现,传输 8、开发过程:强调软件过程,讲究行业经验,需要撰写大量的文档和多人的协同,需要版本控制和问题跟踪回溯。 互联网应用: 1、行业领域:跨行业,按应用类型区分,比如blog,wiki,个人门店等。 2、业务逻辑:业务逻辑简单,大部分是通过页面进行数据的增删改查。 3、数据一致性:要求有事务,但和高并发博弈中,让位给高并发。 4、数据复杂度:数据不复杂,表之间的关联不多 5、并发量:强调高并发,支持用户数量多,并采取企业开发中极少采用的技术,比如web反向代理,memcache(分布式缓存),表的垂直分隔、水平分隔,强调高速读低速写。支持百万用户。 6、系统集成:弱。极少需要和其他系统集成 7、用户交互:弱。交互不多,表现方式简单,更多的是数据的增删改查。 8、开发过程:强调敏捷,快速开发,基本不需要版本控制。