Hogyan mutassuk be a Magic mobil technológiát Gábor Nádasy - CTO
Demonstrációs alapgondolatok Cégekről (MSE, Asseco, Partner,…) Termékek röviden, technológia Értékek összefoglalása , marketing Architektúra közérthetően, ha kell részletesen Jövőről Mobil
A Comprehensive Application Platform for developing Mobile, Web, SOA and desktop applications Client
Windows, iOS, Android, BlackBerry, Windows Mobile
Server
Windows, AIX, Solaris, Linux, IBM i
Database
Oracle, MS-SQL, DB2, Pervasive, ODBC, SQLite
Framework .NET, Java, J2EE, COM, SOAP, REST
Business and process integration suite for data integration between diverse applications
Applications
SAP R/3, SBO, SAP A1, Sharepoint, Dynamics CRM, Force.com, Salesforce.com, JDE, Lotus Notes
Endpoints
.NET, Java, uniPaaS, SOAP, REST, JMS, WebSphere MQ, MSMQ, FTP, HTTP, TCP, Flat file, Office, XML, SNMP, HL7
Technology Value
Simple – Code-free, Metadata approach Future-proof – Technology isolation
Comprehensive – Rich technology stack Agile - Productive, Adaptive
Scalable – Desktop to enterprise
Technology Directions
In-memory computing
application platform products that provide an
in-memory object store, often called "cache" or "space," where multiple, distributed
applications can place, retrieve and exchange large volumes of data objects, asynchronously
obtained from various data sources
What is the difference?
What is the difference?
Enterprise Capabilities Management, Monitoring, Auditing, Alerting
High Availability
Elastic Scalability
High Performance
Future-proof, again .NET runtime on Windows
Both for RIA and Client/Server Studio Based on Visual Studio Interaction and Visual redesign
developers
developers
New projects outlook
Gartner Opening Keynote: The Ten Most Important Strategic Planning Assumptions Gartner Application Architecture, Development & Integration Summit November 29 — December 1, 2011, Caesars Palace, Las Vegas, NV
Worldwide Smartphone OS Market Share Android
iOS
Symbian
RIM
Bada
Microsoft
Other
100% 80% 60% 40%
20% 0%
Source: Gartner
Other RIM4,8% 8,8% Symbian 11,7% iOS 23,9%
Android 50,8%
Android A Linux-based operating system for mobile devices Developed by the Open Handset Alliance led by Google
Developers write primarily in a customized version of Java, using the Android SDK
iOS Derived from Mac OSX, based on Darwin, a Unix-like operating system based on FreeBSD and Mach Xcode is the environment for the iOS SDK. iPhone applications, like iOS and Mac OS X, are written in Objective-C
BlackBerry BlackBerry OS and PlayBook OS are proprietary multitasking environments developed by RIM
Devices are integrated into an organization's e-mail system through BES
BlackBerry JDE for building Java Platform, Micro Edition (Java® ME) applications, MIDP compliant Java
Browser (Web/HTML5)
Zuckenberg – Facebook (2012 szept.)
Hybrid App
Native App
Mobile (also) Development Application development tooling Integration and enterprise connectivity Single development paradigm Native/hybrid runtime
Mobile, Desktop, Web and Server development
Let’s see it in action…
In 2 minutes – with 0 lines of code Connected to the database Created SQL statements for query, insert, update, delete Created secure web services for query, insert, update, delete
Fully transactional, with rollback support Implemented multi-tier, scalable architecture Implemented application management Distributed the application
Created a mobile form with form designer
Connected to the server Received application updates Consumed the web services for query, insert, update, delete Handled dataview caching Portable to multiple platforms
Handled touch gestures Handled device rotation events Handled multiple screen DPI
Magic Mobile képernyő méretezés Gábor Nádasy - CTO
Tanfolyami tematika Introduction About Magic xpa ....................................................................................................... 1 About the Seminar ..................................................................................................... 2 Seminar Prerequisites .................................................................................................. 2 About Mobile Devices ................................................................................................ 3 Magic xpa on a Mobile Device ................................................................................... 4 How to Use this Guide ................................................................................................ 5 Seminar CD ............................................................................................................... 6 Magic Software University .......................................................................................... 6
Understanding the Client Developing in RIA ...................................................................................................... 8 How Does It Work? .................................................................................................. 13 Form Considerations ................................................................................................. 14 Placement ................................................................................................................ 17 Supported Controls................................................................................................... 23 Application Navigation ............................................................................................ 24 Design Considerations .............................................................................................. 25 Exercise .................................................................................................................. 29 Summary ................................................................................................................. 29
Tanfolyami tematika Advanced Controls Tables ..................................................................................................................... 32 Mobile Events .......................................................................................................... 34 Selection Lists ........................................................................................................... 35 Menus .................................................................................................................... 37 Exercise .................................................................................................................. 38 Summary ................................................................................................................. 38 Interacting with the Mobile File System ................................................................................................... 40 Querying Device Characteristics ................................................................................ 40 Finding the Device Location (GPS) .............................................................................. 41 Camera Support ...................................................................................................... 42 Accessing the Mobile Devices’ Capabilities – iOS only ................................................ 42 Summary ................................................................................................................. 43
Tanfolyami tematika Customization and Installation Properties File .......................................................................................................... 46 Customizing the Application ...................................................................................... 48 Exercise .................................................................................................................. 52 Summary ................................................................................................................. 52 Preparing the Testing Environment Defining a Simulator ................................................................................................. 54 Troubleshooting ....................................................................................................... 56 Debugging .............................................................................................................. 57 Summary ................................................................................................................. 58
Preparing the Testing Environment Defining a Simulator ................................................................................................. 54 Troubleshooting ....................................................................................................... 56 Debugging .............................................................................................................. 57 Summary ................................................................................................................. 58
Mobil képernyő beállítások Űrlap típus (SDI, Child, Floating, Modal, Tool, Fit to MDI, MDI Child, MDI Frame) Ablak megnyitása (lásd következő slide) Placement Mi a ‚layer’ a Magic XPA-ban? Menü
Enables you to define the mode by which the form will open Mode
Customized
Description The window opens in the location defined by the X and Y properties of the form. The size of the form is defined by the Width and Height properties.
Windows Default Bounds
The window opens with the default location and size given by the operating system. The X, Y, Width, and Height properties are ignored. When the Startup Position form property is set to Default, the form size in Online and Rich Client is different.
Centered to Parent
The window opens centered within the parent window. The X and Y properties are ignored. The size of the form is defined by the Width and Height properties.
Centered to MDI
The window opens centered within the Magic xpa client area. The X and Y properties are ignored. The size of the form is defined by the Width and Height properties. (Since version: Rich Client support: 1.9)
Centered to Desktop
The window opens centered within the desktop area. The X and Y properties are ignored. The size of the form is by the Width and Height properties.
Windows Default Location
The form is positioned at the Windows default location and has the dimensions specified in the form’s size. Since version: 2.1
APPLE KÉSZÜLÉKEK FELBONTÁSA iPod Nano
6th Gen
3.9 (1.54)
240×240
iPod Classic
5th Gen – 6th Gen
6.4 (2.5)
320×240
iPhone / iPod Touch
Original – 3GS / Original – 9.0 (3.54) 3rd Gen
320×480
iPhone / iPod Touch
4, 4S / 4th Gen
9.0 (3.54)
640×960
iPhone 5 / iPod Touch
6th Gen / 5th Gen
10 (4)
640×1136
iPad
Original, 2
25 (9.7)
1024×768
iPad
3rd Gen
25 (9.7)
2048×1536
MacBook Air 11-inch
Late 2010 – Mid 2012
29 (11.6)
1366×768
MacBook Air 13-inch
Late 2010 – Mid 2012
34 (13.3)
1440×900
ppcm (PPI) 87 (220) 64 (163) 64 (163) 128 (326) 128 (326) 52 (132) 104 (264) 53 (135) 50 (128)
MacBook Pro 13-inch
Mid 2009 – Mid 2012
34 (13.3)
1280×800
44 (113)
MacBook Pro 15-inch
Early 2006 – Mid 2012
39 (15.4)
1440×900
43 (110)
8:5 (16:10) 8:5 (16:10) 8:5 (16:10)
MacBook Pro 15-inch w/ Hi-Res screen
Mid 2010 – Mid 2012
39 (15.4)
1680×1050
50 (128)
8:5 (16:10)
1
MacBook Pro 15-inch Retina display
Mid 2012
39 (15.4)
2880x1800
87 (220)
8:5 (16:10)
2
MacBook Pro 17-inch
Mid/Late 2007 – Late 2011
43 (17)
1920×1200
52 (132)
8:5 (16:10)
1
iMac 21.5-inch
Late 2009 – Mid 2011
55 (21.5)
1920×1080
16:9
1
iMac 27-inch
Late 2009 – Mid 2011
69 (27)
2560×1440
16:9
1
Thunderbolt Display
Mid 2011
69 (27)
2560×1440
40 (102) 43 (109) 43 (109)
16:9
1
Model
Generations
Diagonal cm (in)
Resolution
Aspect ratio
CSS pixel ratio
1:1 4:3 2:3
1
2:3
2
9:16
2
4:3
1
4:3
2
16:9
1 1 1 1
Ablak méretezés X in pixels = X in dialog units * 5 * (mobile device dpi / 96) X in pixels = 2048; X in dialog units = ?; mobile device dpi = 264; X = 149 Y in pixels = Y in dialog units * 13 * (mobile device dpi / 96) Y in pixels = 1536; Y in dialog units = ?; mobile device dpi = 264; Y = 43
Demó (kérdőív kitöltő)
Magic Mobile és JAVA integráció Gábor Nádasy - CTO
KNORR-BREMSE pilot projekt
Architektúra Kecskemét
Intenet
München
Mobil kliensek
Megvalósított funkcionalitás Tetszőleges dokumentumok lekérdezése mobil klienssel: Dokumentum típus megadás Dokumentum lekérdezése XML adatban visszaad XML feldolgozása Feldolgozott információ megjelenítése Struktúrált adatok (gyártási dok.), fa struktúra
Workflow, jóváhagyás Vezetői információs adatok
Szükséges MAGIC - JAVA ismeretek Példányosítás Dokumentum típus kiválasztása Dokumentum kiválasztás Class indítás XML vagy string feldolgozás Tokenek kezelése Tree control
Magic XPI Java képességek Konnektorok SSJ Saját fejlesztésű konnektor
Magic XPI saját JAVA fejlesztés
Java Functions CodePage – Sets the code page that would be used when converting Java characters and strings to a Magic xpa Alpha type, and from a Magic xpa Alpha type to Java characters. EJBCreate – Obtains a new instance of an Enterprise Java Bean. EJBExplore – Provides a description of an Enterprise Java Bean. JCall – Calls to non-static Java class methods of a Java object. JCallStatic – Calls to static Java class methods of a Java object. JCreate – Creates a new instance of a Java class (a Java object) and returns a handle to this instance. JException – Returns a pseudo-reference to the last exception of the current context.
JExceptionOccurred – Informs you that the last J* or EJB* function threw an exception. JExceptionText – Returns a text image from the last exception and an optional backtrace of the stack. This function refers to the last exception thrown during the last J* or EJB* function. JExplore – Queries a class definition and generates an XML output that describes the structure of the class. JGet – Retrieves the value of an instance variable. JGetStatic – Retrieves the value of a static variable. JInstanceOf – Simulates the Java's operator instance. JSet – Updates an instance variable. JSetStatic – Updates a class variable.
Példányosítás JCreate() (http://community.magicsoftware.com/en/library?book=en/M agicxpa/&page=Java_Integration/Runtime_Engine_Behavio r_-_Java.htm) Creates a new instance of a Java class (a Java object) and returns a handle to this instance. The handle should be stored in a BLOB variable. Syntax:
JCreate(class name,constructor signature, parameters)
Parameters:
class name – An alphanumeric value defining the full name of a Java class. constructor signature – An alphanumeric value defining the required constructor signature from the Java class. parameters – An alphanumeric value defining the arguments that need to be passed to the Java class.
Returns:
A pseudo-reference to a new instance
Example:
JCreate('java.lang.StringBuffer','()V') will create an empty String Buffer object. JCreate('java.lang.StringBuffer','(Ljava/lang/String;)V','My String') will create the same object and initialize it with a String object.
Note:
You will be able to create instances only for Java classes that can be located using your Java classpath settings.
See also:
Java Functions
The Online Samples project (program JV01)
Call methods JCall() Calls to non-static Java class methods of a Java object. Syntax:
JCall (pseudo-reference, [class.]method, method signature, parameters)
Parameters:
pseudo-reference – A reference to a Java object method – An alphanumeric value defining the method name. method signature – An alphanumeric value defining the method signature. parameters – An alphanumeric value defining the arguments that need to be passed to the Java class.
Returns:
The return value from the method. The attribute is determined according to the value returned.
Example:
JCall(A,’length’,’()I’) will return the length of the string A is a BLOB variable updated with "JCreate ('java.lang.StringBuffer','(Ljava/lang/String;)V','ABCDEFG')"
See also:
Java Functions The Online Samples project (program JV02)
Demó
Összegzés Telepítés Környezet (3 napból 2) Vállalat belső biztonsági szabályzata
‚Good’ mobil védelem Bemutató a szakmai vezetésnek Üzleti kérdések Plusz egy üzleti találkozó
Magic Mobile offline működés; újdonságok Gábor Nádasy - CTO
Magic XPA 2.2a Forrás: Eyal Pfeiffer belső használatú levele a Branch Managereknek Release notes Training dokumentációk Self_paced_tutorial_Going_Mobile_with_Magic_xpa.pdf Self_paced_tutorial_uniPaaS_Migration_from_1_to_2.pdf Regev Hauschner előadása
A Magic XPA Mobile státusza, tervek Elsődleges prioritás, hogy minden RIA funkcionalitás stabil legyen Androidon és iOS-en (visszajelzés) Subform minden platformon Egy hitelkártya projekt előtérbe hozta a natív kód futtatást (NFC, Gyro, compass, 3. gyártó; Object C vagy Java ismeret) Új képességek mobilon (dátum, idő, keret,…) BB és Windows Mobile prioritása csökkent
Magic XPA 2.2a Subforms Native-code integration capability (iOS and Android, see below) Client-side images support Progress (busy) indicator Image picker from gallery Mobile activity support on Android (phone, sms, video, etc.) Many bug fixes
Natív kód (2. pont) Ezzel a képességgel a mobil minden kiajánlott funkcionalitása natív API-n keresztül elérhető. A megvalósítás alapja a Magic nyitott jellegén alapuló interface-ek, és multi platformos képesség, ami a kliens oldalra is kiterjeszthető. A kereszt platformos tapasztalatra építve minden mobil környezetben különböző megvalósítás szükséges. Ezek használatához az adott platform ismerete szükséges. Pillanatnyilag a háttérben működő (non-visual) objektumokra fókuszál az R&D. Néhány 3. gyártó könyvtárának használatára példa: kártya, hitelkártya, QR kód scan, NFC, Bluetooth.
Offline Offline Overview Sok technológia kihívás a ‚meta data’ alapú működésből következően, de ez egyben előny is. Jelenleg a RIA dinamikusan tölti le a szükséges meta adatokat, amit egy mechanizmussal alkalmassá kell tenni offline tárolásra. (a működéshez szükséges adatbázis adatokkal együtt) Új mechanizmust kell kifejleszteni az adatok letöltésére, lokális tárolására, módosítására és feltöltésére. Fejlesztési funkciókat kell megvalósítani, pl disconnect, re-connect, data syncronization, Visszamenőleges kompatibilitás. Meglevő RIA továbbra is működni fog.
Offline folyt… 1. Offline state handling – disconnect, re-connect, azonosított módon (contextus kezelés), a régi alkalmazásoknak továbbra is működni kell mint ma. 2. Offline metadata – egy fejlesztői flag jelzi az offline képességet. Offline-ban is tudjon indulni és leállni. 3. Offline data storage – lokális adatbázis használatával, ami letöltődik, helyben tárolódik, ott lehet módosítani és feltölthető is. Ez a teljes folyamatot minden részletében tartalmazza.