50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

Einstein:一门实验性的 SOA 第四代语言

  • 2008-06-29
  • 本文字数:1340 字

    阅读完需:约 4 分钟

实现SOA 一般需要使用多种技术来实现诸如分布式、并行处理、编配等需求。虽有多种工具来支持这些需求的实现,包括解决调用的 Web 服务框架,解决路由的企业服务总线(ESB),实现业务流程的编配引擎等,但是实现SOA 依旧是一项艰巨的任务,至少需要对这些完全不同的技术、它们的编程模型、它们的实现和部署方式等都有所了解。

一种解决这种复杂性的可能方案是“SOA 编程语言”——针对SOA 的领域特定语言,如 Wsper Einstein 。这些语言背后的动机是进一步提升抽象层次,使之更贴近实际的 SOA 开发问题。正如 Edsger Dijkstra 所说的:

任何一样工具最重要但也是最难以捉摸的地方,是对那些学习使用该工具的人们的习惯的影响。如果这里的工具是一门编程语言的话,那么该影响就是对我们思考习惯的影响(不论我们是否喜欢它)。

由于 Wsper 已经在 Jean-Jacque Dubray 的 InfoQ 迷你书《组合软件构造(Composite Software Construction)》中得到了很好的描述,所以本文接下来将主要讲述Einstein。

Einstein 是一门针对分布式 SOA 复杂环境而设计的语言,它建立在以下主要原则基础之上:

  • 分布式:Einstein 被设计成允许(潜在的)每条指令可以在彼此分离的机器上执行。接下来由用户决定代码中实际期望的分布式和并发性的程度。
  • 事件驱动:Einstein 是一门基于流程的编程语言,各条指令通过消息进行通信。
  • 并发性友好:在创建时,Einstein 就考虑支持并发性;它使用一组经过验证的避免共享状态的技术(消息传递、只读元组等),具备运行时感知的线程安全性。
  • 适当的复杂性:Einstein 采用了一些包括资源和模型在内的简单技术来减少实现分布式系统的复杂性。
  • 代替各种技术:Einstein 意在解决过去用来进行多系统集成的技术过多问题。目前,在构建一个资源交叉(cross-resource)系统时,我们常常依赖 ESB、网格技术、分布式状态系统、协调技术(如 BPEL)和工作流等技术。Einstein 被设计成一种代替所有这些技术的工具。

Einstein 的语言基于以下概念:

  • 资源,与变量极为相似,但是一般是粗粒度的。资源使用 URI 来访问。资源可被描述成不稳定(可安全用于多线程访问)、局部(不打算用于多节点访问或串行化)和幂等(接收一条消息多次的效果和只接受其一次的效果相同)。
  • 提供者,为任何资源接收、传送、执行、查询、路由或以某种方式处理消息提供了一致接口。一个提供者可被分成 3 个组件:ResourceProvider(扮演一个资源工厂),Resource(实现)和 Facades(一个资源为其所提供功能暴露的简单粗粒度接口视图)。提供者被自动加载进 Einstein 注册中心,中心包含了与所有可用资源和提供者相关的信息。
  • 消息是 Einstein 资源间交换数据的主要机制。一条消息的有效负荷包括一个数据对象而非一个语言对象,它允许多种数据格式(如 XML、对象图、CSV 文件等)与 Einstein 进行交互。
  • 执行组,包括流程执行组(顺序执行、类似编配语言中的 sequence)、元组执行组(并行执行,类似编配语言中的 fork/join)、组合执行组(与元组类似,但是至少有一个分支结束时即结束)和映射执行组(以上组的结合)。

超级实验性的 Einstein 0.1 版已经现在发布了。根据项目路线图所示,核心语言的预览要到7 月15 号才出来,接着到9 月1 号正式发布核心语言。

查看英文原文 Einstein: an Experimental 4GL for SOA

2008-06-29 23:531174
用户头像

发布了 255 篇内容, 共 67.3 次阅读, 收获喜欢 10 次。

关注

评论

发布
暂无评论
发现更多内容

小米AI眼镜暴露了雷军的“野心”

趣解商业

人工智能 小米 科技 AI眼镜

智慧联防系统(源码+文档+讲解+演示)

深圳亥时科技

数智焕新| AI+人才供应链:从"岗找人"到"智配人"的升维革命

用友BIP

AI 英语背单词 App的主要功能

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI技术应用

智慧物业综合管理解决方案

微擎应用市场

灵宝CASBOT完成近亿元天使+轮融资,技术务实加速商业化落地

极客天地

给Javaer看的大模型开发指南|得物技术

得物技术

大模型

The AI Moat Pyramid:构建不可复制的 AI 护城河

Baihai IDP

人工智能 AI LLM Baihai IDP

HarmonyOS NEXT仓颉开发语言实现画板案例

幽蓝计划

ISO 50015能源验证标准如何落地?MyEMS用开源技术给出答案

开源能源管理系统

开源 能源管理 开源能源管理系统 ISO 50015

SNMP协议在设备监控中的使用

京东科技开发者

三步根治前端缓存“顽疾”

京东科技开发者

Web3 项目的开发框架

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

什么是 QueryGPT?智能查询工具如何重塑信息检索的未来?

镜舟科技

数据分析 StarRocks 数据查询 QueryGPT 多模态交互

电商媒体必看:淘宝天猫商品详情接口指南

tbapi

淘宝商品详情接口 淘宝API 天猫商品详情接口 天猫API 电商社媒

Web3 项目开发的技术难点

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

Web3项目开发的安全性

北京木奇移动技术有限公司

区块链技术 软件外包公司 web3开发

英伟达认证,这款英特尔至强6成了DGX B300的理想主控CPU

科技热闻

AI经济(MachineFi)初探:AI代理之间如何支付?

PowerVerse

AI Agent 代理式AI

荔枝鲜行记:从枝头到餐桌,豪沃TS7冷藏车让鲜甜如约而至

科技热闻

数智焕新| AI+财务,开启企业财务效率革命与决策升级

用友BIP

巅峰对决 · 超三十万奖金等你挑战!第十届“信也科技杯”全球 AI 算法大赛火热开赛!

猫头虎

人工智能 算法

高德开放平台SDK鸿蒙版,助力千余家应用高效构建LBS服务

高德开放平台

鸿蒙 sdk 高德地图

闪迪创作者系列赋能插画师:从碎片化灵感到完整创作的自由之路

极客天地

MyEMS开源能源管理系统核心代码解读006

开源能源管理系统

开源 能源管理 代码解读

由 Mybatis 源码畅谈软件设计(八):从根上理解 Mybatis 二级缓存

京东科技开发者

HarmonyOS NEXT仓颉开发语言实战案例:简约音乐播放页

幽蓝计划

MyEMS开源能源管理系统核心代码解读005

开源能源管理系统

#开源#能源管理#代码解读

Syslog 日志分析与异常检测技巧

运维有小邓

日志管理软件 Syslog日志管理

智能体(AI Agent)开发实战之【LangChain】(四)结合大模型基于RAG实现本地知识库问答和纠错

我和AI的成长

AI 人工自能 langchain AI Agent AI 智能体

Apache Cloudberry 2.0 前瞻:功能与改进速览

酷克数据HashData

Einstein:一门实验性的SOA第四代语言_SOA_Boris Lublinsky_InfoQ精选文章