Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Orion-Eclipse:体系概要 #6

Open
miclay opened this issue Nov 7, 2013 · 0 comments
Open

Orion-Eclipse:体系概要 #6

miclay opened this issue Nov 7, 2013 · 0 comments
Milestone

Comments

@miclay
Copy link
Owner

miclay commented Nov 7, 2013

http://wiki.eclipse.org/Orion/Documentation/Developer_Guide

总览

Orion由松耦合js组件和服务端HTTP APIs组成。这些组件和后端服务能够以各种各样的结合形式创建出多样化的应用程序。Orion的初衷是用js编写一个浏览器端工具,与云端的REST APIs进行数据交互。不过,部分Orion功能可以实现传统的C/S桌面应用。数据可以跑在远端服务器,也可以运行在本地机器上。基于Orion的应用体系经常受限于其他约束。当应用以本地数据方式运行时,性能会更好并且有助于离线开发,但却失去了服务端存储数据所具备的安全可靠备份机制。是跑在浏览器上还是运行在富客户端,取决于你用什么样的工具进行开发。

以下是Orion组件和服务进行不同体系配置的几种案例:

1、Browser client / remote data
2、Mixed client / local data
3、Rich client / remote data
4、Remote client / remote data

orion_architecture_1

REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。REST 指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是RESTful。
REST原则:
1、为所有“事物”定义ID
2、将所有事物链接在一起
3、使用标准方法
4、资源多重表述
5、无状态通信

客户端体系

组件
Orion旨在提供独立有用的web组件,尽量减小组件之间的耦合,这样的话,应用开发者就可以只把有用的子集部署到他们的应用程序。每一个组件都是由js代码库和直接相关的资源文件(如样式表、图片)实现的。
在Orion中,组件之间的依赖关系使用CommonJS AMD 模块形式来管理。但是web组件并不强制使用这种模式。为了使功能交互更加松耦合,Orion提供了一种服务注册方式,类似于OSGi服务模型,不过使用了Eclipse扩展的一些声明特性。

服务间的通信
在Orion中,所有服务通过注册形式调用,异步进行并返回一个对象。你不要认为服务function返回的时候就已经执行了,只有在then()方法里对其进行调用,它才会执行。

服务端体系

Orion定义了大量服务端API:Orion/Server API
Orion目前由java编写,采用Jetty 和 Equinox作为服务设施。目前还没有定义任何Java API来扩展服务行为。

org.eclipse.orion.server
Provides common provisional server API used by other parts of the server
org.eclipse.orion.server.servlets
Defines servlets for the core Orion services: file, workspace, preferences
org.eclipse.orion.server.search
Search servlet implementation using Apache Solr/Lucene
org.eclipse.orion.server.configurator
Defines an application, and configures the server (registers servlets and static content, specifies authentication and authorization settings)
org.eclipse.orion.server.authentication.*
Bundles providing various kinds of authentication support.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant