`
jiasudu1649
  • 浏览: 724653 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

myoodb快速指南(翻译)

阅读更多
myoodb快速指南

myoodb是一个面向对象的数据库,他的许多功能是现有的数据库产品没有的。
myoosdk解决方案由两个部分组成的,myoodb是其中的一部分.
连同MyOOWEB,MyOOSDK能为开发快速,很小但又强大的App/Web应用程序提供一个平台。
是一个真正的面向对象设计应用到App/Web 的开发设计.
这是一个最快的可用的100%java数据库 , myoosdk还提供无缝Web集成.
myoosdk客户代码可以通过应用程序,或浏览器用TCP, TCPS, HTTP, or HTTPS这些协议执行。
MyOODB database technology provides better performance for known database features, as well as, providing features not yet seen.
像其他的数据库解决方案,开发人员myoodb对象数据库.
但是和现有解决方案不同的是,myoodb对象只存在于服务器上.
虽然客户端对象看起来和感觉到是一个对象,实际上还是一个简单的分布式实现.

而MyOODB 提供了一些特点,是其他解决方案没有,其中较引人瞩目的是它的自修复与隔离损坏.
Myoodb数据库技术考虑到一个坏文件系统块或块,以不损坏整个数据库.
每个对象是独立的,所以如果一个对象损坏了, myoodb会尝试重写对象从内存到磁盘.
如果MyOODB 数据库服务器不运行恢复状态,当对象编码使用自恢复设施坏对象参照好对象就可以搞掂(这是一个很好的卖点,对您的经理) .

通过源代码的一个例子,看看如何界定数据库对象:
java 代码
 
  1. //  
  2. // MyOODB Object Interface;  
  3. //  
  4. public interface Person extends org.myoodb.collectable.Collectable  
  5. {  
  6.     @org.myoodb.MyOodbAccess(value="Write")  
  7.     public void setName(String name);  
  8.   
  9.     public String getName();  
  10. }  
  11.   
  12. //  
  13. // MyOODB Object Implementation  
  14. //  
  15. public class PersonDbImpl extends org.myoodb.collectable.CollectableDbImpl implements Person  
  16. {  
  17.     private String m_name;  
  18.   
  19.     public PersonDbImpl()  
  20.     {  
  21.         m_name = null;  
  22.     }  
  23.   
  24.     public void setName(String name)  
  25.     {  
  26.         m_name = name;  
  27.     }  
  28.   
  29.     public String getName()  
  30.     {  
  31.         return m_name;  
  32.     }  
  33. }  
  34.   
  35. 注意这是 @org.myoodb.myoodbacces 的注解.   
  36. 这个宏指令通知MyOODB 修造过程, setName 方法的请求将导致人实例被保存到硬盘。  
  37. 不指明宏指令的话,将把变化存放在内存上。   

存储对象有几种行为。象早先陈述, 客户端对象是真正地分布式的实现(即代理) 。如果你请求一个Write方法没有上下文, 对象状态立刻被存储在内存和硬盘。这称一种隐式事务。


另一类型实现是一种显式事务。
这是一些myoodb的好处开始显现出来.
myoodb真正的分布式对象, 支持多个并发嵌套事务。
一个对象的改变不会引起另一个对象改变,除非明确的事务正在修改一组物体,又显式或隐式的事务要工作.
下列事务的例子是取自源代码:



MyOODB是一个面向对象数据库,真正快速的分布式数据库,支持真正的分布式对象,支持真正的分布式事务,支持隐式/显式事务, 支持无缝高速Web服务访问,支持数据库自我恢复,支持多个并发嵌套事务并且数据库大小只占磁盘很小的空间。

java 代码
 
  1. {  
  2.     MyOodbDatabase db = MyOodbDatabase.open("myoodb://localhost:54321, admin, admin"); 
  3.     MyOodbTransaction tx = db.createTransaction(); 
  4.  
  5.     tx.begin(); // put create in the context of a explicit transaction 
  6.     Person person = db.createObject(PersonDbImpl.class); 
  7.  
  8.     tx.begin(); // put the setName call in a nested explicit transaction 
  9.     person.setName(John Smith); 
  10.  
  11.     tx.rollback(); // undo the setName 
  12.     person.setName(Mary Smith); // put this setName in the context of the first transaction 
  13.  
  14.     tx.commit(); // commit all changes 
  15. } 
  16. 现在重申,所有上述对象都能调用在一个显式事务的上下文之外.  
  17.  
  18.  
  19. MyOOSDK 另外一个强大的特点是能无缝执行客户端代码在HTTP 或HTTPS 连接。使用Java  Applets 或Webstart 技术, 你可以修改上述例子和在网络上修改所有对象。以下例子显示四个方式连接到MyOODB 数据库服务器:  
  20.  
  21. { 
  22.     // app 
  23.     String url = "tcp://localhost:54321";  
  24.     String url = "tcps://localhost:54322"; 
  25.  
  26.     // web 
  27.     String url = "http://localhost:80";  
  28.     String url = "https://localhost:443";  
  29.   
  30.     MyOodbDatabase db = MyOodbDatabase.open(url, admin, admin);  
  31. }  

不要难过,如果您从未设定过web服务器或写过任何web应用。源码可以展示关于怎样设置一台web服务器的例子。试验这个例子,将花费你5分钟。

一旦你下载了源代码, 请看一看在以下部分以便您能立刻运行程序。发行被划分成三个部分:
1) source
源文件
2) extensions
扩展
3) examples
示例

请首先看例子, 但不要忘记在MyOODB 根目录build 。唯一需要你做的事是设置Java binary 在 your PATH和JAVA_HOME 环境变量指向您的Java 库。下列是有用的例子帮助您的工作:
1) simple
2) simpleSsl
3) simpleWeb
4) simpleSslWeb
5) ajaxWeb
6) admin ( Shows how to remotely create/delete/change users )
7) transactions
8) jython ( Dont forget play with runJython script. A command line interface )
9) jythonWeb
10) events
11) xml ( See how you can also have XML as the database backing store )
12) bean
13) callbacks
14) mi ( Multi-Inheritance through object delegation. See the README file )
16) performance
16) deactivation
17) selfHealing
17) verifyDatabase
18) defragDatabase
19) evolveDatabase ( i.e. Schema Migration )
20) backup/Restore
21) gaming
my







Quick Tutorial

MyOODB is an Object-Oriented Database with many features not available in existing database products. MyOODB is one part of a two part SDK solution. Together with MyOOWEB, MyOOSDK provides a development environment for software hackers who desire small fast but powerful applications. It is the foundation that puts the power of true Object-Oriented Design back into App/Web development.


The fastest 100% Java OODB available (IMHO), MyOOSDK also provides seamless web integration. MyOOSDK client code can run as an application or in a web browser over the following protocols: TCP, TCPS, HTTP, or HTTPS. MyOODB database technology provides better performance for known database features, as well as, providing features not yet seen.




Like other OODB solutions, MyOODB developer objects are the database. But unlike existing solutions, MyOODB objects only exist on the server. Though client objects look and feel like the actually object, in actuality its a simple distributed reference.


While MyOODB provides some features other solutions do not have, one of the more notable ones is its self-healing and corruption-isolation properties. MyOODB database technology allows for a bad file system block or blocks to not corrupt the entire database. Each object is self contained, so if an object on a block goes bad, MyOODB will try to rewrite the object in memory back to disk. And if the MyOODB Database Server is not running to restore state, when objects are coded to use the self-healing facilities, bad object references in good objects can be fixed up (A good selling point for your manager).

 


Taking an example from the source distribution, the following code is how one defines a database object:


Notice the @org.myoodb.MyOodbAcces annotation. This macro informs the MyOODB build process that the invocation of the setName method will cause the instance of Person to be saved to disk. Not specifying the macro simply will store the change in memory.




The storing of objects has a few behaviors. Like previously stated, client objects are really just distributed references (i.e. proxies). If one invokes a Write method without the context of a transactions, the object state is immediately stored in memory and on disk. This is called an implicit transaction.

The other type of transaction is an explicit transaction. Here is where some of MyOODB power starts to show. A result of MyOODB object clustering technology, MyOODB supports multi-concurrent nested transactions with rollback. No one object change will block another object change unless an explicit transaction is modifying a group of objects that yet another implicit or explicit transaction wants to work on. The following transaction example is taken from the source distribution:



To reiterate, all the above object calls can be performed outside the context of an explicit transaction.


Yet another powerful feature of MyOOSDK is the ability to seamlessly run client code over HTTP or HTTPS connections. Using Java Applets or Webstart technology, one can change the above example and tunnel all object modifications over the web. The following example shows the four ways to connect to the MyOODB Database Server:



Do not fret if you have never set up a web server or written any web applications. The source distribution comes with a web server and examples on how to set it up. Itll take 5 minutes, really it will.

Once you pull down the source distributed, please take a look at the following areas so that you can get up and running in no time. The distribution is divided into three sections:

Please first take a look in examples, but do not forget to build MyOODB from the root directory. The only thing you will need is the java binary in your PATH and the JAVA_HOME environment variable pointing to your java distribution. The following are useful examples to model your work around:

Thats it. Start showing off your new found productivity ;-)

MyOoSDK ( MyOoDB / MyOoXML / MyOoWEB ) ? 20
分享到:
评论

相关推荐

    MyOODB Object-Oriented Database-开源

    这意味着它可以帮助开发者快速构建基于Web的应用,提供了一整套工具和库来简化Web开发。例如: 1. **模板引擎**:MyOODB 可能包含内置的模板引擎,用于生成动态HTML,使开发者可以专注于内容和逻辑,而不是HTML布局...

    Oracle面向对象编程的探索

    为了把开发者从中解脱出来,诞生了很多技术,O/RMapping 的有 Hibernate,一些 JDO 产品,EJB CMP 等,对象数据库的有 DB4O、MyOODB 等。 二、 Oracle 面向对象编程的基础 Oracle 面向对象编程的基础是它的对象...

    交互修改.rp

    交互修改

    14230-2.pdf

    ISO14230-2标准文档,定义了K线通讯方式和数据格式,对于汽车诊断非常有用

    基于python的求职招聘网站 python+django+vue搭建的求职招聘管理系统 - 毕业设计 - 课程设计.zip

    学习作者过程中,遇到问题可以咨询解决方案前台地址http://job.gitapp.cn后台地址http://job.gitapp.cn/admin后台管理帐号用户名admin123 密码admin123功能介绍平台采用B/S结构,前端采用主流的Python语言进行开发,前端采用主流的V​​ue.js进行开发。整个平台包括前台和后台两个部分。前台功能包括首页、岗位详情页、简历中心、用户设置模块。后台功能包括总览、岗位管理、公司管理、分类管理、标签管理、评论管理、用户管理、运营管理、日志管理、系统信息模块。代码结构服务器目录编号web目录是前端代码部署运行执行步骤(1)安装python 3.8(2) 安装依赖。进入server目录下,执行 pip install -r requests.txt(3)安装mysql 5.7数据库,并创建数据库,创建SQL如下CREATE DATABASE IF NOT EXISTS xxx DEFAULT CHARSET utf8 COLLATE utf8_general_ci(4)恢复

    4602-职业规划设计书PPT护理.pptx

    4602-职业规划设计书PPT护理

    非常好的SqlServer查询性能优化教程资料100%好用.zip

    非常好的SqlServer查询性能优化教程资料100%好用.zip

    基于Springboot+Vue+Python深度神经网络学习算法水质管理预测系统设计毕业源码案例设计.zip

    基于Springboot+Vue+Python深度神经网络学习算法水质管理预测系统设计毕业源码案例设计Springboot_Vue_Python_水质管理_预测基于Springboot+Vue+Python深度神经网络学习算法水质管理预测系统设计毕业源码案例设计程序开发软件Eclipse/Idea + WebStorm/VsCode + Pycharm 数据库mysql 开发技术Springboot + Vue + Python 这个是一个水质管理和预报系统,它是一个全栈Web应用程序,使用机器学习和深度神经网络算法来预测未来的水质。系统一共有2个身份包括管理员和用户。管理员登录后可以查询最新水质检测数据,也可以上报新的水质数据,可以查询管理历史水质数据,查询历史水质趋势图,训练自己的模型参数,选择一个算法模型结果预测下个月的水质信息,管理所有的用户信息用户登录后比管理员就少了个用户管理功能。管理员账号密码 admin/123 用户账号密码user1/123

    微信小程序云开发毕业设计「单词天天斗」,好友,匹配,人机对战,单词本科毕设打字稿原创微信小程序.zip

    单词天天斗 (毕业设计/实战小程序/微信小程序完整项目)介绍该项目基于「微信小程序」原生框架和「微信小程序云开发」实现单词对战类小程序,支持好友对战、随机匹配、人机对战透明不同模式的「对战模式」另外提供「每日对战」词汇」、「生词本」、「排行榜」、「设置」等功能,实现完整的业务闭环。单词库包含从小学、初中、高中、四六级、考研、雅思等常需掌握的词汇,支持自定义词库,支持自定义拓展无限本单词书。技术栈主要为微信小程序、云开发、TypeScript等,从头搭建项目,基于git管理代码版本,使用eslint作为代码格式校验,并对页面进行组件化拆分,前端和云函数均采用TypeScript。实践小程序能力,如用户信息获取、用户登录、全局状态管理、路由、wxs、npm包、播放音频、回复、转发分享、动画、云数据库等。项目提供完整设计稿,项目演示可查看微信小程序「单词天天斗」,扫码体验 ↓这些人毕设参考项目文档齐全、题目合适、技术广度大、业务闭环,包含项目解析文档和教程,这是一个非常适合作为毕设学习的小程序项目。无化部署运营无论你是想通过小程序现变,还是想给自己的「英语课程教材」

    利用ReST与ReAct自改进多步骤推理的大规模语言模型代理

    内容概要:本文提出了结合强化自我训练(ReST)和响应动作链路(ReAct)的方法来构建并改善大规模语言模型代理的性能,尤其是在需要多步骤推理以解决复杂自然语言查询的任务上。文中定义了一个能够在外部工具/ API /环境交互中表现出色的代理,并提出了一种通过迭代训练以前的轨迹来进行连续自我提升和精炼的技术路径。 适合人群:对大型语言模型研究及应用有兴趣的研究人员和工程师。 使用场景及目标:本方法主要适用于处理需要多个信息检索步骤才能完成的问题解决任务,如基于复杂开放性问答系统的发展。具体目标是在减少所需参数量的前提下提高此类系统的准确性、鲁棒性和效率。 其他说明:作者展示了仅经过两轮迭代优化,即可以从一个大的预训练模型蒸馏出性能相当但大小减少两个数量级的小型化模型。此外,在整个过程中没有使用人类标记的数据进行直接监督。

    毕业设计Android,一款水果健康百科app.zip

    毕业设计Android,一款水果健康百科app斯戈利毕业设计Android,一款水果健康百科app

    移动互联网发展和岗位分析.pptx

    移动互联网发展和岗位分析.pptx

    数控加工程序设计.pptx

    数控加工程序设计.pptx

    毕业设计基于STM32的智能停车场设计.zip

    毕业设计基于STM32的智能停车场设计基于STM32的智能停车场设计项目介绍该项目为毕业设计。基于STM32F1平台的智能停车场,板卡划分为主板、控制台指示板及场内红外检测板,支持短信定时报告停车场状态与远程控制、进出场自动电梯停车杆并播报欢迎消息、检测车位和环境温湿度并在屏幕实时显示状态。目前阶段正在进行电路验证设计与打样阶段。预计2月上旬至中旬完成电路设计并进入编码阶段。目前功能概述车辆进场与退场时,语音播报相应的欢迎语句并自动升起停车杆。待车辆完全驶入停车场后,自动降下停车杆。通过红外方式检测车位停车状态,并在门口控制台和相应车位显示停车状态。屏幕显示当前可用车票和当前温湿度每1小时通过短信报告目前停车场车位情况、1小时内车辆进出数量。短信下发控制指令。后续阶段功能车辆停车计费功能。冲卡检测并自动报警功能。加入实时时钟,通过短信安排时间。用户使用场景功能列表模块 功能 商品分类STM32F103VET6 微型系统板 毕业设计使用的开发板 单片机F103VESIM800L模块 支持GPRS短信收发的功能 12864液晶屏

    基于SpringBoot+Vue.js的轻小说在线阅读网站前后端分离全部资料+详细文档.zip

    【资源说明】 基于SpringBoot+Vue.js的轻小说在线阅读网站前后端分离全部资料+详细文档.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    “腾达”游戏分享网站的设计与实现_97c7a2s2.zip

    “腾达”游戏分享网站的设计与实现_97c7a2s2

    大数据与会计 (9).docx

    大数据与会计 (9)

    数学建模matlabppt课件市公开课一等奖百校联赛特等奖课件.pptx

    数学建模matlabppt课件市公开课一等奖百校联赛特等奖课件.pptx

    城市轨道交通通信信号技术_.docx

    城市轨道交通通信信号技术_

    【毕业设计+开题答辩】-基于JAVA_JSP电子书下载系统-【源代码+截图+数据库+论文+视频讲解】

    本文中的项目资源均整理自互联网,若侵犯了您的权益,请及时联系博主,博主会及时处理。 项目资源中使用的技术和系统用处不一定准确和全面,我只是大致的浏览了一下,具体使用技术建议参考代码和视频讲解。 资源中的各内容不一定每一个都非常的完美,可能会有少许错误,建议多看几个,选其中一个自己觉得不错的,用来做毕设或者开题等等。 资源中所列论文可以参考,但是不建议且强烈不建议直接照搬照抄,因为毕竟要查重,避免引起不必要的麻烦。

Global site tag (gtag.js) - Google Analytics