峯文がトピックを作成しました

  • AsJava 0 Votes 445 閲覧数


    概要

    SLD(System Landscape Directory,システムランドスケープディレクトリ) は、システム間連携を行うシステムの情報を一元管理するためのもので、システムの技術情報(サーバ名など)やソフトウェアカタログ情報(利用ソフトウェア製品、リリースなど)を保持しています。

    SLD はシステムランドスケープにインストールされているすべてのシステムコンポーネントの集中情報プロバイダとして機能します。

    SLDサーバはすべての SAP Web Application Server Java のインストールにおいてインストールされますが、機能させる場合には明示的に有効化される必要があります。

    実現形態

    SLD は、HTTPでアクセスできるサーバアプリケーションであり、AsJava上で動作します。

    連携

    SLDに登録されているシステムは、デフォルトで12時間毎に自システムの情報をSLDに送信するようにしています。

    機能

    以下の機能をもっております。

    サーバ情報管理ソフトウェア情報管理名前予約管理ツール

    SLDの管理機能をアクセスするには、以下の方法があります。

    管理インタフェース:
    URL: http://host:port/sldWebDynroアプリケーション
    http://host:port/webdynpro/dispatcher/sap.com/tc~sld~wd~main/Main

    ホーム

    URL:http://host:port/sld

    製品とソフトウェアコンポーネント


    システムとサーバ


  • AsJava 0 Votes 223 閲覧数


    サービス提供側とサービス消費側を分けてそれぞれ説明します。

    サービス提供側

    サービスやサービスグループを定義します。

    システム

    分類

    サービス

    サービスグループ

    サービス消費側システムプロバイダ定義

    サービスを提供するプロバイダーシステムのサーバ情報を定義します。
































































  • ネットワークとインターネット 0 Votes 692 閲覧数


    このトピックでは、標準技術としてのWebサービスの基礎知識を取り上げて説明します。

    Webサービスとは

    Webサービスには広義と狭義の二つがあります。

    広義の「Webサービス」は、WEB通信を利用した、プログラミングでアクセス可能なサービスのすべてが含められます。
    一方、狭義の「Webサービス」は、SOAP(Simple Object Access Protocol)やWSDL(Web Services Description Language)ベースのWebサービスに限定されます。SOAP/WSDLサービスと呼ぶことができます。
    Webサービスという名前も、このSOAP/WSDLサービスから初めて使われたものと考えられます。

    WEBサービス(広義)を実現する基礎技術としては、古典的な技術を代表するこのSOAPとWSDLのほかに,昨今急速に普及してきたREST(Representational State Transfer)があります。RESTベースのWEBサービスはRESTfulサービスと呼ばれております。
    http://www.ibm.com/developerworks/jp/webservices/library/ws-restful/

    高機能で複雑のSOAP/WSDLサービスと比べると、RESTfulサービスはシンプルで簡単に利用可能であるため、現在、後者のほうがWeb全体で広く受け入れられるようになっています。
    とはいえ、歴史のこともあるため、とくに企業向けの大規模なシステムは、まだまだSOAP/WSDLサービス技術で構築されているほうが多いと考えられます。

    このトピックやカテゴリは、狭義の「Webサービス」のみを対象としているため、特別な説明がない限り、文書に記述されている「Webサービス」という用語はすべて狭義の「Webサービス」を指しております。

    Webサービスの特徴

    Webサービスは、主に以下のような特徴があります。

    プラットフォーム独立 
    HTTP、SMTP、XML等の標準仕様を積極的に活用しているため、Webサービスの実装は特定のプラットフォームや言語に依存しません。 
    異なるプラットフォームで実装されているWebサービスは標準仕様に従って簡単に相互接続ができます。実行時に動的に連携
    WEBサービスは実行時に動的に連結されます。よってサービス指向アーキテクチャ(SOA)に従えば柔軟性、敏捷性(agile)とも優れる疎結合分散アプリケーション環境が簡易に実現できます。WEBサービス連携の流れ

    WEBサービス連携の流れは以次の三つの部分からなります。

    登録
    サービスを提供する側は、サービスの接続情報をどこかに登録しておきます。接続情報の検索 
    サービスを使用する側は、サービスを利用するための接続情報をどこかで検索します。開発時と実行時の二つの場面があります。接続
    サービスを使用する側は、サービス接続情報を利用して、サービスを提供する側に接続して、サービスを利用します。WEBサービスの関連仕様

    WEBサービスの関連仕様は以下のものがあります。

    SOAP
    メッセージフォーマットに関する仕様WSDL
    サービス界面仕様の記述フォーマットに関する仕様UDDI
    サービス連携をサポートするディレクトリに関する仕様および実装WSIL
    UDDI の代替であり、また UDDI に対する補足でもあるサービス・ディスカバリー機構SOAP

    SOAP(Simple Object Access Protocol)とは、非集中、分散環境における情報交換のための軽量のプロトコルです。SOAPのメッセージはXMLを用いて符号化します。
    SOAPは次の3つの部分から成ります。

    SOAPエンベロープ構成要素
    何がメッセージの中にあるのか、誰がそれを処理すべきなのか、それは選択可能か必須かどちらなのかといったことを表現するための全体の枠組みを定義しています。SOAP符号化(encoding)規則
    アプリケーションが定義したデータ型のインスタンスをやりとりするための直列化(serialization)のメカニズムを定義しています。SOAP RPC表現
    RPCとそのレスポンスを表現するための規約を定義しています。WSDL

    WSDL(Web Services Description Language)とは、Webサービスを記述するための、XMLをベースとした言語仕様です
    WSDLサービス定義仕様で用いられる概念は以下のものがあります。

    サービス(service)ポート(port)バインディング(binding)ポートタイプ(portType)操作(operation)メッセージ(mssage)タイプ(types)UDDI

    UDDI(Universal Description, Discovery and Integration)とは、Webサービス用の検索システムのことです。
    Webサービス公開者はUDDIレジストリにWebサービスの情報(どういうサービスか、どこにあるのか、誰のものか、など)を登録し、Webサービス利用者はUDDIレジストリに対して検索をし目的に合致したWebサービスを探し出すという仕組みです。

    インターネット上で一般に公開するパブリックUDDIと、企業のイントラネット内などの閉じたネットワーク上で使用するプライベートUDDIに分類されます。

    WSIL

    WSIL(Web Service Inspection Language)とは、大掛かりなUDDI検索と手軽なWSDL交換の中間で、簡便で使いやすく、かつ、拡張可能なネットワーク上でのサービス検索の手段を提供するものです。

    WSILは、直接、Webサービスを記述するのではなく、Webサービスを記述したWSDLへの参照や、Webサービスを登録したUDDIへの参照を記述したXMLドキュメントです。いわば、WSDLやUDDIを経由すれば、利用可能なWebサービスの一覧表を提供しようという試みです。


  • J2EE 0 Votes 396 閲覧数


    このトピックでは、JavaEEの概要を取り上げて説明します。

    JavaEEとは

    Java EEとは、Java言語の機能セットの一つで、サーバや企業の情報システム、大規模システムなど向けの機能をまとめたもの。J2EEはバージョン5.0までの旧称で、以降はJava EEと呼ばれる。

    JavaSEJavaMEJavaEE

    Java EEにはJava SEの機能がすべて含まれるほか、サーバなどで利用されるEJB(Enterprise JavaBeans)やサーブレット(Java Servlet)、JSP(Java Server Pages)、JSF(Java Server Faces)、JNDI(Java Naming and Directory Interface)、JTA(Java Transaction API)など数多くの機能が規定されている。

    JavaEEの歴史

    JavaEEが初めて登場したのは1999年のことです。当時は「Java 2 Platform, Enterprise Edition(J2EE)」と呼ばれており、最初のバージョンは1.2でした。

    JavaEEの最新バージョンは、2013年6月にリリースされたJava EE 7です。また現在、世界中の企業システムで広く利用されているのは、2009年12月にリリースされたJavaEE6です。

    主な製品

    JavaEE仕様を準拠したサーバ製品はおもに以下のようなものがあります。

    No.製品最新バージョン(2015)ベンダー1Tomcat-オープンソース2Jetty-オープンソース3Weblogic-Oracle4JBoss-オープンソース5Websphere-IBMJavaEEアプリケーション

    JavaEEアプリケーションは,複数の,EJB-JAR,Webアプリケーション,ライブラリJARと,一つのDD(application.xml)で構成されます。
    JavaEEサーバで実行できるJavaEEアプリケーションは,アーカイブ形式のJavaEEアプリケーション,および展開ディレクトリ形式のJavaEEアプリケーションです。

    EJB-JAR
    EJB-JARは,EJB-JARファイル形式でパッケージ化されています。複数のEnterprise Beanと一つのDD(ejb-jar.xml)で構成されます。なお,Enterprise Beanでアノテーションを使用している場合は,DD(ejb-jar.xml)は不要です。Webアプリケーション
    Webアプリケーションは,WARファイル形式でパッケージ化されています。複数のサーブレット,JSP,HTMLと一つのDD(web.xml)で構成されます。ライブラリJAR
    ライブラリJARは,JARファイル形式でパッケージ化されたものです。複数の共通ライブラリから構成されています。共通ライブラリはJ2EEアプリケーション中のJ2EEコンポーネントが共通で使用できるライブラリです。JavaEEアプリケーションのDD(application.xml)の<module>タグ以下に定義されているファイル以外で,拡張子が小文字(.jar)のJARファイルがライブラリJARとみなされます。

  • J2EE 0 Votes 143 閲覧数


    JavaEE6

    下記のリンクをご参考ください。

    http://codezine.jp/article/detail/5698

    JavaEE5

    JavaEE5は以下の仕様から構成されます。

    Web Services TechnologiesImplementing Enterprise Web Services (JSR 109)Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)Java Architecture for XML Binding (JAXB) 2.0 (JSR 222)SOAP with Attachments API for Java (SAAJ) (JSR 67)Streaming API for XML (JSR 173)Web Service Metadata for the Java Platform (JSR 181)Web Application TechnologiesJava Servlet 2.5 (JSR 154)JavaServer Faces 1.2 (JSR 252)JavaServer Pages 2.1 (JSR 245)JavaServer Pages Standard Tag Library (JSR 52)Enterprise Application TechnologiesEnterprise JavaBeans 3.0 (JSR 220)J2EE Connector Architecture 1.5 (JSR 112)Common Annotations for the Java Platform (JSR 250)Java Message Service API (JSR 914)Java Persistence API (JSR 220)Java Transaction API (JTA) (JSR 907)JavaBeans Activation Framework (JAF) 1.1 (JSR 925)JavaMail (JSR 919)Management and Security TechnologiesJ2EE Application Deployment (JSR 88)J2EE Management (JSR 77)Java Authorization Contract for Containers (JSR 115)J2EE 1.4

    J2EE 1.4は以下の仕様から構成されます。

    J2EE Connector Specification 1.5J2EE Deployment API Specification 1.1J2EE Management Specification 1.0Enterprise JavaBeans Specification 2.1Enterprise JavaBeans to CORBA Mapping 1.1Java API for XML Processing Specification 1.2Java API for XML Registries Specification 1.0Java API for XML-based RPC Specification 1.1Java Authorization Contract for Containers 1.0Java IDL APIJava Naming and Directory Interface Specification 1.2.1Java Message Service Specification 1.1Java Servlet Specification 2.4Java Transaction API Specification 1.0.1BJava Transaction Service Specification 1.0JDBC Specifications, 3.0, 2.1, and Optional Package API (2.0)JavaBeans Activation Framework Specification 1.0.2JavaMail API Specification 1.3JavaServer Pages Specification 2.0RMI over IIOPSOAP with Attachments API for Java Specification 1.2J2EE 1.3

    J2EE 1.3は以下の仕様から構成されます。

    JDBC Extension 2.0Java Naming and Directory Interface Specification (JNDI) 1.2Java API for XML Processing (JAXP) 1.1Java Servlet 2.3JavaServer Pages (JSP) 1.2JavaServer Pages Standard Tag Library (JSTL) 1.0Enterprise JavaBeans (EJB) 2.0J2EE Connector Architecture 1.0Java Message Service API (JMS) 1.0Java Transaction API (JTA) 1.0JavaMail API 1.2JavaBeans Activation Framework (JAF) 1.0Java Authentication and Authorization Service (JAAS) 1.0

     


  • JavaVM 0 Votes 615 閲覧数


    このトピックでは、JavaVMのメモリ管理の仕組を取り上げて説明します。

    メモリ領域の構成


    JavaVMのメモリ構成はかきにようになります。

    OS固有領域Cヒープ領域
    JavaVM自身が使用する領域です。JNIで呼び出されたネイティブライブラリでも使用されます。スタック領域
    Javaスレッド毎に保持するスタックの領域です。JavaVM固有領域Permanent領域
    ロードされたclassなどの情報が格納される領域です。Javaヒープ
    JavaVM上で起動するJavaプログラムのリソースを管理する領域。New領域New領域
    新規オブジェクトと閾値(-XX:MaxTenuringThreshold)未満のオブジェクトが配置されます、Young領域とも呼ばれるます。Eden領域
    新規のオブジェクトが配置されます。From領域
    CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされます。To領域
    CopyGC(ScavengeGC、マイナーGC)が実行された際に、使用中のオブジェクトはここへコピーされます。Old領域
    New領域で閾値(-XX:MaxTenuringThreshold)を超えたオブジェクトが配置されます、Tenured領域とも呼ばれるます。GC種類

    Javaでは、「Scavenge GC」と「Full GC」という2種類のガベージ・コレクションが実行されます。Scavenge GCはNEW領域のみを対象とした短時間で終了するガベージ・コレクションであり、頻繁に実施されます。一方、Full GCはNEWとOLD両方の領域を対象とした大がかりなガベージ・コレクションであり、比較的低い頻度で実施されます。

    タイミング

    以下のタイミングでGCが実施されます。

    ヒープメモリ中に新規オブジェクトを作成するために必要な空き領域が足りなくなったときプログラム中でSystem.gc()が実行されたときJavaVMで実行する処理がなくなってアイドル状態になったとき

    下記オプションで定期的なGCを設定することができます。

    -Dsun.rmi.dgc.server.gcInterval
    JDK6デフォルト3600000(1時間))-Dsun.rmi.dgc.client.gcInterval
    JDK6デフォルト3600000(1時間))OutOfMemoryError

    メモリを割り当てる必要があるが、割り当てられるメモリが存在しないとき、OutOfMemoryErrorが発生します
    例として、OutOfMemoryErrorが発生するケースを取り上げます。

    New領域が溢れた場合Old領域が溢れた場合参照されつづけるオブジェクトが大量に存在する場合に溢れる。Cヒープが溢れた場合
    Javaのスレッドが大量に作成された場合に溢れます、Cヒープが溢れてOutOfMemorryErrorが発生した場合、スタックトレースの先頭が「Native Method」です。
    スレッド数はOSのパラメタで設定されており、それが大きな値で設定されている場合に発生します。


  • ソフトウェア開発 0 Votes 420 閲覧数


    ソフトウェアの品質特性は大きく6つに分類され、それぞれの英語の頭文字をとってFRUEMP特性とも呼ばれています。

    機能性

    機能性とは、必要な機能を満たしているかということです

    信頼性信頼性とは、指定された条件の下で正しく動くかということです。使用性使用性とは、使いやすさを表します。効率性率性とは、スピードとサイズに関する性能です。保守性保守性とは、修正のしやすさです。移植性移植性とは、実行する環境の移行のしやすさを表します。

  • テクニカル 0 Votes 1297 閲覧数


    このトピックでは、Pegaでの文字列処理の方法を取り上げて説明します。

    文字列型(Pega type: Text)は、Pega内部でJavaのString型を使用し表現されます。

    チェック処理

    Pega標準で用意された関数を一部抜粋します。

    @isDouble(inputString)
    文字列が有効な倍精度数を表しているかどうかをチェックします。@isInteger(inputString)
    文字列が有効な整数を表しているかどうかをチェックします。@isLiteral(inputString)
    入力がリテラルかプロパティ参照かをチェックします。検索処理

    Pega標準で用意された関数を一部抜粋します。

    @indexOf(strStringToSearch,strStringToSearchFor)
    strStringToSearchForにstrStringToSearchが最初に現れたインデックスを返します。値が見つからない場合は -1 を返します。@substring(stringToUse,startIndex,endIndex)

    文字列のインデックスは0から数えられます。変換処理

    Pega標準で用意された関数を一部抜粋します。

    @toDate(inputString)
    文字列を日付型に変換します。@toDateTime(inputString)
    文字列を日時型に変換します。@toDecimal(inputString)
    文字列を数値型に変換します。@toInt(inputString)
    文字列を整数型に変換します。@toLowerCase(inputString)
    文字列をすべt小文字に変換します。@toUpperCase(inputString)
    文字列をすべて大文字に変換します。編集処理

    Pega標準で用意された関数を一部抜粋します。

    @replaceAll(aBaseString,aOriginalChars,aNewChars)
    文字列aBaseStringのサブ文字列aOriginalCharsをaNewCharsに置き換えて返します。@trim(str)
    strの頭と後ろのスペースを削除して返します。補足

    テキスト関連のPega標準関数はおもに「String」というライブラリで纏めて公開されているため、Designer StudioのRecordsブラウザで確認できます。


  • テクニカル 0 Votes 831 閲覧数


    このトピックでは、Pegaにおける日付の処理方法を纏めて説明します。

    Pegaでは内部的にBigDecimal(com.ibm.icu.math.BigDecimal)型を使用して、日付の値(1970/01/01からの日数)を保持しています。

    なお、YYYYMMDD形式の文字列として日付型プロパティの値を読み書きできます。

    但し、から文字列を設定する場合、プロパティの値が自動的に1970101に設定されるため、「空白」の表示にするには、設定処理自体をしないようにしましょう。

    計算処理

    (日付の加減算を行う)

    指定された日付より何日前又は、何日後の日付を計算するには、addDays()関数を使用します。

    構文
    @(Pega-RULES: BusinessCalendar).addDays(startDate, daysToAdd, useBusinessCalendar, calendarName)例
    例1: @(Pega-RULES: BusinessCalendar).addDays("20190808",30,false,Default)   ⇒ 20190907
    例2: @(Pega-RULES: BusinessCalendar).addDays("20190808",-9,false,Default)   ⇒ 20190730  

    (日数を求める)

    二つの日付の間の日数を計算するには、differenceBetweenDays()関数を使用します。

    構文
    @differenceBetweenDays(firstDate, secondDate, useBusinessCalendar, calendarName)例
    @differenceBetweenDays("20190808","20190701",false,DEFAULT)  ⇒ 38 

    (月の末日を取得する)

    Calendar cal = Calendar.getInstance(); DateTimeUtils dtu = ThreadContainer.get().getDateTimeUtils();   //get info of date in parameter cal.setTime(dtu.parseDateTimeString(theDate)); calc.set(Calendar.DATE, c.getActualMaximum(Calendar.DATE));   Date lastDate = c.getTime();   return dtu.formatDateTime(dtu.formatDateTimeStamp(lastDate),"yyyyMMdd",null,null); チェック処理

    (営業日かどうかをチェック)

    営業日かどうかをチェックするには、isBusinessDay()関数を使用します。

    構文
    @isBusinessDay(theDate,  calendarName)例
    例1: @isBusinessDay("20190803",DEFAULT)  ⇒ true     // 土曜日、法定休日でないため、営業日扱い 
    例2: @isBusinessDay("20190804",DEFAULT)   ⇒ false   // 日曜日

  • JavaVM 0 Votes 533 閲覧数


    JavaVMとは

    JavaVM(Java仮想マシン、Java Vitrual Machine、JVM)とは、Javaプログラムを実行するためのソフトウェアのことです。

    JavaVMはWindowsやUnix、linux、MacOSなどのOSの上に動作するものですので、環境OS毎にそれぞれ異なる実装が作成されます。

    それによって、Javaプログラムは「Write once, run anywhere」(WORA、一度書けば、どこでも実行できる)という特徴があり、特にプラットフォームに依存しません。

    以下の図でそれらの階層関係を示します。


    JREとJDK

    JRE(Java Runtime Environment)とは、Javaプログラムの実行環境です。JavaVMとJavaプログラム実行に必要なライブラリが含まれています。

    JDK(Java Development Kit)とは、Javaプログラムの開発環境です。JDKにはJREとJavaプログラムの開発に必要なツールなどが含まれています。

    クラス

    Javaプログラムの基本構成単位はクラスです。

    コンパイルでネイティブ・コードを作成する C や C++ などの言語は、通常、ソース・コードをコンパイルした後、リンクを行う必要があります。このリンク処理では、ソース・ファイルを別々にコンパイルして得られたコードおよび共有のライブラリー・コードをマージして、1個の実行プログラムが作成されます。

    クラスのリンクは、別個の手順としてではなく、JVM がクラスをメモリーにロードする際の処理の一部として行われます