写点什么

Slingshot 开源加速离线 / 在线混合应用

  • 2007-07-17
  • 本文字数:1514 字

    阅读完需:约 5 分钟

13 日, Joyent 宣布基于 GPL v2 将 Slingshot Connector 开源。Joyent Slingshot 允许开发者将 Rails 应用程序部署为与桌面应用行为一致,可以在线或者离线(保持同步),可以拖拽,与所有其它桌面应用程序交互等。另外,Joyent 还提供了 Connector 产品和一组可以与 Joyent Slingshot 协同工作的第三方应用程序。

Slingshot 计划在今年 4 月份发布一个可以在 Windows 和 Mac OS X 上基本可以工作的版本(但是,似乎目前还没有发布)。Joyent 称 Slingshot 让游戏换一种玩法。

Slingshot 框架是轻量级且可自定义的,它让 Ruby on Rails 应用可以通过透明的数据同步离线运行。它不限制你如何运行应用程序及同步哪些数据,这些由开发者自己决定。这样,Slingshot 可以让 Rails 脱离浏览器。它可以打破 Web 应用和桌面应用的(通讯)壕沟,同时它没有失去 Web 应用在快速开发、部署和更新上的优势。最近 Google Gears 和 Dojo offline 也提供了这种能力,它们离线工作的方式虽然不同,但是希望给用户带来的体验是殊途同归的,这些技术希望用户能够将在线应用当作桌面应用来使用,让用户忘记“线”的存在。虽然 David Heinemeier Hanson 曾经开玩笑地认为离线只有在飞机上才有必要使用,但是从目前的技术走向上来看,这门技术无疑会被更多地开发和使用。Slingshot 以此作为一个出发点,希望进一步消除离线/在线应用的区别,所以它提供了协同工作的机制,希望帮助开发者更轻松地开发混合应用程序。近期在平台竞争上火爆的 Adobe 的 AIR、MS 的 Silverlight、Sun 的 JavaFX 无不希望提供这样的方案,这片市场被称为 RIA 市场,其竞争已经如火如荼,而传统的 HTML/CSS/Javascript 方式也依然保持强劲的发展势头,此时看到Slingshot 这样的产品开发人员应该更加感觉兴奋,因为RIA 的思路似乎依然在被不断扩展。

Slingshot 这个产品关注的是数据的交换和同步。这其实和 RIA 技术中的异步通讯一样扮演者传输的重任,因为目前的 RIA 应用大都是以数据为中心的,所以在消除离线/在线应用时首先需要解决数据同步问题。Joyent 在其 Blog 上介绍了 Slingshot 提供的数据同步的使用方法

Joyent Slingshot 是一个简洁的同步在线和离线数据的轻量级方案。作为一个开发者你可以提供一个透明的 ActiveRecord 传输层,允许简单的定义你的应用程序中哪些数据什么时候需要用什么方式进行同步。仅需要增加三十行左右的代码,你的 Rails 应用程序就可以从客户端向服务器同步数据。加上另外三十行代码你就可以使用基于文件的数据同步了。 框架提供了可以扩展的拖拽抽象层。可以挂入到应用程序已有的导入/导出机制中,而不需要修改任何应用程序的代码。

最后,它允许开发者方便的部署更新和迁移(migrations),无论用户离线了多久。

Slingshot 让开发者可以开发一种异步的 CS 应用程序,通过拖拽的方式同步数据,也可以通过文件的方式同步。并且从工作环境上 Slingshot 也提供了比较宽松的平台,Joyent 在他的 Blog 中这样描述它的运行方式

Slingshot 如何工作呢?我们已经从 Slingshot 中移除了对操作系统二进制文件的依赖和冲突。进一步说,Slingshot 允许开发者自己定义运行环境,安装 gems、plugins、二进制库或者其它,我们都可以处理。Slingshot 就像一个让 Rails 应用程序运行的虚拟机。

总而言之,使用 Joyent Slingshot 你可以:

  • 创建混合的 Web/ 桌面应用程序
  • 同步在线和离线数据
  • 在线和离线应用程序中使用相同的代码
  • 轻松的部署和更新你的应用程序
  • 在应用程序中拖拽导入/导出

Rubyinside 在报道 Slingshot 开源的时候,将其比喻为 37signals 将 BaseCamp 产品开源,可见其重要程度。Slingshot 的创新性在未来肯定会激发一些混合 RIA 应用的产生,让我们一起关注这个未来的技术吧。

2007-07-17 02:101224

评论

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

大湾区|Serverless 线下活动两连发

阿里巴巴云原生

阿里云 Serverless 云原生 线下活动 大湾区

【Flutter 专题】01 图解 Windows 环境下安装配置环境

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 12月日更

模块5-课后作业

21°Char

2021年马上要结束了,这5款Java框架你都了解吗

@零度

Java spring

面试官:Java 线程如何启动的?

华为云开发者联盟

Java 线程 JVM 时序图 Java 线程

一文带你读懂数字管家

HarmonyOS开发者

HarmonyOS OpenHarmony

大数据开发开源平台之Spark SQL的基础

@零度

大数据 spark SQL

老铁久等了,尚硅谷Vue大型电商项目:尚品汇教程发布!

编程江湖

Vue 大前端

使用 HTML、CSS、JavaScript 创建一个简单的井字游戏

海拥(haiyong.site)

大前端 js 28天写作 签约计划第二季 12月日更

react源码解析7.Fiber架构

buchila11

React React Hooks React Diff

使用nodejs和Java访问远程服务器的服务

汪子熙

Java nodejs 28天写作 abap 11月日更

AI 收藏夹 Vol.003:AI 能听懂阴阳怪气吗?

Zilliz

神经网络 AI 计算机视觉

【Pandas学习笔记02】-数据处理高阶用法

恒生LIGHT云社区

Python 数据分析 pandas 数据可视化

Java难吗?Java基础知识最强总结(2021版)

XiaoLin_Java

Java

如何在 Vue 中使用 防抖 和 节流

编程江湖

华为云企业级Redis评测第一期:稳定性与扩容表现

华为云开发者联盟

redis 测评 GaussDB(for Redis) NoSQL数据库 企业级Redis

Groovy热更新Java实践

FunTester

Java 测试开发 热更新 Groovy FunTester

大厂算法面试之leetcode精讲13.单调栈

全栈潇晨

LeetCode 算法面试

大厂算法面试之leetcode精讲14.排序算法

全栈潇晨

LeetCode 算法面试

react源码解析8.render阶段

buchila11

React React Hooks

Git进阶(一):git 管理文件之后文件颜色的含义

No Silver Bullet

git 学习 git revert 12月日更

尚硅谷Vue大型电商项目:尚品汇教程发布!

@零度

Vue 大前端

你该不会拿 CSAPP 垫显示器吧

Zilliz

【LeetCode】 连续字符Java题解

Albert

算法 LeetCode 12月日更

使用HTML,CSS 和 JS 创建 Chrome 扩展程序

海拥(haiyong.site)

json chrome扩展 28天写作 签约计划第二季 12月日更

你知道什么时候用Vue计算属性吗?

华为云开发者联盟

Vue 字符串 逻辑 模板 计算属性

Rust 元宇宙 10 —— 接入和协议

Miracle

rust 元宇宙

业务请求量膨胀的扩容技术实践

博文视点Broadview

在 Flutter 中如何使用TabBar和TabBarView创建选项卡布局【Flutter 专题 13】

坚果

flutter 28天写作 签约计划第二季 12月日更

技术管理哲学随笔:面对大量事业部需求与产研团队资源之间的矛盾

dclar

团队管理 管理 CTO

Slingshot开源加速离线/在线混合应用_Ruby_田乐_InfoQ精选文章