MobileFirst Foundation 8.0 마이그레이션 쿡북

improve this page | report issue

개요

이 쿡북의 목표는 IBM Worklight Foundation 6.2 또는 IBM MobileFirst Platform Foundation 6.3 - 7.1에서 IBM Mobile Foundation 8.0으로 애플리케이션 및 어댑터를 마이그레이션하는 단계에 대한 명확하고 간단한 보기를 제공하는 것입니다.

마이그레이션 프로세스는 일반 하이브리드 애플리케이션을 표준 Cordova 애플리케이션으로 변환하고 고유 애플리케이션에서 MobileFirst SDK를 업데이트하는 단계를 안내합니다. 모바일 웹 앱도 처리됩니다. 어댑터는 Maven 프로젝트로 마이그레이션되고 MobileFirst 보안 프레임워크, 푸시 알림 및 직접 업데이트와 같은 구현 개념이 더 명확해집니다.

마이그레이션 프로세스의 일부 측면을 더 쉽게 만들기 위해 마이그레이션 지원 도구가 제공됩니다.
이 도구는 코드 베이스에서 더 이상 사용되지 않거나 더 이상 지원되지 않거나 수정된 API와 같이 검사하고 변경해야 하는 영역을 식별하여 도움을 줍니다.

참고: 이 쿡북에서는 가능한 모든 마이그레이션 시나리오를 다루려고 시도하지 않으며, 포괄적으로 살펴보려면 마이그레이션 사용자 문서 주제를 방문할 것을 권장합니다.

도움말 가져오기

Mobile Foundation 팀은 귀하의 질문에 도움이 되어서 기쁩니다.
공식 지원은 PMR을 여십시오. 또한 StackOverflowSlack 커뮤니티에서도 질문할 수 있습니다.

빠른 시작

애플리케이션 및 어댑터의 마이그레이션을 시작하기 전에 빠른 시작 학습서를 수행하여 Mobile Foundation 8.0에 익숙해질 것을 권장합니다.

애플리케이션 등록, 어댑터 빌드 및 배치, 보안과 인증 구현 및 구성 등의 주제에 대한 자세한 정보가 학습서에서 제공됩니다.




설정 및 도구

마이그레이션을 시작하려면 우선 MobileFirst Server 인스턴스 및 마이그레이션 지원 도구를 실행해야 합니다.

MobileFirst Server

Mobile Foundation Bluemix 서비스를 사용하여 IBM Bluemix에서 MobileFirst Server를 설정할 수 있습니다. 또는 MobileFirst Developer Kit을 사용하여 로컬로 실행되는 서버를 설정할 수 있습니다.

마이그레이션 지원 도구

나중에 마이그레이션 지원 도구를 사용하므로 MobileFirst Server를 시작하고 실행한 후 우선 이 도구를 설치하십시오.

  1. 이 도구가 작동하기 위한 필수 소프트웨어이므로 NodeJS를 설치하십시오.
  2. MobileFirst Operations Console에서 사이드바 탐색의 맨 아래에 있는 다운로드 센터 링크를 클릭하십시오. 지시사항에 따라 NPM에서 또는 .zip 파일을 다운로드하여 마이그레이션 지원 도구를 설치하십시오.
MobileFirst Operations Console에서 마이그레이션 도구 다운로드


애플리케이션 마이그레이션

일반 하이브리드/MobileFirst Cordova, 웹 및 고유 애플리케이션의 마이그레이션 단계에는 마이그레이션 지원 도구를 실행하여 API 변경사항 평가, 프로젝트 구조 설정, 애플리케이션 소스 관리, 패키지 관리자 사용 및 API 변경사항 처리가 포함됩니다.

일반 하이브리드 애플리케이션

지난 릴리스에서는 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인을 사용하여 일반 하이브리드 애플리케이션이 작성되고 개발되고 빌드되고 관리되었습니다. Mobile Foundation 8.0부터는 이전 애플리케이션 모델 대신 표준 Cordova 애플리케이션에 대한 지원이 소개됩니다.

Cordova CLI와 같은 표준 커뮤니티 도구를 사용하여 Cordova 애플리케이션을 작성하십시오. Cordova CLI를 Cordova 플러그인 세트로 사용하는 혼합에 MobileFirst Cordova SDK가 추가되었으며, 이는 npm에서 사용 가능합니다.

표준 Cordova 애플리케이션을 사용함으로써 개발자는 선호하는 도구와 고유한 접근 방식으로 애플리케이션을 개발할 수 있습니다. 개발자로서 이제 Cordova 에코시스템을 이용할 수 있습니다.

또한 Cordova 애플리케이션 개발을 위해 Eclipse를 설치할 수도 있습니다.

Cordova 애플리케이션 개발에 대해 자세히 학습하십시오.

1단계

명령행 창을 열고 다음과 같은 방식으로 마이그레이션 지원 도구를 사용하십시오.

  • 일반 하이브리드 프로젝트를 스캔하여 API 보고서만 생성하려면 다음을 사용하십시오.
    mfpmigrate scan --in path_to_source_directory --out path_to_destination_directory
  • 일반 하이브리드 프로젝트를 스캔하고 사전 정의된 Cordova 프로젝트를 작성하려면 다음을 사용하십시오.
    mfpmigrate client --in path_to_source_directory --out path_to_destination_directory [--projectName location_of_project]
    참고: 이 프로세스에는 MobileFirst Cordova SDK 플러그인의 다운로드가 포함되므로 이 조치는 인터넷 연결에 따라 완료하는 데 시간이 걸릴 수 있습니다.
  • source_directory를 Studio 프로젝트의 애플리케이션 폴더에 있는 application 폴더의 경로로 대체하십시오. 예: ../Desktop/InvokingAdapterProcedures/apps/InvokingAdapterProcedures
  • destination_directory를 변환된 애플리케이션 및 생성된 API 보고서를 넣을 폴더의 경로로 대체하십시오.
  • location_of_projectdestination_directory 내에서 프로젝트를 작성할 디렉토리 이름으로 대체하십시오. 이 플래그는 선택적입니다.
일반 하이브리드 앱을 표준 Cordova 앱으로 마이그레이션

마이그레이션 지원 도구를 성공적으로 실행한 후 다음과 같은 영향을 관찰할 수 있습니다.

  • MigratedProject 폴더에는 이제 일반 하이브리드 앱과 동일한 메타데이터(일반 하이브리드 앱의 설정에 의존하는 애플리케이션 ID 및 기타 설정)가 있는 새 Cordova 애플리케이션이 포함되며, MobileFirst Cordova SDK를 설치했고 필요한 플랫폼을 추가했습니다.
  • client 명령이 사용된 경우 API 보고서 {app-name}-api-report.html이 생성되어 기본 브라우저에 열렸습니다. 여기에는 Mobile Foundation 8.0에서 사용할 수 있도록 애플리케이션 구현을 맞추기 위해 수행해야 하는 잠재적인 조치가 포함됩니다.
API 보고서

2단계

생성된 API 보고서에 대해 조치하기 전에 애플리케이션 소스 코드를 일반 하이브리드 앱에서 Cordova 앱으로 복사해야 합니다.

일반 하이브리드 앱

common 폴더의 컨텐츠를 복사하여 Cordova 앱의 www 폴더에 붙여넣으십시오(프롬프트가 표시되는 경우 대체).

MFPF 7.1 Cordova 앱

www 폴더를 복사하고 Cordova 앱의 기존 www 폴더를 대체하십시오.

참고: 일반 하이브리드 앱에 환경 특정 구현이 있는 경우, Cordova 병합 사용을 통해 이를 복사할 수 있습니다.

마이그레이션 지원 도구가 작성한 Cordova 애플리케이션을 사용할 필요는 없습니다. Cordova CLI를 사용하여 새 Cordova 애플리케이션을 직접 작성하고 MobileFirst Cordova SDK와 필요한 써드파티 Cordova 플러그인을 추가할 수 있습니다. Cordova 학습서에 따라 자세히 학습하십시오.

3단계

이제 Cordova 앱에서 애플리케이션의 소스 코드를 사용하여 몇몇 코드 블록을 추가하거나 편집해야 합니다.

  1. www/index.html 파일을 업데이트하십시오.
    • 다음 CSS 코드를 index.html 파일의 헤드 부분에서 이미 존재하는 CSS 코드 앞에 추가하십시오.
      <link rel="stylesheet" href="worklight/worklight.css">
      <link rel="stylesheet" href="css/main.css">
      참고: worklight.css 파일은 상대에 body 속성을 설정합니다. 이 항목이 앱의 스타일에 영향을 미치는 경우 사용자의 CSS 코드에서 해당 위치에 대해 다른 값을 선언하십시오. 예:
      body {
        position: absolute;
      }
    • 파일 헤드에서 CSS 정의 다음에 Cordova JavaScript에 대한 참조를 추가하십시오.
      <script type="text/javascript" src="cordova.js"></script>
    • 다음 코드 행이 있는 경우 제거하십시오.
      <script>window.$ = window.jQuery = WLJQ;</script>
      사용자 고유 버전의 JQuery를 다운로드하여 다음 코드 행에 표시된 것처럼 로드할 수 있습니다.
      <script src="lib/jquery.min.js"></script>
      선택적 jQuery 추가 내용을 lib 폴더로 이동할 필요는 없습니다. 원하는 위치로 이 추가 내용을 이동할 수 있지만 index.html 파일에서 올바르게 참조해야 합니다.
  2. WL.Client.init를 자동으로 호출하도록 www/js/InitOptions.js 파일을 업데이트하십시오.
    • InitOptions.js에서 다음 코드를 제거하십시오. WL.Client.init 함수는 글로벌 변수 wlInitOptions를 사용하여 자동으로 호출됩니다.
      if (window.addEventListener) {
        window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
      }
  3. 선택사항: MobileFirst 프레임워크가 초기화되기 전에 로직을 실행해야 하는 경우, WL.Client.init를 수동으로 호출하도록 www/InitOptions.js 파일을 업데이트하십시오.
    • config.xml 파일을 편집하고 mfp:clientCustomInit 요소의 enabled 속성을 true로 설정하십시오.
    • MobileFirst 하이브리드 기본 템플리트를 사용 중인 경우 다음 코드를 찾으십시오.
      if (window.addEventListener) {
        window.addEventListener('load', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        window.attachEvent('onload',  function() { WL.Client.init(wlInitOptions); });
      }
      그런 다음, 다음 코드로 대체하십시오.
      if (document.addEventListener) {
        document.addEventListener('mfpready', function() { WL.Client.init(wlInitOptions); }, false);
      } else if (window.attachEvent) {
        document.attachEvent('mfpready',  function() { WL.Client.init(wlInitOptions); });
      }

4단계

Cordova 애플리케이션이 거의 마이그레이션되었습니다. 이제 생성된 API 보고서를 처리할 시간입니다. 브라우저 창에서 API 보고서를 열고 표시된 항목을 검토하십시오. 보고서의 각 항목에 대해 다르게 구현하거나 전적으로 대체해야 합니다. 마이그레이션 지원 도구를 다시 실행하고 이번에는 새 Cordova 애플리케이션을 지정하여 처리하지 않은 API를 다시 검사할 수 있습니다.


5단계

Cordova 애플리케이션을 테스트하려면 웹 자원만 미리볼 수도 있고 시뮬레이터/에뮬레이터 또는 실제 디바이스에서 실행할 수도 있습니다.
참고: 클라이언트 측 코드에 보안 및 인증, 푸시 알림, 어댑터 및 유사한 기능에 적용되는 로직이 포함된 경우, 테스트하기 전에 계속 조정해야 할 수도 있습니다(아래 참조). 그러나 애플리케이션 인터페이스를 검토하여 여전히 손상되지 않았는지 확인할 수 있습니다.

웹 자원 미리보기:

  • 명령행 창에서 애플리케이션 루트 폴더로 이동하십시오.
  • mfpdev app preview 명령을 실행하십시오.
참고: Mobile Foundation 8.0의 결함 때문에 보안 측면을 포함하는 애플리케이션 미리보기는 실패합니다. 임시 해결책으로 에뮬레이터 또는 실제 디바이스에서 애플리케이션을 미리보십시오.
애플리케이션의 웹 자원 미리보기에 대해 자세히 학습하십시오.

에뮬레이터/시뮬레이터 또는 실제 디바이스 테스트:

  • 명령행 창에서 애플리케이션 루트 폴더로 이동하십시오.
  • UI만 테스트하는 경우, 애플리케이션을 간단하게 빌드하고 실행할 수 있습니다. cordova run replace-with-platform-name
  • Mobile Foundation과 관련된 애플리케이션도 테스트하는 경우에는 미리보기 전에 우선 mfpdev app register를 사용하여 애플리케이션을 등록해야 합니다.

다음 단계

웹 애플리케이션

일반 하이브리드 애플리케이션과 매우 유사하게 모바일 웹 및 데스크탑 브라우저에 대한 웹 애플리케이션도 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인에서 관리되었습니다. Mobile Foundation 8.0에서 웹 앱의 개발은 npm에서 사용 가능한 MobileFirst 웹 SDK로도 수행됩니다.

참고: 이전 릴리스에서 MobileFirst Server는 웹 애플리케이션을 제공하고 퍼블릭 페이싱 URL을 제공했습니다. Mobile Foundation 8.0에서 애플리케이션은 보안 기능, 어댑터 기능 등을 제공하기 위해 MobileFirst Server에만 등록되며, 웹 애플리케이션 제공은 전용 웹 서버로부터의 제공과 같은 표준 방법으로 수행됩니다.

웹 애플리케이션 개발에 대해 자세히 학습하십시오.

1단계

마이그레이션 지원 도구를 사용하여 API 보고서를 생성하십시오.
명령행 창을 열고 다음과 같은 방식으로 마이그레이션 지원 도구를 사용하십시오.
인터넷 연결에 따라 완료하는 데 시간이 걸릴 수 있습니다.

mfpmigrate scan --in path_to_source_directory --out path_to_destination_directory
  • source_directory를 Studio 프로젝트의 애플리케이션 폴더에 있는 common 폴더의 경로로 대체하십시오. 예: ../Desktop/InvokingAdapterProcedures/apps/InvokingAdapterProcedures
  • destination_directory를 생성된 API 보고서를 저장할 폴더의 경로로 대체하십시오.

마이그레이션 지원 도구를 성공적으로 실행 완료한 후 다음과 같은 영향을 관찰할 수 있습니다.

  • API 보고서 {app-name}-api-report.html이 생성됩니다. 여기에는 Mobile Foundation 8.0에서 사용할 수 있도록 애플리케이션 구현을 맞추기 위해 수행해야 하는 잠재적인 조치가 포함됩니다.

2단계

평가된 API 보고서를 사용하여, 이제 애플리케이션의 구조 및 소스를 마이그레이션할 시간입니다.

  1. 애플리케이션의 소스 및 자원을 포함할 새 폴더를 작성하십시오.
  2. 기존 프로젝트의 index.html 파일과 js, cssimages 폴더를 작성한 폴더로 복사하십시오.
  3. 명령행 창에서 마이그레이션된 프로젝트의 루트 폴더로 이동하여 MobileFirst 웹 SDK를 추가하십시오. npm install ibm-mfp-web-sdk
3단계를 계속하기 전에 Mobile Foundation SDK를 웹 애플리케이션에 추가 학습서의 지시사항에 따라 SDK를 구성하십시오.

3단계

웹 애플리케이션이 거의 마이그레이션되었습니다. 이제 생성된 API 보고서를 처리할 시간입니다. 브라우저 창에서 API 보고서를 열고 표시된 항목을 검토하십시오. 보고서의 각 항목에 대해 다르게 구현하거나 전적으로 대체해야 합니다.


4단계

마이그레이션된 애플리케이션을 테스트하려면 다음을 수행하십시오.

  1. 애플리케이션이 MobileFirst Server에 등록되었는지 확인하십시오.
  2. 동일 원본 오류가 발생하지 않도록 하려면 되돌리기 프록시를 설정하십시오. 이 목표를 위해 Node.js를 사용할 수 있습니다. Node.js를 사용하여 리버스 프록시를 구현하는 예제는 웹 개발 환경 설정 학습서를 참조하십시오.

고유 애플리케이션

제품의 이전 버전에서는 플랫폼 특정 아티팩트(WorklightAPI 폴더, 구성 파일 등)를 우선 작성한 후 각 IDE에서 고유 프로젝트에 해당 아티팩트를 수동으로 복사하여 붙여넣기 위해 고유 애플리케이션에 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인이 필요했습니다.

Mobile Foundation 8.0부터는 커뮤니티 선호 패키지 관리자인 iOS용 CocoaPods, Android용 GradleWindows용 NuGet이 소개되었습니다. 개발자는 이러한 도구를 사용하여 각 플랫폼에 MobileFirst 고유 SDK를 매끄럽게 추가할 수 있습니다.

고유 애플리케이션 개발에 대해 자세히 학습하십시오.

1단계

마이그레이션 지원 도구를 사용하여 API 보고서를 생성하십시오.

참고: 현재 마이그레이션 지원 도구는 MobileFirst Platform Foundation 7.1을 기반으로 하는 고유 애플리케이션만 스캔할 수 있습니다.

명령행 창을 열고 다음과 같은 방식으로 마이그레이션 지원 도구를 사용하십시오.

mfpmigrate scan --in path_to_source_directory --out path_to_destination_directory --type platform
  • source_directory를 고유 프로젝트의 경로로 대체하십시오. 예: ../Desktop/FormBasedAuthObjCiOS-release71
  • destination_directory를 보고서를 생성할 경로로 대체하십시오.
  • platform을 지원되는 플랫폼(ios, android 또는 windows)으로 대체하십시오.
고유 앱에 대한 API 보고서 생성

마이그레이션 지원 도구를 성공적으로 실행한 후 다음과 같은 영향을 관찰할 수 있습니다.

  • API 보고서 {app-name}-api-report.html이 생성되어 기본 브라우저에 열렸습니다. 여기에는 Mobile Foundation 8.0에서 사용할 수 있도록 애플리케이션 구현을 맞추기 위해 수행해야 하는 잠재적인 조치가 포함됩니다.
API 보고서

2단계

API 보고서에서 문제를 해결한 후 이전 고유 SDK를 새 고유 SDK로 대체할 수 있습니다.

iOS
전제조건: Mac 컴퓨터에 CocoaPods가 설치되어 있는지 확인하십시오.
  • 명령행 창을 열고 Xcode 프로젝트의 루트로 이동하십시오.
  • sudo gem install cocoapods 명령을 실행한 다음 pod setup 명령을 실행하십시오. 참고: 이러한 명령을 완료하는 데는 수 분이 소요될 수 있습니다.

  1. Xcode에서 프로젝트를 여십시오.
  2. Xcode 프로젝트에서 WorklightAPI 폴더를 삭제(휴지통으로 이동)하십시오.
  3. 다음 방법으로 기존 코드를 수정하십시오.
    빌드 설정 탭에서 다음을 수행하십시오.
    • 헤더 검색 경로에서 $(SRCROOT)/WorklightAPI/include를 제거하십시오.
    • 프레임워크 검색 경로에서 $(PROJECTDIR)/WorklightAPI/frameworks를 제거하십시오.
    • 정적 라이브러리 libWorklightStaticLibProjectNative.a에 대한 참조를 제거하십시오.
  4. 빌드 단계 탭에서 다음 프레임워크 및 라이브러리에 대한 링크를 제거하십시오. CocoaPods는 이러한 링크를 자동으로 다시 추가합니다.
    • libWorklightStaticLibProjectNative.a
    • SystemConfiguration.framework
    • MobileCoreServices.framework
    • CoreData.framework
    • CoreLocation.framework
    • Security.framework
    • sqlcipher.framework
    • libstdc++.6.dylib
    • libz.dylib
  1. Xcode가 처리완료되었는지 확인하십시오.
  2. 터미널을 열고 Xcode 프로젝트의 루트로 이동하십시오.
    • pod init 명령을 실행하여 Podfile 파일을 작성하십시오.
    • Podfile 파일이 Xcode 프로젝트의 루트에 작성됩니다. 이 파일을 찾아서 원하는 편집기에서 여십시오.
    • 기존 컨텐츠를 주석 처리하거나 제거하십시오.
    • 다음 행을 추가하고 변경사항을 저장하십시오. target 값을 업데이트해야 합니다.
      use_frameworks!
      platform :ios, 8.0
      target "replace-with-the-name-of-the-target-in-xcode-project" do
          pod 'IBMMobileFirstPlatformFoundation'
      end
      Additional pods:
      IBMMobileFirstPlatformFoundationPush
      IBMMobileFirstPlatformFoundationJSONStore

      앱에서 추가 기능을 사용해야 하는 경우 파일에 추가적인 POD를 지정할 수 있습니다. 예를 들어, 앱에서 OpenSSL을 사용하는 경우 Podfile은 다음과 같습니다.
      use_frameworks!
      platform :ios, 8.0
      target "replace-with-the-name-of-the-target-in-xcode-project" do
          pod 'IBMMobileFirstPlatformFoundation'
          pod 'IBMMobileFirstPlatformFoundationOpenSSLUtils'
      end
    • pod install 명령을 실행하십시오. 이 명령은 MobileFirst 고유 SDK, IBMMobileFirstPlatformFoundation.framework 및 Podfile에 지정된 기타 모든 프레임워크와 해당 종속 항목을 설치합니다. 그런 다음 pods 프로젝트를 생성하고 클라이언트 프로젝트를 MobileFirst SDK와 통합합니다.
  3. 명령행에서 open ProjectName.xcworkspace를 입력하여 Xcode에서 ProjectName.xcworkspace 파일을 여십시오. 이 파일은 ProjectName.xcodeproj 파일과 동일한 디렉토리에 있습니다. 파인더에서 두 번 클릭할 수도 있습니다.
  4. 헤더의 모든 기존 MobileFirst 가져오기를 다음 새 우산형 헤더의 단일 항목으로 바꾸십시오.
    Objective C:
    #import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>

    Swift:
    import IBMMobileFirstPlatformFoundation
  5. 빌드 설정 탭의 기타 링커 플래그 아래에서 -ObjC 플래그의 시작 부분에 $(inherited)를 추가하십시오.
  6. Push Notifications 또는 JSONStore를 사용하는 경우 독립적 가져오기를 포함해야 합니다.

    Push Notifications
    Objective C의 경우:
    #import <IBMMobileFirstPlatformFoundationPush/IBMMobileFirstPlatformFoundationPush.h>

    Swift의 경우:
    import IBMMobileFirstPlatformFoundationPush

    JSONStore
    Objective C의 경우:
    #import <IBMMobileFirstPlatformFoundationJSONStore/IBMMobileFirstPlatformFoundationJSONStore.h>

    Swift의 경우:
    import IBMMobileFirstPlatformFoundationJSONStore

Android
프로젝트의 lib 폴더를 찾고 다음 파일을 삭제하십시오.
  • worklight-android.jar
  • uicandroid.jar
  • bcprov.jar
  • android-async-http.jar
  1. Android Studio에서 Android → Gradle 스크립트로 이동하고 build.gradle(모듈: 앱) 파일을 선택하십시오.
  2. apply plugin: 'com.android.application' 아래에 다음 행을 추가하십시오.
    repositories{
        jcenter()
    }
  3. android 내에 다음을 추가하십시오.
    packagingOptions {
        pickFirst 'META-INF/ASL2.0'
        pickFirst 'META-INF/LICENSE'
        pickFirst 'META-INF/NOTICE'
    }
  4. dependencies 내에 다음 행을 추가하십시오.
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundation',
    version: '8.0.+',
    ext: 'aar',
    transitive: true
    앱에서 추가 기능을 사용해야 하는 경우 더 많은 아티팩트를 지정할 수 있습니다. 예를 들어, 앱에서 푸시 알림을 사용하는 경우 다음을 추가하십시오.
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundationpush',
    version: '8.0.+',
    ext: 'aar',
    transitive: true
    또는 JSONStore를 사용하려면 다음을 추가하십시오.
    compile group: 'com.ibm.mobile.foundation',
    name: 'ibmmobilefirstplatformfoundationjsonstore',
    version: '8.0.+',
    ext: 'aar',
    transitive: true

Windows
Visual Studio 프로젝트에서 다음 파일 제거:
  • wlclient.properties
  • Newtonsoft.Json
  • SharpCompress
  • worklight-windows8
  1. 프로젝트 솔루션을 마우스 오른쪽 단추로 클릭하고 Nuget 패키지 관리를 선택하십시오.
  2. 검색 옵션에서 "IBM MobileFirst Platform"을 검색하고 IBM.MobileFirstPlatform.8.0.0.0을 선택한 후 설치를 클릭하십시오.
  3. Package.appxmanifest에서 인터넷(클라이언트) 기능을 추가하십시오.

3단계

고유 애플리케이션이 거의 마이그레이션되었습니다. 이제 API 보고서에 생성된 문제를 처리할 시간입니다. 브라우저에서 API 보고서를 열고 검토하십시오. 보고서의 각 항목에 대해 다르게 구현하거나 전적으로 대체해야 합니다.


4단계

애플리케이션을 테스트하려면 특정 플랫폼의 IDE에서 실행하십시오.

다음 단계

보충 읽기:

애플리케이션은 이제 MobileFoundation 8.0에 필요한 구조를 준수합니다. 이제 어댑터를 살펴보기 시작할 수 있습니다.



어댑터 마이그레이션

지난 릴리스에서는 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인을 사용하여 어댑터가 작성되고 개발되고 빌드되었습니다. Mobile Foundation 8.0부터 어댑터는 이제 Java 및 JavaScript 어댑터 생성을 위해 IBM이 제공하는 원형을 사용하여 작성되는 표준 Apache Maven 프로젝트로 간주됩니다.

Maven 사용은 서버 측 개발자에게 개발 시간에 선호하는 도구를 자유롭게 사용할 수 있도록 해줄 뿐 아니라 필요한 종속 항목을 관리하고 통합하는 단순한 표준 방법을 제공합니다. Maven 프로젝트는 명령 행에서 Maven 명령을 사용하거나 이면에서 Maven 명령을 호출하고 단순화된 명령을 제공하는 MobileFirst CLI를 사용하여 작성할 수 있습니다.

팁: Eclipse 또는 IntelliJ를 설정하여 IDE 환경에서 어댑터를 작성 및 개발할 수도 있습니다.

알고 계십니까? Mobile Foundation 8.0에서는 DevOps 스타일 운영 모드를 소개했습니다. 여기에서는 어댑터가 일단 MobileFirst Server에 배치되면 어댑터를 재배치할 필요 없이 MobileFirst Operations Console을 통해 라이브로 다양한 특성(예: 데이터베이스 연결을 위한 사용자 이름 및 비밀번호 값)을 구성할 수 있습니다.

Java 및 JavaScript 어댑터 개발에 대해 자세히 학습하십시오.

어댑터를 Maven 프로젝트로 마이그레이션하는 단계에는 일치하는 새 Maven 프로젝트 작성 및 기존 어댑터의 소스 코드로 복사(몇몇 수정과 함께)가 포함됩니다. 그런 다음 Maven 프로젝트를 빌드하여 오류를 찾습니다.

Maven 어댑터를 사용하려면 개발자 워크스테이션에 Apache Maven이 설치되어 있어야 합니다.

  1. Apache Maven을 설치하십시오.
    • Apache Maven .zip을 다운로드하십시오.
    • MVN_PATH 변수를 추가하고 Maven 폴더를 지정하십시오.
    • Mac 및 Linux:
      ~/.bash_profile을 편집하십시오.
      #### Apache Maven example location
      
      export MVN_PATH="/usr/local/bin"
    • Windows: 다음 안내에 따르십시오.
    • mvn -v를 실행하여 설치를 확인하십시오.
  2. 쿡북은 MobileFirst CLI를 사용하여 어댑터를 작성하고 빌드하는 Maven 명령을 호출합니다.
    • 이 도구가 작동하기 위한 필수 소프트웨어이므로 NodeJS를 설치하십시오.
    • 명령행 창에서 npm install -g mfpdev-cli 명령을 실행하십시오. (또는 MobileFirst Operations Console을 사용하여 다운로드 센터에서 다운로드하여 설치하십시오.)
    • mfpdev -v를 실행하여 설치를 확인하십시오.

자신의 어댑터 유형, 어댑터 이름 및 패키지 이름과 일치하는 새 어댑터 템플리트를 작성하십시오.
그러면 어댑터의 메타데이터가 비슷해져서 추가 편집이 필요하지 않으므로 마이그레이션이 쉬워집니다.

  • 명령행 창에서 mfpdev adapter create 명령을 실행하십시오.
  • 어댑터 유형(HTTP 또는 SQL JavaScript 어댑터, 또는 Java 어댑터)을 선택하십시오.
  • GroupID를 제공하십시오.
  • Java 어댑터를 작성하는 경우, 이전에 사용한 것과 동일한 패키지 이름을 지정해야 합니다(예: "com.sample").
어댑터 템플리트 작성
HTTP JavaScript 어댑터
  1. 파일 시스템에서 JavaScript 어댑터 폴더로 이동하십시오(예: ../Desktop/JavaScriptAdapters/adapters/RSSReader).
  2. 다른 창을 열고 새 Maven 프로젝트(예: ../Desktop/MigratedAdapter)로 이동한 후 src/main/adapter-resources 폴더로 이동하십시오.
  3. 기존 어댑터 파일을 이 폴더로 복사하여 붙여넣으십시오.
  4. adapter.xml을 편집하십시오. 해당 컨텐츠를 기존 어댑터의 XML 컨텐츠(이 예제에서는 RSSReader.xml)로 대체하십시오.
  5. js/{adapter-name}-impl.js를 편집하십시오. 해당 컨텐츠를 기존 어댑터의 컨텐츠(이 예제에서는 RSSReader-impl.js)로 대체하십시오.

SQL JavaScript 어댑터
  1. 파일 시스템에서 JavaScript 어댑터 폴더로 이동하십시오(예: ../Desktop/JavaScriptAdapters/adapters/SQLAdapter).
  2. 다른 창을 열고 새 Maven 프로젝트(예: ../Desktop/MigratedAdapter)로 이동한 후 src/main/adapter-resources 폴더로 이동하십시오.
  3. adapter.xml을 편집하십시오. 해당 컨텐츠를 기존 어댑터의 XML 컨텐츠(이 예제에서는 SQLAdapter.xml)로 대체하십시오.
  4. js/{adapter-name}-impl.js를 편집하십시오. 해당 컨텐츠를 기존 어댑터의 컨텐츠(이 예제에서는 SQLAdapter-impl.js)로 대체하십시오.

여기에서 Maven 종속 항목이 작동하기 시작합니다. Worklight/MobileFirst Studio는 데이터베이스 커넥터가 이전에 server/lib 폴더에 배치된 위치에서 사용되지 않으므로 이를 Maven 종속 항목으로 대체하십시오.

  1. 새로 작성한 Maven 프로젝트로 돌아가서 디렉토리의 루트에 있는 pom.xml 파일을 여십시오.
  2. 해당 데이터베이스 유형을 위한 종속 항목을 추가하십시오. Maven Central 웹 사이트에서 사용할 적절한 종속 항목을 검색할 수 있습니다.
  3. 이 예제에서는 MySQL 데이터베이스를 사용하십시오. 다음 코드 블록을 dependencies 섹션에 추가하십시오.
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.6</version>
    </dependency>

추가 종속 항목이 있는 경우, pom.xml 파일에서 지정하십시오(로컬 파일 또는 원격 종속 항목).

Maven 종속 항목에 대해 자세히 학습:

다음 "다이어그램"은 지금까지 수행한 내용을 다른 방법으로 나타냅니다.

JavaScript 어댑터의 이전 구조
MyProject
├── adapters
│   ├── RSSAdapter
│   │   ├── RSSAdapter-impl.js
│   │   ├── RSSAdapter.xml
│   │   └── filtered.xsl
JavaScript 어댑터의 새 구조
RSSAdapter
├── pom.xml
├── src
│   └── main
│       ├── adapter-resources
│       │   ├── adapter.xml
│       │   └── js
│       │        ├── RSSAdapter-impl.js
│       │        └── filtered.xml
  1. 파일 시스템에서 Java 어댑터 폴더로 이동하십시오(예: ../Desktop/JavaAdapters/RSSAdapter).
  2. 별도의 창을 열고 새 Maven 프로젝트(예: ../Desktop/MigratedAdapter)로 이동한 후 src/main/adapter-resources 폴더로 이동하십시오.
  3. {adapter-name}.xml을 편집하십시오. 해당 컨텐츠를 기존 어댑터의 XML 컨텐츠(이 예제에서는 RSSAdapter.xml)로 대체하십시오.
  4. 새 어댑터에서 src/main/java/com/sample/(이 예제에서)로 이동하십시오.
  5. 기존.java 파일을 기존 어댑터의.java 파일로 대체하십시오.

기존 어댑터에서 추가 라이브러리를 사용 중인 경우 Maven 종속 항목은 지금 작동하기 시작합니다. Worklight/MobileFirst Studio는 라이브러리가 이전에 server/lib 또는 Java 어댑터의 lib 폴더에 배치된 위치에서 사용되지 않으므로 이를 Maven 종속 항목으로 대체하십시오.

  1. 새로 작성한 Maven 프로젝트로 돌아가서 디렉토리의 루트에 있는 pom.xml 파일을 여십시오.
  2. 해당 데이터베이스 유형을 위한 종속 항목을 추가하십시오. Maven Central 웹 사이트에서 사용할 적절한 종속 항목을 검색할 수 있습니다.
  3. 이 예제는 Cloudant 종속 항목을 사용합니다. 다음 코드 블록을 dependencies 섹션에 추가하십시오.
    <dependency>
    	<groupId>com.cloudant</groupId>
    	<artifactId>cloudant-client</artifactId>
    	<version>1.2.3</version>
    </dependency>

Maven 종속 항목에 대해 자세히 학습:

다음 "다이어그램"은 지금까지 수행한 내용을 다른 방법으로 나타냅니다.

Java 어댑터의 이전 구조
├── adapters
│   └── RSSAdapter
│       ├── RSSAdapter.xml
│       ├── lib
│       └── src
│           └── com
│               └── sample
│                   ├── RSSAdapterApplication.java
│                   └── RSSAdapterResource.java
Java 어댑터의 새 구조
├── pom.xml
├── src
│   └── main
│       ├── adapter-resources
│       │   └── adapter.xml
│       └── java
│           └── com
│               └── sample
│                   ├── RSSAdapterApplication.java
│                   └── RSSAdapterResource.java
└

마이그레이션된 어댑터 빌드

명령행 창에서 어댑터의 폴더로 이동하여 mfpdev adapter build 명령을 실행하십시오.

명령행에서 어댑터 빌드 - 실패

이러한 오류를 해결하려면 Maven 프로젝트를 IntelliJ와 같은 Maven 프로젝트로 가져온 다음 여기에서 프로젝트를 빌드할 것을 권장합니다. IDE를 이용하면 더 쉽게 빌드 오류를 통해 반복하고 하나씩 해결할 수 있습니다. IntelliJ 및 어댑터 사용에 대해 자세히 학습하십시오.

IntelliJ 사용

빌드된 어댑터 테스트

마이그레이션된 어댑터를 테스트하려면 MobileFirst CLI를 사용하여 엔드포인트를 호출하거나 MobileFirst Operations Console에서 Swagger를 사용할 수 있습니다.

어댑터 테스트 및 디버그 학습서에서 어댑터 테스트에 대해 자세히 학습하십시오.
보충 읽기:

Maven 프로젝트 준수 양식 및 코드로 마이그레이션된 어댑터를 사용하여 일부 개발 개념을 살펴보겠습니다.



개발 주제

이제 Mobile Foundation 8.0의 새 구조로 마이그레이션된 애플리케이션과 어댑터를 사용하여, 여기에서는 최신 릴리스에서 변경된 일부 구현 개념에 대해 설명하겠습니다.

어댑터

JavaScript 어댑터

글로벌 변수 및 세션

JavaScript 어댑터에서는 "세션"이 없으므로 글로벌 변수를 사용하여 세션에 데이터를 저장하지 마십시오. 작동에서 이 변경사항은 MobileFirst Platform Foundation 7.1에서 처음 나타났습니다. 그러나 단일 요청 중에는 글로벌 변수를 사용하여 사용할 데이터를 저장할 수 있습니다. 그러나 이는 더 이상 권장되지 않습니다.

어댑터 학습서에서 어댑터의 작성, 빌드, 배치 및 테스트에 대해 자세히 학습하십시오.

보안 프레임워크

Mobile Foundation 8.0의 보안 프레임워크는 지난 릴리스의 보안 프레임워크와 다릅니다. 따라서 일부 애플리케이션 백엔드 및 클라이언트 로직을 다시 구현해야 합니다.

이제는 OAuth 모델만을 기반으로 하는 새 보안 프레임워크 및 해당 권한 부여 플로우에 시간을 들여서 익숙해지는 것이 바람직합니다. 또한 액세스 토큰, 보안 검사 및 범위와 같은 새 권한 부여 엔티티에 대해서도 학습하십시오. 이들은 이전에 알려진 보안 테스트, 영역 및 로그인 모듈과 같은 엔티티를 대체합니다.

인증 및 보안 마이그레이션의 학습서에서 보안을 마이그레이션하는 방법을 학습하십시오. 보안 프레임워크 및 권한 부여 개념에 대해 자세히 학습하려면 인증 및 보안 학습서를 참조하십시오.

영역 대 SecurityCheck

Mobile Foundation 8.0에서 보안 검사는 이전 릴리스에 있는 세 개념의 조합처럼 보일 수 있습니다.
보안 검사 = 영역 + 인증자 + LoginModule

보안 검사의 구현은 LoginModule과 인증자 둘 다의 구현입니다.
보안 검사의 정의는 영역의 정의와 유사합니다.

다음 표는 지난 릴리스의 보안 프레임워크와 Mobile Foundation 8.0의 보안 프레임워크의 차이를 나타냅니다.

이전 릴리스 Mobile Foundation 8.0
정의 authenticationConfig.xml에서 이름, 로그인 모듈 및 인증자로 정의됩니다. 예:
<realm loginModule="AuthLoginModule" name="AuthRealm">
        <className>com.worklight.integration.auth.AdapterAuthenticator</className>
    </realm>
관련 adapter.xml 파일에서 이름 및 다음 구현 클래스로 보안 검사를 정의하십시오.
<securityCheckDefinition
        name="securityCheckX"
        class="com.sample.SecurityCheckW">
    </securityCheckDefinition>
메소드 입력/종료 어댑터 기반 인증: 권한 부여 요청에서 프레임워크에 의해 호출되는 로그인/로그아웃 기능을 정의합니다.
<parameter name="login-function" value="AuthAdapter.onAuthRequired"/>
<parameter name="logout-function" value="AuthAdapter.onLogout"/>
사용자 정의 인증자 + LoginModule: 시작을 위한 init() 메소드 및 요청에 권한을 부여하기 위한 processRequest(). 인증자는 로그인 모듈의 신임 정보를 login()/logout() 메소드로 보냅니다.
보안 검사 인터페이스를 구현할 때 authorize()introspect() 메소드도 구현해야 하며, 이들은 권한 부여 요청 중에 프레임워크에서 호출됩니다. 보안 검사는 인증과 로그인/로그아웃을 혼자서 처리합니다.
사용법 하나 이상의 범위를 포함할 수 있는 customSecurityTest에 캡슐화됩니다.
<customSecurityTest name="AuthSecurityTest">
    <test isInternalUserID="true" realm="AuthRealm"/>
</customSecurityTest>
0개 이상의 보안 검사를 포함할 수 있는 Scope 요소에 캡슐화됩니다.

보안 테스트 대 범위

Mobile Foundation 8.0에서 범위는 0개 이상의 보안 검사를 집계하는 데 사용되며, 그런 다음 로컬 및 외부 자원 또는 앱을 보호하는 데 사용될 수 있습니다. 이는 이전 릴리스의 CustomSecurityTest 개념과 유사합니다.

이전 릴리스 Mobile Foundation 8.0
정의 UserID를 정의하기 위해 authenticationConfig.xml 파일에 이름, 하나 이상의 보안 테스트 및 최소 한 개의 전용 보안 테스트로 정의됩니다.
<customSecurityTest name="AuthSecurityTest">
    <test isInternalUserID="true" realm="AuthRealm"/>
</customSecurityTest>
MobileFirst Operations Console에서 또는 REST API를 통해 정의되며, 범위에는 0개 이상의 보안 검사가 포함됩니다.
"scopeElementMapping": {
    "ScopeElementA": "secCheck1 secCheck2"
}, 
사용법 SecurityTest는 자원(Java 어댑터), 프로시저(JavaScript 어댑터) 또는 애플리케이션(애플리케이션 디스크립터)을 보호하는 데 사용될 수 있습니다.

Java 어댑터:
@OAuthSecurity(scope="AuthRealm")
JavaScript 어댑터:
<procedure name="getSecretData" securityTest="AuthSecurityTest"/>
참고: securityTest에 속하지 않는 영역으로 자원을 보호할 수는 없습니다.
범위(하나 이상의 범위 요소)는 자원(Java 어댑터), 프로시저(JavaScript 어댑터) 또는 애플리케이션(애플리케이션 디스크립터)을 보호하는 데 사용될 수 있습니다.

Java 어댑터:
@OAuthSecurity(scope="ScopeElementA ScopeElementB")
JavaScript 어댑터:
<procedure name="deleteUser" scope="deletePrivilege"/>
참고: scopeElement 맵핑에 속하지 않는 securityCheck로 자원/애플리케이션을 보호할 수는 없습니다.
UserIdentity 보안 테스트에서 특정 영역은 DeviceID 및 UserID를 정의합니다.
<test isInternalUserID="true" realm="AuthRealm"/>
범위는 범위를 구성하는 보안 검사를 모릅니다.
배치 authenticationConfig.xml 파일에서 구성됩니다. securityTest를 만드는 영역을 변경하려면 .war 파일을 다시 배치해야 합니다. MobileFirst Operations Console을 사용하여 MobileFirst Server를 중단하지 않고 변경됩니다.

알림

Mobile Foundation 8.0에서는 알림 설정, 구성 및 전송에 대한 새 경험과 함께 새 푸시 서비스가 소개되었습니다. 또한 이벤트 소스 푸시 알림의 개념은 철회되었습니다. 다음 사용자 문서 주제에서 자세한 시나리오 기반 마이그레이션 경로를 찾으십시오.
알림 학습서에서 알림 지원 설정 및 인증된 태그 기반 알림 전송에 대해 자세히 학습하십시오.

직접 업데이트

직접 업데이트 기능을 사용하여 업데이트를 전달하는 단계가 변경되었으며, 일부 제한사항이 도입되었습니다.

Cordova 애플리케이션에서 직접 업데이트 사용 학습서에서 직접 업데이트의 사용 방법에 대해 자세히 학습하십시오.

기타

Mobile Foundation 8.0에서는 몇 가지 기타 컴포넌트 및 기능이 제거되었습니다. 전체 목록에 대해서는 제거된 컴포넌트 사용자 문서 주제를 검토하십시오.

마지막으로, 아래에는 MobileFirst Platform Foundation 6.3 하이브리드 애플리케이션 및 어댑터를 표준 Cordova 애플리케이션 및 Maven 프로젝트로 마이그레이션하는 과정을 보여주는 비디오가 있습니다.

Last modified on September 19, 2017