JP5420622B2 - program - Google Patents

program Download PDF

Info

Publication number
JP5420622B2
JP5420622B2 JP2011242937A JP2011242937A JP5420622B2 JP 5420622 B2 JP5420622 B2 JP 5420622B2 JP 2011242937 A JP2011242937 A JP 2011242937A JP 2011242937 A JP2011242937 A JP 2011242937A JP 5420622 B2 JP5420622 B2 JP 5420622B2
Authority
JP
Japan
Prior art keywords
native
intermediate language
library
type
api
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011242937A
Other languages
Japanese (ja)
Other versions
JP2013097745A (en
Inventor
嵩志 小熊
真吾 上野
理恵 笠井
敏英 東森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kyocera Document Solutions Inc
Original Assignee
Kyocera Document Solutions Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kyocera Document Solutions Inc filed Critical Kyocera Document Solutions Inc
Priority to JP2011242937A priority Critical patent/JP5420622B2/en
Priority to CN2012104073178A priority patent/CN103092599A/en
Priority to US13/669,052 priority patent/US20130185699A1/en
Priority to EP12191283.6A priority patent/EP2590071A1/en
Publication of JP2013097745A publication Critical patent/JP2013097745A/en
Application granted granted Critical
Publication of JP5420622B2 publication Critical patent/JP5420622B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は、複数種の中間言語で、これらに共通のネイティブライブラリを利用するソフトウェア開発キット、これを用いて作成された画像形成装置用拡張アプリケーション及びこのアプリケーションを備えた携帯端末装置に関する。   The present invention relates to a software development kit that uses a native library common to a plurality of kinds of intermediate languages, an extended application for an image forming apparatus created using the same, and a portable terminal device including the application.

セキュリティを確保するため、企業内に私用コンピュータを持ち込むことは一般に禁止されている。   To ensure security, it is generally prohibited to bring a private computer into the company.

しかしながら、スマートフォンの普及に伴い、一定条件の下でこの禁止を解除することにより、ビジネス上の処理の効率化が図られようとしている。   However, with the widespread use of smartphones, business processes are becoming more efficient by removing this prohibition under certain conditions.

iPhone(登録商標)、Andoroid(登録商標)及びWindows Phone(登録商標)などのスマートフォンは、それぞれ異なるプラットフォーム及びプログラミング言語を用いているので、複数種のスマートフォンに対するアプリケーション開発期間が長くなる原因となる。   Smartphones such as iPhone (registered trademark), Android (registered trademark), and Windows Phone (registered trademark) use different platforms and programming languages, which causes a long application development period for multiple types of smartphones.

一方、スマートフォンはデスクトップコンピュータに比べ、CPU能力やメモリ容量の点で劣るものの、データサイズが比較的大きい画像を処理する必要があるので、高速処理が要求される。この要求に応えるため、機械語に近くプラットフォームに非依存のC言語が用いられている。   On the other hand, although a smartphone is inferior in terms of CPU capability and memory capacity compared to a desktop computer, it needs to process an image having a relatively large data size, and therefore requires high-speed processing. In order to meet this requirement, a C language that is close to machine language and independent of the platform is used.

しかし、C言語は低級言語であるので、これを用いてネイティブライブラリを開発するとともにアプリケーションを開発すると、その期間が長くなる。このため、C言語は高速処理が要求される部分のみに用いられている。   However, since the C language is a low-level language, when the native library is developed using this and the application is developed, the period becomes longer. For this reason, the C language is used only for portions where high-speed processing is required.

C言語で作成されコンパイルされたネイティブライブラリは、JNI(Java Native Interface)やC++/CLI(Common Language Infrastructure)を用いて、Java(登録商標)やC#で作成されコンパイルされた中間言語プログラムと連携させることができる。この点は、C++言語で作成されコンパイルされたネイティブライブラリについても同様である。   Native libraries created and compiled in C language are linked with intermediate language programs created and compiled in Java (registered trademark) and C # using Java Native Interface (JNI) and Common Language Infrastructure (C ++). Can be made. This also applies to a native library created and compiled in the C ++ language.

http://ja.wikipedia.org/wiki/Java_Native_Interfacehttp://en.wikipedia.org/wiki/Java_Native_Interface http://ja.wikipedia.org/wiki/C%2B%2B/CLIhttp://en.wikipedia.org/wiki/C%2B%2B/CLI

ところが従来では、Java(登録商標)とC/C++との連携と、C#とC/C++との連携とが、それぞれ独立して行われていたので、ネイティブライブラリの開発及び改良が遅延し、結果として、複数種のスマートフォン用アプリケーションの開発及び改良が遅延する原因となっていた。   However, in the past, the linkage between Java (registered trademark) and C / C ++ and the linkage between C # and C / C ++ were performed independently, so the development and improvement of the native library was delayed, As a result, development and improvement of multiple types of smartphone applications have been delayed.

本発明の目的は、このような問題点に鑑み、ネイティブライブラリと複数種の中間言語のプログラムとの連携を効率よく行うことが可能なソフトウェア開発キット、これを用いて作成された画像形成装置用拡張アプリケーション及びこのアプリケーションを備えた携帯端末装置を提供することにある。   In view of such problems, the object of the present invention is to provide a software development kit capable of efficiently linking a native library and a plurality of types of intermediate language programs, and an image forming apparatus created using the software development kit An object of the present invention is to provide an extended application and a portable terminal device provided with the application.

本発明によるコンピューター実行可能なプログラムの第1態様では、
複数のネイティブ関数又はネイティブメソッドをネイティブサブルーチンとして備えたネイティブライブラリと、
該複数のネイティブサブルーチンのそれぞれについて、第1の中間言語で記述された関数呼出しに応答して、該第1の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第1の中間言語の対応する型に変換して該第1の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第1ラッパークラスと、
該複数のネイティブサブルーチンのそれぞれについて、第2の中間言語で記述された関数呼出しに応答して、該第2の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第2の中間言語の対応する型に変換して該第2の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第2ラッパークラスとを有し、該ネイティブライブラリ、該第1ラッパークラス及び該第2ラッパークラスを中間言語用拡張ライブラリとして備えている。
In a first aspect of a computer-executable program according to the present invention,
A native library with multiple native functions or methods as native subroutines;
For each of the plurality of native subroutines, in response to the function call described in the first intermediate language, the type of each argument of the function call code described in the first intermediate language corresponds to the native subroutine. Calling the native subroutine by converting it to the type of the argument, converting the return value type of the native subroutine to the corresponding type of the first intermediate language, and the function caller described in the first intermediate language A first wrapper class with a type conversion method to return to
For each of the plurality of native subroutines, in response to the function call described in the second intermediate language, the type of each argument of the function call code described in the second intermediate language corresponds to the native subroutine. Calling the native subroutine after converting it to the argument type, converting the return value type of the native subroutine to the corresponding type of the second intermediate language, and the function caller described in the second intermediate language And a second wrapper class having a type conversion method to be returned to (2), and the native library, the first wrapper class, and the second wrapper class are provided as intermediate language extension libraries.

本発明によるコンピューター実行可能なプログラムの第2態様では、第1態様において、
該第1の中間言語はC#の中間言語であり、該第2の中間言語はJava(登録商標)の中間言語である。
In a second aspect of the computer-executable program according to the present invention, in the first aspect,
The first intermediate language is a C # intermediate language, and the second intermediate language is a Java (registered trademark) intermediate language.

本発明によるコンピューター実行可能なプログラムの第3態様では、第1又は2態様において、携帯端末のユーザアプリケーション開発用である。
In a third aspect of the computer-executable program according to the present invention, in the first or second aspect, the program is for developing a user application for a portable terminal.

上記第1態様の構成によれば、複数種の中間言語から、それぞれのラッパークラスを介し、これらに共通のネイティブライブラリを利用することができるので、ネイティブライブラリと複数種の中間言語のプログラムとの連携を効率よく行うことが可能となるという効果を奏する。   According to the configuration of the first aspect, a common native library can be used from a plurality of types of intermediate languages via the respective wrapper classes, so the native library and the programs of the plurality of types of intermediate languages can be used. There is an effect that the cooperation can be efficiently performed.

また、複数種の言語のそれぞれのプログラマが、該ネイティブライブラリを、ネイティブコードであることを意識せずに該複数種の言語のそれぞれの拡張ライブラリとして用いることができるという効果を奏する。   In addition, there is an effect that each programmer of a plurality of languages can use the native library as an extension library of each of the plurality of languages without being aware of the native code.

さらに、ネイティブライブラリを複数種の言語で共通に用いることができるので、上記第3態様の構成によれば、複数種の言語のそれぞれが選択的に用いられる携帯端末のアプリケーションの開発及び改良が遅延するのを防止することができるという効果を奏する。   Furthermore, since the native library can be used in common for a plurality of types of languages, according to the configuration of the third aspect, the development and improvement of the application of the mobile terminal in which each of the plurality of types of languages is selectively used is delayed. There is an effect that it can be prevented.

本発明の他の目的、特徴的な構成及び効果は、以下の説明を特許請求の範囲及び図面の記載と関係づけて読むことにより明らかになる。   Other objects, characteristic configurations and effects of the present invention will become apparent from the following description read in connection with the appended claims and the drawings.

本発明の実施例1に係る、複数のクラウドサービスを利用する画像形成システムの概略構成図である。1 is a schematic configuration diagram of an image forming system using a plurality of cloud services according to Embodiment 1 of the present invention. 図1中の画像形成装置の階層構造を示すブロック図である。FIG. 2 is a block diagram illustrating a hierarchical structure of the image forming apparatus in FIG. 1. 図1中のスマートフォンの階層構造を示すブロック図である。It is a block diagram which shows the hierarchical structure of the smart phone in FIG. 図1中のPCのハードウェア構成を示す概略ブロック図である。It is a schematic block diagram which shows the hardware constitutions of PC in FIG. 該PCをソフトウェア開発装置として利用する場合の概略機能ブロック図である。It is a schematic functional block diagram in the case of using this PC as a software development apparatus. (A)及び(B)はそれぞれ第1及び第2のプラットフォーム用の制御モジュール及びその下位側のラッパーAPIの概略ブロック図である。(A) and (B) are schematic block diagrams of a control module for the first and second platforms and a wrapper API on the lower side thereof, respectively. 図6(A)中のラッパークラスに含まれる型変換メソッドでの処理を示す概略フローチャートである。It is a schematic flowchart which shows the process by the type conversion method contained in the wrapper class in FIG. 6 (A). (A)は第1のプラットフォーム用の制御モジュール作成手順を示す概略フローチャート、(B)は(A)中のステップS10の説明図である。(A) is a schematic flowchart which shows the control module preparation procedure for 1st platforms, (B) is explanatory drawing of step S10 in (A). (A)は第2のプラットフォーム用の制御モジュール作成手順を示す概略フローチャート、(B)は(A)の処理の説明図である。(A) is a schematic flowchart which shows the control module preparation procedure for 2nd platforms, (B) is explanatory drawing of the process of (A).

図1は、本発明の実施例1に係る、複数のクラウドサービスを利用する画像形成システムの概略構成図である。   FIG. 1 is a schematic configuration diagram of an image forming system using a plurality of cloud services according to the first embodiment of the present invention.

このシステムでは、イントラネット10に、画像形成装置11と、ユーザ端末としてのパーソナルコンピュータ(PC)12と、無線LANのアクセスポイント13とが結合され、スマートフォン14がアクセスポイント13を介してイントラネット10に結合される。このイントラネット10がルータ(不図示)を介してインターネット20に結合される。インターネット20には、複数のクラウド21〜23が結合されている。また、インターネット20に基地局24が結合され、スマートフォン14及び25から基地局24を介しイントラネット10に結合される。   In this system, an image forming apparatus 11, a personal computer (PC) 12 as a user terminal, and a wireless LAN access point 13 are coupled to an intranet 10, and a smartphone 14 is coupled to the intranet 10 via the access point 13. Is done. This intranet 10 is coupled to the Internet 20 via a router (not shown). A plurality of clouds 21 to 23 are coupled to the Internet 20. In addition, a base station 24 is coupled to the Internet 20, and the smartphones 14 and 25 are coupled to the intranet 10 via the base station 24.

複数のクラウド21〜23はそれぞれ、クラウドサービス31〜33を各種クライアント端末に対し提供可能となっている。   The plurality of clouds 21 to 23 can provide cloud services 31 to 33 to various client terminals, respectively.

ユーザは、PC12、スマートフォン14及び25などに拡張アプリケーションをインストールすることにより、これらからWebサービスとして、画像形成装置11のコピー、プリント及びファクシミリなどの基本的なサービスやクラウドサービス31〜33並びにこれらサービスを組み合わせたものを実行したり、画像形成装置11の設定情報を取得したり、この設定を変更したりすることが可能となる。   The user installs an extended application on the PC 12, the smartphones 14 and 25, and the like, and as a Web service, basic services such as copying, printing, and facsimile of the image forming apparatus 11, cloud services 31 to 33, and these services are provided. Can be executed, the setting information of the image forming apparatus 11 can be acquired, and the setting can be changed.

図1では、簡単化の為に、複数のPC端末を1つのPC12で代表し、アクセスポイント13に対する複数の携帯端末を1つのスマートフォン14で代表し、基地局24に対する複数の携帯端末を1つのスマートフォン25で代表している。   In FIG. 1, for simplification, a plurality of PC terminals are represented by one PC 12, a plurality of portable terminals for the access point 13 are represented by one smartphone 14, and a plurality of portable terminals for the base station 24 are represented by one. It is represented by the smartphone 25.

図2は、画像形成装置11の階層構造を示すブロック図である。   FIG. 2 is a block diagram illustrating a hierarchical structure of the image forming apparatus 11.

画像形成装置11は、ハードウェアとしてスキャナ40、プリンタ41、FAX42、操作パネル43及びネットワークインターフェイス(NIC)44を備え、プラットフォーム50を介してそれぞれの基本的な入出力制御を行うことが可能となっている。   The image forming apparatus 11 includes a scanner 40, a printer 41, a FAX 42, an operation panel 43 and a network interface (NIC) 44 as hardware, and can perform basic input / output control via the platform 50. ing.

プラットフォーム50は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするオペレーティングシステム(OS)と、OSの下層の各種デバイスドライバと、OS上のJava(登録商標)VMやCLR(Common Language Runtime)などの仮想マシン(クラスライブラリ)と、標準ライブラリとを備えている。   The platform 50 performs the control, manages the power supply, and communicates with a protocol such as TCP / IP, various device drivers below the OS, and Java (registered trademark) on the OS. ) A virtual machine (class library) such as VM or CLR (Common Language Runtime) and a standard library are provided.

制御モジュール51は、拡張クラスライブラリであって、プラットフォーム50のAPI52を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション53は、制御モジュール51のAPI54を介し、ハードウェア40〜44をコピー、プリント及びファクシミリなどのような論理的な機能単位で制御可能となっている。   The control module 51 is an extension class library and can control each piece of hardware in units of functions via the API 52 of the platform 50. The basic application 53 can control the hardware 40 to 44 in logical function units such as copy, print, and facsimile via the API 54 of the control module 51.

ハードウェア40〜44に対する設定情報は、操作パネル43の操作に応答して、制御モジュール51により設定情報データベース55に格納され、また、格納された設定情報は、操作パネル43の操作に応答して制御モジュール51により、操作パネル43に表示される。   The setting information for the hardware 40 to 44 is stored in the setting information database 55 by the control module 51 in response to the operation on the operation panel 43, and the stored setting information is in response to the operation on the operation panel 43. The information is displayed on the operation panel 43 by the control module 51.

システム管理部56は、API52又はAPI54を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。   The system management unit 56 performs user authentication and authorization processing, error management, and power saving management via the API 52 or API 54.

PC12又はスマートフォン14若しくは25から画像形成装置11へのサービス要求は、NIC44及びプラットフォーム50を介してWebサービスプロバイダ57に伝えられ、Webサービスプロバイダ57はその要求に応じて、API58を介し基本アプリケーション53を動作させ、API54を介し設定情報データベース55から設定情報を読み出し又は設定情報データベース55の設定を変更し、それらの結果を返信する。   A service request from the PC 12 or the smartphone 14 or 25 to the image forming apparatus 11 is transmitted to the web service provider 57 via the NIC 44 and the platform 50, and the web service provider 57 sends the basic application 53 via the API 58 in response to the request. Operate, read out the setting information from the setting information database 55 via the API 54 or change the setting of the setting information database 55, and return those results.

図3は、スマートフォン14の階層構造を示すブロック図である。   FIG. 3 is a block diagram illustrating a hierarchical structure of the smartphone 14.

スマートフォン14は、ハードウェアとしてカメラ60、傾きセンサ61、ブルーツース通信部62、操作パネル63及び通信アダプタ64などを備え、通信アダプタ64にアンテナ65が結合され、プラットフォーム70を介してそれぞれの基本的な入出力制御を行うことが可能となっている。   The smartphone 14 includes a camera 60, a tilt sensor 61, a Bluetooth communication unit 62, an operation panel 63, a communication adapter 64, and the like as hardware, and an antenna 65 is coupled to the communication adapter 64. Input / output control can be performed.

プラットフォーム70は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするOSと、OSの下層の各種デバイスドライバと、OS上の仮想マシンと、標準ライブラリとを備えている。   The platform 70 performs the control, manages the power supply, and communicates with a protocol such as TCP / IP, various device drivers under the OS, a virtual machine on the OS, and a standard library. I have.

制御モジュール71は、拡張クラスライブラリであって、プラットフォーム70のAPI72を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション73は、ブラウザ、動画プレーヤ及びアドレス帳などを含み、制御モジュール71のAPI74を介し、ハードウェア60〜64を論理的な機能単位で制御可能となっている。   The control module 71 is an extension class library and can control each piece of hardware in units of functions via the API 72 of the platform 70. The basic application 73 includes a browser, a video player, an address book, and the like, and can control the hardware 60 to 64 in units of logical functions via the API 74 of the control module 71.

ハードウェア60〜64に対する設定情報は、操作パネル63の操作に応答して、制御モジュール71により設定情報データベース75に格納され、また、格納された設定情報は、操作パネル63の操作に応答して制御モジュール71により、操作パネル63に表示される。   The setting information for the hardware 60 to 64 is stored in the setting information database 75 by the control module 71 in response to the operation of the operation panel 63, and the stored setting information is in response to the operation of the operation panel 63. The information is displayed on the operation panel 63 by the control module 71.

システム管理部76は、API72又は74を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。   The system management unit 76 performs user authentication and authorization processing, error management, and power saving management via the API 72 or 74.

Webクライアント77は、操作パネル63の操作に応答してAPI72を介しそのURLにHTTPプロトコルで要求を送信し、返信された内容を操作パネル63に表示させる。   In response to an operation on the operation panel 63, the Web client 77 transmits a request to the URL using the HTTP protocol via the API 72, and causes the operation panel 63 to display the returned content.

拡張アプリケーション(ユーザアプリケーション)78は、基本アプリケーション73のAPI79を介して、単一又は複数の機能の組み合わせを実行させ、API74を介し設定情報データベース75の設定情報を読み取って操作パネル63に表示させ又は設定情報データベース75の設定情報を変更させる。   The extended application (user application) 78 executes a combination of single or plural functions via the API 79 of the basic application 73, reads the setting information in the setting information database 75 via the API 74, and displays the setting information on the operation panel 63. The setting information in the setting information database 75 is changed.

Webサービスインターフェイス7Aは、Webサービスを内部メソッドのように呼び出すためのサービスプロキシと、送信時に該メソッドの呼び出しをXMLに変換するシリアライザと、受信時にXMLを該メソッドの戻り値に変換するデシリアライザとを備えている。   The Web service interface 7A includes a service proxy for calling a Web service like an internal method, a serializer that converts the method call to XML at the time of transmission, and a deserializer that converts XML to the return value of the method at the time of reception. I have.

上記拡張アプリケーション78はまた、Webサービスインターフェイス7A及びWebクライアント77を介し画像形成装置11のWebサービスプロバイダ57又はクラウド21〜23のサービス31〜33に対し要求を行い、その結果を、Webクライアント77及びWebサービスインターフェイス7Aを介して受信し、その内容を操作パネル63に表示させる。   The extended application 78 also makes a request to the web service provider 57 of the image forming apparatus 11 or the services 31 to 33 of the clouds 21 to 23 via the web service interface 7A and the web client 77, and the result is sent to the web client 77 and The content is received via the Web service interface 7A and the content is displayed on the operation panel 63.

図4は、PC12のハードウェア構成を示す概略ブロック図である。図5は、PC12をソフトウェア開発装置として利用する場合の概略機能ブロック図である。   FIG. 4 is a schematic block diagram showing the hardware configuration of the PC 12. FIG. 5 is a schematic functional block diagram when the PC 12 is used as a software development apparatus.

ホストコンピュータPC12では、CPU91がインターフェイス92を介してメモリ93、補助記憶装置94、会話型入出力装置95及びネットワークインターフェイス96に結合されている。図4では、簡単化の為に、複数種のインターフェイスを1つのブロック92で表している。   In the host computer PC 12, a CPU 91 is coupled to a memory 93, an auxiliary storage device 94, an interactive input / output device 95 and a network interface 96 via an interface 92. In FIG. 4, a plurality of types of interfaces are represented by one block 92 for the sake of simplicity.

メモリインターフェイス92は例えば、BIOSが格納されたフラッシュメモリと、主記憶装置として用いられるDRAMとを備えている。補助記憶装置94には、OS、各種デバイスドライバ、ライブラリ及び仮想マシンがプラットフォーム(PF)として格納され、さらにソフトウェア開発キット(SDK)が格納されている。ネットワークインターフェイス96は、イントラネット10に結合されている。   The memory interface 92 includes, for example, a flash memory storing a BIOS and a DRAM used as a main storage device. The auxiliary storage device 94 stores an OS, various device drivers, a library, and a virtual machine as a platform (PF), and further stores a software development kit (SDK). Network interface 96 is coupled to intranet 10.

このソフトウェア開発装置は、図3中の拡張アプリケーション78の開発を支援するもであり、ネイティブライブラリを備えてスマートフォンでの処理を高速化可能にするとともに、複数のプラットフォームのうちの任意の1つを搭載したスマートフォンの拡張アプリケーション78を開発可能にし、しかも、マルチ言語対応にしてプログラミング言語を選択可能にしている。   This software development device supports the development of the extended application 78 in FIG. 3, includes a native library, enables high-speed processing on a smartphone, and enables any one of a plurality of platforms. It is possible to develop an extended application 78 for the installed smartphone, and it is possible to select a programming language corresponding to multiple languages.

図5中、構成要素72A、171、173〜176及び179はそれぞれ図3中の構成要素72、71、73〜76及び79に対応している。これら構成要素72A、171、173〜176及び179は、図3中の対応する構成要素のうち、拡張アプリケーション78を開発するのに必要な部分のみを備えていればよい。ラッパーAPI172は、API110をラッパーすることによりAPI72と同じに見せかけるものである。   In FIG. 5, the components 72A, 171, 173 to 176, and 179 correspond to the components 72, 71, 73 to 76, and 79 in FIG. These constituent elements 72A, 171, 173 to 176, and 179 need only include portions necessary for developing the extended application 78 among the corresponding constituent elements in FIG. The wrapper API 172 looks the same as the API 72 by wrapping the API 110.

PC12は、通常のSDKと同様に、テキストエディタ100、デザイナ101、デバッガ102及びビルダ103と、ユーザの操作に応答してこれらのいずれかを呼び出す処理やプロジェクト生成処理等を行うアプリ開発統合管理部104とを備えている。   The PC 12 includes a text editor 100, a designer 101, a debugger 102, and a builder 103, and an application development integrated management unit that performs a process for calling one of these in response to a user operation, a project generation process, and the like, as in a normal SDK. 104.

デザイナ101は、操作パネル63の画面設計のアプリケーション開発を支援するためのものであって、対話的ビジュアル設計に基づいてプログラムを自動生成するものである。   The designer 101 is for supporting application development of the screen design of the operation panel 63, and automatically generates a program based on interactive visual design.

ビルダ103は、複数の言語、例えばC#、C++、C及びJave(登録商標)のそれぞれに対応したコンパイラを備えている。   The builder 103 includes compilers corresponding to a plurality of languages, for example, C #, C ++, C, and Java (registered trademark).

拡張アプリケーション78のソースコードは、C#又はJava(登録商標)の言語で、C/C++よりも効率よく作成される。このソースコードは、ビルダ103内の対応するコンパイラにより、中間言語に翻訳される。この中間言語は、プラットフォーム内のC#ランタイム又はJavaランタイムの下で、解釈実行され又はJIT(Just In Time)コンパイルされて実行される。C#ランタイム及びJavaランタイムはそれぞれ、CLR(共通言語実行環境)及びJVM(Java仮想マシン)を備えている。   The source code of the extended application 78 is created in a C # or Java (registered trademark) language more efficiently than C / C ++. This source code is translated into an intermediate language by a corresponding compiler in the builder 103. This intermediate language is interpreted and executed under the J # (Just In Time) compilation or execution under the C # runtime or Java runtime in the platform. Each of the C # runtime and the Java runtime includes a CLR (Common Language Execution Environment) and a JVM (Java Virtual Machine).

ここで、図5の制御モジュール171は、アプリケーションレベルの通信や画像などを高速処理するクラスライブラリを備えており、これは、図6(A)に示すように、C又はC++のソースコードをコンパイルしたネイティブライブラリ120と、マルチ言語対応にするためC#及びJava(登録商標)のラッパークラスのソースコードをコンパイルしたラッパーAPI121及び122とを備えている。   Here, the control module 171 shown in FIG. 5 includes a class library for high-speed processing of application-level communication, images, and the like, which compiles C or C ++ source code as shown in FIG. A native library 120 and wrapper APIs 121 and 122 obtained by compiling source codes of wrapper classes of C # and Java (registered trademark) in order to be compatible with multiple languages.

C#用ラッパーAPI121は、拡張アプリケーション78の中間コードの一部が、ネイティブライブラリ120内のC関数又はC++クラスのメソッド(ネイティブサブルーチン)を、C#のクラスのインスタンスのメソッドとして呼び出せるようにするためのクラスライブラリであり、C#の該メソッドのシグネチャをネイティブライブラリ120内のC関数又はC++クラスのメソッド(ネイティブサブルーチン)のシグネチャに変換する型変換メソッドを含んでいる。   The C # wrapper API 121 allows a part of the intermediate code of the extended application 78 to call a C function or C ++ class method (native subroutine) in the native library 120 as a method of an instance of a C # class. And a type conversion method for converting the signature of the C # method into the signature of the C function or native C ++ class method (native subroutine) in the native library 120.

拡張アプリケーション78の中間コードの一部は、この型変換メソッド介して、ネイティブサブルーチンを呼び出す。   A part of the intermediate code of the extended application 78 calls a native subroutine through this type conversion method.

図7は、この型変換メソッドでの処理を示す概略フローチャートである。   FIG. 7 is a schematic flowchart showing processing in this type conversion method.

(S0)C#のメソッド呼び出しコード(シグネチャ)に含まれる引数の型を、ネイティブライブラリ120内の対応するネイティブサブルーチンの引数の型に変換する。   (S0) The argument type included in the C # method call code (signature) is converted into the argument type of the corresponding native subroutine in the native library 120.

(S1)この引数を用いて該ネイティブサブルーチンを呼び出す。これにより、該ネイティブサブルーチンが実行されて、戻り値が生成される。   (S1) The native subroutine is called using this argument. Thereby, the native subroutine is executed and a return value is generated.

(S3)この戻り値の型を、メソッド呼出元の対応する型(上記シグネチャの戻り値の型)に変換し、メソッド呼出元に返す。   (S3) This return value type is converted into the corresponding type of the method caller (the return value type of the signature) and returned to the method caller.

ラッパーAPI121は、このような型変換メソッドと、C#の仕様に基づいてメモリ管理を行うためのコンストラクタ及びデストラクタなどの言語仕様変換に必須のものとを含んだ1つ又は複数のクラス(クラスライブラリ)である。   The wrapper API 121 includes one or a plurality of classes (class library) including such type conversion methods and essential ones for language specification conversion such as a constructor and a destructor for performing memory management based on C # specifications. ).

Java用ラッパークラス122もC#用ラッパーAPI121と同様である。   The wrapper class 122 for Java is the same as the wrapper API 121 for C #.

C#用ラッパークラス121及びJavaラッパークラス122は、ラッパークラス生成ツール内の対応する言語のものを用いて生成される。即ち、ラッパークラス生成ツールは、C++/CLRを用いてC#ラッパークラス120を生成するツールと、JNIに基づいてJavaラッパークラス1211を生成するツールとを備えている。   The C # wrapper class 121 and the Java wrapper class 122 are generated using the corresponding language in the wrapper class generation tool. That is, the wrapper class generation tool includes a tool that generates a C # wrapper class 120 using C ++ / CLR and a tool that generates a Java wrapper class 1211 based on JNI.

ネイティブライブラリ120は、特定のプラットフォーム70(PL1)のOS又は/及びライブラリ、例えば.NETフレームワークの標準ライブラリを用いて作成されている。ラッパーAPI172は、ネイティブライブラリ120から見てプラットフォーム70をPL1と見なせるようにするためのものである。   The native library 120 is a specific platform 70 (PL1) OS or / and library, e.g. It is created using the standard library of the NET framework. The wrapper API 172 is for allowing the platform 70 to be regarded as PL1 when viewed from the native library 120.

PC12はまた、図6(B)に示すような制御モジュール171Aも備えている。   The PC 12 also includes a control module 171A as shown in FIG.

制御モジュール171Aは、ネイティブライブラリ120と同一機能のネイティブライブラリ120Aと、C#用ラッパーAPI121及びJava(登録商標)用ラッパーAPI122とを備え、これらラッパーAPI121及びAPI122は制御モジュール171のものと共用である。   The control module 171A includes a native library 120A having the same function as the native library 120, a C # wrapper API 121, and a Java (registered trademark) wrapper API 122. These wrapper API 121 and API 122 are shared with those of the control module 171. .

ネイティブライブラリ120Aは、他のプラットフォーム70(PL2)のOS又は/及びライブラリ、例えばLinax(登録商標)のクラスライブラリを用いて作成されている。ラッパーAPI172Aは、ネイティブライブラリ120Aから見てプラットフォーム70をPL2と見なせるようにするためのものである。   The native library 120A is created using an OS or / and library of another platform 70 (PL2), for example, a class library of Linux (registered trademark). The wrapper API 172A is for allowing the platform 70 to be regarded as PL2 when viewed from the native library 120A.

上記共用を可能にするため、ネイティブライブラリ120A内の各メソッドのシグネチャはネイティブライブラリ120のそれと同一になっている。すなわち、ネイティブライブラリ120と120AのC又はC++ソースコードでの相違部分は、プラットフォームPL1とPL2のいずれのAPIを使用しているか及びその周辺部分であり、他は互いに同一である。   In order to enable the sharing, the signature of each method in the native library 120A is the same as that of the native library 120. That is, the difference between the native libraries 120 and 120A in the C or C ++ source code is which API of the platforms PL1 and PL2 is used and its peripheral part, and the others are the same.

図8(A)は、制御モジュール171の作成手順を示す概略フローチャートである。   FIG. 8A is a schematic flowchart showing a procedure for creating the control module 171.

(S10)プラットフォームPL1用のネイティブライブラリ120を作成する。このネイティブライブラリ120は、図8(B)に示すようにラッパーAPI172(クラスライブラリ)内の例えばAPI1〜API3を用いている。   (S10) The native library 120 for the platform PL1 is created. The native library 120 uses, for example, API1 to API3 in the wrapper API 172 (class library) as shown in FIG. 8B.

(S11)各言語用のラッパークラスライブラリ、すなわちラッパーAPI121及びラッパーAPI122を作成する。   (S11) A wrapper class library for each language, that is, a wrapper API 121 and a wrapper API 122 are created.

図9(A)は、制御モジュール171Aの作成手順を示す概略フローチャートである。   FIG. 9A is a schematic flowchart showing a procedure for creating the control module 171A.

(S20)プラットフォームPL2用のネイティブライブラリ120Aを作成する。このネイティブライブラリ120Aは、図9(B)に示すように、ラッパーAPI172A内の例えばAPI1A〜API3Aを用いている。   (S20) A native library 120A for the platform PL2 is created. As shown in FIG. 9B, the native library 120A uses, for example, API1A to API3A in the wrapper API 172A.

ラッパーAPI121及びAPI122は既に作成され、制御モジュール171のそれらと共用であるので、さらに作成する必要がない。   The wrapper API 121 and API 122 have already been created and are shared with those of the control module 171 and need not be further created.

図5に戻って、PC12はさらに、スマートフォン14のハードウェアに対応したシミュレータ105を備えている。入力装置950及び表示装置951は図4中の会話型入出力装置95を構成している。図5中、拡張アプリケーション78及びWebサービスインターフェイス7A中のサービスプロキシ以外は、開発環境として予め備えられている。   Returning to FIG. 5, the PC 12 further includes a simulator 105 corresponding to the hardware of the smartphone 14. The input device 950 and the display device 951 constitute the interactive input / output device 95 in FIG. In FIG. 5, the components other than the extended application 78 and the service proxy in the Web service interface 7A are provided in advance as a development environment.

本実施例1によれば、複数種の言語のいずれかの拡張アプリケーション78から、対応するラッパーAPI121又は122を介し、これらに共通のネイティブライブラリ120を利用することができるので、ネイティブライブラリ120と複数種の中間言語のプログラムとの連携を効率よく行うことが可能となるという効果を奏する。   According to the first embodiment, the common native library 120 can be used from the extended application 78 of any of a plurality of languages via the corresponding wrapper API 121 or 122. There is an effect that it is possible to efficiently cooperate with various intermediate language programs.

また、複数種の言語のそれぞれのプログラマが、ネイティブライブラリ120を、ネイティブコードであることを意識せずに該複数種言語のそれぞれの中間言語用拡張ライブラリとして用いることができるという効果を奏する。   Further, there is an effect that each programmer of a plurality of languages can use the native library 120 as an extension library for each intermediate language of the plurality of languages without being aware of the native code.

さらに、ネイティブライブラリ120を複数種の言語で共通に用いることができるので、複数種の言語のそれぞれが選択的に用いられるスマートフォンアプリケーションの開発及び改良が遅延するのを防止することができるという効果を奏する。   In addition, since the native library 120 can be used in common with a plurality of languages, it is possible to prevent delays in development and improvement of a smartphone application in which each of the plurality of languages is selectively used. Play.

以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。   In the above, preferred embodiments of the present invention have been described. However, the present invention includes various modifications, and other configurations that realize the functions of the respective components described in the above embodiments are used. However, other configurations that would be conceived by those skilled in the art from these configurations or functions are also included in the present invention.

例えば、ラッパーAPI120、122は、API174の一部であってもよい。換言すれば、ラッパーAPI120、122をAPI174の一部として用いる構成であってもよい。   For example, the wrapper API 120, 122 may be part of the API 174. In other words, the wrapper API 120, 122 may be used as part of the API 174.

また、中間言語にコンパイルされるオブジェクト指向言語は、上記以外のものであってもよい。ネイティブライブラリはアセンブリ言語を一部又は全部用いて作成したものであってもよい。   The object-oriented language compiled into the intermediate language may be other than the above. The native library may be created using part or all of the assembly language.

10 イントラネット
11 画像形成装置
12 PC
13 アクセスポイント
14、25 スマートフォン
20 インターネット
21〜23 クラウド
24 基地局
31〜33 クラウドサービス
40 スキャナ
41 プリンタ
42 FAX
43 操作パネル
44 NIC
50、70、110、PL1、PL2 プラットフォーム
51、71、171 制御モジュール
52、54、58、72、74、79、174、179 API
53、73、173 基本アプリケーション
55、75、175 設定情報データベース
56、76、176 システム管理部
57 Webサービスプロバイダ
60 カメラ
61 傾きセンサ
62 ブルーツース通信部
63 操作パネル
64 通信アダプタ
65 アンテナ
72A、172、172A、121、122 ラッパーAPI
77 Webクライアント
78、78A 拡張アプリケーション
7A、7B Webサービスインターフェイス
91 CPU
92 インターフェイス
93 メモリ
94 補助記憶装置
95 会話型入出力装置
96 ネットワークインターフェイス
100 テキストエディタ
101 デザイナ
102 デバッガ
103 ビルダ
104 アプリ開発統合管理部
105 スマートフォンハードウェアシミュレータ
120、120A ネイティブライブラリ
10 Intranet 11 Image forming device 12 PC
13 Access Point 14, 25 Smartphone 20 Internet 21-23 Cloud 24 Base Station 31-33 Cloud Service 40 Scanner 41 Printer 42 FAX
43 Operation panel 44 NIC
50, 70, 110, PL1, PL2 Platform 51, 71, 171 Control module 52, 54, 58, 72, 74, 79, 174, 179 API
53, 73, 173 Basic application 55, 75, 175 Setting information database 56, 76, 176 System management unit 57 Web service provider 60 Camera 61 Tilt sensor 62 Bluetooth communication unit 63 Operation panel 64 Communication adapter 65 Antenna 72A, 172, 172A, 121, 122 wrapper API
77 Web client 78, 78A Extended application 7A, 7B Web service interface 91 CPU
92 Interface 93 Memory 94 Auxiliary Storage 95 Interactive Input / Output Device 96 Network Interface 100 Text Editor 101 Designer 102 Debugger 103 Builder 104 Application Development Integrated Management Unit 105 Smartphone Hardware Simulator 120, 120A Native Library

Claims (3)

複数のネイティブ関数又はネイティブメソッドをネイティブサブルーチンとして備えたネイティブライブラリと、
該複数のネイティブサブルーチンのそれぞれについて、第1の中間言語で記述された関数呼出しに応答して、該第1の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第1の中間言語の対応する型に変換して該第1の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第1ラッパークラスと、
該複数のネイティブサブルーチンのそれぞれについて、第2の中間言語で記述された関数呼出しに応答して、該第2の中間言語で記述された関数呼出しコードの各引数の型を該ネイティブサブルーチンの対応する引数の型に変換して該ネイティブサブルーチンを呼出し、該ネイティブサブルーチンの戻り値の型を該第2の中間言語の対応する型に変換して該第2の中間言語で記述された関数の呼び出し元に返す型変換メソッドを備えた第2ラッパークラスと、
を有し、該ネイティブライブラリ、該第1ラッパークラス及び該第2ラッパークラスを中間言語用拡張ライブラリとして備えていることを特徴とするコンピューター実行可能なプログラム
A native library with multiple native functions or methods as native subroutines;
For each of the plurality of native subroutines, in response to the function call described in the first intermediate language, the type of each argument of the function call code described in the first intermediate language corresponds to the native subroutine. Calling the native subroutine by converting it to the type of the argument, converting the return value type of the native subroutine to the corresponding type of the first intermediate language, and the function caller described in the first intermediate language A first wrapper class with a type conversion method to return to
For each of the plurality of native subroutines, in response to the function call described in the second intermediate language, the type of each argument of the function call code described in the second intermediate language corresponds to the native subroutine. Calling the native subroutine after converting it to the argument type, converting the return value type of the native subroutine to the corresponding type of the second intermediate language, and the function caller described in the second intermediate language A second wrapper class with a type conversion method to return to
And a computer-executable program comprising the native library, the first wrapper class, and the second wrapper class as an extension library for an intermediate language.
該第1の中間言語はC#の中間言語であり、該第2の中間言語はJava(登録商標)の中間言語であることを特徴とする請求項1に記載のコンピューター実行可能なプログラムThe computer-executable program according to claim 1, wherein the first intermediate language is a C # intermediate language, and the second intermediate language is a Java (registered trademark) intermediate language. 携帯端末のユーザアプリケーション開発用であることを特徴とする請求項1又は2に記載のコンピューター実行可能なプログラムThe computer-executable program according to claim 1, wherein the computer-executable program is used for developing a user application for a portable terminal.
JP2011242937A 2011-11-05 2011-11-05 program Expired - Fee Related JP5420622B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2011242937A JP5420622B2 (en) 2011-11-05 2011-11-05 program
CN2012104073178A CN103092599A (en) 2011-11-05 2012-10-17 Software develop kit
US13/669,052 US20130185699A1 (en) 2011-11-05 2012-11-05 Storage Device Including Software Development Kit that Supports Multiple Types of Platforms and Multiple Programming Languages
EP12191283.6A EP2590071A1 (en) 2011-11-05 2012-11-05 Storage device including software development kit that supports multiple types of platforms and multiple programming languages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011242937A JP5420622B2 (en) 2011-11-05 2011-11-05 program

Publications (2)

Publication Number Publication Date
JP2013097745A JP2013097745A (en) 2013-05-20
JP5420622B2 true JP5420622B2 (en) 2014-02-19

Family

ID=48619581

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011242937A Expired - Fee Related JP5420622B2 (en) 2011-11-05 2011-11-05 program

Country Status (1)

Country Link
JP (1) JP5420622B2 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6128971B2 (en) * 2013-06-04 2017-05-17 株式会社ホロンクリエイト Simulation method and simulation method program.
JP5866316B2 (en) * 2013-06-28 2016-02-17 京セラドキュメントソリューションズ株式会社 Application execution time reduction method
US9760415B2 (en) * 2014-05-16 2017-09-12 Microsoft Technology Licensing, Llc Code service for language-independent dispatch
JP6248814B2 (en) * 2014-05-30 2017-12-20 京セラドキュメントソリューションズ株式会社 Image forming apparatus, image forming method, and control program

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5455951A (en) * 1993-07-19 1995-10-03 Taligent, Inc. Method and apparatus for running an object-oriented program on a host computer with a procedural operating system
JP4334214B2 (en) * 2002-01-08 2009-09-30 株式会社リコー Image forming apparatus, application program, and recording medium
JP2004288076A (en) * 2003-03-25 2004-10-14 Hitachi Information Systems Ltd Method of access to native library
US7770158B2 (en) * 2004-10-14 2010-08-03 Bea Systems, Inc. Source code translator

Also Published As

Publication number Publication date
JP2013097745A (en) 2013-05-20

Similar Documents

Publication Publication Date Title
EP2590071A1 (en) Storage device including software development kit that supports multiple types of platforms and multiple programming languages
CN110134378B (en) Application program creating method and device, computer equipment and storage medium
US9026588B2 (en) Storage device including software development kit that includes web service interface and terminal apparatus including the software development kit
US8694988B2 (en) Runtime extensions
TW459202B (en) Transparent loading of resources from read-only memory for an application program
CN101040259A (en) Run time dynamic linking
CN108121594B (en) Process management method and device
US20120102483A1 (en) Handling calls to native code in a managed code environment
US8694956B2 (en) PowerShell cmdlets code generating tool for communicating to the web services
US8539506B2 (en) Dynamic injection of code into running process
CN103064663A (en) Browser plug-in generating, issuing, loading and updating method and system
JP5420622B2 (en) program
JP7048663B2 (en) Code execution methods, devices, rendering devices, storage media, and programs
CN113407255A (en) Component calling method and device and computer readable storage medium
JP5420623B2 (en) program
KR101907660B1 (en) Terminal apparatus having operating system based on web and method for providing service using thereof
KR20110130611A (en) Web platform unit for mobile terminal connectioned web-application program in heterogeneous operating system
JP2021068414A (en) Wrapping method, registration method, device, rendering device, and program
CN111381816A (en) Application program acquisition method, device, equipment and storage medium
CN111158777A (en) Component calling method and device and computer readable storage medium
CN114860401A (en) Heterogeneous cloud desktop scheduling system, method, service system, device and medium
CN115997194A (en) Hybrid binary system supporting stream folding
CN108804236B (en) AIDL file sharing method and system
CN117055880B (en) Document transcoding method, device and storage medium based on containerized deployment
TWI581185B (en) Method and system for installing application

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130321

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20130426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130806

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131004

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131022

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131120

R150 Certificate of patent or registration of utility model

Ref document number: 5420622

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees