主要内容也是来自《SteveY对Amazon和Google平台的长篇大论》
1. 通过服务接口提供全部数据和操作
我们理解的SOA必然是通过接口的方式将数据与功能开放出来的,但要想要往平台方向发展,必须保证用且仅用服务接口的形式提供数据和服务:
团队间的程序模块的信息通信,都要通过这些接口;
除此之外没有其它的通信方式。其他形式一概不允许:不能直接读取其他团队的数据库、不能使用共享内存模式、不能使用别人模块的后门;
所有的程序都必须从骨子里到表面都要设计成能对外界开放的。也就是说,团队必须做好规划与设计,以便把接口开放给全世界的程序员,没有例外。
2. 容错与服务保护
作为SOA服务中的开发者,既不能相信为自己提供服务的应用(Server),也不能相信访问服务的应用(Client)。
基本算老调重弹,因为没有无故障的软件,也没有无故障的硬件,再加上千奇百怪的网络条件和完全料想不到的客户,所以要处理异常(容错)才是正常逻辑;而每一个和你相关的团队突然间都可能成为一个潜在性的DOS攻击者。必须要为每一个Service设置配额(quota)与节流阀(throttling)的保护机制。
3. 监控与QA
仅有一个确定主进程不死的响应不是监控。如果测试覆盖到能验证所有业务逻辑的程度,当然是最好的。但我迄今为止,没见过太多的团队(仅有一个团队)完成了如此缜密细致的测试用例。
我觉得比较理想的监控系统要让业务人员“看到”业务在系统中的流转。实现这样的监控系统需要从以下几方面着手:
1. 梳理核心业务过程
把一个服务拆解成1~3个关键的业务流程,每个流程有2~4个重要环节。
然后描画出业务的时序图,在图上标出业务数据采样点。
2. 匹配监控函数
由两种匹配模式,最佳模式是寻找一个流程从上游到下游的数据关联性,打个比方来说,一个订购流程,在一段时间内用户发起的订购请求是x,下游订购成功的梳理是y,在一定范围的业务周期内,应该能观察得出y=F(x)的关系函数;
另外一种模式是无法获得可以直接关联的x和y。这种情况下只能通过对比环比数据来判断是否异常了,对于依赖用户行为的业务,准确性较低。
3. 过程要点
可以看出来,这个监控系统也是个分布式的。SOA服务要拆解自己的业务,寻找采样点,按照统一业务日志格式进行记录;
监控程序要能把数据进行汇总,按照预置匹配函数进行判断,对超出阈值的情况进行告警。
分享到:
相关推荐
在IT行业中,系统设计是软件开发过程中的关键环节,它涉及到架构设计、概要设计、详细设计和数据库设计等多个步骤。这些步骤都是确保项目成功、高效且可维护的关键。以下是对这些知识点的详细阐述: 1. **架构设计*...
在设计SOA架构的过程中,需要关注的关键点包括业务分析、服务模型设计、企业架构、软件架构、服务组件设计、资源组合以及集成开发等。 在IBM的SOA开发方法论中,设计SOA架构被视为第二步,而第一步通常是业务分析,...
此规范适用于企业应用软件概要设计阶段,旨在提供一个结构化、灵活且高效的软件设计框架,以支持企业的业务战略发展,确保软件架构与企业整体信息化战略相协调。通过严格遵循这些规范,可以提高软件开发的效率,降低...
总结,这个项目的目标是通过采用SOA架构,实现企业应用的集成,提升信息管理和流转效率,优化业务流程,并强化权限和值班管理。通过细致的需求分析,确保了系统设计能够满足实际业务需求,为企业的信息化建设提供了...
通过WebServices技术,企业可以轻松地将现有的应用程序转化为SOA架构下的服务组件,实现更加灵活、可扩展和易于维护的IT环境。 综上所述,SOA作为一种先进的软件架构设计理念,通过其松散耦合、服务复用等特点,为...
系统概要设计是软件开发过程中的关键阶段,它在需求分析之后,详细设计之前,对整个系统的架构进行规划和设计。这一阶段的目标是为软件项目提供一个清晰、完整且可扩展的设计蓝图,确保系统能够满足功能性和非功能性...
**SOA实施方法论概述** ...通过理解并遵循这些方法论和流程,企业可以成功地构建和维护一个高效、可扩展的SOA架构,从而提高业务灵活性和响应速度。在整个过程中,沟通、协调和规范的制定是确保项目成功的关键因素。
ESB平台服务管理系统概要设计的文档范围包括系统概述、业务监控分析、系统技术结构、面向层次的技术架构构成、设计约束、开发过程、运行环境配置、设计策略和方法等方面。 3. 参考资料 ESB平台服务管理系统概要...
5. 设计文档:负责概要、详细和数据设计,编写工程文档。 6. 问题解决:快速定位和解决产品或系统的问题,分析原因,总结经验。 任职要求: 1. 计算机相关专业背景,有软件开发和架构设计经验。 2. 熟悉常用数据...
#### 面向服务架构(SOA)技术概要 **SOA的概念** SOA(Service-Oriented Architecture,面向服务的体系结构)是一种软件设计方法论,旨在通过分离应用程序功能并将其封装为独立的服务,以提高软件的灵活性、可...
- 设计层次是指软件设计的不同阶段,从概要设计到详细设计。 - 这本书可能会介绍软件设计原则,如单一职责原则、开闭原则、依赖倒置原则等。 - 讨论如何通过设计模式(如工厂模式、观察者模式、装饰器模式)来...
架构概要设计 - **架构原则**:制定ESB架构设计的基本原则,确保设计的合理性和前瞻性。 - **组件模型设计**:基于SOA的设计原则,划分ESB的核心组件和模块。 ##### 3. 产品与技术选型 - **ESB产品选择**:根据...
不同的系统类型其概要设计的内容也不相同,通过概要设计准则我们可以根据实际情况确定概要设计的具体内容,但是一般来说,概要设计的内容可以包含系统构架、模块划分、系统接口、数据设计4个主要方面的内容。...
概要设计,又称总体设计或高层设计,主要关注软件系统的整体架构和主要模块的划分,目的是将需求转化为可实施的设计方案。在这个阶段,设计人员需要确定软件的主要功能模块,以及它们之间的关系和交互方式,同时考虑...
【概要设计】是软件开发过程中的关键环节,它的主要任务是将系统分析阶段得出的需求转化为具体的技术实施方案。设计的基本任务包括但不限于体系结构设计、详细设计、用户界面设计和数据库设计,目的是研究软件在实际...
2. 架构概要:包括IDC/IT硬件基础设施、操作系统、存储系统、安全架构、分布式计算框架等,其中涉及云数据库、分布式数据库、缓存、流式计算平台、Hadoop计算平台等关键技术,确保数据的高效处理和存储。 五、实施...
网上商城项目概要设计说明文书.doc 一、概要设计说明书 网上商城项目概要设计说明文书是BS网上商城电子商务系统案例研究工程软件产品的总体设计和实现说明,记录了系统整体实现上技术层面上的考虑,并且以需求说明...