EM 404 New MobiLink Technology Jim Graham Director of Engineering iAnywhere Solutions

Slides:



Advertisements
Similar presentations
Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Advertisements

DIGIDOC A web based tool to Manage Documents. System Overview DigiDoc is a web-based customizable, integrated solution for Business Process Management.
CIMCO Integration Software Products
OneBridge Mobile Data Suite Product Positioning. Target Plays IT-driven enterprise mobility initiatives Extensive support for integration into existing.
Handheld Contact Wireless syncing ACT! Blackberry and Windows Mobile 5/6.
Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide May 16 – 18, 2007 Copyright 2007, Data Access Worldwide Standardizing Application.
Motorola Mobility Services Platform (MSP3.2) Control Edition Optimizing use of your mobile assets Daphanie Wallace June 2008 Enterprise Mobility Solutions.
Pocket PowerBuilder And Database Applications. Ian Thain Pocket PowerBuilder Evangelist PTOG Evangelist Team, Sybase Inc.
ManageEngine TM Applications Manager 8 Monitoring Custom Applications.
Technical Architectures
ASP.NET Programming with C# and SQL Server First Edition
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Passage Three Introduction to Microsoft SQL Server 2000.
Query Processing in Mobile Databases
SEMESTER 1, 2013/2014 DB2 APPLICATION DEVELOPMENT OVERVIEW.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
EM409 SQL Anywhere 8.0 New Feature Overview Dave Neudoerffer VP, Engineering iAnywhere Solutions Mike Paola Group Product Manager.
Chapter 10 EJB Concepts of EJB Three Components in Creating an EJB Starting/Stopping J2EE Server and Deployment Tool Installation and Configuration of.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
Management Suite for Dell Servers The Power of Control! Kevin Winert, Dell OpenManage Product Marketing Bryan Rhodes, Dell Alliance Product Manager, Altiris.
MobeSys Technologies MobeSys – helping you overcome mobile technology challenges.
OPC Database.NET. OPC Systems.NET What is OPC Systems.NET? OPC Systems.NET is a suite of.NET and HTML5 products for SCADA, HMI, Data Historian, and live.
Oracle9 i JDeveloper for Database Developers and DBAs Brian Fry Principal Product Manager Oracle JDeveloper Oracle Corporation.
Chapter Oracle Server An Oracle Server consists of an Oracle database (stored data, control and log files.) The Server will support SQL to define.
CS 8628 – n-tier Client-ServerArchitectures, Dr. Guimaraes BooKeeper Sridevi Srinivasan CS 8628, Summer 2003 Replication in Pocket PC Environment using.
Obsydian OLE Automation Ranjit Sahota Chief Architect Obsydian Development Ranjit Sahota Chief Architect Obsydian Development.
STORING ORGANIZATIONAL INFORMATION— DATABASES CIS 429—Chapter 7.
Maintaining a Mirrored Database Tips and Tricks by Paul G. Hiles.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
Web Server Administration Chapter 7 Installing and Testing a Programming Environment.
1 EM406 Mobile Data Security Dave Neudoerffer VP of Software Engineering iAnywhere Solutions
EM416 Choosing the Correct Data Movement Technology Chris Kleisath Director of Engineering iAnywhere Solutions
Module 1: Exploring Replication. Overview Understanding SQL Server Replication Setting Up Replication Understanding Agents in Replication Securing Replication.
QuikTrac 5.5, a validated Motorola Software Solution, allows you to take your Host ERP screens and extend them out to fixed or mobile devices including.
Overview – Chapter 11 SQL 710 Overview of Replication
Triggers and Stored Procedures in DB 1. Objectives Learn what triggers and stored procedures are Learn the benefits of using them Learn how DB2 implements.
“INTRODUCTION TO DATABASE AND SQL”. Outlines 2  Introduction To Database  Database Concepts  Database Properties  What is Database Management System.
1 EM402 MobiLink Tips and Techniques David Fishburn Principal Consultant iAnywhere Solutions
1 EM413 Using Adaptive Server Anywhere’s Remote Data Access Feature Mark Culp Software Development Manager iAnywhere Solutions
What’s new in Kentico CMS 5.0 Michal Neuwirth Product Manager Kentico Software.
WEB/DB1 DATABASE PROGRAMMING 3JDBC by the ASU Scholars.
1 Session Number Presentation_ID © 2001, Cisco Systems, Inc. All rights reserved. Using the Cisco TAC Web Site for LAN Switching Issues Cisco TAC Web Seminar.
1. When things go wrong: how to find SQL error Sveta Smirnova Principle Technical Support Engineer, Oracle.
37 Copyright © 2007, Oracle. All rights reserved. Module 37: Executing Workflow Processes Siebel 8.0 Essentials.
EM401 Overview of MobiLink Synchronization Jim Graham Director of Engineering iAnywhere Solutions
MOB342 - Writing Mobilink Synchronization Scripts Using Java and.NET Reg Domaratzki Senior Software Developer iAnywhere Solutions.
DATABASE CONNECTIVITY TO MYSQL. Introduction =>A real life application needs to manipulate data stored in a Database. =>A database is a collection of.
DataBases and SQL INFSY 547 Spring Course Wrap Up April 12: Complete Work on Servlets Review of Team Projects Close of Portfolio Work April 19:
Dynamic SQL. 2 home back first prev next last What Will I Learn? Recall the stages through which all SQL statements pass Describe the reasons for using.
Module 5: Implementing Merge Replication. Overview Understanding Merge Replication Architecture Implementing Conflict Resolution Planning and Deploying.
Learningcomputer.com SQL Server 2008 –Views, Functions and Stored Procedures.
Basics of JDBC Session 14.
IAnywhere Solutions Mobile Computing on Linux Eyun Lindberg
EM415 – Custom Extraction Techniques Robert Waywell Senior Product Support Engineer iAnywhere Solutions
SQL Query Analyzer. Graphical tool that allows you to:  Create queries and other SQL scripts and execute them against SQL Server databases. (Query window)
Text TCS INTERNAL Oracle PL/SQL – Introduction. TCS INTERNAL PL SQL Introduction PLSQL means Procedural Language extension of SQL. PLSQL is a database.
1 EM403 MobiLink Best Design Practices David Fishburn Principal Consultant iAnywhere Solutions
SSMS SQL Server Management System. SQL Server Microsoft SQL Server is a Relational Database Management System (RDBMS) Relational Database Management System.
Log Shipping, Mirroring, Replication and Clustering Which should I use? That depends on a few questions we must ask the user. We will go over these questions.
CS 440 Database Management Systems Stored procedures & OR mapping 1.
SQL Server Replication HILARY COTTER SQL SERVER MVP
1 Copyright © 2005, Oracle. All rights reserved. Oracle Database Administration: Overview.
Agenda for Today  DATABASE Definition What is DBMS? Types Of Database Most Popular Primary Database  SQL Definition What is SQL Server? Versions Of SQL.
EM424 Building Smart-Client Wireless Applications
Top 10 Entity Framework Features Every Developer Should Know
DEPTT. OF COMP. SC & APPLICATIONS
Data Virtualization Tutorial: Introduction to SQL Script
Web Technologies IT230 Dr Mohamed Habib.
Basic Work-Flow with SQL Server Standard
Knowledge Byte In this section, you will learn about:
Presentation transcript:

EM 404 New MobiLink Technology Jim Graham Director of Engineering iAnywhere Solutions

Outline Quick MobiLink review 8.0 New feature highlights MobiLink futures

MobiLink

MobiLink Design Goals Heterogeneous consolidated database Scalable and robust (tens of thousands) Manageable in large deployments Support handheld and wireless devices Flexible

How Synchronization Works 1. Upload ASA or UltraLite keep track of all changes since previous synchronization All changes are sent in a single upload stream MobiLink applies changes in a single transaction 2. Download Scripts in the consolidated database determine changes that need to be downloaded All changes are sent in a single download stream 3. Acknowledge download

MobiLink Synchronization

MobiLink Scripts begin_connection for each synchronization: begin_synchronization receive and apply upload stream prepare and send download stream end_synchronization end_connection Scripts define actions performed at the consolidated database at each stage or event during synchronization

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

7.0 Download Cursor The download_cursor script is used to insert or update rows in the remote database SELECT emp_id, emp_fname, emp_lname FROM employee WHERE last_modified The download_deletes_cursor script is used to delete rows from the remote database SELECT emp_id FROM employee WHERE last_modified AND status = ‘INACTIVE’

8.0 Last Download Timestamp The download_cursor script is used to insert or update rows in the remote database SELECT emp_id, emp_fname, emp_lname FROM employee WHERE last_modified > ? The download_deletes_cursor script is used to delete rows from the remote database SELECT emp_id FROM employee WHERE last_modified > ? AND status = ‘INACTIVE’

Last Download Benefits Last download time automatically stored in remote ASA or UltraLite database and provided to scripts during subsequent upload Less reliance on RDBMS functionality Performance Usability No longer need download ack Immediate commit of download transaction

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

The upload_cursor Script The upload_cursor script is used to insert, update, or delete rows in the consolidated database This is the primary script for uploading changes Example: SELECT emp_id, emp_fname, emp_lname FROM employee WHERE emp_id = ?

Statement-based Upload Scripts The upload_insert script is used to insert rows DELETE FROM employee WHERE emp_id = ? INSERT INTO employee (emp_id, emp_fname, emp_lname) VALUES ( ?, ?, ? ) The upload_update script is used to update rows UPDATE employee SET emp_fname = ?, emp_lname = ? WHERE emp_id = ? The upload_delete script is used to delete rows

Statement-based Conflicts The upload_fetch cursor for conflict detection The insert_old_row script is used to insert the row from the remote database before the update The insert_new_row script is used to insert the row from the remote database after the update The resolve_conflict script is used to resolve the conflict

Statement-based Benefits More understandable Array operations improve performance Single statement with multiple parameter sets Stronger ODBC support

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

Java Synchronization Logic Synchronization scripts written in Java rather than the native language of the consolidated database Single Java class defines the synchronization logic for a complete synchronization One public method for each event (Java method replaces SQL script) Java methods are passed the same parameters as SQL scripts (table, user, last download) Different classes can be used for different versions

Java Synchronization Logic

Java Details MobiLink Java API support classes Write your Java class and compile it Make your Java class available to MobiLink MobiLink runs Java synchronization logic in the standard Sun VM (JRE 1.3 installed) One instance of your class is instantiated for each MobiLink connection to the consolidated database One public method of your class is called for each event in the synchronization process Methods can return SQL strings

Java Example public class SalesSync { private DBConnectionContect _cc; public SalesSync( DBConnectionContext cc ) { _cc = cc; } public String EmpDownload( String user, Timestamp ts ) { String sql = “SELECT emp_id, emp_fname, emp_lname ” + “FROM employee WHERE last_modified >= ‘” + ts + “’”; return sql; }

Java Example javac -classpath c:\sa\java\mlscript.jar;.; Sales.java call ml_add_java_table_script( “Sales 1.0”, “employee”, “download_cursor”, “SalesSync.EmpDownload” ) dbmlsrv8 -c “dsn=cons” -o out.txt -sl java {-classpath.;}

Java Flexibility MobiLink JDBC bridge allows access to the database connection MobiLink is using to synchronize data Ability to create additional connections to the consolidated database or to another database Java instance variables share data across events Java static variables share data across connections java.lang.system.out.println to MobiLink output log Full power of standard Java VM Can mix Java and SQL synchronization logic

Java Benefits Works around limitations in native procedural languages of RDBMS Allows synchronization logic to be more portable across multiple RDBMS products Well known mainstream language that is well suited to procedural logic Re-use business logic Better debugging tools available

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

7.0 ASA Client Terminology Reference database Synchronization template Synchronization site mlxtract.exe Synchronization definition

8.0 ASA Client Terminology Publication Synchronization user Synchronization subscription CREATE PUBLICATION SalesSync ( TABLE employee ); CREATE SYNCHRONIZATION USER sally TYPE ‘tcpip’ ADDRESS ‘host=SalesServer’; CREATE SYNCHRONIZATION SUBSCRIPTION TO SalesSync FOR sally;

New Terminology Benefits Simpler, easier to understand Closer to SQL Remote Groundwork for other new features Multiple publications and subscriptions per user Selective uploads Use MobiLink to populate data Still a bit backwards

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

Selective Upload Multiple publications and subscriptions Publications can overlap ASA or UltraLite can synchronize one or more publications at the same time Articles in publications can identify a subset of the rows in a table using a WHERE clause ASA publications can identify a subset of the columns in tables (all publications must have same column list) UltraLite does not support column subsets

High Priority Synchronization CREATE PUBLICATION SalesSyncHigh ( TABLE “order” WHERE priority = ‘high’, TABLE order_item i WHERE ‘high’ = (SELECT priority FROM “order” o WHERE o.id = i.id ) ); CREATE PUBLICATION SalesSync ( TABLE employee, TABLE “order”, TABLE order_item );

Selective Upload Scenarios High priority wireless synchronization with lower priority cradle or LAN synchronization Nightly synchronization with more frequent synchronization throughout the day Request-based downloads Multiple applications using a common database

Selective Upload & Last Download Downloads have always been selective Separate last download timestamp kept for each publication in remote database Each synchronization, MobiLink uses the earliest last download time for all publications being synchronized Could mean redundant download

8.0 New Feature Highlights Last download timestamp Statement-based uploads Java synchronization logic Better remote ASA terminology Selective uploads (priority synchronization) Improved reporting

Improved Reporting New statistics events to record upload and download statistics (rows, errors, warnings, bytes) Upload dbmlsync output log following an error More detailed information following an error

More 8.0 New Features Automatic script generation sa_migrate Limit worker threads applying upload streams Database connection timeout

MobiLink Futures Message-based communication Java synchronization logic to non-relational enterprise application servers MobiLink monitor console

Resources Available Other TechWave sessions MySybase: Mobile & Wireless Developer newsgroups, white papers, technotes, FAQs samples, patches Award winning technical support Training and assistance during the initial phases of your synchronization projects

iAnywhere Solutions Highlights Ask the Experts - about Mobile & Wireless Solutions - Mezzanine Level Room 15B Mon./Tues. 11:30 am - 3:30 pm; Wed. 11:30 - 1:30; Thurs. 9 am - 12 noon -Exhibit Hall - Demo Center (truck) exhibit hall hours SIG (Special Interest Group) - Tuesday 5:30pm Mobile & Wireless SDCC, Upper level, Room 11 Keynote - Enabling m-Business Solutions Wednesday 1:30 pm - 3:00 pm iAnywhere Solutions Developer Community - Excellent resource for commonly asked questions, newsgroups, bug fixes, newsletters, event listings - visit