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.
# 1 楼答案
Martin fowler在他的书Patterns of Enterprise Application Architecture中对企业应用程序的定义如下:
他还列举了一些常见的企业应用程序示例:
# 2 楼答案
企业应用程序部署在应用服务器中,主要使用三层进行开发