Java企业级应用软件开发

一、什么是软件开发?

计算机系统开发:包括硬件开发和软件开发。

软件开发可以分为系统级开发和应用级开发。

系统级开发:如开发操作系统、驱动程序、嵌入式系统开发: 更多是用:汇编、C、C++等底层语言、编写操作系统、编译器、驱动程序、底层系统功能、要求深厚的数据结构与算法功底。

应用级开发:企业级应用开发、电信级应用开发、PDA应用开发... ...


二、企业级应用开发

      Java企业级应用开发、.Net企业级应用开发、Python/ruby/php企业级应用开发。

      这里重点说Java企业级应用开发。

     其实Java是分为:J2ME、J2SE、J2EE(也就是Java企业级应用开发),当前java企业开发大多数采用Spring框架。

     成熟的企业级开发可能转变为工业级开发

三、Java企业级开发Spring框架介绍

    http://www.springsource.org/projects

     scalability-availability-stability-patterns

  研读Spring代码:优先阅读:DI、AOP、JDBC Template、Spring的一些架构和设计模式等

  Google的Guice是类似于Spring的容器,也支持IoC/DI等

 1 Spring基础核心功能:

     Spring框架核心功能: IoC(Inversion Of Control)/DI(Dependency Injection)、AOP(Aspect Oriented Programming)、

     理论依据:Martin Fowler的《企业应用架构模式》,   《Expert One-on-One.J2EE.Design.and.Development》《Expert_J2EE_Development_Without_EJB》

     实际使用手册:Spring Reference、 Spring API、    

     实际项目:Spring自带若干个例子

     可以与SQL、NoSQL、Hadoop很好集成

 2 Spring 新增核心项目介绍:(企业数据框架/企业数据架构)

     2.1Spring Data 项目:  《Spring Data: Modern Data Access for Enterprise Java》O'Reilly

     Spring Data - Apache Hadoop

     可以与SQL、NoSQL、Hadoop很好集成

     Spring Data项目:

CategorySub-project 
Relational DatabasesJPASpring Data JPA - Simplifies the development of creating a JPA-based data access layer
 JDBC ExtensionsSupport for Oracle RAC, Advanced Queuing, and Advanced datatypes. Support for using QueryDSL with JdbcTemplate.
   
Big DataApache HadoopThe Apache Hadoop project is an open-source implementation of frameworks for reliable, scalable, distributed computing and data storage.
HDFS and M/R  、Hive、Pig、Cascading、HBase
 Splunk/Lucene 
Data-GridGemFireVMware vFabric GemFire is a distributed data management platform providing dynamic scalability, high performance, and database-like persistence. It blends advanced techniques like replication, partitioning, data-aware routing, and continuous querying.
   
HTTPRESTSpring Data REST - Perform CRUD operations of your persistence model using HTTP and Spring Data Repositories.
   
Key Value StoresRedisRedis is an open source, advanced key-value store.
   
Document StoresMongoDBMongoDB is a scalable, high-performance, open source, document-oriented database.
   
Graph DatabasesNeo4jNeo4j is a graph database, a fully transactional database that stores data structured as graphs.
   
Column StoresHBaseApache HBase is an open-source, distributed, versioned, column-oriented store modeled after Google' Bigtable
   
Common InfrastructureCommonsProvides shared infrastructure for use across various data access projects. General support for cross-database persistence is located here
 Grails MappingProvides a database unified object mapping framework that is portable across different databases for Grails.

Spring Data GemFire

    2.2 Spring Integeration 项目:

         Spring AMQP项目:集成消息机制

         Spring BlazeDS Integration:Spring集成Flex

       《Enterprise Integration Patterns》http://www.eaipatterns.com/

        Message Driven Architecture with Spring

    spring Integration Books:
       Mark Fisher, Jonas Partner, Marius Bogoevici, Iwein Fuld: Spring Integration in Action
       Madhusudhan Konda: Just Spring Integration
       Dr. Mark Lui, Mario Gray, Andy Chan, Josh Long: Pro Spring Integration

      ESB 消息中间件 RabbitMQ.ActiveMQ... ...

      可以与SQL、NoSQL、Hadoop很好集成

    2.3 Spring Batch 项目

       Java6: ExecutorService\  Java7: ForkJoinPool \  Erlang/Scala: Actor & Message \ Go:goroutine\Grand Central Dispatch:Block&Queue(iOS)\GridGain:Compute Grid  \ Hadoop:MapReduce

       后台批处理业务、可以与SQL、NoSQL、Hadoop很好集成

    2.4 还有一些其他项目:

       Spring Mobile 与手机相关:Android

       Spring Social  与社交相关:微博 Twitter

       Spring MVC/Spring Web Flow 与 界面相关

       Spring Web Services 与Web service相关

       Spring Roo Java开发者快速构建工具

       Spring Security 安全相关

       Spring LDAP :目录访问


 3 Spring云中漫步

      3.1 IaaS(Infrastructure  as a Service,IaaS)基础设施即服务:

    提供给消费者的服务是对所有设施的利用,包括处理、存储、网络和其它基本的计算资源,用户能够部署和运行任意软件,包括操作系统和应用程序。消费者不管理或控制任何云计算基础设施,但能控制操作系统的选择、储存空间、部署的应用,也有可能获得有限制的网络组件(例如,防火墙,负载均衡器等)的控制。

          如:▪ EC2     ▪ Eucalyptus     ▪ FlexiScale     ▪ GoGrid ▪ Nimbus     ▪ OpenStack     ▪ Rackspace Cloud     ▪ VPC 

      3.2 PaaS(Platform as a Service,PaaS)平台即服务:提供给消费者的服务是把客户采用提供的开发语言和工具(例如Java,python, .Net等)开发的

        
          如:▪ App Engine     ▪ Windows Azure     ▪ Engine Yard     ▪ Force.com ▪ Heroku     ▪ MTurk     ▪ RightScale     ▪ Amazon S3 ▪ SimpleDB     ▪ SQS
                  Google App Engine、Amazon Elastic Beanstalk 、Cloud Foundry、Hadoop、Storm

      3.3 SaaS(Software as a Service,SaaS)软件即服务:

       提供给客户的服务是运营商运行在云计算基础设施上的应用程序,用户可以在各种设备上通过客户端界面访问,如浏览器。消费者不需要管理或控制任何云计算基础设施,包括网络、服务器、操作系统、存储等等;

          如:▪ SAP OnDemand Solutions  ▪ Google Apps     ▪ Microsoft Online ▪ NetSuite     ▪ SalesForce

      3.4 虚拟机:VMware(VMWare ACE)、Virtual Box和Virtual PC

      3.5 CloudFoundry 开源的云(共有、私有、微型演示):量子恒道、用友云、vFabric Data Director、Serengeti、mopaas、openstack、

      3.6 通用应用: 日志分析/用户行为分析、机器学习/数据挖掘、网页抓取/文字处理、抽取/转换/加载(ETL)、图像处理、数据备份... ...

      3.7 行业应用: 科学研究领域、医疗领域、商业领域、制造业、智慧城市、 金融服务、电子商务、生物医药、电信、科技、大众传媒、搜索引擎、视频... ....

      3.8 BigData: 分布式系统、云计算、物联网

           大数据的获取、传输、存储、质量管理、支持求解等方面。所有的五个阶段里面的问题集中起来,称之为大数据计算问题的空间。
                3.8.1 The Big Data Problem:

                   1 Capture: Collect data from all source - structured and unstructured data (Log files\ Exhaust Data\Social Media\Sensors, devices\DB data)

                                   All speeds batch、async、streaming、real-time

                   2 Process: Transform, refine, aggregate,analyze, report

                   3 Exchange: Deliver data with enterprise data systems

                                     Share data with analytic applications and processing

         

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值