Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member190010
Contributor

SMP Environments:

Hi all,

This is my first post, and I am going to share some tips I hope it will be very useful for all who have to decide how to install the SMP in the different environments (Dev, QA and Prod).

Recently, I've been involved in an agentry project and I want to share with you some interesting tips about the different possibilities available to build an Agentry application on top of the SMP 3.0. I am going to focus this article on the development environment.

If you have the possibility to read the official SMP manual: "Introduction to SMP Mobile Platform 3.0" you wiill find there are two possible options to select when working in the SMP development environment: the Single and the Multi-User environments.

Single User Environment

If you decide to use this environment, each developer will need to install the SMP in each machine. Also, the agentry app will be needed to be configured in each machine.

In case there are several developers participating in the same project using this landscape option, it wil cause to have different versions of the same app.

                

Multi-User Environment

In this option, the SAP Mobile Platform is installed is just installed in one server. Also, the agentry app will be installed in just one server.

In case there are several developers participating in the project, when one of them would like to test his local version of the app, he will have to deploy it in the SMP shared server. This can cause some difficulties when trying to consolidate all the different versions, each different developer has in his machine.

Hybrid Single / Multi User Environments

Now, I am going to talk about what in my opinion is the best option of SMP development environment. I will call it "Hybrid Single / Multi User Environment".

This environment consist in installing SMP in each machine for each developer, but also have a shared SMP server to be able to test the integration of all the changes that are performed by each developer to the app. If the shared SMP server is not installed, then developers should find some way to integrate their code with other's developer code, without affecting the whole app behaviour. This sounds like a really hard task.

The reason of having an SMP local installation in each developer machine, is to be able to perform unitary testing. This can be done as long as each developer is capable of connecting their own SMP instance to the customer’s backend. In case it is not possible to connect the developers machine to the SAP backend (customer security restriction), then you could handle a single development instance. Nevetheless, developers should be able to publish their software changes to the shared server and this would require a shared folder on the server.

Another important thing of this environment, is that you have the possibility to install an SVN server in the SMP shared development server, to control the modifications that are made by the different developers in the Java code of the application.

This is a very useful tool when working in large agentry implementations. This installation is needed because the SAP Netweaver doesn't have a built-in a java code SVN (the only one I know about is the (DTR - Design Time Repository, but I think it is not good to mix the mobile app deployment with the desktop app deployment) as it have the ABAP SVN.

Some advantadges of using an SVN tool are: code sharing, versioning, etc.

QA and Production environment

Generally, when an SMP project is implemented, it is installed in QA a very simple environment compared with the one that is installed n Production.

It’s highly recommended to have a silimar environment on QA and on Production, in order to be able to recreate any error that may surge in the Production environment. For example, if I had a clustered environment in Production, it's highly recommended to have a clustered environment in QA.

It is not necessary to have exactly the same environment in both environments. The QA environment could be based on virtual machines with less sizing (memory, cpu, disk). I would say the minimum requirement should suffice. Of course, a sizing should be done by the customer in order to provide at least enough throughput to perform integrated testing.

Below you can find images showing the most typical environments you can find at a customer.

Minimal Production Landscape for SMP 3.0

High Availability and Disaster Recovery environment

Hope this article was useful.

Have a nice day!