JP5963957B2 - 開発環境システム、開発環境装置、開発環境提供方法及びプログラム - Google Patents

開発環境システム、開発環境装置、開発環境提供方法及びプログラム Download PDF

Info

Publication number
JP5963957B2
JP5963957B2 JP2015522326A JP2015522326A JP5963957B2 JP 5963957 B2 JP5963957 B2 JP 5963957B2 JP 2015522326 A JP2015522326 A JP 2015522326A JP 2015522326 A JP2015522326 A JP 2015522326A JP 5963957 B2 JP5963957 B2 JP 5963957B2
Authority
JP
Japan
Prior art keywords
development environment
program
user
development
unit
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
JP2015522326A
Other languages
English (en)
Other versions
JPWO2014199464A1 (ja
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5963957B2 publication Critical patent/JP5963957B2/ja
Publication of JPWO2014199464A1 publication Critical patent/JPWO2014199464A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Description

本発明は、開発環境システム、開発環境装置、開発環境提供方法及びプログラムに関する。特に、端末装置からの操作により、開発環境装置においてソフトウェアの開発を行う分散共有型環境開発装置に関する。
近年、ラダープログラムのように、工場等で動作する制御ソフトウェアの大規模化が進んできており、ソフトウェア資産の管理や複数人による共同開発を効率的に行う事が重要となってきた。
これまでは、開発担当者それぞれのPC(Personal・Computer)へ開発環境を導入しソフトウェアを開発してきたため、ソフトウェアは個々のPCで管理されていた。そのため、PC間で同一ソフトウェアのバージョンが異なり、開発環境とソフトウェアのバージョンの対応が取れなくなる等の課題を抱えていた。
このような課題を解決するため、ソフトウェアや開発環境をサーバで集中管理し、ネットワークを経由してサーバに接続して開発を行うような、ネットワーク型開発環境が求められている。
特許文献1では、ネットワークを介して接続されたクライアントからの遠隔操作により、サーバ側でソフトウェア開発を行う遠隔操作型ソフトウェアに関する方法が開示されている。特許文献1によれば、クライアント側では、開発環境クライアント部と入出力制御部が動作し、サーバ側では、入出力制御部、コンポーネントリポジトリ、コンポーネントファクトリ、インスタンス保存処理部、ソースコード自動生成部が動作する。開発者がクライアント側の開発環境クライアント部を操作すると、クライアント側の入出力制御部からサーバ側の入出力制御部へ処理がインターネットを経由して送信される。サーバ側では、クライアント側から送信された処理を受け、コンポーネントの組み合わせやソースコードの自動生成、インスタンス(プログラムの実行環境)の生成等が行われ、インターネットを経由した開発を可能としている。
特開2002−278759号公報
従来技術では、開発環境のバージョンを管理する仕組みがない。そのため、従来技術では、開発環境のバージョンが変わることにより、サーバ側、クライアント側の開発環境を入れ替えることができないという課題がある。
また、従来技術では、サーバで一元管理された情報を複数のユーザで同時に開発する際に、競合の解決、アクセス制御の対策が不十分であるという課題がある。
本発明は、上記のような課題を解決するためになされたものであり、開発環境のバージョンを適切に管理するとともに、同一プログラムに対する複数ユーザによる競合を解決する開発環境システムを提供することを目的とする。
本発明に係る開発環境システムは、
プログラムの開発に用いる作業領域の確保を要求する確保要求であって、ユーザを識別するユーザ情報を含む確保要求と、前記プログラムの開発に用いる開発環境の利用を要求する利用要求であって、前記開発環境を識別する開発環境識別子と前記ユーザを識別する前記ユーザ情報とを含む利用要求とを送信する端末側送信部を備える端末装置と、
前記端末側送信部から、前記確保要求を受信し、受信した前記確保要求に含まれる前記ユーザ情報に対応するユーザ作業領域を処理装置により確保する確保部と、
前記開発環境と、前記開発環境を識別する前記開発環境識別子とを対応付けて記憶装置に記憶する開発環境記憶部と、
前記端末側送信部から前記利用要求を受信し、受信した前記利用要求に含まれる前記開発環境識別子に対応する前記開発環境を前記開発環境記憶部から処理装置により抽出し、抽出した前記開発環境と、前記利用要求に含まれる前記ユーザ情報に対応する前記ユーザ作業領域とを処理装置により利用可能とする開発環境管理部とを備える開発環境装置と
を備えることを特徴とする。
本発明の一の態様によれば、確保部がユーザ情報に対応するユーザ作業領域を開発環境装置に確保し、開発環境管理部が利用要求に含まれる開発環境識別子に対応する開発環境を開発環境記憶部から抽出し、確保したユーザ作業領域と抽出した開発環境とを利用可能とするので、開発環境のバージョンが変わっても適切に対応することができるとともに、複数ユーザによる競合を解決することができる。
実施の形態1に係る開発環境システム500のブロック構成図である。 実施の形態1に係るユーザ情報テーブル113の構成を示す図である。 実施の形態1に係る構成情報テーブル114の構成を示す図である。 実施の形態1に係る開発環境サーバ100、クライアント端末200のハードウェア構成の一例を示す図である。 実施の形態1に係る開発環境システム500による開発環境提供処理及びプログラム開発処理の動作を示すフローチャートである。 実施の形態2に係る開発環境システム500aのブロック構成を示す図である。 実施の形態2に係るアクセス権テーブル130の構成を示す図である。 実施の形態3に係る開発環境システム500bのブロック構成を示す図である。 実施の形態3に係るコード単位アクセス権テーブル132の構成を示す図である。 実施の形態3に係るコード単位アクセス制御部203によるラダープログラム開発における定数変更の例を示す図である。 実施の形態3に係るコード単位アクセス制御部203によるラダープログラム開発におけるコード追加の例を示す図である。 実施の形態4に係る開発環境システム500cのブロック構成を示す図である。 実施の形態4に係る編集履歴テーブル133の構成を示す図である。 実施の形態5に係る開発環境システム500dのブロック構成を示す図である。 実施の形態5に係る編集ロックテーブル134の構成を示す図である。 実施の形態6に係る開発環境システム500eのブロック構成を示す図である。 実施の形態6に係る操作履歴テーブル135の構成を示す図である。 実施の形態7に係る開発環境システム500fのブロック構成を示す図である。 実施の形態8に係る開発環境システム500gのブロック構成を示す図である。
実施の形態1.
図1は、本実施の形態に係る開発環境システム500のブロック構成図である。図1を用いて、本実施の形態に係る開発環境システム500のブロック構成について説明する。
開発環境システム500は、開発環境サーバ100(開発環境装置)、クライアント端末200(端末装置)を備える。開発環境サーバ100は、クライアント端末200に対し、ユーザによるプログラムの開発処理を実行するための開発環境を提供する。
開発環境は、プログラムの開発の際に提供される開発環境サービスとして実行される開発環境サービス部125と、開発環境サービス部125にアクセスする際のユーザインターフェースとして実行される開発環境クライアント部202とから構成される。
図1では、開発環境システム500は、ユーザにより利用されるクライアント端末200を2つ備えているが、クライアント端末200は1つでもよいし、3つ以上備えていてもよい。
開発環境サーバ100と、クライアント端末200とは、ネットワーク400を介して接続されている。クライアント端末200には、制御装置300が接続されている。制御装置300は、ユーザの操作により、開発環境を利用して開発されたプログラムが書き込まれる端末側記憶機器の一例である。
クライアント端末200側の構成を説明する。
クライアント端末200は、クライアント環境管理部201、開発環境クライアント部202を備える。
クライアント環境管理部201は、ユーザから開発環境の利用を要求する利用要求を受け付ける。クライアント環境管理部201は、受け付けた利用要求に基づいて、ユーザにより利用が要求された開発環境を識別する開発環境ID(開発環境識別子)と、ユーザを識別するユーザ情報とを利用要求に含める。クライアント環境管理部201は、開発環境IDとユーザ情報とが含まれた利用要求を開発環境サーバ100へ送信する。クライアント環境管理部201は、端末側送信部の一例である。
また、クライアント環境管理部201は、開発環境の利用下において、ユーザの操作により、開発環境サーバ100側の各種機能を呼び出す。
開発環境クライアント部202は、開発環境のユーザインターフェースに相当する機能を有する。
開発環境クライアント部202は、開発環境サーバ100により利用可能となった開発環境と作業領域126(ユーザ作業領域)とを用いて、ユーザによるプログラムの開発処理を実行するためのユーザインターフェースである。
開発環境クライアント部202は、開発環境サーバ100からプログラムを開発する開発プログラムのユーザインタフェースであるインタフェースプログラムを受信する。開発環境クライアント部202は、受信したインタフェースプログラムをクライアント端末200にインストールする。開発環境クライアント部202は、インストールされたインタフェースプログラムを処理装置により実行することにより、開発環境クライアント部202の機能を実現する。以下、インタフェースプログラムを開発環境クライアント部202と呼ぶ場合もある。開発環境クライアント部202は、利用可能となった開発環境と作業領域126(ユーザ作業領域)とを用いたプログラムの開発要求をユーザから受け付け、受け付けた開発要求を開発環境サーバ100に送信する端末側開発部の一例である。
ユーザがクライアント環境管理部201を通して開発環境を選択すると、選択された開発環境に対応した開発環境クライアント部202(インタフェースプログラム)が開発環境サーバ100側よりダウンロードされ、クライアント端末200側にインストールされる。つまり、開発環境クライアント部202は、開発環境サーバ100による開発環境提供処理が実行されている場合に、クライアント端末200に備えられる。
開発環境クライアント部202は、ユーザから開発要求に応じて、開発環境サーバ100側の機能を呼び出す。開発環境クライアント部202は、クライアント環境管理部201を通して、開発環境サーバ100側の機能を呼び出してもよいし、クライアント環境管理部201を通さないで、開発環境サーバ100側の機能を呼び出してもよい。開発環境に閉じた処理の場合は、開発環境クライアント部202は、開発環境サーバ100側で実行されている開発環境サービス部125を直接呼び出す。
開発環境サーバ100側の構成を説明する。
開発環境サーバ100は、ウェブサーバ部118、ステート制御部117、認証・認可部112、ユーザ管理部111、ユーザ情報テーブル113、サーバ環境管理部116、構成情報管理部115、構成情報テーブル114、作業領域管理部119、プログラム管理部120、プログラムリポジトリ121、開発環境管理部122、開発環境リポジトリ123、開発環境サービス制御部124を備える。
図2は、本実施の形態に係るユーザ情報テーブル113の構成を示す図である。
図2に示すように、ユーザ情報テーブル113は、ユーザID、名前、パスワードを対応付けて格納する。
図3は、本実施の形態に係る構成情報テーブル114の構成を示す図である。
図3に示すように、構成情報テーブル114は、構成管理テーブル1141、プログラム情報テーブル1142、開発環境情報テーブル1143、制御装置情報テーブル1144を備える。
プログラム情報テーブル1142は、プログラムID、プログラム名、プログラムバージョンを対応付けて格納する。
プログラム管理部120は、プログラム名とバージョンに基づき、プログラムリポジトリ121からプログラムを取得する。
開発環境情報テーブル1143は、開発環境ID、開発環境名、バージョンを対応付けて格納する。開発環境管理部122は、開発環境名とバージョンに基づき、開発環境リポジトリ123から開発環境を取得する。
制御装置情報テーブル1144は、制御装置ID、制御装置名、制御装置を特定するシリアルIDを対応付けて格納する。
構成管理テーブル1141は、ユーザID、プログラムID、開発環境ID、制御装置IDを対応付けて格納する。
構成情報管理部115は、構成情報テーブル114からの読み出し処理、構成情報テーブル114への書き込み処理を管理する。
ウェブサーバ部118は、クライアント端末200のクライアント環境管理部201からの処理要求に基づいて処理を実行し、処理の結果をクライアント環境管理部201に送信する。クライアント環境管理部201からの処理要求は、例えば、ログイン処理の要求(認証要求、確保要求)、開発環境提供処理の要求(利用要求)、プログラム開発処理の要求等(開発要求)である。
ステート制御部117は、ステートを持たないHTTPアクセスと開発環境サーバ100側の状態を関連付ける。具体的には、ステート制御部117は、ユーザが認証を受けた時点で、ログインユーザを特定するトークンを発行し、ユーザとトークンとを対応付ける。トークンはユーザを識別するユーザ情報の一例である。クライアント端末200と開発環境サーバ100とは、発行されたトークンを送受信することによりユーザを特定する。このように、ステート制御部117は、ステートを持たないHTTPアクセスと、開発環境サーバ100側の状態とを紐付ける。
ステート制御部117は、トークンの代わりにユーザIDを用いて、ステートを持たないHTTPアクセスと開発環境サーバ100側の状態を関連付けることも可能である。このとき、ユーザIDは、ユーザ情報の一例である。しかし、ユーザIDを用いる場合は成り済ましの危険性があるため、ステート制御部117は、ログイン毎に異なるトークンを発行することによりステートを管理することが好ましい。
認証・認可部112は、ユーザIDとパスワードを受け取り、ユーザ情報テーブル113を参照する。ユーザIDとパスワードは、ユーザの認証を要求する認証要求の一例である。認証・認可部112は、ユーザ情報テーブル113に基づいて、パスワードを照合し、ユーザを認証する。認証・認可部112は、ユーザの認証を実行するユーザ認証部の一例である。
ユーザ管理部111は、認証・認可部112によりユーザが認証され、ユーザがログインすると、サーバ環境管理部116に対してユーザ用の作業領域126の作成を依頼する。作業領域126は、開発環境サーバ100側のファイルシステム上のディレクトリである。また、ユーザ管理部111は、クライアント環境管理部201、サーバ環境管理部116から、ユーザの情報に関する問合せ、ユーザの登録の操作を受け付ける。
サーバ環境管理部116は、ログインしたユーザのユーザIDを作業領域管理部119に出力する。
作業領域管理部119は、ユーザの認証が完了すると、ユーザに対応する作業領域126を記憶装置に確保する。つまり、ユーザの認証要求は、作業領域の確保要求の一例である。
作業領域管理部119は、確保した作業領域126とユーザを示すユーザ情報とを対応付けて管理する。作業領域管理部119は、サーバ環境管理部116から入力したユーザIDに基づき、ユーザIDに一意に対応する名前を持つ作業領域126(ユーザ作業領域)を作成する。
開発環境リポジトリ123は、開発環境ID(開発環境識別子)に対応付けられた開発環境を格納する。開発環境リポジトリ123は、開発環境と、開発環境を一意に識別する開発環境IDとを対応付けて記憶装置に記憶する開発環境記憶部の一例である。
開発環境リポジトリ123は、開発環境として、プログラムを開発する開発環境サービス(開発プログラム)と、開発環境サービスのユーザインターフェースであるユーザインターフェースプログラムとを記憶する。
開発環境管理部122は、ユーザにより選択された開発環境IDに対応する開発環境を開発環境リポジトリ123から取得する。
開発環境管理部122は、クライアント環境管理部201から、ウェブサーバ部118、ステート制御部117、サーバ環境管理部116を介して開発環境の利用要求を受信し、受信した利用要求に含まれる開発環境IDに対応する開発環境を開発環境リポジトリ123から抽出する。開発環境管理部122は、抽出した開発環境をクライアント端末200において利用可能とする。
開発環境管理部122は、開発環境サービス部125を開発環境サーバ100にインストールし、開発環境クライアント部202をクライアント端末200にインストールすることにより、開発環境を用いてユーザ作業領域126においてプログラムの開発をすることを可能とする。開発環境サービス部125は、開発プログラムをインストールし、処理装置により実行することにより開発環境サービス機能を実現する。以下、開発環境サービス部125を開発プログラムと呼ぶ場合もある。開発環境サービス部125は、開発環境サーバ100側で動作する。開発環境クライアント部202は、クライアント端末200側において、開発環境サービス部125のユーザインターフェースとして機能する。
開発環境クライアント部202は、起動されると、例えば、開発環境操作画面をクライアント端末200の表示装置に表示する。ユーザは、開発環境操作画面を介して、プログラムの開発をする。ユーザは、開発環境操作画面を介して、必要な開発環境サービス部125を呼び出し、プログラムの開発をする。
開発環境クライアント部202は、クライアント環境管理部201経由で、開発環境サービス部125を呼び出してもよい。
開発環境サービス制御部124は、開発環境サーバ100側で動作する開発環境サービス部125を制御する。例えば、開発環境サービス制御部124は、クライアント環境管理部201経由で開発環境サービス部125が呼び出された場合の開発環境サービス部125の動作を制御する。
プログラムリポジトリ121は、プログラムID(プログラム識別子)に対応付けられたプログラムを格納する。プログラムリポジトリ121は、プログラムと、プログラムを一意に識別するプログラムIDとを対応付けて記憶装置に記憶するプログラム記憶部の一例である。
プログラム管理部120は、クライアント環境管理部201から、ウェブサーバ部118、ステート制御部117、サーバ環境管理部116を介して、ユーザにより選択されたプログラムIDを含むプログラムの開発要求を受信する。プログラム管理部120は、ユーザにより選択されたプログラムIDに基づき、プログラムリポジトリ121からプログラムを取得する。プログラム管理部120は、取得したプログラムをログイン時に作成されたユーザ作業領域126へ展開する。
図4は、本実施の形態に係る開発環境サーバ100、クライアント端末200のハードウェア構成の一例を示す図である。
図4を用いて、開発環境サーバ100、クライアント端末200のハードウェア構成例について説明する。
開発環境サーバ100、クライアント端末200はコンピュータであり、開発環境サーバ100、クライアント端末200の各要素をプログラムで実現することができる。
開発環境サーバ100、クライアント端末200のハードウェア構成としては、バスに、演算装置901、外部記憶装置902、主記憶装置903、通信装置904、入出力装置905が接続されている。
演算装置901は、プログラムを実行するCPU(Central・Processing・Unit)である。
外部記憶装置902は、例えばROM(Read・Only・Memory)やフラッシュメモリ、ハードディスク装置である。
主記憶装置903は、RAM(Random・Access・Memory)である。
通信装置904は、例えば通信ボード等であり、LAN(Local・Area・Network)等に接続されている。通信装置904は、LANに限らず、IP−VPN(Internet・Protocol・Virtual・Private・Network)、広域LAN、ATM(Asynchronous・Transfer・Mode)ネットワークといったWAN(Wide・Area・Network)、あるいは、インターネットに接続されていても構わない。LAN、WAN、インターネットは、ネットワークの一例である。
入出力装置905は、例えばマウス、キーボード、ディスプレイ装置等である。マウスの代わりに、タッチパネル、タッチパッド、トラックボール、ペンタブレット、あるいは、その他のポインティングデバイスが用いられてもよい。ディスプレイ装置は、LCD(Liquid・Crystal・Display)、CRT(Cathode・Ray・Tube)、あるいは、その他の表示装置でもよい。
プログラムは、通常は外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901に読み込まれ、実行される。
プログラムは、図1に示す「〜部」として説明している機能を実現するプログラムである。
更に、外部記憶装置902にはオペレーティングシステム(OS)も記憶されており、OSの少なくとも一部が主記憶装置903にロードされ、演算装置901はOSを実行しながら、図1に示す「〜部」の機能を実現するプログラムを実行する。
また、アプリケーションプログラムも外部記憶装置902に記憶されており、主記憶装置903にロードされた状態で、順次演算装置901により実行される。
また、「〜テーブル」等の情報も外部記憶装置902に記憶されている。
また、本実施の形態の説明において、「〜の判断」、「〜の判定」、「〜の抽出」、「〜の検知」、「〜の設定」、「〜の登録」、「〜の選択」、「〜の生成」、「〜の入力」、「〜の出力」等として説明している処理の結果を示す情報やデータや信号値や変数値が主記憶装置903にファイルとして記憶されている。
また、開発環境サーバ100、クライアント端末200が受信したデータが主記憶装置903に記憶される。
また、暗号鍵・復号鍵や乱数値やパラメータが、主記憶装置903にファイルとして記憶されてもよい。
なお、図4の構成は、あくまでも開発環境サーバ100、クライアント端末200のハードウェア構成の一例を示すものであり、開発環境サーバ100、クライアント端末200のハードウェア構成は図4に記載の構成に限らず、他の構成であってもよい。
図5は、本実施の形態に係る開発環境システム500による開発環境提供処理及びプログラム開発処理の動作を示すフローチャートである。
図5を用いて、開発環境サーバ100及びクライアント端末200の開発環境提供処理(開発環境提供方法)及びプログラム開発処理(プログラム開発方法)の動作について説明する。
S101において、クライアント環境管理部201は、ユーザによるログインを受け付ける。
S201において、ウェブサーバ部118は、クライアント環境管理部201からのログイン要求を受け付け、ユーザIDとパスワードを認証・認可部112に渡す。認証・認可部112は、ユーザIDとパスワードを受け取り、ユーザ情報テーブル113を参照し、ユーザを認証する。
S202において、ユーザ管理部111は、ユーザの認証が完了すると、サーバ環境管理部116に対してユーザ用の作業領域126の作成を依頼する。作業領域管理部119は、サーバ環境管理部116から入力したユーザIDに基づき、ユーザIDに一意に対応する名前を持つ作業領域126を作成する。
S102において、ユーザがクライアント端末200のクライアント環境管理部201を通じて開発環境を選択する。クライアント環境管理部201は、選択された開発環境の開発環境IDを含む利用要求を開発環境サーバ100に対して送信する。
ユーザが利用する開発環境の種類、開発環境のバージョンを変更したい場合には、ユーザは開発環境を選択し直す。
S203において、開発環境管理部122は、クライアント環境管理部201により送信された利用要求に含まれる開発環境IDを取得する。開発環境管理部122は、取得した開発環境IDに基づき、開発環境リポジトリ123から開発環境を抽出する。開発環境は、開発環境サービス部125と開発環境クライアント部202を含む。
開発環境管理部122は、抽出した開発環境に含まれる開発環境サービス部125を開発環境サーバ100側に配置する。また、開発環境管理部122は、クライアント環境管理部201へ開発環境クライアント部202を送信する。
S103において、クライアント環境管理部201は、開発環境管理部122により送信された開発環境クライアント部202を受信する。クライアント環境管理部201は、受信した開発環境クライアント部202をクライアント端末200にインストールする。
次に、開発環境システム500の開発環境提供処理により利用可能となった開発環境を用いて、プログラムを開発するプログラム開発処理について説明する。
S104において、ユーザがクライアント端末200側のクライアント環境管理部201で開発するプログラムを選択する。クライアント環境管理部201は、選択されたプログラムのプログラムIDを含む開発要求を開発環境サーバ100に対して送信する。
S204において、プログラム管理部120は、クライアント環境管理部201により送信された開発要求を受信する。プログラム管理部120は、受信した開発要求に含まれるプログラムIDに基づき、プログラムリポジトリ121からプログラムを取得する。プログラム管理部120は、取得したプログラムを、ログイン時に作成された作業領域126へ格納する。
S105において、クライアント端末200側へインストールされた開発環境クライアント部202が起動される。ユーザは、起動された開発環境クライアント部202のユーザインターフェース機能を用いて、プログラムの製作・編集を行うことができる。起動した開発環境クライアント部202では、プログラムを開発することが可能な状態となっている。開発環境クライアント部202の起動後に別のプログラムを読み込む事も可能である。
ユーザによるプログラムの編集は、クライアント端末200側の開発環境クライアント部202の中で処理される。
一方、ユーザが、プログラムのコンパイル等の開発環境サーバ100側で処理すべき開発環境サービス処理を要求する操作を行うと、開発環境サーバ100側の開発環境サービス部125が動作し、開発環境サービス処理を実行する。開発環境サービス部125は、コンパイル処理、デバック処理等のサーバ側処理毎にサービス処理ブロックを有する。
S205において、開発環境サービス部125は、ユーザから要求された開発環境サービス処理に該当するサービス処理ブロックを呼び出し、サーバ側で処理を行う。開発環境サービス部125は、サービス処理ブロックの実行結果のみをクライアント端末200側へ返却する。
S106において、開発環境クライアント部202は、ユーザからのプログラムの保存操作を受け付ける。開発環境クライアント部202は、プログラムの保存要求を開発環境サーバ100へ送信する。
S206において、開発環境サービス部125は、作業領域126のプログラムが格納されたファイルに対し、クライアント端末200側での変更内容を反映する。S106でのユーザによる保存操作時に、ユーザがバージョン登録を行う場合は、クライアント環境管理部201は、ユーザからのバージョン登録操作を受け付ける。プログラム管理部120は、作業領域126へのプログラムの保存が完了した後に、作業領域126上のプログラムのファイルをプログラムリポジトリ121に登録する。ファイル単位で登録してもよいし、フォルダ単位で登録してもよい。プログラム管理部120は、初回以降の登録時には、プログラムにおいて変更があった差分のみを登録する。
以上で、開発環境システム500による開発環境提供処理及びプログラム開発処理についての説明を終わる。
以上のように、本実施の形態に係る開発環境システム500によれば、作業領域管理部119は、ユーザIDに対し一意となるディレクトリ名の作業領域126を作成する。このため、開発環境システム500では、複数ユーザが作業領域126に同時にアクセスしても競合することはない。
プログラム管理部120は、プログラムリポジトリ121からユーザ毎の作業領域126へプログラムをコピーし、ユーザは作業領域126にコピーされたプログラムを編集する。このため、同じプログラムを複数のユーザが同時に編集することが可能である。
プログラム管理部120がプログラムの変更をプログラムリポジトリ121に登録する場合、他のユーザによって別の変更が既に登録され、変更部分が競合する場合がある。プログラム管理部120は、ファイル単位で変更状況を管理しているので、変更部分の競合を検出することができる。
例えば、プログラム管理部120は、ファイルの競合を検出した場合には、それをユーザへ通知する。競合の検出がユーザに通知された場合、ユーザは次の3通りの処理が可能である。
1つ目は、ユーザは、競合を無視して変更部分を登録する。2つ目は、ユーザは、他のユーザの変更を保ちながら自身の変更が反映可能であれば、変更を反映して登録する。3つ目は、ユーザは、自身の変更を別のバージョンとして登録する。
ユーザは、上記のような競合を防ぐため、最初にプログラムを取得した場合に、プログラムをロックして、他のユーザが取得できないようにする。あるいは、ユーザは、最初にプログラムを取得した場合、他のユーザの権限がプログラムについて読取専用となるようにし、他のユーザが編集できないようにする。
以上のように、本実施の形態に係る開発環境システム500によれば、開発環境のバージョン管理と、ソフトウェアのバージョンに応じた開発環境の入れ替えと、同一プログラムに対する複数ユーザでの同時開発とを実現し、大規模プログラムの開発効率を向上させる。
実施の形態2.
本実施の形態では、主に、実施の形態1との差異について説明する。
実施の形態1で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図6は、本実施の形態に係る開発環境システム500aのブロック構成を示す図である。
本実施の形態では、実施の形態1に加えて、アクセス権テーブル130、アクセス権管理部131を備える。
図7は、本実施の形態に係るアクセス権テーブル130の構成を示す図である。
図7に示すように、アクセス権テーブル130(アクセス権情報)は、ユーザ情報アクセス権テーブル1301、プログラムアクセス権テーブル1302を備える。アクセス権テーブル130(アクセス権情報)は、アクセス権情報記憶部の一例である。
ユーザ情報アクセス権テーブル1301は、主体のユーザID、対象のユーザID、アクセス権が対応付けられて格納されている。主体のユーザIDは、アクセスする側のユーザのユーザIDである。対象のユーザIDは、アクセスされる側のユーザのユーザIDである。アクセス権は、読取、変更等の権限である。ユーザ情報アクセス権テーブル1301は、ユーザ情報テーブル113に対するアクセス制御を行う際に用いられる。
プログラムアクセス権テーブル1302は、主体のユーザID、対象のプログラムID、アクセス権が対応付けられて格納されている。主体のユーザIDは、アクセスする側のユーザのユーザIDである。対象のプログラムIDは、アクセスされる側のプログラムのプログラムIDである。アクセス権は、読取、変更等の権限である。プログラムアクセス権テーブル1302は、プログラムに対するアクセス制御を行う際に用いられる。
アクセス権管理部131は、クライアント環境管理部201からアクセス権の変更要求を受信する。アクセス権管理部131は、ユーザ情報アクセス権テーブル1301とプログラムアクセス権テーブル1302とに基づいて、アクセス権の変更要求に応じたアクセス権の変更を実行する。
ユーザU001がユーザU002への読取権限を持っている場合、ユーザU001は、ユーザ情報テーブル113によってユーザU002が存在することを知ることができる。一方、ユーザU004がいたとしても、ユーザU001がユーザU004への読取権限を持っていない場合、ユーザ情報テーブル113によってはその存在を知ることはできない。
ユーザは、ユーザ情報テーブル113に他のユーザを登録することができ、登録したユーザに対しては変更権限を持つ。ユーザU001がユーザU002をユーザ情報テーブル113に登録した場合、ユーザU001は、ユーザU002に対して変更権限を持ち、ユーザU002のユーザ情報テーブル113を変更する、ユーザU002を削除することなどができる。
ユーザU001がプログラムP001の変更権限を持っている場合、ユーザU001はプログラムP001の編集をすることができる。ユーザU002がプログラムP001に対して読取権限しか持っていない場合、ユーザU002は、プログラムP001を閲覧する事はできるが編集することはできない。ユーザがプログラムを作成すると、そのユーザは作成したプログラムに対して変更権限を持つ。
例えば、開発環境サーバ100がクライアント端末200からプログラムの開発要求を受信した場合について説明する。アクセス権管理部131は、アクセス権テーブル130のプログラムアクセス権テーブル1302に基づいて、開発要求を送信したユーザのプログラムに対するアクセス権を参照する。アクセス権が変更の場合は、プログラムの開発処理を続行し、プログラム管理部120はプログラムを作業領域126に展開する。アクセス権が読取の場合は、プログラムの読取権限しかないことをクライアント端末200に通知する。あるいは、アクセス権が読取の場合、プログラム管理部120はプログラムを作業領域126に展開し、その後プログラムの変更要求を受信した場合に、プログラムの読取権限しかないことをクライアント端末200に通知する。
以上のように、アクセス権を変更する操作と、アクセス権の操作に対する権限を導入すると、ユーザ情報やプログラムに対するアクセス権を他人に付与することが可能となる。アクセス権の操作に対する権限には、読取、変更等の権限がある。アクセス権の操作権限もユーザ情報アクセス権テーブル1301、プログラムアクセス権テーブル1302へ導入することが可能である。
以上の構成により、ユーザに対してプログラム操作に関する適切な権限を与えて、必要な情報を開示することができ、開発効率が向上する。
実施の形態3.
本実施の形態では、主に、実施の形態2との差異について説明する。
実施の形態1,2で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図8は、本実施の形態に係る開発環境システム500bのブロック構成を示す図である。
本実施の形態では、実施の形態2に加えて、開発環境サーバ100は、コード単位アクセス権テーブル132(コード単位アクセス権情報)を備える。また、実施の形態2に加えて、クライアント端末200の開発環境クライアント部202は、コード単位アクセス制御部203を備える。コード単位アクセス権テーブル132は、コード単位アクセス権記憶部の一例である。
図9は、本実施の形態に係るコード単位アクセス権テーブル132の構成を示す図である。
コード単位アクセス権テーブル132は、主体のユーザID、対象のプログラムID、アクセスするプログラム部位、コード単位アクセス権が対応付けられて格納されている。主体のユーザIDは、アクセスする側のユーザのユーザIDである。対象のプログラムIDは、アクセスされる側のプログラムのプログラムIDである。コード単位アクセス権は、読取不可、変更、追加等の権限である。プログラム部位は、プログラム中の定数、コードの範囲等である。
コード単位アクセス制御部203は、コード単位アクセス権テーブル132に基づいて、ユーザのプログラム部位に対するコード単位アクセス権に応じたプログラムの開発処理のインタフェース制御を実行する。
コード単位アクセス制御部203は、ログインしたユーザのコード単位アクセス権を検出する。コード単位アクセス制御部203は、コード単位アクセス権に応じてエディタを制御し、読取不可権限のある部位を不可視とする、変更権限の無い部位を編集不可とする等のインターフェース制御を実行する。
図10は、本実施の形態に係るコード単位アクセス制御部203によるラダープログラム開発における定数変更の例を示す図である。図11は、本実施の形態に係るコード単位アクセス制御部203によるラダープログラム開発におけるコード追加の例を示す図である。
図9のコード単位アクセス権テーブル132に示すように、ユーザU002はプログラムP001の「定数K10」に対して変更権限がある。また、図7のプログラムアクセス権テーブル1302に示すように、ユーザU002は、プログラムP001に対して読取権限しか持っていない。本実施の形態では、ユーザU002がプログラムP001に対して読取権限しか持っていなくても、「定数K10」の値だけは画面上で変更することが可能である。
図10は、シーケンサの制御を行うプログラミング言語であるラダープログラムにおいて、定数K10を変更する様子を示している。図10では、ユーザU002は、定数K10(ループ回数)のみを変更することができる。
図9のコード単位アクセス権テーブル132に示すように、ユーザU003はプログラムP001に対して、追加権限を持っている。また、図7のプログラムアクセス権テーブル1302に示すように、ユーザU003は、プログラムP001に対して読取権限しか持っていない。この場合、ユーザU003はプログラムP001の既存コードは変更できないが、新規にコードを追加することができる。
図11は、ラダープログラムにおいて、コードを追加する様子を示している。図11のように、ユーザU003は、点線部分の既存コードは変更できないが、下段に新規にコードを追加することはできる。ただし、ユーザU003は、コード単位アクセス権テーブル132において読取不可であるコードを参照したコードを追加することはできない。
コード単位アクセス権に関して、読取不可、変更、追加の権限についての説明を行った。コード単位アクセス権に関して、その他に、読取、変更不可等の権限を設定できるとしてもよい。コード単位アクセス権の定義が矛盾なく簡潔に記述できる権限を用意し、このようなコード単位アクセス権を設定することができる。
コードの変更パターンに関して、定数名(K10)を指定した変更に関して説明した。コードの変更パターンに関して、その他に、定数全般を指定する、正規表現で指定する、定数の上限、下限など設定可能な範囲を制限する等の変更パターンでもよい。
以上のように、本実施の形態に係る開発環境システム500bによれば、プログラムロジックの変更は許可しないが、定数の変更による微調整は許可するような柔軟なアクセス制御が可能である。例えば、プログラムの変更を許可したくないが、エンドユーザや保守要員に対して、定数の変更による調整のみを許可することで、保守性や開発効率を向上する。
実施の形態4.
本実施の形態では、主に、実施の形態3との差異について説明する。
実施の形態1〜3で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図12は、本実施の形態に係る開発環境システム500cのブロック構成を示す図である。図13は、本実施の形態に係る編集履歴テーブル133の構成を示す図である。
図12に示すように、本実施の形態に係る開発環境システム500cでは、実施の形態3の構成に加えて、編集履歴テーブル133(編集履歴情報)を備える。編集履歴テーブル133は、編集履歴情報記憶部の一例である。
図13に示すように、編集履歴テーブル133は、日付、ユーザID、開発環境ID、プログラムID、編集箇所から構成される。日付には、開発環境システム500cを操作した日と時間が格納される。ユーザIDには、操作したユーザのユーザIDが格納される。開発環境IDには、操作の際に使用していた開発環境の開発環境IDが格納される。プログラムIDには、操作の際に使用していたプログラムのプログラムIDが格納される。編集箇所には、編集を行ったプログラムのコードの位置が記録される。
コード単位アクセス制御部203は、ユーザが指定した粒度(関数やブロック単位)でユーザの編集箇所を検出し、編集履歴テーブル133へ記録する。コード単位アクセス制御部203は、編集履歴テーブル133に編集箇所を記録する度に、他のユーザが同じプログラムの同じ編集箇所を編集していないかをチェックする。コード単位アクセス制御部203は、他のユーザが同じプログラムの同じ編集箇所を編集していたと判断すると、編集の中止を編集中のユーザに通知する。
編集箇所としてコードの行番号で指定する方法について説明した。編集箇所としては、その他に、パッケージ、関数等、コードの部位が特定できる他の指定方法も適用することができる。
以上のように、本実施の形態に係る開発環境システム500cによれば、複数ユーザによる同時開発の効率を向上する。
実施の形態5.
本実施の形態では、主に、実施の形態4との差異について説明する。
実施の形態1〜4で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図14は、本実施の形態に係る開発環境システム500dのブロック構成を示す図である。図15は、本実施の形態に係る編集ロックテーブル134の構成を示す図である。
図14に示すように、本実施の形態に係る開発環境システム500dでは、実施の形態4の構成に加えて、編集ロックテーブル134(編集ロック情報)を備える。編集ロックテーブル134は、編集ロック情報記憶部の一例である。
図15に示すように、編集ロックテーブル134は、プログラムID、ロック箇所から構成される。図15に示す編集ロックテーブル134は、プログラムP001の10行目は、ロックされていることを示す。
アクセス権管理部131は、あるユーザがプログラムにおいてロック箇所で指定したコードを編集すると、編集ロックテーブル134に記録する。これにより、他のユーザによるプログラムのロック箇所の編集は、ロックされる。
コード単位アクセス制御部203は、ユーザによりプログラムが編集されると、編集ロック情報記憶部により記憶された編集ロック情報に基づいて、当該プログラムの編集箇所がロック箇所となっているか否かを判定する。ロックされていなければ、コード単位アクセス制御部203は、当該プログラムの編集箇所を編集ロックテーブル134に記録する。ロックされている場合は、コード単位アクセス制御部203は、当該プログラムの編集がロックされていることを当該ユーザに通知する。
ロック箇所としてコードの行番号で指定する方法を説明したが、パッケージや関数等、コードの部位が特定できる他の指定方法も可能である。
以上の構成により、コードレベルでの柔軟なアクセス制御を可能とし、保守性や開発効率が向上する。
実施の形態6.
本実施の形態では、主に、実施の形態1との差異について説明する。
実施の形態1で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図16は、本実施の形態に係る開発環境システム500eのブロック構成を示す図である。図17は、本実施の形態に係る操作履歴テーブル135の構成を示す図である。
図16に示すように、本実施の形態に係る開発環境システム500eでは、実施の形態1の構成に加えて、操作履歴テーブル135(操作履歴情報)を備える。操作履歴テーブル135は、操作履歴情報記憶部の一例である。
図17に示すように、操作履歴テーブル135は、日付、ユーザID、開発環境ID、プログラムID、制御装置ID、操作から構成される。日付には、ユーザが制御装置(端末側記憶機器)に対して操作した操作日時が格納される。ユーザIDには、操作したユーザのユーザIDが格納される。開発環境IDには、操作の際に使用していた開発環境の開発環境IDが格納される。プログラムIDには、操作の対象であるプログラムのプログラムIDが格納される。制御装置IDには、操作を行った対象の制御装置300の制御装置ID(端末側記憶機器識別子)が格納される。操作には、操作により実行された処理の内容が格納される。
制御装置300へのプログラムの書込み処理が行われた場合は、書込み処理が実行された場合の日時、ユーザID、開発環境ID、プログラムID、制御装置ID、操作の内容である書込操作が操作履歴テーブル135に記録される。
操作履歴テーブル135への書込み処理は、ネットワーク400を経由して、クライアント端末200から開発環境サーバ100側へ書き込まれる。このため、履歴の粒度はネットワーク遅延を考慮して書込み処理をするユーザが設定できるようにする。ただし、制御装置300への書込み処理等のような履歴に残すべき処理は、ユーザの設定に関わらず必ず書き込むようにしてもよい。
操作履歴テーブル135は、サーバ環境管理部116を経由して、ユーザより閲覧可能とする。
本実施の形態に係る開発環境システム500eによれば、開発環境、プログラム、制御装置等のトレーサビリティを高め、保守性や開発効率を向上する。
実施の形態7.
本実施の形態では、主に、実施の形態6との差異について説明する。
実施の形態6で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
本実施の形態では、ユーザがプログラムの開発を始める際に、クライアント端末200に制御装置300を接続することにより、復元したい時点のプログラムの開発環境、プログラムの状態を自動的に復元することができる仕組みについて説明する。
図18は、本実施の形態に係る開発環境システム500fのブロック構成を示す図である。図18に示すように、本実施の形態に係る開発環境システム500fでは、実施の形態6の構成に加えて、クライアント端末200に開発環境復元部204を備える。
開発環境復元部204は、制御装置300がクライアント端末200に接続されると、制御装置300を検出する。開発環境復元部204は、制御装置300を検出すると、開発環境サーバ100側のサーバ環境管理部116を呼び出す。開発環境復元部204は、呼び出したサーバ環境管理部116に対して、制御装置300に書き込まれたプログラムの情報を含む復元要求を送信する。
サーバ環境管理部116は、復元要求を受信すると、復元要求に含まれるプログラムの情報に基づいて、操作履歴テーブル135等を検索する。サーバ環境管理部116は、制御装置300に書き込まれた際の開発環境、プログラムの状態等を検出する。サーバ環境管理部116は、検出した開発環境、プログラムの状態等を、クライアント端末200側に復元する。基本的にはプログラムが書き込まれた時点の開発環境等を復元するが、任意の時点の開発環境等を復元することもできる。
以上のように、本実施の形態に係る開発環境システム500fによれば、クライアント端末200に制御装置300を接続するだけで、プログラムの開発時の環境が自動復元できるため、保守性や開発効率が向上する。
実施の形態8.
本実施の形態では、主に、実施の形態1〜7との差異について説明する。
実施の形態1〜7で説明した構成部と同様の機能を有する構成部については、同一の符号を付し、その説明を省略する場合がある。
図19は、本実施の形態に係る開発環境システム500gのブロック構成を示す図である。開発環境システム500gは、実施の形態1〜7の構成を組み合わせた構成である。
本実施の形態では、実施の形態1〜7の構成を組み合わせた構成の開発環境システム500gを示したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
上記実施の形態1〜7で説明したブロック構成についても、これらの実施の形態に限定されるものではない。例えば、「ウェブサーバ部」と「ステート制御部」はひとつの機能ブロックとし、「アクセス権管理部」、「構成情報管理部」、「ユーザ管理部」をひとつの機能ブロックとしてもよい。あるいは、上記実施の形態1〜7で説明した機能ブロックを、他のどのような組み合わせで開発環境サーバ100及びクライアント端末200を構成しても構わない。
100 開発環境サーバ、111 ユーザ管理部、112 認証・認可部、113 ユーザ情報テーブル、114 構成情報テーブル、115 構成情報管理部、116 サーバ環境管理部、117 ステート制御部、118 ウェブサーバ部、119 作業領域管理部、120 プログラム管理部、121 プログラムリポジトリ、122 開発環境管理部、123 開発環境リポジトリ、124 開発環境サービス制御部、125 開発環境サービス部、126 作業領域、130 アクセス権テーブル、131 アクセス権管理部、132 コード単位アクセス権テーブル、133 編集履歴テーブル、134 編集ロックテーブル、135 操作履歴テーブル、200 クライアント端末、201 クライアント環境管理部、202 開発環境クライアント部、203 コード単位アクセス制御部、204 開発環境復元部、300 制御装置、400 ネットワーク、500 開発環境システム、901 演算装置、902 外部記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、1141 構成管理テーブル、1142 プログラム情報テーブル、1143 開発環境情報テーブル、1144 制御装置情報テーブル、1301 ユーザ情報アクセス権テーブル、1302 プログラムアクセス権テーブル。

Claims (13)

  1. プログラムの開発に用いる作業領域の確保を要求する確保要求であって、ユーザを識別するユーザ情報を含む確保要求と、前記プログラムの開発に用いる開発環境の利用を要求する利用要求であって、前記開発環境を識別する開発環境識別子と前記ユーザを識別する前記ユーザ情報とを含む利用要求とを送信する端末側送信部を備える端末装置と、
    前記端末側送信部から、前記確保要求を受信し、受信した前記確保要求に含まれる前記ユーザ情報に対応するユーザ作業領域を処理装置により確保する確保部と、
    前記開発環境と、前記開発環境を識別する前記開発環境識別子とを対応付けて記憶装置に記憶する開発環境記憶部と、
    前記端末側送信部から前記利用要求を受信し、受信した前記利用要求に含まれる前記開発環境識別子に対応する前記開発環境を前記開発環境記憶部から処理装置により抽出し、抽出した前記開発環境と、前記利用要求に含まれる前記ユーザ情報に対応する前記ユーザ作業領域とを処理装置により利用可能とする開発環境管理部と
    前記ユーザにより前記プログラムが編集されるとき、前記ユーザ以外のユーザが前記ユーザが編集しようとする編集箇所を編集しているか否かを判定するための情報である編集履歴情報であって、日時と、前記ユーザを識別する前記ユーザ情報と、前記開発環境を識別する前記開発環境識別子と、前記プログラムを識別するプログラム識別子と、前記日時に前記開発環境を利用して編集された前記プログラムの編集箇所とが対応付けられた編集履歴情報を記憶装置に記憶する編集履歴情報記憶部と
    を備える開発環境装置と
    を備えることを特徴とする開発環境システム。
  2. 前記端末装置は、さらに、
    前記開発環境管理部により利用可能となった前記開発環境と前記ユーザ作業領域とを用いた前記プログラムの開発を要求する開発要求を前記開発環境装置に送信する端末側開発部を備えることを特徴とする請求項1に記載の開発環境システム。
  3. 前記開発環境記憶部は、
    前記開発環境として、プログラムを開発する開発プログラムと、前記開発プログラムのユーザインターフェースであるユーザインターフェースプログラムとを記憶し、
    前記開発環境管理部は、
    前記開発プログラムを前記開発環境装置にインストールするとともに、前記ユーザインターフェースプログラムを前記端末側開発部に送信し、
    前記端末側開発部は、
    前記開発環境管理部から送信された前記ユーザインターフェースプログラムを受信し、受信した前記ユーザインターフェースプログラムを前記端末装置にインストールし、インストールした前記ユーザインターフェースプログラムを処理装置により実行することにより前記開発要求を送信することを特徴とする請求項2に記載の開発環境システム。
  4. 前記開発環境装置は、さらに、
    前記プログラムと、前記プログラムを識別するプログラム識別子とを対応付けて記憶装置に記憶するプログラム記憶部と、
    前記端末側送信部から、前記プログラムの開発を要求する開発要求であって、前記プログラムを識別する前記プログラム識別子を含む開発要求を受信し、受信した前記開発要求に含まれる前記プログラム識別子に対応する前記プログラムを前記プログラム記憶部から抽出し、抽出した前記プログラムを前記ユーザ作業領域に格納するプログラム管理部と
    を備えることを特徴とする請求項3に記載の開発環境システム。
  5. 前記開発環境装置は、さらに、
    前記ユーザ情報と、前記プログラム識別子と、前記ユーザにおける前記プログラム識別子により識別される前記プログラムに対するアクセス権とが対応付けられたアクセス権情報を記憶装置に記憶するアクセス権記憶部を備え、
    前記プログラム管理部は、
    前記アクセス権記憶部に記憶された前記アクセス権情報に基づいて、前記ユーザの前記プログラムに対する前記アクセス権を処理装置により判定し、前記ユーザが前記プログラムに対して変更権限があると判定した場合に、前記プログラムを前記プログラム記憶部から抽出し、前記ユーザ作業領域に格納することを特徴とする請求項4に記載の開発環境システム。
  6. 前記開発環境装置は、さらに、
    前記ユーザ情報と、前記プログラム識別子と、前記プログラム識別子により識別される前記プログラムのプログラム部位と、前記ユーザにおける前記プログラム部位に対するコード単位アクセス権とが対応付けられたコード単位アクセス権情報を記憶装置に記憶するコード単位アクセス権記憶部を備え、
    前記端末側開発部は、
    前記コード単位アクセス権記憶部に記憶された前記コード単位アクセス権情報に基づいて、前記ユーザの前記プログラム部位に対する前記コード単位アクセス権を処理装置により判定し、判定した前記コード単位アクセス権に応じて前記プログラムの開発処理のインタフェース制御を実行するコード単位アクセス制御部を備えることを特徴とする請求項5に記載の開発環境システム。
  7. 前記コード単位アクセス制御部は、
    前記ユーザにより前記プログラムの前記編集箇所が編集されると、前記編集履歴情報記憶部により記憶された前記編集履歴情報に基づいて、前記ユーザ以外のユーザが前記プログラムの前記編集箇所を編集しているか否かを処理装置により判定し、編集していないと判定した場合に、前記日時と、前記ユーザ情報と、前記開発環境識別子と、前記プログラム識別子と、前記編集箇所とを前記編集履歴情報に記録し、編集していると判定した場合に、前記プログラムの編集の中止を前記ユーザに通知する
    ことを特徴とする請求項6に記載の開発環境システム。
  8. 前記開発環境装置は、さらに、
    前記プログラムを識別する前記プログラム識別子と、前記プログラムのロック箇所とが対応付けられた編集ロック情報を記憶装置に記憶する編集ロック情報記憶部を備え、
    前記コード単位アクセス制御部は、
    前記ユーザにより前記プログラムが編集されると、前記編集ロック情報記憶部により記憶された前記編集ロック情報に基づいて、前記プログラムを編集した箇所がロックされているか否かを処理装置により判定し、ロックされていないと判定した場合に、前記プログラム識別子と、前記プログラムを編集した箇所を前記編集ロック情報に記録し、ロックされていると判定した場合に、前記プログラムを編集した箇所はロックされていることを前記ユーザに通知する
    ことを特徴とする請求項7に記載の開発環境システム。
  9. 前記端末装置は、前記プログラムが書き込まれる端末側記憶機器と接続され、
    前記開発環境装置は、さらに、
    前記ユーザが前記端末側記憶機器に対して操作した操作日時と、前記ユーザを識別する前記ユーザ情報と、前記開発環境を識別する前記開発環境識別子と、前記プログラムを識別する前記プログラム識別子と、前記操作日時に操作対象となった前記端末側記憶機器を識別する端末側記憶機器識別子と、前記操作の内容とが対応付けられた操作履歴情報を記憶装置に記憶する操作履歴情報記憶部を備える
    ことを特徴とする請求項8に記載の開発環境システム。
  10. 前記端末装置は、さらに、
    前記プログラムを開発していた時点の前記開発環境と前記プログラムの状態との復元を要求する復元要求であって、前記端末側記憶機器に記憶された前記プログラムの情報を含む復元要求を前記開発環境装置に送信する開発環境復元部を備え、
    前記開発環境装置は、さらに、
    前記開発環境復元部から前記復元要求を受信し、受信した前記復元要求に含まれる前記プログラムの情報に基づいて、前記操作履歴情報記憶部に記憶された前記操作履歴情報を検索し、前記プログラムを開発していた時点の前記開発環境と前記プログラムの状態とを復元する
    ことを特徴とする請求項9に記載の開発環境システム。
  11. プログラムの開発に用いる作業領域の確保を要求する確保要求であって、ユーザを識別するユーザ情報を含む確保要求と、前記プログラムの開発に用いる開発環境の利用を要求する利用要求であって、前記開発環境を識別する開発環境識別子と前記ユーザを識別する前記ユーザ情報とを含む利用要求とを送信する端末装置から、前記確保要求を受信し、受信した前記確保要求に含まれる前記ユーザ情報に対応するユーザ作業領域を確保する確保部と、
    前記開発環境と、前記開発環境を識別する開発環境識別子とを対応付けて記憶装置に記憶する開発環境記憶部と、
    前記端末装置から前記利用要求を受信し、受信した前記利用要求に含まれる前記開発環境識別子に対応する前記開発環境を前記開発環境記憶部から抽出し、抽出した前記開発環境と、前記利用要求に含まれる前記ユーザ情報に対応する前記ユーザ作業領域とを利用可能とする開発環境管理部と
    前記ユーザにより前記プログラムが編集されるとき、前記ユーザ以外のユーザが前記ユーザが編集しようとする編集箇所を編集しているか否かを判定するための情報である編集履歴情報であって、日時と、前記ユーザを識別する前記ユーザ情報と、前記開発環境を識別する前記開発環境識別子と、前記プログラムを識別するプログラム識別子と、前記日時に前記開発環境を利用して編集された前記プログラムの編集箇所とが対応付けられた編集履歴情報を記憶装置に記憶する編集履歴情報記憶部と
    を備えることを特徴とする開発環境装置。
  12. プログラムの開発に用いる作業領域の確保を要求する確保要求であって、ユーザを識別するユーザ情報を含む確保要求と、前記プログラムの開発に用いる開発環境の利用を要求する利用要求であって、前記開発環境を識別する開発環境識別子と前記ユーザを識別する前記ユーザ情報とを含む利用要求とを端末装置から送信し、
    前記端末装置から前記確保要求を受信し、受信した前記確保要求に含まれる前記ユーザ情報に対応するユーザ作業領域を確保し、
    前記端末装置から前記利用要求を受信し、受信した前記利用要求に含まれる前記開発環境識別子に対応する前記開発環境を、前記開発環境と前記開発環境を識別する開発環境識別子とを対応付けて記憶装置に記憶する開発環境記憶部から抽出し、抽出した前記開発環境と、前記利用要求に含まれる前記ユーザ情報に対応する前記ユーザ作業領域とを利用可能とし、
    前記ユーザにより前記プログラムが編集されるとき、前記ユーザ以外のユーザが前記ユーザが編集しようとする編集箇所を編集しているか否かを判定するための情報である編集履歴情報であって、日時と、前記ユーザを識別する前記ユーザ情報と、前記開発環境を識別する前記開発環境識別子と、前記プログラムを識別するプログラム識別子と、前記日時に前記開発環境を利用して編集された前記プログラムの編集箇所とが対応付けられた編集履歴情報を記憶装置に記憶することを特徴とする開発環境提供方法。
  13. プログラムの開発に用いる作業領域の確保を要求する確保要求であって、ユーザを識別するユーザ情報を含む確保要求と、前記プログラムの開発に用いる開発環境の利用を要求する利用要求であって、前記開発環境を識別する開発環境識別子と前記ユーザを識別する前記ユーザ情報とを含む利用要求とを送信する端末装置から、前記確保要求を受信し、受信した前記確保要求に含まれる前記ユーザ情報に対応するユーザ作業領域を確保する確保処理と、
    前記端末装置から前記利用要求を受信し、受信した前記利用要求に含まれる前記開発環境識別子に対応する前記開発環境を、前記開発環境と前記開発環境を識別する前記開発環境識別子とを対応付けて記憶装置に記憶する開発環境記憶部から抽出し、抽出した前記開発環境と、前記利用要求に含まれる前記ユーザ情報に対応する前記ユーザ作業領域とを利用可能とする開発環境処理と
    前記ユーザにより前記プログラムが編集されるとき、前記ユーザ以外のユーザが前記ユーザが編集しようとする編集箇所を編集しているか否かを判定するための情報である編集履歴情報であって、日時と、前記ユーザを識別する前記ユーザ情報と、前記開発環境を識別する前記開発環境識別子と、前記プログラムを識別するプログラム識別子と、前記日時に前記開発環境を利用して編集された前記プログラムの編集箇所とが対応付けられた編集履歴情報を記憶装置に記憶する編集履歴情報記憶処理と
    をコンピュータに実行させることを特徴とするプログラム。
JP2015522326A 2013-06-12 2013-06-12 開発環境システム、開発環境装置、開発環境提供方法及びプログラム Expired - Fee Related JP5963957B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/066222 WO2014199464A1 (ja) 2013-06-12 2013-06-12 開発環境システム、開発環境装置、開発環境提供方法及びプログラム

Publications (2)

Publication Number Publication Date
JP5963957B2 true JP5963957B2 (ja) 2016-08-03
JPWO2014199464A1 JPWO2014199464A1 (ja) 2017-02-23

Family

ID=52021796

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015522326A Expired - Fee Related JP5963957B2 (ja) 2013-06-12 2013-06-12 開発環境システム、開発環境装置、開発環境提供方法及びプログラム

Country Status (7)

Country Link
US (1) US9684505B2 (ja)
JP (1) JP5963957B2 (ja)
KR (1) KR101752082B1 (ja)
CN (1) CN105324750B (ja)
DE (1) DE112013007160T5 (ja)
TW (1) TWI521432B (ja)
WO (1) WO2014199464A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6520241B2 (ja) * 2015-03-11 2019-05-29 富士電機株式会社 制御システム、その管理サーバ装置、支援装置
DE102016110939B3 (de) 2016-06-15 2017-10-05 Phoenix Contact Gmbh & Co. Kg Datenorganisationsverfahren und Entwicklungsumgebungssystem
JP6708083B2 (ja) * 2016-09-30 2020-06-10 横河電機株式会社 アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、及び端末装置
US11023215B2 (en) 2016-12-21 2021-06-01 Aon Global Operations Se, Singapore Branch Methods, systems, and portal for accelerating aspects of data analytics application development and deployment
JP7262916B2 (ja) * 2017-01-24 2023-04-24 キヤノン株式会社 情報処理装置、リモート支援システム、及びこれらの制御方法並びにプログラム
TWI727084B (zh) * 2017-08-21 2021-05-11 中華電信股份有限公司 微服務軟體開發基礎架構下自動化持續整合方法
CN109683898A (zh) * 2017-09-01 2019-04-26 北京猿圈科技有限责任公司 一种基于云编译的编译方法及云编译系统
KR102148110B1 (ko) 2018-02-13 2020-08-25 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 계산 장치 및 방법
US11709672B2 (en) 2018-02-13 2023-07-25 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
US11630666B2 (en) 2018-02-13 2023-04-18 Shanghai Cambricon Information Technology Co., Ltd Computing device and method
EP3629107A1 (de) * 2018-09-28 2020-04-01 Siemens Aktiengesellschaft Verfahren und einrichtung zur wiederherstellung einer entwicklungsumgebung für eine industrielle anwendung
WO2020062392A1 (zh) 2018-09-28 2020-04-02 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN109582291A (zh) * 2018-10-16 2019-04-05 深圳壹账通智能科技有限公司 开发环境控制方法、装置、计算机设备及存储介质
JP7391503B2 (ja) * 2018-11-20 2023-12-05 株式会社東芝 情報処理システムおよび情報処理方法
KR101996840B1 (ko) * 2018-12-07 2019-07-05 아콘소프트 주식회사 마이크로서비스 스토어 운영시스템
CN111383638A (zh) 2018-12-28 2020-07-07 上海寒武纪信息科技有限公司 信号处理装置、信号处理方法及相关产品
CN111831543A (zh) * 2019-04-18 2020-10-27 中科寒武纪科技股份有限公司 一种数据处理方法及相关产品
US11847554B2 (en) 2019-04-18 2023-12-19 Cambricon Technologies Corporation Limited Data processing method and related products
US11544050B1 (en) * 2019-07-18 2023-01-03 Amazon Technologies, Inc. Software patch automation
TWI751706B (zh) * 2020-09-16 2022-01-01 宏碁股份有限公司 自動產生開發解決方案的方法及裝置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05113877A (ja) * 1991-10-22 1993-05-07 Fujitsu Ltd ソフトウエア開発装置および方法
JPH08171487A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd ソフトウェア更新管理方式
JP2010508580A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション シンクライアントソフトウエア開発環境

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0954735A (ja) * 1995-06-07 1997-02-25 Fuji Xerox Co Ltd 情報処理方法及び情報処理装置
JP3611178B2 (ja) * 1998-09-01 2005-01-19 日立ソフトウエアエンジニアリング株式会社 プログラム開発管理支援装置
JP2001034461A (ja) 1999-07-23 2001-02-09 Toshiba Corp ソフトウェア構成管理支援装置、その方法およびソフトウェア構成管理支援プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002278759A (ja) 2001-03-15 2002-09-27 Toshiba Corp 遠隔操作型ソフトウェア開発システム
JP4804653B2 (ja) 2001-06-25 2011-11-02 三菱電機株式会社 処理要求復旧システム
WO2003088119A1 (en) * 2002-04-08 2003-10-23 Topcoder, Inc. System and method for soliciting proposals for software development services
JP2004021608A (ja) 2002-06-17 2004-01-22 Nec Corp 二重化サーバの障害検知方式及びその方法
US20040181662A1 (en) * 2002-09-06 2004-09-16 Shinichi Kanai Information processing system, information processing apparatusand method, and program
JP3918701B2 (ja) * 2002-09-26 2007-05-23 日本電気株式会社 プログラム開発方式および開発センター装置
US7058660B2 (en) * 2002-10-02 2006-06-06 Bank One Corporation System and method for network-based project management
JP2004295270A (ja) * 2003-02-03 2004-10-21 Hitachi Ltd 共用記憶システム
US20050055583A1 (en) * 2003-09-05 2005-03-10 Matsushita Electric Industrial Co., Ltd. Data management apparatus, data management method and program thereof
CN100373333C (zh) * 2004-05-19 2008-03-05 寺泽阳一郎 信息处理设备、软件更新系统、更新软件的方法以及其程序
KR100669604B1 (ko) 2004-12-17 2007-01-15 엘지전자 주식회사 형상 관리 시스템의 소프트웨어 통합 관리 시스템
US7904875B2 (en) * 2005-12-12 2011-03-08 Microsoft Corporation Configuring and allocating software product technical services
US20080059943A1 (en) * 2006-08-30 2008-03-06 Vadym Krevs Method and system for using a library cache in a distributed development environment
WO2008084826A1 (ja) 2007-01-11 2008-07-17 Nec Corporation プロビジョニングシステム、方法、及び、プログラム
US9218166B2 (en) * 2008-02-20 2015-12-22 Embarcadero Technologies, Inc. Development system with improved methodology for creation and reuse of software assets
JP5064337B2 (ja) 2008-09-17 2012-10-31 株式会社日立製作所 ソフトウェア開発管理システム
CN102196006B (zh) 2010-03-17 2013-06-19 中国移动通信集团公司 一种为应用程序提供资源的开放系统
US8966450B2 (en) 2010-06-01 2015-02-24 Red Hat, Inc. Facilitating the execution of web applications in the cloud
US9251033B2 (en) 2011-07-07 2016-02-02 Vce Company, Llc Automatic monitoring and just-in-time resource provisioning system
JP5773787B2 (ja) * 2011-07-21 2015-09-02 キヤノン株式会社 情報処理装置およびその制御方法およびプログラム
KR101186842B1 (ko) 2011-09-19 2012-10-02 김혜령 원격 프로그램 개발 서버 프로그램이 기록된 기록매체, 원격 프로그램 개발 중개 시스템, 원격 프로그램 개발 서버 구축 방법 및 원격 프로그램 개발 중개 방법
TWM430665U (en) 2011-12-08 2012-06-01 Sung-Jen Hsiang Cloud system for flexible applications
CN102523308B (zh) 2011-12-31 2015-01-14 北京新媒传信科技有限公司 一种应用开发方法和运行该方法所开发应用的平台系统
CN102427480B (zh) 2011-12-31 2015-01-14 北京新媒传信科技有限公司 一种多应用服务平台系统中的应用访问方法
US20150135160A1 (en) * 2012-05-01 2015-05-14 Simon Gauvin System and method for providing an application development and distribution social platform
US8776021B1 (en) * 2012-06-07 2014-07-08 Amazon Technologies, Inc. Application experiment system
US10289289B2 (en) * 2013-12-04 2019-05-14 Autodesk, Inc. Techniques for authoring view points, view paths, and view surfaces for 3D models

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05113877A (ja) * 1991-10-22 1993-05-07 Fujitsu Ltd ソフトウエア開発装置および方法
JPH08171487A (ja) * 1994-12-19 1996-07-02 Fujitsu Ltd ソフトウェア更新管理方式
JP2010508580A (ja) * 2006-10-27 2010-03-18 マイクロソフト コーポレーション シンクライアントソフトウエア開発環境

Also Published As

Publication number Publication date
US9684505B2 (en) 2017-06-20
CN105324750B (zh) 2018-11-16
JPWO2014199464A1 (ja) 2017-02-23
TW201447755A (zh) 2014-12-16
KR20160006764A (ko) 2016-01-19
WO2014199464A1 (ja) 2014-12-18
TWI521432B (zh) 2016-02-11
CN105324750A (zh) 2016-02-10
KR101752082B1 (ko) 2017-07-11
US20160070565A1 (en) 2016-03-10
DE112013007160T5 (de) 2016-03-03

Similar Documents

Publication Publication Date Title
JP5963957B2 (ja) 開発環境システム、開発環境装置、開発環境提供方法及びプログラム
JP5256097B2 (ja) ログイン処理装置、ログイン処理方法及びプログラム
JP6291826B2 (ja) 情報処理システム及びライセンス管理方法
US7197608B2 (en) Software management method for a storage system, and storage system
JP6661395B2 (ja) ライセンス管理サーバ、ライセンス管理システム、プログラム
JP2008511931A (ja) 遠隔計算システムのためのローカルに動作されるデスクトップ環境
JP2017033339A (ja) サービス提供システム、情報処理装置、プログラム及びサービス利用情報作成方法
US10291620B2 (en) Information processing apparatus, terminal apparatus, program, and information processing system for collaborative use of authentication information between shared services
JP2015172824A (ja) 情報処理システム及び認証情報提供方法
JP6372311B2 (ja) 情報処理システム、電子機器、サービス認可方法及びプログラム
JP2015028704A (ja) サービス提供システム、サービス提供方法及びプログラム
JP5707760B2 (ja) 情報処理システム、情報処理装置、情報処理方法、情報処理プログラム、及びそのプログラムを記録した記録媒体
US10200455B2 (en) Information processing system and method
JP2008257340A (ja) 情報処理装置、情報処理方法、記憶媒体及びプログラム
JP6927282B2 (ja) 情報処理装置、端末装置、プログラム及び情報処理システム
JP6477073B2 (ja) ライセンス管理システム、プログラム及びライセンス管理方法
JP6241111B2 (ja) サービス提供システム、情報処理システム、利用制限方法及びプログラム
JP2005327090A (ja) 電子機器及び情報処理装置
JP3756457B2 (ja) アクセス制御付ディレクトリ機能装置及びプログラム
JP6226001B2 (ja) 利用制御システム及び利用制御方法
JP2007286899A (ja) アプリケーション実行システムおよびサーバ
JP6773173B2 (ja) 情報処理システム、情報処理装置、アカウント登録方法及びプログラム
JP2002204327A (ja) 複合機システムおよび該システムに使用される複合機
JP7159136B2 (ja) システム実行支援方法および装置
JP6299101B2 (ja) サービス提供システム、サービス提供方法及びプログラム

Legal Events

Date Code Title Description
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: 20160531

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160628

R150 Certificate of patent or registration of utility model

Ref document number: 5963957

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees