Docstoc

Versant

Document Sample
Versant Powered By Docstoc
					刘隆国(longguo_liu@versant.com.cn)
什么是对象数据库?

  数据库的发展历史
  什么是面向对象和面向对象数据库?
  面向对象数据库能够为复杂数据结构提供支持。




            0002
数据库发展简史

 模型         优点           缺点         数据

层次化,结构化     性能        灵活性, 对查询的支持   简单


  网络化       性能        灵活性, 对查询的支持   简单

 关系型      灵活性, 支持查询       性能        简单

 对象型       性能,灵活性        随机性较强,     复杂
                        支持既成的查询



            这两点是现有很多系统的核心问题所在
 对象数据库历史

 “面向对象数据库系统”这一术语第一次出现于1985年。著名的
研究项目包括 Encore-Ob/Server (布朗大学),
EXODUS(Wisconsin 大学), IRIS (惠普), ODE(Bell 实验
室), ORION (MCC), Vodak (GMD-IPSI), 和Zeitgeist (Texas
Instruments)。其中以 ORION 项目发表的论文数为最多。MCC 的
Won Kim 将这些论文中最有价值的一部分汇编成书并由 MIT 出版
社出版。
对象数据库概览

面向对象是一种认识方法学,也是一种新的程序设计方法学。
把面向对象的方法和数据库技术结合起来可以使数据库系统的分
析、设计最大程度地与人们对客观世界的认识相一致。
面向对象数据库系统是为了满足新的数据库应用需要而产生的新
一代数据库系统。
对象数据库是一种以对象形式表示信息的数据库。对象数据库的
数据库管理系统被称为 ODBMS 或 OODBMS
对象数据库管理系统为面向对象编程语言增加了持久的概念
面向对象的数据库

一个专门为对象服务的数据库
 设计目标是优化对象的存储与操作
 有能力管理任何类型的复杂模型
  简单类型: 整型, 字符串
  多值类型(Multi-valued): 动态类型数组
 有能力管理对象间的任何关系
 对象间引用 (链接)
  集合 (唯一性), 列表 (排序), 图 (关联性查找)
数据与程序语言的无缝集成
什么是复杂数据?

必须从应用角度来进行考虑
 面向图形
 基于导航的访问模式
受到面向对象模型的全面影响
 继承
 集合
 关联
无法简单的映射到关系模型
 大量的映射代码
 大量的联合(JOIN)操作
 性能不佳
使用复杂数据的行业有哪些?

电信
 尤其是当涉及到与网络密切相关的应用时
地理信息系统
 在应用中提供空间数据
需要大量历史数据支持的应用
 股票,专利监控等等
科学应用
 生物科学信息系统,医疗信息管理系统
国防与智能系统
 出于保密需要…
其它领域!
使用对象数据库有什么技术优势?

  对象数据库的基础架构
  对象数据库的技术优势




           0009
Versant 全球

Since 1986
是全球面向对象数据库
的市场领先者




             00010
Versant 全球


  1996年在纳斯达克上市
   (NASDAQ:VSNT)




             00011
Versant 全球
                                         Hamburg


  公司全球分布
   Redwood City, California
   Hamburg, Germany                               Shanghai
                                                    China
   Pune, India          Fremont, CA

   Shanghai,China                     Pune




                               00012
全球客户




       00013
Versant 产品与服务

Object Databases(面向对象数据库)
    Versant Object Database (VOD)
         Current Version 8.0.1.X
        最新版本:8.0.1.X
         Available for many platforms
        支持多操作系统平台:Windows,
        HP Unix, AIX, Redhat Linux...
         High availability options and tools
        高可用性解决方案以及多种工具




                                         00014
Versant 产品与服务

  Professional Services(专业服务)
       Consulting Services(专业咨询)
           Architecture Design & Review, Tuning,
           Integration, Installation, Database Administration,
           Mentoring, Pilot Projects
           系统构架设计、审阅、优化
           集成、安装、数据库管理
           指导,项目计划引导

       Support Services(支持服务)
           Standard
           标准支持服务
           24*7
           24*7支持服务
           Designated Support Engineer
           专用支持工程师服务

       Training Services(培训服务)
             VOD database Administration
             VOD数据库管理
             Architecting for Performance
             高性能系统构架




                                            00015
对象数据库系统架构

     Versant          Versant          Versant        Other
        C               C++              Java      Interfaces,
    Interface        Interface        Interfaces   Tools, etc.



                Versant Object Manager
                 Versant Network Layer


                 Versant Network Layer

                    Versant Server
                  Virtual System Layer


                  Raw Devices, File Systems,
                       RAID, SAN, NAS
双缓存架构

                                                                        Versant
                       User Interface
                      User Interface                     Object Cache    Client
                        Application
                         Application
                          Logic
                         Versant
                           Versant              FE
                      Object Manager
                       Object Manager         Profile




                                                        Page Cache      Versant
                Versant                                                 Server
            Storage Manager               BE
   Roll-                                Profile
 forward
   log
           Logical           Physical                    Database
           Log File          Log File                    Volume(s)
多线程架构

          Client Process                         Server Process
Client                            Server
Thread                            Thread
                                                 Page Cache
Client   Session Object /                      Lock
          Object Cache                         Table
Thread
                                  Server
                                  Thread
Client
Thread
         Session Object /
          Object Cache            Server
Client                            Thread
Thread

                                                   async I/O of
                                 Log Buffer        non-commit
               Client Process     Thread           buffer writes

Client
Thread
                                                    writes
         Session Object /       Background       modified pages
Client    Object Cache          Page Flusher        to disk
Thread
对象数据库适用于解决

Complex data
复杂数据
Complex data relationships
复杂数据的关系


                                Tools
                             Asynchronous
                              Replication

                Event                       Fault Tolerant
              Notification                     Server




                                ODBC
                                JDBC
面向关键业务的 C++ 及 Java应用

                       面向对象的程序模型与面向
                       对象的数据库的深度绑定将
                       在以下几个方面创造巨大的
                       价值:
                       开发时间缩短、应用执行效
                       率提高,易用性提高以及目
                       标产品投放市场的及时;

                       Versant提供的存储模型等
                       同于应用的内存模型,这使
                       得企业应用的数据库可以在
                       保持高健壮性的基础上同时
                       获得高效的执行效率。
使用关系型数据库
                                              In-Memory
           SELECT FROM table1 ...;
 RDBMS     SELECT FROM table2 ...;
           convert_tables_to_memory();


           Order order = new Order()
           for(i=0; i<100; i++) {
             OrderLine p = new OrderLine();
           …
             order.addLine(p)
           }


           convert_memory_to_tables();
 Tables    INSERT INTO table1 ...;
           UPDATE table2 ...;




 内存模型与存储模型不一致
 从存储模型映射成内存模型时有巨大的性能消耗
 更多的转换代码
 编程语言和数据操作语言不一致,存在“失配”问题
    对象数据库解决方案                                  VERSANT

                                   In-Memory


Order order = new Order()
for(i=0; i<100; i++) {
  OrderLine p = new OrderLine();
…
  order.addLine(p)
}




        内存模型与存储模型是一致的
        高性能的大数据量对象操作(排序等)
        没有额外的转换代码
        强化的程序生产力
        程序开发语言即DML与DDL
        举例: Mapping of Objects
      soc_no emp_name birth_date dept_name                                    Employee                   Company
                                                                           soc_no
     soc_no hour_rate over_rate max_over                                                               comp_name
                                                                           emp_name
                                                                                                       employees




                                                                                                $
                                                                           birth_date
    soc_no month_rate bonus_pct                                                                        departments
                                                                           dept_name


<?php
                                                                   HourlyEmp        SalariedEmp
$c = oci_connect('un', 'pw', '//localhost/XE');
$s = oci_parse($c, 'select * from employees');                    hour_rate         month_rate
oci_execute($s);                                                  over_rate         bonus_pct
while ($row = oci_fetch_array($s))                                max_over
foreach ($row as $item)
print $item;
?>

                                                                 Employee emp = new
                                                                            HourlyEmployee(“Meier”);




                                                                                               $ $
                                                                 transaction.commit().




                                                  Much coding and less performance
                                                      due to mapping to tables
       举例: Mapping of Objects
     soc_no emp_name birth_date dept_name                                   Employee                   Company
                                                                        soc_no
     soc_no hour_rate over_rate max_over                                                             comp_name
                                                                        emp_name
                                                                                                     employees




                                                                                              $
                                                                        birth_date
    soc_no month_rate bonus_pct                                                                      departments
                                                                        dept_name


EXEC SQL INSERT INTO Employee_Table
                                                                 HourlyEmp        SalariedEmp
   (soc_no, emp_name, birth_date, dept_name)
   VALUES                                                       hour_rate         month_rate
     (:emp->soc_no, :emp->name,                                 over_rate         bonus_pct
      :emp->birth_date, :emp->dept_name);                       max_over
if (emp->type == 1)
   EXEC SQL INSERT INTO Hourly_emp_Table
     (soc_no, hour_rate, over_rate, max_over)
   VALUE
     (:emp->soc_no, :emp->hour_rate,
                                                               Employee emp = new
      :emp->over_rate, :emp->max_over);
                                                                          HourlyEmployee(“Meier”);




                                                                                             $ $
else if (emp->type == 2)
   EXEC SQL INSERT INTO Salaried_emp_Table
                                                               transaction.commit().
     (soc_no, month_rate, bonus_pct)
   VALUES
     (:emp->soc_no,
      :emp->month_rate, :emp->bonus_pct)
EXEC SQL COMMIT WORK RELEASE;


                                                Much coding and less performance
                                                    due to mapping to tables
       举例:Object Persistence
                                       public class Employee {
                                         private String     _name;
                                         private int        _age;
                                         private Department _department;

                                           public Employee ( String name, int age ) {
Employee                    Employee         _name = name;
                javac
  .java                      .class          _age = age;
                                           }

                                           public void setDepartment ( Department d ) {
                             Config          _department = d;
Employee      Enhancer        File         }
 .class

                                           static public main ( String args ) {
                                             TransSession session =
                                                 new TransSession(args[0]);
                 java
            Employee mydb                      Department d = new Department(“Admin”);
                                               Employee   p = new Employee (“Joe”, “21”);

                                               p.setDepartment(d);
                                               session.makePersistent(p);

                                               session.commit();
                                           }
                                       }
降低开发成本 – 代码更少 – 构想更多 – 运行更快



            Java .NET C++   Database
               classes       Design




  Analyse                               Database
  Design                               mapping layer




            Application
               test         Database
                              test
源代码行数


        200




          0
               Create   Store   List   Query
Versant Java     0       32     15      28
JDBC            37      137     54      59
  对象数据库和关系型数据库的性能对比
                                         Ericsson                                                           Worldcom
                                         Network Management                                                 Fraud Management


              50x
                    British Airways                                                                ING Barings
                    Yield Management                                                               Risk Management
              30x

Performance
                                                                            CIBC Global Markets
Improvement   10x                                                           Front Office Trading
性能提高比例

               5x                           IBM Benchmark



               3x
                        Simple Queries                        Complex transactions
                        简单数据库查询请求                                  复杂数据库事务
                             Complexity level of Data Model for transactions
                                       数据库事务中使用的复杂数据模型
    对象数据库和关系型数据库的性能对比




      Versant数据库测试样例CPU占用率图                    同比关系数据库测试样例CPU占用率图

        测试内容                  数据库中没有工单                  数据库中有1000万条工单
                             (时间单位:毫秒)                   (时间单位:毫秒)
                          Versant     Oracle        Versant        Oracle
 单条提交,向工单表中插入10万条工单       25152       69749         26112          89383
每2000条工单提交一次,向工单表中插入       6248       12999          6226          18573
          10万条工单
每次select 1000条,单条修改状态,    40322       107939        46367          117654
       先改为1,然后改为3
每次select 1000条,每次提交1000    9079       31772         10467          32198
    条,先改为1,然后改为3
                              00029
快速创建新业务模型
最适合开发人员使用的数据库


 敏捷开发等快速开发方法正在日渐成为主流
  快速开发以及多次迭代正在成为必需
  所有内容都使用面向对象方法构建
 横向/纵向扩展
  应用必须适应虚拟化业务环境的要求
    规模扩大/规模缩小
 高效的生产环境
  用户能够接受的维护窗口正在日益缩小,24/7的生产系统运行方式正在成为
  主流
  用户希望最好维护成本可以降低到零


                00030
V/Management Center –全面监控与管理工具




             00031
    V/Compact– 在线数据重组

   磁盘释放与重用
      在运行中释放数据库中未使用的
       磁盘空间,增加可用磁盘空间以
       提高数据库效率
   尤其适用于经常删除大量数据对象的
    应用…




                  00032
V/HA Backup – 数据库热备

   支持在线全备份以及增量备份
      支持各种类型的磁带、磁盘以及远程设备
   连续在线备份
      使用磁盘“快照”实现快速备份
      可以在镜像的RAID 系统下使用
   支持与EMC的Timefinder软件集成
   热备 (滚动归档)
      在执行恢复操作时无需繁琐的更新归档文件
      数据生成后会被自动归档




                 00033
V/FTS – 容错服务器

 双节点同步复制                    Application
   支持两个不同架构的节点
 失效自动切换
 恢复后自动重新同步
 即使在失效时也决不会丢失一个事务
                        Versant       Versant
 对于应用而言完全透明            Server        Server
 适用条件
   热备支持
   零失效时间
   7x24运行              Primary       Secondary




                00034
V/Async Server – Versant异步复制

   多向点对点复制或者主从复制
   支持多种配置方案的柔性产品
      面向LAN 或者WAN的网络传输优化
       方案
      基于事件或者API方式
      复制所有或者某一数据子集
      可定制的消息、传送者、读者以及发
       布者
   适用条件
      尤其适用于地理上分散的分布式应用
      全球化应用系统的数据本地化(本地
       复制)
      离线批处理报告、数据挖掘与分析
                            Secondary
                              Primary




                   00035
V/SQL –Versant的SQL工具

V/SQL是为您提供使用结构化查询语言访问 Versant 对象数据库中数
据的工具。




                          Tables




               00036
对象数据库优势总结

更快的开发速度,直接使用程序开发语言实现,不需要
再编写繁琐的操作SQL的语句,大大节约了开发成本。
更快的运行速度,采用导航式的搜索模式,对数据的获
取可以更高效的获取。对象数据库保持着世界上最大的数
据库(超过1000Terabytes在斯坦福线性加速中心)和被
记录到的最高摄取率(一 Terabyte每小时)。
强大的数据管理支持能力,适用于复杂数据的管理。
支持分布式数据节点管理,适用于建立统一的大型数据
环境。

            00037
对象数据库技术现状总结

对象数据库经过多年发展,已经相当
成熟,并且已经拥有大量的成功案例
使用对象数据库可以帮助目标产品尽
快投放市场
  再也不需要繁复的对象-关系映射
使用对象数据库可以实现世界级处理
性能
  能够高效处理海量数据
  能够高效处理业务系统中所包含
  的复杂对象网络
使用对象数据库很容易实现分布式部
署
  容易实现的多数据库(数据库网
  络)
  对象可以很容易地在两个数据库
  之间进行移动/复制,同时保持完
  整的对象引用关系
             00038
使用对象数据库可以为我们带来什么好处?
  游戏业成功故事
  公共安全业成功故事
  电信业成功故事
  航空业成功故事
  制造业成功故事
  石油业成功故事
  …
  对象数据库在云计算中的运用




                  00039
游戏业成功故事——Gundam Online
启动时已经提供了1亿个游戏对象
虚拟游戏世界“真实”存在,游戏对象本地
缓存,巨量客户端对象的直接连接与数据访问
高性能案例:高速社交关系网查询,数百倍
的性能提升




             00040
公共安全成功故事——罪案主动跟踪系统

                  各种社会公共安全系统联合运行,
                  主动解决问题
                     18亿各种类型的事件并发进入数据
                      存储环境
                     1500万人口覆盖
                     500万现有案例
                  以时间,空间、
                  非结构体貌特征
                  和个人信息为主
                  要对象导航方式
                  覆盖结构化数据
                  和非结构化数据

          00041
电信业成功故事——统一运营支撑环境

                                                      Music Commercials
                                                          ring tone
                          Commercials                    Database 1
 User Generated          Content location
 Content location          Database 3
   Database n


                                                                                   Content

                                                                 IMS Core
                                                                   Layer

                        Application
                    Server&Client Layer


                                          TV/Movie Content location
                                                Database 1                  Billing & Accounting,
                                                                            License Management




                                  00042
电信业成功故事——统一的复杂业务运行网络




          00043
电信业成功故事——高性能ADSL认证查询
 大量的查询要求
  几十万级别的查询压力                        VNET
                                                                                                               RADIUS
                                                                                                               PROXY

  40万次/秒甚至更多                                               HT                          Pack
                                                                                           et
                                                                                               et




                                                                                                                                      RA
                                                             TP                    IUS
                                                                                RAD         ack




                                                                                                                        Packet
                                                                Re
                                                                                          SP




                                                                                                                                        DI
                                                                  qu




                                           H
                                                                                       DIU




                                            TT
                                                                    est




                                                                                                                                          US
                                                                                    RA                    et




                                              P
                                                                                                        ck




                                                                                                                                                Pa
 大型UNIX主机被几台低端PC




                                                 R
                                                                                                      Pa




                                                  eq




                                                                                                                                                  ck
                                                                                                 US




                                                    ue




                                                                                                                 RADIUS
                                                                                               DI




                                                                                                                                                    et
                                                      st
                                                                                             RA


 服务器所形成的分布式运算网
 络所替代                        Newly Added                       RADIUS           RADIUS                    RADIUS                                RADIUS
                            RADIUS Server
 用户定向信息推送、用户行为                 Cluster
                                                               Server           Server                    Server                                Server



 分析等功能
                                                                              Versant                           STANDBY
                                           er
                                             y                            Object Database                          DB
                                         Qu st                    On
                       Main IDC




                                                                                                                                    Sync ount
                                       e                            lin                       Use
                                     in que                                                      r Ac
                                    l
                                  On Re                            Re e Que                          c
                                                                                                  Syn ount
                                                                      que   r




                                                                                                                                      Acc
                                                                         st y                        c




                                                                                                                                 User
                       Online Analysis                         Information Auto
                                                                                                    Backup IDC
                                                                                                     Billing System
                           System                                Push System




               00044
    航空业成功故事——Sabre Inventory System

                                                                                                                   国际级航空订票处理系统
                                                                                                                    10k+有效航班信息(航段/航节支持)
  Travel Agency
    Terminals
                                                            Travel Agencies
                                                                                                                    10k+ Transaction/s 并发事务处理要
                                                                                                                    求
Flight Distribution
      Systems
                             Abacus                        Galieo                Sabre                Amadous       1亿客户/年的数据增量
                      Critical R&D
                         Flight                            ITAREQ                                   PAOREQ
                                                                                                                   在事务支持下的内存级数据库运行支
                                                                                                                   持
Inventory Databases                   UNISIS                         ITAREQ                SUN
                                                                                                         Versant
                                               BID-PRICE                  SSIM                   BID-PRICE
                            AULS               GRADIENT                           AULS           GRADIENT

 Yield Management              O&D Yield                       Flight Yield              Forecast
                      SUN


                                                                    Vol O&D



Air France Trading
                                                     Air France Trading Center
      Center




                                                                                            00045
制造业成功故事:Foxboro I/A Series Intelligent SCADA
   开放、先进而可靠的I/A Series自
   动化控制系统
   I/A Series,自1987年推出以来,已在
   国内的约1000套装置得到选用和成功投
   用,其中化工、石化与炼油行业超过300
   套。如在炼油行业,I/A Series系统就
   已在常减压、催化、加氢、延迟焦化、
   酮苯、糠醛、芳烃抽提、气体分馏、硫
   磺回收和临氢降凝等主要炼油装置得到
   成功应用。




                      00046
制造业成功故事:埃施朗全世界领先的控制网络
 埃施朗公司创建了LonWorks平台。
 这是一种强壮、灵活、可扩展的、
 基于标准的控制网络平台和生态系
 统。
 基于Versant之上的LNS是软件网络
 工具的平台,这些网络工具通过辅
 助网络设计、安装、配置、监测、
 控制、诊断和维护来增加价值。
 据埃施朗公司估计,使用Versant将
 上市的时间提前了六个月,这不仅
 节约了几个“开发人年”,同时使
 开发团队可以实现更强大的特性。




                 00047
石油业成功故事——埃克森EMPower资源评估系统

                   针对大多数复杂油气田环境的储量
                   以及生产能力预估
                   基于企业核心数据的汇集,影响企
                   业生产决策
                   基于大量极端复杂的数据模型




           00048
Versant资源

General Information(基本信息)
   www.versant.com
   www.versant-china.com

Developer Corner(开发者资源)
   www.versant.com/developer
   user group forum registration
    注册用户论坛
Consulting and Training(咨询和
培训)
   www.versant.com/services
Think Outside the Grid!




                   00053

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:12
posted:2/9/2012
language:
pages:50