如何设计封闭的产品架构

来源:互联网 发布:淘宝怎么刷信誉 编辑:程序博客网 时间:2024/05/01 11:43

  技术是为业务服务的。产品架构师应该能够根据业务要求,设计满足市场需要的开放或者封闭架构的产品。在开放或者封闭架构中灵活使用各种技术,而不应拘泥于某些口号。

 封闭架构的意义

封闭架构的软件产品指不宣称符合公开标准和架构, 产品具有独特的功能, 操作界面, API和工具. 虽然软件业界的舆论主流是开放技术如Java, LINUX等等. 市场上很多商业成功的软件产品都是封闭的系统如: Windows, 苹果的操作系统, IBM主机系统的软件CICS,PS3/X360上的游戏等软件产品. 成功的封闭架构的软件产品也带动了相应硬件产品和系统的繁荣.

 

设计封闭架构的特点是完全从特定市场用户的需求和企业能力出发. 在确定需求后以最佳方式实现用户所需要的功能. 不特意使用开放标准和开源资源.封闭架构产品通常支持有限并且是特有的运行平台, 以减小测试和兼容性处理, 提高数据处理和开发效率, 减少相关产品变化的对软件产品的影响. 产品具有特别的界面风格, API, 工具.  如苹果系统选用的开发语言Object –C而不是标准C和C++语言.

 

采用封闭技术可以有更多的技术自主性和灵活性, 不受开放技术和标准在界面, 接口等方面的限制, 从而使产品更好地适应市场需求. 不公开接口可以比较方便地改变内部设计和实现机制. 独特的界面风格和接口可以更好地满足客户要求, 有效防止竞争产品进入市场, 保持市场和销售收入.

 

采用完全封闭的技术架构需要较高的设计和实现水平, 不能充分利用现成的开源资源.  其独特的界面功能和API如果不能被市场接受, 会使产品很快被市场抛弃. 因此需要慎重决定是否采用完全封闭架构进行产品开发.   

 

封闭架构的软件产品  

IBM主机操作系统及其应用软件历史悠久也是成功的封闭软件产品. 其操作系统界面, 操作命令, API接口和相关工具完全保持独特的风格. 为满足企业大规模应用的需求, 长期保持传统的3270字符界面和基本的存储管理模式, 编程接口. 其内部结构完全按用户数据处理需求发展, 不被各种技术潮流左右. 为了保持高处理能力, 其开发环境一直支持COBOL甚至汇编语言编程. 其独特的数据处理能力, 经过UNXI和PC时代后仍然保持强大的市场活力. 

 

AutoCAD软件产品注重用户绘图设计的需求, 设计并保持其独特的操作界面和DWG文件格式. 其开发工具保持采用特有LISP语言和开发环境. 通过注重改进用户使用功能和技术的独特性, 使其在设计软件市场一直保持重要地位, 并不断取得新的发展. 

 

封闭架构的设计

封闭架构的设计思想是完全从用户对软件产品的功能需求出发, 根据架构师的经验设计简洁实用的架构. 可以借鉴开发技术但需要去掉可能影响产品使用的功能接口和附属设计. 

 

封闭架构设计没有固定的模式.完全根据软件产品功能需求根据架构师的经验和开发团队能力设计. 在设计封闭架构时应该时刻考虑与需求的对应关系, 确保没有多余的设计元素而影响软件产品的操作功能和性能.   

 

防止被开放的设计

为了保证产品的市场, 有时不仅采用封闭的架构还需要防止被开放. 即防止其他企业和人员分析软件产品的文件格式, 传输协议, 公开并开发其他软件与其集成. 如有些企业分析网络游戏的接口,开发外挂.

 

为了防止被开放可以在产品架构中考虑各种措施达到防止接口被公开和使用. 如不采用标准传输协议(TCP/IP),在文件格式中加入验证代码等等.这些防开放措施需要避免影响软件产品的正常操作功能和性能. 也可以通过各种知识产权管理,防止其他用户模仿和使用同样的界面和技术.   

 

封闭设计中使用开放技术

由于封闭架构对技术要求高, 开发效率不高, 所以很多企业在设计封闭架构产品时, 部分使用开放技术. 这样在实现特色产品的功能和架构同时, 利用开放技术节省成本, 提高开发效率和质量, 实现更好的产品.  

 

采用封闭架构的产品有时可以开放一部分接口和数据格式, 吸引合作伙伴进行二次开发, 建立产品的生态环境. 这些开放的接口和数据格式需要保持开放架构的特征. 防止开放与封闭策略的不一致造成市场混乱和增加开发成本. 

 

平衡封闭与开放架构  

相开放架构, 封闭架构的产品会引起用户担心产品未来前途, 升级换代. 持续支持等问题的担心. 封闭技术的宣传可能给企业形象带来损害. 任何封闭架构的产品时刻要考虑是否开放其设计的某个部分, 或者在某个部分采用开放技术.  常用方法是开放部分API并提供工具使用户可以扩充产品功能. 随着产品的发展和市场占有率增加, 这些API有可能成为新的开放标准.   

 

在选择使用封闭和开放架构技术时, 需要掌握开放系统架构和封闭架构的设计方法. 根据产品和市场要求, 平衡使用. 既利用开放技术的成熟, 稳定, 公共开发社区的优势, 又要利用封闭架构运行效率高, 能够自己控制的优点. 

 

参考资料

 

  1. 虽然苹果电脑在各个方面强调其独特之处, 其操作系统核心使用开发技术BSD. 这样可以快速利用先进成果, 提高开发效率. 

http://support.apple.com/kb/TA25633?viewlocale=en_US

 

  1. IBM主机采用独特的操作系统zOS. 也支持开放的LINUX系统. 主要应用软件产品仍然采用封闭架构.   

原创粉丝点击