企业应用程序与普通应用程序
Enterprise application vs Normal application
有人可以简单地让我了解什么是企业应用程序吗?企业应用和普通应用有什么区别?为什么 Java 最常用于构建企业应用程序?
企业应用程序(Java EE 应用程序)是部署到 Java EE 应用程序服务器的服务器应用程序。应用程序服务器为您提供所有重要且通常难以实现的功能,例如服务器套接字管理、multi-threading、集群、安全性、资源/数据库访问管理、声明式事务处理、依赖项注入等等。
例如。使用 JAX-RS 你可以编写一个 full-blown RESTFul 带有简单 POJO 和几个注释的网络服务。然后应用程序服务器确保将 HTTP 请求正确路由到您的注释方法。
Martin fowler 在他的书 Patterns of Enterprise Application Architecture 中这样定义企业应用程序:
Enterprise applications usually involve persistent data. The data is
persistent because it needs to be around between multiple runs of the
program—indeed, it usually needs to persist for several years. Also
during this time there will be many changes in the programs that use
it. It will often outlast the hardware that originally created much of
it, and outlast operating systems and compilers. During that time
there'll be many changes to the structure of the data in order to
store new pieces of information without disturbing the old pieces.
Even if there's a fundamental change and the company installs a
completely new application to handle a job, the data has to be
migrated to the new application.
There's usually a lot of data—a moderate system will have over 1 GB of
data organized in tens of millions of records—so much that managing it
is a major part of the system. Older systems used indexed file
structures such as IBM's VSAM and ISAM. Modern systems usually use
databases, mostly relational databases. The design and feeding of
these databases has turned into a subprofession of its own.
Usually many people access data concurrently. For many systems this
may be less than a hundred people, but for Web-based systems that talk
over the Internet this goes up by orders of magnitude. With so many
people there are definite issues in ensuring that all of them can
access the system properly. But even without that many people, there
are still problems in making sure that two people don't access the
same data at the same time in a way that causes errors. Transaction
manager tools handle some of this burden, but often it's impossible to
hide this from application developers.
With so much data, there's usually a lot of user interface screens to
handle it. It's not unusual to have hundreds of distinct screens.
Users of enterprise applications vary from occasional to regular, and
normally they will have little technical expertise. Thus, the data has
to be presented lots of different ways for different purposes. Systems
often have a lot of batch processing, which is easy to forget when
focusing on use cases that stress user interaction
Enterprise applications rarely live on an island. Usually they need to
integrate with other enterprise applications scattered around the
enterprise.The various systems are built at different times with
different technologies, and even the collaboration mechanisms will be
different
他还列举了一些企业应用的常见例子:
Enterprise applications include payroll, patient records, shipping
tracking, cost analysis, credit scoring, insurance, supply chain,
accounting, customer service, and foreign exchange trading. Enterprise
applications don't include automobile fuel injection, word processors,
elevator controllers, chemical plant controllers, telephone switches,
operating systems, compilers, and games.
企业应用部署在应用服务器,主要采用三层开发,
- 用户界面 层,它使用表示逻辑向客户端显示用户界面。使用的技术有HTML、JSP等
- 业务层,它使用业务逻辑并处理请求以满足客户端的要求。使用了 JSP、Servlet、EJB 等技术。
- 数据持久性或访问层,它使用持久性逻辑与数据库交互并执行查询。使用了 Hibernate、JDBC 等技术。
有人可以简单地让我了解什么是企业应用程序吗?企业应用和普通应用有什么区别?为什么 Java 最常用于构建企业应用程序?
企业应用程序(Java EE 应用程序)是部署到 Java EE 应用程序服务器的服务器应用程序。应用程序服务器为您提供所有重要且通常难以实现的功能,例如服务器套接字管理、multi-threading、集群、安全性、资源/数据库访问管理、声明式事务处理、依赖项注入等等。
例如。使用 JAX-RS 你可以编写一个 full-blown RESTFul 带有简单 POJO 和几个注释的网络服务。然后应用程序服务器确保将 HTTP 请求正确路由到您的注释方法。
Martin fowler 在他的书 Patterns of Enterprise Application Architecture 中这样定义企业应用程序:
Enterprise applications usually involve persistent data. The data is persistent because it needs to be around between multiple runs of the program—indeed, it usually needs to persist for several years. Also during this time there will be many changes in the programs that use it. It will often outlast the hardware that originally created much of it, and outlast operating systems and compilers. During that time there'll be many changes to the structure of the data in order to store new pieces of information without disturbing the old pieces. Even if there's a fundamental change and the company installs a completely new application to handle a job, the data has to be migrated to the new application.
There's usually a lot of data—a moderate system will have over 1 GB of data organized in tens of millions of records—so much that managing it is a major part of the system. Older systems used indexed file structures such as IBM's VSAM and ISAM. Modern systems usually use databases, mostly relational databases. The design and feeding of these databases has turned into a subprofession of its own.
Usually many people access data concurrently. For many systems this may be less than a hundred people, but for Web-based systems that talk over the Internet this goes up by orders of magnitude. With so many people there are definite issues in ensuring that all of them can access the system properly. But even without that many people, there are still problems in making sure that two people don't access the same data at the same time in a way that causes errors. Transaction manager tools handle some of this burden, but often it's impossible to hide this from application developers.
With so much data, there's usually a lot of user interface screens to handle it. It's not unusual to have hundreds of distinct screens. Users of enterprise applications vary from occasional to regular, and normally they will have little technical expertise. Thus, the data has to be presented lots of different ways for different purposes. Systems often have a lot of batch processing, which is easy to forget when focusing on use cases that stress user interaction
Enterprise applications rarely live on an island. Usually they need to integrate with other enterprise applications scattered around the enterprise.The various systems are built at different times with different technologies, and even the collaboration mechanisms will be different
他还列举了一些企业应用的常见例子:
Enterprise applications include payroll, patient records, shipping tracking, cost analysis, credit scoring, insurance, supply chain, accounting, customer service, and foreign exchange trading. Enterprise applications don't include automobile fuel injection, word processors, elevator controllers, chemical plant controllers, telephone switches, operating systems, compilers, and games.
企业应用部署在应用服务器,主要采用三层开发,
- 用户界面 层,它使用表示逻辑向客户端显示用户界面。使用的技术有HTML、JSP等
- 业务层,它使用业务逻辑并处理请求以满足客户端的要求。使用了 JSP、Servlet、EJB 等技术。
- 数据持久性或访问层,它使用持久性逻辑与数据库交互并执行查询。使用了 Hibernate、JDBC 等技术。