In this webinar the CTO and Product Management Director of Service2Media explain about the Service2Media App Lifecycle Platform - M2Active. M2Active is the technique behind the platform: Architecture and Runtimes. This webinar is rather technical and especially interesting for CIO's or app development and IT staff that are interested to use The App Lifecycle Platform to develop portfolio's of core and critical App's.
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
The App Lifecycle Platform Webinar
1. SERVICE2MEDIA
THE APP LIFECYCLE PLATFORM
Peter Broekroelofs, Chris Lukassen,
CTO and Co-Founder Product Management Director
Webinar 1
2. AGENDA:
Peter Broekroelofs 1. Corporate IT App Challenges 2. The
App Lifecycle Platform
3. Business model
Chris Lukassen 4. Platform Architecture 5. Runtime
Webinar 2
3. CORPORATE IT APP CHALLENGES
OS and device fragmentation Shortage of native developers Manageability of mobile initiatives
SHORTER TIME-TO-MARKET AND LOWER TCO
Webinar 3
11. BUSINESS MODEL
Platform licensing: Maintenance & support Platform Services:
• Runtime licensing • Help desk • Solution development
• Developers portal • Development training
• Maintenance and bug • Design training
fixes • App center set up
Advanced app solutions | 11
13. TECHNOLOGY
ECOSYSTEM
• Cross platform development
• Runtimes
• Components libraries
• Cloud
• Lifecycle services
• Development portal
• M2Active Studio
Webinar 13
14. M2ACTIVE ARCHITECTURE RUNTIME CONCEPT
M2ACTIVE
APPLICATION
M2Active API M2Active API M2Active API M2Active API
Native Runtime Native Runtime Native Runtime Native Runtime
Origin
Server
M2Active Architecture & Runtimes / 14
15. M2ACTIVE ARCHITECTURE RUNTIME DETAILS
Application
APPLICATION SCRIPT
Logic
M2Active
M2ACTIVE VIRTUAL MACHINE (LUA)
VM
M2Active Net- Data Multi- Social
UI Sensors Web PIM Crypto Analytics
API working Storage media Media
Mobile
M2Active UI X
Manager
Comms M2ACTIVE RUNTIME CORE
Core Manager
Mobile
OS
M2Active Architecture & Runtimes / 15
16. M2ACTIVE ARCHITECTURE
ORIGIN SERVER CONNECTIVITY
M2ACTIVE NATIVE
M2Active Native
RUNTIME
Runtime
Web Services based on REST/JSON
Service2Media Server-side Third Party
Cloud Services Customer App Origin Server
M2Push Customer Social Networks
M2Pay Business data Mobile Analytics
M2Stats and services Mobile Ad networks
….. …..
M2Active Architecture & Runtimes / 16
17. M2ACTIVE ARCHITECTURE
ORIGIN SERVER CONNECTIVITY
Mobile device Mobile device
Incl. support for
M2Active Runtime M2Active Runtime • Text
• Images (JPEG/PNG)
Google JSON • Basic XML
Protocol
Buffers
Incl. support for
• Basic auth.
• Digest auth.
TCP socket HTTP/HTTPS M2Active client environment
Server environment
Google JSON
Protocol
Buffers
Glassfish Glassfish
M2Active M2Active
‘Other’
server server
servers
M2Active M2Active • Designed for 3G/Wi-Fi
‘Other’ One-way communications (pull)
Platform Platform •
services • No dependency on M2Active server
services services
• No firewall traversal constraints
M2Active Architecture & Runtimes / 17
18. M2ACTIVE ARCHITECTURE
NATIVE PLUGIN ARCHITECTURE
M2ACTIVE
APPLICATION
Native
M2Active
UI API Bespoke
APIs
controls
VM Manager
UI Manager
MC Manager
Service2Media
Customer /
Server
Third party Server
M2Active Architecture & Runtimes /
18
27. M2ACTIVE RUNTIMES CAPABILITIES
ICON SCALING FOR ALL APP STORES
• App icons are essential for helping
the user to discover Apps in the stores
and on the device
• Each APP store imposes strict and
specific rules for application icons
(size, pixel density, form factor etc)
• M2Active includes tooling that
automates this cumbersome process
M2Active Architecture & Runtimes / 27
Currently we have the following cloud services:Push ServerIn app PaymentsAdvertisementExtended with e.g.:Cloud Enterprise app storeCloud TestingCloud Big Data (predictive analytics)………..Partner first and potentially acquire later
The M2Active client architecture is based on the Runtime principle.Each Runtime is developed in native code (fast execution for all complex and heavy lifting processing) and exposes the M2Active Client API to the application layer.Hence the Runtime provides a uniform application environment across all mobile OSs.The application is written in Lua script, details explained later, an easy to learn, easy to run open source scripting language.Service2Media has extended the Lua language with a range of mobile API bindings, allowing the application to access device resources.Each downloadable M2Active application binary consists of the application code (in binary format for efficiency reasons) combined with the applicable native Runtime image.Hence each app runs on its private copy of a Runtime and technically behaves exactly like a native app.When started on the device, the Runtime initiates itself and starts executing the application byte code.Due to the mentioned architecture decisions, the performance of the M2Active app is comparable to the performance of a corresponding native app.
This sheets gives an insight in the structure of an M2Active Runtime.A range of Client API classes are exposed to the application layer.The Runtime itself in written in native code for fast execution and easy access to device resources and consists of the following main components: User Interface (UI) Manager, responsible for all interaction with the user, including view manager, image manager, font manager and navigation models (not drawn)Mobile Communications (MC) manager, responsible for interactions across the networks (mobile , Wi-Fi) The Virtual Machine (VM), responsible for parsing and executing the application byte codeThe M2Active Runtime core, glueing all components together and responsible for startup/shutdown, event handling, caching, error handling etc etc).
As mentioned before, M2Active does not mandate a Service2Media backend, although Service2Media does provide a number of optional Cloud services, including Push, Payments and Statistics, that may come in handy for customers. The M2Active Runtimes support APIs that allow developers to rapidly connect to such services. In addition, The M2Active client API supports a range of APIs for accessing third party Cloud Services like Social Media and Mobile Advertisement Networks. The M2Active Runtimes supports APIs that allow developers to rapidly connect to such services.Of course, the M2Active MC component furthermore allows to connect to other (customer or third party) origin servers a range of communications services that are explained later in this presentation.
The M2Active Mobile Communications Runtime components provide 2 distinct communications services: open communications stack based on HTTP/HTTPS at the network layer (OSI layer 5) and using JSON (JavaScript Object Notation) at the presentation layer (OSI layer 6). This is the de-facto standard for accessing web services in the mobile domain and most origin servers will support this stack ‘out-of-the-box’ ‘proprietary’ communication stack based on TCP sockets for transport and using Protocol Buffers (Google specification) at the presentation layer. This communications stack gives a highly efficient 2-way communications channel , but requires special precautions at the server-side end-point. The Service2media hosting environment supports such endpoints. Customers can create such endpoints based if they so wish, Service2Media is willing to provide more details.
The M2Active Platform supports the concept of native plugins.These plugins can provide functionality that is not, or not yet, supported in the Platform.This may be the case for specialised, domain- or customer specific functions, that probably will never make it to the Platform, or functions that as such are suitable for productising but that are not yet realised in the Platform.The plugin framework therefore is a powerful tool making application projects independent of the M2Active scope and roadmap.Of course, by nature, the plugins have to be developed for each individual applicable mobile OS.Currently, Service2media has a team that is dedicated to developing native plugins. We are working on opening and documenting the Plugin framework allowing our partners and customers to create Plugins themselves.
A view on the most important APIs supported by M2Active 2.8, for information only of course.Each release will introduce new APIs and API classes.
Designer cheat sheet indicating the richness of M2Active UI controls.
Indicating the richness of advanced, complex M2Active UI components
TableviewGo beyond native experience (multi line, date label, dynamic cell with “new” label)With M2Active you are able to build advanced table views.
Complex controls expose a uniform API towards the Lua development environment, but may manifest themselves in the UI in a fashion that approximates the native look and feel.
Giving an insight in the M2Active view manager, which is part of the UI Runtime Component.Wide range of strategies for building a view.
Even the most complex views can be created by cleverly selecting and combining the various view layout hierarchies supported by M2Active.
This sheet explains the working of 9-patch scaling, frequently used in M2Active to scale UI artifacts like buttons, labels, backgrounds, icons etcThis is an image scaling method that was developed by Google.The scaling is defined in the PNG master image of the UI artifact itself, by means of the add-on horizontal and vertical bars shown in the diagram:These bars define: How to expand the image itself, preserving its intended outer shape How to fill the expanded image, allowing to preserve for instance label areas or icons that reside within the image.9-patch images are generated using M2Active design tooling and can be injected as is in the M2Active build environment, requiring no further manual adaptations.
Impression of the M2Active Developer Portal (current release and roadmap).The developer portal will be the center point of the M2Active developer community.