从马克克利夫顿的字:
我遇到了托尼的XAKTSoft刘易斯,首席执行官,2004年9月。与他一起工作将近一年后,我建议,我们放在一起了一系列文章,描述的技术,我们已经创建了。这是第一个计划是什么许多文章,涵盖的剪贴簿,设计和架构,和技术部门。虽然项目是如何构思的故事是很有趣,你也可以阅读有关的企业决策,技术的挑战和其他方面的考虑到产品设计。也有独立的组件,我们觉得社会会发现价值,我们将会提供技术讨论的代码。不过现在,坐下来享受这一切是如何开始的书面托尼的故事。简介
灵活性是母亲的复杂性。虽然简单的目标和功能融入一个经典的程序设计模型很好的水平以上"计算机101实验室工程"的复杂性,简单的系统,事情开始变得相当多的涉及。
大多数现代编程方法是天生的,从需要解决更加复杂的应用程序开发工作。投掷更多的程序员走上工作岗位的经典方法,迅速达到一个地步,没有进一步的收益是可以实现的的。目前的方法试图通过代码的重用,如技术,模块化设计,简化了升级,以解决大型系统的开发困难,隔离功能,使个别单位可轻松自动测试,面向对象的开发,管理专业化和执行封装。此外,文化社会的方法已经演变以及,最引人注意的是极限编程。
开发商日益增长的工具包的常见和易于理解的方法和技术,可应用于努力:面向对象编程应用层(用户界面/业务逻辑/数据访问)瘦客户机(简化比管理程序开发)
基于浏览器的发展利用存储过程,触发器等数据库为中心的模式Web服务远程XML
每一个新的概念经常被晋升为圣杯,将所有的数据处理世界问题的解决。事实上,许多这些工具已惊人的创新。现代的,互动的,基于Web的计算环境,我们今天所享有的将是不可能的,没有他们。
然而,经典的观察仍然适用:"当你有一把锤子,一切看起来都像钉子"。愚忠任何一种技术或方法往往导致系统几乎是联合国维护由于其复杂性。这通常会导致使用错误的工具作业。
这样的背景下的思维过程,导致了"UltraTier"的发展的核心。首先,它是重要的国家UltraTier是什么??的数据为中心的业务应用的灵活的开发平台。这不是圣杯,但如果你的"钉子",恰好是这些数据为中心的业务应用之一,然后UltraTier可能是你的"锤子"。时间改变
像所有的创新,UltraTier开始需要的响应。在这种情况下,需要有一个具体的挑战,为业务系统:一个高度复杂的核心功能共同。一个不断变化的环境中,需要频繁更新的核心功能。大量的区域差异,在需要的功能,涉及到用户界面的变化,业务逻辑和数据模型。大量的模块化要求,以满足特定的相关行业的需求。这些模块往往需要紧密集成,并修改的核心功能。特定的用户要求,影响工作流程,业务逻辑和数据要求。
被替换的系统是一个典型的两层,"胖客户端"项目,该项目试图满足这些需求,并越来越胖和更复杂分钟。尽管有这些障碍,这是一个非常成功的商业产品超过130个装置。它有一些功能,会在新系统中得到满足和超过:整个系统可以在不到5分钟(加上下载)的电话协助安装。所有的用户定期做他们自己的版本升级,没有更多的时间,完全自动化(包括数据库更新)。用户能够添加到现有的表和屏幕,在基础数据库中的真实类型的列创建用户定义的字段。用户有能力与他们自己的一套用户定义的字段添加一些主记录的相关表。这些表格允许捕获多发生的数据,再次存储在数据库中的标准表。该报告作者允许访问所有的标准和用户定义的数据,再加上任何其他数据的数据库平台访问。
本产品也有其局限性,从而导致决定尝试重写:该产品是针对某一特定地区的需要。针对资助,它已获得成功,但限于它的用处其他地方。用户定义的文件能力提供能够捕获特定行业的数据,但只有这样,才能实现业务逻辑是通过数据库存储过程和触发器。用户自定义的屏幕和处理用户定义的表的特殊屏幕只能处理用户定义的数据。标准的数据无法显示,或保持在这些屏幕上。如果用户定义的信息是需要一个标准的工作流程的一部分,这使得这些屏幕尴尬。一些业务逻辑与用户界面的紧密集成意味着一些功能是在不同的地方重复。这种整合也需要一定程度的控制系统的工作流程,并在模态形式的独家使用(用户执行一个函数来完成它带来另一个屏幕前)。工作站已访问应用程序的数据库后端外。这是一个行业具有广泛的安全和隐私问题,所以这需要被淘汰。频繁的数据库访问的网络系统,与相对缓慢的连接,尤其是广域网环境中征税。锁定问题,有时也有问题。通过系统的各种工作流程路径自动化测试几乎是不可能的,造成昂贵的质量保证工作和生产一种偶然,蔚为壮观的失败。许多行业标准的支持是令人费解的代码,往往没有发挥好一起僵化岛屿错落有致。
这是改变的时候了!实现这一转变的第一步是要确定新系统的要求。想到这一点只与终端应用的要求处理过程。基于这些需求,将确定一个开发平台。定义了新的要求
新的方案需要有这些特点:容易开发和维护的用户界面,业务逻辑和数据库访问,紧凑,分发,琐碎的安装,最终用户很少或根本没有援助的升级,与其他产品和系统的互动,网络高效,不够紧凑,运行在一台工作站或PDA,通过多种接口访问网络连接的PC,Web客户端或断开客户端与同步?模块化(不是所有的功能是在所有安装都需要),能够接受的标准修改设置,将实施所需的区域特点,修改由客户或代表客户的外部资源,而不会失去能力的提升为核心的应用程序或任何其他的模块化系统或区域修改。
虽然不是一个长长的清单,这个属性的组合将是很难找到。任务有点难度,行业等特点需要考虑:大部分客户没有任何重大的内部的IT专业知识。大部分客户都是非利润非常有限的预算。有可观的是,在使用该应用程序的工作人员,其中许多是专业人士在技术很少有时间或兴趣。用户安装一个单用户系统,在业务范围从少于50万美元的年度总收入,广域网为基础,多站点,具有数百个用户,并在每年的收入几百万的系统。
这些因素的结合,立即消除了许多有前途的平台。可观的收购成本,日常开支,人手需求和其他因素的影响,使他们在此设置行不通。
在搜索过程中的挫折感导致像"这应该是简单的"思想,以及"为什么不只是这样的工作"?大多数开发人员有同样的想法。通常情况下,现实设置和可用的解决方案达成一项妥协。如果这些解决方案不存在本身,它是必要的,按照问题的结论:"它会采取什么让我需要什么?"在这一点上,另一个现实检查通常停止进程。然而,这一次,开始思考这些问题的职业生涯产生了一些答案。现在唯一的问题是"如何没有这个做"?
这个问题的答案将在下一篇文章中讨论。: