在日常工作中,java架构师在设计系统的时候会画一张图,HP的服务器,思科的路由器,PaloAlto的防火墙,Tomcat的应用容器,mySQL的数据库等,把各种产品拼凑在一起叫架构设计。这是很棒的产品宣传。如果这是一部电影,可以售卖植入式广告。每个解决方案的供应商都肯定会对这个架构设计表示由衷的感激。对架构,最好的架构师从来不用供应商的名称来描述桁架、梁和支撑,而是用这些部件的大小、负载能力和组成等。这是因为架构师会基于价格、信誉和质量选择不同供应商的解决方案。架构师心里很清楚,用供应商的名字描述的是实施,而通过规范和要求来描述,这才是架构设计。
实施意味着您已经做出了选择性的决定。这些决定包括成本考虑,自建和外包,投资回报率,团队的技能等。使用C,Java或PHP作为编程语言并不代表您的体系结构;它只代表您的体系结构。相反,这些仅仅是为实现体系结构组件而选择的工具和材料。选择Microsoft数据库,或者Sybase,MySQL或Oracle数据库,这不是体系结构,而是实现体系结构中的数据库组件。选择使用开放源代码系统或供应商提供的解决方案是实现决策的另一个示例,该决策与使用Microsoft操作系统或特定版本的Linux相同。
假设某个业务需要一个解决方案,则Java架构师负责将业务解决方案转换为技术解决方案。如果列出所有产品,也许可以解决问题,但肯定没有创新的机会。相反,如果您从事物的起源或本质入手,那么通常就有机会创建新的工具或新方法。这是非技术设计的概念。例如,当我们想求解近实时的动态交易量统计数据时,我们可以使用传统的数据库进行累积。您还可以编写一套类似于Storm的工具,该工具可以轻松优雅地解决问题,但也可以带来创新。作为合格的Java架构师,您必须具有从问题源头独立思考问题,进行各种分析和设计并最终提出一个非常合适的解决方案的能力。
推荐阅读:java架构师指南之架构师的工作流程