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 Server Database Windows, ios, Android, BlackBerry, Windows Mobile Windows, AIX, Solaris, Linux, IBM i 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 Endpoints SAP R/3, SBO, SAP A1, Sharepoint, Dynamics CRM, Force.com, Salesforce.com, JDE, Lotus Notes.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% Other RIM 4,8% 8,8% Symbian 11,7% ios 23,9% Android 50,8% Source: Gartner
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 Centered to Parent Centered to MDI Centered to Desktop Windows Default Location 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. 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. 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) 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. 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 Model Generations Diagonal cm (in) Resolution ppcm (PPI) Aspect ratio CSS pixel ratio ipod Nano 6th Gen 3.9 (1.54) 240 240 87 (220) 1:1 ipod Classic 5th Gen 6th Gen 6.4 (2.5) 320 240 64 (163) 4:3 iphone / ipod Touch Original 3GS / Original 3rd Gen 9.0 (3.54) 320 480 64 (163) 2:3 1 iphone / ipod Touch 4, 4S / 4th Gen 9.0 (3.54) 640 960 128 (326) 2:3 2 iphone 5 / ipod Touch 6th Gen / 5th Gen 10 (4) 640 1136 128 (326) 9:16 2 ipad Original, 2 25 (9.7) 1024 768 52 (132) 4:3 1 ipad 3rd Gen 25 (9.7) 2048 1536 104 (264) 4:3 2 MacBook Air 11-inch Late 2010 Mid 2012 29 (11.6) 1366 768 53 (135) 16:9 1 MacBook Air 13-inch Late 2010 Mid 2012 34 (13.3) 1440 900 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) MacBook Pro 15-inch w/ Hi-Res screen Mid 2010 Mid 2012 39 (15.4) 1680 1050 50 (128) MacBook Pro 15-inch Retina display Mid 2012 39 (15.4) 2880x1800 87 (220) 8:5 (16:10) 8:5 (16:10) 8:5 (16:10) 8:5 (16:10) 8:5 (16:10) 1 1 1 1 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 40 (102) 16:9 1 imac 27-inch Late 2009 Mid 2011 69 (27) 2560 1440 43 (109) 16:9 1 Thunderbolt Display Mid 2011 69 (27) 2560 1440 43 (109) 16:9 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: Parameters: Returns: Example: JCreate(class name,constructor signature, 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. A pseudo-reference to a new instance JCreate('java.lang.StringBuffer','()V') will create an empty String Buffer object. Note: See also: JCreate('java.lang.StringBuffer','(Ljava/lang/String;)V','My String') will create the same object and initialize it with a String object. You will be able to create instances only for Java classes that can be located using your Java classpath settings. 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. Returns: Example: See also: parameters An alphanumeric value defining the arguments that need to be passed to the Java class. The return value from the method. The attribute is determined according to the value returned. 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')" 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.