1. 程式人生 > >中介軟體技術CORBA的應用,實現遠端呼叫資料庫。

中介軟體技術CORBA的應用,實現遠端呼叫資料庫。

CORBA簡介

CORBA(Common Object Request Broker Architecture,公共物件請求代理體系結構,通用物件請求代理體系結構)是由OMG組織制訂的一種標準的面向物件應用程式體系規範。或者說CORBA體系結構是物件管理組織(OMG)為解決分散式處理環境(DCE)中,硬體和軟體系統的互連而提出的一種解決方案。

CORBA使用一種介面定義語言用於刻畫物件將呈現出來的介面。CORBA又規定了從IDL到特定程式語言,如C++或Java,實現的對映。這個對映精確的描述了CORBA資料型別是如何被使用者端和伺服器端實現的。

在CORBA體系結構的中心部分是物件請求代理程式(Object Request Broker,ORB),它作為一個”軟體匯流排”來連線網路上的不同物件。在客戶端,ORB提供一個傳送操作呼叫的介面;而在伺服器端,ORB提供一個將操作呼叫傳輸到伺服器的API。ORB的任務是定位一個合適的伺服器,並且通過一個物件介面卡(Object Adapter,OA)將操作呼叫傳送給伺服器。OA的目的是:給框架傳送方法,呼叫並且支援伺服器物件的生命週期(例如,物件的建立和刪除)。

程式目的

  1. 基於CORBA技術開發一個考試成績查詢系統,主要包括:伺服器部分:實現查詢和錄入服務;客戶端部分包括錄入和查詢部分
  2. 服務端使用Java編寫,使用JDBC訪問資料庫;

區域性流程

  1. 服務介面定義,在新建目錄下,編寫DataService.idl,定義查詢與錄入函式
interface SysProp
{
    void CreateTable(in string table_name);
    void Insert(in string name,in long score);
    long GetScore(in string name);
};
  1. 用命令生成存根與框架 idlj -fall DataService.idl
  2. 編寫服務端服務實現,並寫main函式以啟動corba服務.

程式執行

先啟動伺服器
伺服器啟動
Client具體呼叫

            org.omg.CORBA.Object objRef;
            SysProp syspropRef;
            ORB orb = ORB.init(args, null);

            objRef = orb.resolve_initial_references("NameService");
            System.out.println(orb.object_to_string(objRef));
            NamingContext ncRef = NamingContextHelper.narrow(objRef);

            NameComponent nc =new
NameComponent("SysProp",""); NameComponent path[] = {nc}; syspropRef = SysPropHelper.narrow(ncRef.resolve(path)); System.out.println("Using"); syspropRef.CreateTable("stu"); syspropRef.Insert("rain",90); int score = syspropRef.GetScore("rain"); System.out.println(score);

建立一個名為stu的表,在表中插入一個元素element(name,socre),遠端掉用,給定姓名,查詢該元素的成績;
客戶端呼叫函式

相關程式碼

相關推薦

中介軟體技術CORBA應用實現遠端呼叫資料庫

CORBA簡介 CORBA(Common Object Request Broker Architecture,公共物件請求代理體系結構,通用物件請求代理體系結構)是由OMG組織制訂的一種標準的面向物件應用程式體系規範。或者說CORBA體系結構是物件管理組織(

Ubuntu Server 18 解除安裝MySQL5.*安裝MySQL8.0實現遠端訪問資料庫

如果你在Ubuntu18直接用 sudo apt-get install mysql-client mysql-server 系統預設會安裝MySQL會預設安裝5.7,但是MySQL5.7版本最高只適配到Ubuntu17.04,而MySQL8.0最高適配到Ubuntu18.04。

雲合同電子合同合作矩陣軟體實現遠端稱重智慧電子簽約

近日,雲合同(yunhetong.com)與“稱重物聯網第一股”公司——山東矩陣軟體工程股份有限公司(以下簡稱“矩陣軟體”)達成戰略合作,為矩陣軟體生態鏈提供專業的第三方電子合同服務。 隨著電商行業的客單量越來越大,物流業物品稱重、分揀的效率受到很大阻礙,因每個物品的

WebService技術總結(三):專案實戰——使用XMLdom4jXpath實現遠端呼叫

XML具有跨平臺性,在企業webservice開發中, 經常將請求引數封裝為XML,並且返回一個XML作為結果。 需求: 客戶端將發票號碼,發票程式碼作為條件,呼叫服務端,查詢金額,稅額資訊 客戶端請求引數xml形式: <?xml version="

django中介軟體CsrfViewMiddleware原始碼分析探究csrf實現

Django Documentation csrf保護基於以下: 1. 一個CSRF cookie 基於一個隨機生成的值,其他網站無法得到。此cookie由CsrfViewMiddleware產生。它與每個呼叫django.middleware.csrf.g

RabbitMQ訊息中介軟體技術精講無密完結版

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

applyMiddleware原理和middleware中介軟體原理及應用場景

  首先看下redux執行流程: redux設計思想: (1)Reducer:純函式,只承擔計算 State 的功能,不合適承擔其他功能,也承擔不了,因為理論上,純函式不能進行讀寫操作。 (2)View:與 State 一一對應,可以看作 State 的視覺層,也

RabbitMQ(訊息中介軟體)的應用場景

   1、跨系統的非同步通訊,所有需要非同步互動的地方都可以使用訊息佇列。就像我們除了打電話(同步)以外,還需要發簡訊,發電子郵件(非同步)的通訊方式。   2、多個應用之間的耦合,由於訊息是平臺無關和語言無關的,而且語義上也不再是函式呼叫,因此更適合作為多個應用之

RabbitMQ訊息中介軟體技術精講(完整版)

點選下載 第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景

Linux學習之路:第二章配置網路IP實現遠端連線(上)

備註:屬於個人分享,文章如有問題請留言,謝謝! 第二章配置網路IP,實現遠端連線 1、輸入使用者和密碼 輸入密碼的時候是不會顯示的 如何檢視Linux系統是32位還是64位,X86是32位,X86_64是64位                  命令: unam

某課實戰RabbitMQ訊息中介軟體技術精講

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rab

RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門Rab

資料計算中介軟體技術綜述

傳統企業大資料架構的問題 上圖是大家都很熟悉的基於 Hadoop 體系的開源大資料架構圖。在這個架構中,大致可以分成三層。最下一層是資料採集,通常會採用 kafka 或者 Flume 將 web 日誌通過訊息佇列傳送到儲存層或者計算層。對於資料儲存,目前 Apache 社群提

系統架構設計師:分散式系統(中介軟體技術

        網際網路使得聯機的所有裝置和軟體成為全球共享的浩瀚資源,計算機環境也從集中式發展到分散式。開放式系統的發展使得使用者能夠透明地應用由不同廠商製造的不同機型、不同平臺所組成的異構型計算資源,因此,分散式處理和應用整合自然而然地成為人們的共同需求。      

阿里流控中介軟體sentinel的思考主要分析下hytrix的優勢

優勢官網上已經說了很多,本篇主要想分析下hytrix的一些優勢   先說sentinel, 簡單說下,個人感覺比較有用的功能 sentinel的優勢: 友好的控制面板,支援實時監控 多種限流。支援QPS限流,執行緒數限流,多種限流策略,如:直接拒絕,勻速模式(漏斗),冷啟動(如設定

vue-cli 快速構建vue應用實現webpack打包

一、什麼是vue-clivue-cli是由vue官方釋出的快速構建vue單頁面的腳手架。參見vue-cli官方網站。http://vuejs-templates.github.io/webpack/之前需要使用vue的單檔案元件的功能,即將不同的模板分離到不同的.vue字尾的

分散式資料層中介軟體詳解:如何實現分庫分表+動態資料來源+讀寫分離

優知學院 2018-10-13 12:10:20   分散式資料層中介軟體: 1.簡介: 分散式資料訪問層中介軟體,旨在為供一個通用資料訪問層服務,支援MySQL動態資料來源、讀寫分離、分散式唯一主鍵生成器、分庫分表、動態化配置等功能,並且支援從客戶端角度對

2018目前最新RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

2019最新RabbitMQ訊息中介軟體技術精講(已完結)

第1章 課程介紹 本章首先讓大家徹底明白為什麼學習RabbitMQ,通過本課程的學習具體收穫有哪些?課程內容具體安排與學習建議,然後為大家簡單介紹下業界主流訊息中介軟體有哪些,各自適用場景等。 1-1 課程導學 1-2 業界主流訊息中介軟體介紹 第2章 低門檻,入門RabbitMQ核心概念 本

MQ訊息中介軟體技術淺析

JMS(Java Messaging Service)是Java平臺上有關面向訊息中介軟體的技術規範,它便於訊息系統中的Java應用程式進行訊息交換,並且通過提供標準的產生、傳送、接收訊息的介面簡化企業應用的開發。        JMS本身只定義了一系列的介面規範,是一種與廠商無關的 API,用來訪問訊息收