JavaScriptは 最初は Sun Microsystems社とNetscape Communications社が開発した、 Webブラウザなどでの利用に適したスクリプト言語です。ブラウザ以外のソフトウェアにも簡易な制御プログラムの記述用言語として移植されており、 Microsoft社のWindowsやMacromedia社の「Flash」などがあります。
各社の実装に微妙な違いがあり、ブラウザによって使えない機能があったり同じプログラムでも挙動が異なったりする問題があったため、ヨーロッパの標準化団体ECMAがソフトウェアメーカーに呼びかけて、通称「ECMAScript」と呼ばれる標準を発行しました。2014年5月現在ECMAScriptの最新バージョンは2009年12月に策定されたECMAScript 5th Editionで6th editionの策定も進みつつあっています。
JavaScriptとECMAScript
以下の表でJavaScriptとECMAScriptのバージョン対応を示します。
| JavaScriptバージョン | 公開日 | ECMAScriptとの対応 |
|---|---|---|
| 1.0 | 1996/03 | - |
| 1.1 | 1996/08 | - |
| 1.2 | 1997/07 | - |
| 1.3 | 1998/10 | edition 1 edition 2 |
| 1.4 | 廃棄 | |
| 1.5 | 2000/11 | edition 3 |
| 1.6 | 2005/11 | |
| 1.7 | 2006/10 | |
| 1.8 | 2008/06 | |
| 1.8.5 | 2010/07 | edition 5 |
| 1.8.6 | - | - |
| 2.0 | - | edition 6 |
主要ソフトウェアのJavaScript対応
以下の表で主要ソフトウェアのバージョン毎のJavaScript対応を示します。
| ソフトウェア | バージョン | 呼称 | 対応するJavaScriptバージョン |
|---|---|---|---|
| Chrome | 33 | JavaScript | 1.7 |
| Firefox | 1.0 | JavaScript | 1.5 |
| 1.5 | 1.6 | ||
| 2.0 | 1.7 | ||
| 3.0 | 1.8 | ||
| 4 | 1.8.5 | ||
| 17 | 1.8.6 | ||
| IE | 6 | JScript5.6 | 1.5 |
| 7 | JScript5.7 | ||
| 8 | JScript5.8 | ||
| 9 | JScript? | 1.8.5 | |
| Adobe Acrobat | 11 | JavaScript | 1.5? |
Javascriptは、ほかの言語と比べると、以下のような特徴を持っております。
完全なオブジェクトベース
JavaScriptでは、数値や文字列、配列、関数などのデータはすべてオブジェクトです。例えばStringオブジェクトは文字列の長さを返すlengthというプロパティを持っていますので、“Hi,world!”.lengthを参照すると、 9がリターン値になります。
JavaScriptのオブジェクトは、単純に言うと「キーと値のペアの集合」です。ですので、これは一般的なプログラミング言語でよくあった連想配列の性質を持っていると言えます。
プロトタイプを使ったオブジェクト指向
Java や C++ といったクラスベースのオブジェクト指向言語はクラスとインスタンスという、2つの異なる実体があるという概念に基づいています。
クラスはあるオブジェクトの集合を特徴付けるすべてのプロパティ(Java ではメソッドとフィールドを、C++ ではメンバをプロパティと見なす)を定義します。
クラスとはそれが表すオブジェクトの集合という抽象的なものです、例えば、Employeeクラスは従業員すべてを含む集合を現します。
一方、インスタンスはクラスを実例にしたものです、例えば、Victoriaさんは、Employeeクラスのインスタンスとなることができます。
JavaScriptのオブジェクト指向は、プロトタイプを利用しています。クラス/インスタンスの区別がなく、単にオブジェクトがあるだけです。但し、原型的なオブジェクトという概念がありまして、このオブジェクトは新しいオブジェクトの初期プロパティを取得する元になるテンプレートとして使用されます。
どのオブジェクトも、作成時にも実行時にもそれ独自のプロパティを指定できます。さらに、どのオブジェクトも別のオブジェクトに対するプロトタイプとして関連付けることができます。
関数型プログラミングの一部サポート
JavaScriptでは関数型言語の一部の機能が備わっています。関数型言語それ自体は難しいかも知れませんが、JavaScriptで関数型を考えるにあたっては、下記三点を抑えられればよいです。
- すべての関数が値を返す
- 関数に副作用がない(参照透過)
- 関数を値として扱える
すべての関数が値を返す
すべての関数は値を返します、明示的な実装がなければ、返却値はundefinedになります。
関数に副作用がない
簡単に考えると、下記2点となります。
- 関数は外側の変数を変更しない
- 参照渡しの引数の値を変更しない
関数が値として扱える
関数が値として扱えるので引数に関数を渡して処理を委譲、もしくは、関数を返り値として処理を委譲する事もできます。
これらの関数を高階関数と言います。
さらに、関数は、すべてクロージャであり、定義された時の環境への参照をもっているため、クロージャの性質を利用して、JavaSript固有のざまざまなカプセル仕組みを実現することができます。
JavaScriptはよく、「少ないソースコードで高機能のロジックを簡潔に実現できる」プログラミング言語として高く評価されていますが、これは、ほとんどこの関数のパワーからできているものと考えれます。
iOS(アイオーエス)は、アップルが開発・提供するOSシーリズです。iPhone、iPod touch、iPad、iPad mini、Apple TVに搭載されています。
元はiPhone OS(アイフォーン オーエス)という名前だったが、2010年6月21日にリリースされたバージョン4.0からは現在のiOSという名称に変更されました。
タイムライン
| 年月 | 出来事 |
|---|---|
| 2007年6月 | iPhone OS公開 |
| 2008年7月 | iPhone OS 2公開、AppStore搭載 ソフトバンクからiPhone OS 2が搭載されたiPhone3Gが発売 |
| 2009年6月 | iPhone OS 3公開 ソフトバンクからiPhone OS 3が搭載されたiPhone3GSが発売、日本で爆発的にiPhoneが流行 |
| 2010年6月 | iOS4公開、マルチタスクサポート |
| 2011年10月 | iOS5公開、Siriサポート、iCloud連携 |
| 2012年9月 | iOS6公開、Apple製の地図アプリ内蔵 |
| 2013年9月 | iOS7公開、スキュモーフィズムからフラットデザインへ変更 |
| 2014年9月 | iOS8公開、ファミリー共有機能 |
| 2015年 | iOS9公開、3D Touch登場 |
| 2016年 | iOS10公開、日本でもApple Payが利用可能に |
| 2017年 | iOS11公開、カメラ機能の強化とアニ文字 |
| 2018年 | iOS12公開 |
Windowsとは、Microsoft社のOSのシリーズ名です。
主な歴史
バージョン1.0は1986年に発売され、1992年に発売されたWindows 3.1がPC/AT互換機用の標準OSとして爆発的に普及しました。
クライアント版のOSとして、その後継のWindows95、Windows98、WindowsMeともMS-DOSを土台にしております。
一方、1993年から発売が開始されたWindows NTシリーズはネットワークサーバ用途を前提に0から開発された、APIレベルでは互換性を持っていながら基本構造がWindows3.x/9xと全く異なるOS系列です。
暫くクライアント版の9x系列とサーバ版のNT系列と共存の時代でしたが、Windows2000からクライアント版のWindowsもNTベースのシステムを採用するようになりました。
この結果、Windows 95/98/Meで採用された9xカーネルベースの製品は現在は存在しません。
2019年現在の最新版は、クライアント版はWindows 10、サーバ版はWindows Server 2019、モバイル版はWindows 10 Mobileです。
タイムライン
下記の表にてWindowsのタイムラインを示します。
| 年代 | 出来事 |
|---|---|
| 1982~1985年 | Windows 1.0 の登場 |
| 1987~1990年 | Windows 2.0 ~ 2.11 - より多いウィンドウ、より速いスピード |
| 1990~1994年 | Windows 3.0 ~ Windows NT - いよいよグラフィックスへ |
| 1995~1998年 | Windows 95 - PC とインターネットの時代の到来 |
| 1998~2000年 | Windows が仕事と遊びのために、Windows 98、Windows 2000、そして Windows Me へと進化 |
| 2001~2005年 | Windows XP - 安定性、使用便利性、高速 |
| 2006~2008年 | Windows Vista - セキュリティでスマートに |
| 2009~2011年 | Windows 7 で Windows タッチを導入 |
| 2012年 | Windows 8 がアプリとタイルを特色に |
| 2013年 | Windows 8.1 が Windows 8 のビジョンを拡大 Windows Server 2012 R2 |
| 2015年 | Windows 10 Windows 10 mobile Windows 10 IoT |
| 2016年 | Windows Server 2016 |
| 2018年 | Windows Server 2019 |
銀行の主な業務は以下のように分類することができます。
- 固有業務
銀行法で定められた銀行の本業で、銀行の3大業務と呼ばれている「預金業務」「融資業務」「為替業務」から構成されます。- 預金業務
たくさんの預金者から預金という形でお金を集める業務です。 - 融資業務
資金を必要としている会社などに貸し付ける業務です。 - 為替業務
給料や年金の受け取りや、電気代・水道代といった公共料金の支払いなど、会社や個人などの依頼に基づいて、お金を送金したり受け取ったりする業務です、決済業務ともいいます。
- 預金業務
- 付随業務
固有業務以外で銀行法で定められている業務です。以下のような業務があります。- 債務保証
- 社債の募集委託
- 手形引受
- 周辺業務
固有業務以外で銀行法で定められいない業務です。以下のような業務があります。- クレジットカード
- 信用保証
- 貸金庫
銀行は以下のように分類されることが多いです。
- 都市銀行
全国規模で銀行サービスを提供する銀行です。多くの場合国際的な取引も行います。全国的なサービス網を持つことは強みです。 - 地方銀行
地方都市に密着する銀行です。地域密着型のサービスを提供することは強みです。 - 信託銀行
通常の銀行業務に加えて「信託業務」を行うことが許されている銀行です。相続や不動産仲介などに強みを持っています。 - 外国銀行
日本国外に本店がある銀行です。 - 新たな形態の銀行
ネットバンク等 代表的なものが「ネットバンク」あとはATM決済を基本とした「セブン銀行」、商業施設との連携を基本とした「イオン銀行」などがあります。
歴史
SAPのERPソリューションは歴史的にはR/1→R/2→R/3→ERP→S/4 HANAの5世代に分けることができます。
R/1→R/2→R/3の「R」はリアルタイムという意味が含まれていて、S/4のSはシンプルの意味です。
| 世代 | リリース日 | 特徴 | その他:SAP社/IT世界の出来事 |
|---|---|---|---|
| R/1 | 1973年 |
|
|
| R/2 | 1979年 |
|
|
| R/3 | 1991年(初版) |
|
|
| 1996年 |
| ||
| 1997年 |
| ||
| 2002年 |
| ||
| 2003年 |
| ||
| ERP | 2004年 |
|
|
| 2006年 |
| ||
| S/4 HANA | 2015年 | 同社のインメモリーデータベースSAP HANAをプラットフォームに採用 | - |
用途
日時を指定フォーマットで文字列に変換する。
構文
@FormatDateTime(strDateTime, strPattern, strTimeZone, strLocale)
パラメータ
strPattern
javaのSimpleDateFormatクラスの日付パターンに従っています。
| 文字 | 説明 | 出力例(記述例) |
|---|---|---|
| G | 紀元 | AD(G) |
| y | 年 | 1996(yyyy); 96(yy) |
| M | 月 | July(MMMM); Jul(MM); 07(MM) |
| w | 年における週 | 27(ww) |
| W | 月における週 | 2(W) |
| D | 年における日 | 189(DDD) |
| d | 月における日 | 10(dd) |
| F | 月における曜日 | 2(F) |
| E | 曜日の名前 | Tuesday(EEEEEEE); Tue(EEE); |
| u | 曜日の番号(1:月曜、・・・7:日曜) | 1(u) |
| a | 午前/午後 | PM(a) |
| H | 一日における時(0 - 23) | 00(HH) |
| k | 一日における時(1 - 24) | 24(kk) |
| K | 午前/午後の時(0 - 11) | 00(KK) |
| h | 午前/午後の時(1 - 12) | 12(hh) |
| m | 分 | 30(mm) |
| s | 秒 | 55(ss) |
| S | ミリ秒 | 978(SSS) |
| z | 一般的なタイムゾーン | Pacific Standard Time; PST; GMT-08:00 |
クリップボードは、データオブジェクト(Pegaではページと呼ばれる)を保持するためのメモリ領域です。
システムページ
システムページはアプリケーションサーバーの起動時に作成され、アプリケーションサーバーがシャットダウンされるまで存続します。このページには、実行時のシステム全体の状態と設定情報が含まれています。
リクエスターページ
リクエスターページは、ユーザー(ゲストまたは認証済み)に関連付けられたデータ、リクエスタページは、リクエスタの存続期間中存在します。
スレッドページ
スレッドページのセットは、pxThreadページ、匿名(名前なし)ページ、および名前付きページで構成されています。
pxThreadページには、スレッドレベルの情報が含まれており、実行時にProcess Commanderに対してユーザーおよび接続固有の状態と構成情報が含まれています。
匿名ページ用のメモリは、Javaの規則に従って自動的に管理されます(JVMがこのメモリへの参照がなくなったことを検出すると、ガベージコレクションの対象としてマークされます)。
名前付きページのメモリは、Process Commanderまたはアプリケーションによって割り当てられ、解放されます。
ユーザーページ
ユーザーページは、Page-Newメソッドなど、いくつかの方法のいずれかを使用してアクティビティが作成する最上位のクリップボードページです。ログアウトすると、(Obj-Saveメソッドで)PegaRULESデータベースに保存されていないユーザーページはメモリから削除されます。
Pegaでのルールタイプをカテゴリ毎に纏めておきました(よく使用されるもののみ)。
画面系
- Control(コントロール)
- Harness(ハーネス)
- Navigation(ナビゲーション)
- Paragraph()
- Portal(ポータル)
- Section(セクション)
データ系
- Date Page(データページ)
- Date Transform(データトランスフォーム)
- Edit Input
- Edit Validate
- FieldValue
- Property
- Property Qualifier
プロセス系
- Case Type(ケースタイプ)
- Correspondence(応答)
- Flow(フロー)
- Flow Action(フローアクション)
- Service Level Agreement()
- Stage(ステージ)
- Validate(検証)
- Work Party(ワークパティー)
外部連携
- Integration-Connect
- Integration-Services
外部リンク
Official Online Reference