이 쿡북의 목표는 IBM Worklight Foundation 6.2 또는 IBM MobileFirst Platform Foundation 6.3 - 7.1에서 IBM Mobile Foundation 8.0으로 애플리케이션 및 어댑터를 마이그레이션하는 단계에 대한 명확하고 간단한 보기를 제공하는 것입니다.
마이그레이션 프로세스는 일반 하이브리드 애플리케이션을 표준 Cordova 애플리케이션으로 변환하고 네이티브 애플리케이션에서 MobileFirst SDK를 업데이트하는 단계를 안내합니다. 모바일 웹 앱도 처리됩니다. 어댑터는 Maven 프로젝트로 마이그레이션되고 MobileFirst 보안 프레임워크, 푸시 알림 및 직접 업데이트와 같은 구현 개념이 더 명확해집니다.
마이그레이션 프로세스의 일부 측면을 더 쉽게 만들기 위해 마이그레이션 지원 도구가 제공됩니다.
이 도구는 코드 베이스에서 더 이상 사용되지 않거나 더 이상 지원되지 않거나 수정된 API와 같이 검사하고 변경해야 하는 영역을 식별하여 도움을 줍니다.
MobileFirst Operations Console에서 사이드바 탐색의 맨 아래에 있는 다운로드 센터 링크를 클릭하십시오. 지시사항에 따라 NPM에서 또는 .zip 파일을 다운로드하여 마이그레이션 지원 도구를 설치하십시오.
2
애플리케이션 마이그레이션
일반 하이브리드/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 에코시스템을 이용할 수 있습니다.
참고: 이 프로세스에는 MobileFirst Cordova SDK 플러그인의 다운로드가 포함되므로 이 조치는 인터넷 연결에 따라 완료하는 데 시간이 걸릴 수 있습니다.
source_directory를 Studio 프로젝트의 애플리케이션 폴더에 있는 application 폴더의 경로로 대체하십시오. 예: ../Desktop/InvokingAdapterProcedures/apps/InvokingAdapterProcedures
destination_directory를 변환된 애플리케이션 및 생성된 API 보고서를 넣을 폴더의 경로로 대체하십시오.
location_of_project를 destination_directory 내에서 프로젝트를 작성할 디렉토리 이름으로 대체하십시오. 이 플래그는 선택적입니다.
마이그레이션 지원 도구를 성공적으로 실행한 후 다음과 같은 영향을 관찰할 수 있습니다.
MigratedProject 폴더에는 이제 일반 하이브리드 앱과 동일한 메타데이터(일반 하이브리드 앱의 설정에 의존하는 애플리케이션 ID 및 기타 설정)가 있는 새 Cordova 애플리케이션이 포함되며, MobileFirst Cordova SDK를 설치했고 필요한 플랫폼을 추가했습니다.
client 명령이 사용된 경우 API 보고서 {app-name}-api-report.html이 생성되어 기본 브라우저에 열렸습니다. 여기에는 Mobile Foundation 8.0에서 사용할 수 있도록 애플리케이션 구현을 맞추기 위해 수행해야 하는 잠재적인 조치가 포함됩니다.
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 앱에서 애플리케이션의 소스 코드를 사용하여 몇몇 코드 블록을 추가하거나 편집해야 합니다.
다음 코드 행이 있는 경우 제거하십시오. <script>window.$ = window.jQuery = WLJQ;</script>
사용자 고유 버전의 JQuery를 다운로드하여 다음 코드 행에 표시된 것처럼 로드할 수 있습니다. <script src="lib/jquery.min.js"></script>
선택적 jQuery 추가 내용을 lib 폴더로 이동할 필요는 없습니다. 원하는 위치로 이 추가 내용을 이동할 수 있지만 index.html 파일에서 올바르게 참조해야 합니다.
WL.Client.init를 자동으로 호출하도록 www/js/InitOptions.js 파일을 업데이트하십시오.
InitOptions.js에서 다음 코드를 제거하십시오.
WL.Client.init 함수는 글로벌 변수 wlInitOptions를 사용하여 자동으로 호출됩니다.
Cordova 애플리케이션이 거의 마이그레이션되었습니다. 이제 생성된 API 보고서를 처리할 시간입니다. 브라우저 창에서 API 보고서를 열고 표시된 항목을 검토하십시오. 보고서의 각 항목에 대해 다르게 구현하거나 전적으로 대체해야 합니다. 마이그레이션 지원 도구를 다시 실행하고 이번에는 새 Cordova 애플리케이션을 지정하여 처리하지 않은 API를 다시 검사할 수 있습니다.
5단계
Cordova 애플리케이션을 테스트하려면 웹 리소스만 미리볼 수도 있고 시뮬레이터/에뮬레이터 또는 실제 디바이스에서 실행할 수도 있습니다. 참고: 클라이언트 측 코드에 보안 및 인증, 푸시 알림, 어댑터 및 유사한 기능에 적용되는 로직이 포함된 경우, 테스트하기 전에 계속 조정해야 할 수도 있습니다(아래 참조). 그러나 애플리케이션 인터페이스를 검토하여 여전히 손상되지 않았는지 확인할 수 있습니다.
웹 리소스 미리보기:
명령행 창에서 애플리케이션 루트 폴더로 이동하십시오.
mfpdev app preview 명령을 실행하십시오.
참고: Mobile Foundation 8.0의 결함 때문에 보안 측면을 포함하는 애플리케이션 미리보기는 실패합니다. 임시 해결책으로 에뮬레이터 또는 실제 디바이스에서 애플리케이션을 미리보십시오.
일반 하이브리드 애플리케이션과 매우 유사하게 모바일 웹 및 데스크탑 브라우저에 대한 웹 애플리케이션도 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인에서 관리되었습니다. Mobile Foundation 8.0에서 웹 앱의 개발은 npm에서 사용 가능한 MobileFirst 웹 SDK로도 수행됩니다.
참고: 이전 릴리스에서 MobileFirst Server는 웹 애플리케이션을 제공하고 퍼블릭 페이싱 URL을 제공했습니다. Mobile Foundation 8.0에서 애플리케이션은 보안 기능, 어댑터 기능 등을 제공하기 위해 MobileFirst Server에만 등록되며, 웹 애플리케이션 제공은 전용 웹 서버로부터의 제공과 같은 표준 방법으로 수행됩니다.
웹 애플리케이션이 거의 마이그레이션되었습니다. 이제 생성된 API 보고서를 처리할 시간입니다. 브라우저 창에서 API 보고서를 열고 표시된 항목을 검토하십시오. 보고서의 각 항목에 대해 다르게 구현하거나 전적으로 대체해야 합니다.
4단계
마이그레이션된 애플리케이션을 테스트하려면 다음을 수행하십시오.
애플리케이션이 MobileFirst Server에 등록되었는지 확인하십시오.
동일 원본 오류가 발생하지 않도록 하려면 되돌리기 프록시를 설정하십시오. 이 목표를 위해 Node.js를 사용할 수 있습니다. Node.js를 사용하여 리버스 프록시를 구현하는 예제는 웹 개발 환경 설정 튜토리얼을 참조하십시오.
네이티브 애플리케이션
제품의 이전 버전에서는 플랫폼 특정 아티팩트(WorklightAPI 폴더, 구성 파일 등)를 우선 작성한 후 각 IDE에서 네이티브 프로젝트에 해당 아티팩트를 수동으로 복사하여 붙여넣기 위해 네이티브 애플리케이션에 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인이 필요했습니다.
앱에서 추가 기능을 사용해야 하는 경우 파일에 추가적인 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와 통합합니다.
명령행에서 open ProjectName.xcworkspace를 입력하여 Xcode에서 ProjectName.xcworkspace 파일을 여십시오. 이 파일은 ProjectName.xcodeproj 파일과 동일한 디렉토리에 있습니다. 파인더에서 두 번 클릭할 수도 있습니다.
헤더의 모든 기존 MobileFirst 가져오기를 다음 새 우산형 헤더의 단일 항목으로 바꾸십시오. Objective C: #import <IBMMobileFirstPlatformFoundation/IBMMobileFirstPlatformFoundation.h>
Swift: import IBMMobileFirstPlatformFoundation
빌드 설정 탭의 기타 링커 플래그 아래에서 -ObjC 플래그의 시작 부분에 $(inherited)를 추가하십시오.
Push Notifications 또는 JSONStore를 사용하는 경우 독립적 가져오기를 포함해야 합니다.
애플리케이션은 이제 MobileFoundation 8.0에 필요한 구조를 준수합니다. 이제 어댑터를 살펴보기 시작할 수 있습니다.
3
어댑터 마이그레이션
지난 릴리스에서는 Eclipse 또는 MobileFirst CLI용 MobileFirst Studio 플러그인을 사용하여 어댑터가 작성되고 개발되고 빌드되었습니다. Mobile Foundation 8.0부터 어댑터는 이제 Java 및 JavaScript 어댑터 생성을 위해 IBM이 제공하는 원형을 사용하여 작성되는 표준 Apache Maven 프로젝트로 간주됩니다.
Maven 사용은 서버 측 개발자에게 개발 시간에 선호하는 도구를 자유롭게 사용할 수 있도록 해줄 뿐 아니라 필요한 종속 항목을 관리하고 통합하는 단순한 표준 방법을 제공합니다. Maven 프로젝트는 명령 행에서 Maven 명령을 사용하거나 이면에서 Maven 명령을 호출하고 단순화된 명령을 제공하는 MobileFirst CLI를 사용하여 작성할 수 있습니다.
알고 계십니까? Mobile Foundation 8.0에서는 DevOps 스타일 운영 모드를 소개했습니다. 여기에서는 어댑터가 일단 MobileFirst Server에 배치되면 어댑터를 재배치할 필요 없이 MobileFirst Operations Console을 통해 라이브로 다양한 특성(예: 데이터베이스 연결을 위한 사용자 이름 및 비밀번호 값)을 구성할 수 있습니다.
실제 마이그레이션을 위한 마이그레이션 도구를 실행하기 전에, 마이그레이션 모드를 설정하십시오. 지원되는 모드는 2개입니다.
마이그레이션 마이그레이션 모드에서는 클라이언트 앱 마이그레이션을 서버 마이그레이션과 함께 사용하여 앱과 어댑터를 Mobile Foundation v8.0으로 마이그레이션할 수 있습니다.
호환성 호환성 모드가 설정된 경우, 서버 마이그레이션만 허용됩니다. 클라이언트 마이그레이션은 Mobile Foundation Migration Studio를 사용하여 수행됩니다.
마이그레이션 모드를 설정하려면 다음 명령을 실행하십시오.
mfpmigrate mode --type [compatibility | migrate]
참고: scan 및 client 명령은 호환성 모드로 설정된 경우 실행할 수 없습니다. 서버 옵션으로 마이그레이션 지원 도구를 실행하여 이전 worklight 프로젝트의 루트 디렉토리를 지정하십시오.
7.1 Worklight 프로젝트를 Mobile Foundation v8.0에 마이그레이션하려면 다음과 같이 마이그레이션 지원 도구를 실행하십시오.
mfpmigrate server --In /Users/WorklightProject**/ --Out /Users/Migrate80Project
구문
mfpmigrate server [--in|-i <sourceDirectory>] [--out|-o <destinationDirectory>] [--projectName|-p <newProjectDirectory>]
설명
기존 MobileFirst 프로젝트에서 보안 영역 및 어댑터의 마이그레이션을 수행합니다.
옵션
<sourceDirectory>: <sourceDirectory>는 마이그레이션하려는 MobileFirst 프로젝트의 루트 폴더여야 합니다. 이 매개변수는 필수입니다.
이 도구를 사용하여 수행되는 작업과 마이그레이션을 완료하기 위해 수동으로 수행해야 하는 기타 변경 사항에 대한 요약 보고서를 작성합니다.
기존 어댑터와 worklight.properties 파일의 경우, 도구에서 더 이상 사용되지 않는 미지원 API를 7.1 어댑터에서 식별하고 다음을 수행합니다.
사용되지 않는/미지원 API를 적절한 v8.0 API로 대체합니다.
지정된 출력 위치에서 해당 v7.1 어댑터를 위한 v8.0 어댑터를 생성합니다.
개발자는 마이그레이션된 어댑터 디렉토리로 이동하여 단일 Maven 명령(mvn clean install adapter:deploy)을 실행해서 어댑터를 빌드하고 Mobile Foundation v8.0 서버에 배치할 수 있습니다.
참고: 마이그레이션된 어댑터 pom.xml은 어댑터를 로컬로 실행 중인 Mobile Foundation 서버에 배치합니다. 이를 다른 Mobile Foundation 서버 인스턴스에 배치하려면 pom.xml에서 서버 세부사항과 인증 정보를 업데이트하고 maven 명령을 실행하십시오.
worklight.properties 파일을 스캔하여 Mobile Foundation v8.0 서버에 명시적 JNDI 값을 포함해서 이러한 항목을 보고서에 출력해야 하는 특성을 알 수 있습니다.
영역의 경우, 이 도구는 AuthenticationConfig.xml의 더 이상 사용되지 않는 모든 지원 영역을 식별해서 다음 작업을 수행합니다.
요약 보고서에는, 사용자의 인증 구성에 사용된 영역 목록이 요약되며 이러한 영역은 사전 정의된 보안 검사가 포함된 v8.0에 사전 구성되어 제공됩니다. (사용자 추가 조치가 필요하지 않음).
지원되지 않는 영역이 요약됩니다(Mobile Foundation v8.0에서는 지원하지 않음).
마이그레이션이 필요한 지원 영역에서 다음 단계가 수행됩니다.
최적 SecurityCheck를 식별하여 특정 영역에 마이그레이션합니다.
식별된 SecurityCheck 기본 클래스로 SecurityCheck 템플리트를 생성합니다(접미부 SecurityCheck를 사용하는 영역과 동일한 이름 사용).
영역의 인증 확인 및 유효성 검증 방법을 식별하여 해당 SecurityCheck 메소드의 인라인 주석으로 복사해서 사용자가 이를 참조하여 새로 생성된 SecurityCheck 템플리트에 동일한 유효성 검증을 구현하도록 합니다.
이 맵핑을 참조하여 영역 메소드에 구현된 인증 로직이 생성된 SecurityCheck 템플리트에 적합한지 확인합니다.
어댑터 인증 영역
어댑터 인증자 영역은 AuthenticationConfig.xml에 정의되어 있습니다. 다음은 샘플 정의입니다.
위 영역 정의에는 이와 비슷한 맵핑이 없습니다. 따라서 이 메소드에서는 맵핑이 불가능합니다. 그 예로, 고객이 리소스 어댑터 메소드 중 하나에서 v7.1로 이를 구현하고 인증 확인 메소드 성공 시 애플리케이션의 ChallengeHandler에서 이를 호출하는 경우가 있습니다.
유사한 맵핑이 해당 v7.1 정의를 기반으로 양식 기반 인증자 영역, 기본 인증자 영역, 사용자 정의 인증자와 같이 v7.1의 모든 지원 영역에 대해 수행됩니다.
v7.1의 영역 유형
영역의 메소드 정의
Mobile Foundation v8.0의 SecurityCheck 메소드
CustomAuthentication
createIdentity
<UserAuthenticationSecurityCheck> createUser
processRequest
createChallenge
CustomAuhenticator. processAuthenticationFailure
CustomAuhenticator.changeResponse
on success CustomLoginModule.login
파일 시스템에서 Java 어댑터 폴더로 이동하십시오(예: ../Desktop/JavaAdapters/RSSAdapter).
별도의 창을 열고 새 Maven 프로젝트(예: ../Desktop/MigratedAdapter)로 이동한 후 src/main/adapter-resources 폴더로 이동하십시오.
{adapter-name}.xml을 편집하십시오. 해당 컨텐츠를 기존 어댑터의 XML 컨텐츠(이 예제에서는 RSSAdapter.xml)로 대체하십시오.
새 어댑터에서 src/main/java/com/sample/(이 예제에서)로 이동하십시오.
기존.java 파일을 기존 어댑터의.java 파일로 대체하십시오.
기존 어댑터에서 추가 라이브러리를 사용 중인 경우 Maven 종속 항목은 지금 작동하기 시작합니다. Worklight/MobileFirst Studio는 라이브러리가 이전에 server/lib 또는 Java 어댑터의 lib 폴더에 배치된 위치에서 사용되지 않으므로 이를 Maven 종속 항목으로 대체하십시오.
새로 작성한 Maven 프로젝트로 돌아가서 디렉토리의 루트에 있는 pom.xml 파일을 여십시오.
명령행 창에서 어댑터의 폴더로 이동하여 mfpdev adapter build 명령을 실행하십시오.
이러한 오류를 해결하려면 Maven 프로젝트를 IntelliJ와 같은 Maven 프로젝트로 가져온 다음 여기에서 프로젝트를 빌드할 것을 권장합니다.
IDE를 이용하면 더 쉽게 빌드 오류를 통해 반복하고 하나씩 해결할 수 있습니다. IntelliJ 및 어댑터 사용에 대해 자세히 학습하십시오.
빌드된 어댑터 테스트
마이그레이션된 어댑터를 테스트하려면 MobileFirst CLI를 사용하여 엔드포인트를 호출하거나 MobileFirst Operations Console에서 Swagger를 사용할 수 있습니다.
Maven 프로젝트 준수 양식 및 코드로 마이그레이션된 어댑터를 사용하여 일부 개발 개념을 살펴보겠습니다.
4
개발 주제
이제 Mobile Foundation 8.0의 새 구조로 마이그레이션된 애플리케이션과 어댑터를 사용하여, 여기에서는 최신 릴리스에서 변경된 일부 구현 개념에 대해 설명하겠습니다.
어댑터
JavaScript 어댑터
글로벌 변수 및 세션
JavaScript 어댑터에서는 "세션"이 없으므로 글로벌 변수를 사용하여 세션에 데이터를 저장하지 마십시오. 작동에서 이 변경사항은 MobileFirst Platform Foundation 7.1에서 처음 나타났습니다. 그러나 단일 요청 중에는 글로벌 변수를 사용하여 사용할 데이터를 저장할 수 있습니다. 그러나 이는 더 이상 권장되지 않습니다.
Mobile Foundation 8.0의 보안 프레임워크는 지난 릴리스의 보안 프레임워크와 다릅니다. 따라서 일부 애플리케이션 백엔드 및 클라이언트 로직을 다시 구현해야 합니다.
이제는 OAuth 모델만을 기반으로 하는 새 보안 프레임워크 및 해당 권한 부여 플로우에 시간을 들여서 익숙해지는 것이 바람직합니다. 또한 액세스 토큰, 보안 검사 및 범위와 같은 새 권한 부여 엔티티에 대해서도 학습하십시오. 이들은 이전에 알려진 보안 테스트, 영역 및 로그인 모듈과 같은 엔티티를 대체합니다.
Inclusive terminology note: The Mobile First Platform team is making changes to support
the IBM® initiative to replace racially biased and other discriminatory language in our code and content
with more inclusive language. While IBM values the use of inclusive language, terms that are outside of
IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other
industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the
documentation to reflect those changes.