一 : 实例讲解基于DB2及PHP的应用系统跨平台迁移
本文主要介绍如何完成基于 DB2 的 PHP 应用系统从 AIX 平台到 Linux 平台的移植过程。文中包含了底层的 DB2 数据库移植、上层的 PHP 应用系统移植的详细步骤以及移植过程中可能遇到的问题和解决方法。
任务概述
系统迁移的工作主要分为以下几个方面:
1.DB2 数据库系统的跨平台迁移
2.Apache 服务器与 php 应用系统的安装和配置
下面我们就分 2 个方面分别介绍迁移和配置的具体步骤。
DB2 数据库系统的跨平台迁移
数据库环境
源环境:AIX+DB2 v8.1
目标环境:Linux+DB2 v8.1
其中源数据库中包含了 2 个数据库 Instance:SRCDB1 与 SRCDB2。在 SRCDB1/SRCDB2 数据库中,均包含了上百张数据库表,并有很多的索引、外键约束、触发器、存储过程以及一些含有自增字段的表(含有 GENERATED ALWAYS AS IDENTITY 定义字段的表)。更为困难的是,我们并没有关于这些数据库对象的准确创建脚本。
迁移方案的选择
如果迁移的源系统与目的系统属于同一类型操作系统,例如 Linux 之间的迁移,或者 AIX 系统之间的迁移,则情况相对简单,DB2 本身已经提供相关的实用工具来实现这种同类型平台之间的数据库移植,如: BACKUP 和 RESTORE 命令。当然,根据不同的情况还需要对实用工具所提供的参数有比较清楚的了解,譬如源系统与目标系统使用不同的表空间,就会涉及到表空间重定向的问题。由于本文的重点在于跨平台的移植,这种方案显然无法满足需求,在此不再熬述。
那么,如何处理跨平台的数据库迁移问题?是不是可以使用实用工具 db2move 呢? db2move 只能迁移表中的数据,而无法对索引、外键约束、触发器和存储过程等数据库对象也实现迁移操作,而且对于包含自增字段数据的表来说,db2move 也有一定的限制。并且 db2move 只能把数据导入到已存在的数据库的表中,无法显示指定表空间的位置。由于在数据库的系统迁移过程中,不仅需要迁移表中的数据,还有索引、外键约束、触发器和存储过程等数据库对象,与本文所选方案相比,还是后者更具优势。可以将 db2move 仅作为迁移表数据的一种备用方案。
而对于 export 和 import 来说,一次只能针对一张表进行导出导入操作,并且需要手动输入 export 和 import 的命令以及需要导入导出的数据表名,在数据库表的数量不多的情况下,这种方案也许还可以考虑,但也不并是最佳的方案。而在数据库中表数量众多的情况下,这种做法则是基本不现实的,而且 import 命令并不能保证自增字段的数据与原来的表数据保持一致。
本文根据 DB2 对数据库对象的处理机制,采用将 db2look 与 DDL、DML 脚本相结合的方式,并针对原数据库中的触发器、存储过程以及外键约束等分别处理,给出了一种跨平台 DB2 数据库系统移植的可行方案。
下面我们以 SRCDB1 为例介绍一下这种情况下的数据库整体迁移过程。SRCDB1 数据库中有 SRCDB1、ASN、DB2DBG 和 SQLDBA 这四个数据库模式。假设 SRCDB1 数据库的用户名为 user_srcdb1,密码:pw_srcdb1。
在源系统 (AIX) 上的相关操作
1.使用 db2look 命令抽取生成数据库对象的 DDL 脚本
清单 1. db2look 命令及参数
# db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1
db2look :生成 DDL 以便重新创建在数据库中定义的对象
语法: db2look -d DBname [-e] [-u Creator] [-z Schema]
[-t Tname1 Tname2...TnameN] [-tw Tname] [-h] [-o Fname] [-a]
[-m] [-c] [-r] [-l] [-x] [-xd] [-f] [-fd] [-td x]
[-noview] [-i userID] [-w password]
[-v Vname1 Vname2 ... VnameN] [-wrapper WrapperName]
[-server ServerName] [-nofed]
-d : 数据库名称,必选参数
-e : 抽取复制数据库所需要的 DDL 文件,此选项将生成包含 DDL 语句的脚本
-o : 将输出重定向到给定的文件名,如果未指定 -o 选项,则输出默认转到 stdout
-a : 为所有创建程序生成统计信息,如果指定了此选项,则将忽略 -u 选项
-i : 指定登录到数据库所在服务器时所使用的用户标识
-w : 指定登录到数据库所在服务器时所使用的密码
2.根据不同类型对象,分化数据库对象 DDL 脚本
由于源数据库中的各个表数据已经是经过触发器、存储过程等数据库对象处理过的数据,为保证数据库中数据的一致性和完整性,这些数据库对象应该在导入数据后再创建,以防止在导入表数据时重复执行触发器和存储过程等数据库对象生成错误数据。使用文本编辑器编辑由 db2look 生成的 srcdb1.ddl,将创建表及索引的 DDL 语句,创建外键约束的 DDL 语句以及创建触发器和创建存储过程的语句分为四组,分别保存为下面四个 DDL 脚本:
srcdb1_tables.ddl srcdb1_foriegnkeys.ddl
srcdb1_triggers.ddl srcdb1_procedures.ddl
srcdb1_tables.ddl :包含创建 SEQUENCE,UDF,TABLE,VIEW 等数据库对象的 ddl 语句。
清单2. srcdb1_tables.ddl 语句
CREATE SEQUENCE "SRCDB1"."SAMPLE_SEQ_1" AS INTEGER
MINVALUE 1 MAXVALUE 9999999999
START WITH 1 INCREMENT BY 1;
CREATE FUNCTION " SRCDB1"." SAMPLE _FUNC_1"
(
VARCHAR(254),
VARCHAR(254),
VARCHAR(254)
) RETURNS VARCHAR(254)
SPECIFIC SAMPLE _FUNC_1 ……;
CREATE TABLE " SRCDB1"." SAMPLE _TAB_1" (
"TAB_COL1" CHAR(20) NOT NULL ,
"TAB_COL2" VARCHAR(70) NOT NULL ) ;
CREATE TABLE " SRCDB1"." SAMPLE _TAB_2" (……);
……
CREATE TABLE " SRCDB1"." SAMPLE _TAB_N" (……);
CREATE VIEW SRCDB1.SAMPLE_VIEW_1 (VIEW_COL1,VIEW_COL2) AS SELECT distinct
COL1 , COL2 FROM SAMPLE_TAB WHERE ……;
CREATE VIEW SRCDB1.SAMPLE_VIEW_2 ……;
……
CREATE VIEW SRCDB1.SAMPLE_VIEW_N ……;
srcdb1_foriegnkeys.ddl :包含创建外键约束的 ddl 语句。
清单3. srcdb1_foriegnkeys.ddl 语句
ALTER TABLE " SRCDB1"."SAMPLE_FK_1"
ADD CONSTRAINT "SQL030903143850120" FOREIGN KEY
("FK_COL1")
REFERENCES " SRCDB1"."SAMPLE_TABLE"
("COL1");
ALTER TABLE " SRCDB1"."SAMPLE_FK_2" ADD ……;
……
ALTER TABLE " SRCDB1"."SAMPLE_FK_N" ADD ……;
srcdb1_triggers.ddl :包含创建触发器的 ddl 语句。
清单 4. srcdb1_triggers.ddl 语句
CREATE TRIGGER SRCDB1.SAMPLE_TRIG_1 AFTER UPDATE OF col1 ON SRCDB1.SAMPLE_TAB
REFERENCING NEW AS n FOR EACH ROW MODE DB2SQL WHEN ( n.col1 > 3)
BEGIN ATOMIC
update SAMPLE_TAB
set(col2) = 'anotherValue' where col1 = n.col1 ;--
END;
CREATE TRIGGER SRCDB1. SAMPLE_TRIG_2 ……;
……
CREATE TRIGGER SRCDB1. SAMPLE_TRIG_N ……;
srcdb1_procedures.ddl :包含创建 SQL 存储过程以及 java 存储过程的 ddl 语句。
清单 5. srcdb1_procedures.ddl语句
CREATE PROCEDURE " SRCDB1"." JAVA_PROCEDURE_1"
(
OUT SQLSTATE CHARACTER(5),
OUT ROWS_SUBMITED INTEGER,
IN BATCH_ID INTEGER,
IN LEVEL VARCHAR(4000)
)
DYNAMIC RESULT SETS 0
SPECIFIC SUBMIT_BATCH
EXTERNAL NAME 'Submit_batch!submit_batch'
LANGUAGE JAVA
PARAMETER STYLE JAVA
NOT DETERMINISTIC
FENCED THREADSAFE
MODIFIES SQL DATA
NO DBINFO;
CREATE PROCEDURE " SRCDB1"."JAVA_PROCEDURE_2" ……;
……
CREATE PROCEDURE " SRCDB1"."JAVA_PROCEDURE_N" ……;
SET CURRENT SCHEMA = " SRCDB1";
SET CURRENT PATH = "SYSIBM","SYSFUN"," SRCDB1";
CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_1 (
IN hostname varchar(4000),
IN username varchar(4000),
OUT SQLCODE_OUT int )
SPECIFIC SRCDB1.SQL_PROCEDURE_1
LANGUAGE SQL
-------------------------------------------------
-- SQL Stored Procedure
-------------------------------------------------
P1: BEGIN
……
END P1 ;
CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_2 ……;
……
CREATE PROCEDURE SRCDB1.SQL_PROCEDURE_N ……;
需要注意的是,db2 v6 版本的 db2look 尚未实现抽取如 UDF,TRIGGER,UserSpace,NodeGroup,BufferPool 等数据库对象的 ddl 语句。从 db2 v7 开始,db2look 可以抽取上述对象的 DDL,但是依然无法抽取创建存储过程对象的 ddl 语句。从 db2 v8.2 开始,完善了对 db2look 功能的支持,实现了存储过程 ddl 语句的抽取功能。由于本文所涉及的源数据库系统的版本较低(DB2 v8.1),因此需要采取上述方案获取所有数据库对象的 DDL 信息:
1). 从某个 DB2 v8.2 系统对 SRCDB1(DB2 v8.1 版本)执行 CATALOG 操作:
db2 catalog db SRCDB1 as SRCDB1;
2). 从 DB2 v8.2 系统对 SRCDB1 进行 db2look 抽取过程:
db2look -d SRCDB1 -e -o srcdb1.ddl -a -i user_srcdb1 -w pw_srcdb1;
这样就可以获取完整的数据库对象 DDL 信息。
3.生成数据导出export脚本
使用 shell 脚本生成并导出所有数据的 DML 脚本,并将其重定向到 srcdb1_export.sql 文件中。对于熟悉 DB2 的用户来说,应该知道数据库中创建的每个表、视图、别名均对应 SYSCAT.TABLES 中一行记录。因此可以通过相应的数据库 select 语句就可以获取所有需要的数据库表信息。根据需要,下述 shell 脚本将从系统表 SYSCAT.TABLES 中根据 tabname 字段选出 SRCDB1 中所有 tabschema 表模式是 SRCDB1,ASN,SQLDBA,DB2DBG 的表名字,并根据它们的名字生成相应的 export 导出语句,到达批量导出的目的。rtrim 函数用于去除 tabname 字段数据的右边的空格。
清单6. 生成export脚本
# db2 "select 'export to ' || rtrim(tabname) || '.ixf of ixf select * from ' ||
rtrim(tabname) || ';' from syscat.tables
where tabschema in('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')" > srcdb1_export.sql ;
编辑生成的 srcdb1_export.sql,删除头部和尾部所显示的统计信息,只保留必要的 export 语句。通过修改上述脚本中所包含的 tabschema 信息,可以指定需要导出的表的范围,也即迁移过程中需要的所有表名。所生成的 export 导出语句具有如下的命令形式:
db2 export to tablename.ixf of ixf select * from tablename;
4.生成数据导入 load 脚本
使用 shell 脚本生成 load 脚本用于将数据导入目标系统:srcdb1_load.sql
清单7. 生成 load 脚本
# db2 "select 'load from ' || rtrim(tabname) || '.ixf of ixf insert into ' ||
rtrim(tabname) || ';' from syscat.tables
where tabschema in ('SRCDB1', 'ASN', 'SQLDBA', 'DB2DBG')" > srcdb1_load.sql;
编辑生成的 srcdb1_load.sql,删除头部和尾部的统计信息,只保留必要的 load 语句。与 export 导出语句类似,上述 shell 脚本从系统表中选出 SRCDB1 中所有表的名字,并根据它们的名字生成相应的 import 导入语句,到达批量导入的目的。所生成的 import 导入语句命令形式如下:
db2 load from tablename.ixf of ixf insert into tablename;
5.处理数据库表中的自增字段
对于需要加载的含有自增字段的表,即该表的 ixf 数据文件中有自增列的值, 可以在 load 命令中加入如下参数控制自增字段值:
1). modified by identityignore :加载的数据文件中有自增字段值,load 时忽略数据文件中自增字段值 ;
2). modified by identitymissing :加载的数据文件中没有自增字段值,load 时自动生成自增字段值 ;
3). modified by identityoverride :加载的数据文件中有自增字段值,load 时使用数据文件中的自增字段值 。
为了使目标数据库中含有自增字段的表中数据与源数据库中的数据保持一致,本文实例中选择使用 modified by identityoverride 参数,在导入数据时使用数据文件中的自增字段值。读者可以根据不同情况选择适当的控制参数。
首先,在 srcdb1_tables.ddl 文件中查找所有包自增字段的表名 ( 含有 GENERATED ALWAYS AS IDENTITY 字段的表 ),然后在 srcdb1_load.sql 中将 modified by identityoverride 语句片段插入到这些含有自增字段的表所对应的 load 命令行中。
清单8. load 脚本中自增字段处理
db2 load from test.ixf of ixf modified by identityoverride insert into TEST;
6.执行导出脚本
执行导出脚本,导出所有表的数据 。
# db2 -tvf srcdb1_export.sql
导出的表数据以 ixf 格式存放于当前路径下。
7.保存脚本和数据文件
将所有 DDL 脚本以及数据文件 *.ixf 复制到目标系统所在站点。
LINUX 系统上的操作
1.通过命令行处理器(CLP)创建实例 SRCDB1:
# db2icrt SRCDB1
2.使用 CREATE DATABASE 命令创建数据库 SRCDB1,创建必要的表空间及配置必要的数据库参数。
# db2 create database SRCDB1
3.连接到数据库 SRCDB1,执行 srcdb1_tables.ddl 脚本创建缓冲池,表空间,UDF,表以及 Index,Sequence,视图等数据库对象。
# db2 connect to srcdb1
# db2 -tvf srcdb1_tables.ddl
4.进入到放置 .ixf 数据文件的目录,执行下面的命令导入表数据。
# db2 -tvf srcdb1_load.sql
5.使用 srcdb1_foriegnkeys.ddl,srcdb1_triggers.ddl ,srcdb1_procedures.ddl 脚本文件创建外键约束,触发器和存储过程。
# db2 -tvf srcdb1_foriegnkeys.ddl
# db2 -tvf srcdb1_triggers.ddl
# db2 -tvf srcdb1_procedures.ddl
成功完成上述步骤后,数据库的迁移工作基本完成。
Apache 服务器与 php 的安装和配置
Apache 服务器的安装和配置
Apache HTTP 服务器是一个模块化的软件,管理员可以通过选择服务器中包含的模块进行功能增减。模块可以在编译时被静态包含进httpd二进制文件,也可以编译成独立于httpd二进制文件的动态共享对象 (DSO)。DSO 模块可以与服务器一起编译,也可以用 Apache 扩展工具 (apxs) 单独编译。动态加载的方式相比静态加载具有更高的灵活性。使用动态载入特性,Apache 服务器必须以动态共享对象(DSO,Dynamic Shared Object)的方式编译。Apache 对 DSO 的支持,是基于一个叫 mod_so 的模块来实现的,为支持动态加载方式,这个模块必须预先被静态编译到内核中。因此可以通过 mod_so 模块检测已安装的 Apache 是否支持 DSO:
清单9. mod_so 模块检测
# $APACHEHOME/bin/httpd –l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c
如果在列出的模块名中有 mod_so.c,则说明安装的 Apache 已经支持 DSO,否则需要重新编译 Apache。Apache 的安装和配置过程十分简单,如下所示:
1.下载 httpd-2.0.54.tar.gz(http://httpd.apache.org/),并将其解压到制定目录
# tar zxvf httpd-2.0.54.tar.gz && cd httpd-2.0.54
2.编译安装 apache
# ./configure --prefix=/usr/local/apache2 --enable-module=so
-- prefix 指定 apache 的安装路径
--enable-module=so 将 so 模块(mod_so)静态编译进 apache 服务器的内核,以支持 DSO 模式
# make && make install
3. 启动 apache
# ln -s /usr/local/apache2/bin/apachectl /sbin/apachectl
# apachectl start
php 的安装和配置
在 php 的安装和配置过程中,有两个方面需要注意,首先是 php 与 apache http server 的结合,其次是 php 与 db2 数据源的连接。
在 Apache 环境下安装 PHP 的时候,有三种安装模式可供选择:静态模块、动态模块(DSO)和 CGI。建议以 DSO 模式安装,这种模式的维护和升级都相对简单,可以在无需重新编译 Apache 的条件下,根据需求动态增加新功能模块。当然,这样做也会带来一些运行效率上的下降,Apache 服务器在启动时会慢约 20%。
PHP 连接 DB2 数据源同样有三种方式 : unified ODBC driver、IBM_DB2 和 PDO(php data object)。
◆unified ODBC driver 是最早的 PHP 访问数据库的扩展模块之一。从 DB2 v7.2 开始,unified ODBC driver 就支持对其的访问。对所有支持 ODBC 的数据库,unified ODBC driver 提供了统一的数据访问接口。为了保证接口的一般性,unified ODBC driver 并未对不同类型的数据库做特定的优化。
◆IBM_DB2 是由 IBM 开发和维护的与 DB2 数据源交互的扩展模块,它遵守开源协议。对基于 DB2 UDB 和 php 4.x 的应用来说,IBM_DB2 是最优的选择,因为它针对 DB2 UDB 进行了优化,同时避免了一些使用 unified ODBC driver 时可能存在的兼容性问题。不过,IBM_DB2 只支持 DB2 v8.2.2 或更高版本。
◆PDO 则是 php 5.x 中即将支持的新的数据库访问方式。本文中,由于源数据库与目标数据库的版本均为 DB2 v8.1,并且源环境中采用 unified ODBC driver 的方式,为了保持环境配置的一致性,仍然选择 unified ODBC driver 作为 php 与数据源的访问接口。
PHP 的安装与配置过程具体如下:
1.下载并解压 php-4.4.4.tar.gz(http://www.php.net/)
# tar zxvf php-4.4.4.tar.gz
# cd php-4.4.4
2.配置编译 php 源代码
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/sbin/apxs --without-mysql --with-ibm-db2=/home/reportdb/sqllib
--prefix 指定 php 的安装路径
--with-apxs2 指定 apxs 程序的路径 (apxs 是一个 perl 脚本,它可以脱离 apache 的源码将 php 模块编译成 DSO 文件 )
--with-ibm-db2 指定 unified ODBC driver 作为 php 与数据源的访问接口,并指定 DB2 的实例安装目录。
--without-mysql 忽略 mysql 数据库缺省的安装配置
#cp php.ini-dist /usr/local/lib
将 php 安装文件中的 php.ini-dist 拷贝到 /usr/local/lib 下作为 php 的配置文件。
# make && make install
# cp php.ini-dist /usr/local/lib/php.ini
3.编辑 /usr/local/apache2/conf/httpd.conf 文件,做如下修改:
设置 html 文件主目录:用于存放网站所需 web 文件的主目录
DocumentRoot "/home/web/www/"
设置 apache 的默认文件名的次序: apache 将按照由前至后的顺序在当前路径下查找其所支持的默认主页文件
DirectoryIndex index.php index.html.var index.cgi index.html
添加 php 解释文件后缀:对于所有需要被 PHP 解释的文件类型,需要将后缀添加至 AddType 配置项
AddType application/x-httpd-php .php .inc
加载 PHP 模块:加载模块目录 modules 下的库 libphp4.so,并将模块结构名 php4_module 添加到活动模块列表中
LoadModule php4_module modules/libphp4.so
4.编辑配置文件 /usr/local/apache2/bin/apachectl :
为保证与 DB2 数据库的连通,启动 Apache 服务时,需要同时初始化 DB2 客户机实例环境。创建 DB2 实例时,DB2 会自动生成 shell 脚本用于初始化所需的 DB2 实例环境,只需直接调用即可:
if test -f /home/reportdb/sqllib/db2profile; then
. /home/reportdb/sqllib/db2profile
fi
5.然后,重新启动 Apache 服务器以继承上面的配置更改。
# apachectl restart
6.编写 PHP 的测试文件 test.php,内容如下:
echo phpinfo();
?>
将其存放在 apache 的 html 文件主目录 /home/web/www 下,通过浏览器访问该网页,若能正常访问,则配置工作全部完成。
结束语
本文主要涵盖了一个基于 php 和 DB2 UDB 的应用系统的跨平台移植过程,详细介绍了 DB2 数据库系统的跨平台迁移以及 Apache 服务器与 php 应用系统的安装和配置过程。基于实践经验,为 DB2 数据库系统的跨平台迁移问题提供了一个可行的解决方案。对于移植过程中可能出现的问题,本文也给予详细的描述并提供相应的解决方案。虽然本文所涉及的只是从 AIX 系统到 LINUX 系统的应用系统移植过程,读者亦可以参考具体的移植过程,将其应用于其它平台之上。
二 : Talking Data:移动应用数据统计新平台
Talking Data是由北京腾云天下科技推出的,第三方移动互联网应用数据平台。 TalkingData定位于为移动应用开发者提供移动应用数据统计功能;为移动应用运营者提供用户行为数据分析功能;帮助开发者完善产品;协助运营者制定策略。
Talking Data的主旨就是帮助开发者通过数据获取用户反馈,通过数据获取运营参考,通过数据优化产品——用数据说话,做更好的App。
目前Talking Data数据平台提供包括:用户概况、渠道统计、用户留存、用户使用行为、自定义事件等功能模块,每个功能模块都包括更为细致数据统计、分析功能,以下是Talking Data一些特色功能的介绍:
用户概况提供了实时获取用户情况的功能,可以让开发者了解自己的应用有多少新增用户、活跃用户,以及这些用户使用应用时的基本情况,包括启动次数、使用时长等等。通过这个模块应用开发者可以了解到用户增长的总体趋势。
除此之外,通过自定义事件功能,和行为监控模块,开发者可以方便的了解到其用户的使用模式和习惯,进而可以对其应用进行更为精确的优化和修改。
用户留存实[www.61k.com]际上是一个用户积累与流失并存的过程,这个过程贯穿整个移动应用的生命周期,而最终留存用户的数量与移动应用的很多方面都有直接或间接关系。比如说,应用内付费转化过程,会受到用户留存影响;反之应用内付费也会对用户留存过程产生影响。可以说,用户留存是产品运营的标尺,它的变化直接反应出的是移动应用功能更新、UI改动、推广、运营动作的效果。
而自定义事件并不仅仅可以用来监控用户行为,实际上自定义事件是非常灵活的工具,可以方便的跟踪用户转化流程、付费转化流程等等,完善的转化漏斗可以让开发者更直观的分析事件转化率。配合用户趋势、留存,以及渠道统计模块,可以从多个维度了解到移动应用产品的市场反应、用户反馈等关键信息。
目前Talking Data处于内部测试阶段,感兴趣的产品经理/运营人员/开发人员可以前往这里申请内测账号进行体验。
公司介绍:
北京腾云天下科技有限公司,2011年成立,创始团队是一群来在于Oracle、IBM、腾讯等公司,长期从事分布式架构、海量数据处理、长尾广告等方面研究、同时对于移动互联网应用抱有浓厚兴趣的年轻人创立。
三 : 国外主流移动开发平台应用介绍
KonyOne平台(包含移动应用管理器) 统一的移动应用开发平台
随时随地推动业务
开发|部署|管理
kony 国外主流移动开发平台应用介绍
KonyOne平台是什么?
KonyOne平台为企业提供了完整的,端到端软件解决方案,帮助企业开发、部署、管理覆盖全部渠道的移动应用,这些渠道包括智能手机、平板电脑、自助终端以及台式机等。[www.61k.com]避免了为了支持不同的终端、屏幕尺寸、浏览器、语言带来的巨大的麻烦,同时还能在一个平台上为不同版本完成同步更新,不论企业是要开发Web应用还是移动应用,KonyOne平台提供的功能都能涵盖用户的需求。
kony 国外主流移动开发平台应用介绍
统一的编码平台,开放的标准,未来的保障
KonyOne平台是由KonyOne Studio、KonyOne Server和Sync Server三部分组成。[www.61k.com]移动应用管理器可以用于KonyOne平台,也可用于第三方开发工具。
kony 国外主流移动开发平台应用介绍
(www.61k.com]kony 国外主流移动开发平台应用介绍
集成的模拟器-在Studio内部,通过单击此项,立刻预览在目标渠道的实际效果。(www.61k.com]
外部函数接口(FFI) – KonyOne Studio可以访问其他编程语言编写的服务,方法和函数。使用这种整合UI,可以访问原生的操作系统SDK的特性和功能,而不用越出Studio的可视化设计界面。使用FFI,还能够支持条形码扫描,头盔传感,NFC函数,手写输入,以及其他的第三方UI Widget。
开发工具
简便的代码编写 – 为了同时支持跨渠道和特定渠道的业务逻辑, Studio为开发者同时提供JavaScript或者Lua做为编程语言。在Studio中可以直接输入可重用的模块式代码“snippets”,或者在事件流中直接定义语句;同时,Studio也提供Lua和JavaScript 相互代码转换的工具,以方便开发者以自己喜欢的语言进行开发。
代码辅助 – Studio为开发者提供世界一流的基于上下文的代码“自动提示”功能,可根据应用的上下文,Widget的种类和属性自动给出代码语法,函数,变量,命名等的提示。
语句调试 – 可调试本地或远程运行的代码 – 比如允许开发者设置断点,挂起,单步调试等,方便他们校验所编写的代码。
代码分析器 – 帮助编译和分析代码,以便于在发布不同版本应用时进行相应的优化。
在线帮助 – Kony帮助文档与Widget和Widget对话框等密切相关,以方便开发者和设计者在需要帮助
时随时提供帮助。
国际化语言支持 (I18N) – KonyOne支持全部的国际化语言,开发者定义需要支持的区域,并分配相应的区域值,Studio或者API编程接口就能自动设置I18N的键值。Kony应用已经在60多个国家,以20多种语言提供全部功能。
服务
一旦设计好用户界面,开发者就能定义与之连接的服务,以及如何利用和交换数据。Studio的可视化设计界面能轻松的实现这一点。服务通常是根据前后处理流程完全客户化的,并具有可配置的安全性,也能与其他服务组合在一起形成一个流程,相互之间的参数传递和逻辑也是完全可配置的。
kony 国外主流移动开发平台应用介绍
更为重要的是,一旦KonyOne Studio将服务发布到KonyOne Server,这就意味着
开发者不但可以在不同应用之间重用这些服务,而且在未来即使修改了这些服务类型, 或者进行了升级,也不需要重新发布了。[www.61k.com]
服务定义 / 发布 – Studio的服务定义界面为开发者提供了广泛的连接选择。Web services, REST, JSON, Java连接器以及全功能的HTML Scraper都以一个统一的接口提供给开发者,并根据不同的安全性设置不同的前后处理逻辑,优化端到端的性能。
第三方连接器与适配器 – KonyOne平台提供专有的与ERP系统连接的连接器,比如连接到SAP(通过内置的JCO连接器), 连接到Oracle/Siebel,Microsoft,或者直接连接到数据库(通过JDBC/ODBC),或者合作伙伴的连接器,比如iWay,提供了300多个自带的与后台系统的适配器。除此之外,Studio的企业浏览器可以直接在IDE中查阅数据、函数与服务。
服务模拟器 – 开发者通常需要离线测试他们的服务。Studio的服务模拟器可以通过在后台模拟一个连接代理的方式满足他们的需求。
连接
设计好用户接口,定义和发布完成支持应用所需的服务,余下的一步就是开发UI Widget的连接事件(比如点击按钮),或者服务的动作(比如触摸动作)。这个步骤通过KonyOne Studio的事件流编辑器(Event Flow Editor)完成。这个动作序列可在整个应用里重用,包含了从事件的初始化到最后的结束,它包括:
61阅读提醒您本文地址:
? 映射输入数据到服务
?
? ? ? ? ? ?
预处理判断(比如Android的动作执行与iOS不同)
服务初始化(同步模式或异步模式) 导航到其他UI元素 显示提示 条件判断
执行一个或多个代码段(snippets) 调用函数
“我们选择Kony平台是因为它能帮助我们更快的响应市场,覆盖最广泛的智能设备,
降低我们的开发与维护成本–Michael Yetter, Director of eBusiness at Independence Blue Cross, 费城, 宾夕法尼亚州”
kony 国外主流移动开发平台应用介绍
部署
KonyOne平台
KonyOne平台覆盖了项目部署的各个阶段。[www.61k.com)
编译
编译所需渠道的应用-不论是POC阶段,测试阶段还是发布到生产环境-都能在KonyOne Studio上完成。Studio能够编译完成各种包,不论是原生应用还是所需渠道的Web模式。
测试
测试应用的功能和性能可在KonyOne Studio内置的模拟器中完成。
发布
要从服务器上发布一个或多个Web /移动应用,只需简单的选择目标服务器位置,并在Kony控制台上进行发布。同时,具备全部的日志和分析去跟踪和管理版本。要发布到企业应用商店,还可设置特殊的安全策略,比如角色,访问权限以及核准等。
安装
客户端应用提交给操作系统检验,比如Apple, Google, RIM
以及
Microsoft等。企业或针对特定用户群的应用发布到服务器上,由服务器来确保满足授权认证和访问控制的安全需求。
kony 国外主流移动开发平台应用介绍
? 基于纯URL模式(传统模式,基于Web服务器的部署模式)
? SPA模式(Single Page Application) – SPA模式,即在设备第一次访问服务器时,通过HTML,CSS或者JavaScript将一个或全部表单都下载到终端设备端,并存储在本地。[www.61k.com]服务器只在应用发起请求时才给出响应,这种方式下客户端有可能比原声应用响应速度更快。
对于混合模式的部署,开发者可以对某些表单结合纯URL模式和SPA模式,以获得优化的用户体验和性能。
移动WEB(不支持HTML5的浏览器)
KonyOne服务器的高级设备检测功能确保了将标记和功能正确分发到发起请求的设备上。
kony 国外主流移动开发平台应用介绍
KonyOne服务器
KonyOne服务器提供了扩展性、安全性和会话管理,同时也提供跨渠道的
通知推送服务,并可与Webtrends,Adobe Omniture以及IBM Coremetrics进行完全整合,提供日志审计与分析功能。(www.61k.com]同步服务器(Sync Server)和企业移动管理器模块(Mobile App Manager)还能轻松扩展到基于云平台的应用。
设备检测 – 基于超过9,500种设备的数据库及其相应的表单属性,屏幕尺寸,KonyOne服务器提供优化的移动设备外观,特定移动浏览器的属性,基于SPA模式的表单,或者这几种方式的混合。当发现有新的设备时,会将其自动加入到数据库中。 通知推送服务 – 统一的管理控制台支持全部的操作系统,包括iOS,Android,Blackberry,Windows Phone,还提供其他的整合选项包括JSON,XML,以及:
? 群集支持和资源优化 ? 故障恢复以及SMS备份选项
? 是否使用客户ID,还是email地址取代由设备商提供的唯一标示
安全性 – 行业内领先的安全机制满足全部的安全需求,成功案例覆盖了从金融服务业、医疗健康业等的行业应用,到多国家、多语言、多设备的部署。
? 授权与访问控制
- 多因子授权,支持SSO
- 遵循OAuth
- 与第三方SSO供应商整合,比SiteMinder - 支持使用设备ID或者服务注册时间以生成 唯一标识号
- 支持生成唯一的用户凭证,比如 username/password/PIN等
? 传输安全性
- 支持应用级别的安全标准,比如SSL和TLS, 也支持操作系统级别的安全传输标准,比 如IPSec
- 支持信任CA服务器签发的数字证书 ? 数据存储
- KonyOne Studio提供跨渠道的,行业标准的 对称和非对称加密算法库 - SDK支持访问加密算法函数 - 大量数据以AES/3DES方式加密 - 支持使用RSA Public Key加密应用数据 - 支持SHA2和MD5
? 系统架构
- 遵循Dynamic OWASP评估安全过滤器 - 高扩展性日志系统 - 服务器端不存储个人信息 - PCI, PII, HIPAA, OFX支持与认证 - 会话超时管理 - 禁用拷贝与粘贴 - 设备加锁(基于设备ID)
kony 国外主流移动开发平台应用介绍
? XML ? Java ? SOAP ? JSON ? REST ? ODBC ? JDBC
? Odata
? SAP (built-in JCO connectors for BAPI/RFC browsing, method & I/O discovery) ? Oracle/Siebel ? Microsoft Sharepoint ? iWay (300+ connectors)
Kony Sync服务器
Kony Sync Server支持离线或断续连接的用户使用。[www.61k.com]做为KonyOne Server同等的产品,Sync Server在横向和纵向两个方向上都提供企业级的可扩展性,故障恢复,负载均衡以及高可用性:
? 完整的,可配置的冲突解决机制
- 客户端为准,服务器为准,还是自定义条件 ? 与其他标准ERP数据源的连接选项
61阅读提醒您本文地址:
? 一旦建立了同步机制,所有的数据、语言、相关
的对象等都会自动在服务器端和客户端两端同时生成,方便移动应用的断续连接
? 同步功能对KonyOne Studio全部可用,确保直接的对象访问和操作
? 支持对后台系统同步和异步模式的访问 ? 专有的Kony控制台生成分析报表,日志审计,冲突管理器,用户和设备管理以及其他的同步功能控制
“我们评估了多个平台,Kony平台是唯一一个让我们做到一次编写,应用到全部渠道 和操作系统的产品。- Jeff Dennes, chief digital officer for Huntington Bank”
kony 国外主流移动开发平台应用介绍
可针对每个用户或用户组管理与审计应用的安全性和用法
授权与访问控制(Authentication & Access Control) - 可整合LDAP, DB, SSO的用户、用户组和角色 加入策略框架(Policy Framework Injection)- 加载
与卸载二进制策略源文件,并在登录时必须使用
Kony应用商店(App Store) - 访问,发布,下载与安装认证过的应用
? 可完全客户化用户体验 ? 轻松配置加入企业品牌
? 整合其他的移动应用管理器的安全与策略 ? 可由终端用户配置
? ? ? ? ? ? ?
容器的初始化可使用“白名单”,身份信息和口令来控制访问;
所有的配置项,应用定义和数据都是加密的,即使设备被破解、越狱、或者容器被拷贝,容器里的内容也都是完全受到保护的。(www.61k.com)所有数据的传输也是经过加密的;
容器可以在指定设备上进行锁定,这意味着即使其被拷贝到另一台设备上也是无法启动的; 容器可成为“黑名单” – 比如,一旦尝试连接主机,所有的应用和数据都将会全部移除; 容器可配置在空闲一段时间后自动关机,或进入睡眠模式;
可在容器内部执行HTML代码,无需关联浏览器; 所有的操作和请求均会被审计;
我们提供面向各个行业的移动应用方案及开发服务支持,方案咨询:王先生,18601292328,wland2008@163.com
kony 国外主流移动开发平台应用介绍
移动健康计划(Mobile Health Plans) 移动零售商店(Mobile Retail)
针对企业客户
移动门户(Mobile Agent Portal) 移动人力资源(Mobile HR)
移动保险代理门户(Mobile Insurance Agent Portal) 移动航班机组(Mobile Airline Crew)
移动航线地面服务(Mobile Airline Ground Handling) 移动交款(Mobile Payor Sales Force)
移动资产管理(Mobile Asset Management) 移动药品销售(Mobile Pharma Sales Force)
移动企业银行(Mobile Commercial Banking) 移动零售执行状况(Mobile Retail Execution)
移动财富管理(Mobile WealthManagement) 移动CRM(Mobile CRM)
“为了解决功能的多样性和平台的多样性这两大难题,我们选择Kony作为合作伙伴来
帮助我们开发我们的购物工具应用(Shopping Tool App)。(www.61k.com]?- Michael K. Nelson,
Interactive Communications Mktg. Manager for Toyota Motor Sales, U.S.A., Inc.”
61阅读提醒您本文地址:
四 : 三款主流平板移动办公应用对比教程
由于发展策略的转变,微软近日正式推出了iPad版Office办公应用,改变了移动平台没有官方Office应用的情况。不过,由于这个过程略显漫长,移动平台中其实也不乏Office的替代品。除了一些第三方应用之外,还拥有苹果iWork、Google Drive这些深度整合到各自平台中的产品。那么,哪款办公应用才是最适合你的呢?还需要具体情况具体分析。
触摸版微软Office
移动平台兼容性:iPad
售价:免费下载(年费499元起)
微软Office可以说是办公文档应用的标杆,几乎已经渗透到全世界各个国家、各个行业中,现代人办公几乎离开它。我们最常用的便是Word文档、Excel表格及PowerPoint幻灯片,几乎可以满足所有的办公文档需求,另外微软还积极在Office中加入OneDrive云功能,实现更方便的多机同步应用。
目前,针对移动平台的触摸版Office仅支持iPad(此前Android平台的Office Mobile云服务可免费试用),支持免费下载及本地文档阅读,但编辑、创建功能则需要订阅Office 365服务,家庭版价格为499/年,企业版本价格则更高。不过,Office 365最多可以在5台设备上使用。
适用人群:适合办公需求较大、需要多平台文档同步及编辑的iPad用户。
苹果iWork
移动平台兼容性:iOS
售价:免费(仅针对去年推出的iOS设备)
由于苹果拥有自己的Mac桌面平台,所以也拥有iWork系列办公套件,包括Pages文档、Number表格及Keynote幻灯片,与微软Office的设定和功能比较相似。
界面设计上,苹果的应用自然更注重简单直观的使用体验,当然习惯了Office的用户可能需要适应一段时间。文件兼容性方面,iWork拥有苹果独有格式,也兼容Office格式,但是在一些情况下可能会出现无法正确显示图片等内容的情况。云功能方面,iWork使用了苹果iCloud服务,可在Mac、iOS设备上实现无缝同步。
至于价格,苹果在去年针对所有新款iOS、Mac产品推出了免费下载优惠,如果你使用的是旧设备,那么需要花费每款68元的价格来购买。
适用人群:忠实的苹果用户,尤其是购买了新设备的人群。
Google Drive
移动平台兼容性:iOS、Android
售价:免费
作为一个相对开放厂商,谷歌近年来一直在构建完整的在线云服务,其中Google Drive不仅仅是一个云存储服务,还直接内置了文档查看及编辑功能,仅需要一个Gmail账户就可以使用了。至于平台兼容性,则支持iOS及Android,都可以通过下载应用来实现,不需要再独立下载办公套件。
Google Drive的界面非常直观,选择“创建”,就可以看到文档、表格、幻灯片等组件,还是相当方便的。另外,我们还可以创建编辑PDF文档、传真文件、文本文档等等。Google Drive的优势还在于方便的分享功能,可以通过“分享”按键转发给其他Gmail用户。另外,最新版的Google Drive应用也支持创建离线文件、将在线文件下载至本地使用;但遗憾的是,它仍然需要设备连接网络,才能开启应用并验证账号,否则是无法直接创建文件的。
最后,Google Drive完全免费,只要注册一个谷歌账户即可使用。
适用人群:那些经常处于网络连接环境、注重在线协作但不需要复杂文档功能的用户。
本文标题:移动应用统计平台-实例讲解基于DB2及PHP的应用系统跨平台迁移61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1