您的位置:首页 > 编程语言 > Java开发

Java企业级应用软件开发

2012-12-09 00:23 399 查看

一、什么是软件开发?

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

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

系统级开发:如开发操作系统、驱动程序、嵌入式系统开发: 更多是用:汇编、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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: