企业级应用是为了满足企业日常运营所产生的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、开发过程:强调敏捷,快速开发,基本不需要版本控制。

Java互联网应用和企业级应用的区别的更多相关文章

  1. 15套java互联网架构师、高并发、集群、负载均衡、高可用、数据库设计、缓存、性能优化、大型分布式 项目实战视频教程

    * { font-family: "Microsoft YaHei" !important } h1 { color: #FF0 } 15套java架构师.集群.高可用.高可扩 展 ...

  2. 图灵学院JAVA互联网架构师专题学习笔记

    图灵学院JAVA互联网架构师专题学习笔记 下载链接:链接: https://pan.baidu.com/s/1xbxDzmnQudnYtMt5Ce1ONQ 密码: fbdj如果失效联系v:itit11 ...

  3. Java Thread 的 sleep() 和 wait() 的区别

    Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别       1. sleep ...

  4. Java Thread 的 run() 与 start() 的区别

    Java Thread 的使用 Java Thread 的 run() 与 start() 的区别 Java Thread 的 sleep() 和 wait() 的区别             1. ...

  5. java集合中List与set的区别

       java集合中List与set的区别.     List可以存储元素为有序性并且元素可以相同.     set存储元素为无序性并且元素不可以相同.     下面贴几段代码感受一下: ArrayL ...

  6. paip.java 以及JavaScript (js) 的关系以及区别

    paip.java 以及JavaScript (js) 的关系以及区别 作者Attilax  艾龙,  EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http:// ...

  7. Java中==、equals、hashcode的区别与重写equals以及hashcode方法实例(转)

    Java中==.equals.hashcode的区别与重写equals以及hashcode方法实例  原文地址:http://www.cnblogs.com/luankun0214/p/4421770 ...

  8. java中的sleep()和wait()的区别

    对于sleep()方法,我们首先要知道该方法是属于Thread类中的.而wait()方法,则是属于Object类中的. sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监 ...

  9. java中的this与super的区别

    java中的this与super的区别 1. 子类的构造函数如果要引用super的话,必须把super放在函数的首位 代码如下: class Base { Base() { System.out.pr ...

随机推荐

  1. hello2代码的简单分析

    hello2部分代码: String username = request.getParameter("username");//将get~这个方法赋给username这个对象 i ...

  2. HDFS配置参数及优化之实战经验(Linux hdfs)

    HDFS优化之实战经验 Linux系统优化 一.禁止文件系统记录时间 Linux文件系统会记录文件创建.修改和访问操作的时间信息,这在读写操作频繁的应用中将带来不小的性能损失.在挂载文件系统时设置no ...

  3. MySQL的4种事务隔离级别

    链接: https://www.cnblogs.com/huanongying/p/7021555.html https://blog.csdn.net/qq_33226422/article/det ...

  4. cookie应用——UI中查询条件的保存

    var cookieOperate = { cookieNames: { companyCNName:"_companyCNName", companyENName:"_ ...

  5. Vivado HLS 工具

    干什么的 Vivado HLS工具可以将C语言高级综合为硬件. 为什么要使用HLS 可以在更高的抽象层次描述功能,而不是在传统的RTL级别 一个潜在的用处是,系统设计划分成硬件部分和软件部分之后,软件 ...

  6. c++ std::advance

    // advance example #include <iostream> // std::cout #include <iterator> // std::advance ...

  7. django项目上线环境部署

    django项目上线环境部署 第一步 安装python虚拟环境 1 安装虚拟环境virtualenv 2 安装virtualenvwrapper工具 3 确认virtualenvwrapper.sh脚 ...

  8. 【转载】BlockingQueue

    前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便 ...

  9. Fragment调用startActivityForResult导致的回调Activity无法获取正确的requestId的问题

    今天遇到了一个问题 从Fragment内调用了startActivityForResult方法设置了requestId是1 但是在Activity内的onActivityResult的回调内 获得的r ...

  10. 关于list中移除某种数据类型的方法

    众所周知,list在不泛型的情况下是可以存放各种数据类型的,代码如下: public static void main(String[] args) { List list=new ArrayList ...