`
cenwenchu
  • 浏览: 165315 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

对让SOA落地SCA的一点理解

阅读更多
 
Author: 岑文初
    最近一直在考虑平台的总体结构以及服务框架的问题,粗粗的接触了OSGISCA等思想,有了一些思路,但是还不是很清晰。昨天很好的机会,和普元公司做了一次交流,看到了很炫的IDE功能,同时也看到了SCA思想真正运用到了实际平台中的效果,中间的工作流也给我留下了很深的印象。
    1.程序员就是技术工人,使用好的工具就是为了提高生产率。刚出学校大门,遇到了JAVA,真正的了解了面向对象编程,看到了面向对象带来的优势,封装让我们这些初出茅庐的小劳工知道了如何将做好的成果,下次再用,一次一次的重构,将小零件作的越来越顺眼,这个过程中,也让我们在重构中积累了经验,我想这也是每个程序员必经之路,有了这个阶段的积累,将来收益无穷。接着遇到了被大牛们说的神乎其神的J2EEEJB,这时候,从简单的类复用逐渐转变成为了组件复用,同时J2EE容器提供了功能强大的容器。在EJB的世界里,传说只需要关心业务逻辑,开发人员不必再为一些重复的细节和非业务的功能反复重构轮子,我们只需要根据客户的爱好,给车子上面点缀一些装饰即可。但是结果并非如传说这样,对于EJB的组件的误用造成了性能瓶颈,对于容器的过分依赖,以及发布部署的复杂,调试的繁琐,不仅让原来支持他的大牛对它丧失了信心,也让新人们敬而远之。此时,大家开始迷惑究竟怎样的模式才能够真正适合开发人员。这是,spring的出现,无疑给了每个人新的亮点,IOC的思想,回归POJO的原始,让大家知道了,原来简单才是我们需要的,就好比现在流行绿色健康生活,吃粗粮,回归简朴生活就是最好的。但各大厂商当然不能让这个状况永久的保持下去,后面有千千万万口要吃饭呢,这时候又掀起了SOA的狂潮,一种思想,一种理念又类似于当年的EJB开始蔓延,这次他所提倡的就是更高级别的复用,服务的复用,Internet提供了开放的环境,但是没有一种统一的服务访问模式,让各个企业之间成了信息内部丰富的孤岛,需要将这些孤岛串联起来,同时要最大限度的复用有限的资源,因此提出了面向业务的服务概念。但是很可惜,SOA喊了很多年,但都还是一个概念灌输阶段,一直都没有一个机构给出一个真正的实施标准,因此大家都采取的观望态度。服务的复用也就停留在了理论阶段。
     2.SCASDO的出现,给SOA来了点实际的。SCAService Component Architecture)其实就是将过去EJB的成果继续下去,基于Component的复用,同时吸收了IOC的思想,Component之间的组装是通过SCA框架来实现的,但是很重要的一点,他没有走EJB的老路,而是学习spring的轻量级框架,不再为开发者作的面面俱到,其实,特别对于中国的程序员来说,不需要太多的框架去限制他们,只需要给他们一个可以订制的灵活的框架即可,他们的手艺都不错,同时也可以在这个订制的阶段学到很多,这也是为什么开源项目吸引那么多高手的原因,因为参与和创造才能给程序员一种自我实现的快感。SCAComponentOSGIBundle一样其实是对Java封装的一种贯彻,它有需要Import的服务引用,需要Export的服务,很重要一点就是它对于Componentservice,reference的实现都没有作限制,这类对象只需要有个接口定义和实现描述即可,当前规范中支持的接口定义可以是java接口也可以是wsdl文件(最终也是转换成为java接口),实现的话那么更加广泛java,webservice,rmi,jms,脚本语言等等,同时提供了扩展接口,所以只要你想的到,就可以实现的了。然后多个Component组装成为一个Composite(对于业务开发来说,也就是一个业务的Model)。 
    3.一种约束。对于JAVA开发人员来说,看你是否有经验,其实看看你写的代码就能略知一二,能够抽象设计,能够针对面向接口考虑,那么这个开发者多多少少对于面向对象就有一些认识。在我们现在的业务开发者开发的系统来说,让人很头痛的一件事情就是,我们可以约束Java的规范性,但无法约束业务开发的规范性,好比客户模块一堆类,实现了一大堆功能,订单模块需要查询客户信息,这时候开发者不会去和开发客户模块的人员交流,自己开发了直接访问客户信息代码,结果就是,维护成本大,客户模块修改了,他不知道到底有多少模块需要去更新,反复的重写同样的逻辑,最要命的就是系统的耦合度增加,无法单独的将这些业务模块独立出来,系统没法根据业务模块来拆分。而如果基于更高级的组件复用和服务复用,那么模块间的信息交互不得不通过接口的方式来调用,这就提供了一种业务开发的约束。
    4.SCAOSGI的互补。记得在论坛上有人讨论过SCAOSGI的优劣,但其实作为这两个规范面向的解决问题都是不同的,SCASOA的一个实现,SOA是解决分布式服务的互通问题,而OSGI是针对单机服务的动态绑定义及组装,因此两者不存在着可比性,但是在我看来,两者却有着很好的互补性,在平台的现有情况下,用SCA来实现服务框架,同时通过OSGI来实现组件装配,这无疑是很好的一件事情,同样有个开源项目也正在做这件事。
    其实,任何技术开发人员都喜欢采用最新最流行的,但是作为架构师,却需要选择最合适的,因为我们是在为公司的盈利作出自己的贡献,而不是为实验室作出Fancy的效果,因此自己玩可以用最炫的最新的,而真正考虑做一个项目,开发一个框架,那么需要慎重的选择一种合适的技术规范,利用可以利用的资源,Solve Problem。后续将会把自己前段时间整理的SCA的实践整理一下,毕竟这个让SOA落地的东西到底是否能踏踏实实的干活,还是需要实践来检验的。
 
分享到:
评论

相关推荐

    SOA-SCA-Assemblymodel

    标题与描述均提到了"SOA-SCA-Assemblymodel",这指向了服务导向架构(Service-Oriented Architecture,SOA)中的一个关键组成部分——服务组件架构(Service Component Architecture,SCA)。SCA是一种规范,它定义...

    SOA编程模型_SCA_SDO

    ### SOA编程模型_SCA_SDO详解 #### 一、SOA编程模型概述 ##### 1.1 面向服务的架构(SOA) 面向服务的架构(Service Oriented Architecture,SOA)是一种软件设计模式,它强调的是通过定义一组粗粒度、松耦合的服务...

    soa sca服务构件架构spring构件实现方案

    ### SOA SCA服务构件架构Spring构件实现方案 #### 一、引言 随着企业级应用的日益复杂,传统...对于开发人员来说,深入理解SOA、SCA以及Spring框架的核心原理和技术细节,对于提高软件项目的质量和效率具有重要意义。

    SOA-SCA-EJB

    标题与描述均提到了"SOA", "SCA", 和 "EJB",这三大概念在现代IT架构中扮演着核心角色,特别是在企业级应用和服务导向架构(Service-Oriented Architecture,SOA)的设计与实现中。下面将对这三个概念进行深入解析。...

    SOA之SCA导航-Apache Tuscany篇

    这部分介绍构建计算器应用的基本概念和目的,帮助初学者理解SCA在实际应用中的工作方式。 1.2. 安装环境 首先,你需要设置好Java运行环境,并下载并安装Apache Tuscany的相关工具,包括SDK和命令行工具。 1.3. ...

    SOA标准--SCA架构

    **SOA标准与SCA架构详解** 服务导向架构(Service-Oriented Architecture,简称SOA)是一种设计和构建软件系统的方式,它强调将业务功能分解为独立的服务,这些服务可以通过网络进行交互,实现松耦合和重用。SOA...

    SOA SCA/SDO编程模型PPT

    **SOA(Service-Oriented Architecture)是一种架构模式,它提倡将业务...在实际项目中,SCA/SDO结合使用能够提供一种高效且灵活的SOA实现方式,帮助开发团队快速响应业务变化,构建出可扩展和可维护的企业级应用程序。

    SCA_Spring.rar_SCA_SOA_SOA JAVA _java soa

    综上所述,“SCA服务构件架构Spring构件实现规范.pdf”这份文档很可能会详细阐述如何利用Spring框架来实现SCA的各个组成部分,包括服务的定义、组合、生命周期管理以及与SOA的结合,为Java开发者提供了一条实现服务...

    SCA、SOA与OSGi概念浅析

    SCA的核心目标是让开发者能够专注于业务逻辑,而不是技术实现细节,通过服务组件的方式实现应用的解耦和模块化。它允许使用不同编程语言实现组件,并提供关键的基础设施支持,如安全性、事务处理和可靠的调用。 **...

    SOA-SCA规范中文版

    SCA规范中文版,包含Java-SDO-Spec-v2.1.0-FINAL.pdf,SCA_AssemblyModel_V100中文版.pdf,SCA_JavaAnnotationsAndAPIs中文版.pdfSCA_JavaComponentImplementation_V100中文版.pdf 4个文件

    SCA and the SOA Programming Model

    ### SCA与SOA编程模型:精简J2EE开发体验 #### SCA与SOA编程模型概述 在探讨SCA(Service Component Architecture)及其如何简化J2EE开发之前,我们首先来了解一下SOA(Service-Oriented Architecture)编程模型的...

    IBM SCA设计工具

    总之,IBM SCA设计工具是SOA开发中的强大助手,结合上述资源,开发者可以深入理解SCA的概念,掌握如何利用T4SCA进行组件化开发,从而构建更加灵活、可维护的企业级应用。通过阅读文档、安装工具并实践示例,开发者将...

    sca_SCA凸优化_凸优化SCA_SCA_凸优化_

    SCA(Sequential Convex ...通过深入理解和应用这些知识点,我们可以有效地使用SCA算法解决实际中的凸优化问题,并且根据`xiao_power_beizeng100.m`和`sca.m`的源代码,可以进一步了解和定制算法以适应特定场景的需求。

    面向服务的架构(SOA)从入门到实战(融合WebService、JAX-WS、SCA开发MIS项目)

    但国内很多软件公司对SOA的认知缺乏,很多程序员看到SOA就感觉束手无策。 本课程主要针对主流的SOA核心思想、融合WebService、JAX-WS、SCA、 Tuscany及开源产品技术CXF完成了从思想到技术,从技术到项目的课程体系...

    sca1.0规范(中文翻译版)

    **SOA与SCA概述** SOA(Service-Oriented Architecture,面向服务的架构)是一种设计和构建软件系统的...中文翻译版的出现,降低了学习门槛,让更多的开发者能够理解和利用这一规范,提升SOA项目的开发效率和质量。

    SCA_sca算法_SCA_sca程序代码_sca算法代码_

    同时,由于SCA攻击是针对硬件的,因此对硬件系统和微架构的理解也至关重要。此外,为了防止SCA攻击,开发者需要了解和应用抗侧信道攻击的策略,如随机化技术、噪声注入、硬件设计改进等。 总的来说,这个压缩包提供...

    IBM SCA培训资料

    IBM的SCA培训资料涵盖了这些关键概念,旨在帮助初学者理解SOA的基本原理,掌握SCA和SDO的使用方法,以及如何在实际项目中有效地实施SOA。通过学习这些材料,开发者和IT专业人员将能够更好地构建可扩展、灵活和易于...

Global site tag (gtag.js) - Google Analytics