与基于C/S的ETF管理系统开发毕业论文有关的外文翻译资料:基于Oracle的程序性能和可扩展性设计
2021-03-20 01:26:18
Oracle-Based Application Performance and Scalability by Design
The scalable performance of an Oracle-based enterprise application just doesnrsquo;t come as an accidental windfall. A more carefully designed Oracle-based product with performance and scalability taken into account from the beginning is more likely to perform and scale after it is built and delivered to customers. Furthermore, the later a performance or scalability issue is discovered in the development cycle of a product, the more costly it is to fix. Think of such a scenario: A large-scale enterprise application consisted of multiple subsystems; whereas all edge subsystems were multi-threaded, the subsystem acting more like a hub for the entire system was single threaded. Was this a scalable design? Probably not. A complicated software system is similar to an ecosystem that all parts need to support each other in order to coexist. An equilibrium condition is formed when no single part could easily become a single point of failure or bottleneck. Such an equilibrium condition is necessary so that the whole system can sustain stably.
Now the question is how one can design the performance and scalability into an Oracle-based application by following a proven software engineering methodology. At the highest level, one needs to reach a proper balance among the three axes for a software project: cost, schedule, and quality. How much weight one should put on each axis depends on many factors, such as how innovative the idea about the product is, how fast the competitors will be able to catch up, the size of the potential market, and the expected turnaround in terms of cost recovery and profit margin, and so on. Although most of these aspects, especially cost and schedule, belong to the managerial category, the quality of the actual product is more of a technical issue—both from the process and development perspectives. While we let a great managemen
基于Oracle的程序性能和可扩展性设计
对于基于Oracle的企业级应用程序,其可扩展性能的设计并不容易。一个经过精心设计的基于Oracle的产品,应该从一开始就考虑到性能和可扩展性,该产品在构建并交付给客户后,会更容易执行和扩展。此外,在一个产品在开发周期中,如果发现性能或可扩展性问题的时间越晚,修复成本就会越高。设想这样一个场景:某个大规模企业级应用程序由多个子系统组成;其中所有边缘子系统是多线程的,那些更像是整个系统集线器的子系统则是单线程的。这是一个可扩展的设计吗?答案是否定的。复杂的软件系统类似于一个生态系统,各个部分都需要互相支持以便共存。当单个部件不会变成单点故障或系统瓶颈时,就形成了平衡条件。这样的平衡条件是必要的,这会使得整个系统的稳定性得以维持。
现在的问题是,如何通过遵循可靠的软件工程方法,来设计基于Oracle的应用程序的性能和可扩展性。在最高级别的设计中,软件项目的三个标准轴:成本,进度和质量,需要在设计中达到适当的平衡。每个轴上应该有多大的重量取决于许多因素,例如产品的概念如何创新,竞争对手能够赶上的速度,潜在市场的规模,以及预期的周转时间,回收成本和利润率等。虽然这些方面,特别是成本和进度,大多数属于管理类,但无论从产品生产过程还是发展的角度,实际产品的质量更多是技术问题。尽管我们让一个伟大的管理团队去控制成本和进度,我们同时也需要看看:一个有能力的技术团队,是如何使一个高品质的产品,在其整个开发生命周期中,考虑好性能和可扩展性。
首先,让我们先抛开技术细节,来探讨传统的,瀑布式、螺旋式的软件开发方法论与最近快速发展的方法论。 很明显,传统的开发方法更适用于开发平台型产品,例如操作系统,中间件系统和数据库系统等,这些都是构建应用程序的基础,而最新的快速开发方法更为合适用于开发面向应用的产品。看起来似乎是:开发方法的选择与正在开发的产品的成熟度有关。 从版本N到N 1版本,并且Ngt; 5的产品,和那些发布版本0或1的新产品等更成熟的产品来讲,时间不太紧迫。 接下来,让我们探讨各种快速开发方法的优点和缺点,这些与基于Oracle的应用程序的开发相关性很强。以上是本章其余部分的前言,其余部分将介绍如何在基于Oracle的应用程序中设计性能和可扩展性。
本章的剩余部分将讨论以下主题:
bull;快速开发方法
bull;开发计划
bull;需求收集
bull;数据建模的概念设计
bull;规范化的逻辑设计
bull;物理设计
bull;实施
bull;发布到市场(RTM)
bull;后续改进
请注意,本章和下一章将涉及编程知识,会包含SQL和Java。 对于Java,我们将主要依赖其最流行的开源Java开发平台之一——Spring Source。 我们还将介绍一些最新的热点技术,如RESTful Web服务。 Spring有一个非常大的软件开发者基础,RESTful Web服务则是移动趋势,而Oracle是最好的数据库技术,所以我们乐在其中(也可以认为这是一个可以获得有价值的Java开发技能和基于Oracle的应用程序的机会)。 让我们从快速开发方法开始。
14.1 快速开发方法
为了设置适当的期望值,我必须提到这一节不是对每个主要的,现代的快速软件开发方法进行详细介绍。每种快速开发方法的概述将进行简述,但会足够清楚,以便了解您的产品在开发中遵循哪种开发方法。 了解您的项目所遵循的开发方法可能有助于更好地与您的团队合作,这会为您的项目做出巨大贡献。
这里是每个主要的快速发展方法的简要介绍(你可能听说过很多关于前三个,但较少关于最后三个):
bull;敏捷开发(Agile Development)。 这是一个基于迭代或基于drop的开发方法,按照时间先后顺序的测量大致以每两个星期的频率进行。 由于其敏捷性,它更多地依赖于较不正式的沟通,例如口头或面对面沟通,而不是正式文件。 有了这种方法,在产品发布的最后阶段,正式的文档便可以完成。 敏捷开发的优点就是敏捷,所以它可以更有效和更高效; 但是敏捷同时也是一把双刃剑,如果团队规模太大或者团队成员的自律能力较差,那么这种开发可能会变得不那么有效和高效。
bull;极限编程(Extreme Programming)。 极限编程的主要目标是减少变化带来的花销。 这种方法致力于从最简单的解决方案开始,并逐步增加更多的功能。 它的核心是通过设计和编码,满足眼前的需求,而不是未来或未来的需求。 将设计和编码用于不确定的未来需求,意味着将资源用于可能不需要的东西的风险。 优点是它满足了眼下的需求,但从长远来看它可能会