SAP Web IDE Solution Overview

advertisement
SAP Web IDE
Solution Overview
October 2014
Provided by SAP Customer Experience Group (CEG)
Legal disclaimer
The information in this presentation is confidential and proprietary to SAP and may not be disclosed without the
permission of SAP. This presentation is not subject to your license agreement or any other service or subscription
agreement with SAP. SAP has no obligation to pursue any course of business outlined in this document or any related
presentation, or to develop or release any functionality mentioned therein. This document, or any related presentation
and SAP's strategy and possible future developments, products and or platforms directions and functionality are all
subject to change and may be changed by SAP at any time for any reason without notice. The information in this
document is not a commitment, promise or legal obligation to deliver any material, code or functionality. This
document is provided without a warranty of any kind, either express or implied, including but not limited to, the implied
warranties of merchantability, fitness for a particular purpose, or non-infringement. This document is for informational
purposes and may not be incorporated into a contract. SAP assumes no responsibility for errors or omissions in this
document, except if such damages were caused by SAP´s willful misconduct or gross negligence.
All forward-looking statements are subject to various risks and uncertainties that could cause actual results to differ
materially from expectations. Readers are cautioned not to place undue reliance on these forward-looking statements,
which speak only as of their dates, and they should not be relied upon in making purchasing decisions.
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
2
Agenda
Introduction and Overview
Developing Applications
Technical View
Additional Information
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
3
Introduction and Overview
Key trends
 By 2020 at least 70% of new app development will
happen on cloud1
 Developers collaborate more over cloud-based
infrastructures2
 Professional programmers are critical for the
development of complicated applications. They are
expected to deliver applications faster, with less
expensive and less need for a complex
infrastructure.2
 Business users needs to be abled to create custom
software applications that once required the
assistance of professional programmers2
1 Gartner
Application Architecture, Development & Integration Summit Dec. 2013
2 Gartner
Hype Cycle for Application Development 2013
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
5
From today to vision
AppDesigner
AppBuilder
Gateway
Productivity
Accelerators
SAP Web IDE
Eclipse
UI Development
Toolkit for
HTML5
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Fiori
Toolkit
6
Vision
Delivering a web-based development tool designed to support
the end-to-end lifecycle for SAPUI5 based applications
Prototyping*
Developing
Testing
Packaging*
Deploying
Extending
* not in current GA release, planned innovation
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
7
What is SAP Web IDE?
 A development environment to
• extend SAP Fiori apps and UI5 apps
• build new UI5/HTML5 or custom Fiori apps
 Browser-based (Web) tool available on SAP HANA Cloud Platform
and on SAP HANA XS*
 Provides standard Web development tools like code editors,
wizards, and WYSIWYG tooling that are optimized for building
responsive HTML5 apps with SAPUI5 (e.g., code completion)
 Application templates act as the foundation for highly efficient app
development
 Supports the E2E application lifecycle: UI design, development,
testing, deployment, and customer extensions for responsive
SAPUI5 apps
* not in current GA release, planned innovation
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
 Everything is source code-based – the tool never gets in the way
of the developer
8
Who is the target user?
 Anyone looking for a modern and secure IDE
 Users who want their code online and accessible from
anywhere so they work more efficiently
 Users who want to design, build, test, and deploy
responsive SAPUI5 and Fiori-like apps using SAP
HANA or Gateway OData services
–
–
–
–
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
SAP developers (SAP HANA, UI, etc.)
Non-SAP developers
Business experts
Designers
9
Product benefits
 Develop once, deploy everywhere & run on any
device - mobile, tablet, desktop
 Reduces cost, complexity and effort through cloudbased offering (zero installation)
 Increases developer productivity by simplifying
development to create apps faster
 Enables business experts and designers via highly
efficient tools
 Improves team productivity with the ability to code
and collaborate anywhere
 Profit from code templates and SAP best practices
to rapidly build applications
* not in current GA release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
10
Key features 1/2
Development environment
 Source code editor with SAPUI5
specific code completion
 Project persistency
 Layout Editor (WYSIWYG)
 Mock data support for testing purposes
 Instant preview in browser
 Search capabilities
 User-friendly interactive extension
mechanisms
 Import and deploy to ABAP repository
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
11
Key features 2/2
Templates for creating and extending projects
 New project:
– Empty SAPUI5 Application template
– SAP Fiori Application template
– SAP Web IDE Plugin Development templates
 Extensibility of SAPUI5 applications:
– Create extension project
– Extend controller
– Hide a control
– Extend a view
– Replace a view
– Replace a service
– Customize text of i18n resources
– Add new views to existing project
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Create your own custom template
12
Developing Applications
Development process overview
Create
New project
Develop
Coding
Source Code Editor with code
completion, dynamic API reference,
etc.
Templates
Wizards guiding the user through a
step-by-step process, automatically
generating needed files and code
Create
Preview
Develop
Preview
Deploy
Deploy
to
SAP HANA Cloud
Extensibility
project
to
WYSIWYG Design
Design the UI in the Layout Editor
ABAP repository
to
Visual
Extensibility
While running the UI5/Fiori app
select an element and apply an
extension, modification, replacement
Mobile Platform*
Git integration
* not in current GA release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
14
Development environment overview
Create
Develop
Preview
Menu bar
User name
Toolbar
Search
 Save
 Create file
Deploy
 Find in files
(file name or content)
 Create folder
 Delete
Git
 Undo
 Manage your
development objects in
your Git repository
 Redo
 Run
History
Development
view
 Tag, Cherry-Pick, Revert
Collaboration
User
Preferences
 Integration with SAP Jam
Editor
API Reference
 SAPUI5 code editor
 Context sensitive
 Code completion
 Dynamic support
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
 Collaborate with project
members
15
Create
Create
Develop
Preview
Deploy
Various options are available for the developer to create a new project:
Create a new project
Create a project by importing the application from the
divers repositories
Create a project from
an existing archive
File > Import > Application from SAPUI5 ABAP Repository
File > Import > Application from SAP HANA Cloud Platform
File > New > Project
File > Import > Archive
Templates
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Create a project in an
existing Git repository
Create a new extension
project, e.g. for SAPUI5 or
SAP Fiori extensibility
File > Git > Clone Repository
File > New > Extension Project
16
Templates
Create
Develop
Preview
Deploy
the template wizard guides the user
through the definition of an
application and then generates the
code
Standard templates are provided







SAPUI5 Application Project
SAPUI5 Master Detail Application
SAP Fiori Starter Application
SAP Fiori Extension Project
Empty Plugin Project
New Component
Extensions
Additional templates of any kind can
be created, added and managed
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Template selection for new project
Template selection for new component
17
Template library
Create
Develop
Preview
Deploy
The Template Library displays all
the available templates
Tools > Template Library
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
18
Layout Editor (WYSIWYG)
Design your view graphically in the Layout
Editor and display the content of the XML view
Right-click the XML file and open with Layout Editor
 Design the view in the graphical display (Canvas)
 Drag & drop the SAPUI5 controls from the Palette to the
Canvas
 Configure the properties of the controls
 Bind the data fields to the OData service entity sets
 Check the outline of the XML view in the Outline pane
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
19
Layout Editor (WYSIWYG)
Canvas
Outline pane
 Content of the XML
view
 Outline of the XML
view
 Graphical display
Icon to open
Outline pane
Palette
 SAPUI5 controls
 drag & drop
controls to the
canvas
Properties and
Data pane
 Shows properties
and data of
selected control
 Entity sets and
propertise of
OData service
 OData binding
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
20
Coding (Assisted development)
Create
Develop
Preview
Deploy
 Code completion
– For JavaScript and XML
– Context sensitive
– Editor completes words, code fragments
or entire SAPUI5 objects
– JS snippets
 Insertion of XML code snippets
 Metadata completion from schema files
 API Reference pane
– Integrated API reference
– Context sensitive, dynamic support
 Auto-save
Consistent use of terminology is
provided by Application Domains and
localized strings (translation)*
* not in current GA release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
21
New extensibility project
Create
Develop
Preview
Deploy
When creating a new extension project, you need to identify the parent SAPUI5 or standard Fiori
application being extended
File > New > Extension Project
Two options. Either you can:
1. import the parent app to the workspace
2. or, access the parent app remotely
The tool creates the extension project in your
workspace and generates the files such as
 Component.js
 index.html
 Etc.
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
22
Extensibility by means of a template
Create
Develop
Preview
Deploy
The template for extending an SAPUI5 or SAP Fiori
app guides the user through a step-by-step process
All extension options of the SAPUI5 / SAP Fiori
extensibility concept are provided in the template:
 Create extension project
 Extend controller
 Hide a control
 Extend a view
 Replace a view
 Replace a service
 Customize text of i18n resources
 Add new views to existing project
To add a new extension, select the extension
project and choose one of the available templates.
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
23
Extensibility via template:
Create
Develop
Preview
Deploy
Replace view example
This example illustrates the sequence of screens
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
24
Visual extensibility
Create
Develop
Preview
Deploy
 The Outline pane is displayed next to
the app
 While running the app, you can select
an element either in the Outline pane
or directly in the app when in
Extensibility mode
 Appropriate extension options can be
chosen
 Show all application elements, or filter
by extensible or extended elements
 Switch displayed language making
use of i18n features
 Application can get data online from
backend or use mock data
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
25
Run the application
Create
Develop
Preview
Deploy
You can run the application to test functionality and design
There are various ways to run your application:





Run with a frame
Run without a frame
Run with mock data
Run on the SAP HANA Cloud
Run your SAP Fiori application in a SAP Fiori launchpad sandbox
Additional ways can be provided via plugins, e.g.
 Run Fact Sheet
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
26
Simulator (Application Preview)
Create
Develop
Preview
Deploy
Language
Choice of simulator
 Desktop (large)
 Mobile devices, e.g. iPad
(medium), iPhone (small),
Android, etc.
 Define a custom size
 The application is
responsive – will adapt its
appearance to the screen
size
 Multiple screen sizes are
predefined
 If the application supports
multiple languages (i18n
properties), then the
language text can be
changed on the fly
QR Code generation
 A QR Code is generated for
the URL by
clicking the
rectangle
Orientation
 The orientation of the screen
can be toggled between
landscape and portrait view
Refresh
 The application can be
reloaded without needing to
rerun it from the
development environment
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
27
Run the application with mock data
Create
Develop
Preview
Deploy
You can run the application with mock data, e.g. in case your
backend systems are not ready or not available
There are two options available:
 Let the mock service generate data
 Provide data in a JSON file
A mock data editor is available that allows to create a JSON file
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Project Settings:
28
Deploy the application
Create
Develop
Preview
Deploy
Two options are available for the developer to deploy the application:
#1 Deploy to SAP HANA Cloud
#2 Deploy to ABAP Repository
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
• Deploy
as a new application
• Update
an existing application
29
Technical View
SAP Web IDE on SAP HANA Cloud Platform
• Architecture Overview
• Git Integration
• Technical Overview
System context
Any SAPUI5 apps
SAP Fiori apps
External Services
Plug-ins
SAP HANA XS
(OData Services)
SAP Web IDE
Templates
Orion
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Git
SAPUI5
SAP Gateway
(OData Services)
31
Delivery options
There are multiple options on how to run SAP Web IDE
SAP Web IDE
SAP HANA Cloud Platform
(HCP)
• Provided by HCP (AppServices)
• Develop in the cloud
• Connect to your cloud or
on-premise backend systems
• Deploy apps to the cloud or
on-premise systems, e.g.
SAP Gateway
Local Installation*
• Develop on developer’s computer
• Deploy apps to on-premise
systems, e.g. SAP Gateway
• Only for trial purposes (test and
evaluation)
* not in current GA release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
32
SAP Web IDE on HANA Cloud Platform
Architecture Overview
SAP Web IDE on SAP HANA Cloud Platform
System context
Any SAPUI5 apps
SAP Fiori apps
External Services
Plug-ins
Templates
Orion
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
SAP Web IDE
SAP HANA XS
(OData Services)
SAP HANA
Cloud Platform
SAP Gateway
(OData Services)
Git
SAPUI5
34
SAP Web IDE on SAP HANA Cloud Platform
Architecture Overview
SAP HANA Cloud Platform
Cockpit
Browser
SAP Web IDE
Orion
Internet / Cloud
Corporate Network / Intranet
Git
(App Projects)
SAPUI5
Version
Permanent File
System
HTTPS
SAP HANA Cloud Connector
Windows OS
Linux OS
Mac OS X
(all 64-bit)
HTTP(S)
SAP Gateway
Trusted RFC

For more details: SAP Web IDE Developer Guide
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
Business Suite / ERP
35
SAP Web IDE on SAP HANA Cloud Platform
Running HTML5 Apps on SAP HANA Cloud
SAP HANA Cloud Platform
SAP Web IDE in
browser
Deploy
SAP Web IDE
HTML5 Apps
Dispatcher
Application
Push / Fetch
Orion
Git
(App Projects)
OData
User Workspace
OData
Internet / Cloud
Corporate Network / Intranet
HTTPS
SAP Gateway
Via Cloud Connector
Trusted RFC
Business Suite / ERP

For more details: SAP Web IDE Developer Guide
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
36
SAP Web IDE on SAP HANA Cloud Platform
Running HTML5 Apps on SAP Gateway
SAP HANA Cloud Platform
SAP Web IDE
SAP Web IDE
Push / Fetch
Orion
OData
Git
(App Projects)
User Workspace
Deploy
Internet / Cloud
Corporate Network / Intranet
HTTPS
SAP Gateway
Via Cloud Connector
Trusted RFC
Application
Business Suite / ERP

For more details: SAP Web IDE Developer Guide
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
37
SAP Web IDE on SAP HANA Cloud Platform
Git Integration
What is Git ?
Git is a widely used revision control and source code management system
that records snapshots of all your files over time.
 Most popular version control system for software development
– Used by several major open source projects (Eclipse,…)
 Distributed and independent of network, user works offline (contrary to ABAP)
 No exclusive locking but conflict detection & powerful merge algorithms/tools
 Powerful branching options allow to develop several things independently
Available in SAP HANA Cloud and supported by SAP Web IDE
* not in Beta Release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
39
Git on HANA Cloud Platform
Used by SAP Web IDE
 Source code is stored in Git repositories
SAP HANA Cloud Platform
 Every developer has a local clone of a central remote
repository. Clone is only executed initially to create
the local Git repository. (If clone is executed again,
then local Git repository will be overridden)
Remote
Git
Repository
 A specific state of the repository is checked out into
the developer’s workspace
Clone
Fetch
4
 Changes are collected in commits (≅ ABAP transport)
 Commits can be pushed to and fetched from the
remote repository
 Git allows to branch or the merge branches at any
time
Push
1
Checkout
Workspace
Files
2
3
Local Git
Repository
Commit
* not in Beta Release, planned for future release
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
40
SAP Web IDE and Git Integration
SAP Web IDE enables collaborative
development by providing seamless
integration with your Git repository
via the Orion Git client plugin
Git client pane
Commit & Push
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
41
SAP Web IDE on SAP HANA Cloud Platform
Technical Overview
SAP Web IDE on SAP HANA Cloud Platform
How to set up and access SAP Web IDE on HCP
High Level Steps:
1) Register for a developer account on SAP HANA Cloud Platform website
https://account.hana.ondemand.com/. You may also use the trial version
https://account.hanatrial.ondemand.com/
2) Follow this document link to subscribe & setup SAP Web IDE
https://help.hana.ondemand.com/help/frameset.htm?234b2c0184b0489b8b67e955f8fe51d5.html
3) After setting up SAP Web IDE, you are ready to install and setup SAP HANA Cloud Connector to
connect to your on-premise NW Gateway system. Continue to next section.
Link to additional information: SAP Web IDE - Enablement: http://scn.sap.com/docs/DOC-55465/ Try It!
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
43
SAP Web IDE on SAP HANA Cloud Platform
SAP HANA Cloud Connectivity Service
SAP Web IDE
Destinations
Cloud
(on-demand)
Internet
Secure Integration with the SAP Web IDE, Business
Suite, and Other On-Premise Systems

Establishes secure SSL tunnel between the
SAP HANA Cloud and on-premise systems

Connectivity created by on-premise agent through
reverse-invoke process

Supports pre-configured “Destination API” and
certificate inspection to safeguard against forgeries

Complementary to SAP NetWeaver Gateway,
SAP HANA Cloud Integration and 3rd party integration
suites both on-premise and in the cloud
Customer
(on-premise)
SAP HANA
Cloud Connector
ERP NW Gateway Others
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
44
SAP HANA Cloud Connector
How it works with SAP Web IDE
High Level Steps:
Once you have access to the HANA Cloud Platform and set up SAP Web IDE, you
would like to connect to on-premise system:
SAP Web IDE
3
Destinations
Cloud
1)
2)
(on-demand)
Internet
2
Download & install the SAP HANA Cloud Connector
on a machine behind the firewall
From SAP HANA Cloud Connector:
1)
Perform initial configuration to connect the cloud connector to your
SAP HANA Cloud Platform developer account(s).
2)
Configure the on-premise resources for NW Gateway, which shall be
made accessible to the SAP Web IDE running in your cloud account.
Reverse Invoke
Customer
(on-premise)
SAP HANA
Cloud Connector
HTTPS
1
3)
Configure destinations for each resource paths mapped in step 3
above.
Details on how to set up:
1)
2


SAP Gateway
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
In SAP HANA Cloud Cockpit:


Prerequisites
Download SAP HANA Cloud Connector at HANA Cloud Platform Tools
How to Set up your SAP Web IDE on HANA Cloud
SAP HANA Academy - SAP Web IDE: 00. Getting Started - Connect Remote Systems
45
Connecting Cloud Applications with On-Premise Systems
Accessing on-premise systems from the cloud can be achieved in two ways:
Reverse proxy approach
-
existing network infrastructure can
be used
•
configuration of DMZ and firewall
needed, attacks from Internet
possible, not all protocols can be
supported
-
on-premise systems not reachable from Internet, easy setup and
configuration
-
additional on-premise component
On-Premise
HANA Cloud
Platform
SAP
Application
Firewall
Proxy
Firewall
DMZ
Public
Internet
Usage of SAP HANA Cloud Connector as on-premise agent
HTTPS
On-Premise
SAP
Cloud Firewall Proxy
Application Connector
DMZ
SSL
Firewall VPN
HANA Cloud
Platform
Public
Internet
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
46
Identity Service
Delegated Authentication and Authorization Across SAP Applications
■
Access protected
resource
Application(s) on
HANA Cloud
■
User
Delegate
Authentication
Authentication
Identity Provider
(e.g. SAP ID Service, SAP NetWeaver IdM,
Microsoft ADFS 3.0, …)
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
■
■
SAML-based single sign-on (SSO) for
delegated authentication and identity
federation
Support for 3rd party Identity Providers (IdP)
in the cloud or on-premise
Authentication against common 3rd party
LDAP user directories, e.g. Microsoft Active
Directory
Flexible permissions model enables mapping
from external group or roles memberships
to web roles in the Cloud
47
Additional Information
Useful links
SAP Web IDE
SAPUI5
 SAP Web IDE on HANA Marketplace:
 UI Development Toolkit for HTML5 - Demo Kit (interactive doc
on SAPUI5 / OpenUI5):
http://marketplace.saphana.com/p/3334
 SAP HANA Cloud Platform:
http://hcp.sap.com/index.html
 SAP HANA Cloud Platform (SAP Web IDE trial beta):
https://account.hanatrial.ondemand.com/
 Official documentation:
https://help.hana.ondemand.com/
under Platform Solutions choose SAP SAP Web IDE
 Documentation within SAP Web IDE:
Choose Help > Documentation
https://sapui5.hana.ondemand.com/sdk/
 OpenUI5:
http://sap.github.io/openui5/
 UI Development with SAPUI5 documentation:
https://help.hana.ondemand.com/help/frameset.htm?e8fdaa44bb5710148368de
02b150bce3.html
SCN (SAP Community Network)
 SAPUI5 & SAP Web IDE:
http://scn.sap.com/community/developer-center/front-end
Additional related information to SAP Web IDE
 SAP HANA Cloud Platform:
https://help.hana.ondemand.com/
Go to SAP HANA Cloud Platform > Getting Started
 SAP Fiori:
http://scn.sap.com/docs/DOC-41598
 SAP for Mobile:
http://scn.sap.com/community/mobile
 SAP Gateway:
http://help.sap.com/nwgateway20
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
49
Thank You!
Provided by SAP Customer Experience Group
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
© 2014 SAP AG or an SAP affiliate company.
All rights reserved.
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of SAP AG or an
SAP affiliate company.
SAP and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG
(or an SAP affiliate company) in Germany and other countries. Please see http://global12.sap.com/corporate-en/legal/copyright/index.epx for additional trademark
information and notices.
Some software products marketed by SAP AG and its distributors contain proprietary software components of other software vendors.
National product specifications may vary.
These materials are provided by SAP AG or an SAP affiliate company for informational purposes only, without representation or warranty of any kind, and SAP AG or its
affiliated companies shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP AG or
SAP affiliate company products and services are those that are set forth in the express warranty statements accompanying such products and
services, if any. Nothing herein should be construed as constituting an additional warranty.
In particular, SAP AG or its affiliated companies have no obligation to pursue any course of business outlined in this document or any related presentation, or to develop or
release any functionality mentioned therein. This document, or any related presentation, and SAP AG’s or its affiliated companies’ strategy and possible future
developments, products, and/or platform directions and functionality are all subject to change and may be changed by SAP AG or its affiliated companies at any time for
any reason without notice. The information in this document is not a commitment, promise, or legal obligation to deliver any material, code, or functionality. All forwardlooking statements are subject to various risks and uncertainties that could cause actual results to differ materially from expectations. Readers are cautioned not to place
undue reliance on these forward-looking statements, which speak only as of their dates, and they should not be relied upon in making purchasing decisions.
© 2014 SAP AG or an SAP affiliate company. All rights reserved.
51
Download