JP2013097745A - Software development kit, extended application for image forming apparatus created by using the same, and portable terminal device including the application - Google Patents
Software development kit, extended application for image forming apparatus created by using the same, and portable terminal device including the application Download PDFInfo
- Publication number
- JP2013097745A JP2013097745A JP2011242937A JP2011242937A JP2013097745A JP 2013097745 A JP2013097745 A JP 2013097745A JP 2011242937 A JP2011242937 A JP 2011242937A JP 2011242937 A JP2011242937 A JP 2011242937A JP 2013097745 A JP2013097745 A JP 2013097745A
- Authority
- JP
- Japan
- Prior art keywords
- native
- intermediate language
- application
- software development
- library
- 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.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
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.
ところが従来では、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 the first aspect of the software development kit 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 software development kit 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態様において、携帯端末のユーザアプリケーション開発用である。 According to a third aspect of the software development kit of the present invention, in the first or second aspect, the software development kit is for user application development of 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に係る、複数のクラウドサービスを利用する画像形成システムの概略構成図である。 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
複数のクラウド21〜23はそれぞれ、クラウドサービス31〜33を各種クライアント端末に対し提供可能となっている。
The plurality of
ユーザは、PC12、スマートフォン14及び25などに拡張アプリケーションをインストールすることにより、これらからWebサービスとして、画像形成装置11のコピー、プリント及びファクシミリなどの基本的なサービスやクラウドサービス31〜33並びにこれらサービスを組み合わせたものを実行したり、画像形成装置11の設定情報を取得したり、この設定を変更したりすることが可能となる。
The user installs an extended application on the PC 12, the
図1では、簡単化の為に、複数のPC端末を1つのPC12で代表し、アクセスポイント13に対する複数の携帯端末を1つのスマートフォン14で代表し、基地局24に対する複数の携帯端末を1つのスマートフォン25で代表している。
In FIG. 1, for simplification, a plurality of PC terminals are represented by one
図2は、画像形成装置11の階層構造を示すブロック図である。
FIG. 2 is a block diagram illustrating a hierarchical structure of the
画像形成装置11は、ハードウェアとしてスキャナ40、プリンタ41、FAX42、操作パネル43及びネットワークインターフェイス(NIC)44を備え、プラットフォーム50を介してそれぞれの基本的な入出力制御を行うことが可能となっている。
The
プラットフォーム50は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするオペレーティングシステム(OS)と、OSの下層の各種デバイスドライバと、OS上のJava(登録商標)VMやCLR(Common Language Runtime)などの仮想マシン(クラスライブラリ)と、標準ライブラリとを備えている。
The
制御モジュール51は、拡張クラスライブラリであって、プラットフォーム50のAPI52を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション53は、制御モジュール51のAPI54を介し、ハードウェア40〜44をコピー、プリント及びファクシミリなどのような論理的な機能単位で制御可能となっている。
The
ハードウェア40〜44に対する設定情報は、操作パネル43の操作に応答して、制御モジュール51により設定情報データベース55に格納され、また、格納された設定情報は、操作パネル43の操作に応答して制御モジュール51により、操作パネル43に表示される。
The setting information for the
システム管理部56は、API52又はAPI54を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。
The
PC12又はスマートフォン14若しくは25から画像形成装置11へのサービス要求は、NIC44及びプラットフォーム50を介してWebサービスプロバイダ57に伝えられ、Webサービスプロバイダ57はその要求に応じて、API58を介し基本アプリケーション53を動作させ、API54を介し設定情報データベース55から設定情報を読み出し又は設定情報データベース55の設定を変更し、それらの結果を返信する。
A service request from the PC 12 or the
図3は、スマートフォン14の階層構造を示すブロック図である。
FIG. 3 is a block diagram illustrating a hierarchical structure of the
スマートフォン14は、ハードウェアとしてカメラ60、傾きセンサ61、ブルーツース通信部62、操作パネル63及び通信アダプタ64などを備え、通信アダプタ64にアンテナ65が結合され、プラットフォーム70を介してそれぞれの基本的な入出力制御を行うことが可能となっている。
The
プラットフォーム70は、前記制御を行ったり、電源を管理したり、TCP/IPなどのプロトコルで通信したりするOSと、OSの下層の各種デバイスドライバと、OS上の仮想マシンと、標準ライブラリとを備えている。
The
制御モジュール71は、拡張クラスライブラリであって、プラットフォーム70のAPI72を介してこれらハードウェアのそれぞれを機能単位で制御可能となっている。基本アプリケーション73は、ブラウザ、動画プレーヤ及びアドレス帳などを含み、制御モジュール71のAPI74を介し、ハードウェア60〜64を論理的な機能単位で制御可能となっている。
The
ハードウェア60〜64に対する設定情報は、操作パネル63の操作に応答して、制御モジュール71により設定情報データベース75に格納され、また、格納された設定情報は、操作パネル63の操作に応答して制御モジュール71により、操作パネル63に表示される。
The setting information for the
システム管理部76は、API72又は74を介して、ユーザに対する認証、認可の処理を行ったり、エラー管理を行ったり、省電力管理を行ったりする。
The
Webクライアント77は、操作パネル63の操作に応答してAPI72を介しそのURLにHTTPプロトコルで要求を送信し、返信された内容を操作パネル63に表示させる。
In response to an operation on the
拡張アプリケーション(ユーザアプリケーション)78は、基本アプリケーション73のAPI79を介して、単一又は複数の機能の組み合わせを実行させ、API74を介し設定情報データベース75の設定情報を読み取って操作パネル63に表示させ又は設定情報データベース75の設定情報を変更させる。
The extended application (user application) 78 executes a combination of single or plural functions via the
Webサービスインターフェイス7Aは、Webサービスを内部メソッドのように呼び出すためのサービスプロキシと、送信時に該メソッドの呼び出しをXMLに変換するシリアライザと、受信時にXMLを該メソッドの戻り値に変換するデシリアライザとを備えている。
The
上記拡張アプリケーション78はまた、Webサービスインターフェイス7A及びWebクライアント77を介し画像形成装置11のWebサービスプロバイダ57又はクラウド21〜23のサービス31〜33に対し要求を行い、その結果を、Webクライアント77及びWebサービスインターフェイス7Aを介して受信し、その内容を操作パネル63に表示させる。
The
図4は、PC12のハードウェア構成を示す概略ブロック図である。図5は、PC12をソフトウェア開発装置として利用する場合の概略機能ブロック図である。
FIG. 4 is a schematic block diagram showing the hardware configuration of the
ホストコンピュータPC12では、CPU91がインターフェイス92を介してメモリ93、補助記憶装置94、会話型入出力装置95及びネットワークインターフェイス96に結合されている。図4では、簡単化の為に、複数種のインターフェイスを1つのブロック92で表している。
In the
メモリインターフェイス92は例えば、BIOSが格納されたフラッシュメモリと、主記憶装置として用いられるDRAMとを備えている。補助記憶装置94には、OS、各種デバイスドライバ、ライブラリ及び仮想マシンがプラットフォーム(PF)として格納され、さらにソフトウェア開発キット(SDK)が格納されている。ネットワークインターフェイス96は、イントラネット10に結合されている。
The
このソフトウェア開発装置は、図3中の拡張アプリケーション78の開発を支援するもであり、ネイティブライブラリを備えてスマートフォンでの処理を高速化可能にするとともに、複数のプラットフォームのうちの任意の1つを搭載したスマートフォンの拡張アプリケーション78を開発可能にし、しかも、マルチ言語対応にしてプログラミング言語を選択可能にしている。
This software development device supports the development of the
図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
PC12は、通常のSDKと同様に、テキストエディタ100、デザイナ101、デバッガ102及びビルダ103と、ユーザの操作に応答してこれらのいずれかを呼び出す処理やプロジェクト生成処理等を行うアプリ開発統合管理部104とを備えている。
The
デザイナ101は、操作パネル63の画面設計のアプリケーション開発を支援するためのものであって、対話的ビジュアル設計に基づいてプログラムを自動生成するものである。
The
ビルダ103は、複数の言語、例えばC#、C++、C及びJave(登録商標)のそれぞれに対応したコンパイラを備えている。
The
拡張アプリケーション78のソースコードは、C#又はJava(登録商標)の言語で、C/C++よりも効率よく作成される。このソースコードは、ビルダ103内の対応するコンパイラにより、中間言語に翻訳される。この中間言語は、プラットフォーム内のC#ランタイム又はJavaランタイムの下で、解釈実行され又はJIT(Just In Time)コンパイルされて実行される。C#ランタイム及びJavaランタイムはそれぞれ、CLR(共通言語実行環境)及びJVM(Java仮想マシン)を備えている。
The source code of the
ここで、図5の制御モジュール171は、アプリケーションレベルの通信や画像などを高速処理するクラスライブラリを備えており、これは、図6(A)に示すように、C又はC++のソースコードをコンパイルしたネイティブライブラリ120と、マルチ言語対応にするためC#及びJava(登録商標)のラッパークラスのソースコードをコンパイルしたラッパーAPI121及び122とを備えている。
Here, the
C#用ラッパーAPI121は、拡張アプリケーション78の中間コードの一部が、ネイティブライブラリ120内のC関数又はC++クラスのメソッド(ネイティブサブルーチン)を、C#のクラスのインスタンスのメソッドとして呼び出せるようにするためのクラスライブラリであり、C#の該メソッドのシグネチャをネイティブライブラリ120内のC関数又はC++クラスのメソッド(ネイティブサブルーチン)のシグネチャに変換する型変換メソッドを含んでいる。
The C
拡張アプリケーション78の中間コードの一部は、この型変換メソッド介して、ネイティブサブルーチンを呼び出す。
A part of the intermediate code of the
図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
(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
Java用ラッパークラス122もC#用ラッパーAPI121と同様である。
The
C#用ラッパークラス121及びJavaラッパークラス122は、ラッパークラス生成ツール内の対応する言語のものを用いて生成される。即ち、ラッパークラス生成ツールは、C++/CLRを用いてC#ラッパークラス120を生成するツールと、JNIに基づいてJavaラッパークラス1211を生成するツールとを備えている。
The C
ネイティブライブラリ120は、特定のプラットフォーム70(PL1)のOS又は/及びライブラリ、例えば.NETフレームワークの標準ライブラリを用いて作成されている。ラッパーAPI172は、ネイティブライブラリ120から見てプラットフォーム70をPL1と見なせるようにするためのものである。
The
PC12はまた、図6(B)に示すような制御モジュール171Aも備えている。
The
制御モジュール171Aは、ネイティブライブラリ120と同一機能のネイティブライブラリ120Aと、C#用ラッパーAPI121及びJava(登録商標)用ラッパーAPI122とを備え、これらラッパーAPI121及びAPI122は制御モジュール171のものと共用である。
The
ネイティブライブラリ120Aは、他のプラットフォーム70(PL2)のOS又は/及びライブラリ、例えばLinax(登録商標)のクラスライブラリを用いて作成されている。ラッパーAPI172Aは、ネイティブライブラリ120Aから見てプラットフォーム70をPL2と見なせるようにするためのものである。
The
上記共用を可能にするため、ネイティブライブラリ120A内の各メソッドのシグネチャはネイティブライブラリ120のそれと同一になっている。すなわち、ネイティブライブラリ120と120AのC又はC++ソースコードでの相違部分は、プラットフォームPL1とPL2のいずれのAPIを使用しているか及びその周辺部分であり、他は互いに同一である。
In order to enable the sharing, the signature of each method in the
図8(A)は、制御モジュール171の作成手順を示す概略フローチャートである。
FIG. 8A is a schematic flowchart showing a procedure for creating the
(S10)プラットフォームPL1用のネイティブライブラリ120を作成する。このネイティブライブラリ120は、図8(B)に示すようにラッパーAPI172(クラスライブラリ)内の例えばAPI1〜API3を用いている。
(S10) The
(S11)各言語用のラッパークラスライブラリ、すなわちラッパーAPI121及びラッパーAPI122を作成する。
(S11) A wrapper class library for each language, that is, a
図9(A)は、制御モジュール171Aの作成手順を示す概略フローチャートである。
FIG. 9A is a schematic flowchart showing a procedure for creating the
(S20)プラットフォームPL2用のネイティブライブラリ120Aを作成する。このネイティブライブラリ120Aは、図9(B)に示すように、ラッパーAPI172A内の例えばAPI1A〜API3Aを用いている。
(S20) A
ラッパーAPI121及びAPI122は既に作成され、制御モジュール171のそれらと共用であるので、さらに作成する必要がない。
The
図5に戻って、PC12はさらに、スマートフォン14のハードウェアに対応したシミュレータ105を備えている。入力装置950及び表示装置951は図4中の会話型入出力装置95を構成している。図5中、拡張アプリケーション78及びWebサービスインターフェイス7A中のサービスプロキシ以外は、開発環境として予め備えられている。
Returning to FIG. 5, the
本実施例1によれば、複数種の言語のいずれかの拡張アプリケーション78から、対応するラッパーAPI121又は122を介し、これらに共通のネイティブライブラリ120を利用することができるので、ネイティブライブラリ120と複数種の中間言語のプログラムとの連携を効率よく行うことが可能となるという効果を奏する。
According to the first embodiment, the common
また、複数種の言語のそれぞれのプログラマが、ネイティブライブラリ120を、ネイティブコードであることを意識せずに該複数種言語のそれぞれの中間言語用拡張ライブラリとして用いることができるという効果を奏する。
Further, there is an effect that each programmer of a plurality of languages can use the
さらに、ネイティブライブラリ120を複数種の言語で共通に用いることができるので、複数種の言語のそれぞれが選択的に用いられるスマートフォンアプリケーションの開発及び改良が遅延するのを防止することができるという効果を奏する。
In addition, since the
以上において、本発明の好適な実施例を説明したが、本発明には他にも種々の変形例が含まれ、上記実施例で述べた各構成要素の機能を実現する他の構成を用いたもの、当業者であればこれらの構成又は機能から想到するであろう他の構成も、本発明に含まれる。 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
また、中間言語にコンパイルされるオブジェクト指向言語は、上記以外のものであってもよい。ネイティブライブラリはアセンブリ言語を一部又は全部用いて作成したものであってもよい。 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
13
43
50, 70, 110, PL1,
53, 73, 173
77
92
Claims (5)
該複数のネイティブサブルーチンのそれぞれについて、第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
A software development kit comprising the native library, the first wrapper class, and the second wrapper class as an extension library for an intermediate language.
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 |
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 |
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 |
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 true JP2013097745A (en) | 2013-05-20 |
JP5420622B2 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) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235626A (en) * | 2013-06-04 | 2014-12-15 | 株式会社ホロンクリエイト | Simulation method and program of simulation method |
JP2015011518A (en) * | 2013-06-28 | 2015-01-19 | 京セラドキュメントソリューションズ株式会社 | Method of reducing application execution time |
JP2015228106A (en) * | 2014-05-30 | 2015-12-17 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus, image forming method, and control program |
KR20170003578A (en) * | 2014-05-16 | 2017-01-09 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Code service for language-independent dispatch |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09500466A (en) * | 1993-07-19 | 1997-01-14 | タリジェント インコーポレイテッド | Object-oriented host system |
JP2003271386A (en) * | 2002-01-08 | 2003-09-26 | Ricoh Co Ltd | Method for generating application for image forming apparatus, its program, the image forming apparatus and recording medium for developing application for the image forming apparatus |
JP2004288076A (en) * | 2003-03-25 | 2004-10-14 | Hitachi Information Systems Ltd | Method of access to native library |
US20060101429A1 (en) * | 2004-10-14 | 2006-05-11 | Osborne John A | Source code translator |
-
2011
- 2011-11-05 JP JP2011242937A patent/JP5420622B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09500466A (en) * | 1993-07-19 | 1997-01-14 | タリジェント インコーポレイテッド | Object-oriented host system |
JP2003271386A (en) * | 2002-01-08 | 2003-09-26 | Ricoh Co Ltd | Method for generating application for image forming apparatus, its program, the image forming apparatus and recording medium for developing application for the image forming apparatus |
JP2004288076A (en) * | 2003-03-25 | 2004-10-14 | Hitachi Information Systems Ltd | Method of access to native library |
US20060101429A1 (en) * | 2004-10-14 | 2006-05-11 | Osborne John A | Source code translator |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014235626A (en) * | 2013-06-04 | 2014-12-15 | 株式会社ホロンクリエイト | Simulation method and program of simulation method |
JP2015011518A (en) * | 2013-06-28 | 2015-01-19 | 京セラドキュメントソリューションズ株式会社 | Method of reducing application execution time |
KR20170003578A (en) * | 2014-05-16 | 2017-01-09 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Code service for language-independent dispatch |
KR102354717B1 (en) * | 2014-05-16 | 2022-01-21 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | Code service for language-independent dispatch |
JP2015228106A (en) * | 2014-05-30 | 2015-12-17 | 京セラドキュメントソリューションズ株式会社 | Image forming apparatus, image forming method, and control program |
Also Published As
Publication number | Publication date |
---|---|
JP5420622B2 (en) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2590071A1 (en) | Storage device including software development kit that supports multiple types of platforms and multiple programming languages | |
CN109358936B (en) | Information processing method, device, storage medium, electronic device and system | |
US9026588B2 (en) | Storage device including software development kit that includes web service interface and terminal apparatus including the software development kit | |
TW459202B (en) | Transparent loading of resources from read-only memory for an application program | |
US8694988B2 (en) | Runtime extensions | |
US9798555B2 (en) | Application implementation method and apparatus | |
CN108121594B (en) | Process management method and device | |
CN101040260A (en) | Platform independent dynamic linking | |
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 | |
EP4310667A1 (en) | Ai application deployment method, and related platform, cluster, medium and program product | |
JP7048663B2 (en) | Code execution methods, devices, rendering devices, storage media, and programs | |
JP5420622B2 (en) | program | |
CN111026439B (en) | Application program compatibility method, device, equipment and computer storage medium | |
CN113127361A (en) | Application program development method and device, electronic equipment and storage medium | |
JP5420623B2 (en) | program | |
JP7010562B2 (en) | Wrapping method, registration method, device, rendering device, and program | |
WO2023083071A1 (en) | View interaction method and apparatus, electronic device, and computer readable medium | |
CN111158777A (en) | Component calling method and device and computer readable storage medium | |
CN108804236B (en) | AIDL file sharing method and system | |
CN114860401A (en) | Heterogeneous cloud desktop scheduling system, method, service system, device and medium | |
CN115997194A (en) | Hybrid binary system supporting stream folding | |
KR20140049824A (en) | System for remotely debugging an application programming and controlling method therefor | |
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 |