SUP 产品介绍 Sybase 系统顾问 王楠
SUP 产品介绍
Sybase 系统顾问 王楠
议题
• 移动应用开发市场状况
• SUP产品概况
• SUP产品特点
– 快捷的安装,丰富的配置
– 强大的管理平台– 强大的管理平台
– 高效的开发平台
– 丰富的企业信息接入方式
– 方便的终端应用开发机制
• SUP开发演示
移动应用开发的市场状况
企业移动应用趋势
IDC:70%的机构现在已经部署了至少一种移动应用,他们中的1/3则部署了多个移动应用。
企业移动应用和移动中间件市场将在2010年达到30亿美元规模
到2011年,全球将有超过10亿移动员工
在过去的一两年,协作型的应用,如移动电子邮件已经被 在过去的一两年,协作型的应用,如移动电子邮件已经被大规模地部署。而在未来的一至两年内,企业将开始部署诸如CRM、ERP、面向内容和制造/运营的移动应用。
Gartner: 到2010年,企业将从单个移动应用向支持多应用的移动平台转化,设备管理、数据安全将成为关注重点
移动应用在企业中
• 企业中已有或实施中移动应用个数:
– 3 projects underway (32%)
– 2 projects (22%)
– 1 project (16%)– 1 project (16%)
• 结论:
– 越来越多的企业需要考虑同时实施多个移动应用,如何利用整体平台节约资源,降低成本
Number of Mobile Application Initiatives Currently UnderwayNorth America and Western Europe
One
16%
Two
22%
Three
32%
Four5%
Five
3%
More than 5
8%
Don't Know
14%
Copyright © 2008 J.Gold Associates, LLC. All rights reserved.
新技术呼唤新架构
Mainframe Era Client/Server Era Internet Era Mobile Era
MainframeI
ServerProtocols
ServerI
ServerI
Mobile
“Mobile EnterpriseApplication Platform”
(Gartner)
ISerial/SNA
ITerminals
INetwork/LAN
IProtocols
Clients
Web & App ServerStandard Protocol
II
BrowserClients
MobileInfrastructure
II
Devices
Handset Software Environments Multiply Physical Form Factors, Task Specific
日益复杂的移动应用环境
Wider Set of Mobile Software Vendors Development Environments Mature
Rich Client Thin ClientThick Client
Native code
Customized UI
Good UserExperience
Disconnected Use
Costly to Deploy
Mobile AJAX
Better UserExperience
Poor OfflinePerformance
Browser andJava Apps
Client Flexibility
No Offline
6类常见移动客户端
Streaming Client Messaging Client
FLASH,Audio/VideoStreaming
Rich mediaexperience
No stored content
SMS, MMS,E-mail
UnifiedCommunicationsopportunity
Small, Costly datapayloads
IVR systems
Warehouse orlimited SFA, CPGor FSM
Limited interactioncapabilities
No Client
SUP产品概述
无线企业应用平台领导者象限
Sybase Unwired Platform (SUP)
Sybase 新一代支持企业实现应用程序移动化的体系架构,通过一系列全面的服务,帮助企业将数据和业务流程移动化到任何移动设备上
移动
设备
安全
与管
理
移动数据库
移动应用
移动电邮
移动办公
– Design Once, Deploy to MultipleDevice 一次开发,多终端部署
(BlackBerry, Windows Mobile,Win32)
移动
设备
安全
与管
理
移动应用开发平台
Win32)
– 完美集成企业后端应用 (SAP,Remedy, Web Services, Databases)
– 4GL 工具开发 (支持 Visual Studio/ Eclipse)
– 与设备管理与安全部署无缝集成
(Afaria)
DB
Data Extraction, Manipulationand Transactions Stream
Push, Synchronization andNotification Stream
EclipseAdmin Web
Console
MobileApplication
Tooling API
Tooling API
Visual Studio
应对企业移动应用的挑战
Provisioning
JCA
WebServices
Files
Middleware ServerD
ata
Se
rvic
es
La
ye
r
Syn
ch
ron
iza
tion
La
ye
r
Notification
Personalization
Security
Cache
Device Managementand Security
Notification Module
Data Persistence Module
Unwired Object API
Tooling API
SAPRemedy
-Windows Mobile-RIM BlackBerry®-Windows 32
一次开发,多终端部署
简化的开发理念
– 一次开发
为开发和部署跨设备平台的应用提供统一接口
为所有主要设备平台抽象化了访问本地数据储存的通用数据持久化 API
通过使用面向对象的技术和概念,提供一个对象层以简化移动应用程序开发应用程序开发
为 移动设备上的应用程序开发提供复合构件库
支持设备和软件管理功能
– 多终端部署 Windows Mobile, Windows 32 BlackBerry, 其它终端将在未来
版本中逐步支持
UnwiredWorkSpace
•Design UI
Device SpecificUnwiredServer
Deploy MBOPackage(metadata)
CodeGeneration
Client Appdeveloped
GeneratedClient App
应用开发过程独立于设备的应用开发
•Design UI
•Design MBOsandRelationships DPL / UL (.NET or Java)
MBO layer
Device OSServer runtime
developedwith IDE
Client App
ManifestMBO Runtime
Pla
tform
Code
Tem
pla
te
“开箱即得”的集成功能
提供统一方式访问异构数据源,结构化和非结构化数据
对SAP 和 Remedy 即装即用的连接
全面支持与 web service、数据库和定制应用集成的连接器架构
全面支持 JDBC/ODBC 访问数据库
支持文档 (PDF、Word、Excel、PowerPoint) 和二进制内容,例如 Flash、图片、影像(所有的常见格式)、视频和音频(多例如 Flash、图片、影像(所有的常见格式)、视频和音频(多媒体格式)
统一的 4GL 开发工具
使用丰富易用的 4GL 工具提供强大的移动应用程序开发功能
支持开发工具/选择平台(Visual Studio 或 Eclipse)
支持开发面向对象和面向服务的客户端移动应用
系统安全
兼容通用安全架构
• 可嵌入的Providers
–Tomcat Realm, LDAP, Netegrity,RADIUS, SAML, Remedy, BusinessObjects
–证书验证 (包括 CRL)
• Windows Domain, Active Directory• Windows Domain, Active Directory
• 端到端数据加密
–SSL
–Device Data
• 用户的认证及授权
–设备到服务器认证
–MBO级的角色管理及授权
• 提供Push机制
WebServices
Enterprise Device
Presentation &Business Logic
数据交换
数据交换
•Data Model Generation•Device UI Generation•Server Package / Deploy•Operation Invocation
SUP Model ServicesEnterpriseApplication
MobileBusinessObjects
数据交换
数据交换
FutureRelease
SUP运行时Admin Console
部署部署//配置配置
Files andData
Email, IMApprovalsCollaboration
User Auth(LDAP/AD)
Business Logic
Device-sideSynchronizationinfrastructure
Device DBDevice DB
Files
数据交换
数据交换
ConsolidatedDB •Message and Data Sync
•Data Profiles
MobiLink Services
•App. & File Sync•Network Usage Profiles•Device Management•Security
Afaria Services
•Operation Invocation•Cache Concurrency
EnterpriseDB
数据交换
数据交换
SUP产品的主要特点
快捷的安装、丰富的配置
SUP产品特点
系统要求
• 系统内存不低于2G
• Windows XP SP2/Windows 2003 SP2以上
• Visual Studio 2008(可选)
• 支撑软件
– JDK 1.6.0_12
– Eclipse 3.4.1– Eclipse 3.4.1
– Afaria 6
– Afaria Server Prerequisites .NET 3.5
Visual C++ Runtime 2008
XML 6.0
– Afaria Web Console Prerequisites Crystal Reports runtime for Visual Studio 2008
SUP 产品安装
• 支持的产品安装方式
– Enterprise Edition
– Developers Edition
– Deployment Edition
• SUP产品安装的组件• SUP产品安装的组件
– Unwired Server
– Eclipse Tooling
– Visual Studio Tooling
– Afaria (server and web console)
安装类型
• 支持的预定义安装选项
– Eclipse Developer
– Visual Studio Developer
– Typical Install (Deployment Edition)
– Custom Install– Custom Install
支持用户现有组件组件及自定义配置
AFARIA PREREQUISITES
AFARIA PREREQUISITES
New Options
SUP服务
• 创建Windows服务
• 支持设定SUP服务自动启动
• OpenDS LDAP 服务器自动启动
• Service 名格式为
– UnwiredPlatform<cluster_name>Database– UnwiredPlatform<cluster_name>Database
– UnwiredPlatform<cluster_name>Watchdog
– UnwiredPlatform<cluster_name>Server
– UnwiredPlatform<cluster_name>RSOE
安装时创建集群
加入集群
强大的管理平台
SUP产品特点
SUP管理平台
•服务器配置
•安全管理
•连接管理
•集群管理•集群管理
服务器管理
•管理服务器端口
•管理Afaria服务器主机名及端口
•管理信息推送提醒
•管理SUP内部工作线程等相关参数
•管理同步监听器•管理同步监听器
安全配置管理
•认证管理
•授权管理
•Attribution
•审计
Neil1
Slide 34
Neil1 nanwang, 8/24/2009
信息源连接管理
•提供连接模板
•信息源• JDBC
• SAP
•Connection pool•Connection pool
• Sybase ASE, ASA
• Oracle
• Microsoft SQL Server
• IBM DB2
集群管理
•多点集群管理
•多集群管理
管理控制台的主要特性
• 企业信息管理 (根节点)• 多点集群及多集群管理
• SUP 缓存主点及备点状态监控及管理
• SUP 服务器管理 (服务器节点)• Start/Stop/Restart/Ping 命令
配置(配置节点)• Server 配置(配置节点)• 端口信息、信息推送配置及多线程控制
• Server Log (日志节点)• Log File 浏览, Log 级别配置, 过滤和搜索
管理控制台主要特性
• 支持应用包部署(Packages 节点)
• 支持应用包配置 (Package 节点)• 设置 MBO Cache 间隔
• 设置 MBO 缓存自动刷新机制
• 浏览 MBO/Operation 历史
• 浏览 MBO 预定 (基于用户的或者设备ID)• 浏览 MBO 预定 (基于用户的或者设备ID)
• 信息推送管理 (Subscriptions 节点)• 提供预定模板 for MBO
• 创建预定,修改参数及删除预定
• 用户管理 (Users 节点)• 系统用户列表
• 个性化管理 (Personalization 节点)• 浏览所有个性化的参数及值
• 删除个性化值
高效的开发平台
SUP产品特点
SUP Visual Studio 工具基于 Visual Studio 2008 IDE
1. Solution Explorer
2. Server Explorer
3. MobileApplicationExplorer
4. MobileApplication
ApplicationDiagram
5. PropertiesWindow
6. Errors List
SUP Visual Studio 工具Solution Explorer
• SUP 工程
– Mobile Application Diagram
• 生成的MBO工程
• Windows Mobile应用工程
SUP Visual Studio 工具Mobile Application Diagram
SUP Visual Studio 工具Server Explorer
• 数据库 connections
• SAP 服务器 connections
• Web Service connections
• Unwired Server connections
SUP Visual Studio 工具Mobile Application Explorer
• Model explorer
– MBOs
– Relationships
– Personalization keys
– Roles– Roles
– Connection references
SUP Visual Studio ToolingProperties Window
• 当选择了IDE中的任何对象后,在此窗口中显示各个对象属性信息
SUP Eclipse开发工具
MobileDevelopmentperspective
BOBToolbar
Outlineview
Problemsview
BOBEditor
Propertiesview
数据源绑定界面
终端界面开发
Windows Mobile 开发- 设计开发WM应用
Projects•Mobile Business Object Model•Device Application
Perspective
Enterprise explorer•Backend data sources•SUP server
Device Application Designer•Screen Flow•Screen•Palette•Properties View
丰富的信息接入方式
SUP产品特点
Mobile Business Object 开发基本概念
•Packages –用于将MBOs分组
•MBOs –标识SUP读取结果集– Data sources (Database, Web Service, SAP, File)
– Attribute –MBO的field/property
– Operation –create/update/delete和其他方法
– Column –field/property后台信息源的字段– Column –field/property后台信息源的字段
– Parameter –客户端发送的参数
– Argument –发送到后台的参数
•Relationships –表示MBO之间的联系
•Personalization Keys - 个性化设置输入参数
•Roles –逻辑角色用于分配操作权限
Mobile Business Object 开发开发方式
•由底向上的开发方式
– 由后台数据源来创建MBO或者方法(数据源包括:Database, Web Service or SAP connection)
• 由顶向下的开发方式
– 直接由SUP创建MBO、方法、参数及属性
– 将创建的MBO的属性及方法映射到后台信息源
映射 MBO 到 Table, Stored-Procedure, SAP or Web ServiceOperation
映射 Attributes 到 Columns
映射 Parameters 到 Arguments
– 此方式支持将已创建的应用模板映射到具体用户的数据源这种开发方式
具体应用开发过程
开发流程
1. 创建一个SUP应用项目
2. 连接到后台的信息源
3. 连接到SUP服务器
4. 创建MBO或者将MBO的相关参数映射到后台信息源
5. 将MBO部署到SUP服务器5. 将MBO部署到SUP服务器
6. 依据MBO定义生成特定的应用程序代码
7. 利用IDE开发应用程序
8. 执行、测试或者Debug应用程序
连接到后台数据源
•通过Server Explorer可以链接到数据源
•数据源支持 Databases, Web Services and SAP servers
连接到数据库
•通过右键点击启动创建Wizard
•可以通过JDBC、ODBC、OLE创建数据库连接
•通过Server Explorer看数据库中信息
创建Mobile Business ObjectDatabase Table or Stored-Procedure
• 通过table、view、存储过程创建MBO支持执行CRUD 执行 (Create, Read, Update, Delete)
• 通过拖拽的方式进行MBO开发
• 通过向导配置相关参数
创建到Web Service的链接
•通过WSDL连接直接创建Web Service连接
Mobile Business Object 创建向导
创建 Mobile Business ObjectSAP数据源
• 基于SAP信息源创建MBO
• 通过拖拽方式创建MBO
• 通过向导来配置MBO
• 通过拖拽将SAP信息源添加到已有MBO上以添加新的操作作
Mobile Business Object 创建向导SAP 操作
创建基于文件的MBO
• File MBO可以用于上传及下载文件
• 通过工具栏中的文件节点直接创建
• 通过向导来配置File MBO
File MBO 创建向导
Mobile Application Diagram
• 支持视图的放大缩小
• 支持组件的排布
• 改变符号的显示形式
• 扩展及收起符号
• 在Mobile Application Explorer中查找MBO• 在Mobile Application Explorer中查找MBO
• 在Mobile Application Diagram 定位MBO
• 定义逻辑组
• 视图过滤
Mobile Application Diagram逻辑组
• 用于对大量的MBO进行分组
Mobile Application Diagram视图过滤
• 创建MBO对象的分层
• 提供特定分层的现实/隐藏功能
方便的终端应用开发机制
SUP产品特点
CLIENT API 整体架构
MBO Objects(generated)
Client Application / UI Code SUP Object Model
Data Access Utility Layer
UltraLite API and Afaria API
UL DB
CDB
SUP Runtime
Afaria Client
数据访问层
• 访问客户端数据库的方式
– 通过自动生成的代码访问客户端数据库
– 通过数据持久化代码库
– 通过UltraliteJ/UltraliteJ的API接口
• 通过MBO生成的对象访问数据库开发效率最高• 通过MBO生成的对象访问数据库开发效率最高
• Ultralite/UltraliteJ对于高级客户端提供了更多的灵活性
CLIENT SETUP - JAVA
• For Java client development using MBO layer we need:
– MBO layer classes
– DPL library
– UltraliteJ library
• DPL libraries• DPL libraries
– dpl_j2se.jar for J2SE development
– dpl_rim.jar for RIM development
• UltraliteJ libraries are available from iAnywhere forappropriate platforms
MBO 层
• MBO 层 = 固有类库+生成的代码
– 固有类库为最终用户及生成的代码提供支持
– 所有的生成代码通过Eclipse和Visual studio等工具来生成
• 固有类通过以下方式提供
– 通过jar文件面向Blackberry提供支持
– 通过Dll文件为Windows mobile提供支持
生成MBO的代码
生成MBO代码
MBO API示例Managers
ConnectionManager cm = ConnectionManager.getInstance();
SynchronizationManager sm = SynchronizationManager.getInstance();
• ConnectionManager
– Create, update, delete 到SUP服务器的链接
– 获取已经命名的连接
– 获取默认连接– 获取默认连接
• SynchronizationManager
– 下载MBO数据
– 调用更新操作
MBO API示例Creating Connection
Connection conn = new Connection();
conn.setName(connName);
conn.setUserName("supAdmin");
conn.setPassword("s3pAdmin");
conn.setMobiLinkHost("KPATIL-XP2");
conn.setMobiLinkPort( 2439);
conn.setMobiLinkStreamType("HTTP");
conn.setMobiLinkStreamParams("");
conn.setPackage(“CustomerOrder_1.0.0");
conn.save();
ConnectionManager.getInstance().setDefaultConnection(conn);
MBO API示例Creating Connection for Relay Server/Cluster
Connection conn = new Connection();
conn.setName(connName);
conn.setUserName("supAdmin");
conn.setPassword("s3pAdmin");
conn.setMobiLinkHost("KPATIL-XP2");
conn.setMobiLinkPort( 2439);
conn.setMobiLinkStreamType("HTTP");conn.setMobiLinkStreamType("HTTP");
conn.setMobiLinkStreamParams("");
conn.setPackage(“CustomerOrder_1.0.0");
conn.setMobiLinkStreamParams(“url_suffix=/ias_relay_server/client/rs_client.dll/ML.MERRIGOLD”);
conn.save();
ConnectionManager.getInstance().setDefaultConnection(conn);
MBO API示例Performing MBO Synchronization
CustomerSynchronizationParameters params = Customer
.getSynchronizationParameters();
params.setCity("New York");
params.save();
Customer.synchronize();
OROR
Connection conn =ConnectionManager.getInstance().getConnection(“myconn”);
SynchronizationParameters sp = new SynchronizationParameters();
sp.setConnection(conn);
sp.setMBONames(new String [] {“Customer”});
sp.setSyncStatusListener(mySyncStatusListener);
SynchronizationManager.getInstance().synchronizeApplications(sp);
MBO API示例Retrieving Data From MBOs –find methods
//find All Customers
List<Customer> customerList = Customer.findAll();
//find by id when only one findBy is defined
Customer customer = Customer.findById(101);
//find by id when multiple findBy are defined
List<Customer> customers = Customer.findById(101);
//find by method when multiple findBy are defined
Customer customer = Customer.findBy(101, “Sybase”);
MBO API示例Retrieving Data From MBOs –Arbitrary find methods
Query query = new Query();
//using simple AttributeTest
query.setTestCriteria(new AttributeTest("name", "C",
TestType.STARTS_WITH));
• Use Query object to set search criteria
TestType.STARTS_WITH));
//sort order
SortOrderCollection sortOrderCollection = newSortOrderCollection();
sortOrderCollection.add(new SortOrder("id",SortOrderType.ASCENDING));
query.setSortOrder(sortOrderCollection);
List<Customer> customerList = Customer.find(query);
MBO API示例Retrieving Data From MBOs –Arbitrary find methods
Query query = new Query();//using simple CompositeTest
CompositeTest compositeTest = new CompositeTest();
compositeTest.addFilter(new AttributeTest("name", "C",
TestType.STARTS_WITH));
compositeTest.addFilter(new AttributeTest("id", "200",
TestType.LESS_THAN));TestType.LESS_THAN));
query.setTestCriteria(compositeTest);
SortOrderCollection soColl = new SortOrderCollection();
soColl.add(new SortOrder("id", SortOrderType.ASCENDING));
query.setSortOrder(soColl );
List<Customer> customerList = Customer.find(query);
MBO OBJECT API OVERVIEWRetrieving Relationship Data
MBO API示例Retrieving Relationship Data
//Customer is related with Order with relationship “orders”
//find all orders for a customer
Customer customer = Customer.findBy(101);
List<SalesOrder> orders = customer.getOrders();
//find specific orders for a customer
Customer customer = Customer.findBy (101);
Query query = new Query();
…
List<SalesOrder> orders = customer.getOrdersFilterBy(query);
MBO API示例MBO Operations - Insert
Customer cust = new Customer();
cust.setFname("supAdmin“);
•For each new customer create new instance of Customer object•Set properties and call save()
cust.setFname("supAdmin“);
cust.setCompany_name(“Sybase“);
cust.setPhone("777-8888“);
cust.save();
MBO API示例MBO Operations - Update
Customer cust = Customer.findBy(101);cust.setFname("supAdmin“);
•Get the customer using findBy()•Update the properties and call save()
cust.setFname("supAdmin“);cust.setCompany_name(“Sybase“);cust.setPhone("777-8888“);
cust.save();
//for a relationshipCustomer cust = Customer.findBy(101);List<SalesOrder> orders = cust.getOrders();SalesOrder order = orders.get(0);order.setOrder_date(new Date());order.save();
MBO API示例MBO Operations - Delete
Customer cust = Customer.findBy(101);
cust.delete();
•Get the customer using findBy()•Call delete()
cust.delete();
//for a relationship
Customer cust = Customer.findBy(101);
List<SalesOrder> orders = cust.getOrders();
SalesOrder order = orders.get(0);
order.delete();
OPERATION LOGS
• Gets the status of operation- Succeeded or failed
• Gets detailed error message generated by EIS in case ofoperation failure
• Operation log can be retrieved from SyncResult objectafter sync is done
SyncResult syncResult = Customer.getSyncResult();
Enumeration e = syncResult.getOperationLog();
while (e.hasMoreElements()) {
OperationLog log = (OperationLog) e.nextElement();
System.out.print(log.getOperationName());
System.out.println(log.getMessage());
System.out.println(log.getStatus());
}
SUP 1.5 预告
集成Afaira及MobileOffice的部分功能
提升集群及负载均衡能力
提升托管业务能力
负载扩展到10000+客
可以支持复杂的WebService
支持数据转换
SAP DOE connector
支持RMI
提供Mobile Office开发工具通过消息进行Push提升Windows Mobile及BlackBerry开发工具为所有的平台提供负载扩展到10000+客
户端
增强客户端本地化
为所有的平台提供Client SDK
DEMO
QUESTIONS?
THANK YOU