《ibm的旧金山项目(san++francisco++project)》由会员分享,可在线阅读,更多相关《ibm的旧金山项目(san++francisco++project)(7页珍藏版)》请在金锄头文库上搜索。
1、I B M的旧金山项目( S a n F r a n c i s c o P r o j e c t ) 工 B M 公司 软件部 几十年以来, 旧金山一直被认为 位于美国城市之首, 在那里 梦想开 始于雾霭和阳光之中。 现在,I B M正借旧 金山的 名声开 拓其共 享框架 ( S h a r e d F r a m e w o r k ) ,这是一个 雄心勃勃的计 划,2 0 0 多个合作 伙伴和 开发人员参与了旧金山 项目,旨 在帮助成千上万的商业伙伴跨入面向 对象编程,J a v a , 和多 平台分布的 现代化时代。 旧金山项目的一系列先进、复杂的商业对象框架,由 I B M在过去
2、三年中与 2 0 0多 个合作伙伴机构联合用J a v a 语言编写而成的。目 前, 旧金山项 目被认为是世界上最大的J a v a 开发程序, 其开发队伍超过2 0 0 人。 八月份,IB M经过努力发布了第一 批产品: 旧金山基础( F u n d a t i o n ) 和工具( U t i l it i e s ) , 以 及旧 金山通用商务 对象。 这些产品通称为旧 金山 基 础软件, 或者叫做旧 金山 普通分类帐目 ( S a n F r a n c i s c o G e n e r a l L e d g e r ) , 这些软件组成了核心商务处理框架系列的第一批产品。这个工具
3、包最 初为Wi n d o w s N T和A I X平台 提供,由于一些特定平台 的工具 ,比 如 I D E和安装程序,它还没有完全准备好 ( 但是正在朝这方面努力) 1 0 0 % 的纯J a v a 认证。 下一步它将发布其它平台的 产品, 这些平 台包括 I B M 的OS / 4 0 0,惠普的 H P - U X,以及太阳公司的 S o l a r i s 操作系统。 D . H . A n d r e w s 小组的两位分析家,D a v id A n d r e w s 和M a r i a D i g l i o , 对这个项目 进行了密切跟踪。 他们在1 9 9 7 年8
4、 月份报告中 指出, I B M 没有大吹大擂,他们默默地开发了一种能够改变如何创建应用软件的 产品。这种产品. 将使开发人员能够花更少的时间来创建更复杂的应 用程序。” 什么是商业框架?商业框架就是能够合作完成商业任务的一系列 对象,这些商业任务从开始就能 扩展。这个概念不同于以往发布的把 焦 点 集 中 于商 业 对 象 的 框架 。 以 往的 框架( 比 如 微 软的M F C 和R o g u e W a v e 的ap p ) 通常更关注一项特定的 技术,比如跨平台操作系统服 务和图形用户界面。旧金山项目 是一系列的框架, 每个框架封装了一 个 特定的用严格的面向对象分析和设计生产的
5、范畴。 当许多I B M的A S / 4 0 0 商业伙伴从他们现有过期的C O B O L 和R P G 技术 转向面向对 象、 用户图形界面和多平台 操作时,来 到I B M公司寻 求帮 助, 于是I B M的专家们就产生了 这种创意。这 个项目最 初用C 十 十 完成. 但是,1 9 %年 初,I B M的管理者认识到J a v a 是一条更有前途 的道路。一 些合作伙伴, 通常是中小型 经销商,提供了许多会计和纵 向市场软件包,他们正在阅读这些新技术,发现了一些诸如 S A P和 P e o p l e s o ft 之 类 的 新 型 强 劲 竟争 对 手 的 突 然 掘 起。 他
6、们 意 识 到, 为 了 加 强竞争力, 他们需要更多的资源, 而这是他们单个机构所不能管理的。 “ 我们与 我们最 底层的开发伙伴一 起设计了旧 金山 项目, 使我们的 业务能够在目前出现的全球市场上更有效地完成,”I B M的全球中小 型商业机构网 络计算 和软件总经理S te v e L a d w i g 说。 “ 基于J a v a 的软 件构建块为开发者, 特别是那些集中于满足小型和成长中的业务的开 发者, 提供了一条通向降低开发费 用和加快上市时间的 独创的道路。 ” I B M 估计一个利用这些框架的应用程序至少可以 从中得到 4 0 %的代 码 。 合作伙伴将不能 完全免费得
7、到旧 金山 项目 。 但在应用这个项目的开 始阶段和对开发人员的培训对于潜在合作伙伴是免费提供的,但是创 建于这些框架上的 应用 程序一上市,I B M将索取 “ 很低的一位数”的 版权费 ( 这种版权费将随着销量增加而降低);而且与应用程序销售 有关的服务场所,比如培训,咨询和维护,都不包括在内。 D a v i d A n d r e w s 和M a r i a D i g li 。 认为I B M选择了 一种甚至可能帮 助项目 成功 的定价模式 ( 即使这对I B M来说是冒险的), 因为它 在独立软件开发 商的定价模式上提 供了广泛的范围,这些独立软件开发商 毕竟是这个 项 日的直接
8、客户。 I B M的合作伙 伴遍布世界 各地. 包括一些北美公司, 如L a w s o n 软 件公司,A v a d i a 技 术公司( 计算机协会的一 个分支) ,A c t i o n Wa r e , 和 V i s i e n t 公司; 一些亚洲公司, 如T e ij i n 株式会社和S u m i t o m o 金属信息 系 统公司 ( 都来自日 本,L a n s a A s p e c t 计算公司 ( 澳大利亚)和欧 洲公司G . U . S . A G a n d C o m p a n y( 德国),J B A有限公司 ( 英国) 和 国际商业系统公司 ( 瑞典
9、)。一 些公司比其它一些公司作出 的努力更 多; 比如J B A有限公司和国际商业系统公司是 I B M 以外直接参与编程 的两家公司。 还有一个有十 几家公司组成的内 部圈子,I B M经常向它 们咨询有关的设计问题。 第二个工具开发商团体致力于在他们自己的产品中支持旧金山。 这 些开发商包括T o w e r 技术公司,它将在自己 的J a v a I D E中 提供支 持; S y n o n 将在它的O b s y d i a n 商务处理分析和第四 代语言工具中提供支持; R a t io n a l 软件公司 将在R a t io n a l R o s e f o r J a v
10、 a 中加入旧金山 面向 对象分 析和设计模式以 及代码生成器: B o r l a n d国际公司也将在其 b u il d e r J a v a I D E 中加入。实际L , R a t i o n a l R o s e 将作为一个基本部分在旧金 山设计过程中使用,和旧 金山工具包一 起提供的部分文档就是大量的 R o s e 模式算法。 框架的内部结构 框架本身就是一个复杂的有机整体,由2 5 0 0 个类组成。 可以分 成 三个层面:基础,通用商业对象,和核心商业处理。这三个层面提供 了总体功能区分分明的三个部分:基础层面包含基本服务和定义;通 用商业对象层面包含一些中间的,稍有
11、复杂的整体,它们是与基础层 面类有用的集合体; 核心商业处理层面是一系列功能 齐全的商 业框架。 设计过程包括与合作伙伴的商讨。 第一轮商 讨决定了 这个框架将包 含什么以及合作伙伴将为得到有竟争力的区别特征来设计什么。 比如, 商讨的结果是,I B M不提供任何用户界面生成程序, 除了 一种对合作 伙伴自身的培训和理解有益的非常概括化的图形用户界面。第二轮商 讨集中于合作伙伴如何扩展和改变提供的源程序代码; 扭 提供给合 作伙伴通用商务 对象和核心商务处理层的源代码,并可根据需要免费 进行改动 。 框架中的模式( p a t t e r n ) I B M的设计小组并没有忽略它家里的工作,I
12、 B M 为频繁遇到的对 象模型或脚本定义了一种设计模式作为可重复利用的解决方案。 根据 主导建筑师K a th y B o h r e r 的观点, 模式应主要提供四 个方面的 优势: 他们能加快理解速度,减少设计和编程错误,允许为不太有经验的设 计小组成员使用,以 及减少维护花费和测试时间。旧金山的设计 者们 把他们使用的模式分成两部分:面包切割机( c o o k i e c u t t e r ) 和微型 框架 ( m i n i - fr a me w o r k s ) o 面包切割机( c o o k ie c u t t e r ) 类型的模式的一个例子是动态确认器 ( 伪n
13、a m i c I d e n t i f i e r ) .基于这种模式 之上的类为枚举类型,能 够在 应用 程序运行时进 行动态修改。 一个部门 清单上可能开始有1 0 个入口, 但 是经过公司重组后, 可能只剩下7个。可以为管理者提供这种维护任 务的工具, 应用程序不必中断和重新启动。 普通分类帐类A n a ly s i s C o d e 和A n a l y s i s G r o u p 组成了 动态确认器;A n a l y s i s C o d e 代表帐目 表中一 种特定的帐目;A n a l y s i s G r o u p 是一系列由用户定义的 代码, 组成一个 对
14、报告事务有用的组,比如政府针对法律要求报告需要的帐目 或部门 一4 7 一 门!一 经理决定本单 位是否 健康时需要的帐目 。 微型框架类的模式的一个例子是收支缓存( B a l a n c e d C a c h i n g ) 。 这种 模式让开发者确认一些参数,比 如在特定的一段时间内,把一系列帐 目中 特定的帐目 收支缓存起来,以备快速反应 ( 这样就不必每次都重 新计算一个应用程序必须处理的 收支平衡)。 这个缓存的收支集合类 ( 普通商务对象层的一部分)就是完成这种模式的一个类.由通用分 类帐核心商务处理依次使用,负责管理各类下属部门和其它 组成本企 业,又实际运行本软件的其它独立
15、实体。 扩展点 ( e x t e n s i o n p o i n t ) 战略提供了直 接构建在本框架内的 类, 方法 或对象, 可以被替换以得到可扩展性。 扩展点( e x t e n s i o n p o in t ) 战略支持 对于 在哪里进行改 变的 简单确认。 这是很重要的,因为本项目的 最初 目 标就是 创建容易扩展的框架。这个战略也使用一系列的设计模式: 属性. 使完成程序在运行时可以加入属性, 建立 新的对 象关系 政策,替换或修改商业规定 封装的责 任链( C h a i n o f R e s p o n s i b i li t y ) ,允 许你为不同的对象或过
16、 程使用不同的政策 一一 特殊类S厂( S p e c i a l C l a s s F a c t o r i e s ) , 提供一个 特殊类工厂, 把对 象映射到现有的数据库表或不同服务器间 相同的类型的分区 对象上 框架类的其它部分 1.口翻.Ji.,.月 基础层面包括一系 列基本服务。 比如 名称服务, 对象 事务服务( 针 对存留状态( p e r s i s t e n c e ) ), 对象移动管理 ( 分 区)和锁定服务,再加 上 模型类。实际 功能在 核心完成,而公共服务 在基础对象模型类。这 种分类 保留了 基础( F o u n d a t i o n ) 的灵活性, 在不打扰依赖于 特定完 成程 序的客 户类的情况下就能 进行升级和改善。一 种重要的基础对象模型 类叫做E n t i t y , E n t i t y 封装了一些核心服务程序. 包括存留,锁定和安 全 。 比 如, 这种基础层运行于J a v a 远程方法界面 ( R M I